                       Podgotovka relizov FreeBSD

  Murray Stokely

       <murray@FreeBSD.org>

       
     

   $FreeBSD: doc/ru_RU.KOI8-R/articles/releng/article.sgml,v 1.13
   2010/07/15 06:42:48 taras Exp $

   FreeBSD `eto zaregistrirovannaya torgovaya marka FreeBSD
   Foundation.

   CVSup `eto zaregistrirovannaya torgovaya marka John D. Polstra.

   Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium i Xeon
   `eto torgovye marki ili zaregistrirovannye torgovye marki Intel
   Corporation ili ee dochernih kompanij v Soedinennyh SHtatah i
   drugih stranah.

   XFree86 `eto torgovaya marka XFree86 Project, Inc.

   Mnogie iz oboznachenij, ispol'zuemye proizvoditelyami i prodavcami
   dlya oboznacheniya svoih produktov, zayavlyayutsya v kachestve
   torgovyh marok. Kogda takie oboznacheniya poyavlyayutsya v `etom
   dokumente, i Proektu FreeBSD izvestno o torgovoj marke, k
   oboznacheniyu dobavlyaetsya znak ''(TM)'' ili ''(R)''.

   V `etoj stat'e opisyvaetsya podhod, kotoryj ispol'zuetsya gruppoj
   podgotovki relizov FreeBSD dlya sozdaniya kachestvennyh versij
   Operacionnoj Sistemy FreeBSD. V nej detal'no opisyvaetsya
   metodologiya, ispol'zuemaya dlya oficial'nyh relizov FreeBSD i
   rasskazyvaetsya ob instrumentah, dostupnyh tem, kto interesuetsya
   sozdaniem modificirovannyh relizov FreeBSD dlya tirazhirovaniya
   vnutri organizacii ili v kommercheskih celyah.

     --------------------------------------------------------------

1. Vvedenie

   Razrabotka FreeBSD predstavlyaet soboj ves'ma otkrytyj process.
   FreeBSD sostavlyaetsya v rezul'tate obschih usilij tysyach lyudej
   po vsemu miru. Proekt FreeBSD predostavlyaet anonimnyj publichnyj
   dostup po protokolu CVS[1], tak chto lyuboj mozhet poluchit'
   dostup k zhurnalu izmenenij, raznicam (patcham) mezhdu vetkami
   razrabotki i drugim prodvinutym vozmozhnostyam, kotorye daiot
   strogoe upravlenie ishodnym kodom. `Eto sil'no pomogaet v
   privlechenii k FreeBSD vsio bol'shego kolichestva talantlivyh
   razrabotchikov. Odnako, i ya dumayu, chto vse so mnoj
   soglasyatsya, nastupit haos, esli dostup po zapisi budet otkryt
   vsem v Internet. Po`etomu tol'ko ''izbrannaya'' gruppa primerno iz
   300 chelovek imeet dostup po zapisi v CVS-hranilische. `Eti
   kommittery[5] otvechayut v celom za razrabotku FreeBSD.
   Vybiraemaya iz samyh zasluzhennyh razrabotchikov gruppa
   pravleniya[6] obespechivaet nekotoryj uroven' upravleniya
   proektom.

   Temp razrabotok, veduschihsya vo FreeBSD, ostavlyaet malo vremeni
   na tschatel'nuyu dovodku sistemy do kachestva produktivnogo
   reliza. Dlya resheniya `etoj problemy razrabotka vediotsya v dva
   parallel'nyh potoka. Osnovnoj vetkoj razrabotki yavlyaetsya HEAD,
   ona zhe osnovnaya liniya nashego dereva CVS, izvestnaya takzhe pod
   imenem ''FreeBSD-CURRENT'' ili, dlya kratkosti, ''-CURRENT''.

   Podderzhivaetsya i bolee stabil'naya vetka, izvestnaya kak
   ''FreeBSD-STABLE'' ili, dlya kratkosti, ''-STABLE''. Obe vetki
   nahodyatsya v osnovnom CVS-hranilische v Kalifornii i
   repliciruyutsya pri pomoschi CVSup[2] na zerkala po vsemu miru.
   FreeBSD-CURRENT[7] yavlyaetsya ''perednim kraem'' rabot nad
   FreeBSD, cherez kotoryj popadayut vse izmeneniya v sisteme.
   FreeBSD-STABLE yavlyaetsya vetkoj razrabotki, iz kotoroj
   sozdayutsya osnovnye relizy. V `etu vetku izmeneniya popadayut
   raznymi putyami, i predpolagaetsya, chto snachala oni popali v
   FreeBSD-CURRENT, gde byli tschatel'no protestirovany soobschestvom
   nashih pol'zovatelej.

   V promezhutke mezhdu relizami mashinami Proekta FreeBSD,
   vydelennymi dlya postroeniya sistemy, ezhemesyachno avtomaticheski
   sobirayutsya sn`epshoty, kotorye dostupny dlya zakachki po adresu
   ftp://ftp.freebsd.org/pub/FreeBSD/snapshots/. Obschedostupnost'
   sn`epshotov binarnyh relizov, a takzhe zhelanie soobschestva
   nashih pol'zovatelej otslezhivat' rabotu nad -STABLE pri pomoschi
   CVSup i ''make world''[7] pomogaet podderzhat' ves'ma horoshee
   kachestvo FreeBSD-STABLE, dazhe do vypolneniya meropriyatij
   proverki kachestva, predvaryayuschih vypusk osnovnyh relizov.

   V processe vypuska reliza pol'zovateli postoyanno prisylayut
   soobscheniya ob oshibkah i pozhelaniya po rasshireniyu
   funkcional'nosti. Soobscheniya o problemah popadayut v nashu bazu
   dannyh GNATS[8] po `elektronnoj pochte, posredstvom utility
   send-pr(1) ili cherez Web-interfejs, dostupnyj po adresu
   http://www.FreeBSD.org/send-pr.html. Krome mnozhestva razlichnyh
   tehnicheskih spiskov rassylki o FreeBSD, po adresu Spisok
   rassylki, posvyaschionnyj kontrolyu kachestva FreeBSD mozhno najti
   forum dlya obsuzhdeniya uluchshenij v ''processe vypuska
   relizov''.

   Dlya udovletvoreniya nashih samyh konservativno nastroennyh
   pol'zovatelej, nachinaya s FreeBSD 4.3, poyavilis' vetki dlya
   otdel'nyh relizov. `Eti vetki sozdayutsya vskore posle togo, kak
   vypuskaetsya okonchatel'nyj reliz. Posle ego vyhoda v vetku reliza
   pomeschayutsya tol'ko samye kritichnye ispravleniya i dobavleniya,
   kasayuschiesya bezopasnosti. Krome obnovlenij ishodnyh tekstov
   posredstvom CVS, dlya sistem vetok RELENG_X_Y imeyutsya i binarnye
   nabory patchej.

     --------------------------------------------------------------

  1.1. CHto obsuzhdaetsya v dannom dokumente?

   V posleduyuschih glavah `etoj stat'i obsuzhdayutsya:

   Razd. 2

           Razlichnye `etapy processa podgotovki reliza vplot' do
           postroeniya aktual'noj sistemy.

   Razd. 3

           Process sborki.

   Razd. 5

           Kak bazovyj reliz mozhet byt' rasshiren tret'imi
           storonami.

   Razd. 6

           Nekotorye iz urokov, poluchennyh pri vypuske reliza
           FreeBSD 4.4.

   Razd. 7

           Napravleniya buduschih rabot.

     --------------------------------------------------------------

2. Process vypuska reliza

   Novye relizy FreeBSD vypuskayutsya iz vetki -STABLE s intervalom
   primerno v chetyre mesyaca. Process vypuska relizov FreeBSD
   nachinaetsya za 45 dnej do predpolagaemoj daty reliza s togo, chto
   otvetstvennyj za reliz posylaet soobschenie po `elektronnoj pochte
   v adres spiskov rassylki dlya razrabotchikov, chtoby napomnit'
   poslednim o nalichii vsego lish' 15 dnej na vnesenie novyh
   izmenenij do momenta zamorozki koda. V `etot period mnogie
   razrabotchiki vypolnyayut dejstviya, izvestnye kak
   ''MFC-perenosy''. MFC oznachaet ''Merge From CURRENT'' (perenos iz
   CURRENT) i opisyvaet process perenosa protestirovannyh izmenenij
   iz nashego dereva razrabotki -CURRENT v nashe derevo -STABLE.

     --------------------------------------------------------------

  2.1. Prosmotr koda

   Za tridcat' dnej do predpolagaemogo reliza hranilische ishodnyh
   tekstov perevoditsya v rezhim ''stabilizacii koda''. V `etot
   period vse izmeneniya v dereve -STABLE dolzhny podtverzhdat'sya
   Gruppa Vypuska Relizov FreeBSD <re@FreeBSD.org>. V pervyj
   15-dnevnyj period razresheny sleduyuschie tipy izmenenij:

     * Ispravleniya oshibok.

     * Obnovlenie dokumentacii.

     * Ispravleniya lyubogo haraktera, kasayuschiesya bezopasnosti.

     * Neznachitel'nye ispravleniya v drajverah ustrojstv, takie,
       kak, naprimer, dobavlenie novyh ID ustrojstv.

     * Lyubye drugie izmeneniya, kotorye odobryaet gruppa podgotovki
       reliza, s uchiotom potencial'nogo riska.

   Posle pervyh 15 dnej stabilizacii koda vypuskaetsya
   predvaritel'nyj reliz, prednaznachennyj dlya shirokogo
   testirovaniya, a kod perevoditsya v sostoyanie ''zamorozki'',
   kogda stanovitsya gorazdo trudnee dokazyvat' neobhodimost'
   vneseniya novyh izmenenij v sistemu, esli oni ne kasayutsya
   ispravleniya ser'ioznyh oshibok ili informacionnoj bezopasnosti.
   Vo vremya zamorozki koda kazhduyu nedelyu vypuskaetsya ne menee
   odnoj predvaritel'noj versii reliza, do teh por, poka ne budet
   gotov okonchatel'nyj variant reliza. V dni, predshestvuyuschie
   vypusku okonchatel'nogo reliza, gruppa ego podgotovki rabotaet v
   postoyannom kontakte so sluzhboj bezopasnosti i lyud'mi,
   podderzhivayuschimi dokumentaciyu i porty, chtoby obespechit'
   dostupnost' vseh komponentov, neobhodimyh dlya uspeshnogo vypuska
   reliza.

     --------------------------------------------------------------

  2.2. Kontrol'nyj spisok dlya proverki okonchatel'nogo reliza

   Posle togo, kak dlya shirokogo testirovaniya bylo vypuscheno
   neskol'ko predvaritel'nyh relizov i vse osnovnye problemy byli
   resheny, mozhet nachat'sya process ''shlifovki'' okonchatel'nogo
   reliza.

     --------------------------------------------------------------

    2.2.1. Sozdanie vetki reliza

   Kak skazano vo vvodnoj chasti, vetka RELENG_X_Y yavlyaetsya
   sravnitel'no novym dobavleniem v nashej metodologii podgotovki
   relizov. Pervym shagom v sozdanii `etoj vetki yavlyaetsya proverka
   togo, chto vy rabotaete s samoj poslednej versiej ishodnyh tekstov
   RELENG_X, iz kotoroj vy hotite sozdat' novuyu vetku.

 /usr/src# cvs update -rRELENG_4 -P -d

   Sleduyuschim shagom yavlyaetsya sozdanie t`ega tochki
   otvetvleniya, chtoby diffy oblegchili rabotu s nachalom vetki v
   CVS:

 /usr/src# cvs rtag -rRELENG_4 RELENG_4_8_BP src

   Posle `etogo sozdaiotsya t`eg novoj vetki po komande:

 /usr/src# cvs rtag -b -rRELENG_4_8_BP RELENG_4_8 src

     Zamechanie: Ispol'zovanie t`egov RELENG_* razresheno tol'ko
     menedzheram CVS i uchastnikam gruppy po vypusku relizov.

   +----------------------------------------------------------------+
   | ''T`egom'' v ponyatii CVS nazyvayut metku, kotoraya            |
   | identificiruet ishodnyj tekst v nekotoryj moment vremeni.      |
   | Vvodya t`eg v derevo, my obespechivaem to, chto v buduschem    |
   | tot, kto stroit reliz, vsegda smozhet vospol'zovat'sya tem zhe |
   | samym kodom, chto ispol'zovalsya nami dlya sozdaniya           |
   | oficial'nyh relizov Proekta FreeBSD.                           |
   +----------------------------------------------------------------+

   Vetvi razrabotki FreeBSD

   Vetka FreeBSD 3.x STABLE

   Vetka FreeBSD 4.x STABLE

   Vetka FreeBSD 5.x STABLE

   Vetka FreeBSD 6.x STABLE

   Vetka FreeBSD 7.x STABLE

   Vetka FreeBSD 8.x STABLE

     --------------------------------------------------------------

    2.2.2. Uvelichenie nomera versii

   Pered tem, kak okonchatel'nyj reliz budet pomechen, postroen i
   vypuschen, neobhodimo modificirovat' sleduyuschie fajly, otraziv v
   nih korrektnuyu versiyu FreeBSD:

     * doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml

     * doc/en_US.ISO8859-1/books/porters-handbook/book.sgml

     * doc/share/sgml/freebsd.ent

     * src/Makefile.inc1

     * src/UPDATING

     * src/gnu/usr.bin/groff/tmac/mdoc.local

     * src/release/Makefile

     * src/release/doc/en_US.ISO8859-1/share/sgml/release.dsl

     * src/release/doc/share/examples/Makefile.relnotesng

     * src/release/doc/share/sgml/release.ent

     * src/share/examples/cvsup/standard-supfile

     * src/sys/conf/newvers.sh

     * src/sys/sys/param.h

     * src/usr.sbin/pkg_install/add/main.c

     * www/en/docs/man.sgml

     * www/en/cgi/ports.cgi

     * ports/Tools/scripts/release/config

   Novyj reliz dolzhen byt' takzhe otrazhion v fajlah zamechanij k
   relizu i informacii o zamechennyh oshibkah (v vetke reliza), a
   fajly sootvetstvuyuschim obrazom obrezany (v vetke
   stable/current):

     * src/release/doc/en_US.ISO8859-1/relnotes/common/new.sgml

     * src/release/doc/en_US.ISO8859-1/errata/article.sgml

   Utilita sysinstall dolzhna byt' obnovlena i ukazyvat' kolichestvo
   dostupnyh portov i ob"iom diskovogo prostranstva, trebuemogo dlya
   Kollekcii Portov[4]. Na dannyj moment `eta informaciya hranitsya v
   fajle src/usr.sbin/sysinstall/dist.c.

   Posle postroeniya reliza dlya opovescheniya mirovogo soobschestva
   o vypuske reliza neobhodimo obnovit' nekotorye fajly.

     * doc/share/images/articles/releng/branches-relengX.pic

     * www/share/sgml/advisories.xml

     * www/share/sgml/includes.release.sgml

     * www/share/sgml/includes.release.xsl

     * www/en/releases/*

     * www/en/releng/index.sgml

     * www/en/news/news.xml

     * www/en/search/web.atoz

     * src/share/misc/bsd-family-tree

     --------------------------------------------------------------

    2.2.3. Podgotovka novoj starshej reliz vetki (RELENG_X)

   Kogda novaya starshaya reliz vetka, takaya kak RELENG_6
   otvetvlyaetsya iz HEAD, nekotorye dopolnitel'nye fajly dolzhny
   byt' obnovleny pered tem, kak relizy budut sozdany iz `etoj novoj
   vetki.

     * src/share/examples/cvsup/stable-supfile - kogda primenimo,
       dolzhen byt' obnovlen, chtoby ukazyvat' na novuyu -STABLE
       vetku.

     --------------------------------------------------------------

    2.2.4. Sozdanie t`egov reliza

   Pri gotovnosti okonchatel'nogo reliza sleduyuschaya komanda
   sozdast t`eg RELENG_4_8_0_RELEASE.

 /usr/src# cvs rtag -rRELENG_4_8 RELENG_4_8_0_RELEASE src

   Menedzhery dokumentacii i portov otvechayut za vnesenie t`ega v
   sootvetstvuyuschie vetki s t`egom RELEASE_4_8_0.

   Inogda v poslednij moment, uzhe posle sozdaniya poslednih t`egov
   mozhet potrebovat'sya vnesenie ispravlenij. Na praktike `eto ne
   yavlyaetsya problemoj, tak kak CVS pozvolyaet vypolnyat'
   manipulyacii s t`egami po komande cvs tag -d tagname filename.
   Ochen' vazhno, chtoby vse poslednie izmeneniya byli pomecheny
   sootvetstvuyuschim t`egom, kak chast' reliza. Relizy FreeBSD
   dolzhny byt' vsegda povtoryaemymi. Lokal'nye izmeneniya v
   parametry okruzheniya vypuskayuschego reliz nedopustimy.

     --------------------------------------------------------------

3. Postroenie relizov

   ''Relizy'' FreeBSD mogut byt' postroeny lyubym chelovekom,
   imeyuschim bystrodejstvuyuschuyu mashinu i dostup k hranilischu
   ishodnyh tekstov. (`Eto dolzhen byt' lyuboj, tak kak my
   predostavlyaem anonimnyj dostup k CVS! Obratites' k Rukovodstvu
   dlya proyasneniya detalej.) Edinstvennym osobym trebovaniem
   yavlyaetsya nalichie ustrojstva vn(4). (V -CURRENT `eto ustrojstvo
   bylo zameneno na novyj drajver diskov v pamyati md(4).) Esli
   ustrojstvo v vashem yadre ne podgruzheno, to modul' yadra dolzhen
   byt' podgruzhen avtomaticheski pri vypolnenii komandy vnconfig(8)
   na `etape sozdaniya nositelya dlya zagruzki. Vse instrumenty,
   neobhodimye dlya postroeniya reliza, dostupny iz hranilischa CVS v
   kataloge src/release. `Eti instrumenty predostavlyayut edinyj
   metod postroeniya relizov FreeBSD. Polnyj reliz mozhet byt'
   real'no postroen pri pomoschi lish' odnoj komandy, vklyuchaya
   sozdanie ISO-obrazov, podhodyaschih dlya zapisi na CDROM,
   ustanovochnyh disket i ustanovochnogo kataloga FTP. `Eta komanda
   nazyvaetsya sootvetstvuyuschim obrazom: make release.

     --------------------------------------------------------------

  3.1. make release

   Dlya uspeshnogo postroeniya reliza vy dolzhny snachala zapolnit'
   katalog /usr/obj, zapustiv komandu make world ili prosto make
   buildworld. Cel', vypolnyaemaya dlya postroeniya reliza, trebuet
   korrektnogo zadaniya neskol'kih peremennyh, ispol'zuemyh pri ego
   sborke:

     * CHROOTDIR - Katalog, ispol'zuemyj v srede s izmenionnoj
       kornevoj fajlovoj sistemoj pri postroenii polnogo reliza.

     * BUILDNAME - Naimenovanie stroyaschegosya reliza.

     * CVSROOT - Mestonahozhdenie CVS-hranilischa.

     * RELEASETAG - T`eg CVS, sootvetstvuyuschij relizu, kotoryj vy
       sobiraetes' stroit'.

   Esli u vas eschio net dostupa k lokal'nomu CVS-hranilischu, to vy
   mozhete zerkalirovat' odno iz nih pri pomoschi CVSup.
   Postavlyaemyj sup-fajl, /usr/share/examples/cvsup/cvs-supfile,
   mozhet sluzhit' horoshej otpravnoj tochkoj dlya zerkalirovaniya
   hranilischa CVS.

   Esli RELEASETAG opuschen, to reliz budet stroit'sya iz vetki HEAD
   (izvestnoj kak -CURRENT). Relizy, stroyaschiesya iz `etoj vetki
   obychno nazyvayut ''sn`epshotami -CURRENT''.

   Dlya nastrojki postroeniya reliza suschestvuet mnogo drugih
   peremennyh Bol'shinstvo iz `etih peremennyh opisany v nachale
   fajla src/release/Makefile. Tochnaya komanda, sluzhaschaya dlya
   postroeniya oficial'nogo reliza FreeBSD 4.7 (x86) takova:

 make release CHROOTDIR=/local3/release \
         BUILDNAME=4.7-RELEASE \
         CVSROOT=/host/cvs/usr/home/ncvs \
         RELEASETAG=RELENG_4_7_0_RELEASE

   Makefile dlya reliza mozhet byt' razbit na neskol'ko razlichnyh
   shagov.

     * Sozdanie chistogo sistemnogo okruzheniya v otdel'noj ierarhii
       katalogov po komande ''make installworld''.

     * Vygruzka iz CVS chistoj versii ishodnyh tekstov sistemy,
       dokumentacii i portov v ierarhiyu dlya postroeniya reliza.

     * Sozdanie kopii /etc i /dev v okruzhenii s izmenionnym kornem
       fajlovoj sistemy.

     * Smena kornevoj fajlovoj sistemy na ierarhiyu postroeniya
       reliza, chtoby izbezhat' vliyaniya vneshnego okruzheniya na
       postroenie.

     * Vypolnenie make world v okruzhenii s izmenionnoj kornevoj
       fajlovoj sistemoj.

     * Postroenie binarnyh fajlov dlya raboty s Kerberos.

     * Postroenie yadra GENERIC.

     * Sozdanie promezhutochnogo dereva katalogov, gde budut
       stroit'sya binarnye fajly i formirovat'sya distributivy.

     * Postroenie i ustanovka instrumentov dlya raboty s
       dokumentaciej, neobhodimyh dlya preobrazovaniya ishodnyh
       tekstov dokumentacii (SGML) v format HTML i tekstovye
       dokumenty, kotorye soputstvuyut reliz.

     * Postroenie i ustanovka aktual'noj dokumentacii (rukovodstva
       pol'zovatelej, uchebniki, zamechaniya k relizu, perechen'
       apparatnoj sovmestimosti i tak dalee.)

     * Postroenie ''sviornutyh'' binarnyh fajlov, ispol'zuemyh na
       ustanovochnyh disketah.

     * Podgotovka distributivnyh arhivov binarnyh fajlov i ishodnyh
       tekstov.

     * Sozdanie zagruzochnogo nositelya i ''fixit''-diskety.

     * Sozdanie ierarhii dlya ustanovki pri pomoschi FTP.

     * (opcional'no) Sozdanie obrazov ISO dlya nositelej CDROM/DVD.

   Dlya polucheniya bolee polnoj informacii ob infrastrukture
   postroeniya relizov, pozhalujsta, obratites' k spravochnoj
   stranice po release(7).

     --------------------------------------------------------------

  3.2. Postroenie XFree86(TM)

   XFree86(TM) yavlyaetsya vazhnym komponentom dlya mnogih
   pol'zovatelej nastol'nyh sistem. Do vyhoda FreeBSD 4.6-RELEASE v
   relizah po umolchaniyu ispol'zovalas' XFree86 3.X. Samym prostym
   sposobom postroeniya `etih versij yavlyaetsya ispol'zovanie
   skripta src/release/scripts/X11/build_x.sh. On trebuet, chtoby na
   host, vypolnyayuschij postroenie, uzhe byli ustanovleny XFree86 i
   Tcl/Tk. Posle kompilyacii neobhodimyh X-serverov, skript
   preobrazuet vse fajly v arhivnye, kotorye sysinstall(8) ozhidaet
   najti v kataloge XF86336 na ustanovochnom nositele.

   Nachinaya s FreeBSD 4.6-RELEASE, sysinstall(8) po umolchaniyu
   ustanavlivaet XFree86 4.X, kak nabor ''obychnyh'' paketov. `Eto
   mogut byt' kak pakety, sozdannye v processe raboty klastera
   postroeniya portov, tak i pakety, postroennye iz
   sootvetstvuyuschim obrazom pomechennogo dereva portov.

   Nachinaya s FreeBSD 5.3-RELEASE, sysinstall(8) po umolchaniyu
   ustanavlivaet pakety Xorg vzamen paketov XFree86.

     Zamechanie: Vazhno, chtoby iz fajla /etc/make.conf byli udaleny
     vse ustanovki, specifichnye dlya konkretnogo hosta. K primeru,
     budet glupo rasprostranyat' binarnye fajly, postroennye na
     sisteme s peremennoj CPUTYPE, ukazyvayuschej na opredelionnyj
     tip processora.

     --------------------------------------------------------------

  3.3. Programmnoe obespechenie tret'ih lic (''ports'')

   Kollekciya portov FreeBSD soderzhit bolee 20,000 programmnyh
   paketov storonnih razrabotchikov, kotorye dostupny dlya FreeBSD.
   Za podderzhku celostnosti dereva portov, kotoroe mozhet
   ispol'zovat'sya dlya sozdaniya binarnyh paketov, postavlyaemyh s
   oficial'nymi relizami FreeBSD, otvechaet Gruppa Menedzherov Dereva
   Portov FreeBSD <portmgr@FreeBSD.org>.

   Rassmotrenie rabot s nashej kollekciej paketov storonnih
   razrabotchikov pri podgotovke relizov vyhodit za ramki `etogo
   dokumenta. `Etot vopros gluboko rassmotren v otdel'noj stat'e, The
   Release Engineering of Third Party Packages.

     --------------------------------------------------------------

  3.4. ISO s relizami

   Nachinaya s FreeBSD 4.4, Proekt FreeBSD prinyal reshenie
   rasprostranyat' vse chetyre obraza ISO, ranee prodavaemye cherez
   BSDi/Wind River Systems/FreeBSD Mall kak ''oficial'nye''
   distributivy na CDROM. Kazhdyj iz chetyrioh diskov dolzhen
   soderzhat' fajl README.TXT, opisyvayuschij soderzhimoe diska, fajl
   CDROM.INF, v kotorom nahodyatsya meta-dannye o diske dlya togo,
   chtoby sysinstall(8) mog proveryat' i ispol'zovat' soderzhimoe, a
   takzhe fajl filename.txt, soderzhaschij perechen' soderzhimogo na
   diske. `Etot perechen' mozhet byt' sozdan prostoj komandoj:

 /stage/cdrom# find . -type f | sed -e 's/^\.\///' | sort > filename.txt

   Specifichnye trebovaniya dlya kazhdogo CD opisyvayutsya nizhe.

     --------------------------------------------------------------

    3.4.1. Disk 1

   Pervyj disk prakticheski polnost'yu sozdaiotsya komandoj make
   release. Edinstvennym izmeneniem, kotoroe nuzhno vnesti v katalog
   disc1, yavlyaetsya dobavlenie podkatalogov tools i XFree86, a
   takzhe perenos maksimal'no vozmozhnogo kolichestva programmnyh
   paketov storonnih razrabotchikov, kotorye pomestyatsya na disk.
   Katalog tools soderzhit programmnoe obespechenie, pozvolyayuschee
   pol'zovatelyam sozdavat' ustanovochnye diskety iz drugih
   operacionnyh sistem. `Etot disk nuzhno sdelat' zagruzochnym,
   chtoby pol'zovatelyam sovremennyh PK ne nuzhno bylo sozdavat'
   ustanovochnye diskety.

   Esli v reliz neobhodimo vklyuchit' specializirovannoe yadro, to
   neobhodimo modificirovat' sysinstall(8) i release(7), dobaviv v
   nih instrukcii po ustanovke. Sootvetstvuyuschij kod nahoditsya v
   src/release i src/usr.sbin/sysinstall. V chastnosti, v
   src/usr.sbin/sysinstall neobhodimo budet redaktirovat'
   src/release/Makefile, dist.c, dist.h, menus.c, install.c i
   Makefile. Takzhe mozhet potrebovat'sya obnovit' sysinstall.8.

   Esli predostavlyaetsya drugaya versiya XFree86, to dolzhny byt'
   obnovleny utilita sysinstall(8), otrazhayuschaya novoe
   mestopolozhenie, i instrukcii po ustanovke. Sootvetstvuyuschij kod
   nahoditsya v kataloge src/usr.sbin/sysinstall. Dolzhny byt'
   obnovleny konkretno fajly dist.c, menus.c i config.c.

     --------------------------------------------------------------

    3.4.2. Disk 2

   Vtoroj disk takzhe v osnovnom sozdaiotsya po komande make release.
   On soderzhit ''zhivuyu fajlovuyu sistemu'', kotoruyu mozhno
   ispol'zovat' iz sysinstall(8) dlya ispravleniya processa ustanovki
   FreeBSD. `Etot disk dolzhen byt' zagruzochnym i soderzhat' takzhe
   upakovannuyu kopiyu hranilischa CVS v kataloge CVSROOT i
   demonstracionnye versii kommercheskogo programmnogo obespecheniya
   v kataloge commerce.

     --------------------------------------------------------------

    3.4.3. Diski 3 i 4

   Ostavshiesya dva diska soderzhat dopolnitel'nye programmnye pakety
   dlya FreeBSD. Oni dolzhny byt' ob"edineny v gruppy (klastery),
   chtoby otdel'nyj paket i vse ego zavisimosti nahodilis' na odnom i
   tom zhe diske. Dopolnitel'naya informaciya o sozdanii `etih diskov
   nahoditsya v stat'e The Release Engineering of Third Party
   Packages.

     --------------------------------------------------------------

    3.4.4. Podderzhka neskol'kih diskov

   Sysinstall podderzhivaet ustanovku paketov s neskol'kih diskov.
   Dlya `eto nuzhno, chtoby na kazhdom diske byl fajl INDEX,
   soderzhaschij nazvaniya vseh paketov so vseh diskov, s
   dopolnitel'nym polem, ukazyvayuschem na kakom diske soderzhitsya
   dannyj konkretnyj paket. Takzhe, na kazhdom diske, v fajle
   cdrom.inf dolzhna byt' ukazana peremennaya CD_VOLUME dlya togo,
   chtoby sysinstall mog opredelit' kakoj `etoj disk. Kogda
   pol'zovatel' budet pytat'sya ustanovit' paket, kotorogo net na
   tekuschem diske, sysinstall vydast zapros na vstavku
   sootvetstvuyuschego diska.

     --------------------------------------------------------------

4. Rasprostranenie

  4.1. Servery FTP

   Posle togo, kak reliz byl tschatel'no protestirovan i podgotovlen
   k rasprostraneniyu, dolzhen byt' obnovlion glavnyj FTP-server. Vse
   oficial'nye obschedostupnye servery FTP-servery FreeBSD
   yavlyayutsya zerkalami glavnogo servera, otkrytogo tol'ko drugim
   serveram FTP. `Etot server izvesten pod imenem ftp-master. Kogda
   reliz gotov, na servere ftp-master dolzhny byt' izmeneny
   sleduyuschie stroki:

   /pub/FreeBSD/releases/arch/X.Y-RELEASE/

           Ustanovochnyj katalog FTP, poluchaemyj po komande make
           release.

   /pub/FreeBSD/ports/arch/packages-X.Y-release/

           Polnyj komplekt postroennyh paketov dlya `etogo reliza.

   /pub/FreeBSD/releases/arch/X.Y-RELEASE/tools

           Simvolicheskaya ssylka na ../../../tools.

   /pub/FreeBSD/releases/arch/X.Y-RELEASE/packages

           Simvolicheskaya ssylka na
           ../../../ports/arch/packages-X.Y-release.

   /pub/FreeBSD/releases/arch/ISO-IMAGES/X.Y/X.Y-RELEASE-arch-*.iso

           ISO-obrazy. Zdes' ''*'' `eto disc1, disc2 i tak dalee.
           Tol'ko esli zdes' est' disc1 i al'ternativnyj pervyj
           ustanovochnyj CD (naprimer, obrezannaya ustanovka bez
           okonnoj sistemy), to zdes' mozhet byt' takzhe i mini.

   Dlya polucheniya dopolnitel'noj informacii o sisteme zerkal'nyh
   FTP-serverov FreeBSD, pozhalujsta, prochtite stat'yu o
   Zerkalirovanii FreeBSD.

   Mozhet projti ot neskol'kih chasov do dvuh dnej mezhdu tem, kak
   obnovitsya ftp-master, i na osnovnoj masse FTP-serverov 1-go
   urovnya poyavitsya novoe programmnoe obespechenie, v zavisimosti
   ot togo, v tozhe samoe li vremya paket byl zagruzhen.
   Obyazatel'no, chtoby vypuskayuschie reliz koordinirovali svoi
   dejstviya s Administratory zerkal'nyh sajtov FreeBSD do togo, kak
   ob"yavlyat' ob obschedostupnosti novogo programmnogo obespecheniya
   s serverov FTP. V ideal'nom sluchae nabor paketov k relizu dolzhen
   byt' zagruzhen po krajnej mere za chetyre dnya do momenta vypuska
   reliza. Reliz dolzhen byt' zagruzhen v promezhutke ot 24 do 48
   chasov do momenta vyhoda zaplanirovannogo reliza s vyklyuchennymi
   polnomochiyami ''other''. `Eto pozvolit zerkaliruyuschim serveram
   sgruzit' ego, no nikto ne smozhet poluchit' ego s zerkal'nyh
   serverov. V moment vyhoda reliza dolzhno byt' poslano soobschenie
   v adres Administratory zerkal'nyh sajtov FreeBSD, govoryaschee o
   tom, chto reliz vypuschen i nastupilo vremya dlya otkrytiya
   dostupa na zerkal'nyh serverah. Obyazatel'no vmeste so vremenem
   ukazhite i chasovoj poyas, naprimer, otnositel'no GMT.

     --------------------------------------------------------------

  4.2. Tirazhirovanie CD-ROM

   Vskore poyavitsya: Sovety po peredache ISO-obrazov FreeBSD na
   tirazhirovanie i primenyaemye mery po kontrolyu kachestva.

     --------------------------------------------------------------

5. Rasshiryaemost'

   Hotya FreeBSD predstavlyaet soboj zakonchennuyu operacionnuyu
   sistemu, nichego ne zastavlyaet vas ispol'zovat' sistemu tol'ko v
   tom vide, kotoryj prigotovlen nami dlya rasprostraneniya. My
   popytalis' sproektirovat' sistemu maksimal'no rasshiryaemoj,
   chtoby ona mogla vypolnyat' rol' platformy, na osnove kotoroj
   mozhno stroit' drugie kommercheskie produkty. Edinstvennym
   ''pravilom'', kotoroe my nalagaem, yavlyaetsya nastoyatel'naya
   rekomendaciya dokumentirovat' uluchsheniya, vnosimye vami v
   distributiv FreeBSD s netrivial'nymi izmeneniyami! Soobschestvo
   FreeBSD mozhet pomogat' tol'ko pol'zovatelyam togo programmnogo
   obespecheniya, kotoroe rasprostranyaem my. My opredelionno
   privetstvuem uluchsheniya v forme, naprimer, instrumentov
   ustanovki i administrirovaniya, no ne mozhem otvechat' na voprosy
   o nih.

     --------------------------------------------------------------

  5.1. Sozdanie modificirovannyh zagruzochnyh disket

   Vo mnogih mestah imeyutsya slozhnye usloviya, kotorye trebuyut
   razmescheniya dopolnitel'nyh modulej yadra ili pol'zovatel'skih
   instrumentov na ustanovochnye diskety. ''Bystrym i neakkuratnym''
   sposobom sdelat' `eto yavlyaetsya izmenenie promezhutochnogo
   kataloga v suschestvuyuschej ierarhii pri vypolnenii make release:

     * Primenite patchi ili dobav'te dopolnitel'nye fajly v katalog
       postroeniya reliza s izmenionnyh kornem fajlovoj sistemy.

     * rm ${CHROOTDIR}/usr/obj/usr/src/release/release.[59]

     * perestrojte sysinstall(8), yadro i ostal'nye chasti sistemy,
       kotorye kosnulis' vashi izmeneniya.

     * chroot ${CHROOTDIR} ./mk floppies

   Diskety novogo reliza budut nahodit'sya v
   ${CHROOTDIR}/R/stage/floppies.

   Libo mozhet byt' vyzvana cel' boot.flp postroeniya ili skript
   sozdaniya fajlovoj sistemy, src/release/scripts/doFS.sh, kotorye
   mozhet byt' vyzvan napryamuyu.

   Lokal'nye patchi mogut byt' takzhe prilozheny k postroeniyu reliza
   pri pomoschi zadaniya peremennoj LOCAL_PATCH pri vypolnenii make
   release.

     --------------------------------------------------------------

  5.2. Skripty sysinstall

   Instrument ustanovki i nastrojki sistemy FreeBSD, sysinstall(8),
   mozhet rabotat' po scenariyu, poleznomu dlya avtomatizirovannoj
   ustanovki v bol'shih kompaniyah. `Eta funkcional'nost' mozhet
   ispol'zovat'sya sovmestno s tehnologiej Intel(R) PXE[12] dlya
   pervonachal'noj ustanovki sistem iz seti, ili s modificirovannymi
   zagruzochnymi disketami so skriptami sysinstall. Primer skripta
   dlya sysinstall dostupen v dereve CVS v vide fajla
   src/release/sysinstall/install.cfg.

     --------------------------------------------------------------

6. Uroki, izvlechionnye iz FreeBSD 4.4

   Formal'no process podgotovki reliza dlya 4.4 nachalsya 1 avgusta
   2001 goda. Posle `etoj daty vse bez isklyucheniya izmeneniya v
   vetke RELENG_4 FreeBSD podtverzhdalis' Gruppa Vypuska Relizov
   FreeBSD <re@FreeBSD.org>. Pervyj predvaritel'nyj reliz dlya
   arhitektury x86 byl vypuschen 16 avgusta, za nim vyhodilo eschio 4
   predvaritel'nyh reliza, i vsio zakonchilos' 18 avgusta vypuskom
   okonchatel'nogo reliza. Rukovoditel' sluzhby bezopasnosti ochen'
   plotno zanimalsya processom vypuska v poslednyuyu nedelyu, tak kak
   v predyduschih predvaritel'nyh relizah byli najdeny problemy,
   kasayuschiesya informacionnoj bezopasnosti. CHut' bolee chem za
   mesyac v adres Gruppa Vypuska Relizov FreeBSD <re@FreeBSD.org>
   postupilo bolee 500 pisem.

   Soobschestvo nashih pol'zovatelej ves'ma chiotko pokazalo, chto
   bezopasnost' i stabil'nost' reliza FreeBSD ne dolzhna prinosit'sya
   v zhertvu lyubym naznachennym srokam okonchaniya rabot ili
   planiruemym datam vyhoda reliza. Proekt FreeBSD za vremya svoego
   suschestvovaniya znachitel'no vyros, i nikogda ranee neobhodimost'
   v standartizacii procedur podgotovki relizov ne stoyala tak ostro.
   `Eto stalo eschio bolee vazhno, kogda FreeBSD byla perenesena na
   novye apparatnye platformy.

     --------------------------------------------------------------

7. Napravleniya buduschih rabot

   Nashim rabotam po podgotovke relizov zhiznenno vazhno rasti vmeste
   s uvelicheniem kolichestva pol'zovatelej sistemy. Vmeste s `etim
   my ochen' plotno rabotaem nad dokumentirovaniem dejstvij,
   vypolnyaemyh pri vypuske relizov FreeBSD.

     * Parallelizm - nekotorye `etapy postroeniya reliza na samom
       dele vypolnyat' parallel'no ''zatrudnitel'no''. Bol'shinstvo
       vypolnyaemyh zadach ves'ma intensivno rabotayut s I/O, tak
       chto dlya uskoreniya processa make release nalichie neskol'kih
       vysokoskorostnyh diskov gorazdo bolee vazhno, chem
       ispol'zovanie neskol'kih processorov. Esli dlya razlichnyh
       ierarhij v chroot(2)-okruzhenii ispol'zuetsya neskol'ko
       diskov, to izvlechenie iz CVS derev'ev ports i doc mozhet
       vypolnyat'sya odnovremenno s komandoj make world na drugom
       diske. Ispol'zovanie RAID-reshenij (apparatnyh ili
       programmnyh) mozhet znachitel'no sokratit' obschee vremya
       postroeniya.

     * Krossplatformennoe postroenie relizov - Postroit' reliz dlya
       IA-64 ili Alpha na x86-oborudovanii? make TARGET=ia64 release.

     * Testirovanie - Nam nuzhna uluchshennaya avtomatizirovannaya
       sistema testirovaniya korrektnosti dlya FreeBSD.

     * Instrumenty ustanovki - Nasha programma ustanovki davno
       perezhila svoj vek. V razrabotke nahodyatsya neskol'ko
       proektov, kotorye dolzhny dat' uluchshennuyu tehnologiyu
       ustanovki. Odnim iz takih proektov byl libh, cel'yu kotorogo
       bylo sozdanie novoj intellektual'noj tehnologii raboty s
       paketami i programmy ustanovki s GUI.

     --------------------------------------------------------------

8. Blagodarnosti

   YA rad poblagodarit' Dzhordana Habbarda (Jordan Hubbard) za to,
   chto on dal mne vozmozhnost' vzyat' pod svoyu otvetstvennost'
   nekotorye chasti processa podgotovki reliza FreeBSD 4.4, a takzhe
   za vse gody ego raboty, sdelavshie FreeBSD takoj, kakoj ona
   yavlyaetsya sejchas. Konechno, reliz ne byl by vozmozhen bez toj
   raboty, kotoruyu prodelali Satoshi Asami <asami@FreeBSD.org>,
   Steve Price <steve@FreeBSD.org>, Bruce A. Mah <bmah@FreeBSD.org>,
   Nik Clayton <nik@FreeBSD.org>, David O'Brien <obrien@FreeBSD.org>,
   Kris Kennaway <kris@FreeBSD.org>, John Baldwin <jhb@FreeBSD.org> i
   ostal'nye chleny soobschestva razrabotchikov FreeBSD. YA takzhe
   rad vyrazit' blagodarnost' Rodney Grimes <rgrimes@FreeBSD.org> i
   Poul-Henning Kamp <phk@FreeBSD.org>, a takzhe ostal'nym,
   rabotavshim nad instrumentami podgotovki relizov v pervye gody
   suschestvovaniya FreeBSD. `Eta stat'ya byla takzhe napisana pod
   vpechatleniem dokumentacii po podgotovke relizov ot CSRG[13],
   NetBSD Project[10] i zamechanij Dzhona Baldvina (John Baldwin) po
   predlagaemomu processu podgotovki relizov[11].

     --------------------------------------------------------------

9. Spravochnaya literatura

   [1] CVS - Concurrent Versions System http://www.cvshome.org

   [2] CVSup - The CVS-Optimized General Purpose Network File
   Distribution System http://www.polstra.com/projects/freeware/CVSup

   [3] http://pointyhat.FreeBSD.org

   [4] Kollekciya portov FreeBSD http://www.FreeBSD.org/ports

   [5] Kommittery FreeBSD

   [6] Pravlenie FreeBSD

   [7] Rukovodstvo FreeBSD

   [8] GNATS: The GNU Bug Tracking System
   http://www.gnu.org/software/gnats

   [9] Statistika FreeBSD PR
   http://www.FreeBSD.org/prstats/index.html

   [10] NetBSD Developer Documentation: Release Engineering
   http://www.NetBSD.org/developers/releng/index.html

   [11] John Baldwin's FreeBSD Release Engineering Proposal
   http://people.FreeBSD.org/~jhb/docs/releng.txt

   [12] PXE Jumpstart Guide

   [13] Marshall Kirk McKusick, Michael J. Karels, and Keith Bostic:
   The Release Engineering of 4.3BSD

     --------------------------------------------------------------

            `Etot, i drugie dokumenty, mogut byt' skachany s
                ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

  Po voprosam, svyazannym s FreeBSD, prochitajte dokumentaciyu prezhde
                 chem pisat' v <questions@FreeBSD.org>.
         Po voprosam, svyazannym s `etoj dokumentaciej, pishite
                           <doc@FreeBSD.org>.
  Po voprosam, svyazannym s russkim perevodom dokumentacii, pishite v
                    rassylku <frdp@FreeBSD.org.ua>.
  Informaciya po podpiske na `etu rassylku nahoditsya na sajte proekta
                               perevoda.
