Pitanje dolazi kao licencno, ali odgovor počinje inventarom. VPN interfejs, OpenVPN motor koji pokreće, TLS biblioteka i instalater mogu imati četiri različita skupa uslova, a izgled proizvoda ne govori ništa o tome koja datoteka pripada kojem skupu. Prođite kroz artefakte redoslijedom kojim se isporučuju, i pravno pitanje postaje mnogo uže dok ga predate nekome ko je kvalifikovan da odgovori. Svaki korak ga dodatno sužava: što se distribuira, što je izmijenjeno i kako dijelovi komuniciraju.

Počnite s onim što instalater stavlja na disk

Uzmite objavljeni instalater ili paket, ne razvojnu kopiju, i popišite svaku datoteku koju stavlja na čisto računalo. Zabilježite verzije za interfejs, motor i TLS biblioteku, i zabilježite da li je motor zasebna izvršna datoteka ili biblioteka učitana u isti proces.

Ta posljednja činjenica oblikuje sve što slijedi. Zasebna izvršna datoteka pokrenuta preko utičnice postavlja drugačiji skup pitanja od koda kompiliranog u jednu binarnu datoteku, a instalater koji oboje samo stavlja jedno uz drugo ne odlučuje stvar ni u jednom smjeru. Udruživanje je odluka o pakiranju, dok je odnos između programa arhitektonska odluka.

Zapišite popis s priloženim verzijama, jer se uslovi razlikuju između glavnih izdanja.

dpkg -L openvpn | head -n 40
openssl version -a

Odvojite interfejs od motora

OpenVPN datoteka za kopiranje navodi GPL verziju 2 i dokumentira izuzetak za povezivanje za OpenSSL, što je posebno dopuštenje s definiranim obimom, a ne opća licenca za miješanje uslova.

Zabilježite licencni tekst koji se isporučuje s vašom gradnjom, a ne onaj na web stranici projekta danas. Izdanje koje je fiksiralo stariju granu nosi dokument te grane. Snimci ekrana stranice repozitorija nisu zamjena, jer datoteka koja vam treba je ona unutar artefakta. Pohranite je uz instalater da paket bude potpun.

Zatim opišite integraciju iskreno: pokreće li interfejs motor kao podređeni proces i govori tekstualni protokol, ili povezuje biblioteku i razmjenjuje unutrašnje strukture? Drugi raspored je blizak na način na koji prvi nije, i ta razlika je ono što će recenzent prvo pitati.

Zabilježite koje ste datoteke izmijenili

Izmijenjeni izvorni kod mijenja analizu više od bilo kojeg detalja pakiranja. Ako ste zakrpali motor, sama zakrpa je izvedeni rad, a obaveza pripada onome ko distribuira rezultat.

Zabilježite svaku zakrpu, njenu svrhu i da li je poslana uzvodno, jer zakrpa koja nikada nije napustila vaš repozitorij i dalje je dio onoga što isporučujete ako isporučujete binarnu datoteku.

Konfiguracijske datoteke, teme i prijevodi obično žive s interfejsom, ali prijevod koji ugrađuje izvorne nizove motora mali je podsjetnik da je granica po datoteci, a ne po direktoriju. Držite razliku između uzvodnog izdanja i vaše gradnje kako bi odgovor bio dostupan na zahtjev, umjesto da se kasnije rekonstruira. Ta razlika je i najkorisniji artefakt kada revizor pita šta se promijenilo.

Provjerite verziju OpenSSL-a zasebno

OpenSSL 3.0 i noviji distribuiraju se pod Apache License 2.0, dok starija izdanja nose uslove OpenSSL/SSLeay. To su različiti dokumenti s različitim obavezama, a uključeni motor može povezati bilo koji od njih koji je vaš sistem gradnje pronašao.

Potvrdite verziju koja se stvarno isporučuje, a ne onu navedenu u skripti gradnje.

Ovisnost o OpenVPN-u ne pretvara svaku izmjenu OpenSSL-a u GPL kod, a izuzetak za povezivanje ne uklanja ostale obaveze koje dolaze s redistribucijom biblioteke. Tretirajte izuzetak kao jednu klauzulu u većoj analizi, i zabilježite vlastite obavijesti TLS biblioteke uz sve ostalo.

Sastavite paket dokaza

Paket ima četiri dijela: inventar datoteka s verzijama, opis integracije, popis izmjena s razlikama i licencne tekstove u isporučenom obliku. Dodajte datoteku obavijesti koju distribuirate i mjesto gdje se izvorni kod nudi, ako vaše obaveze zahtijevaju ponudu.

Držite paket pod jednim vlasnikom da nijedno izdanje ne može izaći bez njega.

Ništa od ovoga ne odlučuje pravno pitanje, i u tome je poenta: daje kvalifikovanom recenzentu činjenice umjesto sažetka koji je neko sastavio po sjećanju. Marketinški opis dobavljača nije dokaz o njegovoj arhitekturi, a ni vaša vlastita pretpostavka o tome nije dokaz.

Povezani članci