From patchwork Sat Mar 7 17:34:09 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Unai Martinez Corral X-Patchwork-Id: 1250928 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ehu.eus Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48ZWnl357Sz9sPK for ; Sun, 8 Mar 2020 04:34:35 +1100 (AEDT) Received: from localhost ([::1]:51162 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdLN-00087Q-Bo for incoming@patchwork.ozlabs.org; Sat, 07 Mar 2020 12:34:33 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:53850) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdL4-00084e-GF for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:34:15 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAdL2-0004qU-Cg for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:34:13 -0500 Received: from smtp.lg.ehu.es ([158.227.0.66]:54751 helo=smtp.ehu.eus) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jAdL2-0004pT-1H for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:34:12 -0500 Received: from imsva1.lgp.ehu.es (imsva1.lgp.ehu.es [10.0.3.245]) by postfix.smtp1.imsva1 (Postfix) with ESMTPS id 9765835F1E; Sat, 7 Mar 2020 18:34:10 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 5F30D11004A; Sat, 7 Mar 2020 18:34:10 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 53501110045; Sat, 7 Mar 2020 18:34:10 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.73]) by imsva1.lgp.ehu.es (Postfix) with ESMTPS; Sat, 7 Mar 2020 18:34:10 +0100 (CET) Received: from afee69d503a7 (unknown [81.0.0.187]) by smtp1 (Postfix) with ESMTPSA id 0F4D735F1E; Sat, 7 Mar 2020 18:34:10 +0100 (CET) Date: Sat, 7 Mar 2020 17:34:09 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Subject: [PATCH v8 5/9] qemu-binfmt-conf.sh: remove 'qemu' prefix from cli options Message-ID: <20200307173409.GE9@afee69d503a7> MIME-Version: 1.0 Content-Disposition: inline X-Greylist: ACL 184 matched, not delayed by milter-greylist-4.6.2 (smtp1 [10.0.100.73]); Sat, 07 Mar 2020 18:34:10 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.5.0.1020-25276.001 X-TM-AS-Result: No-0.609-7.0-31-10 X-imss-scan-details: No-0.609-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.5.1020-25276.001 X-TMASE-Result: 10-0.609300-10.000000 X-TMASE-MatchedRID: mafpUJSAc1A8mRT0SYY6fqS9pC14MC3CUHV7v8X++rndQ2cXpbDqBU/O fkh/+AL4f9zrAY3MatNqAxBaFFZ85HTKrg3nLjv1If0TE1VduNsmOLJFRlRlklezEE205dNv5sc /I6vXY93xhWafZnqM5YhJUX5c5pgUkJIJE4kX5BSK2+RZ4/fWSVJtXEGMtLPHlwV2iaAfSWf+xO hjarOnHl67qWU6gzsGecNBGrkKJkf3FLeZXNZS4IzHo47z5Aa+gJvqVR3z499a6iv/OQVyBg6Nc S54sl2E0KaT92v5dkgc65uI/oOh8X18wnYDXeXioLRvhTZkSBeFkTLqA1tMMYopQVbJ8EMLCehC vRokedzR6A9/75PVP9h1s6Q8V93dpazx64v3JfnDyDYcE1wXmQ== X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 X-Greylist: Sender IP whitelisted, Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (postfix.smtp1.imsva1 [10.0.100.73]); Sat, 07 Mar 2020 18:34:10 +0100 (CET) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 158.227.0.66 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: riku.voipio@iki.fi, laurent@vivier.eu Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This breaks backward compatibility. Options 'qemu-path' and 'qemu-suffix' have the 'qemu-' prefix, which is not present in other option names ('debian', 'systemd', 'persistent', 'credential'...). In order to keep consistency, the prefix is removed. Signed-off-by: Unai Martinez-Corral Reviewed-by: Laurent Vivier --- scripts/qemu-binfmt-conf.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 251a78a2ce..2a035394e0 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -171,6 +171,7 @@ qemu_get_family() { usage() { cat < X-Patchwork-Id: 1250930 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ehu.eus Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48ZWs04sgXz9sPK for ; Sun, 8 Mar 2020 04:37:24 +1100 (AEDT) Received: from localhost ([::1]:51200 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdO6-0001ma-Kf for incoming@patchwork.ozlabs.org; Sat, 07 Mar 2020 12:37:22 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54169) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdNf-0001mU-HK for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:36:56 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAdNe-0000Hk-Gx for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:36:55 -0500 Received: from smtp.lg.ehu.es ([158.227.0.66]:60163 helo=smtp.ehu.eus) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jAdNe-0000Db-6R for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:36:54 -0500 Received: from imsva1.lgp.ehu.es (imsva1.lgp.ehu.es [10.0.3.245]) by postfix.smtp1.imsva1 (Postfix) with ESMTPS id DCF6035F1E; Sat, 7 Mar 2020 18:36:52 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id A611E11004A; Sat, 7 Mar 2020 18:36:52 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 9AA34110045; Sat, 7 Mar 2020 18:36:52 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.73]) by imsva1.lgp.ehu.es (Postfix) with ESMTPS; Sat, 7 Mar 2020 18:36:52 +0100 (CET) Received: from afee69d503a7 (unknown [81.0.0.187]) by smtp1 (Postfix) with ESMTPSA id 53A7335F1E; Sat, 7 Mar 2020 18:36:52 +0100 (CET) Date: Sat, 7 Mar 2020 17:36:51 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Subject: [PATCH v8 6/9] qemu-binfmt-conf.sh: honour QEMU_PATH and/or QEMU_SUFFIX Message-ID: <20200307173651.GG9@afee69d503a7> MIME-Version: 1.0 Content-Disposition: inline X-Greylist: ACL 184 matched, not delayed by milter-greylist-4.6.2 (smtp1 [10.0.100.73]); Sat, 07 Mar 2020 18:36:52 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.5.0.1020-25276.001 X-TM-AS-Result: No-1.584-7.0-31-10 X-imss-scan-details: No-1.584-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.5.1020-25276.001 X-TMASE-Result: 10-1.583800-10.000000 X-TMASE-MatchedRID: GnNqJBi8oAc8mRT0SYY6fo6MisxJraxHnVQTrXdqB1rGkE1bT11zTEAc 6DyoS2rIKnoLoDc7CX1BeUNELByi+Zuzp0H1hWRJKrDHzH6zmUVMhH/KpYxyu2i2BhDPfjxnlMa 9Q0Vx5vSl0s9gTN4+NVzc1M3vHBo4o8WMkQWv6iXpKNrfYIUgLIcyJo642SRt3QfwsVk0Ubswam AE0joFo3v7tGjo/RCgb27SfOf4chGXqLgVQe62XbcuIVRx+i5Y8+54JDPVpgFglVq98kHkwPOk6 4IdZi+jGkBNuNp9w/i1B3ioICg1fxuJyuskHg4AzM2FBO7i4hJRYW5hfzhEW0CLmZDDvMfd0hli /KDwoy1+3BndfXUhXQ== X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 X-Greylist: Sender IP whitelisted, Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (postfix.smtp1.imsva1 [10.0.100.73]); Sat, 07 Mar 2020 18:36:52 +0100 (CET) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 158.227.0.66 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: riku.voipio@iki.fi, laurent@vivier.eu Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" Allow to set 'path' or 'suffix' through environment variables, consistently with 'persistent' and 'credential'. Signed-off-by: Unai Martinez-Corral Reviewed-by: Laurent Vivier --- scripts/qemu-binfmt-conf.sh | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 2a035394e0..80ec164eab 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -181,7 +181,7 @@ Options and associated environment variables: Argument Env-variable Description -h|--help display this usage -Q|--path PATH QEMU_PATH set path to qemu interpreter(s) --F|--suffix SUFFIX add a suffix to the default interpreter name +-F|--suffix SUFFIX QEMU_SUFFIX add a suffix to the default interpreter name -p|--persistent QEMU_PERSISTENT (yes) load the interpreter and keep it in memory; all future uses are cloned from the open file. -c|--credential QEMU_CREDENTIAL (yes) credential and security tokens are calculated according @@ -195,6 +195,7 @@ Argument Env-variable Description Defaults: QEMU_PATH=$QEMU_PATH +QEMU_SUFFIX=$QEMU_SUFFIX QEMU_PERSISTENT=$QEMU_PERSISTENT QEMU_CREDENTIAL=$QEMU_CREDENTIAL @@ -327,13 +328,11 @@ BINFMT_SET=qemu_register_interpreter SYSTEMDDIR="/etc/binfmt.d" DEBIANDIR="/usr/share/binfmts" -QEMU_PATH=/usr/local/bin - +QEMU_PATH="${QEMU_PATH:-/usr/local/bin}" +QEMU_SUFFIX="${QEMU_SUFFIX:-}" QEMU_PERSISTENT="${QEMU_PERSISTENT:-no}" QEMU_CREDENTIAL="${QEMU_CREDENTIAL:-no}" -QEMU_SUFFIX="" - options=$(getopt -o ds:Q:S:e:hcp -l debian,systemd:,path:,suffix:,exportdir:,help,credential,persistent -- "$@") eval set -- "$options" From patchwork Sat Mar 7 17:41:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Unai Martinez Corral X-Patchwork-Id: 1250931 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ehu.eus Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48ZWyD5wm9z9sPJ for ; Sun, 8 Mar 2020 04:41:56 +1100 (AEDT) Received: from localhost ([::1]:51244 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdSU-00048N-Op for incoming@patchwork.ozlabs.org; Sat, 07 Mar 2020 12:41:54 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:54790) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdSC-00048C-Vo for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:41:38 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAdSA-00046y-Rw for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:41:36 -0500 Received: from smtp.lg.ehu.es ([158.227.0.66]:14445 helo=smtp.ehu.eus) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jAdSA-0003zV-FY for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:41:34 -0500 Received: from imsva1.lgp.ehu.es (imsva1.lgp.ehu.es [10.0.3.245]) by postfix.smtp1.imsva1 (Postfix) with ESMTPS id 056C337D18; Sat, 7 Mar 2020 18:41:32 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id CE9DC11004A; Sat, 7 Mar 2020 18:41:31 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C17DF110045; Sat, 7 Mar 2020 18:41:31 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.73]) by imsva1.lgp.ehu.es (Postfix) with ESMTPS; Sat, 7 Mar 2020 18:41:31 +0100 (CET) Received: from afee69d503a7 (unknown [81.0.0.187]) by smtp1 (Postfix) with ESMTPSA id 6D33537D18; Sat, 7 Mar 2020 18:41:31 +0100 (CET) Date: Sat, 7 Mar 2020 17:41:30 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Subject: [PATCH v8 7/9] qemu-binfmt-conf.sh: generalize to positional [TARGETS] Message-ID: <20200307174130.GH9@afee69d503a7> MIME-Version: 1.0 Content-Disposition: inline X-Greylist: ACL 184 matched, not delayed by milter-greylist-4.6.2 (smtp1 [10.0.100.73]); Sat, 07 Mar 2020 18:41:31 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.5.0.1020-25276.001 X-TM-AS-Result: No--6.998-7.0-31-10 X-imss-scan-details: No--6.998-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.5.1020-25276.001 X-TMASE-Result: 10--6.998000-10.000000 X-TMASE-MatchedRID: nrHYWZvpVHs8mRT0SYY6fggKAWhuC2ojb6bRSg4rpzvnCThanP/ghHPB OaeKbK/+oLBWQm3Xk4ruUwVp7PnaAt6mdwOBRvHdweku330t3msk970gYOLoHXqm3WhT4L+kMrJ 18VCI8ftc9zRCuEq6hBseEDo3eR11BeNKlUefbYOSbFkwrmkQ4ktc8DbogbSEN2WxgvaD/zvwVK uSbLr8UjTz5aD5P/nAfEtOTuUcA9bRQdw4XFGJY2Fzg+No/uuNp1Pjcaldww1dmCn0mOn8zNY8Z /9YK9FIHZltZHq3316JylXyVqjzn3P1PdPbavOpbWsCUkrA4EnKIqAq0jIHigaYevV4zG3ZhOta jKU/o8zXTlm90lXFO7qojq4R9iDw/3sP+ok2e+YoSebb2328i+uLFZZYlisfQ6tklRJO9ij9bMg 3kSk56LG0WsdjH6wrKrauXd3MZDWXf5sC39gVVJFVR9JrQm2XD61E1PCtdJD/ZxLWCRuw8s++cy dLfhbO66XHIc5w+gc= X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 X-Greylist: Sender IP whitelisted, Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (postfix.smtp1.imsva1 [10.0.100.73]); Sat, 07 Mar 2020 18:41:32 +0100 (CET) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 158.227.0.66 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: riku.voipio@iki.fi, laurent@vivier.eu Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" This breaks brackward compatibility. Option '--systemd CPU' allows to register binfmt interpreters for a single target architecture or for 'ALL' (of them). This patch generalizes the approach to support it in any mode (default, '--debian' or '--systemd'). To do so, option 'systemd' is changed to be boolean (no args). Then, all the positional arguments are considered to be a list of target architectures. If no positional arguments are provided, all of the architectures in qemu_target_list are registered. Conversely, argument value 'NONE' allows to make a 'dry run' of the script. I.e., checks are executed according to the mode, but no interpreter is registered. Support QEMU_TARGETS environment variable, consistently with 'path', 'suffix', 'persistent' and 'credential', The supported formats are the same as for positional arguments, which have priority. If both the variable and the list of positional arguments are empty, defaults to qemu_target_list. Signed-off-by: Unai Martinez-Corral Reviewed-by: Laurent Vivier --- scripts/qemu-binfmt-conf.sh | 80 +++++++++++++++++++++---------------- 1 file changed, 46 insertions(+), 34 deletions(-) diff --git a/scripts/qemu-binfmt-conf.sh b/scripts/qemu-binfmt-conf.sh index 80ec164eab..d5d3484b58 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -6,6 +6,28 @@ ppc ppc64 ppc64le m68k mips mipsel mipsn32 mipsn32el mips64 mips64el \ sh4 sh4eb s390x aarch64 aarch64_be hppa riscv32 riscv64 xtensa xtensaeb \ microblaze microblazeel or1k x86_64" +# check if given TARGETS is/are in the supported target list +qemu_check_target_list() { + if [ $# -eq 0 ] ; then + checked_target_list="$qemu_target_list" + return + fi + unset checked_target_list + for target ; do + for cpu in $qemu_target_list ; do + if [ "x$cpu" = "x$target" ] ; then + checked_target_list="$checked_target_list $target" + break + fi + done + if [ "x$cpu" != "x$target" ] ; then + echo "ERROR: unknown CPU \"$target\"" 1>&2 + usage + exit 1 + fi + done +} + i386_magic='\x7fELF\x01\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x03\x00' i386_mask='\xff\xff\xff\xff\xff\xfe\xfe\x00\xff\xff\xff\xff\xff\xff\xff\xff\xfe\xff\xff\xff' i386_family=i386 @@ -171,14 +193,16 @@ qemu_get_family() { usage() { cat <&2 - usage - exit 1 - fi - fi ;; -Q|--path) shift @@ -394,5 +404,7 @@ while true ; do shift done +shift + $CHECK -qemu_set_binfmts +qemu_set_binfmts "$@" From patchwork Sat Mar 7 17:42:59 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Unai Martinez Corral X-Patchwork-Id: 1250932 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=nongnu.org (client-ip=209.51.188.17; helo=lists.gnu.org; envelope-from=qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=ehu.eus Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 48ZX065N4zz9sPJ for ; Sun, 8 Mar 2020 04:43:34 +1100 (AEDT) Received: from localhost ([::1]:51264 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdU4-0005VF-I9 for incoming@patchwork.ozlabs.org; Sat, 07 Mar 2020 12:43:32 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:55008) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jAdTc-0005It-2n for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:43:05 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1jAdTa-0007Ii-Ox for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:43:04 -0500 Received: from smtp.lg.ehu.es ([158.227.0.66]:18972 helo=smtp.ehu.eus) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1jAdTa-0007FB-DR for qemu-devel@nongnu.org; Sat, 07 Mar 2020 12:43:02 -0500 Received: from imsva1.lgp.ehu.es (imsva1.lgp.ehu.es [10.0.3.245]) by postfix.smtp1.imsva1 (Postfix) with ESMTPS id 08C183825B; Sat, 7 Mar 2020 18:43:01 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id C5E5011004A; Sat, 7 Mar 2020 18:43:00 +0100 (CET) Received: from imsva1.lgp.ehu.es (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id B9DED110045; Sat, 7 Mar 2020 18:43:00 +0100 (CET) Received: from smtp.ehu.eus (unknown [10.0.100.73]) by imsva1.lgp.ehu.es (Postfix) with ESMTPS; Sat, 7 Mar 2020 18:43:00 +0100 (CET) Received: from afee69d503a7 (unknown [81.0.0.187]) by smtp1 (Postfix) with ESMTPSA id 5E1F33825B; Sat, 7 Mar 2020 18:43:00 +0100 (CET) Date: Sat, 7 Mar 2020 17:42:59 +0000 From: Unai Martinez-Corral To: qemu-devel@nongnu.org Subject: [PATCH v8 8/9] qemu-binfmt-conf.sh: add option --clear Message-ID: <20200307174259.GI9@afee69d503a7> MIME-Version: 1.0 Content-Disposition: inline X-Greylist: ACL 184 matched, not delayed by milter-greylist-4.6.2 (smtp1 [10.0.100.73]); Sat, 07 Mar 2020 18:43:00 +0100 (CET) X-TM-AS-GCONF: 00 X-TM-AS-Product-Ver: IMSVA-9.1.0.1631-8.5.0.1020-25276.001 X-TM-AS-Result: No-1.776-7.0-31-10 X-imss-scan-details: No-1.776-7.0-31-10 X-TMASE-Version: IMSVA-9.1.0.1631-8.5.1020-25276.001 X-TMASE-Result: 10-1.775800-10.000000 X-TMASE-MatchedRID: nrHYWZvpVHs8mRT0SYY6fguB7zdAMUjAFTFJRL+t8UtUjspoiX02FwjJ M0WLRMJtiG9EhTRb6MgfqXaEwlcZyzMn84YoJAVUuoibJpHRrFny++SyyVe4t1eIuu+Gkot8loz PjvqwUQi9tSdZWvLKQKlaEvVRnyvLTIunQAI8qaIH9dSeYYY46tuO3HY6rheDLnnqtQwNeTZIak Kc12XuNGDQNB2SPBIhj0IvV7jlqDi2Kkcom9iYSIvqrlGw2G/kxEksT8U2vYNXsxBNtOXTb9nN+ wKqGAutUGOMO6MZ7Hcdcyf+46K2mXuK0oT3XHU2nFVnNmvv47vqobkz1A0A7atNdpFrZXd80A45 IAXRxM2oa9MPKG95wkC9kO2OSfgdBmjPEm4v5DMoSebb2328i+uLFZZYlisfQ6tklRJO9ij9bMg 3kSk56LG0WsdjH6wrKrauXd3MZDX371moSn0VOPVA6VtlTC888T1pEKV3C+bkEi3bCDx0UbYAPx 8FmtswEwR6GGfJ/2/NbMYCLmNDGnvq3yTFwiBxis4GCuL1lOQ0M/zQmBURphKGdgr8x4f4BBSv+ oarUQsKtuXWKSlXVpNHmClQkxEB+rL5VW+ofZc= X-TMASE-SNAP-Result: 1.821001.0001-0-1-12:0,22:0,33:0,34:0-0 X-Greylist: Sender IP whitelisted, Sender succeeded SMTP AUTH, not delayed by milter-greylist-4.6.2 (postfix.smtp1.imsva1 [10.0.100.73]); Sat, 07 Mar 2020 18:43:01 +0100 (CET) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 3.x [generic] [fuzzy] X-Received-From: 158.227.0.66 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: alex.bennee@linaro.org, riku.voipio@iki.fi, laurent@vivier.eu Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Sender: "Qemu-devel" 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 Reviewed-by: Laurent Vivier --- 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 d5d3484b58..9685456747 100755 --- a/scripts/qemu-binfmt-conf.sh +++ b/scripts/qemu-binfmt-conf.sh @@ -201,7 +201,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) @@ -210,6 +210,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 @@ -222,6 +224,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 : @@ -348,8 +351,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" @@ -359,20 +376,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) @@ -407,4 +430,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 "$@"