mirror of https://gitee.com/openkylin/qemu.git
tests: make docker.py update use configured binfmt path
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>
This commit is contained in:
parent
d6db2a1cdf
commit
7e81d19840
|
@ -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 @@ def run(self, args, argv):
|
|||
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
|
||||
|
|
Loading…
Reference in New Issue