Hello, Gabriele Giacone, on Wed 05 Nov 2014 00:58:25 +0100, wrote: > attached patch is pretty hurd-specific: > > - disconnect (orphan) TARGET/proc passive translator and start > bind-mounting /proc along with /servers and /dev. > - add "nobindmount" variant to create chroots without bind-mounting > any filesystem. Main use case is chroot for subhurds [0].
I'm currently having a look at all this, and I am considering applying the attached patch instead. The scratchbox variant does not call setup_proc, which I believe is what you'd want for a subhurd. We just need to wait a bit for the just-uploaded 0.7.git20160214-2 hurd package (which drops setting up /proc in setup-translators, now that sysvinit mounts it at boot, which should avoid the schroot issues). Samuel
diff --git a/functions b/functions index be4919f..3b8473d 100644 --- a/functions +++ b/functions @@ -1021,6 +1021,13 @@ setup_proc () { fi ;; hurd*) + # firmlink $TARGET/{dev,servers,proc} to the system ones. + umount_on_exit /dev + umount_on_exit /servers + umount_on_exit /proc + settrans -a $TARGET/dev /hurd/firmlink /dev + settrans -a $TARGET/servers /hurd/firmlink /servers + settrans -a $TARGET/proc /hurd/firmlink /proc ;; *) umount_on_exit /dev/pts @@ -1058,7 +1065,9 @@ setup_devices () { freebsd) mount -t devfs devfs $TARGET/dev ;; hurd*) - setup_devices_hurd ;; + # Use the setup-translators of the hurd package + in_target /usr/lib/hurd/setup-translators -k + ;; *) if true; then setup_devices_simple @@ -1088,14 +1097,6 @@ setup_devices_simple () { ln -s /proc/self/fd/2 $TARGET/dev/stderr } -setup_devices_hurd () { - # Use the setup-translators of the hurd package, and firmlink - # $TARGET/{dev,servers} to the system ones. - in_target /usr/lib/hurd/setup-translators -k - settrans -a $TARGET/dev /hurd/firmlink /dev - settrans -a $TARGET/servers /hurd/firmlink /servers -} - setup_devices_fakechroot () { rm -rf "$TARGET/dev" ln -s /dev "$TARGET"