Et VPN-grensesnitt, en GPL-motor og en installasjonspakke: hva leveres?
Kartlegg hva som distribueres, hva som er endret og hvordan delene snakker sammen før du avgjør hvordan GPL- og OpenSSL-vilkår gjelder for VPN-grensesnittpakken din.
Spørsmålet kommer som et lisensspørsmål, men svaret begynner med en fortegnelse. Et VPN-grensesnitt, OpenVPN-motoren det styrer, et TLS-bibliotek og en installasjonspakke kan ha fire forskjellige sett med vilkår, og produktets utseende sier deg ingenting om hvilken fil som hører til hvilket sett. Gå gjennom artefaktene i den rekkefølgen de leveres i, og det juridiske spørsmålet blir mye snevrere når du overlater det til noen som er kvalifisert til å svare. Hvert trinn innsnevrer det ytterligere: hva som distribueres, hva som er endret, og hvordan delene kommuniserer.
Begynn med det installasjonspakken legger på disken
Ta den utgitte installasjonspakken eller pakken, ikke en utviklingskopi, og list hver fil den plasserer på en ren maskin. Registrer versjoner for grensesnittet, motoren og TLS-biblioteket, og noter om motoren er en separat kjørbar fil eller et bibliotek som lastes inn i samme prosess.
Det siste faktum former alt som følger. En separat kjørbar fil som startes over en socket reiser et annet sett med spørsmål enn kode kompilert til én binærfil, og en installasjonspakke som bare plasserer begge side om side avgjør ikke saken i noen retning. Bundling er en pakkebeslutning, mens forholdet mellom programmene er en arkitektonisk beslutning.
Skriv ned listen med versjoner vedlagt, fordi vilkårene er forskjellige mellom hovedutgivelser.
dpkg -L openvpn | head -n 40
openssl version -aSkill grensesnittet fra motoren
OpenVPNs kopieringsfil oppgir GPL versjon 2 og dokumenterer et linkeunntak for OpenSSL, som er en spesifikk tillatelse med et definert omfang og ikke en generell lisens til å blande vilkår.
Fang lisens teksten som leveres med bygget ditt, ikke den som står på prosjektets nettsted i dag. En utgivelse som festet en eldre gren bærer den grenens dokument. Skjermbilder av en repositoriumsside er ikke en erstatning, fordi filen du trenger er den inne i artefakten. Oppbevar den ved siden av installasjonspakken slik at pakken er komplett.
Beskriv deretter integrasjonen ærlig: starter grensesnittet motoren som en underordnet prosess og snakker en tekstprotokoll, eller lenker det et bibliotek og utveksler interne strukturer? Det andre arrangementet er tett knyttet på en måte det første ikke er, og den forskjellen er det en anmelder vil spørre om først.
Noter hvilke filer du har endret
Endret kildekode endrer analysen mer enn noen pakkedetalj. Hvis du har patchet motoren, er patchen selv avledet arbeid, og forpliktelsen ligger hos den som distribuerer resultatet.
Registrer hver patch, formålet med den og om den ble sendt oppstrøms, fordi en patch som aldri forlot repositoriet ditt fortsatt er en del av det du leverer hvis du leverer binærfilen.
Konfigurasjonsfiler, temaer og oversettelser lever vanligvis sammen med grensesnittet, men en oversettelse som bygger inn motorens kildekodestrenger er en liten påminnelse om at grensen går per fil og ikke per mappe. Hold en diff mellom oppstrømsutgivelsen og bygget ditt slik at svaret er tilgjengelig på forespørsel i stedet for å rekonstrueres senere. Den diffen er også den mest nyttige artefakten når en revisor spør hva som er endret.
Kontroller OpenSSL-versjonen for seg selv
OpenSSL 3.0 og nyere distribueres under Apache License 2.0, mens eldre utgivelser bærer OpenSSL/SSLeay-vilkårene. Det er forskjellige dokumenter med forskjellige forpliktelser, og en bundet motor kan lenke til hvilken som helst av dem som byggesystemet ditt fant.
Bekreft versjonen som faktisk leveres og ikke den som er nevnt i et byggeskript.
En OpenVPN-avhengighet gjør ikke enhver OpenSSL-endring til GPL-kode, og linkeunntaket fjerner ikke de andre forpliktelsene som følger med videredistribusjon av biblioteket. Behandle unntaket som én klausul i en større analyse, og registrer TLS-bibliotekets egne varsler sammen med alt annet.
Sett sammen bevispakken
Pakken har fire deler: filfortegnelsen med versjoner, beskrivelsen av integrasjonen, listen over endringer med differ og lisens teksten slik den leveres. Legg til varselfilen du distribuerer og stedet der kildekoden tilbys, hvis forpliktelsene dine krever et tilbud.
Hold pakken under én eier slik at ingen utgivelse kan slippe ut uten den.
Ingenting av dette avgjør et juridisk spørsmål, og det er poenget: det gir en kvalifisert anmelder fakta i stedet for et sammendrag noen satte sammen fra hukommelsen. En leverandørs markedsføringsbeskrivelse er ikke bevis for arkitekturen deres, og din egen gjetning på den er heller ikke bevis.