Het autobuilder-netwerk is een Debian-ontwikkeling die het hercompileren van pakketten voor alle architecturen die Debian op dit moment ondersteunt, vergemakkelijkt. Dit network bestaat uit verschillende machines die een specifiek software-pakket gebruiken wat buildd heet, om pakketten uit het Debian-archief op te pikken en ze te hercompileren voor de doelarchitectuur.
De Debian-distributie ondersteunt een flink aantal architecturen, maar de onderhouders van de pakketten compileren normaliter de binaire pakketten voor slechts één architectuur (gewoonlijk i386). Ontwikkelaars voor andere architecturen moeten uitkijken naar nieuwe versies van pakketten en ze hercompileren als ze up-to-date willen blijven met de Intel-distributie.
Toen Debian/m68k (de eerste niet-Intel port) opgestard werd, werd dit allemaal manueel gedaan: ontwikkelaars volgden de upload mailinglijst voor nieuwe pakketten en startten de compilatie van één of meerdere daarvan op hun systemen. De noodzakelijke coordinatie om te voorkomen dat pakketten twee keer gecompileerd werden door verschillende personen werd gedaan via een eigen mailinglijst. Het is duidelijk dat met deze procedure makkelijk fouten gemaakt worden, terwijl ze ook veel tijd vraagt. Toch was dit de normale gang van zaken om niet-i386 distributies up-to-date te houden voor een lange tijd.
Het "build daemon"-systeem automatiseert het meeste van dit proces. Het bestaat uit een set scripts (geschreven in Perl en Python) die mettertijd gegroeid zijn om porters te helpen met verschillende taken. Ze zijn uiteindelijk geëvolueerd in een systeem dat in staat is om de niet-i386 distributies bijna volautomatisch up-to-date te houden.
Buildd is de naam die gewoonlijk gegeven wordt aan de software die gebruikt wordt door het autobuilder-netwerk, maar het bestaat eigenlijk uit verschillende onderdelen:
Al deze componenten werken samen om het builder-netwerk te laten werken.
Eigenlijk moet een gemiddelde Debian developer het buildd-netwerk niet expliciet gebruiken. Elke keer hij een pakket naar het Debian-archief uploadt (met een binaire versie voor een bepaalde architectuur) zal het toegevoegd worden aan de database voor alle architecturen (in de status Needs-Build). Build machines zullen de database bevragen voor pakketten in deze status, en zullen routineus pakketten van die lijst oppikken. De lijst wordt geprioritizeerd op de vorige compilatiestatus, de prioriteit van het pakket, de sectie, en tot slot de pakketnaam.
Als de compilatie succesvol is in alle architecturen, dan moet een pakketbeheerder niets doen. Al deze binaire pakketten worden geuploaded naar het Debian-archief. Als de compilatie niet succesvol is, dan zal het pakket een speciale status krijgen (Failed, of Dep-Wait als ze bron-afhankelijkheden kennen die niet beschikbaar zijn). De autobuilder-beheerders zullen pakketten die niet compileren, nakijken, en informatie sturen naar de pakketbeheerder, gewoonlijk via het openen van een bug in het Bug Tracking System.
Soms duurt het lang om een pakket te compileren voor een gegeven architectuur, en houdt dat de migratie naar testing van dat pakket tegen. Helaas zal het pakket moeten wachten totdat een machine het oppikt. Buildd beheerders aanvaarden geen vragen om het compileren van een pakket sneller te laten verlopen vermits de prioriteitslijst al ingesteld is.
U kan de status van de verschillende compilatiepogingen van de pakketten die onder het beheer van een bepaalde pakketbeheerder vallen, bekijken via de buildd logs. Er is ook een link naar deze logs vanuit het "Packages' Maintainer Overview".
Voor meer informatie over de verschillende statussen waarin een pakket zich kan bevinden, gelieve wanna-build-states te lezen.
Uiteraard zijn zowel de documentatie als de broncode voor deze verschillende hulpmiddelen de beste manier om uit te vinden hoe het buildd-netwerk werkt. Daarnaast bevat de sectie Porting and being ported van de Debian Developers Reference aanvullende informatie over hoe het werkt, terwijl het ook wat informatie bevat over pakketcompilatie- en porteer-hulpmiddelen die gebruikt worden in het proces van zowel het opzetten als het onderhouden van het buildd netwerk.
Er zijn een aantal statistieken van het autobuilder-netwerk beschikbaar op de buildd stats pagina.
Er kunnen verschillende redenen zijn waarom een ontwikkelaar (of gebruiker) een autobuilder zou willen opzetten:
U kan meer informatie vinden over hoe u een autobuilder moet opzetten.
De beheerders die verantwoordelijk zijn voor de autobuilders voor een bepaalde architectuur kunnen bereikt worden via arch@buildd.debian.org, bijvoorbeeld i386@buildd.debian.org.
Deze introductie tot het autobuilder-netwerk werd geschreven op basis van informatie verstrekt door Roman Hodek, Christian T. Steigies, Wouter Verhelst, Andreas Barth, Francesco Paolo Lovergine en Javier Fernández-Sanguino Peña