Ports ] [ Debian GNU/Hurd ] [ News ] [ Configuration ] [ Hurd CDs ] [ Documentation ] [ Development ] [ Contact ]

Debian GNU/Hurd

Development of the Distribution

Porting Debian Packages

If you want to help the Debian GNU/Hurd port, you should make yourself familiar with the Debian packaging system. Once you have done this by reading the available documentation and visiting the Developer's Corner you should know how to extract Debian source packages and build a Debian package. Here is a crash course for the very lazy people:

Obtaining Source and Building Packages

Obtaining Source code can be done by simply running apt-get source package, which will also extract the source.

Extracting a Debian source package requires the file package_version.dsc and the files listed in it. You build the Debian build directory with the command dpkg-source -x package_version.dsc

Building a package is done in the now existing Debian build directory package-version with the command dpkg-buildpackage -B "-mMyName <MyEmail>". Instead -B you can use -b if you also want to build the architecture independent parts of the package. You can add -uc to avoid signing the package with your pgp key.

Building may needed additional installed packages. The simplest way it to run apt-get build-dep package which will install all required packages.

Pick One

Which package needs to be worked on? Well, every package that is not yet ported, but needs to be ported. This changes constantly, so it's preferred to concentrate first on packages with a lot of reverse dependencies, which can be seen in the package dependency graph https://people.debian.org/~sthibault/graph-radial.pdf updated every day, or on the most-wanted list https://people.debian.org/~sthibault/graph-total-top.txt (this is long-term wanted, the short-term wanted is https://people.debian.org/~sthibault/graph-top.txt). It is also usually a good idea to pick from the out of date list https://people.debian.org/~sthibault/out_of_date.txt, as these used to be working, and are now broken probably only for just a couple of reasons. You can also just pick one of the missing packages at random, or watch out for autobuilding logs on the debian-hurd-build-logs mailing list, or use the wanna-build list from https://people.debian.org/~sthibault/failed_packages.txt . Some build issues are easier to fix than the others. Typically, "undefined reference to foo", where foo is something like pthread_create, dlopen, cos, ... (which are obviously available on hurd-i386), which just shows that the configure step of the package forgot to include -lpthread, -ldl, -lm, etc. on the Hurd too. Note however that ALSA MIDI functions are not available.

Also, check whether work has already been done on http://alioth.debian.org/tracker/?atid=410472&group_id=30628&func=browse, http://alioth.debian.org/tracker/?atid=411594&group_id=30628&func=browse, and the BTS (https://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd), and https://wiki.debian.org/Debian_GNU/Hurd, and the live state of packages on buildd.debian.org, e.g. https://buildd.debian.org/util-linux.

Packages That Won't Be Ported

Some of these packages, or parts of them, might be portable later, but currently they are considered to be unportable at least. They are normally marked as NotForUs in the buildd database.

General Porting Issues

A list of common issues is available on the upstream website. The following common issues are specific to Debian.

Before attempting to fix something, check whether the kfreebsd* port maybe has some fix already, which just needs to be extended to hurd-i386.