Eit VPN-grensesnitt, ein GPL-motor og ein installasjonspakke: kva vert levert?
Kartlegg kva som vert distribuert, kva som er endra og korleis delane snakkar saman før du avgjer korleis GPL- og OpenSSL-vilkåra gjeld for VPN-grensesnittpakken din.
Spørsmålet kjem som eit lisensspørsmål, men svaret byrjar med ei forteikning. Eit VPN-grensesnitt, OpenVPN-motoren det styrer, eit TLS-bibliotek og ein installasjonspakke kan ha fire ulike sett med vilkår, og utsjånaden til produktet seier deg ingenting om kva fil som høyrer til kva sett. Gå gjennom artefaktane i den rekkjefølgja dei vert leverte i, og det juridiske spørsmålet vert mykje snevrare når du overlet det til nokon som er kvalifisert til å svare. Kvart steg snevrar det inn ytterlegare: kva som vert distribuert, kva som er endra, og korleis delane kommuniserer.
Byrja med det installasjonspakken legg på disken
Ta den utgjevne installasjonspakken eller pakken, ikkje ein utviklingskopi, og list kvar fil han plasserer på ein rein maskin. Registrer versjonar for grensesnittet, motoren og TLS-biblioteket, og noter om motoren er ei separat køyrbar fil eller eit bibliotek som vert lasta inn i same prosess.
Det siste faktumet formar alt som følgjer. Ei separat køyrbar fil som vert starta over ein socket reiser eit anna sett med spørsmål enn kode kompilert til éi binærfil, og ein installasjonspakke som berre plasserer båe side om side avgjer ikkje saka i nokon retning. Bunting er eit pakkebeslut, medan tilhøvet mellom programma er arkitektonisk.
Skriv ned lista med versjonar vedlagde, fordi vilkåra er ulike mellom hovudutgjevingar.
dpkg -L openvpn | head -n 40
openssl version -aSkil grensesnittet frå motoren
OpenVPNs kopieringsfil oppgjev GPL versjon 2 og dokumenterer eit lenkjeunntak for OpenSSL, som er ei spesifikk løyve med eit definert omfang og ikkje ein generell lisens til å blande vilkår.
Fang lisens teksten som vert levert med bygget ditt, ikkje den som står på nettstaden til prosjektet i dag. Ei utgjeving som festa ei eldre grein ber dokumentet til den greina. Skjermbilete av ei repositoriumsside er ikkje ei erstatning, fordi fila du treng er den inne i artefakten. Oppbevar henne ved sida av installasjonspakken slik at pakken er komplett.
Skildre deretter integrasjonen ærleg: startar grensesnittet motoren som ein underordna prosess og snakkar ein tekstprotokoll, eller lenkjer det eit bibliotek og byter interne strukturar? Det andre arrangementet er tett knytt på ein måte det første ikkje er, og den skilnaden er det ein meldar vil spørje om først.
Noter kva filer du har endra
Endra kjeldekode endrar analysen meir enn nokon pakkedetalj. Viss du har patcha motoren, er patchen sjølv avleidd arbeid, og plikta ligg hos den som distribuerer resultatet.
Registrer kvar patch, føremålet med han og om han vart sendt oppstraums, fordi ein patch som aldri forlét repositoriet ditt framleis er ein del av det du leverer viss du leverer binærfilen.
Konfigurasjonsfiler, tema og omsetjingar lever vanlegvis saman med grensesnittet, men ei omsetjing som byggjer inn kjeldekodestrengar frå motoren er ei lita påminning om at grensa går per fil og ikkje per mappe. Hald ein diff mellom oppstraumsutgjevinga og bygget ditt slik at svaret er tilgjengeleg på førespurnad i staden for å verta rekonstruert seinare. Den diffen er også den mest nyttige artefakten når ein revisor spør kva som er endra.
Kontroller OpenSSL-versjonen for seg sjølv
OpenSSL 3.0 og nyare vert distribuerte under Apache License 2.0, medan eldre utgjevingar ber OpenSSL/SSLeay-vilkåra. Det er ulike dokument med ulike plikter, og ein bunta motor kan lenkje til kva som helst av dei som byggjesystemet ditt fann.
Stadfest versjonen som faktisk vert levert og ikkje den som er nemnd i eit byggjeskript.
Ein OpenVPN-avhengnad gjer ikkje kvar OpenSSL-endring til GPL-kode, og lenkjeunntaket fjernar ikkje dei andre pliktene som følgjer med videredistribusjon av biblioteket. Handsam unntaket som ein klausul i ein større analyse, og registrer TLS-biblioteket sine eigne varsel saman med alt anna.
Set saman provpakken
Pakken har fire delar: filforteikninga med versjonar, skildringa av integrasjonen, lista over endringar med diffar og lisens tekstane slik dei vert leverte. Legg til varselfila du distribuerer og staden der kjeldekoden vert tilboden, viss pliktene dine krev eit tilbod.
Hald pakken under éin eigar slik at inga utgjeving kan sleppe ut utan han.
Ingenting av dette avgjer eit juridisk spørsmål, og det er poenget: det gjev ein kvalifisert meldar fakta i staden for eit samandrag nokon sette saman frå minnet. Marknadsføringsskildringa til ein leverandør er ikkje prov for arkitekturen deira, og di eiga gjetting på han er heller ikkje prov.