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