Πώς λειτουργούν οι άδειες ανοιχτού κώδικα και πώς να τις προσθέσετε στα έργα σας

Πρόσφατα, υπήρξαν μερικά συναρπαστικά νέα για προγραμματιστές σε όλο τον κόσμο. Το Facebook άλλαξε την άδεια πολλαπλών βιβλιοθηκών που αναπτύσσουν. Έκαναν εναλλαγή από ευρεσιτεχνίες BSD-3 + σε MIT .

Αυτό φαίνεται καλό, αλλά τι σημαίνει; Ποιες είναι οι επιπτώσεις των διαφορετικών αδειών ανοιχτού κώδικα;

Αυτό το άρθρο θα σας δώσει μια γρήγορη κατανόηση των δημοφιλών αδειών. Θα σας διδάξει επίσης πώς να τα εφαρμόσετε στα έργα ανοιχτού κώδικα στο GitHub.

Η αρχή

Οι πιο δημοφιλείς άδειες ανοιχτού κώδικα έχουν μια κοινή πτυχή. Το Open Source Initiative (OSI) τα ενέκρινε.

Το OSI δημιουργήθηκε το 1998 με στόχο την προώθηση λογισμικού ανοιχτού κώδικα. Έχει δημιουργήσει το Open Source Definition (OSD) για να καθορίσει τι σημαίνει ένα λογισμικό ανοιχτού κώδικα.

Έτσι περιγράφουν τον εαυτό τους:

Το Open Source Initiative (OSI) είναι μια μη κερδοσκοπική εταιρεία με παγκόσμιο πεδίο που έχει δημιουργηθεί για να εκπαιδεύσει και να υποστηρίξει τα οφέλη του ανοιχτού κώδικα και να δημιουργήσει γέφυρες μεταξύ διαφορετικών συνιστωσών στην κοινότητα ανοιχτού κώδικα.

Οι άδειες

Οι περισσότερες άδειες ανοιχτού κώδικα περιλαμβάνουν τις ακόλουθες δηλώσεις:

  1. Το λογισμικό μπορεί να τροποποιηθεί, να χρησιμοποιηθεί στο εμπόριο και να διανεμηθεί.
  2. Το λογισμικό μπορεί να τροποποιηθεί και να χρησιμοποιηθεί ιδιωτικά.
  3. Στο λογισμικό πρέπει να περιλαμβάνεται μια ειδοποίηση άδειας και πνευματικών δικαιωμάτων.
  4. Οι δημιουργοί λογισμικού δεν παρέχουν καμία εγγύηση με το λογισμικό και δεν φέρουν καμία ευθύνη για οτιδήποτε.

Θα περάσουμε από τις πιο δημοφιλείς άδειες, με σειρά από τις πιο περιοριστικές έως τις πιο ανεκτικές (από την άποψη του χρήστη).

GNU General Public License, έκδοση 3 (GPLv3)

Το GPLv3 είναι μία από τις πιο περιοριστικές άδειες. Προσφέρει υψηλή προστασία για τον δημιουργό του λογισμικού.

  • Ο πηγαίος κώδικας πρέπει να δημοσιοποιείται κάθε φορά που γίνεται διανομή του λογισμικού.
  • Οι τροποποιήσεις του λογισμικού πρέπει να κυκλοφορούν με την ίδια άδεια .
  • Οι αλλαγές που έγιναν στον πηγαίο κώδικα πρέπει να τεκμηριωθούν .
  • Εάν χρησιμοποιήθηκε κατοχυρωμένο με δίπλωμα ευρεσιτεχνίας υλικό κατά τη δημιουργία του λογισμικού, παρέχει το δικαίωμα στους χρήστες να το χρησιμοποιούν. Εάν ο χρήστης μήνυσε οποιονδήποτε για τη χρήση του κατοχυρωμένου με δίπλωμα ευρεσιτεχνίας υλικού, χάνει το δικαίωμα χρήσης του λογισμικού.

Το GPLv2 είναι επίσης πολύ δημοφιλές. Η κύρια διαφορά από το GPLv3 είναι η ρήτρα για τις επιχορηγήσεις διπλωμάτων ευρεσιτεχνίας.

Αυτή η ρήτρα προστέθηκε στην έκδοση 3 για να εμποδίσει τις εταιρείες να χρεώσουν τους χρήστες για τη χρήση των διπλωμάτων ευρεσιτεχνίας τους.

Δημοφιλή έργα που χρησιμοποιούν το GPLv3 είναι τα Bash και GIMP . Το Linux χρησιμοποιεί το GPLv2.

Ο Ezequiel Foncubierta επεσήμανε κάτι σημαντικό για τις άδειες GPL:

Η άδεια χρήσης του πηγαίου κώδικα σας πρέπει να είναι συμβατή με την άδεια χρήσης του κώδικα ανοιχτού κώδικα με τον οποίο συνδέεστε. Για παράδειγμα, εάν ο κώδικάς σας είναι ιδιόκτητος, δεν θα επιτρέπεται να χρησιμοποιείτε βιβλιοθήκη με άδεια GPL. Αυτό είναι όπου οι άνθρωποι τείνουν να κάνουν περισσότερα λάθη.

Άδεια Apache 2.0

Το Apache License 2.0 προσφέρει περισσότερη ευελιξία στους χρήστες.

  • Ο πηγαίος κώδικας δεν χρειάζεται να είναι δημόσιος όταν γίνεται διανομή του λογισμικού.
  • Οι τροποποιήσεις στο λογισμικό μπορούν να κυκλοφορήσουν με οποιαδήποτε άδεια .
  • Οι αλλαγές που έγιναν στον πηγαίο κώδικα πρέπει να τεκμηριωθούν.
  • Προσφέρει την ίδια προστασία χρήσης διπλώματος ευρεσιτεχνίας με το GPLv3.
  • Απαγορεύει ρητά τη χρήση εμπορικών ονομασιών που βρίσκονται στο έργο.

Τα δημοφιλή έργα που χρησιμοποιούν το Apache License 2.0 είναι Android , Apache και Swift .

Διανομή λογισμικού Berkeley (BSD)

Το BSD έχει δύο κύριες εκδόσεις: 2-clause και 3-clause. Και οι δύο προσφέρουν μεγαλύτερη ευελιξία στους χρήστες από το Apache License 2.0.

  • Ο πηγαίος κώδικας δεν χρειάζεται να είναι δημόσιος όταν γίνεται διανομή του λογισμικού.
  • Οι τροποποιήσεις στο λογισμικό μπορούν να κυκλοφορήσουν με οποιαδήποτε άδεια .
  • Οι αλλαγές που έγιναν στον πηγαίο κώδικα ενδέχεται να μην τεκμηριώνονται.
  • Δεν προσφέρει καμία ρητή θέση στη χρήση διπλωμάτων ευρεσιτεχνίας.
  • Η ειδοποίηση άδειας και πνευματικών δικαιωμάτων πρέπει να περιλαμβάνεται στην τεκμηρίωση της μεταγλωττισμένης έκδοσης του πηγαίου κώδικα (σε αντίθεση με μόνο στον πηγαίο κώδικα)
  • Η ρήτρα 3 BSD δηλώνει ότι τα ονόματα του συντάκτη και των συνεργατών δεν μπορούν να χρησιμοποιηθούν για την προώθηση προϊόντων που προέρχονται από το λογισμικό χωρίς άδεια.

Δημοφιλή έργα που χρησιμοποιούν άδεια BSD είναι τα Go (3-clause), Pure.css (3-clause) και Sentry (3-clause).

Άδεια MIT

Το MIT είναι μια από τις πιο ανεκτές άδειες. Είναι επίσης το πιο δημοφιλές. Προσφέρει πολύ χαμηλή προστασία για τον συντάκτη του λογισμικού.

  • Ο πηγαίος κώδικας δεν χρειάζεται να είναι δημόσιος όταν γίνεται διανομή του λογισμικού.
  • Οι τροποποιήσεις στο λογισμικό μπορούν να κυκλοφορήσουν με οποιαδήποτε άδεια .
  • Οι αλλαγές που έγιναν στον πηγαίο κώδικα ενδέχεται να μην τεκμηριώνονται.
  • Δεν προσφέρει καμία ρητή θέση στη χρήση διπλωμάτων ευρεσιτεχνίας.

Δημοφιλή έργα που χρησιμοποιούν το MIT είναι Angular.js , jQuery , Rails , Bootstrap και πολλά άλλα.

Το Facebook React.js είχε άδεια ευρεσιτεχνίας BSD-3 + έως τις 25 Σεπτεμβρίου. Συνδύασε την άδεια BSD-3 με μια επιπλέον ρήτρα σχετικά με τη χρήση διπλωμάτων ευρεσιτεχνίας.

Με λίγα λόγια, εάν μηνύσετε το Facebook ή οποιαδήποτε από τις θυγατρικές του, χάνετε το δικαίωμα χρήσης του React (ή οποιουδήποτε άλλου λογισμικού με την ίδια άδεια).

Το React έχει πλέον άδεια MIT. Τώρα μπορείτε να μηνύσετε το Facebook και εξακολουθείτε να χρησιμοποιείτε το React. Τι ανακούφιση!

Εφαρμογή άδειας για έργα ανοιχτού κώδικα

Η αδειοδότηση των έργων σας είναι εύκολη. Πρέπει να προσθέσετε ένα LICENSE, LICENSE.txtή LICENSE.mdστον ριζικό κατάλογο του αποθετηρίου σας.

Το GitHub το καθιστά ακόμα πιο εύκολο:

  1. Ανοίξτε το αποθετήριο GitHub σε πρόγραμμα περιήγησης.
  2. Στον ριζικό κατάλογο, κάντε κλικ στο Create new file.
  3. Ονομάστε το αρχείο "ΑΔΕΙΑ".
  4. Κάντε κλικ στο Choose a license template.
  5. Διαλέξτε μία από τις άδειες (όλες αυτές που αναφέρονται σε αυτό το άρθρο υπάρχουν).
  6. Μόλις επιλεγεί, κάντε κλικ στο Review and submit.
  7. Commit το αρχείο.

Συνοψίζοντας…

  • Μία από τις πιο περιοριστικές άδειες είναι η GPL .
  • Μία από τις πιο ανεκτές άδειες είναι το MIT .
  • Άλλες δημοφιλείς άδειες είναι οι Apache License 2.0 και BSD .
  • Για να εφαρμόσετε μια άδεια χρήσης στο έργο σας GitHub, πρέπει να δημιουργήσετε ένα LICENSEαρχείο χρησιμοποιώντας τα πρότυπα άδειας χρήσης του GitHub.

Ρίξτε μια ματιά στην εξήγησή μου για το πώς χρησιμοποίησα το Python για να βρω ενδιαφέροντα άτομα για παρακολούθηση στο Medium!

Για περισσότερες ενημερώσεις, ακολουθήστε με στο Twitter.