Ir al cuntegn

Status dals builds

Ditana mantegna in agen repositori da pacman sin basa dad Arch – 59 pachets, enumerads cumplettamain en mintga execuziun terminada. In’execuziun ch’è sa fermada enumerescha quai ch’ella aveva cuntanschì. Mintga notg telechargia in host da build il recept da mintga pachet, decida tge che sto vegnir reconstruì e construescha il pachet en in container net. La regla che determinescha tge che capita lura è l’unica che quinta qua:

Sch’in sulet pachet na po betg vegnir construì u sche sias funtaunas na pon betg vegnir verifitgadas, na vegn nagut publitgà.

Betg «il rest vegn furnì e quel pachet vegn empruvà danovamain damaun». Nagut. Il repositori, ord il qual Vus installais, è u la collecziun cumpletta e coerenta ch’è resultada d’ina execuziun, u la collecziun cumpletta e coerenta dad ier. In repositori pli pitschen po empermetter quai; in grond, che vegn actualisà pachet per pachet, na po betg – perquai tegna Ditana ses agen repositori uschè pitschen, ch’el po vegnir garantì sco ina suletta collecziun.

Ina tala pretensiun vala exactamain uschè bler sco sias cumprovas, perquai vegn il register qua sutvart scrit da la pipeline sezza, inclusiv las execuziuns, en las qualas nagut n’è vegnì furnì. Questa pipeline è ditana-build, ed ella è publica: la controlla da revisiun è bin/pkgbuild-review-gate, ed il test d’installaziun è bin/test-install-in-qemu.

Chargiar il register dals builds…

Fin nua ch’ina execuziun è arrivada

Secziun «Fin nua ch’ina execuziun è arrivada»

Mintga execuziun passa tras las medemas fasas, e ses outcome di tge fasa ch’ella ha cuntanschì. Quai èn ils quatter stadis e las colurs survart:

outcome Tge che quai munta per Vus
released Quai è quai che Vus installais. Mintga pachet è construì, mintga signatura verifitgada, e l’entira collecziun ha remplazzà il repositori, ord il qual Voss sistem vegn actualisà.
in-testing Construì e signà; la collecziun sa chatta en in repositori da test separà, durant ch’ella vegn controllada. Voss sistem installescha anc adina la versiun precedenta.
built Il host da build ha terminà sia lavur, ma el n’ha nagina clav da signatura – la signatura ha lieu pli tard sin in’autra maschina. Anc nagut n’è vegnì spustà.
held-back Insatge n’è betg reussì, perquai n’è insumma nagut vegnì furnì. Il repositori, ord il qual Vus installais, è intact ed anc adina coerent.

Mo released munta ch’ils pachets èn arrivads tar Vus. Ils auters trais èn fasas sin la via fin là, u ina fermada.

Tge ch’è capità cun mintga pachet

Secziun «Tge ch’è capità cun mintga pachet»

Entaifer in’execuziun survegn mintga pachet in status:

status Muntada
current Il recept n’è betg sa midà dapi ch’il pachet existent è vegnì construì, e per in pachet -git n’è er il commit d’origin betg sa midà. Nagut da far.
rebuilt Las funtaunas èn vegnidas telechargiadas e verifitgadas sin il host, lura è il pachet vegnì construì en in container nov.
review-stopped Il recept è sa midà en ina moda che ina persuna sto examinar. L’execuziun finescha qua.
build-failed La cumpilaziun dal pachet n’è betg reussida, u il pachet n’ha producì nagin artefact. L’execuziun finescha qua.

Ils davos dus èn la raschun, pertge ch’ina execuziun finescha sco held-back: in pachet basta.

Pertge ch’ina execuziun sa ferma

Secziun «Pertge ch’ina execuziun sa ferma»

La gronda part da quai che Ditana reconstruescha èn recepts da l’AUR da terzas persunas, mess en in repositori, dal qual las persunas che l’utiliseschan sa fidan tras la configuraziun da signaturas da pacman. L’AUR è ina chadaina da furniziun, ed el è vegnì attatgà sco tala: pachets senza persuna responsabla èn vegnids surpigliads ed han survegnì commits nuschaivels, perquai ha l’AUR deactivà la surpigliada da pachets e la transmissiun da commits l’avust 2026.

Perquai vegn mintga git pull en la pipeline classifitgà, avant che insatge vegn construì. Augments dal numer da versiun, commentaris, spazis e summas da controlla che accumpognan ina midada da versiun vegnan laschads passar. Ina midada da source=, d’in url=, d’ina revisiun VCS, da tut quai ch’è entaifer ina funcziun, da install=, da provides=, conflicts=, replaces= u validpgpkeys=, ina summa da controlla che sa mida senza che la versiun sa midia, ina nova dependenza che pacman na conuscha betg, ina lingia # Maintainer: midada u svidada – mintga singul cas ferma l’execuziun. Il recept na vegn mai exequì per far quai: exequir la datoteca suspectusa è precis quai che sto vegnir evità, perquai è l’analisa statica, e cur ch’ella n’è betg segira, ferma ella l’execuziun.

Sin basa da l’istorgia reala dals pachets dals ultims dudesch mais ferma quai in’execuziun var ina giada mintga trais dis e mez. Quai n’è betg in defect che stuess vegnir eliminà cun optimaziuns; quai è il pretsch da la regla «tut u nagut», pajà ordavant.

Intgins dals recepts che Ditana reconstruescha n’han insumma nagina persuna responsabla d’origin – lur lingia # Maintainer: è vida. Perquai vegn in’execuziun fermada, sch’ina lingia da la persuna responsabla vegn svidada, empè che quai vegnia laschà passar: in recept senza persuna responsabla è quel che insatgi po surpigliar.

Tge che quai na controllescha betg

Secziun «Tge che quai na controllescha betg»

La revisiun cumpiglia las metadatas dals pachets, betg il code da funtauna d’origin. Cur ch’in recept construescha a partir d’ina revisiun git, na vegn il cuntegn da questa revisiun examinà da nagut en questa pipeline. L’avantatg da Ditana envers in servetsch da reconstrucziun senza revisiun è real, ma limità, e numnar questa limita fa part da la pretensiun.

Il test d’installaziun

Secziun «Il test d’installaziun»

Construir e signar in repositori n’è betg il medem sco pudair installar ord el. Tranter il repositori da test e la publicaziun exista anc in pass: il host da build installescha exact quest repositori en ina maschina virtuala atgna, senza surveglianza, guidà d’ina datoteca da respostas sin in pitschen disc da configuraziun – il medem mecanissem ch’in purschider da hosting duvrass via PXE, perquai na vegnan naginas tastas simuladas.

Duas chaussas ston esser vairas, ed il register di tgenina da quellas è vegnida cuntanschida.

Fasa Tge ch’era capità
installing Il medium è en funcziun. Anc nagut n’è vegnì installà.
installed L’installatur ha cuntanschì ses ultim reaviar.
booted Il sistem installà è s’avià sez ed ha respundì sin il port 22. Il test è reussì.

La differenza è impurtanta, perquai ch’ils dus cas èn errurs differentas. In’execuziun che sa ferma tar installing ha producì in repositori, ord il qual nagina persuna na po installar. Ina che sa ferma tar installed ha producì in sistem ch’è vegnì scrit correctamain, ma che na s’aviescha betg, e quai è il tip da defect che nagina quantitad da builds na scuvra.

Cuntanscher booted munta bler dapli che la noziun lascha supponer. Il bootloader è vegnì exequì, l’initramfs ha chattà ed importà il pool ZFS, systemd è arrivà al modus multi-user, la rait è daventada activa ed in servetsch è vegnì avià. Nagut na vegn injectà en il sistem giast per arranschar ina da questas acziuns: install-openssh è activà sco standard, uschia ch’ina bandiera sin il port 22 è l’ovra dal sistem installà sez.

Cur ch’il test na reussescha betg, cuntegna il register in maletg dal visur dal sistem giast en il mument che l’ambient da test ha dà si. Il medium d’installaziun na scriva nagut sin ina consola seriala, uschespert che ses bootloader ha surdà la controlla, perquai è tut quai che l’installatur mussa sin quest visur e nagliur auter – in installatur che spetga sin ina dumonda è visibel là ed en nagin protocol.

In test betg reussì na publitgescha nagut. Ils pachets restan en il repositori da test, ed il repositori, ord il qual Vus installais, resta intact.

Nua che la clav da signatura sa chatta

Secziun «Nua che la clav da signatura sa chatta»

La maschina che construescha ha ina clav secundara da signatura, betg la clav principala.

Ella construescha, signa cun questa clav secundara, chargia si en il repositori da test, installescha quest repositori en ina maschina virtuala e publitgescha en la producziun mo sche l’installaziun ha funcziunà. Tegnair la clav davent dal host da build è insatge che la pipeline sustegna anc adina, ed uschia ha Ditana lavurà fin l’avust 2026; ins ha renunzià a quai, perquai ch’ina publicaziun che dependa d’ina installaziun da test sto avair lieu sin la maschina ch’ha gist construì, e la separaziun metteva ina segunda maschina ed in pass manual tranteren. Quai che la clav secundara porta empè: ella po vegnir revocada e remplazzada separadamain, ella na po betg certifitgar ulteriuras clavs, e l’impronta, cun la quala i vegn verifitgà, na sa mida mai.

Quai che vegn protegì è la clav, betg ils pachets: la maschina che signa, signa quai ch’il host da build ha producì, senza examinar quai. Quai che vegn impedì è che la maschina che exequescha scripts da build esters possia laschar signar datas arbitraras en mintga mument.

Verifitgar quai persunalmain

Secziun «Verifitgar quai persunalmain»

Il register è JSON simpel e na vegn betg generà da questa website:

  • /build-history/index.json – l’index actualisà cuntinuadamain da las execuziuns las pli recentas.
  • /build-history/<timestamp>.json – ina datoteca per execuziun: outcome, message, counts, in object test-install, sche l’execuziun è vegnida testada, ed ina matriza packages cun endataziuns che cuntegnan name, status, seconds, eventualmain detail, ed ils percurs dals protocols da quest pachet.
  • L’object test-install cuntegna result, il stage ch’il sistem giast ha cuntanschì, l’iso e l’answer-file cun ils quals el è vegnì guidà, e, sche l’installaziun n’è betg reussida, in percurs screenshot sut /build-history/logs/<timestamp>/test-install/ cun il maletg dal visur dal sistem giast en il mument che l’ambient da test ha dà si.
  • /build-history/logs/<timestamp>/<package>/ – quai che makepkg ha protocollà durant la construcziun da quest pachet, repartì tenor fasa (prepare, build, check, package). Mintga pachet reconstruì d’ina execuziun è collià da sia lingia survart, ed er in pachet, dal qual il build n’è betg reussì, vegn protocollà – quel vala la paina da leger.

Nums da servers, adressas, percurs ed il num d’utilisader da l’account da build vegnan allontanads dals registers e dals protocols, avant ch’els vegnan scrits. Nagut auter na vegn filtrà; il text d’errur che Vus vesais è il text d’errur che la pipeline ha vis.

Mintga pachet qua vegn construì a partir d’in recept publicamain disponibel che numna sia funtauna d’origin. Licenzas di nua che Vus chattais omadus e tracta l’unic cas, en il qual la licenza sezza è contestada: ils pachets ZFS, dals quals Ditana distribuescha las funtaunas ed ils utensils userspace, ma mai in modul dal kernel cumpilà.

Questa translaziun è vegnida fatga a maschina. Las lecturas ed ils lecturs la megliereschan sin Weblate.