[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v4 8/10] qemu-binfmt-conf.sh: add option --clear
From: |
Unai Martinez Corral |
Subject: |
Re: [Qemu-devel] [PATCH v4 8/10] qemu-binfmt-conf.sh: add option --clear |
Date: |
Mon, 11 Mar 2019 14:19:34 +0100 |
2019/3/11 12:04, Laurent Vivier:
> > + find /proc/sys/fs/binfmt_misc/ -type f -name $names -exec sh -c
> > 'printf %s -1 > {}' \;
>
> The qemu-* will be expanded here if you have a qemu-XXX in the current
> directory. You must use "$names".
You are correct. Indeed, I had not spotted it because I introduced a
bug when renaming 'reset' to 'clear'. Precisely, '-c' was being used
twice: for 'credential' and for 'clear'. Both issues will be fixed in
the next version.
> But:
>
> To remove all, you can do:
> sh -c 'printf %s -1 > /proc/sys/fs/binfmt_misc/status'
>
> so something like
>
> if [ $# -eq 0 ] ; then
> sh -c 'printf %s -1 > /proc/sys/fs/binfmt_misc/status
> fi
> qemu_check_target_list $1
> for t in $checked_target_list ; do
> sh -c 'printf %s -1 > /proc/sys/fs/binfmt_misc/qemu-$t'
> done
Wouldn't writing to 'status' remove all the interpreters, and not only
those that correspond to qemu?
> But I think you should also taking care of the suffix.
I think that the suffix is not related to the entry in
'/proc/sys/fs/binfmt_misc/'. See, e.g.:
package qemu-$cpu
interpreter $qemu
So, independently of which is the executable (interpreter), the
package name does not include the suffix.
> > +if [ "x$QEMU_CLEAR" = "xyes" ] ; then
> > + case "$BINFMT_SET" in
> > + *debian) BINFMT_CLEAR=qemu_clear_notimplemented ;;
> > + *systemd) BINFMT_CLEAR=qemu_clear_notimplemented ;;
> > + *) BINFMT_CLEAR=qemu_clear_interpreter
> > + esac
>
> Put this in the previous case for decoding options, please.
It won't work. This if/case block requires all the options to be
already parsed and processed. If I put it in the case for '-r|--clear'
above, it will only work only when '-r' is given after '--debian' or
'--systemd'. Otherwise, BINFMT_SET will always be
qemu_register_interpreter when '-crear' is evaluated. I think that we
should not rely on the users providing the options in a specific
order.
Regards,
Unai
[Qemu-devel] [PATCH v4 9/10] qemu-binfmt-conf.sh: update usage(), Unai Martinez-Corral, 2019/03/11
[Qemu-devel] [PATCH v4 10/10] qemu-binfmt-conf.sh: add --test|--dry-run, Unai Martinez-Corral, 2019/03/11
Re: [Qemu-devel] [PATCH v4 0/10] qemu-binfmt-conf.sh, no-reply, 2019/03/11
Re: [Qemu-devel] [PATCH v4 0/10] qemu-binfmt-conf.sh, no-reply, 2019/03/11