[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bits from the Debian GNU/Hurd porters

This is an update to the last Debian GNU/Hurd bits from February
2012[0]. The following has happened since then:

1. Debian GNU/Hurd 2013 release

Back in May 2013, we released a version of the Debian GNU/Hurd sid
distribution[1]. Since that was a snapshot at about the same time as the
Wheezy release, this is mostly a Wheezy-like distribution. Both qemu and
a Debian-Installer images are available.

2. Archive coverage reaches 80%

In late April, the hurd-i386 port has achieved the 80% mark of packages
built for the first time[2], an improvement of 10% since the last bits
in 2012. This is on the one hand due to improvements and better
compatibility in glibc, and on the other hand due to the work of many
porters, notably Svante Signell, Pino Toscano, Gabriele Giacone and

Currently, another 50 patches for FTBFS bugs are waiting in the BTS[3],
while over 500 have been applied so far.

Regarding language support, GNU Ada (gnat) is now included in hurd-i386,
while GCC Go is being submitted currently.

3. Init system switch to SysVinit

Thanks to the Google Summer of Code work by Justus Winter last year, and
further work by him, Petter Reinholdtsen and Samuel Thibault, the
hurd-i386 port is now using SysVinit and no longer the proof-of-concept
upstream shell scripts. This includes the following improvements:

 * Using the Debian way for network configuration, which includes static
   and DHCP configuration

 * Using the Debian way for halt & shutdown commands, so services are
   now properly stopped using their respective init scripts

 * Using the Debian way to mount filesystems at boot time

4. Improvements in upstream GNU Hurd and GNU Mach

In the last two years, numerous advances in the upstream projects were
achieved, including:

 * Switch to pthreads. While an implementation of pthreads has been
   provided for user-space programs for a long time, the Hurd codebase
   itself was still using the Mach cthreads for threading. In late 2012,
   the switch to pthreads finally happened[4]. This allows for Hurd
   translators to be linked with libraries using pthreads and makes
   libfuse more useful as FUSE modules using pthreads can be used as
   well. This also opens the possibility to develop translators in
   basically any language, bindings already exist for Perl and Lisp for

 * Richard Braun has ported recent versions of Iceweasel to the Hurd,
   along with some libc fixes[5].  We are happy to report that
   Iceweasel 29 is now available for the Hurd[6] and that SSL works
   properly now[5,7].

 * Debian GNU/Hurd has migrated to userspace network drivers based on
   the Device Driver Environment (DDE) framework. This code was
   contributed by Zheng Da as part of his GSoC work in 2010 (see
   also[1]). This permits the seamless use of the Linux network drivers,
   encapsulated in a driver process, the same way the Linux TCP/IP stack
   is encapsulated in a process. A very cool feature is that a stuck
   driver can just be killed and restarted, all TCP/IP connections being
   preserved. Work has begun to clean up the code to get it into shape
   to be merged upstream.

 * Richard Braun's thread destruction work has been merged[6]. Threads
   are now properly destroyed instead of being recycled. This allows
   Hurd servers to recover after suffering from a thread storm (a
   condition where many threads are spawn to service a burst of
   requests), freeing precious system resources. In particular, thread
   stacks are freed, which gives back large regions of virtual address
   space to busy file system servers, allowing them to avoid allocation
   errors caused by fragmentation.

 * Justus Winter did static analysis of the GNU Hurd (using clang's
   check-build) and GNU Mach (clang & coverity) codebases. This brought
   up a number of issues which have been subsequently patched by Justus.

 * Justus Winter contributed an implementation of /proc/mtab. This
   allows common tools like df to now be able to get a list of mounted

5. Improved autobuilder stability and uptime

We are happy to report that above mentioned thread destruction work[7]
has further improved the stability of the buildds. Typical uptimes of
the buildds are now two weeks or more, while mostly constantly compiling

6. Archive cleanup

Michael Banck has periodically filed[8] removal bugs for packages which
no longer build on hurd-i386 due to build regressions. The reasons are
two-fold, (i) not to keep their source packages around just for the
hurd-i386 architecture and (ii) not  to keep out-of-date packages around
on hurd-i386.

7. Up-to-date package count reaches 98%

We recently reached the 98% mark of up-to-date packages[9]. Besides the
archive cleanup mentionend above, we also worked together with Andreas
Barth to investigate and resolve some bugs in the wanna-build statistics
up-to-date package count which reported a too low percentage of packages
being current. These bugs had affected the hurd-i386 port by a further

8. Talks

Samuel Thibault gave talks at last year's GNU Hacker's Meeting (GHM2013)[10] 
and this year's FOSDEM conference[11], including demos and details about
the current state.

For the Debian GNU/Hurd porters,


[0] https://lists.debian.org/debian-devel-announce/2012/02/msg00002.html
[1] http://ftp.debian-ports.org/debian-cd/hurd-i386/current/
[2] https://buildd.debian.org/stats/graph.png
[3] http://bugs.debian.org/cgi-bin/pkgreport.cgi?users=debian-hurd@lists.debian.org;tag=hurd
[4] https://lists.debian.org/debian-hurd/2012/11/msg00025.html
[5] https://lists.debian.org/debian-hurd/2014/02/msg00134.html
[6] https://lists.debian.org/debian-hurd/2014/04/msg00026.html
[7] https://lists.debian.org/debian-hurd/2014/02/msg00120.html
[8] Debian bugs #673150 #736894 #744290 #744325 and #747409
[9] https://buildd.debian.org/stats/graph2-quarter-big.png
[10] https://www.gnu.org/ghm/2013/paris/
[11] https://fosdem.org/2014/schedule/event/07_uk_dde_on_hurd/

Attachment: signature.asc
Description: Digital signature

Reply to: