Bits from the Debian GNU/Hurd porters

To: debian-devel-announce@lists.debian.org

Subject: Bits from the Debian GNU/Hurd porters

From: Michael Banck <mbanck@debian.org>

Date: Thu, 22 May 2014 15:41:04 +0200

Message-id: <[🔎] 20140522134104.GA25333@hartree.muc.credativ.lan>

Mail-followup-to: debian-devel@lists.debian.org

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 others. 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 now. * 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 filesystems. 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 packages. 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 1%. 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, Michael [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/