[[!meta copyright="Copyright © 2013 Free Software Foundation, Inc."]] [[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable id="license" text="Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled [[GNU Free Documentation License|/fdl]]."]]"""]] A quarter of the Hurd, Q3/Q4 of 2012: *pthreads*, *installation CDs*, *hardware* and *porting*. [[!if test="included()" then="""[[!toggle id=full_news text="Details."]][[!toggleable id=full_news text="[[!paste id=full_news]]"]]""" else=" [[!paste id=full_news]]"]] [[!cut id="full_news" text=""" In November 2012, we finished the [libthreads (cthreads) to libpthread (POSIX Threads) conversion](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00088.html). Converting the Hurd libraries to the [[pthread interfaces|libpthread]] allows linking them together with other libraries that use this standard threading interface themselves. This project [once](http://lists.gnu.org/archive/html/bug-hurd/2002-10/msg00162.html) was begun by Vicente Hernando Ara, and later continued by Barry deFreese, Thomas DiModica, Thomas Schwinge, Samuel Thibault, Pino Toscano, and now brought to completion by Richard Braun, who could not be scared by having to resolve the last remaining tricky issues before the transition could be completed. Cyril Roelandt shared a [patch series](http://lists.gnu.org/archive/html/bug-hurd/2012-12/threads.html#00018) to fix double mutex unlocking problems. He found these using a simple script for [Coccinelle](http://coccinelle.lip6.fr/), which is a [[static code analysis tool|open_issues/code_analysis]]. We hope to see more such changes in the future, and we're always interested in hearing people who have experience with similar tools, for example to resolve other [[open_issues/locking_issues]]. Thomas Schwinge together with Richard Braun and Samuel Thibault [debugged and fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00044.html) a deadlock related to signal delivery, resulting from a regression due to earlier changes. Also Samuel Thibault [provided](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00052.html) new [installation CDs](http://people.debian.org/~sthibault/hurd-i386/installer/cdimage/current) and a new [qemu image](http://people.debian.org/~sthibault/hurd-i386/). Additionally to using pthreads, these now offer keyboard layout configuration. Pino Toscano [implemented syncfs](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00046.html) which ensures that all data in the filesystem gets written to disk, as well as [statfs](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00005.html), which adds additional statistics to procfs. Thomas Schwinge and Samuel Thibault improved the hardware compatibility of the Hurd by fixing [some errors](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00077.html) which caused a miscalculation of the size of medium sized disks reporting 15 heads instead of 16 and adding [network-card detection](http://lists.debian.org/debian-hurd/2012/07/msg00011.html) network-card detection on busses other than 0 and 2. And several people ported and fixed packages, further increasing the number of debian packages which work on the Hurd: *Svante Signell* ported [mlocate-0.25](http://lists.debian.org/debian-hurd/2012/07/msg00015.html), [gnat-gps](http://lists.debian.org/debian-hurd/2012/07/msg00011.html), [libpst](http://lists.debian.org/debian-hurd/2012/08/msg00039.html), [libetpan](http://lists.debian.org/debian-hurd/2012/08/msg00046.html), [spl](http://lists.debian.org/debian-hurd/2012/09/msg00004.html), [dovecot](http://lists.debian.org/debian-hurd/2012/09/msg00007.html), [xplc](http://lists.debian.org/debian-hurd/2012/08/msg00054.html) and [parrot](http://lists.debian.org/debian-hurd/2012/08/msg00056.html), [x86info](http://lists.debian.org/debian-hurd/2012/09/msg00008.html), [atlas](http://lists.debian.org/debian-hurd/2012/09/msg00009.html), [rrdtool](http://lists.debian.org/debian-hurd/2012/09/msg00011.html) and [gdb](http://lists.debian.org/debian-hurd/2012/09/msg00018.html). Also he fixed [yodl](http://lists.debian.org/debian-hurd/2012/08/msg00030.html), fixed [ntpdate](http://lists.debian.org/debian-hurd/2012/12/msg00002.html) to work again and [improved](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00062.html) the error handling in pflocal. *Pino Toscano* added patches for [procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00004.html), [ptrace](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00035.html), [fsync on stdout](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00046.html), [muntrace](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00033.html), [ulimit](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00034.html), [glibc](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00029.html) which among others improve POSIX conformance, making it easier to write programs which work on the Hurd and GNU/Linux. And he made the test pass for [FIFO sockets](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00053.html) with mknod and [added](http://lists.gnu.org/archive/html/bug-hurd/2012-09/msg00005.html) a size parameter to tmpfs for easier usage in scripts and a [version suffix option](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00009.html) for gnumach configure. *Cyril Roelandt* fixed a [ps](http://lists.gnu.org/archive/html/bug-hurd/2012-12/msg00012.html) bug, a documentation typo [in ps](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00032.html) and a missing linker flag [in procfs](http://lists.gnu.org/archive/html/bug-hurd/2012-10/msg00025.html). *Matthew Leach* [fixed](http://lists.gnu.org/archive/html/bug-hurd/2012-11/msg00037.html) a compilation error with older GCC versions due to duplicate type definition. *Ole Streicher* fixed a bug in the Makefile of ftools-fv which was [exposed](http://lists.debian.org/debian-hurd/2012/10/msg00059.html) by testing on Hurd. And *Samuel Thibault* [removed](http://lists.debian.org/debian-hurd/2012/12/msg00005.html) the out-of-date floppy-warnings in the debian installer. So if you want to test if your favorite packages work on the Hurd and contribute towards making the full GNU system usable for a wider range of people, please [[get in contact|contact_us]] -- and maybe already grab the [[source code|source_repositories]]. --- The **GNU Hurd** is the GNU project's replacement for the Unix kernel. It is a collection of servers that run on the Mach microkernel to implement file systems, network protocols, file access control, and other features that are implemented by the Unix kernel or similar kernels (such as Linux). [[More detailed|hurd/documentation]]. **GNU Mach** is the microkernel upon which a GNU Hurd system is based. It provides an Inter Process Communication (IPC) mechanism that the Hurd uses to define interfaces for implementing in a distributed multi-server fashion the services a traditional operating system kernel provides. [[More detailed|microkernel/mach/gnumach]]. """]]