summary refs log tree commit diff stats
path: root/results/classifier/108/device/1835839
diff options
context:
space:
mode:
Diffstat (limited to 'results/classifier/108/device/1835839')
-rw-r--r--results/classifier/108/device/1835839284
1 files changed, 284 insertions, 0 deletions
diff --git a/results/classifier/108/device/1835839 b/results/classifier/108/device/1835839
new file mode 100644
index 00000000..7efb3d83
--- /dev/null
+++ b/results/classifier/108/device/1835839
@@ -0,0 +1,284 @@
+device: 0.948
+other: 0.947
+performance: 0.947
+permissions: 0.941
+semantic: 0.925
+PID: 0.923
+debug: 0.914
+boot: 0.909
+graphic: 0.904
+socket: 0.903
+files: 0.891
+network: 0.890
+vnc: 0.880
+KVM: 0.859
+
+qemu-user: $0 incorrectly always reports absolute path
+
+We just ran into an issue with the Perl package on Debian/m68k when being built with qemu-user [1].
+
+The problem can be boiled down to qemu-user always reporting absolute paths for the shell variable $0 no matter on how the command was invoked.
+
+A simple reproducer is this:
+
+On normal system (no emulation):
+
+root@nofan:~> sh -c 'echo $0'
+sh
+root@nofan:~>
+
+On qemu-user:
+
+(sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0'
+/bin/sh
+(sid-m68k-sbuild)root@nofan:/#
+
+> [1] https://lists.debian.org/debian-68k/2019/07/msg00007.html
+
+Tentative patch
+
+On 7/9/19 1:54 PM, Laurent Vivier wrote:
+> ** Patch added: "Enable binfmt-misc preserve-arg[0] flag"
+>    https://bugs.launchpad.net/qemu/+bug/1835839/+attachment/5275869/+files/0001-linux-user-manage-binfmt-misc-preserve-arg-0-flags.patch
+
+Thanks! I just tried the patch and ran the setup script with:
+
+./scripts/qemu-binfmt-conf.sh --debian --qemu-path=/usr/bin --qemu-suffix=-static --preserve-arg0 yes
+
+and:
+
+root@nofan:~/qemu> systemctl restart binfmt-support.service 
+root@nofan:~/qemu>
+
+But still don't get the correct path:
+
+(sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0'
+/bin/sh
+(sid-m68k-sbuild)root@nofan:/#
+
+Do I need to do anything else?
+
+-- 
+ .''`.  John Paul Adrian Glaubitz
+: :' :  Debian Developer - <email address hidden>
+`. `'   Freie Universitaet Berlin - <email address hidden>
+  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
+
+
+Is the proposed patch backwards compatible (ie "old QEMU binary works with newer binfmt-misc registration" and "new QEMU binary works with older binfmt-misc registration") ? Because binfmt-misc stuff is whole-system but QEMU binaries are per-chroot, this kind of thing is awkward to change if we don't have back-compat (and typically the kernel semantics for these things often don't allow back-compat or any kind of migration-path to the new better setup :-( )
+
+
+Le 09/07/2019 à 14:12, John Paul Adrian Glaubitz a écrit :
+> On 7/9/19 1:54 PM, Laurent Vivier wrote:
+>> ** Patch added: "Enable binfmt-misc preserve-arg[0] flag"
+>>    https://bugs.launchpad.net/qemu/+bug/1835839/+attachment/5275869/+files/0001-linux-user-manage-binfmt-misc-preserve-arg-0-flags.patch
+> 
+> Thanks! I just tried the patch and ran the setup script with:
+> 
+> ./scripts/qemu-binfmt-conf.sh --debian --qemu-path=/usr/bin --qemu-
+> suffix=-static --preserve-arg0 yes
+> 
+> and:
+> 
+> root@nofan:~/qemu> systemctl restart binfmt-support.service 
+> root@nofan:~/qemu>
+
+if you use systemctl, the parameter of "./scripts/qemu-binfmt-conf.sh"
+must be "--systemd m68k" rather than "--debian".
+
+> 
+> But still don't get the correct path:
+> 
+> (sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0'
+> /bin/sh
+> (sid-m68k-sbuild)root@nofan:/#
+
+Well, I've tested that, and it should work...
+
+Thanks,
+LAurent
+
+
+
+On 7/9/19 2:51 PM, Laurent Vivier wrote:
+> if you use systemctl, the parameter of "./scripts/qemu-binfmt-conf.sh"
+> must be "--systemd m68k" rather than "--debian".
+
+I tried that and I now get:
+
+root@nofan:/local_scratch/sid-m68k-sbuild> chroot .
+chroot: failed to run command ‘/bin/bash’: No such file or directory
+root@nofan:/local_scratch/sid-m68k-sbuild>
+
+>> But still don't get the correct path:
+>>
+>> (sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0'
+>> /bin/sh
+>> (sid-m68k-sbuild)root@nofan:/#
+> 
+> Well, I've tested that, and it should work...
+
+Oh, I'm not arguing that. I'm sure the error is on my side ;). I'm just trying
+to find out what I'm doing wrong.
+
+-- 
+ .''`.  John Paul Adrian Glaubitz
+: :' :  Debian Developer - <email address hidden>
+`. `'   Freie Universitaet Berlin - <email address hidden>
+  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
+
+
+Le 09/07/2019 à 14:16, Peter Maydell a écrit :
+> Is the proposed patch backwards compatible (ie "old QEMU binary works
+> with newer binfmt-misc registration" and "new QEMU binary works with
+> older binfmt-misc registration") ? Because binfmt-misc stuff is whole-
+> system but QEMU binaries are per-chroot, this kind of thing is awkward
+> to change if we don't have back-compat (and typically the kernel
+> semantics for these things often don't allow back-compat or any kind of
+> migration-path to the new better setup :-( )
+> 
+
+If you don't enable the preserve-arg[0] flag, old and new QEMU will work.
+
+If you enable the flag, only new QEMU with -0/QEMU_ARGV0 will work.
+
+The best solution would be to force preserve-arg[0] with open-binary
+flag and rely on AT_FDEXEC to detect the binfmt-misc environment, but
+this breaks compatibility with existing environment and old QEMU.
+
+Regarding the "binfmt-misc stuff is whole-system" problem, I've proposed
+months ago a kernel based solution [1] to have a configuration per
+namespace (chroot), but no one seems really interested (I think
+maintainer is afraid by potential security issues).
+
+[1] ns: introduce binfmt_misc namespace
+    https://patchwork.kernel.org/cover/10634807/
+
+
+Le 09/07/2019 à 15:07, John Paul Adrian Glaubitz a écrit :
+> On 7/9/19 2:51 PM, Laurent Vivier wrote:
+>> if you use systemctl, the parameter of "./scripts/qemu-binfmt-conf.sh"
+>> must be "--systemd m68k" rather than "--debian".
+> 
+> I tried that and I now get:
+> 
+> root@nofan:/local_scratch/sid-m68k-sbuild> chroot .
+> chroot: failed to run command ‘/bin/bash’: No such file or directory
+> root@nofan:/local_scratch/sid-m68k-sbuild>
+
+What is the content of:
+
+/etc/binfmt.d/qemu-m68k.conf
+/proc/sys/fs/binfmt_misc/qemu-m68k
+
+what is the result of "file sid-m68k-sbuild/usr/bin/qemu-m68k-static"?
+
+Bonus: if you don't want to copy qemu-m68k-static into the chroot, you
+can use "--persistent" with qemu-binfmt-conf.sh.
+
+Thanks,
+Laurent
+
+
+On 7/9/19 4:01 PM, Laurent Vivier wrote:
+> What is the content of:
+> 
+> /etc/binfmt.d/qemu-m68k.conf
+> /proc/sys/fs/binfmt_misc/qemu-m68k
+
+root@nofan:~> cat /etc/binfmt.d/qemu-m68k.conf
+:qemu-m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k-static:P
+root@nofan:~> cat /proc/sys/fs/binfmt_misc/qemu-m68k
+enabled
+interpreter /usr/bin/qemu-m68k-static
+flags: OCF
+offset 0
+magic 7f454c4601020100000000000000000000020004
+mask ffffffffffffff00fffffffffffffffffffeffff
+root@nofan:~>
+
+> what is the result of "file sid-m68k-sbuild/usr/bin/qemu-m68k-static"?
+> 
+> Bonus: if you don't want to copy qemu-m68k-static into the chroot, you
+> can use "--persistent" with qemu-binfmt-conf.sh.
+I'm doing that and I don't have a copy of qemu in the chroot.
+
+But I think I forgot to pass --persistent to the script while testing.
+
+Adrian
+
+-- 
+ .''`.  John Paul Adrian Glaubitz
+: :' :  Debian Developer - <email address hidden>
+`. `'   Freie Universitaet Berlin - <email address hidden>
+  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
+
+
+After building qemu-m68k, I did:
+
+root@nofan:~/qemu> scripts/qemu-binfmt-conf.sh --systemd m68k --qemu-path=/usr/bin --qemu-suffix=-static --preserve-arg0 yes --persistent yes
+Setting /usr/bin/qemu-m68k-static as binfmt interpreter for m68k for systemd-binfmt.service
+root@nofan:~/qemu> rm /usr/bin/qemu-m68k-static
+root@nofan:~/qemu> cp -av m68k-linux-user/qemu-m68k /usr/bin/qemu-m68k-static 
+'m68k-linux-user/qemu-m68k' -> '/usr/bin/qemu-m68k-static'
+root@nofan:~/qemu> systemctl restart binfmt-support.service 
+root@nofan:~/qemu> chroot /local_scratch/sid-m68k-sbuild/
+(sid-m68k-sbuild)root@nofan:/# sh -c 'echo $0'
+/bin/sh
+(sid-m68k-sbuild)root@nofan:/#
+
+-- 
+ .''`.  John Paul Adrian Glaubitz
+: :' :  Debian Developer - <email address hidden>
+`. `'   Freie Universitaet Berlin - <email address hidden>
+  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
+
+
+Le 09/07/2019 à 17:09, John Paul Adrian Glaubitz a écrit :
+> On 7/9/19 4:01 PM, Laurent Vivier wrote:
+>> What is the content of:
+>>
+>> /etc/binfmt.d/qemu-m68k.conf
+>> /proc/sys/fs/binfmt_misc/qemu-m68k
+> 
+> root@nofan:~> cat /etc/binfmt.d/qemu-m68k.conf
+> :qemu-m68k:M::\x7fELF\x01\x02\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x04:\xff\xff\xff\xff\xff\xff\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff:/usr/bin/qemu-m68k-static:P
+> root@nofan:~> cat /proc/sys/fs/binfmt_misc/qemu-m68k
+> enabled
+> interpreter /usr/bin/qemu-m68k-static
+> flags: OCF
+> offset 0
+> magic 7f454c4601020100000000000000000000020004
+> mask ffffffffffffff00fffffffffffffffffffeffff
+
+This is not consistent: you have 'P' in /etc/binfmt.d/qemu-m68k.conf but
+'OCF' in /proc/sys/fs/binfmt_misc/qemu-m68k.
+
+Check "systemctl status binfmt-support.service"
+
+With 'P' when you change the binary you must reload the configuration
+because the binary is loaded in memory once when the configuration is
+updated.
+
+Thanks,
+Laurent
+
+
+
+The QEMU project is currently considering to move its bug tracking to
+another system. For this we need to know which bugs are still valid
+and which could be closed already. Thus we are setting older bugs to
+"Incomplete" now.
+
+If you still think this bug report here is valid, then please switch
+the state back to "New" within the next 60 days, otherwise this report
+will be marked as "Expired". Or please mark it as "Fix Released" if
+the problem has been solved with a newer version of QEMU already.
+
+Thank you and sorry for the inconvenience.
+
+
+Laurent's patch has been included here:
+https://gitlab.com/qemu-project/qemu/-/commit/6e1c0d7b951e19c53b8467e8bc4b71ee73a394ea
+So I assume we can mark this as fixed now.
+