From 5f8ab4fdf20d64f33c139c2e2df7573caa41c62b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Fri, 17 Aug 2018 22:53:41 -0300 Subject: [PATCH 1/5] docker: Sort Fedora packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As recommended in https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#sort-multi-line-arguments "This helps to avoid duplication of packages and make the list much easier to update. This also makes PRs a lot easier to read and review." Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20180818015344.797-2-f4bug@amsat.org> Signed-off-by: Fam Zheng --- tests/docker/dockerfiles/fedora.docker | 102 ++++++++++++++++++++----- 1 file changed, 84 insertions(+), 18 deletions(-) diff --git a/tests/docker/dockerfiles/fedora.docker b/tests/docker/dockerfiles/fedora.docker index 7d1d008002..0c4eb9e49c 100644 --- a/tests/docker/dockerfiles/fedora.docker +++ b/tests/docker/dockerfiles/fedora.docker @@ -1,24 +1,90 @@ FROM fedora:28 ENV PACKAGES \ - ccache gettext git tar PyYAML sparse flex bison python3 bzip2 hostname \ - gcc gcc-c++ llvm clang make perl which bc findutils glib2-devel \ - libaio-devel pixman-devel zlib-devel libfdt-devel libasan libubsan \ - bluez-libs-devel brlapi-devel bzip2-devel \ - device-mapper-multipath-devel glusterfs-api-devel gnutls-devel \ - gtk3-devel libattr-devel libcap-devel libcap-ng-devel libcurl-devel \ - libjpeg-devel libpng-devel librbd-devel libssh2-devel libusbx-devel \ - libxml2-devel lzo-devel ncurses-devel nettle-devel nss-devel \ - numactl-devel SDL2-devel snappy-devel spice-server-devel \ - systemtap-sdt-devel usbredir-devel virglrenderer-devel vte3-devel \ - xen-devel \ - mingw32-pixman mingw32-glib2 mingw32-gmp mingw32-SDL2 mingw32-pkg-config \ - mingw32-gtk3 mingw32-gnutls mingw32-nettle mingw32-libtasn1 \ - mingw32-libjpeg-turbo mingw32-libpng mingw32-curl mingw32-libssh2 \ + bc \ + bison \ + bluez-libs-devel \ + brlapi-devel \ + bzip2 \ + bzip2-devel \ + ccache \ + clang \ + device-mapper-multipath-devel \ + findutils \ + flex \ + gcc \ + gcc-c++ \ + gettext \ + git \ + glib2-devel \ + glusterfs-api-devel \ + gnutls-devel \ + gtk3-devel \ + hostname \ + libaio-devel \ + libasan \ + libattr-devel \ + libcap-devel \ + libcap-ng-devel \ + libcurl-devel \ + libfdt-devel \ + libjpeg-devel \ + libpng-devel \ + librbd-devel \ + libssh2-devel \ + libubsan \ + libusbx-devel \ + libxml2-devel \ + llvm \ + lzo-devel \ + make \ mingw32-bzip2 \ - mingw64-pixman mingw64-glib2 mingw64-gmp mingw64-SDL2 mingw64-pkg-config \ - mingw64-gtk3 mingw64-gnutls mingw64-nettle mingw64-libtasn1 \ - mingw64-libjpeg-turbo mingw64-libpng mingw64-curl mingw64-libssh2 \ - mingw64-bzip2 + mingw32-curl \ + mingw32-glib2 \ + mingw32-gmp \ + mingw32-gnutls \ + mingw32-gtk3 \ + mingw32-libjpeg-turbo \ + mingw32-libpng \ + mingw32-libssh2 \ + mingw32-libtasn1 \ + mingw32-nettle \ + mingw32-pixman \ + mingw32-pkg-config \ + mingw32-SDL2 \ + mingw64-bzip2 \ + mingw64-curl \ + mingw64-glib2 \ + mingw64-gmp \ + mingw64-gnutls \ + mingw64-gtk3 \ + mingw64-libjpeg-turbo \ + mingw64-libpng \ + mingw64-libssh2 \ + mingw64-libtasn1 \ + mingw64-nettle \ + mingw64-pixman \ + mingw64-pkg-config \ + mingw64-SDL2 \ + ncurses-devel \ + nettle-devel \ + nss-devel \ + numactl-devel \ + perl \ + pixman-devel \ + python3 \ + PyYAML \ + SDL2-devel \ + snappy-devel \ + sparse \ + spice-server-devel \ + systemtap-sdt-devel \ + tar \ + usbredir-devel \ + virglrenderer-devel \ + vte3-devel \ + which \ + xen-devel \ + zlib-devel ENV QEMU_CONFIGURE_OPTS --python=/usr/bin/python3 RUN dnf install -y $PACKAGES From dc587d450a94686fa0843b8c0d0e1f476a4c239a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Fri, 17 Aug 2018 22:53:42 -0300 Subject: [PATCH 2/5] docker: Sort Fedora packages (i386-cross) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As recommended in https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#sort-multi-line-arguments "This helps to avoid duplication of packages and make the list much easier to update. This also makes PRs a lot easier to read and review." Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20180818015344.797-3-f4bug@amsat.org> Signed-off-by: Fam Zheng --- tests/docker/dockerfiles/fedora-i386-cross.docker | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/tests/docker/dockerfiles/fedora-i386-cross.docker b/tests/docker/dockerfiles/fedora-i386-cross.docker index 8fbef2fa53..a4fd895b07 100644 --- a/tests/docker/dockerfiles/fedora-i386-cross.docker +++ b/tests/docker/dockerfiles/fedora-i386-cross.docker @@ -1,14 +1,13 @@ FROM fedora:latest ENV PACKAGES \ gcc \ - glibc-static.i686 \ + glib2-devel.i686 \ glibc-devel.i686 \ - glib2-devel.i686 \ - zlib-devel.i686 \ - glib2-devel.i686 \ + glibc-static.i686 \ + gnutls-devel.i686 \ nettle-devel.i686 \ pixman-devel.i686 \ - gnutls-devel.i686 + zlib-devel.i686 RUN dnf install -y $PACKAGES RUN rpm -q $PACKAGES | sort > /packages.txt From 2808b467dd1343f7069a4083e51e6718589f8834 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Fri, 17 Aug 2018 22:53:43 -0300 Subject: [PATCH 3/5] docker: Sort Ubuntu packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As recommended in https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#sort-multi-line-arguments "This helps to avoid duplication of packages and make the list much easier to update. This also makes PRs a lot easier to read and review." Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20180818015344.797-4-f4bug@amsat.org> Signed-off-by: Fam Zheng --- tests/docker/dockerfiles/ubuntu.docker | 61 ++++++++++++++++++++++---- 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/tests/docker/dockerfiles/ubuntu.docker b/tests/docker/dockerfiles/ubuntu.docker index 7d724e7f53..36e2b17de5 100644 --- a/tests/docker/dockerfiles/ubuntu.docker +++ b/tests/docker/dockerfiles/ubuntu.docker @@ -2,16 +2,59 @@ FROM ubuntu:16.04 RUN echo "deb http://archive.ubuntu.com/ubuntu/ trusty universe multiverse" >> \ /etc/apt/sources.list ENV PACKAGES flex bison \ - libusb-1.0-0-dev libiscsi-dev librados-dev libncurses5-dev libncursesw5-dev \ - libseccomp-dev libgnutls-dev libssh2-1-dev libspice-server-dev \ - libspice-protocol-dev libnss3-dev libfdt-dev \ - libgtk-3-dev libvte-2.91-dev libsdl2-dev libpng12-dev libpixman-1-dev \ - libvdeplug-dev liblzo2-dev libsnappy-dev libbz2-dev libxen-dev librdmacm-dev libibverbs-dev \ - libsasl2-dev libjpeg-turbo8-dev xfslibs-dev libcap-ng-dev libbrlapi-dev libcurl4-gnutls-dev \ - libbluetooth-dev librbd-dev libaio-dev glusterfs-common libnuma-dev libepoxy-dev libdrm-dev libgbm-dev \ - libjemalloc-dev libcacard-dev libusbredirhost-dev libnfs-dev libcap-dev libattr1-dev \ + ccache \ + clang \ + gcc \ + gettext \ + git \ + glusterfs-common \ + libaio-dev \ + libattr1-dev \ + libbluetooth-dev \ + libbrlapi-dev \ + libbz2-dev \ + libcacard-dev \ + libcap-dev \ + libcap-ng-dev \ + libcurl4-gnutls-dev \ + libdrm-dev \ + libepoxy-dev \ + libfdt-dev \ + libgbm-dev \ + libgnutls-dev \ + libgtk-3-dev \ + libibverbs-dev \ + libiscsi-dev \ + libjemalloc-dev \ + libjpeg-turbo8-dev \ + liblzo2-dev \ + libncurses5-dev \ + libncursesw5-dev \ + libnfs-dev \ + libnss3-dev \ + libnuma-dev \ + libpixman-1-dev \ + libpng12-dev \ + librados-dev \ + librbd-dev \ + librdmacm-dev \ + libsasl2-dev \ + libsdl2-dev \ + libseccomp-dev \ + libsnappy-dev \ + libspice-protocol-dev \ + libspice-server-dev \ + libssh2-1-dev \ + libusb-1.0-0-dev \ + libusbredirhost-dev \ + libvdeplug-dev \ + libvte-2.91-dev \ + libxen-dev \ + make \ + python-yaml \ + sparse \ texinfo \ - gettext git make ccache python-yaml gcc clang sparse + xfslibs-dev RUN apt-get update && \ apt-get -y install $PACKAGES RUN dpkg -l $PACKAGES | sort > /packages.txt From 25b8f085ac729bcea1e7b3a0aa9473d94292692e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Fri, 17 Aug 2018 22:53:44 -0300 Subject: [PATCH 4/5] docker: Sort CentOS packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit As recommended in https://docs.docker.com/develop/develop-images/dockerfile_best-practices/#sort-multi-line-arguments "This helps to avoid duplication of packages and make the list much easier to update." Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20180818015344.797-5-f4bug@amsat.org> Signed-off-by: Fam Zheng --- tests/docker/dockerfiles/centos7.docker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/docker/dockerfiles/centos7.docker b/tests/docker/dockerfiles/centos7.docker index 83462b7205..0a04bfbed8 100644 --- a/tests/docker/dockerfiles/centos7.docker +++ b/tests/docker/dockerfiles/centos7.docker @@ -18,10 +18,10 @@ ENV PACKAGES \ libfdt-devel \ librdmacm-devel \ lzo-devel \ - nettle-devel \ make \ mesa-libEGL-devel \ mesa-libgbm-devel \ + nettle-devel \ pixman-devel \ SDL-devel \ spice-glib-devel \ From b28ef6b9eb2401b9500c59cb32ff5fe43400f0be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Date: Sat, 18 Aug 2018 00:03:37 -0300 Subject: [PATCH 5/5] docker: Clean dangling tarball files MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a container fails, it leaves a dangling tarball which name is based on a timestamp. Further uses of make won't clean those files, neither calling the 'docker-clean' target. Use the .DELETE_ON_ERROR built-in target to let make remove those temporary tarballs in case of failure. Signed-off-by: Philippe Mathieu-Daudé Message-Id: <20180818030337.22271-1-f4bug@amsat.org> Signed-off-by: Fam Zheng --- tests/docker/Makefile.include | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include index d3101afecd..6e03235ab9 100644 --- a/tests/docker/Makefile.include +++ b/tests/docker/Makefile.include @@ -25,6 +25,7 @@ IMAGES ?= % CUR_TIME := $(shell date +%Y-%m-%d-%H.%M.%S.$$$$) DOCKER_SRC_COPY := $(BUILD_DIR)/docker-src.$(CUR_TIME) +.DELETE_ON_ERROR: $(DOCKER_SRC_COPY) $(DOCKER_SRC_COPY): @mkdir $@ $(if $(SRC_ARCHIVE), \