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 библиотеката заедно с всичко останало.
Сглобете пакета с доказателства
Пакетът има четири части: описа на файловете с версии, описанието на интеграцията, списъка с промени с разлики и лицензионните текстове във вида, в който се доставят. Добавете файла с бележки, който разпространявате, и мястото, където се предлага изходен код, ако задълженията ви изискват предложение.
Дръжте пакета под един собственик, за да не може издание да излезе без него.
Нищо от това не решава правен въпрос и това е смисълът: дава на квалифициран рецензент фактите вместо резюме, събрано от паметта на някого. Маркетинговото описание на доставчик не е доказателство за неговата архитектура и вашето предположение за нея също не е доказателство.