bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Feeble attempt at using xattr gnu.translator


From: Jan Nieuwenhuizen
Subject: Feeble attempt at using xattr gnu.translator
Date: Sun, 10 May 2020 21:48:05 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)

Hello,

As part of the effort of creating vm-images for the Hurd using Guix, it
would be nice to use extended file attributes to set passive
translators.

In particular, it would be helpful if we could use

    setfattr --name=gnu.translator --value=/hurd/pfinet 1

That would allow us to boot right into Guile and skip a Bash script to
only to run

    settrans -c /servers/socket/1 /hurd/pflocal

Whether on GNU/Linux or on the Hurd (booted with
--x-xattr-translator-records and x-xattr-translator-records option in
fstab); almost nothing works.

The Hurd

    root@debian:~# cat /etc/fstab
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>       <dump>  <pass>
    /dev/hd0s2      /               ext2    defaults,x-xattr-translator-records 
0       1
    /dev/hd0s1      none            swap    sw              0       0
    /dev/hd2        /media/cdrom0   iso9660 noauto          0       0
    root@debian:~# fsysopts /
    ext2fs --writable --no-inherit-dir-group --x-xattr-translator-records 
--store-type=typed device:hd0s2
    root@debian:~# ps -ef --width=1000 | grep ext2
     -     5     2   -  0:02.98 ext2fs --readonly 
--multiboot-command-line=root=device:hd0s2 --host-priv-port=1 
--device-master-port=2 --exec-server-task=3 -T typed device:hd0s2 
--x-xattr-translator-records

so that seems OK?  Still, nothing seems to work

    root@debian:~# touch 1
    root@debian:~# mknod 2 c 0 0
    root@debian:~# setfattr --name=gnu.translator --value=/hurd/pfinet 1
    setfattr: 1: Invalid argument
    root@debian:~# setfattr --name=gnu.translator --value=/hurd/pfinet 2
    setfattr: 2: Invalid argument
    root@debian:~# setfattr --name=gnu.author --value=/hurd/pfinet 1
    setfattr: 1: Invalid argument
    root@debian:~# setfattr --name=gnu.author --value=/hurd/pfinet 2
    setfattr: 2: Invalid argument
    root@debian:~# setfattr --name=user.translator --value=/hurd/pfinet 1
    setfattr: 1: Operation not supported
    root@debian:~# setfattr --name=user.translator --value=/hurd/pfinet 2
    setfattr: 2: Operation not supported

On GNU/Linux, I only managed to set user.X, not gnu.translator

    root@dundal ~# touch 1
    root@dundal ~# mknod 2 c 0 0
    root@dundal ~# setfattr --name=gnu.translator --value=/hurd/pfinet 1
    setfattr: 1: Operation not supported
    root@dundal ~# setfattr --name=gnu.translator --value=/hurd/pfinet 2
    setfattr: 2: Operation not supported
    root@dundal ~# setfattr --name=gnu.author --value=/hurd/pfinet 1
    setfattr: 1: Operation not supported
    root@dundal ~# setfattr --name=gnu.author --value=/hurd/pfinet 2
    setfattr: 2: Operation not supported
    root@dundal ~# setfattr --name=user.translator --value=/hurd/pfinet 1
    root@dundal ~# setfattr --name=user.translator --value=/hurd/pfinet 2
    setfattr: 2: Operation not permitted

only one command succeeds, but that's next to useless (well, it suggests touch
could work and we don't need mknod).

This

    https://lists.gnu.org/archive/html/bug-hurd/2004-02/msg00108.html

is the only interesting piece of information I found; down the thread
there is a suggestion to try upstreaming.  I looked at the Linux sources
They seem to suggest that only a couple of namespaces are allowed (and
"gnu" is not one of them) but find them hard to read.

Greetings,
janneke

-- 
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com



reply via email to

[Prev in Thread] Current Thread [Next in Thread]