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 ბიბლიოთეკის საკუთარი შეტყობინებები დანარჩენ ყველაფერთან ერთად ჩაწერეთ.
შეაგროვეთ მტკიცებულებების პაკეტი
პაკეტს ოთხი ნაწილი აქვს: ფაილების ინვენტარი ვერსიებით, ინტეგრაციის აღწერა, ცვლილებების სია სხვაობებით და ლიცენზიის ტექსტები განაწილებული სახით. დაამატეთ თქვენ მიერ გავრცელებული შეტყობინების ფაილი და ადგილი, სადაც წყაროს კოდი შეთავაზებულია, თუ თქვენი ვალდებულებები შეთავაზებას მოითხოვს.
პაკეტი ერთ მესაკუთრესთან შეინახეთ, რომ არც ერთი გამოშვება მის გარეშე არ გავიდეს.
ამ ყველაფრიდან არაფერი წყვეტს სამართლებრივ კითხვას და ეს არის აზრი: ის უფლებამოსილ რეცენზენტს ფაქტებს აძლევს და არა ვიღაცის მეხსიერებიდან შედგენილ შეჯამებას. მომწოდებლის მარკეტინგული აღწერა მისი არქიტექტურის მტკიცებულება არ არის და თქვენი ვარაუდიც ამის შესახებ მტკიცებულება არ არის.