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"

Reply via email to