Vmesnik VPN, pogon GPL in namestitveni program: kaj se dostavlja?
Preslikajte, kaj se distribuira, kaj je bilo spremenjeno in kako deli komunicirajo, preden se odločite, kako se pogoji GPL in OpenSSL uporabljajo za vaš paket vmesnika VPN.
Vprašanje pride kot licenčno, a odgovor se začne s popisom. Vmesnik VPN, pogon OpenVPN, ki ga vodi, knjižnica TLS in namestitveni program imajo lahko štiri različne nize pogojev, videz izdelka pa vam ne pove ničesar o tem, katera datoteka spada v kateri niz. Pojdite skozi artefakte v vrstnem redu, v katerem se dostavljajo, in pravno vprašanje postane veliko ožje, ko ga izročite nekomu, ki je usposobljen za odgovor. Vsak korak ga še zoži: kaj se distribuira, kaj je bilo spremenjeno in kako deli komunicirajo.
Začnite s tem, kar namestitveni program položi na disk
Vzemite izdani namestitveni program ali paket, ne razvojne kopije, in naštejte vsako datoteko, ki jo položi na čist stroj. Zapišite različice vmesnika, pogona in knjižnice TLS ter zabeležite, ali je pogon ločena izvršljiva datoteka ali knjižnica, naložena v isti proces.
To zadnje dejstvo oblikuje vse, kar sledi. Ločena izvršljiva datoteka, zagnana prek vtiča, odpira drugačen niz vprašanj kot koda, prevedena v eno binarno datoteko, in namestitveni program, ki oba preprosto položi drug ob drugega, zadeve ne odloči v nobeno smer. Združevanje je odločitev o pakiranju, medtem ko je odnos med programi arhitekturna odločitev.
Zapišite seznam s priloženimi različicami, ker se pogoji med glavnimi izdajami razlikujejo.
dpkg -L openvpn | head -n 40
openssl version -aLočite vmesnik od pogona
Datoteka za kopiranje OpenVPN navaja GPL različico 2 in dokumentira izjemo pri povezovanju za OpenSSL, ki je posebno dovoljenje z določenim obsegom in ne splošna licenca za mešanje pogojev.
Zajemite besedilo licence, ki se dostavlja z vašo gradnjo, ne tistega, ki je danes na spletnem mestu projekta. Izdaja, ki je pripela starejšo vejo, nosi dokument te veje. Posnetki zaslona strani repozitorija niso nadomestilo, ker je datoteka, ki jo potrebujete, tista znotraj artefakta. Shranite jo ob namestitvenem programu, da bo paket popoln.
Nato iskreno opišite integracijo: ali vmesnik zažene pogon kot podrejeni proces in govori besedilni protokol, ali poveže knjižnico in izmenjuje notranje strukture? Druga ureditev je tesna na način, kot prva ni, in prav ta razlika je tisto, kar bo recenzent najprej vprašal.
Zabeležite, katere datoteke ste spremenili
Spremenjena izvorna koda spremeni analizo bolj kot katera koli podrobnost pakiranja. Če ste pogon popravili, je popravek sam izpeljano delo, obveznost pa nosi tisti, ki distribuira rezultat.
Zabeležite vsak popravek, njegov namen in ali je bil poslan navzgor, ker je popravek, ki nikoli ni zapustil vašega repozitorija, še vedno del tega, kar dostavljate, če dostavljate binarno datoteko.
Konfiguracijske datoteke, teme in prevodi običajno živijo z vmesnikom, a prevod, ki vključuje nize izvorne kode pogona, je majhen opomnik, da meja poteka po datoteki in ne po mapi. Ohranite razliko med izdajo navzgor in svojo gradnjo, da bo odgovor na voljo na zahtevo, namesto da bi ga pozneje rekonstruirali. Ta razlika je tudi najbolj uporaben artefakt, ko revizor vpraša, kaj se je spremenilo.
Preverite različico OpenSSL ločeno
OpenSSL 3.0 in novejši se distribuirajo pod Apache License 2.0, medtem ko starejše izdaje nosijo pogoje OpenSSL/SSLeay. To so različni dokumenti z različnimi obveznostmi, in vključen pogon lahko poveže tistega, ki ga je našel vaš sistem gradnje.
Potrdite dejansko dostavljeno različico in ne tiste, navedene v skriptu gradnje.
Odvisnost od OpenVPN ne spremeni vsake spremembe OpenSSL v kodo GPL, izjema pri povezovanju pa ne odpravi drugih obveznosti, ki jih prinaša redistribucija knjižnice. Izjemo obravnavajte kot eno klavzulo v širši analizi in zabeležite lastna obvestila knjižnice TLS skupaj z vsem drugim.
Sestavite paket dokazov
Paket ima štiri dele: popis datotek z različicami, opis integracije, seznam sprememb z razlikami in besedila licenc, kot se dostavljajo. Dodajte datoteko obvestil, ki jo distribuirate, in mesto, kjer se ponuja izvorna koda, če vaše obveznosti zahtevajo ponudbo.
Držite paket pod enim lastnikom, da nobena izdaja ne more iziti brez njega.
Nič od tega ne odloči pravnega vprašanja, in to je bistvo: usposobljenemu recenzentu da dejstva namesto povzetka, ki ga je nekdo sestavil po spominu. Marketinški opis dobavitelja ni dokaz o njegovi arhitekturi, in tudi vaša lastna domneva o njej ni dokaz.