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 кітапханасының өз хабарламаларын қалғанының бәрімен бірге жазыңыз.
Дәлелдер бумасын жинаңыз
Буманың төрт бөлігі бар: нұсқалары бар файлдар тізімі, интеграция сипаттамасы, айырмашылықтары бар өзгерістер тізімі және таратылатын күйіндегі лицензия мәтіндері. Тарататын хабарлама файлын және міндеттемелеріңіз ұсыныс талап етсе, бастапқы код ұсынылатын орынды қосыңыз.
Буманы бір иеге ұстаңыз, сонда олсыз ешбір шығарылым шықпайды.
Осының ешқайсысы заңды мәселені шешпейді, мәселе де осында: ол құзыретті рецензентке біреудің жадынан жинаған қорытындының орнына фактілерді береді. Жеткізушінің маркетингтік сипаттамасы оның сәулетіне дәлел емес, өзіңіздің болжамыңыз да дәлел емес.