2. Πως μπορείτε να συνεισφέρετε

Οι συνεισφορές στο σύστημα κατατάσσονται γενικά σε μια από τις ακόλουθες 5 κατηγορίες:

2.1. Αναφορές προβλήματος και γενικές επεξηγηματικές παρατηρήσεις-σχόλια

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

Αν βρείτε κάποιο bug ή αν έχετε κάνει κάποια συγκεκριμένη αλλαγή, παρακαλούμε κάντε αναφορά χρησιμοποιώντας το πρόγραμμα send-pr(1) ή την αντίστοιχη ιστοσελίδα. Προσπαθήστε να συμπληρώσετε όλα τα πεδία της αναφοράς. Αν οι αλλαγές που κάνατε δεν ξεπερνούν τα 65KB σε μέγεθος, συμπεριλάβετε τις αλλαγές σας απευθείας στην αναφορά. Αν οι αλλαγές είναι κατάλληλες για εφαρμογή στον πηγαίο κώδικα, προσθέστε την ετικέτα [PATCH] στην περίληψη της αναφοράς. Όταν συμπεριλαμβάνετε patches, μη χρησιμοποιείτε αντιγραφή-και-επικόλληση, διότι η αντιγραφή και επικόλληση μετατρέπει συχνά τους στηλοθέτες (TAB) σε κενά και αχρηστεύει το patch. Αν τα patches είναι πολύ μεγαλύτερα από 20KB, δοκιμάστε να τα συμπιέσετε (π.χ. με το gzip(1) ή το bzip2(1)) και χρησιμοποιήστε το εργαλείο uuencode(1) για να εισάγετε τη συμπιεσμένη μορφή στην αναφορά σας.

Μετά της υποβολή μιας αναφοράς θα λάβετε επιβεβαίωση παράλληλα με έναν αριθμό αναφοράς. Κρατήστε τον αριθμό ώστε να μπορείτε να μας ενημερώνετε με πληροφορίες σχετικά με το πρόβλημα στέλνοντας mail στο . Χρησιμοποιήστε τον αριθμό της αναφοράς σας στο θέμα του μηνύματος, π.χ. "Re: kern/3377". Επιπρόσθετες πληροφορίες για οποιοδήποτε αναφορά προβλήματος θα πρέπει να υποβάλλονται με τον παραπάνω τρόπο.

Εάν δε λάβετε επιβεβαίωση εγκαίρως (3 μέρες ως μια βδομάδα, ανάλογα με τη αξιοπιστία του email) ή για κάποιο λόγο αδυνατείτε να χρησιμοποιήσετε την εντολή send-pr(1), μπορείτε να απευθυνθείτε σε κάποιον προκειμένου να την αρχειοθετήσει για εσάς στέλνοντας mail στη ηλεκτρονική λίστα αναφορών προβλημάτων του FreeBSD.

Δείτε επίσης αυτό το άρθρο σχετικά με το πώς να γράφετε καλές αναφορές προβλημάτων.

2.2. Αλλαγές στην τεκμηρίωση

Οι αλλαγές στην τεκμηρίωση επιβλέπονται από την ηλεκτρονική λίστα ομάδας τεκμηρίωσης του FreeBSD. Για πλήρεις οδηγίες σχετικά με τον τρόπο που μπορείτε να συνεισφέρετε στην τεκμηρίωση του FreeBSD, δείτε τον Οδηγό τεκμηρίωσης του FreeBSD. Στείλτε τα καινούρια σας κείμενα ή τις αλλαγές σας (ακόμη και μικροδιορθώσεις είναι πάντα καλοδεχούμενες) χρησιμοποιώντας την εντολή send-pr(1) όπως περιγράφετε στο Αναφορά bugs και γενικά σχόλια - παρατηρήσεις.

2.3. Αλλαγές στον Πηγαίο Κώδικα

Μία προσθήκη ή αλλαγή στον υπάρχοντα κώδικα είναι κατά κάποιο τρόπο περίτεχνη υπόθεση και εξαρτάται αρκετά από τον βαθμό της ενημέρωσης που έχετε με την τρέχουσα κατάσταση της ανάπτυξης του FreeBSD. Υπάρχει μια ειδική συνεχώς αναπτυσσόμενη έκδοση του FreeBSD γνωστή ως «FreeBSD-CURRENT» η οποία είναι διαθέσιμη με διάφορους τρόπους για την ευκολία των προγραμματιστών που δραστηριοποιούνται ενεργά στην ανάπτυξη του συστήματος. Δείτε το Εγχειρίδιο του FreeBSD για περισσότερες πληροφορίες σχετικά με το που θα βρείτε και πώς μπορείτε να χρησιμοποιήσετε το FreeBSD-CURRENT.

Δουλεύοντας από παλιότερο κώδικα δυστυχώς σημαίνει ότι οι αλλαγές σας μπορεί μερικές φορές να είναι αρκετά ξεπερασμένες ή να αποκλίνουν πολύ, οπότε να δυσκολεύει κάπως η ενσωμάτωσή τους στο FreeBSD. Ρίσκα σαν γι' αυτά μπορούν να ελαχιστοποιηθούν κάπως με την συμμετοχή στις λίστες ηλεκτρονική λίστα ανακοινώσεων του FreeBSD και ηλεκτρονική λίστα της έκδοσης FreeBSD-CURRENT, στις οποίες διεξάγονται συζητήσεις για την τρέχουσα κατάσταση του συστήματος.

Αφού εξασφαλίσετε κάπως ένα σχετικά ενημερωμένο αντίγραφο του πηγαίου κώδικα ως βάση για τις αλλαγές σας, το επόμενο βήμα είναι να δημιουργήσετε diffs για αποστολή στην ομάδα ανάπτυξης του FreeBSD. Αυτό γίνεται με την εντολή diff(1).

Το προτιμώμενο format του diff(1) για την υποβολή patches είναι η ενοποιημένη μορφή εξόδου (unified diff), που δημιουργείται από την εντολή diff -u. Μια μικρή εξαίρεση είναι τα τα patches που αλλάζουν μεγάλα κομμάτια κώδικα, ουσιαστικά αντικαθιστώντας τα σχεδόν με μια καινούρια έκδοση. Για τέτοιες αλλαγές μπορεί να είναι πιο ευανάγνωστη η μορφή εξόδου που δημιουργείται από την εντολή diff -c.

Για παράδειγμα το:

% diff -c παλιό_αρχείο νέο_αρχείο

ή το

% diff -c -r παλιός_κατάλογος νέος_κατάλογος

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

Ομοίως το,

% diff -u παλιό_αρχείο νέο_αρχείο

ή το

% diff -u -r παλιός_κατάλογος νέος_κατάλογος

θα κάνει το ίδιο, αλλά θα παράγει diff ενοποιημένη μορφή.

Δείτε τη βοήθεια του εργαλείου diff(1) για περισσότερες λεπτομέρειες.

Από τη στιγμή που έχετε κάποια diffs, (τα οποία μπορείτε να ελέγξετε με την εντολή patch(1)), θα πρέπει να τα υποβάλλετε για ενσωμάτωση στο FreeBSD. Χρησιμοποιήστε το πρόγραμμα send-pr(1), όπως περιγράφετε στο κείμενο Αναφορά Bugs και γενικός σχολιασμός - παρατηρήσεις. Μη στέλνετε μόνο ένα μήνυμα με τα patches στη ηλεκτρονική λίστα τεχνικών συζητήσεων του FreeBSD αλλιώς θα χαθούν! Σας ευχαριστούμε προκαταβολικά για οποιαδήποτε προσφορά κώδικα (το έργο ανάπτυξης του FreeBSD είναι εθελοντική προσπάθεια που βασίζεται ακριβώς σε τέτοιες προσφορές!). Επειδή είμαστε απασχολημένοι, μπορεί να μη χειριστούμε την αίτηση για αλλαγή αμέσως, ωστόσο μέχρι να το κάνουμε αυτό, θα παραμείνει στην βάση αναφορών. Θυμηθείτε να επισημάνετε την υποβολή σας με την ετικέτα [PATCH] στην περίληψη της αναφοράς.

Αν νομίζετε ότι χρειάζεται (π.χ. έχετε προσθέτει, αφαιρέσει ή μετονομάσει κάποια αρχεία), χρησιμοποιείστε το εργαλείο tar για να πακετάρετε τις αλλαγές σας, και το εργαλείο uuencode(1) για να τις ενσωματώσετε στην αναφορά που θα στείλετε. Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το εργαλείο shar(1) αντί για το tar(1).

Αν η φύση των αλλαγών που θέλετε να κάνετε είναι κάπως ευαίσθητη, π.χ. αν δεν είστε σίγουροι για τα πνευματικά δικαιώματα και τη διανομή των αλλαγών ή αν απλά δεν είστε έτοιμοι να δώσετε στη δημοσιότητα κάποιες αλλαγές χωρίς ένα review ακόμα, τότε είναι καλύτερα να στείλετε τις αλλαγές σας απευθείας στην ομάδα core του FreeBSD αντί να τις προωθήσετε μέσω του send-pr(1). Η ομάδα core του FreeBSD αποτελείται από ένα πολύ μικρότερο αριθμό ατόμων. Έχετε υπόψιν όμως ότι αυτή η ομάδα είναι πολύ απασχολημένη, οπότε καλό είναι να τους στέλνετε μηνύματα μόνο όταν είστε αρκετά σίγουροι ότι είναι απαραίτητο.

Κάτι τελευταίο σχετικά με τον πηγαίο κώδικα του FreeBSD. Οι σελίδες τεκμηρίωσης intro(9) και style(9) περιέχουν πληροφορίες σχετικά με το στυλ κώδικα που προτιμούμε για το FreeBSD. Πριν στείλετε σημαντικές αλλαγές στην ομάδα ανάπτυξης είναι σημαντικό να έχετε εξοικειωθεί με το στυλ που γράφουμε και, όταν είναι δυνατόν, να το ακολουθήσετε στο γράψιμο του κώδικα που θα μας στείλετε.

2.4. Νέος Κώδικας και Μεγάλα Πακέτα Πρόσθετων Χαρακτηριστικών

Στην περίπτωση μιας σχετικά μεγάλης συνεισφοράς λογισμικού στο FreeBSD και κάθε φορά που προστίθεται ένα σημαντικό καινούριο χαρακτηριστικό στο σύστημα, είναι σχεδόν πάντα απαραίτητο να είναι διαθέσιμες οι αλλαγές με τη μορφή ενός πακέτου tar ή να είναι διαθέσιμες μέσω ενός εξυπηρετητή web ή FTP. Αν δεν έχετε πρόσβαση για να ανεβάσετε τα αρχεία σε κάποιοn εξυπηρετητή web ή FTP, ρωτήστε στην κατάλληλη λίστα ηλεκτρονικού ταχυδρομείου του FreeBSD και κάποιος άλλος μπορεί να φιλοξενήσει τα αρχεία για σας.

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

  1. Η άδεια χρήσης BSD. Αυτή η άδεια είναι η προτιμότερη, λόγω της ιδιαίτερης «χωρίς περιορισμούς» φύσης που έχει και της δυνατότητας χρήσης του κώδικα ακόμη και για εμπορικούς σκοπούς. Η Ομάδα του FreeBSD δεν αποθαρρύνει τέτοιου είδους χρήση του πηγαίου κώδικα. Το αντίθετο μάλιστα, ενθαρρύνει τη χρήση του κώδικα, αφού έτσι υπάρχει πιθανότητα ορισμένοι εμπορικοί να συνεισφέρουν με τη σειρά τους στην ανάπτυξη του FreeBSD.

  2. Η άδεια GNU General Public License, ή «GPL». αυτή η άδεια δεν είναι τόσο δημοφιλής επειδή χρειάζεται έξτρα προσπάθεια από οποιονδήποτε χρησιμοποιεί τον κώδικα για εμπορικούς σκοπούς, αλλά επειδή υπάρχει ένα μεγάλο σώμα πηγαίου κώδικα, το οποίο διανέμεται με αυτή την άδεια κι από το οποίο εξαρτιόμαστε (μεταγλωττιστής, assembler, προγράμματα μορφοποίησης κειμένου, κλπ.), θα ήταν κάπως χαζό να μη δεχόμαστε καμία αλλαγή σε τέτοιο κώδικα. Ο κώδικας με άδεια GPL διανέμεται όμως σε δικό του, ξεχωριστό μέρος του πηγαίου κώδικα του FreeBSD, κάτω από τους καταλόγους /sys/gnu και /usr/src/gnu. Έτσι είναι εύκολο να ξεχωρίσει κανείς από τον κώδικα του FreeBSD όλα τα μέρη με άδεια GPL, όταν υπάρχει λόγος να γίνει τέτοιος διαχωρισμός.

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

Για να ορίσετε ότι κάποιο δικό σας έργο πηγαίου κώδικα διανέμεται με τους όρους μιάς άδειας «τύπου BSD» μπορείτε να συμπεριλάβετε στην αρχή των αρχείων πηγαίου κώδικα το παρακάτω κείμενο, αντικαθιστώντας το κείμενο μεταξύ των %% με τις κατάλληλες πληροφορίες:

Copyright (c) %%χρονιά_ή_χρονιές_αλλαγών%%
        %%το_όνομά_σας%%, %%η_διεύθυνσή_σας%%.
    All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer as
   the first lines of this file unmodified.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

THIS SOFTWARE IS PROVIDED BY %%το_όνομά_σας%% ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL %%το_όνομά_σας%% BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

        $Id$

Ένα αντίγραφο αυτού του κειμένου υπάρχει στο αρχείο /usr/share/examples/etc/bsd-style-copyright, οπότε μπορείτε να το αντιγράφετε από εκεί κάθε φορά που χρειάζεται.

2.5. Χρήματα, Υλικό ή Πρόσβαση στο Διαδίκτυο

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

2.5.1. Χρηματικές Δωρεές

Η οργάνωση FreeBSD Foundation είναι ένας μη κερδοσκοπικός σύλλογος, ο οποίος έχει ιδρυθεί για να προωθήσει το έργο της Ομάδας του FreeBSD. Λόγω της νομικής φύσης του συλλόγου, η οργάνωση παρέχει μερικές φορολογικές ελαφρύνσεις στις Ηνωμένες Πολιτείες και πιο συγκεκριμένα στην πολιτεία του Colorado. Οι δωρεές στην οργάνωση εκπίπτουν από τους φόρους που πρέπει να πληρώσει κάποιος στις Ηνωμένες Πολιτείες· πιθανόν και σε άλλα μέρη.

Οι δωρέες σας μπορούν να σταλούν σε μορφή εμβάσματος, στη διεύθυνση:

    The FreeBSD Foundation
    7321 Brockway Dr.
    BoulderCO 80303
    USA
  



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

Περισσότερες πληροφορίες για την οργάνωση FreeBSD Foundation μπορείτε να βρείτε στην ανακοίνωση The FreeBSD Foundation -- an Introduction. Η επικοινωνία με την οργάνωση μπορεί να γίνει και μέσω ηλεκτρονικής αλληλογραφίας στη διεύθυνση .

2.5.2. Δωρεές Υλικού

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

2.5.3. Δωρέες Πρόσβασης στο Διαδίκτυο

Πάντα είναι χρήσιμο να έχουμε καινούρια mirror sites για το FTP, τον ιστότοπό μας ή το cvsup. Αν θέλετε να εγκαταστήσετε ένα τέτοιο mirror, παρακαλούμε δείτε τo άρθρο Mirroring FreeBSD. Εκεί θα βρείτε περισσότερες πληροφορίες.

Αυτό το κείμενο, και άλλα κείμενα, μπορεί να βρεθεί στο ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

Για ερωτήσεις σχετικά με το FreeBSD, διαβάστε την τεκμηρίωση πριν να επικοινωνήσετε με την <questions@FreeBSD.org>.
Για ερωτήσεις σχετικά με αυτή την τεκμηρίωση, στείλτε e-mail στην <doc@FreeBSD.org>.