Διεπαφή 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 δίπλα σε όλα τα άλλα.
Συναρμολογήστε τον φάκελο τεκμηρίων
Ο φάκελος έχει τέσσερα μέρη: την απογραφή αρχείων με εκδόσεις, την περιγραφή της ενσωμάτωσης, τη λίστα τροποποιήσεων με διαφορές και τα κείμενα άδειας όπως διανέμονται. Προσθέστε το αρχείο σημειώσεων που διανέμετε και το σημείο όπου προσφέρεται ο πηγαίος κώδικας, αν οι υποχρεώσεις σας απαιτούν προσφορά.
Κρατήστε τον φάκελο υπό έναν ιδιοκτήτη ώστε καμία έκδοση να μην μπορεί να βγει χωρίς αυτόν.
Τίποτα από αυτά δεν αποφασίζει νομικό ζήτημα, και αυτό είναι το νόημα: δίνει σε έναν αρμόδιο αξιολογητή τα γεγονότα αντί για μια σύνοψη που συγκέντρωσε κάποιος από μνήμης. Η διαφημιστική περιγραφή ενός προμηθευτή δεν είναι απόδειξη για την αρχιτεκτονική του, και η δική σας εικασία γι' αυτήν δεν είναι επίσης απόδειξη.