I could not see the indentation problems you mentioned before. Hope it is fixed in v7 anyway.
El mar., 12 mar. 2019 a las 20:56, Laurent Vivier (<laur...@vivier.eu>) escribió: > > On 12/03/2019 20:54, Unai Martinez-Corral wrote: > > This is a partial implementation. > > > > Allows to remove a single or a list of already registered binfmt > > interpreters. Valid values are those in qemu_target_list. > > If TARGETS is empty, all the existing 'qemu-*' interpreters are > > removed. > > > > This is partial because 'debian' and 'systemd' configurations are not > > supported. The script will exit with error 'option clear not > > implemented for this mode yet'. > > > > Removal is done by printing '-1' as explained at: > > https://www.kernel.org/doc/Documentation/admin-guide/binfmt-misc.rst > > > > Signed-off-by: Unai Martinez-Corral <unai.martinezcor...@ehu.eus> > > --- > > scripts/qemu-binfmt-conf.sh | 36 ++++++++++++++++++++++++++++++++++-- > > 1 file changed, 34 insertions(+), 2 deletions(-) > > > > diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh > > index 5d6535bfc9..16c48e13a8 100755 > > --- a/scripts/qemu-binfmt-conf.sh > > +++ b/scripts/qemu-binfmt-conf.sh > > @@ -197,7 +197,7 @@ Options and associated environment variables: > > > > Argument Env-variable Description > > TARGETS QEMU_TARGETS A single arch name or a list of > > them (see all names below); > > - if empty, configure all known > > targets; > > + if empty, configure/clear all known > > targets; > > if 'NONE', no interpreter is > > configured. > > -h|--help display this usage > > -Q|--path PATH QEMU_PATH set path to qemu interpreter(s) > > @@ -206,6 +206,8 @@ TARGETS QEMU_TARGETS A single arch > > name or a list of them (see > > uses are cloned from the open file. > > -c|--credential QEMU_CREDENTIAL (yes) credential and security > > tokens are calculated according > > to the binary to interpret > > +-r|--clear QEMU_CLEAR (yes) remove registered interpreters > > for target TARGETS; > > + then exit. > > -e|--exportdir PATH define where to write configuration > > files > > (default: $SYSTEMDDIR or $DEBIANDIR) > > -s|--systemd don't write into /proc, generate > > file(s) for > > @@ -218,6 +220,7 @@ QEMU_PATH=$QEMU_PATH > > QEMU_SUFFIX=$QEMU_SUFFIX > > QEMU_PERSISTENT=$QEMU_PERSISTENT > > QEMU_CREDENTIAL=$QEMU_CREDENTIAL > > +QEMU_CLEAR=$QEMU_CLEAR > > > > To import templates with update-binfmts, use : > > > > @@ -344,8 +347,22 @@ qemu_set_binfmts() { > > done > > } > > > > +qemu_clear_notimplemented() { > > + echo "ERROR: option clear not implemented for this mode yet" 1>&2 > > + usage > > + exit 1 > > +} > > + > > +qemu_clear_interpreter() { > > + p="/proc/sys/fs/binfmt_misc/$1" > > + if [ -f "$p" ] ; then > > + printf %s -1 > "$p" > > + fi > > +} > > + > > CHECK=qemu_check_bintfmt_misc > > BINFMT_SET=qemu_register_interpreter > > +BINFMT_CLEAR=qemu_clear_interpreter > > > > SYSTEMDDIR="/etc/binfmt.d" > > DEBIANDIR="/usr/share/binfmts" > > @@ -355,20 +372,26 @@ QEMU_PATH="${QEMU_PATH:-/usr/local/bin}" > > QEMU_SUFFIX="${QEMU_SUFFIX:-}" > > QEMU_PERSISTENT="${QEMU_PERSISTENT:-no}" > > QEMU_CREDENTIAL="${QEMU_CREDENTIAL:-no}" > > +QEMU_CLEAR="${QEMU_CLEAR:-no}" > > > > -options=$(getopt -o dsQ:S:e:hcp -l > > debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- "$@") > > +options=$(getopt -o rdsQ:S:e:hcp -l > > clear,debian,systemd,path:,suffix:,exportdir:,help,credential,persistent -- > > "$@") > > eval set -- "$options" > > > > while true ; do > > case "$1" in > > + -r|--clear) > > + QEMU_CLEAR="yes" > > + ;; > > -d|--debian) > > CHECK=qemu_check_debian > > BINFMT_SET=qemu_generate_debian > > + BINFMT_CLEAR=qemu_clear_notimplemented > > EXPORTDIR=${EXPORTDIR:-$DEBIANDIR} > > ;; > > -s|--systemd) > > CHECK=qemu_check_systemd > > BINFMT_SET=qemu_generate_systemd > > + BINFMT_CLEAR=qemu_clear_notimplemented > > EXPORTDIR=${EXPORTDIR:-$SYSTEMDDIR} > > ;; > > -Q|--path) > > @@ -403,4 +426,13 @@ done > > shift > > > > $CHECK > > + > > +if [ "x$QEMU_CLEAR" = "xyes" ] ; then > > + qemu_check_target_list "$@" > > + for t in $checked_target_list ; do > > + $BINFMT_CLEAR "qemu-$t" > > + done > > + exit > > +fi > > + > > qemu_set_binfmts "$@" > > -- > > 2.21.0 > > > > Reviewed-by: Laurent Vivier <laur...@vivier.eu> >