All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Alex Bennée" <alex.bennee@linaro.org>
To: qemu-devel@nongnu.org
Cc: "Alex Bennée" <alex.bennee@linaro.org>,
	"Fam Zheng" <fam@euphon.net>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>
Subject: [Qemu-devel] [PATCH v1 06/14] tests: make docker.py update use configured binfmt path
Date: Fri, 25 Jan 2019 14:00:09 +0000	[thread overview]
Message-ID: <20190125140017.6092-7-alex.bennee@linaro.org> (raw)
In-Reply-To: <20190125140017.6092-1-alex.bennee@linaro.org>

When copying a QEMU binary into a linux-user docker image we should
check what the current configured binfmt_misc path is rather than
just assuming "/usr/bin/qemu-bin". Obviously if the user changes the
configuration afterwards they will break their images again.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
---
 tests/docker/docker.py | 25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 02d8a83847..30f463af9f 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -123,17 +123,17 @@ def _check_binfmt_misc(executable):
 
     if not os.path.exists(binfmt_entry):
         print ("No binfmt_misc entry for %s" % (binary))
-        return False
+        return None
 
     with open(binfmt_entry) as x: entry = x.read()
 
-    qpath = "/usr/bin/%s" % (binary)
-    if not re.search("interpreter %s\n" % (qpath), entry):
-        print ("binfmt_misc for %s does not point to %s" % (binary, qpath))
-        return False
-
-    return True
+    m = re.search("interpreter (\S+)\n", entry)
+    interp = m.group(1)
+    if interp and interp != executable:
+        print("binfmt_misc for %s does not point to %s, using %s" %
+              (binary, executable, interp))
 
+    return interp
 
 def _read_qemu_dockerfile(img_name):
     # special case for Debian linux-user images
@@ -394,9 +394,14 @@ class UpdateCommand(SubCommand):
         tmp = tempfile.NamedTemporaryFile(suffix="dckr.tar.gz")
         tmp_tar = TarFile(fileobj=tmp, mode='w')
 
-        # Add the executable to the tarball
-        bn = os.path.basename(args.executable)
-        ff = "/usr/bin/%s" % bn
+        # Add the executable to the tarball, using the current
+        # configured binfmt_misc path.
+        ff = _check_binfmt_misc(args.executable)
+        if not ff:
+            bn = os.path.basename(args.executable)
+            ff = "/usr/bin/%s" % bn
+            print ("No binfmt_misc configured: copied to %s" % (ff))
+
         tmp_tar.add(args.executable, arcname=ff)
 
         # Add any associated libraries
-- 
2.17.1

  parent reply	other threads:[~2019-01-25 14:00 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-01-25 14:00 [Qemu-devel] [PATCH v1 00/14] testing/next (binfmt_misc, vm-build and BSD CI) Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 01/14] .cirrus.yml: basic compile and test for FreeBSD Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 02/14] travis: stop requesting libffi & gettext from homebrew Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 03/14] MAINTAINERS: Add an entry for scripts/archive-source.sh Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 04/14] archive-source.sh: Clone the submodules locally Alex Bennée
2019-01-30 15:11   ` Daniel P. Berrangé
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 05/14] docker: disable Xen on CentOS 7 Alex Bennée
2019-01-25 14:04   ` Paolo Bonzini
2019-01-25 15:26     ` Alex Bennée
2019-01-25 15:27       ` Paolo Bonzini
2019-01-25 14:00 ` Alex Bennée [this message]
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 07/14] tests: make docker.py check for persistent configs Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 08/14] tests: docker.py be even smarter with persistent binfmt_misc Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 09/14] tests: PEP8 cleanup of docker.py, mostly white space Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 10/14] tests/vm: move images to $HOME/.cache/qemu-vm/images Alex Bennée
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 11/14] tests/vm: call make check directly for netbsd/freebsd/ubuntu.i386 Alex Bennée
2019-01-31 11:03   ` Philippe Mathieu-Daudé
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 12/14] tests/vm: add --build-target option Alex Bennée
2019-01-31 11:02   ` Philippe Mathieu-Daudé
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 13/14] tests/vm: expose BUILD_TARGET, TARGET_LIST and EXTRA_CONFIGURE_OPTS Alex Bennée
2019-01-31 11:03   ` Philippe Mathieu-Daudé
2019-01-25 14:00 ` [Qemu-devel] [PATCH v1 14/14] scripts/qemu.py: allow arches use KVM for their 32bit cousins Alex Bennée
2019-01-26  3:37   ` Eduardo Habkost
2019-01-26  7:37     ` Alex Bennée
2019-02-01  5:02 ` [Qemu-devel] [PATCH v1 00/14] testing/next (binfmt_misc, vm-build and BSD CI) no-reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190125140017.6092-7-alex.bennee@linaro.org \
    --to=alex.bennee@linaro.org \
    --cc=fam@euphon.net \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.