Anpassningar ] [ Debian GNU/Hurd ] [ Nyheter ] [ Konfiguration ] [ Hurd på cd ] [ Dokumentation ] [ Utveckling ] [ Kontakt ]

Debian GNU/Hurd

Utveckling av Distributionen

Paketering av Hurd-mjukvara

Hurd-specifika paket underhålls på https://salsa.debian.org/hurd-team/.

Anpassa Debianpaket

Om du vill hjälpa Debian GNU/Hurd-anpassningen, så bör du göra dig bekant med Debians paketeringssystem. När du har gjort detta genom att läsa dokumentationen och besöka utvecklarhörnan så bör du veta hur man extraherar ett Debian-källkodspaket och bygger ett Debianpaket. Här följer en snabbkurs för latmaskar:

Få tag på källkod och bygga paket

Att skaffa källkoden kan enkelt göras genom att köra apt source paket, vilket även extraherar källkoden.

Att packa upp ett Debian-källkodspaket kräver filen paket_version.dsc och filerna som listas i denna. Du skapar Debians byggmapp med kommandot dpkg-source -x paket_version.dsc

Bygge av ett paket sker i den nu skapade Debianbyggmappen package-version med hjälp av kommandot dpkg-buildpacakge -B "-mMittnamn <MinEmail>". Istället för -B kan du använda -b om du även vill bygga de arkitekturoberoende delarna av paketet (Men det är oftast meningslöst eftersom de redan finns tillgängliga i arkivet, och att bygga dem kan kräva ytterligare beroenden). Du kan lägga till -uc för att undvika att signera paketet med din OpenPGP-nyckel.

Att bygga paketet kan kräva ytterligare installerade paket. Enklaste sättet att installera dessa är apt build-dep paket vilket installerar alla paket som krävs.

Att använda pbuilder kan vara bekvämt. Det kan byggas med 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 och sedan kan man använda pdebuild -- --binary-arch vilket kommer att hantera hämtning av byggberoenden, osv., och placera resultatet i /var/cache/pbuilder/result

Välj ett paket

Vilket paket skall det arbetas på? Varje paket som inte ännu är anpassat beöver det jobbas på. Detta ändrar sig hela tiden, så det uppskattas om man först koncentrerar sig på paket med många bakåtberoenden, vilket kan ses i paketberoendegrafen https://people.debian.org/~sthibault/hurd-i386/graph-radial.pdf som uppdateras dagligen, eller på listan över mest efterfrågade paket https://people.debian.org/~sthibault/hurd-i386/graph-total-top.txt (detta är långtidslistan, korttidslistan är https://people.debian.org/~sthibault/hurd-i386/graph-top.txt). Det är också en god idé att välja paket från listorna på föråldrade paket, https://people.debian.org/~sthibault/hurd-i386/out_of_date2.txt och https://people.debian.org/~sthibault/hurd-i386/out_of_date.txt, eftersom dessa brukade fungera, men nu inte gör det av några mindre orsaker. Du kan också bara välja ett av de saknade paketen slumpmässigt, eller kontrollera autobyggloggar på sändlistan debian-hurd-build-logs, eller använda wanna-build-listan från https://people.debian.org/~sthibault/hurd-i386/failed_packages.txt. Några byggproblem är lättare att rätta än de andra. Exampelvis, "undefined reference to foo", där foo är något i stil med pthread_create, dlopen, cos, ... (som uppenbarligen finns tillgängliga på hurd-i386), som bara visar att konfigurationssteget av paktet missade att inkludera -lpthread, -ldl, -lm, osv, även på Hurd. Notera dock att ALSA MIDI-funktioner inte finns tillgängliga.

Kolla även om arbete har gjorts på https://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse, https://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse, och i BTS (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd), och https://wiki.debian.org/Debian_GNU/Hurd, samt aktuell status av paket på buildd.debian.org, t.ex. https://buildd.debian.org/util-linux.

Det är bättre att skicka anpassningsrättning uppströms, eftersom det är där den kommer att hamna tillslut ; bättre att diskutera med dom direkt istället för via den ansvarige för Debianpaketet. Vi kan enkelt applicera rättningen som en uppladdning till Debians unreleased-uppsättning medan vi väntar på att patchen släpps uppströms och landar i Debian.

Paket som inte anpassas

Några av dessa paket, eller delar av dem, kan bli anpassningsbara senare, men för närvarande är dem åtminstone ansedda att inte vara anpassningsbara. Normalt markeras dessa med NotForUs i buildd-databasen.

Allmänna anpassningsproblem

En lista på vanliga problem finns tillgänglig på uppströmswebbsidan. Följande vanliga problem är specifika för Debian.

Innan du försöker rätta något, komtrollera om kanske kfreebsd*-anpassningen redan har en fix, som kanske endast måste utökas till hurd-any.

Hacka med Debian-installeraren

För att bygga en ISO-avbildning är det enklaste att börja med en existerande från sidan för Hurd CD-avbildningar. Du kan sedan montera den och kopiera den:

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

Du kan montera den initiala ramdisken och exempelvis ersätta en översättare med din egen version:

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

Nu kan du bygga om ison med grub-mkrescue:

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