   Y Orga%nwsy E%kdosy*s twn Pake%twn Logismikou% apo% Tri%tou*s tou FreeBSD

  Steve Price

   <steve@FreeBSD.org>

   Anathew%rysy: 43184
   2013-11-13 apo% hrs.
   Peri%lyqy

   Auto% to a%rthro perigra%fei tyn prose%ggisy ty*s oma%da*s orga%nwsy*s twn
   epi%symwn ekdo%sewn tou FreeBSD gia tyn paragwgy% mia*s uqyly%*s
   poio%tyta*s sullogy%*s pake%twn gia ta epi%syma me%sa egkata%stasy*s tou
   FreeBSD (CD-ROM auty% ty stigmy%). Auto% to kei%meno apotelei% me%ro*s
   mia*s douleia%*s pou bri%sketai se ece%licy, ma o%tan telika%
   oloklyrwthei% tha perigra%fei tyn diadikasi%a pou xrysimopoiei%tai gia tyn
   metaglw%ttisy ty*s sullogy%*s twn pake%twn sto "Ports Cluster" tou
   FreeBSD.org, pw*s mporou%n na ruthmistou%n opoiady%pote a%lla myxany%mata
   gia na xrysimopoiythou%n me ton i%dio tro%po, pw*s na xwristou%n ta
   pake%ta se oma%de*s sta me%sa ty*s egkata%stasy*s, kathw%*s kai pw*s
   mporou%n na gi%noun e%legxoi sto su%nolo twn pake%twn.

   [ HTML se tmy%mata / HTML se e%na tmy%ma ]

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

   Pi%naka*s Periexome%nwn

   1. Metaglw%ttisy twn pake%twn apo% tyn Sullogy% twn Ports

   2. O Diaxwrismo%*s twn Pake%twn

1. Metaglw%ttisy twn pake%twn apo% tyn Sullogy% twn Ports

   Y Sullogy% twn Ports tou FreeBSD apotelei%tai apo% perisso%tera apo%
   24,000 progra%mmata, gramme%na apo% tri%tou*s, pou ei%nai diathe%sima gia
   xry%sy sto FreeBSD. Oi Oma%da Diaxei%risy*s twn Ports
   <portmgr@FreeBSD.org> ei%nai upeu%thunoi gia tyn sunty%rysy eno%*s
   oloklyrwme%nou de%ntrou pygai%ou kw%dika pou mporei% na xrysimopoiythei%
   gia na dymiourgythou%n metaglwttisme%na pake%ta, ta opoi%a tha sunodeu%oun
   ka%the epi%symy e%kdosy tou FreeBSD.

  1.1. To Cluster twn Ports

   Gia na ei%maste si%gouroi o%ti ka%the pake%to den e%xei probly%mata o%tan
   di%netai mazi% me ka%poia epi%symy e%kdosy tou FreeBSD, ka%the port
   metaglwtti%zetai se e%na cexwristo% periba%llon chroot, cekinw%nta*s me
   a%deiou*s tou*s katalo%gou*s /usr/local kai /usr/X11R6. Ta proapaitou%mena
   pake%ta egkathi%stantai san prometaglwttisme%na pake%ta prin cekiny%sei y
   metaglw%ttisy. Aute%*s oi prov*pothe%sei*s ei%nai pou enisxu%oun tyn
   omoiomorfi%a styn diadikasi%a metaglw%ttisy*s tou ka%the pake%tou.
   Cekinw%nta*s ty metaglw%ttisy ka%the pake%tou se e%na katharo%
   periba%llon, mporou%me na ele%gcoume o%ti ta sunodeutika% dedome%na ka%the
   pake%tou (o%pw*s y li%sta me ta proapaitou%mena pake%ta) ei%nai akriby%,
   ki e%tsi den tha dymiourgy%soume pote% pake%ta pou mporei% se ka%poia
   susty%mata na douleu%oun kai se a%lla o%xi ana%loga me ta progra%mmata pou
   e%xoun egkatastathei% prin.

   To <<Cluster twn Ports>> gia tyn arxitektoniky% x86 apotelei%tai auty% ty
   stigmy% apo% e%na ku%rio ko%mbo (Dual Pentium III sta 733MHz) kai 8
   deutereu%onte*s ko%mbou*s (Pentium III sta 800MHz), oi opoi%oi ka%noun tyn
   metaglw%ttisy twn pake%twn. Me auta% ta myxany%mata, mia metaglw%ttisy
   o%lwn twn ports pai%rnei pa%nw apo% 24 w%re*s. Auta% ta myxany%mata ei%nai
   co-located mazi% me ta a%lla myxany%mata ty*s oma%da*s tou FreeBSD ston
   xw%ro Exodus tou Yahoo, styn Santa Clara, CA.

   To <<Cluster twn Ports>> gia tyn arxitektoniky% Alpha apotelei%tai apo% 7
   PWS 500A myxany%mata, ta opoi%a xa%rise y Compaq. Ei%nai ki auta%
   co-located stou*s xw%rou*s tou Yahoo.

2. O Diaxwrismo%*s twn Pake%twn

   To sunoliko% me%getho*s twn pake%twn cepe%rase ta 4.1 gigabytes gia tyn
   e%kdosy 4.4 tou FreeBSD. Auto% ei%nai li%go pro%blyma o%mw*s gia ti*s
   dianome%*s pou ei%nai basisme%ne*s se CDROM, giati% genika% the%loume na
   mporou%me na diane%moume o%so to dunato%n perisso%tera pake%ta xwri%*s
   o%mw*s na anagka%zoume ton xry%sty na alla%zei diska%kia gia na
   ikanopoiy%sei ti*s apaity%sei*s egkata%stasy*s twn pake%twn. Y lu%sy
   ei%nai fusika% na ftia%coume <<oma%de*s>> apo% pake%ta me anti%stoixy
   leitourgiko%tyta pou e%xoun paro%moie*s apaity%sei*s, kai na ba%loume o%la
   ta pake%ta ka%the oma%da*s ston i%dio di%sko. Auto% to tmy%ma tou a%rthrou
   perigra%fei to logismiko% kai ty methodologi%a pou xrysimopoiei%tai gia na
   dymiourgythou%n oi sulloge%*s apo% pake%ta pou perie%xontai stou*s
   di%skou*s twn epi%symwn ekdo%sewn tou FreeBSD.

   Ta script kai ta upo%loipa arxei%a pou xreia%zontai gia na xwristou%n ta
   pake%ta se oma%de*s mporei%te na ta brei%te sto CVS ston kata%logo
   ports/Tools/scripts/release. Antigra%qte auto% ton kata%logo se e%na
   myxa%nyma pou e%xei arketo% xw%ro gia na kraty%sei toula%xiston 2 y% 3
   fore%*s to su%nolo twn pake%twnn pou the%lete na xwri%sete se oma%de*s.

   Ta paraka%tw scripts upa%rxoun se auto% ton kata%logo:

   config

           Auto% to arxei%o perie%xei to me%getho*s tou eleu%therou xw%rou se
           ka%the di%sko, kai an ta pake%ta, ta distfiles, y% kai ta duo
           epitre%petai na pa%ne se ka%the sugkekrime%no di%sko. Y prw%ty
           sty%ly ei%nai to o%noma tou di%skou. Pre%pei na ei%nai ty*s
           morfy%*s disc[0-9a-z]. Tw%ra to arxei%o auto% e%xe ruthmi%sei*s
           me%sa gia 10 di%skou*s (4 gia to set ty*s egkata%stasy*s kai 6 gia
           to sumplyrwmatiko% toolkit). Upa%rxei ki e%na*s ako%ma di%sko*s
           pou le%getai <<scratch>>, o%pou kataly%goun o%la ta pake%ta kai
           distfiles pou den xwra%ne pouthena% allou%. Y deu%tery sty%ly
           mporei% na ei%nai 1 y% 0, o%pou y timy% 1 symai%nei o%ti mporou%n
           na topothetythou%n pake%ta se auto% to di%sko. Y tri%ty sty%ly
           douleu%ei me paro%moio tro%po, alla% kanoni%zei an mporou%n na
           topothetythou%n distfiles se auto% to di%sko. Y teleutai%a sty%ly
           perie%xei ton arithmo% twn eleu%therwn bytes ston di%sko.

   doit.sh

           Auto% ka%nei tyn perisso%tery douleia%. Mo%li*s e%xete ba%lei o%la
           ta arxei%a sty the%sy tou*s kai e%xete ka%nei ti*s aparai%tyte*s
           ruthmi%sei*s, auto% to script odygei% tyn diadikasi%a diaxwrismou%
           twn pake%twn. E%xete to nou sa*s o%so tre%xei o%mw*s, giati%
           ei%nai interactive. Perisso%tere*s leptome%reie*s sxetika% me
           auto% to script upa%rxoun kai paraka%tw.

   checkdeps.pl

           Ele%gxei an o%la ta proapaitou%mena pake%ta ei%nai diathe%sima,
           o%tan tou dothei% e%na arxei%o INDEX ki e%na*s kata%logo*s me
           pake%ta.

   oneshot.pl

           Auto% ei%nai to pro%gramma pou ka%nei o%la ta magika% (kai
           xrysimopoiw% ton o%ro polu% xalara%, kathw%*s xrysimopoiei% mia
           brute force prose%ggisy). Me ei%sodo mia sullogy% apo%
           apaitou%mena pake%ta gia ka%the di%sko kai e%na set apo%
           pake%ta/distfiles auto% ei%nai to script pou topothetei% e%na
           pake%to y% distfile se e%na di%sko mazi% me o%la ta pake%ta apo%
           ta opoi%a ecarta%tai.

   print-cdrom-packages.sh

           Auto% to arxei%o ei%nai e%na anti%grafo tou
           src/release/scripts/print-cdrom-packages.sh apo% tyn e%kdosy styn
           opoi%a douleu%ete.

   scrubindex.pl

           Auto% to pro%gramma afairei% apo% e%na INDEX arxei%o ti*s
           gramme%*s pou ei%nai sxetike%*s me pake%ta pou den upa%rxoun.
           Afairei% epi%sy*s kai ta pake%ta pou apaitou%n ta XFree86.
           SYMEIWSY: tha pre%pei na ruthmi%sete tyn timy% ty*s metablyty%*s
           xdep gia na bebaiwthei%te o%ti o arithmo%*s e%kdosy*s ei%nai
           swsto%*s.

   setup.sh

           Auto% ei%nai e%na boythytiko% script pou xrysimopoiei%tai sto
           bento cluster gia na kateba%sei e%na anti%grafo tou ports tree kai
           tou anti%stoixou set apo% pake%ta/distfiles.

   Mia li%sta apo% ele%gxou*s pou pre%pei na ka%nete kai ruthmi%sei*s pou
   pre%pei na ele%gcete prin sunexi%sete ei%nai:

    1. Diorthw%ste to config gia na perie%xei plyrofori%e*s gia o%lou*s tou*s
       di%skou*s pou e%xete, ta mege%thy tou*s, kai an the%lete na perie%xoun
       pake%ta, distfiles, kai ta du%o, y% kane%na apo% ta du%o.

    2. Bebaiwthei%te o%ti e%xete sby%sei ton kata%logo gen an upa%rxei
       ka%poio*s palio%*s kata%logo*s me auto% to o%noma pou e%xei cemei%nei
       apo% palio%tera. Auto%*s o kata%logo*s perie%xei dia%fora arxei%a pou
       e%xoun no%yma mo%no gia to twrino% tre%cimo twn programma%twn.

    3. Sta prw%ta treci%mata pou tha ka%nete gia na xwristou%n ta pake%ta
       ei%nai kalu%tera na myn ka%nete sta aly%theia tyn antigrafy% twn
       pake%twn kai twn distfiles. Auto% tha sa*s glitw%sei kai xro%no kai
       xw%ro sto di%sko o%so ka%nete dokime%*s me%xri na sigoureutei%te o%ti
       o%la pa%ne kala%. Sto arxei%o oneshot.pl alla%cte tyn timy% ty*s
       metablyty%*s fake se 1 ki anti% na ka%nei antigrafy% twn arxei%wn tha
       ta ka%nei aplw%*s touch(1). Bebaiwthei%te o%ti alla%cate tyn timy%
       ty*s fake pa%li se 0 prin dw%sete tou*s di%skou*s se auto%n pou tha
       ka%nei tyn maziky% paragwgy% be%baia, giati% alliw%*s oi di%skoi tha
       e%xoun e%na kata%logo me polla% arxei%a mydenikou% mege%thou*s.

    4. Bebaiwthei%te o%ti e%xete e%na pro%sfato anti%grafo tou
       print-cdrom-packages.sh kai o%ti ei%nai apo% tyn swsty% e%kdosy.

    5. Ele%gcte o%ti sto arxei%o scrubindex.pl anafe%retai y swsty% e%kdosy
       twn XFree86. Y i%dia timy% pre%pei na upa%rxei kai sta doit.sh.

   To epo%meno by%ma ei%nai na ftia%cete e%na anti%grafo apo% to ports tree,
   ta pake%ta kai ta distfiles apo% e%na pro%sfato tre%cimo ty*s
   metaglw%ttisy*s twn pake%twn apo% to cluster twn ports. Dei%te to arxei%o
   setup.sh gia e%na para%deigma. Ta basika% by%mata pou pre%pei na ka%nete
   o%mw*s ei%nai ta ecy%*s:

    1. Antigra%qte to ports.tar.gz kai aposumpie%ste to ston kata%logo ports
       mazi% me to doit.sh kai ton kata%logo scripts.

    2. Sby%ste ti*s suntomeu%sei*s kai tou*s katalo%gou*s twn
       pake%twn/distfiles. To bento ta e%xei auta% san suntomeu%sei*s kai tha
       pa%rete la%tho*s apotele%smata an den ta sby%sete prin sunexi%sete.

    3. Dymiourgy%ste e%na ne%o kata%logo gia ta ports/pake%ta kai antigra%qte
       to set twn pake%twn apo% to cluster metaglw%ttisy*s twn pake%twn.

    4. Dymiourgy%ste e%na ne%o kata%logo gia ports/distfiles kai antigra%qte
       ta distfiles apo% to cluster metaglw%ttisy*s twn pake%twn. SYMEIWSY:
       an den the%lete kane%na distfile apla% dymiourgy%ste ton kata%logo kai
       afy%ste ton a%deio. Auto%*s o kata%logo*s pre%pei na upa%rxei ako%ma
       ki an den perie%xei ti%pota.

   Tw%ra ei%maste ple%on e%toimoi gia to diaskedastiko% komma%ti ty*s
   omadopoi%ysy*s twn pake%twn. Mporei%te na cekiny%sete tyn diadikasi%a
   tre%xonta*s to ./doit.sh. Tyn prw%ty fora% pou to tre%xete ka%nei ta
   ecy%*s:

    1. Dymiourgei% mia li%sta apo% ta ports pou den mporou%n na diane%montai
       sto FTP master site.

    2. Sa*s rwta%ei an the%lete na sby%sete auta% ta ports, afou% den
       mporou%n na diane%montai eleu%thera. Genika% edw% kalu%tera na
       apanta%te (y)es.

    3. Ftia%xnei mia li%sta apo% ta pake%ta pou den mporou%n na mpoun stou*s
       di%skou*s.

    4. Sa*s rwta%ei an the%lete na sby%sete ta pake%ta/distfiles pou den
       mporou%n na mpoun se CD-ROM. Kalu%tera ei%nai na apanty%sete (y)es
       edw%.

    5. Antigra%fei to arxei%o INDEX apo% ton kata%logo ports ston kata%logo
       gen. Kathw%*s to ka%nei, afairei% ti*s gramme%*s pou antistoixou%n se
       ports y% pake%ta pou den upa%rxoun. Ele%gxei epi%sy*s an upa%rxoun
       o%la ta proapaitou%mena pake%ta kai ikanopoiou%ntai oi ecarty%sei*s
       twn pake%twn/ports.

    6. Dymiourgei% mia li%sta apo% pake%ta pou ei%nai aparai%tyto na
       upa%rxoun se ka%the di%sko.

    7. Sa*s rwta%ei an the%lete na antigra%qete ta arxei%a stou*s di%skou*s.
       Afou% gi%nei y antigrafy% stou*s di%skou*s tha ele%gcei gia
       ecarty%sei*s pou lei%poun, tha kathari%sei to arxei%o INDEX kai tha
       dymiourgy%sei e%na arxei%o CHECKSUM.MD5.

    8. Ele%gxei o%ti o%la ta apaitou%mena pake%ta ei%nai o%ntw*s se ka%the
       di%sko, kai tupw%nei e%na sugkentrwtiko% pi%naka me ta mege%thy twn
       di%skwn.

   tha pre%pei na ei%ste arketa% tuxeroi% gia na petu%xei o diaxwrismo%*s tyn
   prw%ty fora%, o%la ta pake%ta pou xreia%zontai na metaglwttistou%n swsta%
   kai na xwre%soun kai se ka%the di%sko. To mo%no pou xreia%zetai meta%
   ei%nai na dw%sete tyn timy% 0 styn metablyty% fake sto arxei%o oneshot.pl
   kai na canatre%cete to ./doit.sh. Tyn deu%tery fora% pou tha tre%cei,
   kathw%*s kai o%le*s ti*s upo%loipe*s, den tha ka%nei ta by%mata 1-5 pou
   anafe%rame parapa%nw. An the%lete na canatre%cete ka%poia apo% auta% ta
   by%mata, koita%cte sto doit.sh gia na dei%te poia arxei%a pre%pei na
   sby%sete w%ste na myn apofu%gei to doit.sh auta% ta by%mata. An the%lete
   na canatre%coun o%la ta by%mata, o pio eu%kolo*s tro%po*s ei%nai me rm -rf
   gen.

   O%tan teleiw%sei epituxw%*s y diadikasi%a, ta pake%ta/distfiles tha e%xoun
   antigrafei% se katalo%gou*s disc* kai o%sa e%xoun apomei%nei tha upa%rxoun
   ston kata%logo scratch.

   Ti na ka%nete an ka%ti den pa%ei kala%; Merika% apo% ta pio suxna%
   probly%mata kai sumboule%*s gi' auta% fai%nontai paraka%tw:

   Apaitou%mena pake%ta pou lei%poun

           Auto% sumbai%nei polu% suxna%. THa xreiastei% ei%te na perime%nete
           gia e%na ne%o set apo% pake%ta na etoimastei%, sto opoi%o ta
           pake%ta pou lei%poun tha e%xoun metaglwttistei% epituxw%*s, y% na
           brei%te ka%poion pou mporei% na cekiny%sei pa%li tyn diadikasi%a
           metaglw%ttisy*s twn pake%twn gia sa*s. Myn prospathy%sete na
           metaglwtti%sete esei%*s ta pake%ta pou lei%poun sta dika% sa*s
           myxany%mata kai na ta prosthe%sete sto swro%. Paro%lo pou mporei%
           na ta katafe%rete ki e%tsi an ei%ste ecairetika% prosektikoi%, sty
           megalu%tery pleioqyfi%a twn periptw%sewn tha sa*s cefu%gei ka%poia
           leptome%reia kai y aply% prosthy%ky eno%*s mo%no pake%tou mporei%
           na prokale%sei probly%mata se ekatonta%de*s a%lla pake%ta.

   Apaitou%mena pake%ta pou den xwra%ne

           Merike%*s fore%*s sumbai%nei ki auto%, kai ei%nai sxetika% aplo%
           na diorthwthei%. Aplw%*s diorthw%ste to print-cdrom-packages.sh
           kai metakiny%ste ta pake%ta me%xri na brei%te mia dia%tacy pou na
           boleu%ei. Nai, auto% ei%nai mia xronobo%ra diadikasi%a kai e%na*s
           apo% tou*s sobarou%*s lo%gou*s gia tou*s opoi%ou*s tha pre%pei na
           energopoiy%sete tyn metablyty% fake sto arxei%o oneshot.pl me%xri
           na katafe%rete to apote%lesma pou the%lete. Canatre%cte to
           ./doit.sh o%tan teleiw%sete me ti*s ruthmi%sei*s sa*s.

   Apaitou%mena pake%ta den ei%nai ston swsto% (y% se kane%na) di%sko

           Auto% suny%thw*s symai%nei o%ti den ta prosthe%sate sto
           print-cdrom-packages.sh y% ta topothety%sate se la%tho*s di%sko.
           Auto% to script ei%nai o kano%na*s ston opoi%o basi%zetai y
           apo%fasy gia tyn topothesi%a eno%*s pake%tou. An the%lete
           opwsdy%pote na topothetythei% e%na sugkekrime%no pake%to se
           ka%poio di%sko, auto%*s ei%nai o mo%no*s tro%po*s na to ka%nete me
           sigouria%.

   An kolly%sete se ka%poio symei%o kai den mporei%te na brei%te giati% ka%ti
   den pa%ei kala% y% pw*s na to diorthw%sete, stei%lte e%na email ston Steve
   Price gia boy%theia.
