[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v3 for 3.0 17/18] docker: perform basic binfmt_m
From: |
Fam Zheng |
Subject: |
Re: [Qemu-devel] [PATCH v3 for 3.0 17/18] docker: perform basic binfmt_misc validation in docker.py |
Date: |
Tue, 24 Jul 2018 15:50:57 +0800 |
On Wed, Jul 18, 2018 at 4:02 AM Alex Bennée <address@hidden> wrote:
>
> Setting up binfmt_misc is outside of the scope of the docker.py script
> but we can at least validate it with any given executable so we have a
> more useful error message than the sed line of deboostrap failing
> cryptically.
>
> Signed-off-by: Alex Bennée <address@hidden>
> Reported-by: Richard Henderson <address@hidden>
> ---
> tests/docker/docker.py | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/tests/docker/docker.py b/tests/docker/docker.py
> index 523f4b95a2..a3f5b0c1b0 100755
> --- a/tests/docker/docker.py
> +++ b/tests/docker/docker.py
> @@ -112,6 +112,31 @@ def _copy_binary_with_libs(src, dest_dir):
> so_path = os.path.dirname(l)
> _copy_with_mkdir(l , dest_dir, so_path)
>
> +
> +def _check_binfmt_misc(executable):
> + """Check binfmt_misc has entry for executable in the right place.
> +
> + The details of setting up binfmt_misc are outside the scope of
> + this script but we should at least fail early with a useful
> + message if it won't work."""
> +
> + binary = os.path.basename(executable)
> + binfmt_entry = "/proc/sys/fs/binfmt_misc/%s" % (binary)
> +
> + if not os.path.exists(binfmt_entry):
> + print ("No binfmt_misc entry for %s" % (binary))
> + return False
> +
> + with open(binfmt_entry) as x: entry = x.read()
> +
> + qpath = "/usr/bin/%s" % (binary)
Is it intended to hardcode this to /usr/bin? I thought we were more
flexible than that..
Fam
> + 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
> +
> +
> def _read_qemu_dockerfile(img_name):
> # special case for Debian linux-user images
> if img_name.startswith("debian") and img_name.endswith("user"):
> @@ -315,6 +340,11 @@ class BuildCommand(SubCommand):
> # Create a docker context directory for the build
> docker_dir = tempfile.mkdtemp(prefix="docker_build")
>
> + # Validate binfmt_misc will work
> + if args.include_executable:
> + if not _check_binfmt_misc(args.include_executable):
> + return 1
> +
> # Is there a .pre file to run in the build context?
> docker_pre = os.path.splitext(args.dockerfile)[0]+".pre"
> if os.path.exists(docker_pre):
> --
> 2.17.1
>
- [Qemu-devel] [PATCH v3 for 3.0 11/18] docker: add expansion for docker-test-FOO to Makefile.include, (continued)
- [Qemu-devel] [PATCH v3 for 3.0 11/18] docker: add expansion for docker-test-FOO to Makefile.include, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 10/18] docker: add test-unit runner, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 07/18] docker: gracefully skip check_qemu, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 12/18] docker: drop QEMU_TARGET check, fallback in EXECUTABLE not set, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 18/18] tests/tcg: remove runcom test, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 09/18] docker: disable debian-powerpc-user-cross, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 15/18] docker: add commentary to debian-bootstrap.docker, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 16/18] docker: ignore distro versioning of debootstrap, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 17/18] docker: perform basic binfmt_misc validation in docker.py, Alex Bennée, 2018/07/17
- Re: [Qemu-devel] [PATCH v3 for 3.0 17/18] docker: perform basic binfmt_misc validation in docker.py,
Fam Zheng <=
- [Qemu-devel] [PATCH v3 for 3.0 13/18] docker: add --hint to docker.py check, Alex Bennée, 2018/07/17
- [Qemu-devel] [PATCH v3 for 3.0 14/18] docker: Update debootstrap script after Debian migration from Alioth to Salsa, Alex Bennée, 2018/07/17
- Re: [Qemu-devel] [PATCH v3 for 3.0 00/18] docker fixes (and one tcg test tweak), Alex Bennée, 2018/07/23