VPN интерфејс, GPL двигател и инсталер: што се доставува?
Мапирајте што се дистрибуира, што е изменето и како деловите комуницираат пред да одлучите како условите на GPL и OpenSSL се применуваат на вашиот пакет со VPN интерфејс.
Прашањето доаѓа како лиценцно, но одговорот започнува со попис. VPN интерфејсот, двигателот OpenVPN што го управува, библиотеката TLS и инсталерот можат да имаат четири различни множества услови, а изгледот на производот не ви кажува ништо за тоа која датотека припаѓа на кое множество. Поминете ги артефактите по редоследот по кој се доставуваат, и правното прашање станува многу потесно кога ќе го предадете на некој што е квалификуван да одговори. Секој чекор го стеснува повеќе: што се дистрибуира, што е изменето и како деловите комуницираат.
Започнете со она што инсталерот го става на дискот
Земете го објавениот инсталер или пакет, а не развојна копија, и наведете ја секоја датотека што ја става на чист компјутер. Запишете ги верзиите за интерфејсот, двигателот и библиотеката TLS и забележете дали двигателот е одделна извршна датотека или библиотека вчитана во истиот процес.
Овој последен факт го обликува сето што следи. Одделна извршна датотека стартувана преку сокет покренува различно множество прашања од кодот компајлиран во една бинарна датотека, а инсталерот што само ги става двете едно до друго не го решава прашањето во ниту една насока. Групирањето е одлука за пакување, додека односот меѓу програмите е архитектонска одлука.
Запишете го списокот со приложени верзии, бидејќи условите се разликуваат меѓу главните изданија.
dpkg -L openvpn | head -n 40
openssl version -aОдвојте го интерфејсот од двигателот
Датотеката за копирање на OpenVPN наведува GPL верзија 2 и документира исклучок за поврзување за OpenSSL, што е конкретна дозвола со определен опсег, а не општа лиценца за мешање услови.
Зачувајте го лиценцниот текст што се доставува со вашата изградба, а не оној што е денес на веб-страницата на проектот. Изданието што закачило постара гранка го носи документот на таа гранка. Екранските слики од страница на складиште не се замена, бидејќи датотеката што ви треба е онаа внатре во артефактот. Чувајте ја до инсталерот за пакетот да биде целосен.
Потоа опишете ја интеграцијата искрено: дали интерфејсот го стартува двигателот како детски процес и зборува текстуален протокол, или поврзува библиотека и разменува внатрешни структури? Вториот распоред е близок на начин на кој првиот не е, и токму таа разлика рецензентот ќе ја праша прво.
Забележете кои датотеки сте ги измениле
Изменетиот изворен код ја менува анализата повеќе од било кој детаљ за пакување. Ако го закрпивте двигателот, самата закрпа е изведено дело, а обврската паѓа на тој што го дистрибуира резултатот.
Запишете ја секоја закрпа, нејзината цел и дали е испратена нагоре, бидејќи закрпа што никогаш не го напуштила вашето складиште е сепак дел од она што го доставувате ако ја доставувате бинарната датотека.
Конфигурациските датотеки, темите и преводите обично живеат со интерфејсот, но преводот што вградува низи од изворниот код на двигателот е мало потсетување дека границата е по датотека, а не по директориум. Чувајте разлика помеѓу изданието нагоре и вашата изградба за одговорот да биде достапен на барање, наместо да се реконструира подоцна. Таа разлика е и најкорисниот артефакт кога ревизор прашува што е изменето.
Проверете ја верзијата на OpenSSL одделно
OpenSSL 3.0 и поновите се дистрибуираат под Apache License 2.0, додека постарите изданија ги носат условите OpenSSL/SSLeay. Тоа се различни документи со различни обврски, а групираниот двигател може да поврзе кој било од нив што го нашол вашиот систем за изградба.
Потврдете ја верзијата што навистина се доставува, а не онаа наведена во скрипта за изградба.
Зависноста од OpenVPN не ја претвора секоја измена на OpenSSL во GPL код, а исклучокот за поврзување не ги отстранува другите обврски што доаѓаат со прераспределба на библиотеката. Третирајте го исклучокот како една клаузула во поширока анализа и запишете ги сопствените известувања на библиотеката TLS заедно со сето друго.
Составете пакет докази
Пакетот има четири дела: попис на датотеки со верзии, опис на интеграцијата, список на измени со разлики и лиценцните текстови како што се доставуваат. Додајте ја датотеката со известувања што ја дистрибуирате и местото каде што се нуди изворниот код, ако вашите обврски бараат понуда.
Држете го пакетот под еден сопственик за ниту едно издание да не може да излезе без него.
Ништо од ова не решава правно прашање, и тоа е поентата: му ги дава фактите на квалификуван рецензент наместо резиме составено од сеќавање. Маркетинг описот на добавувачот не е доказ за неговата архитектура, а ниту вашето сопствено претпоставување за неа не е доказ.