doc/el_GR.ISO8859-7/articles/releng/article.xml
2013-11-13 07:52:45 +00:00

996 lines
44 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="iso-8859-7"?>
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
<!ENTITY art.re.pkgs '<link xmlns="http://docbook.org/ns/docbook" xlink:href="../releng-packages/article.html">Η Οργάνωση Έκδοσης των Πακέτων Λογισμικού από Τρίτους</link>'>
]>
<!--
Η Οργάνωση των Επίσημων Εκδόσεων του FreeBSD
The FreeBSD Greek Documentation Project
%SOURCE% en_US.ISO8859-1/articles/releng/article.xml
%SRCID% 1.48
-->
<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="el">
<info><title>Η Οργάνωση των Εκδόσεων του FreeBSD</title>
<confgroup>
<confdates>Νοέμβρης 2001</confdates>
<conftitle>BSDCon Europe</conftitle>
</confgroup>
<authorgroup>
<author><personname><firstname>Murray</firstname><surname>Stokely</surname></personname><personblurb>
<para>Έχω ασχοληθεί με την ανάπτυξη προϊόντων βασισμένων στο FreeBSD
από το 1997, στην Walnut Creek CDROM, στην BSDi, και τώρα στην
Wind River Systems. Η έκδοση 4.4 του FreeBSD ήταν η πρώτη επίσημη
έκδοση του FreeBSD στην οποία έπαιξα σημαντικό ρόλο.</para>
</personblurb><affiliation>
<address><email>murray@FreeBSD.org</email>
<otheraddr xlink:href="http://www.FreeBSD.org/~murray">http://www.FreeBSD.org/~murray</otheraddr>
</address>
</affiliation></author>
</authorgroup>
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
<abstract>
<para>Αυτό το άρθρο περιγράφει την αντιμετώπιση και οργάνωση της ομάδας
ανάπτυξης του FreeBSD, όσον αφορά στην προετοιμασία ποιοτικών εκδόσεων
του Λειτουργικού Συστήματος FreeBSD. Εξηγεί με λεπτομέρεια την
μεθοδολογία που χρησιμοποιείται για τις επίσημες εκδόσεις του FreeBSD και
περιγράφει τα εργαλεία που είναι διαθέσιμα σε όσους ενδιαφέρονται να
παράγουν παραμετροποιημένες εκδόσεις του FreeBSD για εσωτερική ή
εμπορική χρήση και ανάπτυξη προϊόντων.</para>
</abstract>
</info>
<!-- Εισαγωγή -->
<sect1 xml:id="introduction">
<title>Εισαγωγή</title>
<para>Η ανάπτυξη του FreeBSD είναι μια πολύ ανοιχτή διαδικασία. Το FreeBSD
αποτελείται από συνεισφορές χιλιάδων ανθρώπων από όλο τον κόσμο. Η ομάδα
του FreeBSD παρέχει πρόσβαση μέσω ανώνυμου <acronym>CVS</acronym>[1] σε
όλους, έτσι ώστε να μπορεί όποιος θέλει να δει μηνύματα log, διαφορές
(patches) που έχουν τα διάφορα development branches, και άλλα
χαρακτηριστικά που βοηθούν την ανάπτυξη, τα οποία προκύπτουν από την χρήση
ενός αυστηρού συστήματος διαχείρισης κώδικα. Αυτό αποτέλεσε και τον πιο
σημαντικό παράγοντα έλξης για ένα μεγάλο αριθμό από ταλαντούχους
προγραμματιστές από όλο τον κόσμο στο FreeBSD. Είναι προφανές, βέβαια,
πως πολύ σύντομα θα είχε γίνει εντελώς χαοτική η κατάσταση αν είχαν όλοι,
από όλο τον κόσμο, πρόσβαση να γράψουν στον κώδικα. Γι' αυτό, μόνο μια
<quote>επιλεγμένη</quote> ομάδα από περίπου 300 άτομα έχουν πρόσβαση να
γράψουν στο <acronym>CVS</acronym> repository. Αυτοί οι
<emphasis>committers[6]</emphasis> είναι υπεύθυνοι για το μεγαλύτερο μέρος
της ανάπτυξηςς που γίνεται στο FreeBSD. Μια
<emphasis>κεντρική-ομάδα[7]</emphasis> (core team) από διακεκριμένους
προγραμματιστές εκλέγεται για να παρέχει κάποιου είδους καθοδήγηση και μια
κατεύθυνση στο σύνολο των committers.</para>
<para>Οι ταχύτατοι ρυθμοί ανάπτυξης του <systemitem>FreeBSD</systemitem> δεν αφήνουν και πολύ χρόνο για το
ξεκαθάρισμα του συστήματος ανάπτυξης σε μια έκδοση με ποιότητα που να
αξίζει να χρησιμοποιείται ευρέως. Για να λυθεί αυτό το δίλλημα, η
ανάπτυξη γίνεται ταυτόχρονα σε δυο παράλληλα μονοπάτια. Ο κύριος κορμός
ανάπτυξης είναι ο <emphasis>HEAD</emphasis> ή <emphasis>trunk</emphasis>
στο CVS repository μας, γνωστός και ως <quote>FreeBSD-CURRENT</quote>, ή
<quote>-CURRENT</quote> εν συντομία.</para>
<para>Ένας πιο σταθερός κορμός συντηρείται, γνωστός με το όνομα
<quote>FreeBSD-STABLE</quote> ή πιο σύντομα <quote>-STABLE</quote>.
Και οι δυο κορμοί είναι αποθηκευμένοι στο κύριο CVS repository, στην
Καλιφόρνια, και αντιγράφονται μέσω <application>CVSup</application>[2] σε mirrors παντού στον κόσμο.
Το FreeBSD-CURRENT[8] είναι η <quote>πρώτη σειρά</quote> της ανάπτυξης του
FreeBSD καθώς σε αυτό γίνονται πρώτα όλες οι καινούριες αλλαγές.
Το FreeBSD-STABLE είναι ο κορμός ανάπτυξης από τον οποίο φτιάχνονται οι
εκδόσεις. Οι αλλαγές εισέρχονται σε αυτόν, τον δεύτερο κορμό ανάπτυξης,
με πιο αργό ρυθμό, αφού πρώτα (σύμφωνα με την πολιτική μας) δοκιμαστούν
στο FreeBSD-CURRENT και έχουν εξεταστεί πολύ καλά.</para>
<para>Κατά την περίοδο που μεσολαβεί από τη μια έκδοση στην επόμενη,
φτιάχνονται καθημερινά snapshots από τα μηχανήματα της ομάδας του FreeBSD
και είναι διαθέσιμες από τον εξυπηρετητή <systemitem>ftp://stable.FreeBSD.org/</systemitem>. Η μεγάλη
διαθεσιμότητα των εκτελέσιμων snapshots, καθώς και η τάση της κοινότητας
των χρηστών μας να ενημερώνουν τα μηχανήματά τους με τις πρόσφατες -STABLE
εκδόσεις μέσω CVSup και <quote><command>make</command>
<buildtarget>world</buildtarget></quote>[8] βοηθούν να κρατιέται το
FreeBSD-STABLE σε μια πολύ αξιόπιστη κατάσταση ακόμα και πριν αρχίσει ο
κύκλος των ελέγχων ποιότητας ακριβώς πριν από την διάθεση μιας
έκδοσης του FreeBSD.</para>
<para>Συνεχώς στέλνονται από τους χρήστες μας αναφορές προβλημάτων και
αιτήσεις για καινούρια χαρακτηριστικά, κατά τη διάρκεια του κύκλου της
κάθε έκδοσης. Οι αναφορές προβλημάτων εισάγονται στην βάση
<application>GNATS</application>[9] μέσω e-mail, με την
εφαρμογή &man.send-pr.1;, ή μέσω του web-interface που παρέχεται στην
διεύθυνση <uri xlink:href="http://www.FreeBSD.org/send-pr.html">http://www.FreeBSD.org/send-pr.html</uri>.
Εκτός από τις διάφορες λίστες ηλεκτρονικού ταχυδρομείου με θέμα τα τεχνικά
χαρακτηριστικά του FreeBSD υπάρχει και η λίστα &a.qa;, η οποία παρέχει ένα
φόρουμ για συζητήσεις σχετικά με τις λεπτομέρειες της
<quote>οργάνωσης των εκδόσεων</quote>.</para>
<para>Για να εξυπηρετηθούν οι πιο συντηρητικοί χρήστες μας, με έκδοση του
FreeBSD 4.3 αρχίσαμε να χρησιμοποιούμε ξεχωριστούς κορμούς εκδόσεων.
Αυτοί οι κορμοί δημιουργούνται λίγο πρίν φτιαχτεί η τελική έκδοση. Μετά
την ανακοίνωση της έκδοσης, μόνο πολύ σημαντικές αλλαγές και προσθήκες
σχετικές με την ασφάλεια γίνονται στον κορμό της έκδοσης. Εκτός από την
δυνατότητα αναβάθμισης μέσω CVS, εκτελέσιμα patchkits φτιάχνονται για να
μπορούν να αναβαθμίσουν τα συστήματά τους όσοι χρησιμοποιούν τις
εκδόσεις <emphasis>RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></emphasis>.</para>
<para>Το <xref linkend="release-proc"/> εξηγεί με λεπτομέρειες τα διάφορα
στάδια της διαδικασίας που βρίσκεται πίσω από κάθε έκδοση, μέχρι και τα
βήματα που οδηγούν στην μεταγλώττιση του συστήματος και το <xref linkend="release-build"/> εξηγεί την ίδια τη διαδικασία της μεταγλώττισης.
Το <xref linkend="extensibility"/> περιγράφει πως μπορεί να επεκταθεί το
βασικό σύστημα από τρίτους και το <xref linkend="lessons-learned"/>
περιγράφει κάποια από τα πράγματα που μάθαμε από την διαδικασία έκδοσης
του FreeBSD 4.4. Τέλος, το <xref linkend="future"/> παρουσιάζει κάποιες
από τις κατευθύνσεις που θέλουμε να πάρει η ανάπτυξη στο μέλλον.</para>
</sect1>
<!-- Η Διαδικασία Έκδοσης -->
<sect1 xml:id="release-proc">
<title>Η Διαδικασία Δημιουργίας μιας Έκδοσης</title>
<para>Οι νέες εκδόσεις του FreeBSD φτιάχνονται από τον -STABLE κορμό
ανάπτυξης περίπου κάθε τέσσερεις μήνες. Η διαδικασία προετοιμασίας μιας
έκδοσης ξεκινάει σχεδόν 45 μέρες πριν την αναμενόμενη ημερομηνία έκδοσης,
όταν ο υπεύθυνος εκδόσεων του FreeBSD στέλνει ένα γράμμα στις λίστες των
προγραμματιστών για να υπενθυμίσει στους προγραμματιστές ότι έχουν 15
μέρες καιρό να κάνουν όποιες αλλαγές θέλουν, πριν το πάγωμα του κώδικα.
Μέσα σε αυτό τον καιρό, πολλοί προγραμματιστές κάνουν μια σειρά από
αλλαγές που έχουν μείνει πλέον γνωστές ως <quote>ξεκαθαρίσματα
MFC</quote>. Ο όρος <acronym>MFC</acronym> σημαίνει <quote>Merge From
CURRENT</quote> και περιγράφει την διαδικασία προσαρμογής του κώδικα μιας
δοκιμασμένης αλλαγής από τον -CURRENT πειραματικό κορμό ανάπτυξης στον
σταθερό -STABLE κορμό.</para>
<sect2>
<title>Έλεγχος Κώδικα</title>
<para>Τριάντα ημέρες πριν την αναμενόμενη ημερομηνία έκδοσης, ο κώδικας
του repository εισέρχεται σε μια περίοδο <quote>καθυστέρησης</quote>.
Κατά τη διάρκεια αυτής της περιόδου, όλες οι αλλαγές στον -STABLE κορμό
πρέπει να έχουν την έγκριση της &a.re;. Οι αλλαγές που επιτρέπονται σε
αυτή την περίοδο που διαρκεί 15 ημέρες είναι:</para>
<itemizedlist>
<listitem>
<para>Διορθώσεις γνωστών προβλημάτων.</para>
</listitem>
<listitem>
<para>Ενημερώσεις στην τεκμηρίωση.</para>
</listitem>
<listitem>
<para>Αλλαγές σχετικές με την ασφάλεια.</para>
</listitem>
<listitem>
<para>Μικρές αλλαγές στους οδηγούς συσκευών, όπως π.χ. η προσθήκη των
IDs νέων συσκευών.</para>
</listitem>
<listitem>
<para>Οποιαδήποτε άλλη αλλαγή πιστεύει η ομάδα ανάπτυξης ότι πρέπει να
γίνει, με το αναμενόμενο πάντα ρίσκο.</para>
</listitem>
</itemizedlist>
<para>Μετά τις πρώτες 15 μέρες καθυστέρησης, φτιάχνεται μια
<emphasis>δοκιμαστική έκδοση</emphasis> για να χρησιμοποιηθεί σαν δοκιμή
της τελικής έκδοσης και ο κώδικας εισέρχεται σε μια περίοδο
<quote>παγώματος</quote>. Πλέον είναι πολύ πιο δύσκολο να γίνουν νέες
αλλαγές στο σύστημα, εκτός κι αν διορθώνουν κάποιο πολύ σοβαρό bugή
κάποιο πρόβλημα ασφάλειας. Κατά τη διάρκεια του παγώματος του κώδικα,
τουλάχιστον μία δοκιμαστική έκδοση φτιάχνεται κάθε εβδομάδα, μέχρι να
είναι έτοιμη η τελική έκδοση. Τις ημέρες ακριβώς πριν την τελική
έκδοση, η ομάδα που είναι υπεύθυνη για τις εκδόσεις είναι σε συνεχή
επικοινωνία με την ομάδα ασφάλειας, την ομάδα συντήρησης της
τεκμηρίωσης, και την ομάδα συντήρησης των ports, για να βεβαιωθούν πως
όλα τα απαραίτητα κομμάτια για μια πλήρη έκδοση είναι διαθέσιμα.</para>
</sect2>
<sect2>
<title>Λίστα Ελέγχου της Τελικής Έκδοσης</title>
<para>Όταν αρκετές δοκιμαστικές εκδόσεις έχουν γίνει διαθέσιμες, έχουν
δοκιμαστεί από αρκετό κόσμο και όλα τα σοβαρά θέματα έχουν αναλυθεί, η
τελική έκδοση μπορεί να αρχίσει.</para>
<sect3>
<title>Δημιουργία του Κορμού Έκδοσης</title>
<para>Όπως περιγράψαμε στην εισαγωγή, οι
κορμοί <literal>RELENG_X_Y</literal>
είναι μια σχετικά νέα προσθήκη στην
μεθοδολογία των εκδόσεών μας. Το πρώτο βήμα στην δημιουργία αυτού του
κορμού είναι να βεβαιωθείτε ότι δουλεύετε με την τελευταία έκδοση του
πηγαίου κώδικα από τον <literal>RELENG_X</literal> κορμό
<emphasis>από τον οποίο</emphasis> θα φτιάξετε το νέο κορμό.</para>
<screen>/usr/src&prompt.root; <userinput>cvs update -rRELENG_4 -P -d</userinput></screen>
<para>Το επόμενο βήμα είναι να δημιουργήσετε μια
<emphasis>ετικέτα</emphasis> (tag) στο σημείο εκκίνησης του κορμού,
ώστε να μπορείτε να δείτε τις διαφορές με την αρχή του κορμού εύκολα
στο μέλλον με το CVS:</para>
<screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4 RELENG_4_8_BP src</userinput></screen>
<para>Και τότε μπορείτε να δημιουργήσετε το νέο κορμό με:</para>
<screen>/usr/src&prompt.root; <userinput>cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src</userinput></screen>
<note>
<para><emphasis>Οι ετικέτες <literal>RELENG_*</literal> είναι
δεσμευμένες για χρήση από τους CVS-meisters και την ομάδα των
εκδόσεων.</emphasis></para>
</note>
<sidebar>
<para>Ο όρος <quote><emphasis>ετικέτα</emphasis></quote> είναι ορολογία
του CVS. Σημαίνει ένα όνομα που καθορίζει μια συγκεκριμένη έκδοση
του κώδικα στο χρόνο. Χρησιμοποιώντας ετικέτες στον πηγαίο κώδικα
βοηθάμε όποιον φτιάξει στο μέλλον εκδόσεις του FreeBSD να βρίσκει
και να χρησιμοποιεί ακριβώς τον ίδιο κώδικα που χρησιμοποιήθηκε για
τις επίσημες εκδόσεις της Ομάδας του FreeBSD.</para>
</sidebar>
</sect3>
<sect3 xml:id="versionbump">
<title>Αυξάνοντας τον Αριθμό Έκδοσης</title>
<para>Πριν μπει η ετικέτα, μεταγλωττιστεί και ετοιμαστεί η τελική
έκδοση, πρέπει να γίνουν αλλαγές στα παρακάτω αρχεία για να περιέχουν
τον σωστό αριθμό έκδοσης για το FreeBSD:</para>
<itemizedlist>
<listitem>
<para><filename>doc/en_US.ISO8859-1/books/handbook/mirrors/chapter.xml
</filename></para>
</listitem>
<listitem>
<para><filename>doc/en_US.ISO8859-1/books/porters-handbook/book.xml
</filename></para>
</listitem>
<listitem>
<para><filename>doc/share/xml/freebsd.ent</filename></para>
</listitem>
<listitem>
<para><filename>src/Makefile.inc1</filename></para>
</listitem>
<listitem>
<para><filename>src/UPDATING</filename></para>
</listitem>
<listitem>
<para><filename>src/gnu/usr.bin/groff/tmac/mdoc.local</filename></para>
</listitem>
<listitem>
<para><filename>src/release/Makefile</filename></para>
</listitem>
<listitem>
<para><filename>src/release/doc/en_US.ISO8859-1/share/xml/release.dsl</filename></para>
</listitem>
<listitem>
<para><filename>src/release/doc/share/examples/Makefile.relnotesng</filename></para>
</listitem>
<listitem>
<para><filename>src/release/doc/share/xml/release.ent</filename></para>
</listitem>
<listitem>
<para><filename>src/share/examples/cvsup/standard-supfile</filename></para>
</listitem>
<listitem>
<para><filename>src/sys/conf/newvers.sh</filename></para>
</listitem>
<listitem>
<para><filename>src/sys/sys/param.h</filename></para>
</listitem>
<listitem>
<para><filename>src/usr.sbin/pkg_install/add/main.c</filename></para>
</listitem>
<listitem>
<para><filename>www/en/docs.xml</filename></para>
</listitem>
<listitem>
<para><filename>www/en/cgi/ports.cgi</filename></para>
</listitem>
<listitem>
<para><filename>ports/Tools/scripts/release/config</filename></para>
</listitem>
</itemizedlist>
<para>Οι σημειώσεις έκδοσης και τα αρχεία με τις διορθώσεις της
τελευταίας στιγμής πρέπει επίσης να προσαρμοστούν στην νέα έκδοση
(στον κορμό της έκδοσης) και να επεξεργαστούν κατάλληλα (στους δύο
κορμούς stable και current):</para>
<itemizedlist>
<listitem>
<para><filename>src/release/doc/en_US.ISO8859-1/relnotes/common/new.xml
</filename></para>
</listitem>
<listitem>
<para><filename>src/release/doc/en_US.ISO8859-1/errata/article.xml
</filename></para>
</listitem>
</itemizedlist>
<para>Η εφαρμογή <application>sysinstall</application> πρέπει επίσης να
ενημερωθεί με τον σωστό αριθμό των ports και το χώρο του δίσκου που
απαιτείται για την Συλλογή των Ports. Αυτές οι πληροφορίες υπάρχουν
στο αρχείο <filename>src/release/sysinstall/dist.c</filename>.</para>
<para>Αφού ολοκληρωθεί η προετοιμασία της νέας επίσημης έκδοσης, πρέπει
να ενημερώσετε μερικά αρχεία για να ενημερώσετε τον κόσμο για τη νέα
έκδοση του &os;.</para>
<itemizedlist>
<listitem>
<para><filename>www/en/includes.xsl</filename></para>
</listitem>
<listitem>
<para><filename>www/en/includes.xml</filename></para>
</listitem>
<listitem>
<para><filename>www/es/includes.xml</filename></para>
</listitem>
<listitem>
<para><filename>www/en/releases/*</filename></para>
</listitem>
<listitem>
<para><filename>src/share/misc/bsd-family-tree</filename></para>
</listitem>
</itemizedlist>
</sect3>
<sect3>
<title>Δημιουργία των Ετικετών της Έκδοσης</title>
<para>Όταν η τελική έκδοση είναι έτοιμη, η παρακάτω εντολή θα
δημιουργήσει την ετικέτα
<literal>RELENG_4_8_0_RELEASE</literal>.</para>
<screen>/usr/src&prompt.root; <userinput>cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src</userinput></screen>
<para>Οι υπεύθυνοι της Τεκμηρίωσης και των Ports είναι αυτοί που πρέπει
να δημιουργήσουν τις ετικέτες <literal>RELEASE_4_8_0</literal> στα
κατάλληλα δέντρα πηγαίου κώδικα.</para>
<para>Μερικές φορές, μπορεί να χρειαστεί να γίνουν κάποιες αλλαγές
τελευταία στιγμή <emphasis>μετά</emphasis> την τοποθέτηση των
ετικετών. Γενικά, δεν είναι δύσκολο να γίνει κάτι τέτοιο αφού το
<acronym>CVS</acronym> επιτρέπει να μετακινήσει κάποιος τις ετικέτες
με εντολές όπως <command>cvs tag -d tagname
filename</command>. Είναι πολύ σημαντικό όμως αυτές οι
αλλαγές της τελευταίας στιγμής να σημειωθούν με τις σωστές ετικέτες
για την συγκεκριμένη έκδοση. Οι επίσημες εκδόσεις του FreeBSD πρέπει
να είναι πάντα εύκολο να αναπαραχθούν. Τοπικές αλλαγές στο περιβάλλον
του μηχανικού των εκδόσεων δεν επιτρέπονται.</para>
</sect3>
</sect2>
</sect1>
<!-- Μεταγλώττιση της Έκδοσης -->
<sect1 xml:id="release-build">
<title>Μεταγλώττιση της Έκδοσης</title>
<para>Οι <quote>εκδόσεις</quote> του FreeBSD μπορούν να μεταγλωττιστούν από
οποιονδήποτε έχει ένα σχετικά γρήγορο μηχάνημα και πρόσβαση στο repository
του πηγαίου κώδικα. (Όλοι έχουν αυτή τη δυνατότητα, αφού παρέχουμε
πρόσβαση μέσω ανώνυμου CVS! Δείτε το Εγχειρίδιο του FreeBSD για
περισσότερες λεπτομέρειες.) Η μόνη ειδική απαίτηση είναι να υπάρχει
υποστήριξη στον πυρήνα σας για την συσκευή &man.vn.4;. (Στο -CURRENT,
αυτή η συσκευή έχει αντικατασταθεί από την νέα συσκευή δίσκου βασισμένου
σε μνήμη &man.md.4;.) Αν η συσκευή δεν είναι ενσωματωμένη στον πυρήνα
σας, τότε ο κατάλληλος οδηγός θα φορτωθεί αυτόματα όταν εκτελεστεί η
εντολή &man.vnconfig.8; κατά τη διάρκεια της φάσης ετοιμασίας του μέσου
εκκίνησης. Όλα τα εργαλεία που χρειάζονται για να μεταγλωττίσετε μια
έκδοση είναι διαθέσιμα σε μορφή πηγαίου κώδικα στον κατάλογο
<filename>src/release</filename>. Αυτά τα εργαλεία έχουν ως σκοπό να
παρέχουν ότι χρειάζεται για να χτίζονται οι εκδόσεις του FreeBSD με ένα
συνεπή και συγκεκριμένο τρόπο. Μια πλήρης έκδοση μπορεί να μεταγλωττιστεί
χρησιμοποιώντας αυτά τα εργαλεία με μια και μόνο εντολή,
συμπεριλαμβανομένης και της δημιουργίας ενός <acronym>ISO</acronym>
αρχείου κατάλληλο για να καεί σε CDROM, οι δισκέττες εκκίνησης, καθώς και
ο κατάλληλος εγκατάστασης μέσω FTP. Αυτή η εντολή είναι φυσική η
<command>make release</command>.</para>
<sect2>
<title>Η εντολή <command>make release</command></title>
<para>Για να μεταγλωττίσετε επιτυχώς μια έκδοση, πρέπει πρώτα να υπάρχουν
τα κατάλληλα αρχεία μέσα στον κατάλογο <filename>/usr/obj</filename>.
Μπορείτε να τα δημιουργήσετε είτε με την εντολή <command>make
world</command> ή απλά <command>make buildworld</command>. Για να
πετύχει επίσης η μεταγλώττιση της έκδοσης πρέπει να δώσετε τις
κατάλληλες τιμές και σε κάποιες μεταβλητές:</para>
<itemizedlist>
<listitem>
<para><varname>CHROOTDIR</varname> - Ο κατάλογος που θα χρησιμοποιηθεί
σαν περιβάλλον chroot για όλη την μεταγλώττιση της έκδοσης.</para>
</listitem>
<listitem>
<para><varname>BUILDNAME</varname> - Το όνομα της έκδοσης που θα
μεταγλωττίσετε.</para>
</listitem>
<listitem>
<para><varname>CVSROOT</varname> - Ο κατάλογος στον οποίο βρίσκεται το
CVS repository.</para>
</listitem>
<listitem>
<para><varname>RELEASETAG</varname> - Η ετικέτα CVS που αντιστοιχεί
στην έκδοση την οποία θέλετε να μεταγλωττίσετε.</para>
</listitem>
</itemizedlist>
<para>Αν δεν έχετε ήδη πρόσβαση σε κάποιο τοπικό CVS repository με τον
κώδικα του FreeBSD, μπορείτε πάντα να φτιάξετε το δικό σας τοπικό CVS
mirror με το <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/synching.html#CVSUP">CVSup</link>.
Υπάρχει ένα supfile, στο αρχείο
<filename>/usr/share/examples/cvsup/cvs-supfile</filename>,
το οποίο μπορείτε να χρησιμοποιήσετε για να αντιγράψετε το CVS
repository του FreeBSD στο δικό σας τοπικό mirrror.</para>
<para>Αν παραλείψετε την ετικέτα <varname>RELEASETAG</varname>, τότε θα
μεταγλωττιστεί μια πλήρης έκδοση από την κορυφή του
<literal>HEAD</literal> (δηλ. του -CURRENT) κορμού. Οι εκδόσεις που
φτιάχνονται από αυτόν τον κορμό, συνήθως αναφέρονται σαν <quote>-CURRENT
snapshots</quote>.</para>
<para>Υπάρχουν και πολλές άλλες μεταβλητές που μπορούν να χρησιμοποιηθούν
για να παραμετροποιήσετε την έκδοσή σας. Οι πιο πολλές από αυτές τις
μεταβλητές περιγράφονται στην κορυφή του αρχείου
<filename>src/release/Makefile</filename>. Η ακριβής εντολή που
χρησιμοποιήθηκε για να φτιαχτεί η επίσημη έκδοση 4.7 του FreeBSD
(x86 πλατφόρμα) ήταν:</para>
<screen><command>make release CHROOTDIR=/local3/release \
BUILDNAME=4.7-RELEASE \
CVSROOT=/host/cvs/usr/home/ncvs \
RELEASETAG=RELENG_4_7_0_RELEASE</command></screen>
<para>Το <filename>Makefile</filename> που χρησιμοποιείται για να
μεταγλωττίζονται οι εκδόσεις μπορεί να χωριστεί σε αρκετά ξεχωριστά
μεταξύ τους βήματα.</para>
<itemizedlist>
<listitem>
<para>Δημιουργία ενός καθαρού περιβάλλοντος σε μια ξεχωριστή ιεραρχία
καταλόγων με την εντολή <quote><command>make
installworld</command></quote>.</para>
</listitem>
<listitem>
<para>Εξαγωγή από το CVS μιας καινούριας έκδοσης του πηγαίου κώδικα
του συστήματος, της τεκμηρίωσης και των ports μέσα στην ιεραρχία
καταλόγων μεταγλώττισης της έκδοσης.</para>
</listitem>
<listitem>
<para>Ρυθμίσεις των αρχείων στον κατάλογο <filename>/etc</filename>
και <filename>/dev</filename> μέσα στο περιβάλλον chroot.</para>
</listitem>
<listitem>
<para>Εκτέλεση της εντολής <command>chroot</command> μέσα στην
ιεραρχία καταλόγων που ετοιμάστηκε, για να μην μπορεί το εξωτερικό
περιβάλλον να επηρεάσει τη μεταγλώττιση της έκδοσης.</para>
</listitem>
<listitem>
<para>Εκτέλεση της εντολής <command>make world</command> μέσα στο
περιβάλλον chroot.</para>
</listitem>
<listitem>
<para>Μεταγλώττιση των εκτελέσιμων που είναι σχετικά με το σύστημα
Kerberos.</para>
</listitem>
<listitem>
<para>Μεταγλώττιση του πυρήνα <filename>GENERIC</filename>.</para>
</listitem>
<listitem>
<para>Δημιουργία ενός τελικού καταλόγου στον οποίο θα μεταγλωττιστούν
και θα αποθηκευθούν οι εκτελέσιμες μορφές των τελικών
πακέτων.</para>
</listitem>
<listitem>
<para>Μεταγλώττιση και εγκατάσταση των εργαλείων που χρειάζονται για
την προετοιμασία της έκδοσης και τη μετατροπή της τεκμηρίωσης από
τον πηγαίο κώδικα (SGML) σε html και αρχεία κειμένου που θα
συνοδεύουν την έκδοση.</para>
</listitem>
<listitem>
<para>Μετατροπή και εγκατάσταση της τεκμηρίωσης (εγχειρίδια χρήστη,
εισαγωγικά κείμενα, σημειώσεις έκδοσης, λίστες συμβατότηταςς υλικού,
κλπ.)</para>
</listitem>
<listitem>
<para>Μεταγλώττιση των <quote>συμπιεσμένων</quote> (crunched)
εκτελέσιμων που θα χρησιμοποιηθούν στις δισκέττες
εγκατάστασης.</para>
</listitem>
<listitem>
<para>Δημιουργία των πακέτων της εγκατάστασης και των πακέτων πηγαίου
κώδικα.</para>
</listitem>
<listitem>
<para>Δημιουργία των μέσων εκκίνησης και της δισκέττας
<quote>fixit</quote>.</para>
</listitem>
<listitem>
<para>Δημιουργία της ιεραρχίας καταλόγων για την εγκατάσταση μέσω
FTP.</para>
</listitem>
<listitem>
<para><emphasis>(προαιρετικά)</emphasis> Δημιουργία των ISO αρχείων
για μέσα CDROM/DVD media.</para>
</listitem>
</itemizedlist>
<para>Για περισσότερες πληροφορίες σχετικά με την διαδικασία δημιουργίας
μιας έκδοσης, δείτε την σελίδα τεκμηρίωσης &man.release.7;.</para>
</sect2>
<sect2>
<title>Μεταγλώττιση των <application>XFree86</application></title>
<para>Το γραφικό περιβάλλον <application>XFree86</application> είναι ένα σημαντικό κομμάτι κάθε
έκδοσης για πολλούς χρήστες που θέλουν το FreeBSD για σταθμούς εργασίας.
Πριν την έκδοση 4.6-RELEASE του FreeBSD, οι επίσημες εκδόσεις του
FreeBSD χρησιμοποιούσαν την έκδοση 3.<replaceable>X</replaceable> των
<application>XFree86</application>.
Ο πιο εύκολος τρόπος να μεταγλωττίσετε αυτές τις εκδόσεις είναι να
χρησιμοποιήσετε το πρόγραμμα
<filename>src/release/scripts/X11/build_x.sh</filename>.
Αυτό το πρόγραμμα απαιτεί να είναι ήδη στημένα στο σύστημά σας τόσο το
περιβάλλον XFree86 όσο και η γλώσσα Tcl/Tk. Μετά την μεταγλώττιση των
κατάλληλων X servers, το πρόγραμμα θα πακετάρει όλα τα αρχεία σε
συλλογές αρχείων που περιμένει να βρει το &man.sysinstall.8; μέσα στον
κατάλογο <filename>XF86336</filename> στο μέσο εγκατάστασης.</para>
<para>Ξεκινώντας με την έκδοση 4.6-RELEASE του FreeBSD, το
&man.sysinstall.8; εγκαθιστά την έκδοση 4.<replaceable>X</replaceable>
των XFree86, σαν κανονικά πακέτα. Αυτά μπορεί να είναι είτε τα πακέτα
που δημιούργησε το cluster των ports ή οποιαδήποτε άλλα πακέτα που έχουν
δημιουργηθεί από ένα ports tree με την κατάλληλη ετικέτα.</para>
<note><para>Είναι πολύ σημαντικό να αφαιρέσετε από το αρχείο
<filename>/etc/make.conf</filename> οποιεσδήποτε τοπικές ρυθμίσεις έχετε
κάνει. Για παράδειγμα, δεν είναι καλή ιδέα να διανέμετε εκτελέσιμα που
έχουν μεταγλωττιστεί σε κάποιο συγκεκριμένο σύστημα με ορισμένη την τιμή
της μεταβλητής <varname>CPUTYPE</varname> για βελτιστοποίηση των
εκτελέσιμων για κάποιο συγκεκριμένο επεξεργαστή.</para></note>
</sect2>
<sect2>
<title>Προγράμματα Τρίτων (<quote>ports</quote>)</title>
<para>Η <link xlink:href="http://www.FreeBSD.org/ports">Συλλογή των Ports του
FreeBSD</link> είναι μια συλλογή με περισσότερα από &os.numports;
προγράμματα από τρίτους, που είναι διαθέσιμα για FreeBSD. Οι &a.portmgr;
είναι υπεύθυνοι για την συντήρηση ενός δέντρου από πηγαίο κώδικα για τα
ports, που μπορεί να χρησιμοποιηθεί για να δημιουργηθούν τα πακέτα με τα
προγράμματα που συνοδεύουν τις επίσημες εκδόσεις του FreeBSD.</para>
<para>Η διαδικασία συντήρησης της συλλογής των ports είναι κάτι που δεν
μπορούμε να καλύψουμε εδώ. Ένα ξεχωριστό άρθρο, με τίτλο &art.re.pkgs;,
καλύπτει αυτό το θέμα.</para>
</sect2>
<sect2>
<title>Αρχεία ISO της Έκδοσης</title>
<para>Ξεκινώντας με την έκδοση 4.4 του FreeBSD, η Ομάδα Ανάπτυξης του
FreeBSD αποφάσισε να διανέμει και τα τέσσερα ISO αρχεία που πρώτα
πουλούσαν οι εταιρείες <emphasis>BSDi/Wind River Systems/FreeBSD
Mall</emphasis> στις <quote>επίσημες</quote> διανομές CDROM που έκαναν.
Κάθε ένα από τα τέσσερα ISO αρχεία πρέπει να περιέχει ένα αρχείο
<filename>README.TXT</filename> που περιγράφει τα περιεχόμενα του
δίσκου, κι ένα αρχείο <filename>CDROM.INF</filename> που περιέχει
μετα-πληροφορίες για να μπορεί το πρόγραμμα &man.sysinstall.8; να
ελέγξει και να χρησιμοποιήσει αυτό το δίσκο, καθώς κι ένα αρχείο
<filename>filename.txt</filename> που παρέχει μια λίστα αρχείων του
CDROM. Αυτή η λίστα μπορεί να δημιουργηθεί πολύ απλά, ως εξής:</para>
<screen>/stage/cdrom&prompt.root; <userinput>find . -type f | sed -e 's/^\.\///' | sort &gt; filename.txt</userinput></screen>
<para>Οι συγκεκριμένες απαιτήσεις για κάθε ένα από αυτά τα CD
περιγράφονται παρακάτω:</para>
<sect3>
<title>Δίσκος 1</title>
<para>Ο πρώτος δίσκος είναι σχεδόν αποκλειστικά αποτέλεσμα της εντολής
<command>make release</command>. Οι μόνες αλλαγές που πρέπει να
γίνουν στον κατάλογο <filename>disc1</filename> είναι η προσθήκη του
κατάλογου <filename>tools</filename>, των <application>XFree86</application>, και όσο το δυνατόν
περισσότερων πακέτων μπορούν να χωρέσουν στο δίσκο. Ο κατάλογος
<filename>tools</filename> περιέχει εργαλεία που επιτρέπουν σε χρήστες
άλλων λειτουργικών συστημάτων να φτιάξουν τις δισκέττες εκκίνησης.
Αυτός ο πρώτος δίσκος πρέπει να φτιάχνεται bootable έτσι ώστε να
μπορούν οι χρήστες των μοντέρνων υπολογιστών να αποφεύγουν το στάδιο
δημιουργίας των δισκεττών εκκίνησης.</para>
<para>Αν μια διαφορετική έκδοση των XFree86 θα διανέμεται με την έκδοση
αυτή, πρέπει να ενημερωθεί το πρόγραμμα &man.sysinstall.8; για την νέα
θέση και οι οδηγίες εγκατάστασης. Ο σχετικός κώδικας υπάρχει στον
κατάλογο <filename>src/release/sysinstall</filename> στον -STABLE
κορμό ή στον κατάλογο <filename>src/usr.sbin/sysinstall</filename>
στον -CURRENT κορμό. Συγκεκριμένα, τα αρχεία
<filename>dist.c</filename>, <filename>menus.c</filename>, και
<filename>config.c</filename> θα χρειαστεί να ενημερωθούν.</para>
</sect3>
<sect3>
<title>Δίσκος 2</title>
<para>Ο δεύτερος δίσκος είναι επίσης αποτέλεσμα της εντολής
<command>make release</command> κατά ένα μεγάλο μέρος. Αυτός ο δίσκος
περιέχει ένα <quote>live filesystem</quote> που μπορεί να χρησιμοποιηθεί
από το &man.sysinstall.8; για να εξεταστούν προβλήματα σε μια
εγκατάσταση του FreeBSD. Κι αυτός ο δίσκος πρέπει να είναι bootable.
Θα πρέπει επίσης να περιέχει ένα συμπιεσμένο αντίγραφο του CVS
repository στον κατάλογο <filename>CVSROOT</filename> και δείγματα από
εμπορικά προγράμματα στον κατάλογο <filename>commerce</filename>.</para>
</sect3>
<sect3>
<title>Δίσκοι 3 και 4</title>
<para>Οι υπόλοιποι δυο δίσκοι περιέχουν επιπρόσθετα πακέτα λογισμικού
για το FreeBSD. Τα πακέτα θα πρέπει να είναι ομαδοποιημένα, έτσι ώστε
κάθε πακέτο να είναι στον ίδιο δίσκο με όλα τα πακέτα από τα οποία
εξαρτάται για να εγκατασταθεί και να τρέξει. Περισσότερες πληροφορίες
για την δημιουργία αυτών των δίσκων αναφέρονται στο άρθρο
&art.re.pkgs;.</para>
</sect3>
</sect2>
</sect1>
<!-- Διανομή των Εκδόσεων -->
<sect1 xml:id="distribution">
<title>Διανομή των Εκδόσεων</title>
<sect2 xml:id="dist-ftp">
<title>Εξυπηρετητές FTP</title>
<para>Όταν η έκδοση είναι έτοιμη, έχει δοκιμαστεί εκτενώς, και έχει
πακεταριστεί για διανομή, ο κύριος FTP εξυπηρετητής πρέπει να
ενημερωθεί. Οι επίσημοι εξυπηρετητές FTP του FreeBSD είναι όλοι mirrors
ενός κύριου εξυπηρετητή στον οποίο έχουν πρόσβαση μόνο άλλοι FTP
εξυπηρετητές. Αυτός ο εξυπηρετητής είναι γνωστός ως
<systemitem>ftp-master</systemitem>. Όταν η έκδοση είναι έτοιμη, πρέπει να
ενημερωθούν τα παρακάτω αρχεία στον <systemitem>ftp-master</systemitem>:</para>
<variablelist>
<varlistentry>
<term><filename>/pub/FreeBSD/index.html</filename></term>
<listitem>
<para>Μια απλή web σελίδα που περιέχει δείκτες σε διάφορους
σημαντικούς FTP καταλόγους για την τρέχουσα έκδοση του
FreeBSD.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>/pub/FreeBSD/releases/arch/X.Y-RELEASE/</filename></term>
<listitem>
<para>Ο κατάλογος από τον οποίο μπορούν να γίνουν εγκαταστάσεις μέσω
FTP, όπως τον έχει προετοιμάσει η εντολή <command>make
release</command>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>/pub/FreeBSD/ports/arch/packages/packages-X.Y-release/</filename></term>
<listitem>
<para>Όλα τα προμεταγλωττισμένα πακέτα για την τρέχουσα έκδοση.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><filename>/pub/FreeBSD/releases/arch/X.Y-RELEASE/tools</filename></term>
<listitem>
<para>Μια συμβολική συντόμευση για τον κατάλογο
<filename>../../../tools</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><filename>/pub/FreeBSD/releases/arch/X.Y-RELEASE/packages</filename></term>
<listitem>
<para>Μια συμβολική συντόμευση για τον κατάλογο
<filename>../../../ports/i386/packages-X.Y-release</filename>.</para></listitem>
</varlistentry>
<varlistentry>
<term><filename>/pub/FreeBSD/releases/arch/ISO-IMAGES/X.Y/X.Y-*.iso</filename></term>
<listitem>
<para>Τα αρχεία ISO.</para>
</listitem>
</varlistentry>
</variablelist>
<para>Για περισσότερες πληροφορίες σχετικά με την οργάνωση των mirror
διανομής FTP του FreeBSD, παρακαλώ δείτε το άρθρο <link xlink:href="../hubs/">Φτιάχνοντας ένα FreeBSD mirror</link>.</para>
<para>Μπορεί να πάρει αρκετές ώρες από την στιγμή που θα ενημερωθεί ο
<systemitem>ftp-master</systemitem> μέχρι να ενημερωθούν στην πλειοψηφία τους τα
πρώτου επιπέδου FTP mirror με την νέα έκδοση. Επιβάλλεται οι υπεύθυνοι
έκδοσης να συνεννοηθούν με την &a.hubs; πριν ανακοινώσουν την γενική
διαθεσιμότητα της νέας έκδοσης στους εξυπηρετητές FTP.</para>
</sect2>
<sect2 xml:id="dist-cdrom">
<title>Μαζική Αναπαραγωγή των CD-ROM</title>
<para>Θα συμπληρωθεί σύντομα: Συμβουλές για την αποστολή των ISO αρχείων
του FreeBSD σε κάποιον που μπορεί να κάνει μαζική αναπαραγωγή, και μέτρα
ελέγχου ποιότητας που μπορούν να παρθούν.</para>
</sect2>
</sect1>
<!-- Επεκτασιμότητα -->
<sect1 xml:id="extensibility">
<title>Επεκτασιμότητα</title>
<para>Παρόλο που το FreeBSD είναι ένα πλήρες λειτουργικό σύστημα, δεν
υπάρχει κάτι που να σας αναγκάζει να χρησιμοποιήσετε το σύστημα ακριβώς
όπως το έχουμε πακετάρει εμείς για διανομή. Έχουμε προσπαθήσει να
σχεδιάσουμε το σύστημα έτσι που να είναι όσο το δυνατόν πιο επεκτάσιμο,
για να είναι εύκολο να χρησιμοποιηθεί σαν βάση πάνω στην οποία άλλα
εμπορικά προϊόντα να μπορούν να στηριχθούν. Ο μόνος
<quote>κανόνας</quote> που έχουμε σχετικά με αυτό είναι πως αν σχεδιάζετε
να διανείμετε το FreeBSD με μεγάλης κλίμακας αλλαγές, σας ενθαρρύνουμε να
τεκμηριώσετε τις αλλαγές σας. Η κοινότητα του FreeBSD μπορεί μόνο να
βοηθήσει στην υποστήριξη αυτών που χρησιμοποιούν το λογισμικό ακριβώς όπως
το διανέμουμε εμείς. Ενθαρρύνουμε και δεχόμαστε κάθε αλλαγή που προωθεί
την ανάπτυξη πιο εξελιγμένων εργαλείων εγκατάστασης και διαχείρισης, για
παράδειγμα, αλλά δεν θα πρέπει να περιμένει κανείς να μπορούμε να
απαντήσουμε και ερωτήσεις σχετικά με κάτι τέτοιο.</para>
<sect2>
<title>Δημιουργία Προσαρμοσμένων Δισκεττών Εκκίνησης.</title>
<para>Πολλές εγκαταστάσεις έχουν πολύπλοκες απαιτήσεις που μπορεί με τη
σειρά τους να απαιτούν την προσθήκη περισσότερων οδηγών ή εργαλείων
χρήστη στις δισκέττες εγκατάστασης. Ο <quote>μπακάλικος</quote> τρόπος
να το κάνετε αυτό είναι να κάνετε τις αλλαγές σας στον κατάλογο που έχει
ετοιμάσει μετά το τέλος της η διαδικασία
<command>make release</command>:</para>
<itemizedlist>
<listitem>
<para>Περάστε τα patches σας ή προσθέστε τα επιπλέον αρχεία μέσα στον
κατάλογο chroot της έκδοσης.</para>
</listitem>
<listitem>
<para><command>rm ${CHROOTDIR}/usr/obj/usr/src/release/release.[59]</command></para>
</listitem>
<listitem>
<para>Μεταγλωττίστε πάλι το &man.sysinstall.8;, τον πυρήνα, ή όποια
άλλα προγράμματα έχουν επηρεαστεί από τις αλλαγές σας.</para>
</listitem>
<listitem>
<para><command>chroot ${CHROOTDIR} ./mk floppies</command></para>
</listitem>
</itemizedlist>
<para>Οι νέες δισκέττες εγκατάστασης θα δημιουργηθούν στον κατάλογο
<filename>${CHROOTDIR}/R/stage/floppies</filename>.</para>
<para>Εναλλακτικά, μπορείτε να χρησιμοποιήσετε το make target
<filename>boot.flp</filename>, ή μπορείτε να τρέξετε απευθείας το script
που δημιουργεί τα συστήματα αρχείων
<filename>src/release/scripts/doFS.sh</filename>.</para>
<para>Μπορείτε επίσης να κανονίσετε ώστε δικές σας αλλαγές να περαστούν με
μορφή patch στην έκδοση όπως θα φτιάχνεται, δίνοντας τιμή στην μεταβλητή
<varname>LOCAL_PATCH</varname> όταν τρέξετε την εντολή <command>make
release</command>.</para>
</sect2>
<sect2>
<title>Προγραμματίζοντας το <command>sysinstall</command></title>
<para>Το εργαλείο εγκατάστασης και ρύθμισης του FreeBSD, το
&man.sysinstall.8;, μπορεί να προγραμματιστεί για να κάνει
πιο εύκολες τις αυτοματοποιημένες εγκαταστάσεις σε πολλά μηχανήματα.
Αυτό το χαρακτηριστικό του προγράμματος μπορεί να χρησιμοποιηθεί σε
συνδυασμό με το PXE[13] της Intel για να ξεκινήσει η εγκατάσταση από το
δίκτυο, ή σε συνδυασμό με προσαρμοσμένες δισκέττες εκκίνησης κι ένα
sysinstall script. Ένα παράδειγμα από τέτοιο sysinstall script μπορείτε
να βρείτε στο αρχείο
<filename>src/release/sysinstall/install.cfg</filename>.</para>
</sect2>
</sect1>
<!-- Μαθήματα που Πήραμε -->
<sect1 xml:id="lessons-learned">
<title>Μαθήματα που Πήραμε από την Έκδοση 4.4 του FreeBSD</title>
<para>Η διαδικασία ετοιμασίας της έκδοσης 4.4 του FreeBSD ξεκίνησε επίσημα
την 1η Αυγούστου 2001. Μετά από αυτή την ημερομηνία, όλες οι αλλαγές στον
κορμό <literal>RELENG_4</literal> του FreeBSD έπρεπε να έχουν έγκριση από
την &a.re;. Η πρώτη δοκιμαστική έκδοση για την αρχιτεκτονική x86 έγινε
διαθέσιμη στις 16 Αυγούστου, κι ακολουθήθηκε από 4 ακόμα δοκιμαστικές
εκδόσεις που οδήγησαν στην τελική έκδοση στις 18 του Σεπτέμβρη.
Ο υπεύθυνος ασφάλειας έπαιξε σημαντικό ρόλο κατά την διάρκεια της
τελευταίας εβδομάδας καθώς κάποια προβλήματα ασφάλειας βρέθηκαν σε
προηγούμενες, δοκιμαστικές εκδόσεις. Συνολικά, πάνω από
<emphasis>500</emphasis> email στάλθηκαν στην &a.re; σε διάστημα μικρότερο
από ένα μήνα.</para>
<para>Η κοινότητα των χρηστών μας έκανε σαφές ότι η ασφάλεια και η
σταθερότητα μιας έκδοσης δεν θά 'πρεπε να θυσιάζεται για κανενός είδους
προθεσμίες ή ημερομηνίες που έχουν τεθεί σαν στόχοι από πριν. Το FreeBSD
έχει μεγαλώσει δραματικά κατά τη διάρκεια της ζωής του σαν σύστημα, και η
ανάγκη για συγκεκριμένη πολιτική και οργάνωση για την δημιουργία νέων
εκδόσεων είναι πλέον φανερή περισσότερο από ποτέ. Αυτή η ανάγκη θα γίνει
ακόμα πιο σημαντική καθώς το FreeBSD θα αρχίσει να μεταφέρεται σε νέες
πλατφόρμες.</para>
</sect1>
<!-- Μελλοντικές Κατευθύνσεις -->
<sect1 xml:id="future">
<title>Μελλοντικές Κατευθύνσεις</title>
<para>Είναι ζωτικής σημασίας οι πρακτικές και η οργάνωση της διαδικασίας
δημιουργίας των εκδόσεών μας να συμβαδίζουν με την συνεχώς αυξανόμενη βάση
των χρηστών μας. Με βάση αυτή τη σκέψη εργαζόμαστε σκληρά για να
τεκμηριώσουμε την διαδικασία παραγωγής των εκδόσεων του FreeBSD.</para>
<itemizedlist>
<listitem>
<para><emphasis>Παράλληλη εκτέλεση</emphasis> - Μερικά μέρη της
μεταγλώττισης μιας εγκατάστασης μπορούν να γίνουν <quote>πολύ
παράλληλα</quote>. Τα πιο πολλά από τα στάδια είναι
I/O&nbsp;intensive, οπότε η ύπαρξη πολλών υψηλής-ταχύτητας δίσκων
είναι πιο σημαντική από τηνν χρήση πολλών επεξεργαστών για να
επιταχυνθεί κάπως η διαδικασία του <command>make release</command>.
Αν διαφορετικοί δίσκοι χρησιμοποιηθούν για τμήματα της ιεραρχίας του
&man.chroot.2; περιβάλλοντος, τότε το CVS checkout των καταλόγων
<filename>ports</filename> και <filename>doc</filename> μπορεί να
γίνει ταυτόχρονα με την εντολή <command>make world</command> στον άλλο
δίσκο. Χρησιμοποιώντας μια <acronym>RAID</acronym> λύση (hardware ή
software) μπορεί να μειώσει δραστικά τον συνολικό χρόνο που
χρειάζεται να μεταγλωττιστεί μια πλήρης έκδοση.</para>
</listitem>
<listitem>
<para><emphasis>Μεταγλώττιση εκδόσεων για διαφορετικές
αρχιτεκτονικές</emphasis> - Θέλετε να μεταγλωττίσετε μια έκδοση για
IA-64 ή Alpha σε κάποιον x86 επεξεργαστή? <command>make
TARGET=ia64 release</command>.
</para>
</listitem>
<listitem>
<para><emphasis>Δοκιμές για λάθη</emphasis> - Χρειαζόμαστε καλύτερα
εργαλεία για αυτόματο έλεγχο ορθότητας στο FreeBSD.</para>
</listitem>
<listitem>
<para><emphasis>Εργαλεία Εγκατάστασης</emphasis> - Το πρόγραμμά μας για
την εγκατάσταση του FreeBSD έχει ξεπεράσει προ πολλού τον αναμενόμενο
χρόνο ζωής του. Υπάρχουν διάφορες ομάδες που εργάζονται για να
υλοποιήσουν κάποιον άλλο, πιο μοντέρνο μηχανισμό εγκατάστασης. Μια
από τις πιο υποσχόμενες, είναι η ομάδα libh[5] που στοχεύει στην
υλοποίηση ενός έξυπνου, νέου τρόπου πακεταρίσματος λογισμικού και ενός
GUI προγράμματος εγκατάστασης.</para>
</listitem>
</itemizedlist>
</sect1>
<!-- Ευχαριστίες -->
<sect1 xml:id="ackno">
<title>Ευχαριστίες</title>
<para>Θα ήθελα να ευχαριστήσω τον Jordan Hubbard, που μου έδωσε την ευκαιρία
να πάρω κάποια από την ευθύνη της έκδοσης 4.4 του FreeBSD, καθώς και για
όλη την δουλειά που έχει κάνει εδώ και χρόνια για να είναι το FreeBSD αυτό
που είναι σήμερα. Φυσικά, η έκδοση δεν θα ήταν ποτέ δυνατόν να
ολοκληρωθεί χωρίς όλη την σχετική με την έκδοση δουλειά που έκαναν οι
&a.asami;, &a.steve;, &a.bmah;, &a.nik;, &a.obrien;, &a.kris;, &a.jhb; και
όλοι οι υπόλοιποι που ασχολούνται με την ανάπτυξη του FreeBSD. Θέλω
επίσης να ευχαριστήσω τους &a.rgrimes;, &a.phk;, και όλους τους άλλους που
εργάστηκαν για να φτιάξουν τα εργαλεία για τις εκδόσεις στις πρώτες μέρες
της δημιουργίας του FreeBSD. Αυτό το άρθρο έχει επηρεαστεί από κείμενα
σχετικά με την οργάνωση των εκδόσεων από το CSRG[14], την Ομάδα του
NetBSD[11], και την πρόταση για μια διαδικασία οργάνωσης των εκδόσεων του
John Baldwin[12].</para>
</sect1>
<!-- Αναφορές / Biblio Section -->
<sect1 xml:id="biblio">
<title>Αναφορές</title>
<para>[1] CVS - Concurrent Versions System
<uri xlink:href="http://www.cvshome.org">http://www.cvshome.org</uri></para>
<para>[2] CVSup - The CVS-Optimized General Purpose Network File Distribution
System <uri xlink:href="http://www.polstra.com/projects/freeware/CVSup">http://www.polstra.com/projects/freeware/CVSup</uri></para>
<para>[3] <uri xlink:href="http://bento.FreeBSD.org">http://bento.FreeBSD.org</uri></para>
<para>[4] FreeBSD Ports Collection
<uri xlink:href="http://www.FreeBSD.org/ports">http://www.FreeBSD.org/ports</uri></para>
<para>[5] The libh Project
<uri xlink:href="http://www.FreeBSD.org/projects/libh.html">http://www.FreeBSD.org/projects/libh.html</uri></para>
<para>[6] FreeBSD Committers <uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html">http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-committers.html</uri></para>
<para>[7] FreeBSD Core-Team
<uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html">http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/contributors/staff-core.html</uri></para>
<para>[8] FreeBSD Handbook
<uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook">http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook</uri></para>
<para>[9] GNATS: The GNU Bug Tracking System
<uri xlink:href="http://www.gnu.org/software/gnats">http://www.gnu.org/software/gnats</uri></para>
<para>[10] FreeBSD PR Statistics
<uri xlink:href="http://www.FreeBSD.org/prstats/index.html">http://www.FreeBSD.org/prstats/index.html</uri></para>
<para>[11] NetBSD Developer Documentation: Release Engineering
<uri xlink:href="http://www.NetBSD.org/developers/releng/index.html">http://www.NetBSD.org/developers/releng/index.html</uri></para>
<para>[12] John Baldwin's FreeBSD Release Engineering Proposal
<uri xlink:href="http://people.FreeBSD.org/~jhb/docs/releng.txt">http://people.FreeBSD.org/~jhb/docs/releng.txt</uri></para>
<para>[13] PXE Jumpstart Guide
<uri xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/pxe/index.html">http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/pxe/index.html</uri></para>
<para>[14] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic:
<link xlink:href="http://docs.FreeBSD.org/44doc/papers/releng.html"><emphasis>The Release Engineering of 4.3BSD</emphasis></link></para>
</sect1>
</article>