[PATCH 00/94] Porting Gentoo to the Hurd

Sam James <[email protected]>
Newsgroups gmane.linux.gentoo.devel
Message-ID <[email protected]>
[Announcement accompanies https://www.gentoo.org/news/2026/04/01/gentoo-hurd.html]

The year is 2026 and Gentoo is perhaps ready for an advanced kernel:
the GNU Hurd.

crossdev support came first and then I couldn't help myself with going
further :)

All of this has been committed over the last ~2.5 weeks but bringing
it here as both a formal announcement and as a promise to (eventually)
post the new profiles here, but didn't want to do that too early.

Scripts to build a working image that can be booted in QEMU can be
found at https://codeberg.org/thesamesam/gentoo-hurd (will move that to
Gentoo infra).

There's plenty to do yet, see TODO in that repo for a start, but it's
gone further than I thought it would in the beginning.

The project has been a good outlet to relax and I hope others will
find some joy in it too. There's no pressure to move quickly and that's
part of the reward from working on this: "we get there when we get there".

The Hurd has many interesting properties, and a surprising amount Just Works;
you can say many thing about the Hurd, but I defy you to say it's in any way
boring.

Acknowledgements:
* dilfridge, csfore, nekobit, and navi: for the help, encouragement,
  and contributions so far.

* GNU Hurd community: for patiently answering questions.

* Debian GNU/Hurd and Guix: for being a source of work to borrow!

* those who led or contributed to prior efforts to port Gentoo to the Hurd:
 * https://web.archive.org/web/20100109161805/http://www.mundurat.net/ggh/
 * https://web.archive.org/web/20060103233551/http://hurd.rustedhalo.net/about.php
 * https://github.com/matijaskala/hurd
 * https://github.com/trofi/gentoo-hurd (https://trofi.github.io/posts/208-crossdev-and-gnu-hurd.html)
 * https://github.com/alexxy/gentoo-hurd

A new Gentoo project has been established (https://wiki.gentoo.org/wiki/Project:Hurd),
with an IRC channel too (#gentoo-hurd).

Enjoy, have fun with it, and be prepared for it to be a bit bumpy.

Andreas K. Hüttel (12):
  sys-libs/glibc: minor adaptions for hurd
  profiles, hurd, amd64: use lib64
  sys-libs/glibc: minor adaptions for hurd
  sys-libs/glibc: more hurd fixes
  sys-libs/glibc: more hurd fixes, now amd64
  sys-libs/glibc: hurd linkage patch now in gentoo patchset
  sys-libs/glibc: add hurd -march=native workaround
  sys-power/libacpica: Adapt to creative variable names in Makefile
  sys-kernel/rumpkernel: Fix installation libdir
  dev-util/mig: improve dependencies
  net-libs/libtirpc: fix build for hurd
  app-text/opensp: fix build with Hurd

Christopher Fore (2):
  cmake.eclass: Add Hurd support
  profiles/default/hurd: Mask debuginfod

Hyland B. (1):
  sys-kernel/rumpkernel: new package, add 0_p20250111_p6, add 9999

Ionen Wolkens (1):
  sys-apps/util-linux: use kernel_Hurd rather than *-gnu

Sam James (77):
  sys-kernel/gnumach: new package, add 1.8, 1.8_p20260224, 9999
  sys-kernel/hurd: new package, add 0.9, 0.9_p20251029, 9999
  sys-libs/glibc: prepare for GNU Hurd
  sys-kernel/gnumach: drop 1.8
  dev-util/mig: drop 1.8
  sys-kernel/hurd: drop 0.9
  meson.eclass: recognise *-gnu as GNU Hurd
  x11-libs/libpciaccess: add static-libs for GNU Hurd
  dev-lang/perl: recognise *-gnu as GNU Hurd
  sys-apps/util-linux: adapt to GNU Hurd
  sys-process/psmisc: port to GNU Hurd
  virtual/logger: allow net-misc/inetutils[syslogd]
  app-misc/screen: fix pty.h patch for GNU Hurd
  sys-kernel/gnumach: update DESCRIPTION
  sys-kernel/gnumach: replace -ggdb* with -g, not -g1
  sys-libs/glibc: avoid -g3 on Hurd
  sys-kernel/hurd: fix headers-only condition
  sys-kernel/hurd: make libxkbcommon support optional
  sys-libs/glibc: link to Hurd userland libraries
  sys-apps/util-linux: fix CHOST check
  sys-kernel/hurd: fix build w/ glibc-2.43
  profiles: add kernel_Hurd
  sys-apps/shadow: port to GNU Hurd
  sys-process/procps: port to GNU Hurd
  dev-debug/gdb: port to GNU Hurd
  sys-apps/openrc: port to GNU Hurd
  app-misc/screen: fix Hurd build (PATH_MAX)
  sys-apps/sysvinit: port to Hurd
  profiles: move Hurd masks to base/
  sys-apps/portage: only depend on sandbox on linux
  virtual/tmpfiles: don't require anything on non-Linux
  sys-kernel/hurd: add USE=custom-cflags
  sys-devel/crossdev: add 20260318
  dev-libs/elfutils: port to Hurd
  sys-apps/util-linux: port Hurd changes to live ebuild
  app-shells/bash: fix PIPESIZE when cross-compiled to Hurd
  profiles: add initial GNU Hurd profiles
  profiles/default/hurd: set BRANDING_OS_*
  profiles/default/hurd: mask USE=epoll
  profiles/default/hurd: mask USE=eventfd
  profiles/default/hurd: remove virtual/dev-manager from @system
  dev-python/mypy: make dev-python/psutil an optfeature
  sys-libs/glibc: fix symlink for x86 ld.so on Hurd
  Revert "sys-libs/glibc: fix symlink for x86 ld.so on Hurd"
  profiles/default/hurd: drop -openmp
  app-arch/libarchive: fixup deps for Hurd
  sys-libs/glibc: add extra Hurd patches
  sys-libs/glibc: rebase Hurd patches (and reformat)
  app-arch/unzip: port to Hurd
  sys-kernel/hurd: disable _FORTIFY_SOURCE
  sys-kernel/hurd: wire up rumpkernel support
  sys-block/parted: add USE=static-libs, for Hurd
  sys-kernel/hurd: wire up parted (for rump?)
  sys-kernel/rumpkernel: don't assume x86
  sys-kernel/rumpkernel: add missing dependencies
  sys-kernel/rumpkernel: update comments for previous changes
  sys-kernel/hurd: arrange to install libshouldbeinlibc for cross-*
  sys-kernel/hurd: fix automagic xkb
  sys-devel/crossdev: add 20260326
  sys-kernel/hurd: build libirqhelp in cross minimal build
  sys-libs/libacpica: new package, add 0_pre20220331_p6, 9999
  sys-kernel/hurd: wire up sys-libs/libacpica support
  sys-kernel/rumpkernel: rename 0_p -> 0_pre
  sys-power/libacpica: rename from sys-libs/libacpica
  profiles: mask sys-power/libacpica on non-Hurd
  sys-kernel/hurd: improve comment wrt parted/rumpdisk
  sys-kernel/hurd: add patch for libports assertion
  sys-kernel/hurd: add commentary wrt cross hacks
  sys-kernel/rumpkernel: add commentary wrt upstream situation
  sys-kernel/rumpkernel: drop stale TODOs
  sys-kernel/hurd: fix libdir for cross-*
  go-env.eclass: support Hurd in GOOS
  multilib.eclass: convert musl check to case statement
  multilib.eclass: handle multilib on Hurd in multilib_env
  Revert "multilib.eclass: handle multilib on Hurd in multilib_env"
  app-arch/unzip: fix Hurd build
  sys-kernel/hurd: don't pass -a to openrc-init

Swagtoy (1):
  games-roguelike/nethack: GNU Hurd fixes; lex dependency

 app-arch/libarchive/libarchive-3.8.6.ebuild   |   9 +-
 .../unzip/files/unzip-6.0-c99-configure.patch |  64 ++++++
 app-arch/unzip/unzip-6.0_p29-r2.ebuild        | 100 +++++++++
 ...creen-4.9.1-add-missing-pty.h-header.patch |   2 +-
 .../files/screen-4.9.1-hurd-path-max.patch    |  41 ++++
 app-misc/screen/screen-4.9.1-r2.ebuild        |   3 +-
 app-shells/bash/bash-5.3_p9.ebuild            |  16 ++
 .../bash/bash-5.4_alpha_pre20251202.ebuild    |  16 ++
 app-shells/bash/bash-9999.ebuild              |  16 ++
 app-text/opensp/files/opensp-1.5.2-hurd.patch |  48 +++++
 app-text/opensp/opensp-1.5.2-r10.ebuild       |   3 +-
 dev-debug/gdb/gdb-17.1.ebuild                 |   4 +
 dev-debug/gdb/gdb-9999.ebuild                 |   4 +
 dev-lang/perl/perl-5.42.0.ebuild              |   5 +-
 dev-libs/elfutils/elfutils-0.194-r2.ebuild    | 161 ++++++++++++++
 .../elfutils/files/elfutils-0.194-hurd.patch  | 101 +++++++++
 dev-python/mypy/mypy-1.19.1-r2.ebuild         | 129 +++++++++++
 dev-util/mig/Manifest                         |   1 -
 dev-util/mig/mig-1.8.ebuild                   |  46 ----
 dev-util/mig/mig-1.8_p20231217.ebuild         |  12 +-
 dev-util/mig/mig-9999.ebuild                  |  12 +-
 eclass/cmake.eclass                           |   1 +
 eclass/go-env.eclass                          |   1 +
 eclass/meson.eclass                           |   1 +
 eclass/multilib.eclass                        |  26 ++-
 .../files/nethack-3.6.7-hurd-tparm.patch      |  15 ++
 ...k-3.6.7-no-define-warn-unused-result.patch |  17 ++
 .../files/nethack-3.6.7-path-max.patch        |  15 ++
 .../nethack/nethack-3.6.7-r1.ebuild           | 159 ++++++++++++++
 .../files/libtirpc-1.3.7-hurd-client.patch    |  50 +++++
 .../libtirpc/files/libtirpc-1.3.7-hurd.patch  |  82 +++++++
 .../files/libtirpc-1.3.7-nonlinux.patch       | 107 ++++++++++
 net-libs/libtirpc/libtirpc-1.3.7-r2.ebuild    |   9 +-
 profiles/base/make.defaults                   |   2 +-
 profiles/base/package.mask                    |   8 +
 profiles/base/use.mask                        |   1 +
 .../alpha => default/hurd/amd64/23.0}/eapi    |   0
 .../default/hurd/amd64/23.0/make.defaults     |  10 +
 .../default/{linux => hurd}/amd64/23.0/parent |   0
 .../{arch/alpha => default/hurd/amd64}/eapi   |   0
 profiles/default/hurd/amd64/package.mask      |  10 +
 profiles/default/hurd/amd64/package.use.mask  |  18 ++
 profiles/default/{linux => hurd}/amd64/parent |   0
 profiles/{arch/alpha => default/hurd}/eapi    |   0
 profiles/default/hurd/make.defaults           |  66 ++++++
 profiles/default/hurd/package.mask            |  15 ++
 profiles/default/hurd/package.use             |  35 +++
 profiles/default/hurd/package.use.force       |   6 +
 profiles/default/hurd/package.use.mask        |  79 +++++++
 profiles/default/hurd/packages                |  15 ++
 profiles/default/hurd/packages.build          |  41 ++++
 profiles/default/hurd/use.force               |   6 +
 profiles/default/hurd/use.mask                |  27 +++
 .../alpha => default/hurd/x86/23.0}/eapi      |   0
 .../alpha => default/hurd/x86/23.0/i686}/eapi |   0
 .../default/hurd/x86/23.0/i686/make.defaults  |   6 +
 .../{linux => hurd}/x86/23.0/i686/parent      |   0
 .../{linux/alpha => hurd/x86}/23.0/parent     |   0
 .../{arch/alpha => default/hurd/x86}/eapi     |   0
 profiles/default/hurd/x86/make.defaults       |   8 +
 profiles/default/hurd/x86/package.mask        |  10 +
 profiles/default/hurd/x86/package.use.mask    |  22 ++
 profiles/default/{linux => hurd}/x86/parent   |   0
 profiles/desc/kernel.desc                     |   3 +-
 profiles/embedded/make.defaults               |   2 +-
 profiles/package.mask                         |   1 -
 profiles/profiles.desc                        |   6 +
 sys-apps/openrc/openrc-0.63-r1.ebuild         |  11 +-
 sys-apps/openrc/openrc-9999.ebuild            |  11 +-
 sys-apps/portage/portage-3.0.72-r1.ebuild     |   8 +-
 sys-apps/portage/portage-3.0.77-r1.ebuild     |   8 +-
 sys-apps/portage/portage-3.0.77-r3.ebuild     |   8 +-
 sys-apps/portage/portage-3.0.77.ebuild        |   8 +-
 sys-apps/portage/portage-9999.ebuild          |   8 +-
 sys-apps/shadow/shadow-4.14.8-r1.ebuild       |   4 +-
 sys-apps/shadow/shadow-4.14.8-r2.ebuild       |   4 +-
 sys-apps/shadow/shadow-4.14.8.ebuild          |   4 +-
 sys-apps/shadow/shadow-4.19.2.ebuild          |   2 +-
 sys-apps/shadow/shadow-4.19.3.ebuild          |   9 +-
 sys-apps/sysvinit/sysvinit-3.15.ebuild        |   8 +-
 ...1.3.ebuild => util-linux-2.41.3-r1.ebuild} |  15 ++
 sys-apps/util-linux/util-linux-9999.ebuild    |  15 ++
 sys-block/parted/parted-3.6-r2.ebuild         |   6 +-
 sys-devel/crossdev/Manifest                   |   2 +
 sys-devel/crossdev/crossdev-20260318.ebuild   |  46 ++++
 sys-devel/crossdev/crossdev-20260326.ebuild   |  46 ++++
 sys-kernel/gnumach/Manifest                   |   1 +
 .../gnumach/gnumach-1.8_p20260224.ebuild      | 106 +++++++++
 sys-kernel/gnumach/gnumach-9999.ebuild        | 106 +++++++++
 .../anope => sys-kernel/gnumach}/metadata.xml |   0
 sys-kernel/hurd/Manifest                      |   1 +
 .../files/hurd-0.9_p20251029-glibc-2.43.patch |  82 +++++++
 ..._p20251029-libports-iterate-refcount.patch |  21 ++
 .../hurd-0.9_p20251029-openrc-init-no-a.patch |  10 +
 .../files/hurd-0.9_p20251029-rump-link.patch  |  20 ++
 sys-kernel/hurd/hurd-0.9_p20251029.ebuild     | 202 ++++++++++++++++++
 sys-kernel/hurd/hurd-9999.ebuild              | 201 +++++++++++++++++
 sys-kernel/hurd/metadata.xml                  |  24 +++
 sys-kernel/rumpkernel/Manifest                |   1 +
 ...0_p20250111_p6-bsd-own-mk-no-sysroot.patch |  35 +++
 .../rumpkernel}/metadata.xml                  |   0
 .../rumpkernel-0_pre20250111_p6.ebuild        | 199 +++++++++++++++++
 sys-kernel/rumpkernel/rumpkernel-9999.ebuild  | 199 +++++++++++++++++
 .../glibc-2.43-hurd-CLOCK_MONOTONIC.patch     | 100 +++++++++
 .../files/glibc-2.43-hurd-ldconfig.patch      |  45 ++++
 .../files/glibc-2.43-hurd-link-helpers.patch  |  34 +++
 sys-libs/glibc/glibc-2.42-r5.ebuild           | 161 +++++++++-----
 sys-libs/glibc/glibc-2.43.ebuild              | 193 ++++++++++++-----
 sys-libs/glibc/glibc-9999.ebuild              | 192 ++++++++++++-----
 sys-power/libacpica/Manifest                  |   1 +
 .../libacpica-0_pre20220331_p6.ebuild         |  57 +++++
 sys-power/libacpica/libacpica-9999.ebuild     |  57 +++++
 .../libacpica}/metadata.xml                   |   0
 .../procps/files/procps-4.0.6-hurd.patch      | 140 ++++++++++++
 sys-process/procps/procps-4.0.6.ebuild        |  21 ++
 sys-process/psmisc/psmisc-23.7.ebuild         |   6 +-
 ...{logger-0-r2.ebuild => logger-0-r3.ebuild} |   3 +-
 ...files-0-r5.ebuild => tmpfiles-0-r6.ebuild} |  10 +-
 .../libpciaccess/libpciaccess-0.18.1.ebuild   |  17 +-
 119 files changed, 3842 insertions(+), 299 deletions(-)
 create mode 100644 app-arch/unzip/files/unzip-6.0-c99-configure.patch
 create mode 100644 app-arch/unzip/unzip-6.0_p29-r2.ebuild
 create mode 100644 app-misc/screen/files/screen-4.9.1-hurd-path-max.patch
 create mode 100644 app-text/opensp/files/opensp-1.5.2-hurd.patch
 create mode 100644 dev-libs/elfutils/elfutils-0.194-r2.ebuild
 create mode 100644 dev-libs/elfutils/files/elfutils-0.194-hurd.patch
 create mode 100644 dev-python/mypy/mypy-1.19.1-r2.ebuild
 delete mode 100644 dev-util/mig/mig-1.8.ebuild
 create mode 100644 games-roguelike/nethack/files/nethack-3.6.7-hurd-tparm.patch
 create mode 100644 games-roguelike/nethack/files/nethack-3.6.7-no-define-warn-unused-result.patch
 create mode 100644 games-roguelike/nethack/files/nethack-3.6.7-path-max.patch
 create mode 100644 games-roguelike/nethack/nethack-3.6.7-r1.ebuild
 create mode 100644 net-libs/libtirpc/files/libtirpc-1.3.7-hurd-client.patch
 create mode 100644 net-libs/libtirpc/files/libtirpc-1.3.7-hurd.patch
 create mode 100644 net-libs/libtirpc/files/libtirpc-1.3.7-nonlinux.patch
 copy profiles/{arch/alpha => default/hurd/amd64/23.0}/eapi (100%)
 create mode 100644 profiles/default/hurd/amd64/23.0/make.defaults
 copy profiles/default/{linux => hurd}/amd64/23.0/parent (100%)
 copy profiles/{arch/alpha => default/hurd/amd64}/eapi (100%)
 create mode 100644 profiles/default/hurd/amd64/package.mask
 create mode 100644 profiles/default/hurd/amd64/package.use.mask
 copy profiles/default/{linux => hurd}/amd64/parent (100%)
 copy profiles/{arch/alpha => default/hurd}/eapi (100%)
 create mode 100644 profiles/default/hurd/make.defaults
 create mode 100644 profiles/default/hurd/package.mask
 create mode 100644 profiles/default/hurd/package.use
 create mode 100644 profiles/default/hurd/package.use.force
 create mode 100644 profiles/default/hurd/package.use.mask
 create mode 100644 profiles/default/hurd/packages
 create mode 100644 profiles/default/hurd/packages.build
 create mode 100644 profiles/default/hurd/use.force
 create mode 100644 profiles/default/hurd/use.mask
 copy profiles/{arch/alpha => default/hurd/x86/23.0}/eapi (100%)
 copy profiles/{arch/alpha => default/hurd/x86/23.0/i686}/eapi (100%)
 create mode 100644 profiles/default/hurd/x86/23.0/i686/make.defaults
 copy profiles/default/{linux => hurd}/x86/23.0/i686/parent (100%)
 copy profiles/default/{linux/alpha => hurd/x86}/23.0/parent (100%)
 copy profiles/{arch/alpha => default/hurd/x86}/eapi (100%)
 create mode 100644 profiles/default/hurd/x86/make.defaults
 create mode 100644 profiles/default/hurd/x86/package.mask
 create mode 100644 profiles/default/hurd/x86/package.use.mask
 copy profiles/default/{linux => hurd}/x86/parent (100%)
 rename sys-apps/util-linux/{util-linux-2.41.3.ebuild => util-linux-2.41.3-r1.ebuild} (97%)
 create mode 100644 sys-devel/crossdev/crossdev-20260318.ebuild
 create mode 100644 sys-devel/crossdev/crossdev-20260326.ebuild
 create mode 100644 sys-kernel/gnumach/Manifest
 create mode 100644 sys-kernel/gnumach/gnumach-1.8_p20260224.ebuild
 create mode 100644 sys-kernel/gnumach/gnumach-9999.ebuild
 copy {acct-group/anope => sys-kernel/gnumach}/metadata.xml (100%)
 create mode 100644 sys-kernel/hurd/Manifest
 create mode 100644 sys-kernel/hurd/files/hurd-0.9_p20251029-glibc-2.43.patch
 create mode 100644 sys-kernel/hurd/files/hurd-0.9_p20251029-libports-iterate-refcount.patch
 create mode 100644 sys-kernel/hurd/files/hurd-0.9_p20251029-openrc-init-no-a.patch
 create mode 100644 sys-kernel/hurd/files/hurd-0.9_p20251029-rump-link.patch
 create mode 100644 sys-kernel/hurd/hurd-0.9_p20251029.ebuild
 create mode 100644 sys-kernel/hurd/hurd-9999.ebuild
 create mode 100644 sys-kernel/hurd/metadata.xml
 create mode 100644 sys-kernel/rumpkernel/Manifest
 create mode 100644 sys-kernel/rumpkernel/files/rumpkernel-0_p20250111_p6-bsd-own-mk-no-sysroot.patch
 copy {acct-group/anope => sys-kernel/rumpkernel}/metadata.xml (100%)
 create mode 100644 sys-kernel/rumpkernel/rumpkernel-0_pre20250111_p6.ebuild
 create mode 100644 sys-kernel/rumpkernel/rumpkernel-9999.ebuild
 create mode 100644 sys-libs/glibc/files/glibc-2.43-hurd-CLOCK_MONOTONIC.patch
 create mode 100644 sys-libs/glibc/files/glibc-2.43-hurd-ldconfig.patch
 create mode 100644 sys-libs/glibc/files/glibc-2.43-hurd-link-helpers.patch
 create mode 100644 sys-power/libacpica/Manifest
 create mode 100644 sys-power/libacpica/libacpica-0_pre20220331_p6.ebuild
 create mode 100644 sys-power/libacpica/libacpica-9999.ebuild
 copy {acct-group/anope => sys-power/libacpica}/metadata.xml (100%)
 create mode 100644 sys-process/procps/files/procps-4.0.6-hurd.patch
 rename virtual/logger/{logger-0-r2.ebuild => logger-0-r3.ebuild} (87%)
 rename virtual/tmpfiles/{tmpfiles-0-r5.ebuild => tmpfiles-0-r6.ebuild} (66%)

-- 
2.53.0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.