[Qemu-devel] [PULL 0/6] Some docker updates

Alex Bennée posted 6 patches 5 years, 10 months ago
Only 3 patches received!
Makefile                                           | 20 +++++++++----------
configure                                          | 19 +++++++++++++++++-
scripts/create_config                              |  2 +-
tests/Makefile.include                             |  2 +-
tests/docker/Makefile.include                      |  3 +++
tests/docker/docker.py                             | 18 +++++++++++++++++
.../docker/dockerfiles/debian-tricore-cross.docker | 23 ++++++++++++++++++++++
tests/docker/dockerfiles/fedora-i386-cross.docker  | 14 +++++++++++++
tests/docker/dockerfiles/fedora.docker             |  8 ++++----
tests/docker/test-mingw                            |  4 ++--
10 files changed, 94 insertions(+), 19 deletions(-)
create mode 100644 tests/docker/dockerfiles/debian-tricore-cross.docker
create mode 100644 tests/docker/dockerfiles/fedora-i386-cross.docker
[Qemu-devel] [PULL 0/6] Some docker updates
Posted by Alex Bennée 5 years, 10 months ago
The following changes since commit 1d889f2a8baaa265939b339d2f52ec57f5b8a09c:

  Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-06-05 15:22:07 +0100)

are available in the Git repository at:

  https://github.com/stsquad/qemu.git tags/pull-docker-updates-050618-1

for you to fetch changes up to 36dc5fedab0339afdeb3c40ff820c7e5ce334751:

  docker: add debian/tricore image (2018-06-05 16:25:43 +0100)

----------------------------------------------------------------
Docker related updates

  - configure/probe for docker
  - TARGET_DIRS -> TARGET_LIST cleanup
  - new fedora-i386-cross and debian/tricore images
  - test-mingw use SDL2/GTK3

----------------------------------------------------------------
Alex Bennée (2):
      docker: add "probe" command for configure
      configure: add test for docker availability

Fam Zheng (2):
      Makefile: Rename TARGET_DIRS to TARGET_LIST
      docker: Add fedora-i386-cross image

Paolo Bonzini (1):
      docker: test-mingw: use SDL2 and GTK+3

Philippe Mathieu-Daudé (1):
      docker: add debian/tricore image

 Makefile                                           | 20 +++++++++----------
 configure                                          | 19 +++++++++++++++++-
 scripts/create_config                              |  2 +-
 tests/Makefile.include                             |  2 +-
 tests/docker/Makefile.include                      |  3 +++
 tests/docker/docker.py                             | 18 +++++++++++++++++
 .../docker/dockerfiles/debian-tricore-cross.docker | 23 ++++++++++++++++++++++
 tests/docker/dockerfiles/fedora-i386-cross.docker  | 14 +++++++++++++
 tests/docker/dockerfiles/fedora.docker             |  8 ++++----
 tests/docker/test-mingw                            |  4 ++--
 10 files changed, 94 insertions(+), 19 deletions(-)
 create mode 100644 tests/docker/dockerfiles/debian-tricore-cross.docker
 create mode 100644 tests/docker/dockerfiles/fedora-i386-cross.docker


-- 
2.17.0


Re: [Qemu-devel] [PULL 0/6] Some docker updates
Posted by Peter Maydell 5 years, 10 months ago
On 5 June 2018 at 17:05, Alex Bennée <alex.bennee@linaro.org> wrote:
> The following changes since commit 1d889f2a8baaa265939b339d2f52ec57f5b8a09c:
>
>   Merge remote-tracking branch 'remotes/cody/tags/block-pull-request' into staging (2018-06-05 15:22:07 +0100)
>
> are available in the Git repository at:
>
>   https://github.com/stsquad/qemu.git tags/pull-docker-updates-050618-1
>
> for you to fetch changes up to 36dc5fedab0339afdeb3c40ff820c7e5ce334751:
>
>   docker: add debian/tricore image (2018-06-05 16:25:43 +0100)
>
> ----------------------------------------------------------------
> Docker related updates
>
>   - configure/probe for docker
>   - TARGET_DIRS -> TARGET_LIST cleanup
>   - new fedora-i386-cross and debian/tricore images
>   - test-mingw use SDL2/GTK3
>
> ----------------------------------------------------------------
Applied, thanks.

-- PMM

[Qemu-devel] [PULL 1/6] docker: add "probe" command for configure
Posted by Alex Bennée 5 years, 10 months ago
This is a helper function for the configure script. It replies yes,
sudo or no to inform the user if non-interactive docker support is
available. We trap the Exception to fail gracefully.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Fam Zheng <famz@redhat.com>

diff --git a/tests/docker/docker.py b/tests/docker/docker.py
index 1246ba9578..f8267586eb 100755
--- a/tests/docker/docker.py
+++ b/tests/docker/docker.py
@@ -390,6 +390,24 @@ class ImagesCommand(SubCommand):
     def run(self, args, argv):
         return Docker().command("images", argv, args.quiet)
 
+
+class ProbeCommand(SubCommand):
+    """Probe if we can run docker automatically"""
+    name = "probe"
+
+    def run(self, args, argv):
+        try:
+            docker = Docker()
+            if docker._command[0] == "docker":
+                print "yes"
+            elif docker._command[0] == "sudo":
+                print "sudo"
+        except Exception:
+            print "no"
+
+        return
+
+
 def main():
     parser = argparse.ArgumentParser(description="A Docker helper",
             usage="%s <subcommand> ..." % os.path.basename(sys.argv[0]))
-- 
2.17.0


[Qemu-devel] [PULL 2/6] configure: add test for docker availability
Posted by Alex Bennée 5 years, 10 months ago
This tests for a working docker installation without sudo and sets up
config-host.mak accordingly. This will be useful from cross compiling
things in the future.

Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>

diff --git a/configure b/configure
index ab810d728f..db8c9d8288 100755
--- a/configure
+++ b/configure
@@ -456,6 +456,7 @@ jemalloc="no"
 replication="yes"
 vxhs=""
 libxml2=""
+docker="no"
 
 supported_cpu="no"
 supported_os="no"
@@ -5450,6 +5451,17 @@ EOF
   fi
 fi
 
+##########################################
+# Docker and cross-compiler support
+#
+# This is specifically for building test
+# cases for foreign architectures, not
+# cross-compiling QEMU itself.
+
+if has "docker"; then
+    docker=$($python $source_path/tests/docker/docker.py probe)
+fi
+
 ##########################################
 # End of CC checks
 # After here, no more $cc or $ld runs
@@ -5913,6 +5925,7 @@ echo "avx2 optimization $avx2_opt"
 echo "replication support $replication"
 echo "VxHS block device $vxhs"
 echo "capstone          $capstone"
+echo "docker            $docker"
 
 if test "$sdl_too_old" = "yes"; then
 echo "-> Your SDL version is too old - please upgrade to have SDL support"
@@ -6740,6 +6753,10 @@ if test "$gcov" = "yes" ; then
   echo "GCOV=$gcov_tool" >> $config_host_mak
 fi
 
+if test "$docker" != "no"; then
+    echo "HAVE_USER_DOCKER=y" >> $config_host_mak
+fi
+
 # use included Linux headers
 if test "$linux" = "yes" ; then
   mkdir -p linux-headers
-- 
2.17.0


[Qemu-devel] [PULL 4/6] docker: Add fedora-i386-cross image
Posted by Alex Bennée 5 years, 10 months ago
From: Fam Zheng <famz@redhat.com>

It has some basic *-devel.i686 packages to be used with "gcc -m32" as a
32 bit cross build environment.

Signed-off-by: Fam Zheng <famz@redhat.com>
[AJB: add glibc-static]
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker
new file mode 100644
index 0000000000..8fbef2fa53
--- /dev/null
+++ b/tests/docker/dockerfiles/fedora-i386-cross.docker
@@ -0,0 +1,14 @@
+FROM fedora:latest
+ENV PACKAGES \
+    gcc \
+    glibc-static.i686 \
+    glibc-devel.i686 \
+    glib2-devel.i686 \
+    zlib-devel.i686 \
+    glib2-devel.i686 \
+    nettle-devel.i686 \
+    pixman-devel.i686 \
+    gnutls-devel.i686
+
+RUN dnf install -y $PACKAGES
+RUN rpm -q $PACKAGES | sort > /packages.txt
-- 
2.17.0