Package: debootstrap
Version: 1.0.143
The issue is that a deboostrap for hurd as done bu pbuilder sets up
individual translators on /dev/* and /servers/* just before
"shadowing" them by setting up "firmlinks" on /dev and /servers. This
results in a filesystem with active translators that prevents it being
clean up, which for instance breaks the pbuilder create step.
There is an attempt in pbuilder to fix this, but it now fails as some
"new" (wrt the pbuilder fix) translator has been introduced.
The attached patch for debootstrap aims to resolve the issue
completely by avoiding setting up the translators that get shadowed.
After implementing this patch, the pbuilder fix may or should be
removed.
Ralph
*** /usr/share/debootstrap/functions.orig 2026-04-27 00:39:46.000000000 +0100
--- /usr/share/debootstrap/functions 2026-04-28 09:43:40.000000000 +0100
***************
*** 1355,1368 ****
mount -t devfs devfs "$TARGET/dev"
mount -t fdescfs -o linrdlnk fdescfs "$TARGET/dev/fd" ;;
hurd*)
- # Use the setup-translators of the hurd package
- in_target /usr/lib/hurd/setup-translators -k
- # firmlink $TARGET/{dev,servers} to the system ones.
if [ "$TARGET" != / ]; then
umount_on_exit /dev
umount_on_exit /servers
settrans -a "$TARGET/dev" /hurd/firmlink /dev
settrans -a "$TARGET/servers" /hurd/firmlink /servers
fi
;;
esac
--- 1355,1372 ----
mount -t devfs devfs "$TARGET/dev"
mount -t fdescfs -o linrdlnk fdescfs "$TARGET/dev/fd" ;;
hurd*)
if [ "$TARGET" != / ]; then
+ # firmlink $TARGET/{dev,servers} to the system ones.
umount_on_exit /dev
umount_on_exit /servers
+ # ensure some /servers subdirectories before shadowing
+ mkdir -p $TARGET/servers/socket/dummy
+ mkdir -p $TARGET/servers/bus/pci
settrans -a "$TARGET/dev" /hurd/firmlink /dev
settrans -a "$TARGET/servers" /hurd/firmlink /servers
+ else
+ # Use the setup-translators of the hurd package
+ in_target /usr/lib/hurd/setup-translators -k
fi
;;
esac