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 գրադարանի սեփական ծանուցումները գրանցեք մնացած ամեն ինչի հետ։
Հավաքեք ապացույցների փաթեթը
Փաթեթն ունի չորս մաս՝ ֆայլերի գույքագրումը տարբերակներով, ինտեգրման նկարագրությունը, փոփոխությունների ցանկը տարբերություններով և լիցենզիայի տեքստերը՝ տարածված տեսքով։ Ավելացրեք ձեր տարածած ծանուցման ֆայլը և այն տեղը, որտեղ առաջարկվում է սկզբնաղբյուրը, եթե ձեր պարտավորությունները պահանջում են առաջարկ։
Փաթեթը պահեք մեկ սեփականատիրոջ ներքո, որպեսզի ոչ մի թողարկում չկարողանա դուրս գալ առանց դրա։
Այս ամենից ոչինչ չի լուծում իրավական հարց, և դա է իմաստը. այն իրավասու գրախոսին տալիս է փաստերը՝ ի փոխարեն ինչ-որ մեկի հիշողությունից հավաքված ամփոփման։ Մատակարարի մարքեթինգային նկարագրությունը նրա ճարտարապետության ապացույց չէ, և ձեր սեփական ենթադրությունը դրա մասին նույնպես ապացույց չէ։