Ports ] [ Debian GNU/Hurd ] [ Nieuws ] [ Configuratie ] [ Hurd-CD's ] [ Documentatie ] [ Ontwikkeling ] [ Contact ]

Debian GNU/Hurd

De ontwikkeling van de distributie

Hurd-software verpakken

De Hurd-specifieke pakketten worden onderhouden op https://salsa.debian.org/hurd-team/.

Debian pakketten geschikt maken

Als u de overzetting van Debian naar GNU/Hurd wilt helpen, moet u zichzelf vertrouwd maken met het Debian-verpakkingssysteem. Eens u dit gedaan heeft door de beschikbare documentatie te lezen en de Hoek voor Ontwikkelaars te bezoeken, zou u moeten weten hoe u Debian broncodepakketten uitpakt en een Debian pakket bouwt. Hier volgt een spoedcursus voor de zeer luie mensen:

Broncode verkrijgen en pakketten bouwen

De broncode verkrijgen kan door eenvoudig apt source package uit te voeren, dat ook de broncode zal uitpakken.

Voor het uitpakken van een broncodepakket van Debian is het bestand package_version.dsc vereist en de erin vermelde bestanden. U bouwt de compilatiemap van Debian met het commando dpkg-source -x package_version.dsc

Het bouwen van een pakket gebeurt in de nu bestaande compilatiemap van de Debian pakket-versie met het commando dpkg-buildpackage -B "-mMijnNaam <MijnEmail>". In plaats van -B kunt u -b gebruiken, als u ook de architectuur-onafhankelijke delen van het pakket wilt bouwen (maar dat is meestal nutteloos omdat deze al beschikbaar zijn in het archief, en het bouwen ervan extra afhankelijkheden kan vereisen). U kunt -uc toevoegen om te vermijden dat het pakket ondertekend wordt met uw OpenPGP-sleutel.

Voor het bouwen zijn mogelijk extra geïnstalleerde pakketten nodig. De eenvoudigste manier is om apt build-dep package uit te voeren, dat alle vereiste pakketten zal installeren.

Het gebruik van pbuilder kan handig zijn. Het kan gebouwd worden met sudo pbuilder create --mirror http://deb.debian.org/debian-ports/ --debootstrapopts --keyring=/usr/share/keyrings/debian-ports-archive-keyring.gpg --debootstrapopts --extra-suites=unreleased --extrapackages debian-ports-archive-keyring en dan kan men pdebuild -- --binary-arch gebruiken dat het downloaden van de bouwvereisten zal afhandelen, enz. en het resultaat in /var/cache/pbuilder/result zal plaatsen.

Er een uitkiezen

Aan welk pakket gewerkt moet worden? Wel, elk pakket dat nog niet overgezet werd, maar wel overgezet moet worden. Dit verandert constant, dus is het beter om u eerst te concentreren op pakketten die door veel andere pakketten vereist worden, hetgeen te zien is in de grafiek met pakketvereisten https://people.debian.org/~sthibault/hurd-i386/graph-radial.pdf, die elke dag bijgewerkt wordt, of op de lijst met de meest gevraagde pakketten https://people.debian.org/~sthibault/hurd-i386/graph-total-top.txt (dit is de lijst met veelgevraagde pakketten op de lange termijn; de lijst met veelgevraagde pakketten op de korte termijn is https://people.debian.org/~sthibault/hurd-i386/graph-top.txt). Het is meestal ook een goed idee om te kiezen uit de lijsten met verouderde pakketten https://people.debian.org/~sthibault/hurd-i386/out_of_date2.txt en https://people.debian.org/~sthibault/hurd-i386/out_of_date.txt, omdat die vroeger werkten en nu waarschijnlijk om slechts een paar redenen defect zijn. U kunt ook gewoon willekeurig één van de ontbrekende pakketten kiezen, of letten op de autobuild-logs op de mailinglijst van het bouwlogboek van debian-hurd, of gebruik maken van de wanna-build-lijst van https://people.debian.org/~sthibault/hurd-i386/failed_packages.txt. Sommige bouwproblemen zijn gemakkelijker op te lossen dan andere. Een typisch probleem is "undefined reference to foo", waarbij foo zoiets is als pthread_create, dlopen, cos, ... (die uiteraard beschikbaar zijn op hurd-i386), wat alleen laat zien dat men in de configuratiestap van het pakket vergeten is om ook op de Hurd -lpthread, -ldl, -lm, enz. op te nemen. Houd er echter rekening mee dat ALSA MIDI-functies niet beschikbaar zijn.

Controleer ook of er al werk gedaan werd op https://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse, https://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse, en op het BTS (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd), en op https://wiki.debian.org/Debian_GNU/Hurd, en de levensstatus van pakketten op buildd.debian.org, bijv. https://buildd.debian.org/util-linux.

Het is beter om de oplossing voor de overzetting naar de bovenstroomse ontwikkelaars zelf te sturen, want daar is het dat die uiteindelijk zal moeten terechtkomen; u kunt beter rechtstreeks met hen communiceren dan via de Debian beheerder van het Debian pakket. We kunnen de oplossing makkelijk toepassen als een upload naar de suite unreleased van Debian in afwachting tot de patch uitgebracht wordt door de bovenstroomse ontwikkelaars en in Debian belandt.

Pakketten die niet overgezet zullen worden

Sommige van deze pakketten, of delen ervan, kunnen later overzetbaar worden, maar op zijn minst op dit moment worden deze als niet-overzetbaar beschouwd. Ze worden normaal gemarkeerd als NotForUs in de database van buildd.

Algemene overzettingsproblemen

Een lijst met veelvoorkomende problemen is te vinden op de bovenstroomse website. De volgende veelvoorkomende problemen zijn specifiek voor Debian.

Voordat u iets probeert op te lossen, moet u nagaan of de overzetting naar kfreebsd* niet al een oplossing heeft die gewoon een uitbreiding naar hurd-any nodig heeft.

Ontwikkelen van het Debian-installatieprogramma

De eenvoudigste manier om een ISO-image te bouwen is te beginnen met een bestaand image van de pagina met Hurd cd-images. U kunt dit dan aankoppelen en kopiëren:

 
mount debian-sid-hurd-i386-NETINST-1.iso /mnt
cp -a /mnt /tmp/myimage
umount /mnt
chmod -R +w /tmp/myimage

U kunt de initiële ram-schijf aankoppelen, en bijv. een translator (vertaler) vervangen door uw eigen versie:

 
gunzip /tmp/myimage/initrd.gz
mount /tmp/myimage/initrd /mnt
cp ~/hurd/rumpdisk/rumpdisk /mnt/hurd/
umount /mnt
gzip /tmp/myimage/initrd

Nu kunt u het ISO-image opnieuw bouwen met grub-mkrescue:

 
rm -fr /tmp/myimage/boot/grub/i386-pc
grub-mkrescue -o /tmp/myimage.iso /tmp/myimage