Hello, Putting a more eye-catching title :)
Samuel Johannes Schauer Marin Rodrigues, le lun. 15 juil. 2024 11:38:37 +0200, a ecrit: > Hi, > > Quoting Johannes Schauer Marin Rodrigues (2024-05-21 11:50:25) > > In any case, things go much further now. The next problem is some missing > > DPKG_ROOT support in the hurd maintainer script. I opened a merge request > > here: > > > > https://salsa.debian.org/hurd-team/hurd/-/merge_requests/1 > > thank you for uploading a new version of the hurd package including these > DPKG_ROOT changes! I just confirmed that these indeed do work as intended and > it is now possible to create minimal hurd tarballs containing kernel and > sysvinit using chrootless mode on linux like this: > > mmdebstrap --variant=apt \ > > --include=passwd,debian-ports-archive-keyring,mmdebstrap,sysvinit-core,sysv-rc > \ > --customize-hook='chroot "$1" mmdebstrap \ > --mode=chrootless --arch=hurd-i386 \ > > --include=sysvinit-core,sysv-rc,debian-ports-archive-keyring,gnumach-image-1-486 > \ > --variant=apt \ > unstable /tmp/chroot.tar \ > "deb http://ftp.ports.debian.org/debian-ports/ unstable main" \ > "deb http://ftp.ports.debian.org/debian-ports/ unreleased > main"' \ > --customize-hook='copy-out /tmp/chroot.tar .'\ > unstable /dev/null > > We could turn these tarballs into an ext4 file system but that would not be > very useful yet, because all the translators would be missing from it. I was > told by Samuel Thibault that since recently, translators are stored in > extended > attributes, namely in the gnu.translator xattr. So it should be possible to > mimic what settrans does on Hurd on Linux using setxattr(2) or, in shell, > setfattr(1). Namely, it should be possible to special-case the st() and md() > functions in /usr/lib/hurd/setup-translators, such that the script can be run > on Linux. > > To make sure that my settrans replacement on Linux does the right thing, I > wanted to investigate how the extended attribute values look like on Hurd. For > that purpose, I downloaded > https://cdimage.debian.org/cdimage/ports/stable/hurd-i386/debian-hurd-20230608.img > and also gnumach.gz, exec.static and ext2fs.static from the same location and > then ran the qemu vm like this: > > qemu-system-i386 -nographic -net user,hostfwd=tcp:127.0.0.1:2222-:22 -net > nic,model=e1000 \ > -m 1G -kernel gnumach -append 'root=device:hd0s2 console=com0' \ > --initrd './ext2fs.static > --multiboot-command-line=${kernel-command-line} --host-priv-port=${host-port} > --device-master-port=${device-port} --exec-server-task=${exec-task} -T typed > ${root} $(task-create) $(task-resume),./exec.static $(exec-task=task-create)' > \ > -drive file=debian-hurd-20230608.img,format=raw > > I put http://ftp.ports.debian.org/debian-ports/ unstable and unreleased main > into the apt sources.list and upgraded everything to the latest versions. Then > I turned the machine off, mounted the filesystem of the qemu vm and extracted > /boot/gnumach-1.8-486-up.gz, /hurd/exec.static and /hurd/ext2fs.static. I > gunzipped the gnumach kernel and then ran qemu again with the updated files. > Just to be sure, I ran /usr/lib/hurd/setup-translators -K again and powered > off > the machine. I then mounted the root filesystem and ran this: > > sudo getfattr --dump --match=- /mnt/hurd/* > > Unfortunately this came back empty. Should there not be extended attributes > attached? > > What could I be missing? > > Thanks! > > cheers, josch