diff --git a/el_GR.ISO8859-7/articles/cvs-freebsd/Makefile b/el_GR.ISO8859-7/articles/cvs-freebsd/Makefile new file mode 100644 index 0000000000..2a1eacbb0b --- /dev/null +++ b/el_GR.ISO8859-7/articles/cvs-freebsd/Makefile @@ -0,0 +1,18 @@ +# +# $FreeBSD$ +# + +DOC?= article + +FORMATS?= html + +TIDY_FLAGS+= -raw + +INSTALL_COMPRESSED?= gz +INSTALL_ONLY_COMPRESSED?= + +# SGML content +SRCS= article.sgml + +DOC_PREFIX?= ${.CURDIR}/../../.. +.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml b/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml new file mode 100644 index 0000000000..bb97c7d3c8 --- /dev/null +++ b/el_GR.ISO8859-7/articles/cvs-freebsd/article.sgml @@ -0,0 +1,756 @@ + + + +%man; +]> + +
+ + Εγκατάσταση ενός CVS Repository - ο τρόπος του FreeBSD + + + Stijn + Hoop + +
stijn@win.tue.nl
+
+
+ + + 2001 + Stijn Hoop + + + $Date: 2002-04-06 18:24:16 $ + + $FreeBSD$ + + + Το άρθρο αυτό περιγράφει τα βήματα που έκανα για να εγκαταστήσω + ένα CVS repository που χρησιμοποιεί τις ίδιες δέσμες εντολών (scripts) + με αυτές που χρησιμοποιεί και το FreeBSD project στη δική του + εγκατάσταση. Η συγκεκριμένη προσέγγιση έχει αρκετά πλεονεκτήματα + έναντι μιας τυποποιημένης CVS εγκατάστασης, όπως ένα περισσότερο + κατευθυνόμενo έλεγχο πρόσβασης στο δέντρο του κώδικα καθώς και + αυτόματη παραγωγή ευανάγνωστων email με λεπτομέρειες για κάθε + commit. + +
+ + + Εισαγωγή + + Τα περισσότερα έργα ανοιχτού κώδικα χρησιμοποιούν το + CVS σαν σύστημα ελέγχου του κώδικα τους. + Παρόλο που το CVS είναι πολύ καλό σε αυτόν + τον τομέα έχει κι αυτό το μερίδιο του σε ελαττώματα και αδυναμίες. Μια + από αυτές είναι το ότι η κοινή χρήση κώδικα μπορεί γρήγορα να οδηγήσει + σε έναν εφιάλτη διαχείρισης, ειδικά αν υπάρχει η επιθυμία να + προστατευτούν ορισμένα κομμάτια του δέντρου του κώδικα από κοινή + πρόσβαση. + + Το FreeBSD είναι ένα από τα έργα που χρησιμοποιεί το + CVS. Διαθέτει επίσης μια μεγάλη βάση από + developers από πολλές διαφορετικές χώρες. Αναπτύχθηκαν λοιπόν μερικές + δέσμες ενεργειών για να κάνουν την διαχείριση του repository πιο εύκολη. + Πρόσφατα οι δέσμες αυτές αναθεωρήθηκαν και κανονικοποιήθηκαν από τον + Joseph Karthauser για να είναι πιο εύκολο να χρησιμοποιηθούν και σε άλλα + έργα. Το άρθρο αυτό περιγράφει μια μέθοδο χρήσης αυτών των νέων + scripts. + + Για να μπορέσετε να χρησιμοποιήσετε με τον καλύτερο τρόπο τις + πληροφορίες αυτού του άρθρου θα πρέπει να γνωρίζετε τις βασικές μεθόδους + λειτουργίας του CVS. + + + + Πρώτη Εγκατάσταση + + + Το καλύτερο θα ήταν να εκτελέσετε για πρώτη φορά αυτή τη + διαδικασία χρησιμοποιώντας ένα κενό δοκιμαστικό repository, για να + είναι βέβαιο ότι θα κατανοήσετε όλες τις συνέπειες. Όπως πάντα, + σιγουρευτείτε ότι έχετε πρόσφατα backups, τα οποία εγγυημένα + δουλεύουν! + + + + Αρχικοποίηση του repository + + Το πρώτο πράγμα που θα πρέπει να κάνετε όταν στήνετε ένα νέο + repository είναι να πείτε στο CVS να το + αρχικοποιήσει: + + &prompt.user; cvs -d path-to-repository init + + Αυτό λέει στο CVS να δημιουργήσει τον + CVSROOT φάκελο διαχείρισης, όπου συμβαίνουν όλες + οι παραμετροποιήσεις. + + + + Η ομάδα του repository + + Τώρα θα δημιουργήσουμε την ομάδα στην οποία θα ανήκει το + repository. Όλοι οι commiters θα πρέπει να ανήκουν στην ομαδα αυτή, + ώστε να μπορούν να γράφουν στο repository. Για το σκοπό αυτό θα + χρησιμοποιήσουμε την ίδια ομάδα που χρησιμοποιεί γι' αυτό και το + FreeBSD, την ομάδα ncvs. + + &prompt.root; pw groupadd ncvs + + Μετά, θα πρέπει να εκτελέσετε την &man.chown.8; στον φάκελο με + παραμέτρους την ομάδα που μόλις προσθέσατε: + + &prompt.root; chown -R :ncvs path-to-your-repository + + Αυτό εξασφαλίζει ότι κανείς δεν θα μπορεί να γράψει στο repository αν + δεν ανήκει στην σωστή ομάδα. + + + + Παίρνοντας τον πηγαίο κώδικα + + Τώρα θα πρέπει να αποκτήσετε τον CVSROOT + κατάλογο από το repository του FreeBSD. Αυτό γίνεται εύκολα, κάνοντας + check out από ένα ανοιχτής πρόσβασης FreeBSD CVS mirror. Δείτε το + σχετικό κεφάλαιο στο εγχειρίδιο για περισσότερες + πληροφορίες. Ας υποθέσουμε ότι ο πηγαίος κώδικας θα αποθηκευτεί στον + κατάλογο CVSROOT-freebsd που βρίσκεται μέσα στον + τρέχοντα κατάλογο. + + + + Αντιγράφοντας τα scripts του FreeBSD + + Ύστερα, αντιγράφουμε τον πηγαίο κώδικα που βρίσκεται στον FreeBSD + CVSROOT στο δικό μας repository. Αν είστε + συνηθισμένος με το CVS, ίσως να + προσπαθήσετε να κάνετε import τις δέσμες εντολών, σε μια προσπάθεια να + γίνει ύστερα ο συγχρονισμός με τις κατοπινές εκδόσεις ευκολότερος. + Ωστόσο, αποδεινύεται ότι το CVS παρουσιάζει + μια δυσλειτουργία στην περιοχή αυτή: Όταν εισάγετε πηγαίο κώδικα μέσα + στο CVSROOT φάκελο, δεν θα ενημερωθούν τα + απαραίτητα αρχεία διαχείρισης. Για να μπορέσετε να το κάνετε να τα + αναγνωρίσει, θα πρέπει να κάνετε checkin ξεχωριστά κάθε αρχείο αφού + έχετε τελειώσει με την εισαγωγή, χάνοντας έτσι την αξία του + cvs import. Επομένως, η προτεινόμενη μέθοδος είναι + απλά να αντιγράψετε τα scripts. + + Δεν είναι και τόσο σημαντικό το αν η παραπάνω παράγραφος δεν σας + φαίνεται πολύ ξεκάθαρη—το τελικό αποτέλέσμα είναι το ίδιο. Απλά + ελέγξτε τον CVSROOT φάκελο και αντιγράψτε τα + FreeBSD αρχεία πάνω από τα δικά σας τοπικά (απείραχτα) αντίγραφα: + + &prompt.user; cvs -d path-to-your-repository checkout CVSROOT +&prompt.user; cd CVSROOT +&prompt.user; cp ../CVSROOT-freebsd/* . +&prompt.user; cvs add * + + Σημειώστε ότι πιθανότατα θα πάρετε μερικές προειδοποιήσεις σχετικά με + το ότι μερικοί φάκελοι δεν θα αντιγραφούν. Αυτό είναι και το επιθυμητό + καθώς δεν τους χρειάζεστε. + + + + Tα scripts + + Τώρα έχετε στον φάκελο εργασίας σας ένα ακριβές αντίγραφο των + scripts που το ίδιο το FreeBSD project χρησιμοποιεί στο δικό του + repository. Μια περίληψη του σε τι χρησιμεύει το κάθε αρχείο + περιλαμβάνεται παρακάτω. + + + + access - το αρχείο αυτό δεν + χρησιμοποιείται στην εξ'ορισμού εγκατάσταση. Χρησιμοποιείται μόνο + στην ειδική εγκατάσταση του + FreeBSD project, όπου και ελέγχει την πρόσβαση στο + repository. Μπορείτε να αφαιρέσετε αυτό το αρχείο αν δεν σας + ενδιαφέρει να χρησιμοποιήσετε κάτι τέτοιο στη δική σας + εγκατάσταση. + + + + avail - το αρχείο αυτό ελέγχει την + πρόσβαση στο repository. Μέσα σε αυτό, μπορείτε να καθορίσετε + ομάδες χρηστών στους οποίους θέλετε να δώσετε πρόσβαση στο + repository, όπως επίσης και να απαγορέψετε commits σε επίπεδο + φακέλου. Θα πρέπει να το προσαρμόσετε ώστε να περιέχει τις ομάδες + χρηστών και τους φακέλους που θα υπάρχουν στο δικό σας + repository. + + + + cfg.pm - το αρχείο αυτό ερμηνεύει τις + ρυθμίσεις σας και παρέχει τις εξ' ορισμού ρυθμίσεις. + Δεν πρέπει να αλλάξετε αυτό το αρχείο. + Αντίθετα, θα πρέπει να τοποθετήσετε τις δικές σας αλλαγές στις + ρυθμίσεις στο αρχείο cfg_local.pm. + + + + cfg_local.pm - το αρχείο αυτό περιέχει + όλες τις ρυθμιζόμενες παραμέτρους του συστήματος. Θα πρέπει να + κάνετε τις οποιεσδήποτε ρυθμίσεις σας εδώ, όπως που θα στέλνετε το + email από κάθε commit, σε ποιους hosts θα επιτρέπεται το commit, + και άλλες. Περισσότερες πληροφορίες σχετικά με αυτό θα βρείτε + παρακάτω. + + + + checkoutlist - το αρχείο αυτό + περιλαμβάνει όλα τα αρχεία που βρίσκονται κάτω από τον έλεγχο του + CVS στον κατάλογο αυτό. Θα πρέπει να + το αλλάξετε για να αφαιρέσετε μερικά, σχετικά μόνο με το FreeBSD, + αρχεία. + + + + commit_prep.pl - το script αυτό εκτελεί + διάφορους ελέγχους πριν από κάθε commit, βασισμένο στο αν τους + έχετε ενεργοποιήσει στο cfg_local.pm. Δεν θα + χρειαστεί να πειράξετε αυτό το αρχείο. + + + + commitcheck - το script αυτό καλείται + απευθείας από το CVS. Πρώτα ελέγχει αν + ο commiter έχει πρόσβαση στο συγκεκριμένο μέρος του δέντρου του + κώδικα, και μετά εκτελεί το commit_prep.pl + που εκτελεί τους διάφορους pre-commit ελέγχους. Αν δεν υπάρξει + κάποιο πρόβλημα στους τελευταίους, τότε το + CVS θα επιτρέψει στο commit να + συνεχίσει. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. + + + + commitinfo - το αρχείο αυτό + χρησιμοποιείται από το CVS στο να + αποφασίσει ποιο script να εκτελέσει πριν από κάθε commit. Δεν θα + χρειαστεί να πειράξετε αυτό το αρχείο. + + + + config - το αρχείο ρυθμίσεων γι' αυτό το + repository. Θα πρέπει να κάνετε αλλαγές σ' αυτό το αρχείο ανάλογα + με τις ανάγκες σας, αλλά οι περισσότεροι διαχειριστές μπορούν να + αφήσουν τις εξ' ορισμού ρυθμίσεις. Περισσότερες πληροφορίες για + τις δυνατές επιλογές που έχετε στο αρχείο αυτό μπορείτε να βρείτε + στο εγχειρίδιο του CVS. + + + + cvs_acls.pl - το script αυτό καθορίζει + την ταυτότητα του commiter, και το αν θα του επιτραπεί πρόσβαση + στο δέντρο του κώδικα. Αυτό γίνεται με βαση το + avail αρχείο. Δεν θα χρειαστεί να πειράξετε + αυτό το αρχείο. + + + + cvsignore - στο αρχείο αυτό καθορίζονται + τα αρχεία που το CVS δεν θα πρέπει να + επιτρέψει το checkin τους στο repository. Μπορείτε να + επεξεργαστείτε αυτό το αρχείο ανάλογα με τις δικές σας + προτιμήσεις. Περισσότερες πληροφορίες για το αρχείο αυτό θα + βρείτε στο εγχειρίδιο του CVS. + + + + cvswrappers - το αρχείο αυτό + χρησιμοποιείται από το CVS για την + ενεργοποίηση ή απενεργοποίηση του keyword expansion, ή για το αν + κάποιο αρχείο θα πρέπει να αντιμετωπίζεται ως binary. Μπορείτε να + επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. + Περισσότερες πληροφορίες σχετικά με το αρχείο αυτό μπορείτε να + βρείτε στο εγχειρίδιο του CVS. + + + + edithook - το αρχείο αυτό δεν + χρησιμοποιείται πια, αλλά εξακολουθεί να υπάρχει για ιστορικούς + λόγους. Δεν θα χρειαστεί να επεξεργαστείτε καθόλου αυτό το + αρχείο. + + + + editinfo - το + CVS χρησιμοποιεί αυτό το αρχείο για + παράκαμψη των editors. Το FreeBSD δεν χρησιμοποιεί αυτή την + λειτουργικότητα γιατί η ερμηνεία του log μηνύματος γίνεται από τα + verifymsg και logcheck + αρχεία. Δεν θα χρειαστεί να πειράξετε αυτό το αρχείο. + + + + exclude - το αρχείο αυτό περιέχει regular + expressions που χρησιμοποιούν για να προσδιοριστούν τα αρχεία που + δεν μπορούν να περιέχουν επικεφαλίδα επισκόπησης (revision + header). Στην FreeBSD εγκατάσταση, όλα τα αρχεία κάτω από έλεγχο + επισκόπησης (revision control) είναι απαραίτητο να περιέχουν ένα + revision header (όπως $FreeBSD$). Όλα τα ονόματα + αρχείων που ταιριάζουν με τουλάχιστον μια από τις γραμμές του + αρχείου αυτού εξαιρούνται από τον συγκεκριμένο έλεγχο. Θα πρέπει + να προσθέσετε τις ανάλογες regular expressions στο αρχείο αυτό + όταν κάνετε checkin αρχεία που δεν θα πρέπει να περιέχουν revision + header. Για τον σκοπό της εγκατάστασης των scripts, ίσως να είναι + καλύτερα να εξαιρείται ο CVSROOT/ κατάλογος + από τον έλεγχο των headers. + + + + log_accum.pl - πρόκειται για ένα script + που παίρνει το log μήνυμα όπως αυτό δίνεται από το + logcheck script, και το προσθέτει στο τέλος + ενός αρχείου log στο repository για σκοπούς δημιουργίας αντιγράφων + ασφαλείας. Επίσης, αναλαμβάνει να στείλει ένα mail στην email + διεύθυνση που έχετε δηλώσει (στο + cfg_local.pm). Δεν θα χρειαστεί να πειράξετε + το αρχείο αυτό. + + + + logcheck - το αρχείο αυτό ερμηνεύει το + commit log μήνυμα που παρέχουν οι commiters, και προσπαθεί κατά + κάποιο τρόπο να το κανονικοποιήσει. + + + Το script εξαρτάται από ένα τοπικό FreeBSD hack του + CVS: Η έκδοση αυτή επανατοποθετεί το + log μήνυμα αφού όμως αυτό έχει τροποποιηθεί από το script. Η + κανονική έκδοση του CVS προφανώς δεν + κάνει κάτι τέτοιο, κάτι που θα έκανε το script αυτό + άχρηστο. + + + + + loginfo - το αρχείο αυτό χρησιμοποιείται + από το CVS για τον έλεγχο του που θα + στέλνονται οι πληροφορίες των logs. Δεν θα χρειαστεί να πειράξετε + αυτό το αρχείο. + + + + modules - το αρχείο αυτό διατηρεί την + παραδοσιακή του σημασία στο CVS. Θα + πρέπει να αφαιρέσετε τα FreeBSD modules από την κανονική έκδοση. + Μπορείτε να επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες + σας. Περισσότερες πληοροφορίες για το αρχείο αυτό είναι + διαθέσιμες στο εγχειρίδιο του + CVS. + + + + notify - το αρχείο αυτό χρησιμοποιείται + από το CVS στην περίπτωση που κάποιος + τοποθετήσει εντολή παρακολούθησης σε κάποιο αρχείο. Δεν + χρησιμοποιείται στο repository του FreeBSD. Μπορείτε να + επεξεργαστείτε αυτό το αρχείο ανάλογα με τις επιθυμίες σας. + Περισσότερες πληροφορίες για το αρχείο αυτό είναι διαθέσιμες στο + εγχειρίδιο του CVS. + + + + options - το αρχείο αυτό σχετίζεται άμεσα + με την FreeBSD έκδοση του CVS. Περιέχει + το keyword που θα γίνεται expand στα revision headers. Θα πρέπει + να τροποποιήσετε το αρχείο αυτό για να είναι ίδιο με την έκδοση + που έχετε εισάγει στο αρχείο cfg_local.pm (αν + αποφασίσετε να χρησιμοποιήσετε αυτή την λειτουργία, που προς το + παρόν δουλεύει σωστά με την έκδοση του + CVS που έχει το FreeBSD). + + + + rcsinfo - το αρχείο αυτό αντιστοιχεί + φακέλους του repository σε αρχεία template. Εξ' ορισμού, το + FreeBSD χρησιμοποιεί ένα template για ολόκληρο το repository. + Μπορείτε να προσθέσετε και άλλα στο αρχείο αυτό αν το + επιθυμείτε. + + + + rcstemplate - το αρχείο αυτό είναι το + template που θα δούν τελικά οι commiters όταν θα κάνουν checkin. + Θα πρέπει να επεξεργαστείτε αυτό το αρχείο ώστε να περιγράφει τις + διάφορες επιπλέον παραμέτρους που ορίσατε στο αρχείο + cfg_local.pm. + + + + tagcheck - το αρχείο αυτό ελέγχει την + πρόσβαση στην χρήση των tags στο repository. Η κανονική έκδοση του + FreeBSD δεν επιτρέπει tags με ονόματα όπως RELENG*, λόγω της + διαδικασίας δημιουργίας των διαφορετικών relases. Θα πρέπει να + επεξεργαστείτε το αρχείο αυτό ανάλογα με τις δικές σας ανάλογες + προτιμήσεις. + + + + taginfo - το αρχείο αυτό αντιστοιχεί + λειτουργίες των tags σε αντίστοιχους φακέλους του repository για + την πρόσβαση στα scripts ελέγχου. Δεν θα χρειαστεί να + τροποποιήσετε αυτό το αρχείο. + + + + unwrap - το αρχείο αυτό χρειάζεται για το + αυτόματο unwrap των binary αρχείων (δείτε + cvswrappers) στο checkout. Δεν + χρησιμοποιείται στην τρέχουσα FreeBSD εγκατάσταση. Δεν θα + χρειαστεί να πειράξετε το αρχείο αυτό. + + + + verifymsg - το αρχείο αυτό αντιστοιχεί + υποκαταλόγους του repository σε προγράμματα επεξεργασίας των + μηνυμάτων του log. Δεν θά 'πρεπε να πειράζετε αυτό το + αρχείο. + + + + wrap - το script αυτό χρειάζεται για το + αυτόματο wrap των binary αρχείων (δείτε + cvswrappers) κατά το checkin. Δεν + χρησιμοποιείται στην τρέχουσα εγκατάσταση του FreeBSD. Δεν θα + χρειαστεί να τροποποιήσετε το αρχείο αυτό. + + + + + + Τροποποιώντας τα scripts + + Το επόμενο βημα είναι η αλλαγή των scripts ώστε να μπορούν να + χρησιμοποιηθούν στο δικό σας περιβάλλον. Θα πρέπει να ελέγξετε όλα τα + αρχεία μέσα στον φάκελο και να κάνετε τις τροποποιήσεις σας. Πιο + συγκεκριμένα, θα θέλετε κατά πάσα πιθανότητα να τροποποιήσετε τα + παρακάτω αρχεία: + + + + Αν δεν θέλετε να χρησιμοποιήσετε τις λειτουργίες των scripts + οι οποίες είναι αποκλειστικές του + FreeBSD, μπορείτε να αφαιρέσετε με ασφάλεια το αρχείο + access: + + &prompt.user; cvs rm -f access + + + + Διορθώστε το αρχείο avail ώστε να + περιέχει τους διάφορους φακέλους του repository στους οποίους + θέλετε να ελέγξετε την πρόσβαση. Σιγουρευτείτε ότι θα διατηρήσετε + ανέπαφη την avail||CVSROOT γραμμή, ειδάλλως θα + αποκλείσετε ακόμα και τον εαυτό σας με το επόμενο βημα. + + Εκτός αυτού στο συγκεκριμένο αρχείο μπορείτε να εισάγετε και + ομάδες απο commiters. Εξ' ορισμού, το FreeBSD χρησιμοποιεί το + αρχείο access για την τοποθέτηση όλων των + commiters, αλλά μπορείτε να χρησιμοποιήσετε όποιο από επιθυμείτε. + Μπορείτε επίσης να προσθέσετε και ομάδες αν το επιθυμείτε (η + σύνταξη καθορίζεται στην κορυφή του αρχείου + cvs_acls.pl). + + + + Διορθώστε το αρχείο cfg_local.pm ώστε να + περιέχει τις επιλογές που επιθυμείτε. Πιο συγκεκριμενα, θα πρέπει + να ελέγξετε τις παρακάτω τροποποιήσιμες επιλογές: + + + + %TEMPLATE_HEADERS - Αυτές + επεξεργάζονται από τα log scripts, και τοποθετούνται κάτω + από το mail του κάθε commit αν υπάρχουν και δεν είναι κενές + στο μήνυμα του commit. Μπορείτε πολύ πιθανόν να αφαιρέσετε + τις PR και MFC after + καταχωρήσεις. Και φυσικά μπορείτε να προσθέσετε τις δικές + σας. + + + + $MAIL_BRANCH_HDR - Αν θέλετε να + προσθέσετε μια επικεφαλίδα σε κάθε commit μήνυμα mail που θα + περιγράφει το branch στο οποίο έγινε το συγκεκριμένο commit, + ορίστε την τιμή αυτή να ταιριάζει με την δική σας + εγκατάσταση σας. Ή αφήστε την κενή αν δεν επιθυμείτε μια + τέτοια επικεφαλίδά. + + + + @COMMIT_HOSTS - Ορίστε την τιμή αυτή + σε μια λίστα από hosts από τους οποίους μπορούν να + επιτρέπονται commit. + + + + $MAILADDRS - Ρυθμίστε αυτή την τιμή + στο email του διαχειριστή ή σε μια διεύθυνση λίστας στην + οποία θέλετε να πηγαίνουν τα mail των commit + μηνυμάτων. + + + + @LOG_FILE_MAP - Αλλάξτε αυτό το array + όπως επιθυμείτε. Κάθε regexp αντιστοιχεί στο συγκεκριμένο + φάκελο στον οποίο γίνεται το commit, και το log μήνυμα του + commit αποθηκεύεται στον υποκατάλογο + commitlogs στο αρχείο που + αναφέρεται. + + + + $COMMITCHECK_EXTRA - Αν δεν θέλετε να + χρησιμοποιήσετε τους + ίδιους ελέγχους πρόσβασης με το FreeBSD, θα πρέπει να + αφαιρέσετε τον ορισμό της τιμής + $COMMITCHECK_EXTRA από το αρχείο + αυτό. + + + + + Η αλλαγή της παραμέτρου $IDHEADER είναι + εγγυημένο ότι θα δουλέψει μόνο σε πλατφόρμες FreeBSD. Εξαρτάται + από ειδικές μετατροπές του FreeBSD στο + CVS. + + + Μπορείτε να ελέγξετε το αρχείο cfg.pm για να + δείτε ποιές άλλες παραμέτρους μπορείτε να αλλάξετε, αλλά οι παραπάνω + είναι οι πιο συνήθεις επιλογές. + + + + Επεξεργαστείτε το αρχείο exclude για να + αφαιρέσετε τις ειδικές καταχωρήσεις του FreeBSD (όπως όλες τις + γραμμές που ξεκινούν με ^ports/ κτλ.). Εκτός + αυτού, βάλτε σε σχόλια τις γραμμές που ξεκινούν με + ^CVSROOT/, και προσθέστε μια γραμμή που θα + περιέχει μόνο το ^CVSROOT/. Αφού εγκατασταθεί + ο wrapper, μπορείτε να προσθέσετε το δικό σας header στα αρχεία + που βρίσκονται μέσα στον CVSROOT κατάλογο και + να επαναφέρετε τις γραμμές αυτές, αλλά προς το παρόν απλά θα σας + δημιουργήσουν προβλήματα όταν θα προσπαθήσετε να κάνετε commit + αργότερα. + + + + Ανοίξτε το αρχείο modules, και αφαιρέστε + όλες τις σχετικές με το FreeBSD καταχωρήσεις. Προσθέστε τα δικά + σας modules αν το επιθυμείτε. + + + + + Το βήμα αυτό είναι απαραίτητο μόνο αν έχετε ορίσει + κάποια τιμή στην παράμετρο $IDHEADER του + αρχείου cfg_local.pm (η οποία δουλεύει μόνο + εφόσον χρησιμοποιείτε την τροποποιημένη έκδοση του + CVS που έχει το FreeBSD). + + + Διορθώστε το αρχείο options ώστε να + ταιριάζει με το tag που ορίσατε στο αρχείο + cfg_local.pm. Μια αναζήτηση και + αντικατάσταση του FreeBSD σε όλο το αρχείο + είναι αρκετή. + + + + Επεξεργαστείτε το αρχείο rcstemplate ώστε + να περιέχει τα ίδια keywords με αυτά που έχετε ορίσει στο + cfg_local.pm. + + + + Προαιρετικά αφαιρέστε τους ελέγχους του FreeBSD από το αρχείο + tagcheck. Μπορείτε απλά να προσθέσετε + exit 0 στην αρχή του αρχείου για να + απενεργοποιήσετε όλους τους ελέγχους στο tagging. + + + + Το τελευταίο πράγμα που πρέπει να γίνει, είναι να + σιγουρευτείτε ότι τα commitlogs μπορούν να αποθηκευτούν. Εξ' + ορισμού αποθηκεύονται στο repository, μέσα στον φάκελο + commitlogs που είναι υποφάκελος του + CVSROOT. Αυτός ο φάκελος πρέπει να + δημιουργηθεί, οπότε κάντε τα ακόλουθα: + + &prompt.user; mkdir commitlogs +&prompt.user; cvs add commitlogs + + + + Τώρα, αφού ελέγξετε τα πάντα προσεκτικά, θα πρέπει να κάνετε + commit τις αλλαγές σας. Φροντίστε να είστε σίγουροι ότι έχετε δώσει + στον εαυτό σας πρόσβαση στον φάκελο CVSROOT μέσα + από το αρχείο avail πριν κάνετε οτιδήποτε, εφόσων + στην αντίθετη περίπτωση θα κλειδώσετε τον εαυτό σας έξω. Οπότε, + φροντίστε τα πάντα να είναι όπως επιθυμείτε, και μόνο τότε δώστε τα + ακόλουθα: + + &prompt.user; cvs commit -m '- Initial FreeBSD scripts commit' + + + + Δοκιμάζοντας την Εγκατάσταση + + Είστε έτοιμοι για την πρώτη σας δοκιμή: Ένα forced commit στο + αρχείο avail, για να σιγουρευτείτε ότι όλα + δουλεύουν όπως θα έπρεπε. + + &prompt.user; cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' avail + + Άν όλα πάνε καλά, συγχαρητήρια! Έχετε καταφέρει να στήσετε μια πλήρως + λειτουργική εγκατάσταση των FreeBSD scripts για το repository σας. + Στην περίπτωση που το CVS εξακολουθεί να + παραπονιέται για κάτι, επιστρέψτε στις προηγούμενες ενότητες και + ελέγξτε ξανά ότι έχετε εκτελέσει σωστά όλα τα προηγούμενα + βήματα. + + + + + Ειδική Εγκατάσταση του FreeBSD Project + + Το ίδιο το FreeBSD project χρησιμοποιεί μια ελαφρώς διαφορετική + εγκατάσταση, που χρησιμοποιεί επίσης αρχεία από τον υποφάκελο + freebsd του CVSROOT που + χρησιμοποιείται στο FreeBSD. Το project χρειάζεται κάτι τέτοιο λόγω του + μεγάλου αριθμού των commiters, που διαφορετικά θα έπρεπε να ανήκουν όλοι + στο ίδιο group. Έτσι, δημιουργήθηκε ένας απλός wrapper ο οποίος αφού + πρώτα εξασφαλίζει τα σωστά διαπιστευτήρια των commiters, αλλάζει + μετέπειτα το group id σε αυτό του repository. + + Αν και το δικό σας repository χρειάζεται κάτι ανάλογο, τα βήματα που + θα πρέπει να ακολουθήσετε ακολουθούν παρακάτω. Αλλά πρώτα ας κάνουμε + μια σύντομη επισκόπηση των σχετικών αρχείων. + + + Αρχεία που χρησιμοποιούνται στην ειδική εγκατάσταση του + FreeBSD + + + + + access - το αρχείο αυτό ελέγχει τις + πληροφορίες για τα δικαιώματα πρόσβασης. Θα πρέπει να το + επεξεργαστείτε ανάλογα έτσι ώστε να περιλαμβάνει όλα τα μέλη του + project σας. + + + + freebsd/commitmail.pl - το αρχείο αυτό + δεν χρησιμοποιείται πια, αλλά παραμένει για ιστορικούς λόγους. + Δεν θα χρειαστεί να επεξεργαστείτε αυτό το αρχείο. + + + + freebsd/cvswrap.c - πρόκειται για τον + πηγαίο κώδικα του CVS wrapper που θα πρέπει να εγκαταστήσετε για + να μπορέσουν όλοι οι έλεγχοι πρόσβασης τελικά να δουλέψουν. + Περισσότερες πληροφορίες για τη διαδικασία αυτή θα βρείτε + παρακάτω. Θα πρέπει να διορθώσετε τα paths στις + ACCESS και REALCVS + μακροεντολές ώστε να ταιριάζουν με τη δική σας + εγκατάσταση. + + + + freebsd/mailsend.c - το αρχείο αυτό + χρειάζεται για την σχετική με τις λίστες ταχυδρομείου + εγκατάσταση του FreeBSD. Δεν θα χρειαστεί να πειράξετε το + αρχείο αυτό. + + + + + + + Η διαδικασία + + + + Διορθώστε το αρχείο access ώστε να + περιέχει μόνο το δικό σσς username. + + + + Διορθώστε το αρχείο cvswrap.c ώστε να + περιέχει το σωστό path για τη δική σας εγκατάσταση. Αυτό ορίζεται + ως μια μακροεντολή που ονομάζεται ACCESS. Θα + πρέπει επίσης να αλλάξετε και τη διεύθυνση του πραγματικού + cvs binary αν αυτή που υπάρχει δεν είναι η + σωστή για τη δική σας περίπτωση. Το κανονικό + cvswrap.c αναμένει να αντικαταστήσει την + εντολή cvs σε επίπεδο συστήματος, η οποία θα θα μεταφερθεί στο + αρχείο /usr/bin/ncvs. + + Το δικό μου αντίτυπο του αρχείου + cvswrap.c έχει τα ακόλουθα: + + #define ACCESS "/local/cvsroot/CVSROOT/access" +#define REALCVS "/usr/bin/ncvs" + + + + Το επόμενο βήμα είναι να εγκαταστήσουμε τον wrapper για να + είμαστε σίγουροι ότι θα γίνεται η μετατροπή στο σωστό group όταν + γίνεται commit. Ο πηγαίος κώδικας γι' αυτό βρίσκεται στο αρχείο + cvswrap.c στον κατάλογο + CVSROOT. + + Μεταγλωττίστε τον κώδικα που έχετε ήδη διορθώσει ώστε να + περιέχει τα σωστά paths: + + &prompt.user; cc -o cvs cvswrap.c + + Στη συνέχεια εγκαταστήστε τον με τα ακόλουθα (Θα πρέπει να είστε + root για το βήμα αυτό): + + &prompt.root; mv /usr/bin/cvs /usr/bin/ncvs +&prompt.root; mv cvs /usr/bin/cvs +&prompt.root; chown root:ncvs /usr/bin/cvs /usr/bin/ncvs +&prompt.root; chmod o-rx /usr/bin/ncvs +&prompt.root; chmod u-w,g+s /usr/bin/cvs + + Αυτό εγκαθιστά τον wrapper σαν την εξ' ορισμού + cvs εντολή, κάνοντας έτσι σίγουρο ότι + οποιοσδήποτε θελήσει να χρησιμοποιήσει το repository, θα πρέπει να + έχει τα κατάλληλα επίπεδα πρόσβασης. + + + + Μπορείτε τώρα να αφαιρέσετε όλους τους χρήστες από το + repository group σας. Όλοι οι έλεγχοι πρόσβασης θα γίνονται από + τον wrapper, και ο ίδιος ο wrapper θα θέτει το ανάλογο group με το + οποίο θα γίνεται και η τελική πρόσβαση. + + + + + Ελέγχοντας την εγκατάσταση + + Ο wrapper πρέπει πλέον να είναι έτοιμος. Μπορείτε φυσικά να το + δοκιμάσετε κάνοντας ένα forced commit στο αρχείο + access: + + &prompt.user; cvs commit -f -m 'Forced commit to test the new CVSROOT scripts' access + + Ξανά, αν αυτό αποτύχει, ελέγξτε για το αν όλα τα παραπάνω βήματα έχουν + εκτελεστεί σωστά. + + +