Τι είναι το ελεύθερο λογισμικό;
“Ελεύθερο λογισμικό” σημαίνει λογισμικό που σέβεται την ελευθερία και την κοινότητα των χρηστών. Χονδρικά, σημαίνει ότι οι χρήστες έχουν την ελευθερία να εκτελούν, αντιγράφουν, διανέμουν, μελετούν, αλλάζουν και βελτιώνουν το λογισμικό. Έτσι, το “ελεύθερο λογισμικό” είναι ζήτημα ελευθερίας, όχι τιμής. Για να κατανοήσετε την έννοια, θα πρέπει να σκέφτεστε το “ελεύθερο (free)” όπως στον “ελεύθερο λόγο (free speech)” και όχι όπως στο “δωρεάν μπύρα (free beer).” Μερικές φορές το αποκαλούμε “λογισμικό libre,” δανειζόμενοι τη γαλλική ή ισπανική λέξη για το “ελεύθερο” όπως στην ελευθερία, ώστε να δείξουμε πως δεν εννοούμε ότι το λογισμικό είναι δωρεάν.
Μπορεί να έχετε πληρώσει για να προμηθευτείτε αντίγραφα ενός ελεύθερου προγράμματος, ή να έχετε προμηθευτεί τα αντίγραφα χωρίς κόστος. Ανεξαρτήτως όμως από τον τρόπο που πήρατε τα αντίγραφά σας, θα πρέπει πάντα να έχετε την ελευθερία να αντιγράφετε και να τροποποιείτε το λογισμικό, ακόμα και να πουλάτε αντίγραφά του.
Κάνουμε καμπάνια για αυτές τις ελευθερίες επειδή αξίζουν στον καθένα μας. Με αυτές τις ελευθερίες, οι χρήστες (τόσο ατομικά όσο και συλλογικά) ελέγχουν το πρόγραμμα και τι κάνει εκείνο γι' αυτούς. Όταν οι χρήστες δεν ελέγχουν το πρόγραμμα, το αποκαλούμε ένα “μη-ελεύθερο” ή “ιδιόκτητο” πρόγραμμα. Το μη-ελεύθερο πρόγραμμα ελέγχει τους χρήστες, και ο προγραμματιστής ελέγχει το πρόγραμμα· αυτό κάνει το πρόγραμμα ένα εργαλείο άδικης ισχύος.
Ο “ανοιχτός κώδικας” είναι κάτι διαφορετικό: έχει μια πολύ διαφορετική φιλοσοφία, βασισμένη σε διαφορετικές αξίες. Ο πρακτικός ορισμός του είναι διαφορετικός επίσης, αλλά σχεδόν όλα τα προγράμματα ανοιχτού κώδικα είναι στην πραγματικότητα ελεύθερα. Εξηγούμε τη διαφορά στο Γιατί ο “ανοιχτός κώδικας” χάνει το νόημα του ελεύθερου λογισμικού.
Πίνακας περιεχομένων
- Ο ορισμός του ελεύθερου λογισμικού
- Διευκρινίζοντας το σύνορο μεταξύ ελεύθερου και
μη-ελεύθερου
- Την ελευθερία να εκτελείτε το πρόγραμμα όπως επιθυμείτε
- Την ελευθερία να μελετήσετε τον πηγαίο κώδικα και να κάνετε αλλαγές
- Την ελευθερία να αναδιανέμετε εάν το επιθυμείτε· βασικές απαιτήσεις
- Copyleft
- Κανόνες σχετικά με το πακετάρισμα και τις λεπτομέρειες διανομής
- Κανονισμοί εξαγωγών
- Νομικές σκέψεις
- Βασισμένες σε σύμβαση άδειες
- Ο ορισμός του ελεύθερου λογισμικού στην πράξη
- Πέρα από το λογισμικό
- Ιστορία
Έχετε μια ερώτηση σχετικά με την αδειοδότηση του ελεύθερου λογισμικού που δεν απαντάται εδώ; Δείτε τους άλλους μας πόρους αδειοδότησης, και αν είναι απαραίτητο επικοινωνήστε με το Εργαστήριο Συμμόρφωσης του ΙΕΛ στο licensing@fsf.org.
Ο ορισμός του ελεύθερου λογισμικού
Ο ορισμός του ελεύθερου λογισμικού παρουσιάζει τα κριτήρια για το αν ένα συγκεκριμένο πρόγραμμα λογισμικού πληρεί τις προϋποθέσεις για να θεωρείται ελεύθερο λογισμικό. Από καιρό σε καιρό αναθεωρούμε αυτό τον ορισμό, για να τον διευκρινίσουμε ή να διασαφήσουμε ερωτήματα σχετικά με λεπτά ζητήματα. Δείτε την ενότητα Ιστορία παρακάτω για μια λίστα με αλλαγές που επηρεάζουν τον ορισμό του ελεύθερου λογισμικού.
Οι τέσσερις ουσιώδεις ελευθερίες
Ένα πρόγραμμα είναι ελεύθερο λογισμικό αν οι χρήστες του προγράμματος έχουν τις τέσσερις ουσιώδεις ελευθερίες: [1]
- Την ελευθερία να εκτελείτε το πρόγραμμα όπως επιθυμείτε, για οποιονδήποτε σκοπό (ελευθερία 0).
- Την ελευθερία να μελετάτε πως λειτουργεί το πρόγραμμα, και να το αλλάζετε ώστε να κάνει τις υπολογιστικές σας διαδικασίες όπως επιθυμείτε (ελευθερία 1). Η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για να ισχύει κάτι τέτοιο.
- Την ελευθερία να αναδιανέμετε αντίγραφα ώστε να μπορείτε να βοηθάτε άλλους (ελευθερία 2).
- Την ελευθερία να διανέμετε αντίγραφα των τροποποιημένων εκδόσεών σας στους άλλους (ελευθερία 3). Με το να το κάνετε αυτό μπορείτε να δώσετε σε ολόκληρη την κοινότητα μια ευκαιρία να επωφεληθεί από τις αλλαγές σας. Η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για αυτό.
Ένα πρόγραμμα είναι ελεύθερο λογισμικό αν δίνει στους χρήστες επαρκώς όλες αυτές τις ελευθερίες. Αλλιώς είναι μη-ελεύθερο. Παρόλο που μπορούμε να ξεχωρίσουμε διάφορα μη-ελεύθερα σχήματα διανομής σε όρους του πόσο μακριά αποτυχαίνουν να είναι ελεύθερα, τα θεωρούμε όλα εξίσου ανήθικα.
Σε οποιοδήποτε δοσμένο σενάριο, αυτές οι ελευθερίες πρέπει να έχουν εφαρμογή σε οποιοδήποτε κώδικα σχεδιάζουμε να κάνουμε χρήση του. Για παράδειγμα, θεωρήστε ένα πρόγραμμα Α το οποίο ξεκινά αυτόματα ένα πρόγραμμα Β για να χειριστεί κάποιες περιπτώσεις. Αν σχεδιάζουμε να διανείμουμε το Α έτσι όπως είναι, αυτό υπονοεί ότι οι χρήστες θα χρειάζονται το Β, επομένως πρέπει να κρίνουμε αν τόσο το Α όσο και το Β είναι ελεύθερα. Ωστόσο, αν σχεδιάζουμε να τροποποιήσουμε το Α ώστε να μη χρησιμοποιεί το Β, μόνο το Α χρειάζεται να είναι ελεύθερο· το Β δεν έχει σχέση με εκείνο το σχέδιο.
Το ελεύθερο λογισμικό μπορεί να είναι εμπορικό
“Ελεύθερο λογισμικό” δεν σημαίνει “μη-εμπορικό.” Αντίθετα, ένα ελεύθερο πρόγραμμα πρέπει να είναι διαθέσιμο για εμπορική χρήση, εμπορική ανάπτυξη, και εμπορική διανομή. Αυτή η πολιτική είναι θεμελιώδους σημασίας—χωρίς αυτή το ελεύθερο λογισμικό δεν θα μπορούσε να επιτύχει τους στόχους του.
Θέλουμε να προσκαλέσουμε τον καθένα να χρησιμοποιεί το σύστημα GNU, περιλαμβανόμενων των επιχειρήσεων και των υπαλλήλων τους. Αυτό απαιτεί να επιτρέπεται η εμπορική χρήση. Ελπίζουμε ότι οι ελεύθερες αντικαταστάσεις προγραμμάτων θα αντικαταστήσουν συγκρίσιμα ιδιόκτητα προγράμματα, αλλά δεν μπορούν να το κάνουν αυτό αν οι επιχειρήσεις απαγορεύεται να τις χρησιμοποιούν. Θέλουμε εμπορικά προϊόντα που περιέχουν λογισμικό να συμπεριλαμβάνουν το σύστημα GNU, και αυτό θα συνιστούσε εμπορική διανομή για μία τιμή. Η εμπορική ανάπτυξη ελεύθερου λογισμικού δεν είναι πια ασυνήθιστη· τέτοιο ελεύθερο εμπορικό λογισμικό είναι πολύ σημαντικό. Η επί πληρωμή επαγγελματική υποστήριξη για ελεύθερο λογισμικό καλύπτει μια σημαντική ανάγκη.
Συνεπώς, το να εξαιρείται η εμπορική χρήση, η εμπορική ανάπτυξη ή η εμπορική διανομή θα χώλαινε την κοινότητα ελεύθερου λογισμικού και θα εμπόδιζε το δρόμο της προς την επιτυχία. Πρέπει να συμπεράνουμε ότι ένα πρόγραμμα αδειοδοτημένο με τέτοιους περιορισμούς δεν χαρακτηρίζεται ως ελεύθερο λογισμικό.
Ένα ελεύθερο πρόγραμμα πρέπει να προσφέρει τις τέσσερις ελευθερίες σε οποιονδήποτε ενδεχόμενο χρήστη που αποκτά ένα αντίγραφο του λογισμικού, ο οποίος έχει συμμορφωθεί έως τώρα με τους όρους της ελεύθερης άδειας που καλύπτει το λογισμικό σε οποιαδήποτε προηγούμενη διανομή του. Θέτοντας κάποιες από τις ελευθερίες εκτός εμβέλειας σε μερικούς χρήστες ή απαιτώντας ότι οι χρήστες πρέπει να πληρώνουν, σε χρήμα ή σε είδος, για να τις ασκούν, είναι ισάξιο με το να μην παρέχονται οι ελευθερίες υπό συζήτηση, και έτσι καθίσταται το πρόγραμμα μη-ελεύθερο.
Διευκρινίζοντας το σύνορο μεταξύ ελεύθερου και μη-ελεύθερου
Στο υπόλοιπο αυτού του άρθρου εξηγούμε με μεγαλύτερη ακρίβεια πόσο μακριά πρέπει να εκτείνονται οι διάφορες ελευθερίες, σε διάφορα θέματα, ώστε ένα πρόγραμμα να είναι ελεύθερο.
Την ελευθερία να εκτελείτε το πρόγραμμα όπως επιθυμείτε
Η ελευθερία του να εκτελείτε το πρόγραμμα σημαίνει την ελευθερία σε οποιοδήποτε είδους πρόσωπο ή οργανισμό να το χρησιμοποιήσει σε οποιοδήποτε είδους σύστημα υπολογιστή, για οποιοδήποτε είδος εργασίας και σκοπό, χωρίς να απαιτείται να επικοινωνήσει γι' αυτό με τον προγραμματιστή ή με οποιαδήποτε συγκεκριμένη άλλη οντότητα. Σε αυτή την ελευθερία, είναι ο σκοπός του χρήστη που έχει σημασία, και όχι του κατασκευαστή. Εσείς, ως χρήστες είστε ελεύθεροι να εκτελείτε το πρόγραμμα για τους δικούς σας σκοπούς, και αν το διανέμετε σε άλλους ανθρώπους, τότε και εκείνοι είναι ελεύθεροι να το εκτελούν για τους δικούς τους σκοπούς, αλλά δεν έχετε το δικαίωμα να επιβάλετε τους δικούς σας σκοπούς σε εκείνους.
Η ελευθερία να εκτελείτε το πρόγραμμα όπως επιθυμείτε σημαίνει ότι δεν σας απαγορεύεται ή δεν σας σταματάνε από το να το εκτελέσετε. Αυτό δεν έχει τίποτα να κάνει με τη λειτουργικότητα που έχει το πρόγραμμα, το αν είναι τεχνικά ικανό να λειτουργεί σε οποιοδήποτε δοσμένο περιβάλλον, ή αν είναι χρήσιμο για οποιαδήποτε συγκεκριμένη υπολογιστική δραστηριότητα.
Για παράδειγμα, αν ο κώδικας αυθαίρετα απορρίπτει ορισμένες σημαντικές εισόδους—ή ακόμη αποτυχαίνει άνευ όρων—αυτό μπορεί να κάνει το πρόγραμμα λιγότερο χρήσιμο, ίσως ακόμη και εντελώς άχρηστο, αλλά δεν αρνείται στους χρήστες την ελευθερία να εκτελέσουν το πρόγραμμα, οπότε δε συγκρούεται με την ελευθερία 0. Αν το πρόγραμμα είναι ελεύθερο, οι χρήστες μπορούν να ξεπεράσουν την απώλεια χρησιμότητας, επειδή οι ελευθερίες 1 και 3 επιτρέπουν στους χρήστες και στις κοινότητες να κάνουν και να διανέμουν τροποποιημένες εκδόσεις χωρίς τον αυθαίρετα ενοχλητικό κώδικα.
Το “όπως επιθυμείτε” περιλαμβάνει, προαιρετικά, το “καθόλου” εάν αυτό είναι που επιθυμείτε. Έτσι, δεν υπάρχει ανάγκη για μια ξεχωριστή “ελευθερία να μην εκτελείτε το πρόγραμμα.”
Την ελευθερία να μελετήσετε τον πηγαίο κώδικα και να κάνετε αλλαγές
Προκειμένου οι ελευθερίες 1 και 3 (η ελευθερία να κάνετε αλλαγές και η ελευθερία να δημοσιεύετε τις τροποποιημένες εκδόσεις) να έχουν νόημα, θα πρέπει να έχετε πρόσβαση στον πηγαίο κώδικα του προγράμματος. Επομένως, η προσβασιμότητα του πηγαίου κώδικα είναι απαραίτητη προϋπόθεση για το ελεύθερο λογισμικό. Ο θολωμένος (obfuscated) “πηγαίος κώδικας” δεν είναι πραγματικός πηγαίος κώδικας και δεν μετράει ως πηγαίος κώδικας.
Ο πηγαίος κώδικας ορίζεται ως η προτιμώμενη μορφή του προγράμματος για να γίνονται αλλαγές σε αυτό. Επομένως, οποιαδήποτε μορφή αλλάζει ένας προγραμματιστής για να αναπτύξει το πρόγραμμα είναι ο πηγαίος κώδικας της έκδοσης εκείνου του προγραμματιστή.
Η ελευθερία 1 περιλαμβάνει την ελευθερία να χρησιμοποιείτε την αλλαγμένη έκδοση στη θέση της πρωτότυπης. Αν το πρόγραμμα παραδίδεται σε ένα προϊόν σχεδιασμένο να εκτελεί τις τροποποιημένες εκδόσεις κάποιου άλλου αλλά αρνείται να εκτελέσει τη δική σας—μια πρακτική γνωστή ως “τιβοποίηση (tivoization)” ή “κλείδωμα,” ή (στη διεστραμμένη ορολογία εκείνων που το εφαρμόζουν) ως “ασφαλής εκκίνηση”—η ελευθερία 1 καθίσταται μια άδεια προσποίηση αντί μια πρακτική πραγματικότητα. Αυτά τα εκτελέσιμα δεν είναι ελεύθερο λογισμικό ακόμη και αν ο πηγαίος κώδικας από τον οποίο μεταγλωττίστηκαν είναι ελεύθερος.
Μία σημαντική μέθοδος τροποποίησης ενός προγράμματος είναι η συγχώνευσή του με διαθέσιμες ελεύθερες υπορουτίνες και αρθρώματα. Εάν η άδεια του προγράμματος αναφέρει ότι δεν έχετε το δικαίωμα να συγχωνεύσετε ένα κατάλληλα αδειοδοτημένο υπάρχον άρθρωμα—για παράδειγμα, εάν απαιτεί να είστε εσείς ο κάτοχος πνευματικών δικαιωμάτων οποιουδήποτε κώδικα προσθέτετε—τότε η άδεια είναι πολύ περιοριστική ώστε να μπορεί να χαρακτηριστεί ελεύθερη.
Το κατά πόσο μια αλλαγή αποτελεί βελτίωση είναι ένα υποκειμενικό ζήτημα. Αν το δικαίωμά σας να τροποποιήσετε ένα πρόγραμμα περιορίζεται, στην ουσία, σε αλλαγές που κάποιος άλλος θεωρεί βελτίωση, εκείνο το πρόγραμμα δεν είναι ελεύθερο.
Μια ειδική περίπτωση της ελευθερίας 1 είναι να διαγράφετε τον κώδικα του προγράμματος, ώστε να επιστρέφει μη κάνοντας τίποτα, ή να το κάνετε να εκτελεί κάποιο άλλο πρόγραμμα. Επομένως, η ελευθερία 1 περιλαμβάνει την “ελευθερία να διαγράφετε το πρόγραμμα.”
Την ελευθερία να αναδιανέμετε εάν το επιθυμείτε· βασικές απαιτήσεις
Ελευθερία να διανέμετε (ελευθερίες 2 και 3) σημαίνει ότι είστε ελεύθεροι να αναδιανέμετε αντίγραφα, με ή χωρίς τροποποιήσεις, δωρεάν ή χρεώνοντας μια αμοιβή για την διανομή, σε οποιονδήποτε και οπουδήποτε. Το να είστε ελεύθεροι να κάνετε αυτά τα πράγματα σημαίνει (μεταξύ άλλων) πως δεν χρειάζεται να ζητήσετε εξουσιοδότηση ή να πληρώσετε ώστε να πράξετε έτσι.
Θα πρέπει επίσης να έχετε την ελευθερία να κάνετε τροποποιήσεις και να τις χρησιμοποιείτε ιδιωτικά στην δουλειά ή για διασκέδαση, χωρίς να χρειάζεται να το αναφέρετε. Αν δημοσιεύσετε τις αλλαγές σας, δεν θα πρέπει να είστε υποχρεωμένοι να ειδοποιήσετε κάποιο συγκεκριμένο άτομο, ή με κάποιο συγκεκριμένο τρόπο.
Η ελευθερία 3 περιλαμβάνει την ελευθερία να δημοσιεύετε τις τροποποιημένες εκδόσεις σας ως ελεύθερο λογισμικό. Μια ελεύθερη άδεια μπορεί επίσης να επιτρέπει άλλους τρόπους για να δημοσιευτούν· με άλλα λόγια δεν χρειάζεται να είναι μια βασισμένη στο copyleft άδεια. Ωστόσο, μια άδεια που απαιτεί οι τροποποιημένες εκδόσεις να είναι μη-ελεύθερες δεν πληρεί τις προδιαγραφές μιας ελεύθερης άδειας.
Η ελευθερία της αναδιανομής αντιγράφων θα πρέπει να περιλαμβάνει εκτελέσιμες (executable) μορφές του προγράμματος, καθώς και τον πηγαίο κώδικα, τόσο για την τροποποιημένη όσο και για την αρχική έκδοση του προγράμματος. (Η διανομή προγραμμάτων σε εκτελέσιμη μορφή είναι απαραίτητη για εγκατεστημένα ελεύθερα λειτουργικά συστήματα). Θεωρείται δεκτό όταν δεν υπάρχει τρόπος να δημιουργηθεί η εκτελέσιμη μορφή για κάποιο συγκεκριμένο πρόγραμμα (από τη στιγμή που μερικές γλώσσες δεν υποστηρίζουν κάτι τέτοιο), αλλά θα πρέπει να έχετε την ελευθερία να αναδιανέμετε τέτοιες μορφές σε περίπτωση που αναπτύξετε ή βρείτε κάποιο δικό σας τρόπο να τις δημιουργήσετε).
Copyleft
Ορισμένα είδη κανόνων σχετικοί με τον τρόπο με τον οποίο διανέμεται το ελεύθερο λογισμικό είναι αποδεκτοί, όταν δεν συγκρούονται με τις κεντρικές ελευθερίες. Για παράδειγμα, στο copyleft (με απλά λόγια) είναι ο κανόνας ότι όταν αναδιανέμετε το πρόγραμμα, δεν μπορείτε να προσθέσετε περιορισμούς που να αρνούνται σε άλλους ανθρώπους τις κεντρικές ελευθερίες. Αυτός ο κανόνας δεν συγκρούεται με τις κεντρικές ελευθερίες· μάλλον τις προστατεύει.
Στο έργο GNU, χρησιμοποιούμε το copyleft για να προστατεύσουμε τις τέσσερις ελευθερίες νομικά για όλους. Πιστεύουμε ότι υπάρχουν σημαντικοί λόγοι για το ότι είναι καλύτερα να χρησιμοποιείτε το copyleft. Ωστόσο, και το μη βασισμένο στο copyleft ελεύθερο λογισμικό είναι επίσης ηθικό. Δείτε τις κατηγορίες ελεύθερου λογισμικού για μία περιγραφή του πως το “ελεύθερο λογισμικό,” το “βασισμένο στο copyleft λογισμικό” καθώς και άλλες κατηγορίες λογισμικού σχετίζονται μεταξύ τους.
Κανόνες σχετικά με το πακετάρισμα και τις λεπτομέρειες διανομής
Κανόνες για το πως να πακετάρετε μια τροποποιημένη έκδοση είναι αποδεκτοί, αν δεν περιορίζουν ουσιαστικά την ελευθερία σας να δημοσιεύετε τροποποιημένες εκδόσεις, ή την ελευθερία σας να κάνετε και να χρησιμοποιείτε ιδιωτικά τροποποιημένες εκδόσεις. Έτσι, είναι αποδεκτό για την άδεια να απαιτεί να αλλάξετε το όνομα της τροποποιημένης έκδοσης, να αφαιρέσετε ένα λογότυπο, ή να ταυτοποιήσετε τις τροποποιήσεις σας ως δικές σας. Όσο αυτές οι απαιτήσεις δεν είναι τόσο επαχθείς ώστε ουσιαστικά να σας παρεμποδίζουν να δημοσιεύσετε τις αλλαγές σας, είναι αποδεκτές· κάνετε ήδη άλλες αλλαγές στο πρόγραμμα, οπότε δεν είναι πρόβλημα να κάνετε μερικές ακόμη.
Κανόνες ότι “αν κάνετε την έκδοσή σας διαθέσιμη με αυτό τον τρόπο, τότε πρέπει να την κάνετε διαθέσιμη και με εκείνο τον τρόπο” μπορεί να είναι αποδεκτοί επίσης, με την ίδια προϋπόθεση. Ένα παράδειγμα ενός τέτοιου αποδεκτού κανόνα είναι να λέει κάποιος ότι αν έχετε διανείμει μια τροποποιημένη έκδοση και ένας προηγούμενος προγραμματιστής ζητά ένα αντίγραφό της, πρέπει να στείλετε ένα. (Σημειώστε ότι ένας τέτοιος κανόνας εξακολουθεί να σας αφήνει την επιλογή του αν θα διανείμετε καταρχήν την έκδοσή σας.) Κανόνες που απαιτούν τη δημοσίευση του πηγαίου κώδικα στους χρήστες για τις εκδόσεις που θέτετε σε δημόσια χρήση είναι επίσης αποδεκτές.
Ένα ειδικό ζήτημα προκύπτει όταν μια άδεια απαιτεί την αλλαγή του ονόματος με το οποίο το πρόγραμμα θα κληθεί από άλλα προγράμματα. Αυτό ουσιαστικά σας εμποδίζει να δημοσιεύσετε την αλλαγμένη σας έκδοση ώστε να αντικαταστήσει την πρωτότυπη όταν καλείται από εκείνα τα άλλα προγράμματα. Αυτού του είδους η απαίτηση είναι αποδεκτή μόνο αν υπάρχει μια κατάλληλη εγκατάσταση ψευδωνύμων που σας επιτρέπει να ορίσετε το όνομα του πρωτότυπου προγράμματος ως ένα ψευδώνυμο για την τροποποιημένη σας έκδοση.
Κανονισμοί εξαγωγών
Μερικές φορές κρατικοί κανονισμοί έλεγχου εξαγωγών και εμπορικές κυρώσεις μπορεί να περιορίσουν την ελευθερία σας να διανέμετε αντίγραφα προγραμμάτων διεθνώς. Οι παραγωγοί λογισμικού δεν έχουν την ισχύ να εξουδετερώσουν ή να παρακάμψουν τέτοιους περιορισμούς, αλλά αυτό που μπορούν και πρέπει να κάνουν είναι να αρνηθούν να τους επιβάλλουν ως όρους για τη χρήση του προγράμματος. Με αυτόν τον τρόπο, οι περιορισμοί δεν θα επηρεάσουν δραστηριότητες και ανθρώπους εκτός της δικαιοδοσίας αυτών των κυβερνήσεων. Έτσι, οι ελεύθερες άδειες λογισμικού δεν πρέπει να απαιτούν υπακοή σε οποιουσδήποτε μη τετριμμένους κανονισμούς εξαγωγών ως συνθήκη εξάσκησης οποιασδήποτε από τις ουσιώδεις ελευθερίες.
Η απλή αναφορά της ύπαρξης των κανονισμών εξαγωγών, χωρίς να τις κάνετε έναν όρο της ίδιας της άδειας, είναι αποδεκτή καθώς δεν περιορίζει τους χρήστες. Αν ένας κανονισμός εξαγωγών είναι στην πραγματικότητα τετριμμένος για το ελεύθερο λογισμικό, τότε το να απαιτείται ως όρος δεν είναι πραγματικό πρόβλημα· ωστόσο, είναι ένα ενδεχόμενο πρόβλημα, καθώς μια μετέπειτα αλλαγή στη νομοθεσία εξαγωγών θα μπορούσε να καταστήσει την απαίτηση μη τετριμμένη και συνεπώς να καταστήσει το λογισμικό μη-ελεύθερο.
Νομικές σκέψεις
Για να είναι αυτές οι ελευθερίες πραγματικές, πρέπει να είναι μόνιμες και αμετάκλητες όσο δεν κάνετε κάτι λάθος. Αν ο προγραμματιστής του λογισμικού έχει τη δύναμη να ανακαλέσει την άδεια, ή αναδρομικά να προσθέσει περιορισμούς στους όρους της, χωρίς εσείς να έχετε κάνει κάτι λάθος ώστε να δώσετε την αφορμή, τότε το λογισμικό δεν είναι ελεύθερο.
Μια ελεύθερη άδεια δεν μπορεί να απαιτεί συμμόρφωση με την άδεια ενός μη-ελεύθερου προγράμματος. Έτσι, για παράδειγμα, αν μια άδεια απαιτεί να συμμορφωθείτε με τις άδειες “όλων των προγραμμάτων που χρησιμοποιείτε,” στην περίπτωση ενός χρήστη που εκτελεί μη-ελεύθερα προγράμματα αυτό θα απαιτούσε συμμόρφωση με τις άδειες εκείνων των μη-ελεύθερων προγραμμάτων. Αυτό κάνει την άδεια μη-ελεύθερη.
Είναι αποδεκτό για μια ελεύθερη άδεια να προσδιορίζει ποιας επικράτειας ο νόμος έχει εφαρμογή, ή που πρέπει να γίνεται η δίκη, ή και τα δύο.
Βασισμένες σε σύμβαση άδειες
Οι περισσότερες άδειες ελεύθερου λογισμικού βασίζονται στα πνευματικά δικαιώματα (copyright) και υπάρχουν όρια ως προς το είδος των απαιτήσεων που μπορούν να επιβληθούν μέσω αυτών. Εάν μία άδεια βασισμένη στα πνευματικά δικαιώματα σέβεται την ελευθερία με βάση την παραπάνω περιγραφή, είναι απίθανο να έχει κάποιο άλλο πρόβλημα που δεν είναι αναμενόμενο (αν και αυτό συμβαίνει περιστασιακά). Ωστόσο, κάποιες άδειες ελεύθερου λογισμικού είναι βασισμένες σε συμβόλαια και τα συμβόλαια μπορούν να επιβάλλουν ένα πολύ μεγαλύτερο εύρος περιορισμών. Αυτό σημαίνει πως υπάρχουν πολλοί τρόποι με τους οποίους μία τέτοια άδεια μπορεί να είναι απαράδεκτα περιοριστική και ανελεύθερη.
Δεν είναι δυνατόν να αναφέρουμε όλους τους πιθανούς τρόπους που θα μπορούσε αυτό να συμβεί. Εάν μία βασισμένη σε σύμβαση άδεια περιορίζει τον χρήστη κατά έναν ασυνήθιστο τρόπο που οι βασισμένες στα πνευματικά δικαιώματα άδειες δεν μπορούν, και ο οποίος δεν αναφέρεται εδώ ως νόμιμος, θα πρέπει να σκεφτούμε γι΄αυτό, και πιθανότατα θα αποφασίσουμε πως είναι μη-ελεύθερη.
Ο ορισμός του ελεύθερου λογισμικού στην πράξη
Πως ερμηνεύουμε αυτά τα κριτήρια
Σημειώστε πως κριτήρια σαν και αυτά που αναφέρονται στον ορισμό του ελεύθερου λογισμικού απαιτούν προσεκτική σκέψη για την ερμηνεία τους. Για να αποφασίσουμε κατά πόσο μία συγκεκριμένη άδεια λογισμικού πληρεί τις προϋποθέσεις μιας ελεύθερης άδειας λογισμικού, την κρίνουμε με βάση αυτά τα κριτήρια για να προσδιορίσουμε το κατά πόσο πληρεί το πνεύμα τους καθώς επίσης και τις ακριβείς λέξεις. Εάν μία άδεια επιβάλλει παράλογους περιορισμούς, την απορρίπτουμε, ακόμα και αν δεν τους αναμέναμε στα κριτήρια. Πολλές φορές ή απαίτηση κάποιας άδειας δημιουργεί ένα ζήτημα που απαιτεί εκτενή σκέψη, συμπεριλαμβανομένων και συζητήσεων με δικηγόρο, πριν αποφασίσουμε αν η απαίτηση είναι αποδεκτή. Όταν καταλήγουμε σε ένα συμπέρασμα για ένα καινούργιο θέμα, συχνά ανανεώνουμε αυτά τα κριτήρια για να είναι πιο εύκολο να δούμε εάν συγκεκριμένες άδειες είναι δεκτές ή όχι.
Λάβετε βοήθεια με τις ελεύθερες άδειες
Εάν σας ενδιαφέρει το κατά πόσο μία συγκεκριμένη άδεια κατατάσσεται στις άδειες ελευθέρου λογισμικού, δείτε τη δική μας λίστα αδειών. Εάν η άδεια που σας ενδιαφέρει δεν είναι στην λίστα, μπορείτε να μας ρωτήσετε στέλνοντας ηλεκτρονική αλληλογραφία στο <licensing@gnu.org>.
Εάν σκέφτεστε να συντάξετε μια καινούργια άδεια, παρακαλούμε επικοινωνήστε με το Ίδρυμα Ελεύθερου Λογισμικού, πρώτα με ηλεκτρονική αλληλογραφία σε αυτήν τη διεύθυνση. Ο πολλαπλασιασμός διαφορετικών ελεύθερων αδειών σημαίνει περισσότερη δουλειά από μέρους των χρηστών για την κατανόηση των αδειών. Ίσως μπορέσουμε σας βοηθήσουμε να βρείτε μία υπάρχουσα άδεια ελεύθερου λογισμικού που ικανοποιεί τις ανάγκες σας.
Εάν αυτό δεν είναι δυνατόν, και πραγματικά χρειάζεστε μια καινούργια άδεια, με τη βοήθειά μας μπορείτε να εξασφαλίσετε ότι αυτή η άδεια είναι πράγματι μια ελεύθερη άδεια λογισμικού και να αποφύγετε διάφορα πρακτικά προβλήματα.
Χρησιμοποιείτε τις κατάλληλες λέξεις όταν μιλάτε για το ελεύθερο λογισμικό
Όταν μιλάμε για το ελεύθερο λογισμικό, είναι καλό να αποφεύγουμε όρους όπως “δίνω δωρεάν (give away)” ή “δωρεάν (for free),” διότι αυτοί οι όροι υπονοούν ότι το ζήτημα είναι η τιμή και όχι η ελευθερία. Κάποιοι κοινοί όροι όπως “πειρατεία” ενσωματώνουν απόψεις που ελπίζουμε πως δεν θα ασπαστείτε. Δείτε το άρθρο Λέξεις που προκαλούν σύγχυση και φράσεις που αξίζει να αποφεύγονται για μία συζήτηση σχετικά με αυτούς τους όρους. Έχουμε επίσης και μία λίστα κατάλληλων μεταφράσεων του όρου “ελεύθερο λογισμικό” σε διάφορες γλώσσες.
Μία άλλη ομάδα χρησιμοποιεί τον όρο “ανοιχτός κώδικας” για να σημαίνει κάτι κοντινό (αλλά όχι ταυτόσημο) με το “ελεύθερο λογισμικό.” Εμείς προτιμούμε τον όρο “ελεύθερο λογισμικό” διότι, μόλις ακούσετε ότι αναφέρεται στην ελευθερία και όχι στην τιμή, φέρνει στο νου την ελευθερία. Η λέξη “ανοιχτός” ποτέ δεν αναφέρεται στην ελευθερία.
Πέρα από το λογισμικό
Τα εγχειρίδια λογισμικού πρέπει να είναι ελεύθερα, για τους ίδιους λόγους για τους οποίους το λογισμικό πρέπει να είναι ελεύθερο, και επειδή τα εγχειρίδια είναι στην ουσία μέρος του λογισμικού.
Τα ίδια επιχειρήματα έχουν επίσης νόημα και για άλλα είδη έργων που έχουν πρακτική χρήση—δηλαδή για έργα που ενσωματώνουν χρήσιμη γνώση, όπως τα εκπαιδευτικά έργα και τα έργα αναφοράς. Η Βικιπαίδεια είναι το πιο ευρέως γνωστό παράδειγμα.
Οποιοδήποτε είδος έργου μπορεί να είναι ελεύθερο, και ο ορισμός του ελεύθερου λογισμικού έχει επεκταθεί σε έναν ορισμό των ελεύθερων πολιτισμικών έργων που μπορεί να εφαρμοστεί σε οποιοδήποτε είδος έργου.
Ιστορία
Από καιρό σε καιρό αναθεωρούμε αυτό τον Ορισμό του Ελεύθερου Λογισμικού. Εδώ είναι η λίστα με τις σημαντικές αλλαγές, μαζί με συνδέσμους που δείχνουν ακριβώς τι άλλαξε.
- Έκδοση 1.169: Εξηγεί πιο καθαρά γιατί οι τέσσερις ελευθερίες πρέπει να έχουν εφαρμογή σε εμπορικές δραστηριότητες. Εξηγεί γιατί οι τέσσερις ελευθερίες συνεπάγονται την ελευθερία να μην εκτελείτε το πρόγραμμα και την ελευθερία να το διαγράφετε, και επομένως δεν υπάρχει ανάγκη να δηλώνονται εκείνες ως ξεχωριστές απαιτήσεις.
- Έκδοση 1.165: Διευκρινίζεται ότι αυθαίρετες ενοχλήσεις στον κώδικα δεν αναιρούν την ελευθερία 0, και ότι οι ελευθερίες 1 και 3 επιτρέπουν στους χρήστες να τις αφαιρέσουν.
- Έκδοση 1.153: Διευκρινίζεται ότι ελευθερία να εκτελείτε το πρόγραμμα σημαίνει ότι τίποτα δεν σας σταματά στο να το κάνετε να εκτελεστεί.
- Έκδοση 1.141: Διευκρινίζεται ποιος κώδικας χρειάζεται να είναι ελεύθερος.
- Έκδοση 1.135: Να λέγεται κάθε φορά ότι η ελευθερία 0 είναι η ελευθερία να εκτελείτε το πρόγραμμα όπως επιθυμείτε.
- Έκδοση 1.134: Η ελευθερία 0 δεν είναι ζήτημα της λειτουργικότητας του προγράμματος.
- Έκδοση 1.131: Μια ελεύθερη άδεια δεν μπορεί να απαιτεί συμμόρφωση με μια μη-ελεύθερη άδεια ενός άλλου προγράμματος.
- Έκδοση 1.129: Να δηλώνεται ρητά ότι επιτρέπεται ο προσδιορισμός της επιλογής νόμου και δικαστηρίου. (Αυτή ήταν πάντα η πολιτική μας.)
- Έκδοση 1.122: Μια απαίτηση ελέγχων εξαγωγής είναι ένα πραγματικό πρόβλημα εάν η απαίτηση είναι μη-τετριμμένη· αλλιώς είναι μονάχα ένα πιθανό πρόβλημα.
- Έκδοση 1.118: Διευκρίνιση: το ζήτημα είναι τα όρια στο δικαίωμά σας να τροποποιήσετε, όχι στο τι τροποποιήσεις έχετε κάνει. Και οι τροποποιήσεις δεν περιορίζονται σε “βελτιώσεις”
- Έκδοση 1.111: Διασάφηση της 1.77 με τη δήλωση ότι μόνο αναδρομικοί περιορισμοί δεν είναι αποδεκτοί. Οι κάτοχοι των πνευματικών δικαιωμάτων μπορούν πάντα να παραχωρούν πρόσθετη άδεια για χρήση του έργου, δημοσιεύοντας το έργο παράλληλα με άλλον τρόπο.
- Έκδοση 1.105: Αντανακλά, στη σύντομη δήλωση της ελευθερίας 1, το σημείο (ήδη διατυπωμένο στην έκδοση 1.80) ότι περιλαμβάνει την πραγματική χρήση της τροποποιημένης σας έκδοσης για τις υπολογιστικές σας διαδικασίες.
- Έκδοση 1.92: Διευκρινίζει ότι ο θολωμένος (obfuscated) κώδικας δεν πληρεί τις προϋποθέσεις για να είναι πηγαίος κώδικας.
- Έκδοση 1.90: Διευκρινίζει ότι η ελευθερία 3 σημαίνει το δικαίωμα να διανέμετε αντίγραφα της δικής σας τροποποιημένης η βελτιωμένης έκδοσης, όχι το δικαίωμα να συμμετέχετε στο έργο ανάπτυξης κάποιου άλλου.
- Έκδοση 1.89: Η ελευθερία 3 περιλαμβάνει το δικαίωμα να διαθέτετε τροποποιημένες εκδόσεις ως ελεύθερο λογισμικό.
- Έκδοση 1.80: Η ελευθερία 1 πρέπει να είναι πρακτική, όχι απλά θεωρητική· π.χ., όχι τιβοποίηση (tivoization).
- Έκδοση 1.77: Διευκρινίζει ότι όλες οι αναδρομικές αλλαγές στην άδεια είναι μη αποδεκτές, ακόμη και αν δεν περιγράφονται ως πλήρεις αλλαγές.
- Έκδοση
1.74: Τέσσερις διευκρινήσεις σημείων που δεν ήταν αρκετά σαφή, ή
δηλώνονταν σε μερικά μέρη αλλά δεν αντανακλώνταν παντού:
- “Βελτιώσεις” δεν σημαίνει ότι η άδεια μπορεί να περιορίσει ουσιαστικά τι είδη τροποποιημένων εκδόσεων μπορείτε να δημοσιεύσετε. Η ελευθερία 3 περιλαμβάνει τη διανομή τροποποιημένων εκδόσεων, όχι απλά αλλαγών.
- Το δικαίωμα να συγχωνεύσετε υπάρχοντα αρθρώματα αναφέρεται σε εκείνα που είναι κατάλληλα αδειοδοτημένα.
- Αναφέρετε ρητά το συμπέρασμα του σημείου σχετικά με τους ελέγχους εξαγωγών.
- Η επιβολή μιας αλλαγής άδειας συνεπάγεται ανάκληση της παλιάς άδειας.
- Έκδοση 1.57: Προσθέτει ενότητα “Πέρα από το λογισμικό”.
- Έκδοση 1.46: Διευκρινίζει ποιανού σκοπός είναι σημαντικός στην ελευθερία να εκτελείτε το πρόγραμμα για οποιοδήποτε σκοπό.
- Έκδοση 1.41: Διευκρινίζει το λεκτικό σχετικά με άδειες βασισμένες σε σύμβαση.
- Έκδοση 1.40: Εξηγεί γιατί μια ελεύθερη άδεια πρέπει να σας επιτρέπει να χρησιμοποιείτε άλλο διαθέσιμο ελεύθερο λογισμικό για να δημιουργήσετε τις τροποποιήσεις σας.
- Έκδοση 1.39: Σημειώνει ότι είναι αποδεκτό για μια άδεια το να απαιτεί από εσάς να παρέχετε πηγαίο κώδικα για εκδόσεις του λογισμικού που θέτετε σε δημόσια χρήση.
- Έκδοση 1.31: Σημειώνει ότι είναι αποδεκτό να απαιτεί μια άδεια να ταυτοποιήστε εσείς ως ο συγγραφέας των τροποποιήσεων. Άλλες ήσσονος σημασίας διευκρινήσεις διάσπαρτες στο κείμενο.
- Έκδοση 1.23: Αντιμετωπίζει πιθανά προβλήματα σχετιζόμενα με της βασισμένες σε σύμβαση άδειες.
- Έκδοση 1.16: Εξηγείται γιατί η διανομή εκτελέσιμων αρχείων είναι σημαντική.
- Έκδοση 1.11: Σημείωση ότι μια ελεύθερη άδεια μπορεί να απαιτεί να στέλνετε στους προηγούμενους προγραμματιστές ένα αντίγραφο των εκδόσεων που διανέμετε, μετά από αίτημά τους.
Υπάρχουν κενά στους αριθμούς εκδόσεων που φαίνονται παραπάνω επειδή υπάρχουν και άλλες αλλαγές σε αυτή τη σελίδα που δεν επηρεάζουν τον ορισμό ή τις ερμηνείες του. Για παράδειγμα, η λίστα δεν περιλαμβάνει αλλαγές σε παρενθέσεις, μορφοποίηση, συλλαβισμό, στίξη, ή άλλα μέρη της σελίδας. Μπορείτε να επισκοπήσετε την πλήρη λίστα αλλαγών στη σελίδα μέσω της cvsweb διεπαφής.
Υποσημείωση
- Ο λόγος που αριθμούνται 0,1, 2 και 3 είναι ιστορικός. Γύρω στο 1990 υπήρχαν τρεις ελευθερίες, αριθμημένες 1, 2 και 3. Ύστερα συνειδητοποιήσαμε ότι η ελευθερία να εκτελείτε το πρόγραμμα έπρεπε να αναφερθεί ρητά. Ήταν εμφανώς πιο βασική από τις υπόλοιπες τρεις, οπότε κανονικά θα έπρεπε να προηγείται από εκείνες. Αντί να επαναριθμίσουμε τις υπόλοιπες, την κάναμε ελευθερία 0.