* [PATCH v8 3/9] qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT
@ 2020-03-07 17:30 Unai Martinez-Corral
0 siblings, 0 replies; 2+ messages in thread
From: Unai Martinez-Corral @ 2020-03-07 17:30 UTC (permalink / raw)
To: qemu-devel; +Cc: riku.voipio, laurent
Allow to set options '--persistent' and/or '--credential' through
environment variables. If not defined, defaults are used ('no').
Anyway, command-line arguments have priority over environment variables.
Signed-off-by: Unai Martinez-Corral <unai.martinezcorral@ehu.eus>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
scripts/qemu-binfmt-conf.sh | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 75eb19c3bf..347cddf698 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -190,9 +190,11 @@ Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU]
(default: $SYSTEMDDIR or $DEBIANDIR)
--credential: if present, credential and security tokens are
calculated according to the binary to interpret
+ (QEMU_CREDENTIAL=yes)
--persistent: if present, the interpreter is loaded when binfmt is
configured and remains in memory. All future uses
are cloned from the open file.
+ (QEMU_PERSISTENT=yes)
To import templates with update-binfmts, use :
@@ -259,10 +261,10 @@ qemu_check_systemd() {
qemu_generate_register() {
flags=""
- if [ "x$CREDENTIAL" = "xyes" ] ; then
+ if [ "x$QEMU_CREDENTIAL" = "xyes" ] ; then
flags="OC"
fi
- if [ "x$PERSISTENT" = "xyes" ] ; then
+ if [ "x$QEMU_PERSISTENT" = "xyes" ] ; then
flags="${flags}F"
fi
@@ -285,7 +287,7 @@ package qemu-$cpu
interpreter $qemu
magic $magic
mask $mask
-credential $CREDENTIAL
+credential $QEMU_CREDENTIAL
EOF
}
@@ -324,8 +326,10 @@ SYSTEMDDIR="/etc/binfmt.d"
DEBIANDIR="/usr/share/binfmts"
QEMU_PATH=/usr/local/bin
-CREDENTIAL=no
-PERSISTENT=no
+
+QEMU_PERSISTENT="${QEMU_PERSISTENT:-no}"
+QEMU_CREDENTIAL="${QEMU_CREDENTIAL:-no}"
+
QEMU_SUFFIX=""
options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,credential,persistent -- "$@")
@@ -377,10 +381,10 @@ while true ; do
exit 1
;;
-c|--credential)
- CREDENTIAL="yes"
+ QEMU_CREDENTIAL="yes"
;;
-p|--persistent)
- PERSISTENT="yes"
+ QEMU_PERSISTENT="yes"
;;
*)
break
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread* [PATCH v8 0/9] qemu-binfmt-conf.sh
@ 2020-03-07 17:04 unai.martinezcorral
2020-03-07 18:45 ` [PATCH v8 3/9] qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT Unai Martinez-Corral
0 siblings, 1 reply; 2+ messages in thread
From: unai.martinezcorral @ 2020-03-07 17:04 UTC (permalink / raw)
To: qemu-devel; +Cc: riku.voipio, laurent
Hi,
This series reworks qemu-binfmt-conf.sh:
* Argument <CPU> from option '--systemd' is generalized to <TARGETS>, and it is
accepted for any mode (default, debian or systemd). It can be a single target
arch or a list of them.
* Option '-r|--clear' is added, which allows to remove an already registered
target interpreter or a list of them. The implementation is functional but
partial. Please, see the corresponding commit.
* Option '-t|--test' is added, which allows to execute the CHECK according
to the provided arguments, but no interpreter is configured.
* Support to set options through environment variables: QEMU_TARGETS, QEMU_PATH,
QEMU_SUFFIX, QEMU_PERSISTENT, QEMU_CREDENTIAL, QEMU_CLEAR and QEMU_TEST.
The following changes are not backward compatible:
* Option '--persistent' no longer requires/accepts an argument.
* Option '--credential' no longer requires/accepts an argument.
* Option '--systemd' no longer requires/accepts an argument.
* Option '--qemu-path' is renamed to '--path'.
* Option '--qemu-suffix' is renamed to '--suffix'.
The functionality of all of them is untouched. Changes are related to syntax only.
v8:
* Fix typos and address review comments
v7:
* Check that a interpreter exists before trying to remove it.
v6:
* Don't need to use "find".
* Put the ";;" at the same position.
* Set BINFMT_CLEAR to ':', to allow --test to work with --clear.
* Do not show DEBIANDIR and SYSTEMDDIR in the Env-variable column.
Based on:
* [PATCH v5 0/10] qemu-binfmt-conf.sh
* should have been [PATCH v5 0/9] qemu-binfmt-conf.sh
* [PATCH v4 0/10] qemu-binfmt-conf.sh
* [PATCH v3 0/10] qemu-binfmt-conf.sh
* [PATCH v2] qemu-binfmt-conf.sh: add CPUS, add --reset, make -p and -c boolean (no arg)
* [PATCH] qemu-binfmt-conf.sh: add CPUS, add --reset, make -p and -c boolean (no arg)
* scripts/qemu-binfmt-conf.sh: allow clearing of entries
Regards
Unai Martinez-Corral (9):
qemu-binfmt-conf.sh: enforce safe style consistency
qemu-binfmt-conf.sh: make opts -p and -c boolean
qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT
qemu-binfmt-conf.sh: use the same presentation format as for qemu-*
qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options
qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX
qemu-binfmt-conf.sh: generalize <CPU> to positional TARGETS
qemu-binfmt-conf.sh: add option --clear
qemu-binfmt-conf.sh: add --test
scripts/qemu-binfmt-conf.sh | 211
1 file changed, 133 insertions(+), 78 deletions(-)
^ permalink raw reply [flat|nested] 2+ messages in thread* [PATCH v8 3/9] qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT
2020-03-07 17:04 [PATCH v8 0/9] qemu-binfmt-conf.sh unai.martinezcorral
@ 2020-03-07 18:45 ` Unai Martinez-Corral
0 siblings, 0 replies; 2+ messages in thread
From: Unai Martinez-Corral @ 2020-03-07 18:45 UTC (permalink / raw)
To: qemu-devel; +Cc: riku.voipio, laurent
Allow to set options '--persistent' and/or '--credential' through
environment variables. If not defined, defaults are used ('no').
Anyway, command-line arguments have priority over environment variables.
Signed-off-by: Unai Martinez-Corral <unai.martinezcorral@ehu.eus>
Reviewed-by: Laurent Vivier <laurent@vivier.eu>
---
scripts/qemu-binfmt-conf.sh | 18 +++++++++++-------
1 file changed, 11 insertions(+), 7 deletions(-)
diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh
index 75eb19c3bf..347cddf698 100755
--- a/scripts/qemu-binfmt-conf.sh
+++ b/scripts/qemu-binfmt-conf.sh
@@ -190,9 +190,11 @@ Usage: qemu-binfmt-conf.sh [--qemu-path PATH][--debian][--systemd CPU]
(default: $SYSTEMDDIR or $DEBIANDIR)
--credential: if present, credential and security tokens are
calculated according to the binary to interpret
+ (QEMU_CREDENTIAL=yes)
--persistent: if present, the interpreter is loaded when binfmt is
configured and remains in memory. All future uses
are cloned from the open file.
+ (QEMU_PERSISTENT=yes)
To import templates with update-binfmts, use :
@@ -259,10 +261,10 @@ qemu_check_systemd() {
qemu_generate_register() {
flags=""
- if [ "x$CREDENTIAL" = "xyes" ] ; then
+ if [ "x$QEMU_CREDENTIAL" = "xyes" ] ; then
flags="OC"
fi
- if [ "x$PERSISTENT" = "xyes" ] ; then
+ if [ "x$QEMU_PERSISTENT" = "xyes" ] ; then
flags="${flags}F"
fi
@@ -285,7 +287,7 @@ package qemu-$cpu
interpreter $qemu
magic $magic
mask $mask
-credential $CREDENTIAL
+credential $QEMU_CREDENTIAL
EOF
}
@@ -324,8 +326,10 @@ SYSTEMDDIR="/etc/binfmt.d"
DEBIANDIR="/usr/share/binfmts"
QEMU_PATH=/usr/local/bin
-CREDENTIAL=no
-PERSISTENT=no
+
+QEMU_PERSISTENT="${QEMU_PERSISTENT:-no}"
+QEMU_CREDENTIAL="${QEMU_CREDENTIAL:-no}"
+
QEMU_SUFFIX=""
options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,qemu-path:,qemu-suffix:,exportdir:,help,credential,persistent -- "$@")
@@ -377,10 +381,10 @@ while true ; do
exit 1
;;
-c|--credential)
- CREDENTIAL="yes"
+ QEMU_CREDENTIAL="yes"
;;
-p|--persistent)
- PERSISTENT="yes"
+ QEMU_PERSISTENT="yes"
;;
*)
break
--
2.25.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-03-07 18:46 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-03-07 17:30 [PATCH v8 3/9] qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT Unai Martinez-Corral
-- strict thread matches above, loose matches on Subject: below --
2020-03-07 17:04 [PATCH v8 0/9] qemu-binfmt-conf.sh unai.martinezcorral
2020-03-07 18:45 ` [PATCH v8 3/9] qemu-binfmt-conf.sh: add QEMU_CREDENTIAL and QEMU_PERSISTENT Unai Martinez-Corral
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.