Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Forking the GPL way - Βαγγέλης Παπαϊωάννου, Ορέ...

Forking the GPL way - Βαγγέλης Παπαϊωάννου, Ορέστης Σαμαράς

Speakers: Βαγγέλης Παπαϊωάννου, Ορέστης Σαμαράς

Στην ομιλία “Forking the GPL Way” θα μιλήσουμε για την έννοια του forking ανοιχτού λογισμικού υπό την Άδεια GNU General Public License (GPL).

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

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

WordPress Greek Community

November 22, 2024
Tweet

More Decks by WordPress Greek Community

Other Decks in Programming

Transcript

  1. Στο λογισμικό ανοιχτού κώδικα, ένα fork είναι κάτι παραπάνω από

    απλή αντιγραφή! Είναι μια πρόσκληση σε ένα δημιουργικό ταξίδι. Με την GPL, όλοι χτίζουμε πάνω στις ιδέες του άλλου, με τη νομική υποχρέωση να κρατάμε την πόρτα ανοιχτή για τους επόμενους. Τα forks μας θυμίζουν ότι το καλύτερο λογισμικό εξελίσσεται μέσω κοινότητας, συνεργασίας και μιας υγιούς δόσης περιέργειας. Όταν η ζωή σου δίνει ανοιχτό κώδικα, γιατί να μην φτιάξεις forks;
  2. Εισαγωγή στο Λογισμικό ανοιχτού κώδικα Τι είναι το Λογισμικό Ανοιχτού

    Κώδικα; Το Λογισμικό Ανοιχτού Κώδικα (Open Source Software) είναι λογισμικό του οποίου ο πηγαίος κώδικας είναι διαθέσιμος στο κοινό. Αυτό σημαίνει ότι οποιοσδήποτε μπορεί να δει, να μελετήσει, να τροποποιήσει και να διανείμει τον κώδικα, συνήθως με την προϋπόθεση ότι τηρεί τους όρους της άδειας χρήσης του λογισμικού.
  3. Άδειες ανοιχτού λογισμικού Στην κοινότητα του ανοιχτού λογισμικού, χρησιμοποιούνται αρκετές

    άδειες, όπως η MIT, η Apache, η BSD και η GNU GPL. Κάθε άδεια έχει τις δικές της απαιτήσεις και σκοπό, προσφέροντας διαφορετικά επίπεδα ελευθερίας και διασφαλίζοντας συγκεκριμένες χρήσεις του λογισμικού.
  4. General Public License Η άδεια GPL διασφαλίζει ότι το λογισμικό

    παραμένει ανοιχτό για χρήση, τροποποίηση και διανομή, με την υποχρέωση οι τροποποιήσεις και οι βελτιώσεις να διατίθενται υπό τους ίδιους όρους. Αυτό ενισχύει τη διαφάνεια και την πρόσβαση, διατηρώντας το λογισμικό ελεύθερα προσβάσιμο και συνεργατικό για την κοινότητα.
  5. General Public License Version 2, June 1991 Copyright (C) 1989,

    1991 Free Software Foundation, Inc. <https://fsf.org/> Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.
  6. Fork Το fork είναι η διαδικασία με την οποία κάποιος

    αντιγράφει τον πηγαίο κώδικα ενός έργου ανοιχτού λογισμικού και ξεκινά να το αναπτύσσει ανεξάρτητα, δημιουργώντας ουσιαστικά ένα νέο παράλληλο έργο. Αυτό συμβαίνει σε περιπτώσεις όπου ο προγραμματιστής ή η ομάδα προγραμματιστών θέλουν να ακολουθήσουν διαφορετική κατεύθυνση από την αρχική ή έχουν συγκεκριμένες ανάγκες που δεν καλύπτονται από το υπάρχον έργο. Ένα fork μπορεί να είναι αποτέλεσμα διαφορετικών απόψεων, ανάγκης για πειραματισμό ή καινοτομίας. Όταν γίνεται fork, δημιουργείται ένα νέο αποθετήριο (repository), το οποίο είναι εντελώς ανεξάρτητο από το αρχικό. Αυτό σημαίνει ότι δεν φέρει τα προηγούμενα στατιστικά χρήσης, τα issues (αιτήματα επίλυσης προβλημάτων), τους χρήστες ή τα ιστορικά δεδομένα από το πρωτότυπο έργο. Το νέο αυτό αποθετήριο ξεκινά με μηδενικά δεδομένα και στατιστικά, και η εξέλιξή του εξαρτάται αποκλειστικά από τη νέα ομάδα που το διαχειρίζεται. Το fork αποτελεί βασική αρχή του ανοιχτού λογισμικού, αφού προσφέρει στους προγραμματιστές την ελευθερία να τροποποιούν και να προσαρμόζουν τον κώδικα, διατηρώντας ταυτόχρονα την ανεξαρτησία από την αρχική ομάδα ανάπτυξης.
  7. Υπάρχουν πολλά παραδείγματα γνωστών forks ανοιχτού λογισμικού, τα οποία δημιουργήθηκαν

    για διάφορους λόγους, όπως διαφωνίες για την κατεύθυνση του έργου, ανάγκη για νέες λειτουργίες ή προσαρμογές, ή ακόμα και αλλαγές στην ιδιοκτησία. Ακολουθούν τρία από τα πιο γνωστά forks: WordPress (fork του b2/cafelog). Το WordPress, μία από τις πιο γνωστές πλατφόρμες διαχείρισης περιεχομένου (CMS), ξεκίνησε ως fork του b2/cafelog το 2003. Όταν η ανάπτυξη του b2/cafelog σταμάτησε, οι προγραμματιστές Matt Mullenweg και Mike Little αποφάσισαν να το συνεχίσουν, προσθέτοντας νέες δυνατότητες και βελτιώσεις. Το WordPress αναπτύχθηκε ραγδαία και σήμερα είναι το πιο δημοφιλές CMS παγκοσμίως. LibreOffice (fork του OpenOffice). Το LibreOffice προέκυψε ως fork του OpenOffice το 2010, όταν η κοινότητα διαφώνησε με τη νέα διαχείριση του OpenOffice από την Oracle. Το LibreOffice αναπτύχθηκε από την κοινότητα με στόχο να προσφέρει ένα πιο ανοιχτό και ανεξάρτητο περιβάλλον, κάτι που το έκανε να κερδίσει μεγάλη υποστήριξη. MariaDB (fork του MySQL). Το MariaDB είναι ένα επιτυχημένο fork του MySQL, που δημιουργήθηκε μετά την εξαγορά του από την Oracle για να διασφαλιστεί η ανοιχτή και ανεξάρτητη ανάπτυξή του. Πλήρως συμβατό με το MySQL, το MariaDB διατηρεί έναν συμβολικό δεσμό με το αρχικό έργο, παίρνοντας το όνομά του από τη Maria, ενώ το MySQL είχε ονομαστεί από την άλλη κόρη του δημιουργού, My.
  8. Fork Το fork είναι μια βασική πρακτική στο ανοιχτό λογισμικό,

    που επιτρέπει στους προγραμματιστές να δημιουργούν νέες εκδοχές ενός έργου με βάση τον υπάρχοντα κώδικα. Η GPL (GNU General Public License) διευκολύνει αυτή τη διαδικασία, καθώς επιτρέπει όχι μόνο τη χρήση και τη διανομή του λογισμικού, αλλά απαιτεί επίσης οποιεσδήποτε αλλαγές να διατίθενται με την ίδια άδεια. Έτσι, το έργο που προκύπτει από ένα fork παραμένει ανοιχτό και ελεύθερα διαθέσιμο στην κοινότητα. Αυτός ο μηχανισμός προωθεί την εξέλιξη του λογισμικού μέσω διαφορετικών κατευθύνσεων, επιτρέποντας παράλληλα στους χρήστες και στους προγραμματιστές να επωφεληθούν από την ποικιλομορφία των διαθέσιμων εκδόσεων του ίδιου έργου.
  9. Fork Αν ένα fork φιλοξενείται στο επίσημο αποθετήριο, χρησιμοποιεί το

    ίδιο "slug" και έχει αλλάξει μόνο έναν χαρακτήρα στον τίτλο, μπορεί να θεωρηθεί κακόβουλο αν σκοπός του είναι η παραπλάνηση των χρηστών ώστε να το εκλάβουν ως το αυθεντικό έργο. Αυτό είναι επικίνδυνο γιατί: Παραπλανεί τους χρήστες να πιστέψουν ότι πρόκειται για το αυθεντικό έργο, αυξάνοντας τον κίνδυνο να εγκαταστήσουν την κλωνοποιημένη έκδοση κατά λάθος. 1. Εκμεταλλεύεται την εμπιστοσύνη της κοινότητας, δημιουργώντας την εντύπωση ότι συνδέεται με το πρωτότυπο, κάτι που μπορεί να προκαλέσει σύγχυση στους χρήστες και να αποσπάσει την προσοχή από το αυθεντικό έργο. 2. Η κοινότητα του ανοιχτού λογισμικού συχνά αντιδρά σε τέτοια forks, ενημερώνοντας τους χρήστες και αναφέροντας παραπλανητικές πρακτικές, ενώ οι διαχειριστές των αποθετηρίων είναι καλό να παρακολουθούν για παρόμοιες περιπτώσεις και να επεμβαίνουν όταν χρειάζεται.