Ορισμός του Ελεύθερου Λογισμικού

Ο Ορισμός του Ελεύθερου Λογισμικού αναφέρεται στην ανάλυση του όρου ελεύθερο λογισμικό από τον δημιουργό του, τον Ρίτσαρντ Στόλλμαν.
Το ελεύθερο λογισμικό παρέχει στους χρήστες την ελευθερία να εκτελούν, αντιγράφουν, διανέμουν, μελετούν, τροποποιούν και βελτιώνουν το ελεύθερο λογισμικό. Για την ακρίβεια, αναφέρεται σε τέσσερις βασικές ελευθερίες:
*Την ελευθερία να εκτελείτε το πρόγραμμα για οποιονδήποτε σκοπό (ελευθερία 0).
*Την ελευθερία να μελετάτε τον τρόπο λειτουργίας του προγράμματος και να το προσαρμόζετε στις ανάγκες σας (ελευθερία 1). Η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για να ισχύει κάτι τέτοιο.
*Την ελευθερία να αναδιανέμετε αντίγραφα του προγράμματος ώστε να βοηθάτε το συνάνθρωπο σας. (ελευθερία 2).
*Την ελευθερία να βελτιώνετε το πρόγραμμα και να δημοσιεύετε τις βελτιώσεις που έχετε κάνει στο ευρύ κοινό, ώστε να επωφεληθεί ολόκληρη η κοινότητα (ελευθερία 3). Η πρόσβαση στον πηγαίο κώδικα είναι προϋπόθεση για να ισχύει κάτι τέτοιο.

Ένα πρόγραμμα θεωρείται ελεύθερο λογισμικό όταν οι χρήστες του έχουν όλες τις παραπάνω ελευθερίες. 

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

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

Η ελευθερία της αναδιανομής αντιγράφων θα πρέπει να περιλαμβάνει εκτελέσιμες (executable) μορφές του προγράμματος, καθώς και τον πηγαίο κώδικα, τόσο για την τροποποιημένη όσο και για την αρχική έκδοση του προγράμματος. (Η διανομή προγραμμάτων σε εκτελέσιμη μορφή είναι απαραίτητη για εγκατεστημένα ελεύθερα λειτουργικά συστήματα). Θεωρείται δεκτό όταν δεν υπάρχει τρόπος να δημιουργηθεί η εκτελέσιμη μορφή για κάποιο συγκεκριμένο πρόγραμμα (από τη στιγμή που μερικές γλώσσες δεν υποστηρίζουν κάτι τέτοιο), αλλά θα πρέπει να έχουν την ελευθερία να αναδιανέμουν τέτοιες μορφές σε περίπτωση που αναπτύξουν ή βρουν κάποιο δικό τους τρόπο να τις δημιουργήσουν).

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

Μία σημαντική μέθοδος τροποποίησης ενός προγράμματος είναι η συγχώνευση του με διαθέσιμες ελεύθερες υπορουτίνες και υποπρογράμματα (modules). Εάν η άδεια του προγράμματος αναφέρει ότι δεν έχουν το δικαίωμα να το συγχωνεύσουν με ένα υπάρχον υποπρόγραμμα, για παράδειγμα εάν απαιτεί να είστε εσείς αυτός που κατέχει τα πνευματικά δικαιώματα (copyright holder) για οποιονδήποτε κώδικα έχετε προσθέσει, τότε η άδεια είναι πολύ περιοριστική ώστε να μπορεί να θεωρηθεί ελεύθερη (δηλαδή άδεια ελεύθερου λογισμικού).

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

Ωστόσο, μερικοί κανόνες που αφορούν τον τρόπο με τον οποίο διανέμεται το ελεύθερο λογισμικό είναι αποδεκτοί όταν δεν συγκρούονται με τις τέσσερις βασικές ελευθερίες. Για παράδειγμα, στην άδεια αντιγραφής (copyleft) όταν αναδιανέμετε κάποιο πρόγραμμα, δεν μπορείτε να προσθέσετε περιορισμούς ώστε να μειώσετε από τον χρήστη τις τέσσερις βασικές ελευθερίες. Αυτός ο κανόνας δεν συγκρούεται με τις βασικές ελευθερίες, αλλά τις προστατεύει.

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

"Ελεύθερο λογισμικό" δεν σημαίνει "μη-εμπορικό". Ένα ελεύθερο πρόγραμμα θα πρέπει να είναι διαθέσιμο για εμπορική χρήση, εμπορική ανάπτυξη ή εμπορική διανομή. Η εμπορική ανάπτυξη του ελευθέρου λογισμικού δεν είναι ασυνήθιστη. Αντιθέτως, τέτοιου είδους ελεύθερο λογισμικό είναι πολύ σημαντικό να υπάρχει.

Κανόνες για την διαδικασία πακεταρίσματος (packaging) μίας τροποποιημένης έκδοσης είναι αποδεκτοί όταν δεν σας περιορίζουν ουσιαστικά την ελευθερία να δημοσιεύετε τις διάφορες τροποποιημένες εκδόσεις. Κανόνες του τύπου "εάν διαθέσετε το πρόγραμμα με τον τάδε τρόπο θα πρέπει να τον διαθέσετε επίσης και με τον δείνα τρόπο" είναι αποδεκτοί, με την ίδια προϋπόθεση. (Σημειώστε ότι ένας τέτοιος κανόνας σας δίνει επίσης τη δυνατότητα να μη δημοσιεύσετε την δική σας έκδοση του προγράμματος καθόλου). Κανόνες οι οποίοι απαιτούν τη δημοσίευση του πηγαίου κώδικα στους χρήστες των προγραμμάτων όλων των εκδόσεων που έχετε διαθέσει δημόσια είναι επίσης αποδεκτοί. Επίσης είναι αποδεκτό σε μία άδεια ελεύθερου λογισμικού να υπάρχουν και άλλου είδους απαιτήσεις, όπως π.χ. εάν έχετε διανέμει μία τροποποιημένη έκδοση ενός προγράμματος και κάποιος προηγούμενος κατασκευαστής ζητήσει αντίγραφο του, θα πρέπει να του αποστείλετε ένα, ή να δηλώσετε τον εαυτό σας στις μετατροπές που κάνατε.

Στο έργο GNU, χρησιμοποιούν την "άδεια αντιγραφής (copyleft)" για να προστατεύσουν αυτές τις ελευθερίες νομικά και για όλους. Βέβαια υπάρχει και ελεύθερο λογισμικό το οποίο δεν χρησιμοποιεί την άδεια αντιγραφής (non-copylefted). 

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