Martin Kletzander
2021-Mar-30 16:12 UTC
[Libguestfs] [libnbd RFC PATCH] First stab at CI infrastructure
This is a first try for adding a CI to libnbd. It uses the libvirt-ci to get as much coverage as possible with the ease of use provided by that repository. Not all the data are available there at the time of posting this patch, so if anyone wants to recreate the Containerfiles and variable files (for cirrus CI) my temporary branch of libvirt-ci called nbd_prep: https://gitlab.com/nertpinx/libvirt-ci/-/tree/nbd_prep The result of this branch CI run is available here: https://gitlab.com/nertpinx/libnbd/-/pipelines As you can see there are errors. I went down a rabbit hole of trying to figure out one of them, but ended up not being sure what the preferred way of fixing that particular issue would be. So instead of trying myself and raising various questions every single day I am posting this here as handling it myself would take too much time and I would be bothering other people throughout days and days going forward. If there are any questions related to how the CI is running, how it works, how to replicate CI builds locally or how to change anything, then I am more than happy to help. Actually recreating the builds locally (at least for Linux distributions and setups) is pretty straightforward. Choose a file from ci/containers which represents the desired setup, for our example let's pick fedora rawhide, and build your container and tag it, e.g. using podman (or feel free to substitute "podman" with "docker"): podman build ci/containers/fedora-33.Dockerfile -t libnbd-fedora-rawhide That will get you a container tagged `libnbd-fedora-rawhide` that you can execute the tests on. You can then run whatever you want inside that container with the current repository passed through like this: podman run -it --rm -v .:/repo -w /repo libnbd-fedora-rawhide bash which will bind-mount the current directory onto /repo inside the container and also use that path as the working directory (just so you do not have to `cd /repo` before any commands. I prefer running bash, but of course you can just run the build script used in the CI. I have put all the commands into one file for simplicity, so that you can simply specifically `ci/build_script.sh`. So simply executing that script will give you the results and you can experiment right inside that environment to figure out what is needed. At the same time you can easily modify any files inside that repository on your host, just like you are used to, so that you can use your editor and other setups that work for you. Last few things to note: - You should make sure that build files do not interfere between the host and the container, if you want to replicate a clean build you need to either use VPATH or just clean everything. - No tests include running make distcheck as that seems a bit more broken and could be fixed after more pressing issues are dealt with, just so the output does not interfere in the meantime. Let me know what you think, and have a nice day. --- .gitlab-ci.yml | 490 ++++++++++++++++++ ci/build_script.sh | 24 + ci/cirrus/build.yml | 22 + ci/cirrus/freebsd-12.vars | 14 + ci/cirrus/freebsd-current.vars | 14 + ci/cirrus/macos-11.vars | 14 + ci/cirrus/refresh | 22 + ci/containers/README.rst | 14 + ci/containers/centos-7.Dockerfile | 47 ++ ci/containers/centos-8.Dockerfile | 49 ++ ci/containers/centos-stream.Dockerfile | 51 ++ .../debian-10-cross-aarch64.Dockerfile | 75 +++ .../debian-10-cross-armv6l.Dockerfile | 75 +++ .../debian-10-cross-armv7l.Dockerfile | 75 +++ ci/containers/debian-10-cross-i686.Dockerfile | 75 +++ ci/containers/debian-10-cross-mips.Dockerfile | 75 +++ .../debian-10-cross-mips64el.Dockerfile | 75 +++ .../debian-10-cross-mipsel.Dockerfile | 75 +++ .../debian-10-cross-ppc64le.Dockerfile | 75 +++ .../debian-10-cross-s390x.Dockerfile | 75 +++ ci/containers/debian-10.Dockerfile | 50 ++ .../debian-sid-cross-aarch64.Dockerfile | 75 +++ .../debian-sid-cross-armv6l.Dockerfile | 75 +++ .../debian-sid-cross-armv7l.Dockerfile | 75 +++ .../debian-sid-cross-i686.Dockerfile | 75 +++ .../debian-sid-cross-mips64el.Dockerfile | 75 +++ .../debian-sid-cross-mipsel.Dockerfile | 75 +++ .../debian-sid-cross-ppc64le.Dockerfile | 75 +++ .../debian-sid-cross-s390x.Dockerfile | 75 +++ ci/containers/debian-sid.Dockerfile | 50 ++ ci/containers/fedora-32.Dockerfile | 55 ++ ci/containers/fedora-33.Dockerfile | 55 ++ .../fedora-rawhide-cross-mingw32.Dockerfile | 60 +++ .../fedora-rawhide-cross-mingw64.Dockerfile | 60 +++ ci/containers/fedora-rawhide.Dockerfile | 56 ++ ci/containers/opensuse-152.Dockerfile | 44 ++ ci/containers/refresh | 42 ++ ci/containers/ubuntu-1804.Dockerfile | 50 ++ ci/containers/ubuntu-2004.Dockerfile | 50 ++ 39 files changed, 2608 insertions(+) create mode 100644 .gitlab-ci.yml create mode 100755 ci/build_script.sh create mode 100644 ci/cirrus/build.yml create mode 100644 ci/cirrus/freebsd-12.vars create mode 100644 ci/cirrus/freebsd-current.vars create mode 100644 ci/cirrus/macos-11.vars create mode 100755 ci/cirrus/refresh create mode 100644 ci/containers/README.rst create mode 100644 ci/containers/centos-7.Dockerfile create mode 100644 ci/containers/centos-8.Dockerfile create mode 100644 ci/containers/centos-stream.Dockerfile create mode 100644 ci/containers/debian-10-cross-aarch64.Dockerfile create mode 100644 ci/containers/debian-10-cross-armv6l.Dockerfile create mode 100644 ci/containers/debian-10-cross-armv7l.Dockerfile create mode 100644 ci/containers/debian-10-cross-i686.Dockerfile create mode 100644 ci/containers/debian-10-cross-mips.Dockerfile create mode 100644 ci/containers/debian-10-cross-mips64el.Dockerfile create mode 100644 ci/containers/debian-10-cross-mipsel.Dockerfile create mode 100644 ci/containers/debian-10-cross-ppc64le.Dockerfile create mode 100644 ci/containers/debian-10-cross-s390x.Dockerfile create mode 100644 ci/containers/debian-10.Dockerfile create mode 100644 ci/containers/debian-sid-cross-aarch64.Dockerfile create mode 100644 ci/containers/debian-sid-cross-armv6l.Dockerfile create mode 100644 ci/containers/debian-sid-cross-armv7l.Dockerfile create mode 100644 ci/containers/debian-sid-cross-i686.Dockerfile create mode 100644 ci/containers/debian-sid-cross-mips64el.Dockerfile create mode 100644 ci/containers/debian-sid-cross-mipsel.Dockerfile create mode 100644 ci/containers/debian-sid-cross-ppc64le.Dockerfile create mode 100644 ci/containers/debian-sid-cross-s390x.Dockerfile create mode 100644 ci/containers/debian-sid.Dockerfile create mode 100644 ci/containers/fedora-32.Dockerfile create mode 100644 ci/containers/fedora-33.Dockerfile create mode 100644 ci/containers/fedora-rawhide-cross-mingw32.Dockerfile create mode 100644 ci/containers/fedora-rawhide-cross-mingw64.Dockerfile create mode 100644 ci/containers/fedora-rawhide.Dockerfile create mode 100644 ci/containers/opensuse-152.Dockerfile create mode 100755 ci/containers/refresh create mode 100644 ci/containers/ubuntu-1804.Dockerfile create mode 100644 ci/containers/ubuntu-2004.Dockerfile diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 000000000000..7e4a7911afac --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,490 @@ +variables: + GIT_DEPTH: 100 + +stages: + - containers + - builds + +.script_variables: &script_variables | + export MAKEFLAGS="-j $(getconf _NPROCESSORS_ONLN)" + export CCACHE_BASEDIR="$(pwd)" + export CCACHE_DIR="$CCACHE_BASEDIR/ccache" + export CCACHE_MAXSIZE="500M" + export PATH="$CCACHE_WRAPPERSDIR:$PATH" + +# Common templates + +.container_job: + image: docker:stable + stage: containers + needs: [] + services: + - docker:dind + rules: + - if: "$TEMPORARILY_DISABLED" + allow_failure: true + - when: on_success + before_script: + - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest" + - export COMMON_TAG="$CI_REGISTRY/nbdkit/libnbd/ci-$NAME:latest" + - docker info + - docker login registry.gitlab.com -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" + script: + - docker pull "$TAG" || docker pull "$COMMON_TAG" || true + - docker build --cache-from "$TAG" --cache-from "$COMMON_TAG" --tag "$TAG" -f "ci/containers/$NAME.Dockerfile" ci/containers + - docker push "$TAG" + after_script: + - docker logout + +# We build many containers which can be useful to debug problems but are not +# needed for the pipeline itself to complete: those sometimes fail, and when +# that happens it's mostly because of temporary issues with Debian sid. We +# don't want those failures to affect the overall pipeline status +.container_optional_job: + extends: .container_job + allow_failure: true + +.native_build_job: + stage: builds + image: $CI_REGISTRY_IMAGE/ci-$NAME:latest + rules: + - if: "$TEMPORARILY_DISABLED" + allow_failure: true + - when: on_success + cache: + paths: + - ccache/ + key: "$CI_JOB_NAME" + before_script: + - *script_variables + script: + - ci/build_script.sh + +# Jobs that we delegate to Cirrus CI because they require an operating +# system other than Linux. These jobs will only run if the required +# setup has been performed on the GitLab account (see ci/README.rst). +# +# The Cirrus CI configuration is generated by replacing target-specific +# variables in a generic template: some of these variables are provided +# when the GitLab CI job is defined, others are taken from a shell +# snippet generated using lcitool. +# +# Note that the $PATH environment variable has to be treated with +# special care, because we can't just override it at the GitLab CI job +# definition level or we risk breaking it completely. +.cirrus_build_job: + stage: builds + image: registry.gitlab.com/libvirt/libvirt-ci/cirrus-run:master + needs: [] + script: + - source ci/cirrus/$NAME.vars + - sed -e "s|[@]CI_REPOSITORY_URL@|$CI_REPOSITORY_URL|g" + -e "s|[@]CI_COMMIT_REF_NAME@|$CI_COMMIT_REF_NAME|g" + -e "s|[@]CI_COMMIT_SHA@|$CI_COMMIT_SHA|g" + -e "s|[@]CIRRUS_VM_INSTANCE_TYPE@|$CIRRUS_VM_INSTANCE_TYPE|g" + -e "s|[@]CIRRUS_VM_IMAGE_SELECTOR@|$CIRRUS_VM_IMAGE_SELECTOR|g" + -e "s|[@]CIRRUS_VM_IMAGE_NAME@|$CIRRUS_VM_IMAGE_NAME|g" + -e "s|[@]UPDATE_COMMAND@|$UPDATE_COMMAND|g" + -e "s|[@]INSTALL_COMMAND@|$INSTALL_COMMAND|g" + -e "s|[@]PATH@|$PATH_EXTRA${PATH_EXTRA:+:}\$PATH|g" + -e "s|[@]PKG_CONFIG_PATH@|$PKG_CONFIG_PATH|g" + -e "s|[@]PKGS@|$PKGS|g" + -e "s|[@]MAKE@|$MAKE|g" + -e "s|[@]PYTHON@|$PYTHON|g" + -e "s|[@]PIP3@|$PIP3|g" + -e "s|[@]PYPI_PKGS@|$PYPI_PKGS|g" + <ci/cirrus/build.yml >ci/cirrus/$NAME.yml + - cat ci/cirrus/$NAME.yml + - cirrus-run -v --show-build-log always ci/cirrus/$NAME.yml + rules: + - if: "$TEMPORARILY_DISABLED" + allow_failure: true + - if: "$CIRRUS_GITHUB_REPO && $CIRRUS_API_TOKEN" + +.cross_build_job: + stage: builds + image: $CI_REGISTRY_IMAGE/ci-$NAME-cross-$CROSS:latest + cache: + paths: + - ccache/ + key: "$CI_JOB_NAME" + rules: + - if: "$TEMPORARILY_DISABLED" + allow_failure: true + - when: on_success + before_script: + - *script_variables + script: + - ci/build_script.sh + +# Native container build jobs + +x64-centos-7-container: + extends: .container_job + variables: + NAME: centos-7 + +x64-centos-8-container: + extends: .container_job + variables: + NAME: centos-8 + +x64-centos-stream-container: + extends: .container_job + variables: + NAME: centos-stream + +x64-debian-10-container: + extends: .container_job + variables: + NAME: debian-10 + +x64-debian-sid-container: + extends: .container_job + variables: + NAME: debian-sid + +x64-fedora-32-container: + extends: .container_job + variables: + NAME: fedora-32 + +x64-fedora-33-container: + extends: .container_job + variables: + NAME: fedora-33 + +x64-fedora-rawhide-container: + extends: .container_job + variables: + NAME: fedora-rawhide + +x64-opensuse-152-container: + extends: .container_job + variables: + NAME: opensuse-152 + +x64-ubuntu-1804-container: + extends: .container_job + variables: + NAME: ubuntu-1804 + +x64-ubuntu-2004-container: + extends: .container_job + variables: + NAME: ubuntu-2004 + + +# Cross-build containers build jobs + +aarch64-debian-10-container: + extends: .container_optional_job + variables: + NAME: debian-10-cross-aarch64 + +armv6l-debian-10-container: + extends: .container_job + variables: + NAME: debian-10-cross-armv6l + +armv7l-debian-10-container: + extends: .container_job + variables: + NAME: debian-10-cross-armv7l + +i686-debian-10-container: + extends: .container_optional_job + variables: + NAME: debian-10-cross-i686 + +mips-debian-10-container: + extends: .container_job + variables: + NAME: debian-10-cross-mips + +mips64el-debian-10-container: + extends: .container_optional_job + variables: + NAME: debian-10-cross-mips64el + +mipsel-debian-10-container: + extends: .container_job + variables: + NAME: debian-10-cross-mipsel + +ppc64le-debian-10-container: + extends: .container_job + variables: + NAME: debian-10-cross-ppc64le + +s390x-debian-10-container: + extends: .container_optional_job + variables: + NAME: debian-10-cross-s390x + +aarch64-debian-sid-container: + extends: .container_job + variables: + NAME: debian-sid-cross-aarch64 + +armv6l-debian-sid-container: + extends: .container_optional_job + variables: + NAME: debian-sid-cross-armv6l + +armv7l-debian-sid-container: + extends: .container_optional_job + variables: + NAME: debian-sid-cross-armv7l + +i686-debian-sid-container: + extends: .container_job + variables: + NAME: debian-sid-cross-i686 + +mips64el-debian-sid-container: + extends: .container_job + variables: + NAME: debian-sid-cross-mips64el + +mipsel-debian-sid-container: + extends: .container_optional_job + variables: + NAME: debian-sid-cross-mipsel + +ppc64le-debian-sid-container: + extends: .container_optional_job + variables: + NAME: debian-sid-cross-ppc64le + +s390x-debian-sid-container: + extends: .container_job + variables: + NAME: debian-sid-cross-s390x + +mingw32-fedora-rawhide-container: + extends: .container_job + variables: + NAME: fedora-rawhide-cross-mingw32 + +mingw64-fedora-rawhide-container: + extends: .container_job + variables: + NAME: fedora-rawhide-cross-mingw64 + + +# Native architecture build + test jobs + +x64-debian-10: + extends: .native_build_job + needs: + - x64-debian-10-container + variables: + NAME: debian-10 + +x64-debian-10-clang: + extends: .native_build_job + needs: + - x64-debian-10-container + variables: + NAME: debian-10 + CC: clang + +x64-debian-sid: + extends: .native_build_job + needs: + - x64-debian-sid-container + variables: + NAME: debian-sid + +x64-centos-7: + extends: .native_build_job + needs: + - x64-centos-7-container + variables: + NAME: centos-7 + +x64-centos-8: + extends: .native_build_job + needs: + - x64-centos-8-container + variables: + NAME: centos-8 + +x64-centos-8-clang: + extends: .native_build_job + needs: + - x64-centos-8-container + variables: + NAME: centos-8 + CC: clang + +x64-centos-stream: + extends: .native_build_job + needs: + - x64-centos-stream-container + variables: + NAME: centos-stream + +x64-fedora-32: + extends: .native_build_job + needs: + - x64-fedora-32-container + variables: + NAME: fedora-32 + +x64-fedora-33: + extends: .native_build_job + needs: + - x64-fedora-33-container + variables: + NAME: fedora-33 + +x64-fedora-rawhide: + extends: .native_build_job + needs: + - x64-fedora-rawhide-container + variables: + NAME: fedora-rawhide + +x64-fedora-rawhide-clang: + extends: .native_build_job + needs: + - x64-fedora-rawhide-container + variables: + NAME: fedora-rawhide + CC: clang + +x64-opensuse-152: + extends: .native_build_job + needs: + - x64-opensuse-152-container + variables: + NAME: opensuse-152 + +x64-ubuntu-1804: + extends: .native_build_job + needs: + - x64-ubuntu-1804-container + variables: + NAME: ubuntu-1804 + +x64-ubuntu-2004: + extends: .native_build_job + needs: + - x64-ubuntu-2004-container + variables: + NAME: ubuntu-2004 + +x64-freebsd-12-build: + extends: .cirrus_build_job + variables: + NAME: freebsd-12 + CIRRUS_VM_INSTANCE_TYPE: freebsd_instance + CIRRUS_VM_IMAGE_SELECTOR: image_family + CIRRUS_VM_IMAGE_NAME: freebsd-12-2 + UPDATE_COMMAND: pkg update + INSTALL_COMMAND: pkg install -y + +x64-macos-11-build: + extends: .cirrus_build_job + variables: + NAME: macos-11 + CIRRUS_VM_INSTANCE_TYPE: osx_instance + CIRRUS_VM_IMAGE_SELECTOR: image + CIRRUS_VM_IMAGE_NAME: big-sur-base + UPDATE_COMMAND: brew update + INSTALL_COMMAND: brew install + PATH_EXTRA: /usr/local/opt/ccache/libexec:/usr/local/opt/gettext/bin:/usr/local/opt/libpcap/bin:/usr/local/opt/libxslt/bin:/usr/local/opt/rpcgen/bin + PKG_CONFIG_PATH: /usr/local/opt/curl/lib/pkgconfig:/usr/local/opt/libpcap/lib/pkgconfig:/usr/local/opt/libxml2/lib/pkgconfig:/usr/local/opt/ncurses/lib/pkgconfig:/usr/local/opt/readline/lib/pkgconfig + + +# Cross compiled build jobs + +aarch64-debian-sid: + extends: .cross_build_job + needs: + - aarch64-debian-sid-container + variables: + NAME: debian-sid + CROSS: aarch64 + +armv6l-debian-10: + extends: .cross_build_job + needs: + - armv6l-debian-10-container + variables: + NAME: debian-10 + CROSS: armv6l + +armv7l-debian-10: + extends: .cross_build_job + needs: + - armv7l-debian-10-container + variables: + NAME: debian-10 + CROSS: armv7l + +i686-debian-sid: + extends: .cross_build_job + needs: + - i686-debian-sid-container + variables: + NAME: debian-sid + CROSS: i686 + +mips-debian-10: + extends: .cross_build_job + needs: + - mips-debian-10-container + variables: + NAME: debian-10 + CROSS: mips + +mips64el-debian-sid: + extends: .cross_build_job + needs: + - mips64el-debian-sid-container + variables: + NAME: debian-sid + CROSS: mips64el + +mipsel-debian-10: + extends: .cross_build_job + needs: + - mipsel-debian-10-container + variables: + NAME: debian-10 + CROSS: mipsel + +ppc64le-debian-10: + extends: .cross_build_job + needs: + - ppc64le-debian-10-container + variables: + NAME: debian-10 + CROSS: ppc64le + +s390x-debian-sid: + extends: .cross_build_job + needs: + - s390x-debian-sid-container + variables: + NAME: debian-sid + CROSS: s390x + +mingw32-fedora-rawhide: + extends: .cross_build_job + needs: + - mingw32-fedora-rawhide-container + variables: + NAME: fedora-rawhide + CROSS: mingw32 + +mingw64-fedora-rawhide: + extends: .cross_build_job + needs: + - mingw64-fedora-rawhide-container + variables: + NAME: fedora-rawhide + CROSS: mingw64 diff --git a/ci/build_script.sh b/ci/build_script.sh new file mode 100755 index 000000000000..7c176de9d3da --- /dev/null +++ b/ci/build_script.sh @@ -0,0 +1,24 @@ +#!/bin/sh + +set -e + +main() { + autoreconf -if + ./configure --enable-gcc-warnings --enable-fuse --enable-ocaml --enable-python --enable-golang --with-gnutls --with-libxml2 + + $MAKE + + if test -n "$CROSS" + then + return 0 + fi + + $MAKE check || find . -name test-suite.log -exec grep -l '^X\?FAIL:' '{}' \+ | xargs cat + + if test "$DIST" == "force" + then + $MAKE distcheck + fi +} + +main "$@" diff --git a/ci/cirrus/build.yml b/ci/cirrus/build.yml new file mode 100644 index 000000000000..5a5c65e3b640 --- /dev/null +++ b/ci/cirrus/build.yml @@ -0,0 +1,22 @@ + at CIRRUS_VM_INSTANCE_TYPE@: + @CIRRUS_VM_IMAGE_SELECTOR@: @CIRRUS_VM_IMAGE_NAME@ + +env: + CI_REPOSITORY_URL: "@CI_REPOSITORY_URL@" + CI_COMMIT_REF_NAME: "@CI_COMMIT_REF_NAME@" + CI_COMMIT_SHA: "@CI_COMMIT_SHA@" + PATH: "@PATH@" + PKG_CONFIG_PATH: "@PKG_CONFIG_PATH@" + PYTHON: "@PYTHON@" + MAKE: "@MAKE@" + +build_task: + install_script: + - @INSTALL_COMMAND@ @PKGS@ + - if test -n "@PYPI_PKGS@" ; then @PIP3@ install @PYPI_PKGS@ ; fi + clone_script: + - git clone --depth 100 "$CI_REPOSITORY_URL" . + - git fetch origin "$CI_COMMIT_REF_NAME" + - git reset --hard "$CI_COMMIT_SHA" + build_script: + - ci/build_script.sh diff --git a/ci/cirrus/freebsd-12.vars b/ci/cirrus/freebsd-12.vars new file mode 100644 index 000000000000..2044439ca3e8 --- /dev/null +++ b/ci/cirrus/freebsd-12.vars @@ -0,0 +1,14 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool variables freebsd-12 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +PACKAGING_COMMAND='pkg' +CC='/usr/bin/clang' +CCACHE='/usr/local/bin/ccache' +MAKE='/usr/local/bin/gmake' +NINJA='/usr/local/bin/ninja' +PYTHON='/usr/local/bin/python3' +PIP3='/usr/local/bin/pip-3.7' +PKGS='autoconf automake bash-completion ca_root_nss ccache coreutils diffutils fusefs-libs git gmake gnutls go gsed libtool libxml2 ocaml ocaml-findlib perl5 pkgconf python3 qemu' diff --git a/ci/cirrus/freebsd-current.vars b/ci/cirrus/freebsd-current.vars new file mode 100644 index 000000000000..02be9eb0e92c --- /dev/null +++ b/ci/cirrus/freebsd-current.vars @@ -0,0 +1,14 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool variables freebsd-current libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +PACKAGING_COMMAND='pkg' +CC='/usr/bin/clang' +CCACHE='/usr/local/bin/ccache' +MAKE='/usr/local/bin/gmake' +NINJA='/usr/local/bin/ninja' +PYTHON='/usr/local/bin/python3' +PIP3='/usr/local/bin/pip-3.7' +PKGS='autoconf automake bash-completion ca_root_nss ccache coreutils diffutils fusefs-libs git gmake gnutls go gsed libtool libxml2 ocaml ocaml-findlib perl5 pkgconf python3 qemu' diff --git a/ci/cirrus/macos-11.vars b/ci/cirrus/macos-11.vars new file mode 100644 index 000000000000..8618d2ba97b8 --- /dev/null +++ b/ci/cirrus/macos-11.vars @@ -0,0 +1,14 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool variables macos-11 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +PACKAGING_COMMAND='brew' +CC='/usr/bin/clang' +CCACHE='/usr/local/bin/ccache' +MAKE='/usr/local/bin/gmake' +NINJA='/usr/local/bin/ninja' +PYTHON='/usr/local/bin/python3' +PIP3='/usr/local/bin/pip3' +PKGS='autoconf automake bash-completion ccache coreutils diffutils git gnu-sed gnutls golang libtool libxml2 make ocaml ocaml-findlib perl pkg-config python3 qemu' diff --git a/ci/cirrus/refresh b/ci/cirrus/refresh new file mode 100755 index 000000000000..459cd80d0934 --- /dev/null +++ b/ci/cirrus/refresh @@ -0,0 +1,22 @@ +#!/bin/sh + +if test -z "$1" +then + echo "syntax: $0 PATH-TO-LCITOOL" + exit 1 +fi + +LCITOOL=$1 + +if ! test -x "$LCITOOL" +then + echo "$LCITOOL is not executable" + exit 1 +fi + +HOSTS=$($LCITOOL hosts | grep -E 'freebsd|macos') + +for host in $HOSTS +do + $LCITOOL variables "$host" libnbd >"$host.vars" +done diff --git a/ci/containers/README.rst b/ci/containers/README.rst new file mode 100644 index 000000000000..530897e311f5 --- /dev/null +++ b/ci/containers/README.rst @@ -0,0 +1,14 @@ +CI job assets +============+ +This directory contains assets used in the automated CI jobs, most +notably the Dockerfiles used to build container images in which the +CI jobs then run. + +The ``refresh`` script is used to re-create the Dockerfiles using the +``lcitool`` command that is provided by repo +https://gitlab.com/libvirt/libvirt-ci + +The containers are built during the CI process and cached in the GitLab +container registry of the project doing the build. The cached containers +can be deleted at any time and will be correctly rebuilt. diff --git a/ci/containers/centos-7.Dockerfile b/ci/containers/centos-7.Dockerfile new file mode 100644 index 000000000000..7690e509761f --- /dev/null +++ b/ci/containers/centos-7.Dockerfile @@ -0,0 +1,47 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile centos-7 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/centos:7 + +RUN yum update -y && \ + echo 'skip_missing_names_on_install=0' >> /etc/yum.conf && \ + yum install -y epel-release && \ + yum install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-common \ + glibc-devel \ + gnutls-devel \ + golang \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python36-devel \ + qemu-img \ + sed && \ + yum autoremove -y && \ + yum clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/centos-8.Dockerfile b/ci/containers/centos-8.Dockerfile new file mode 100644 index 000000000000..689b010d47fd --- /dev/null +++ b/ci/containers/centos-8.Dockerfile @@ -0,0 +1,49 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile centos-8 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/centos:8 + +RUN dnf update -y && \ + dnf install 'dnf-command(config-manager)' -y && \ + dnf config-manager --set-enabled -y powertools && \ + dnf install -y centos-release-advanced-virtualization && \ + dnf install -y epel-release && \ + dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils-single \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + golang \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python3-devel \ + qemu-img \ + sed && \ + dnf autoremove -y && \ + dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/centos-stream.Dockerfile b/ci/containers/centos-stream.Dockerfile new file mode 100644 index 000000000000..08e5372f8ee3 --- /dev/null +++ b/ci/containers/centos-stream.Dockerfile @@ -0,0 +1,51 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile centos-stream libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/centos:8 + +RUN dnf install -y centos-release-stream && \ + dnf install -y centos-stream-release && \ + dnf update -y && \ + dnf install 'dnf-command(config-manager)' -y && \ + dnf config-manager --set-enabled -y powertools && \ + dnf install -y centos-release-advanced-virtualization && \ + dnf install -y epel-release && \ + dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils-single \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + golang \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python3-devel \ + qemu-img \ + sed && \ + dnf autoremove -y && \ + dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/debian-10-cross-aarch64.Dockerfile b/ci/containers/debian-10-cross-aarch64.Dockerfile new file mode 100644 index 000000000000..7f5458fc5f83 --- /dev/null +++ b/ci/containers/debian-10-cross-aarch64.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross aarch64 debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture arm64 && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-aarch64-linux-gnu \ + libc6-dev:arm64 \ + libfuse-dev:arm64 \ + libgnutls28-dev:arm64 \ + libxml2-dev:arm64 && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/aarch64-linux-gnu-gcc'\n\ +ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/aarch64-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'aarch64'\n\ +cpu = 'aarch64'\n\ +endian = 'little'" > /usr/local/share/meson/cross/aarch64-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "aarch64-linux-gnu" +ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu" diff --git a/ci/containers/debian-10-cross-armv6l.Dockerfile b/ci/containers/debian-10-cross-armv6l.Dockerfile new file mode 100644 index 000000000000..5d200639353c --- /dev/null +++ b/ci/containers/debian-10-cross-armv6l.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross armv6l debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armel && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabi \ + libc6-dev:armel \ + libfuse-dev:armel \ + libgnutls28-dev:armel \ + libxml2-dev:armel && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/arm-linux-gnueabi-gcc'\n\ +ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\ +strip = '/usr/bin/arm-linux-gnueabi-strip'\n\ +pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'arm'\n\ +cpu = 'arm'\n\ +endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabi + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "arm-linux-gnueabi" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi" diff --git a/ci/containers/debian-10-cross-armv7l.Dockerfile b/ci/containers/debian-10-cross-armv7l.Dockerfile new file mode 100644 index 000000000000..d2e41c5fa121 --- /dev/null +++ b/ci/containers/debian-10-cross-armv7l.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross armv7l debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armhf && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabihf \ + libc6-dev:armhf \ + libfuse-dev:armhf \ + libgnutls28-dev:armhf \ + libxml2-dev:armhf && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\ +ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\ +strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\ +pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'arm'\n\ +cpu = 'armhf'\n\ +endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "arm-linux-gnueabihf" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf" diff --git a/ci/containers/debian-10-cross-i686.Dockerfile b/ci/containers/debian-10-cross-i686.Dockerfile new file mode 100644 index 000000000000..f6bf49f66105 --- /dev/null +++ b/ci/containers/debian-10-cross-i686.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross i686 debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture i386 && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-i686-linux-gnu \ + libc6-dev:i386 \ + libfuse-dev:i386 \ + libgnutls28-dev:i386 \ + libxml2-dev:i386 && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/i686-linux-gnu-gcc'\n\ +ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/i686-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'x86'\n\ +cpu = 'i686'\n\ +endian = 'little'" > /usr/local/share/meson/cross/i686-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "i686-linux-gnu" +ENV CONFIGURE_OPTS "--host=i686-linux-gnu" diff --git a/ci/containers/debian-10-cross-mips.Dockerfile b/ci/containers/debian-10-cross-mips.Dockerfile new file mode 100644 index 000000000000..2a575965fa5d --- /dev/null +++ b/ci/containers/debian-10-cross-mips.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mips debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-mips-linux-gnu \ + libc6-dev:mips \ + libfuse-dev:mips \ + libgnutls28-dev:mips \ + libxml2-dev:mips && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/mips-linux-gnu-gcc'\n\ +ar = '/usr/bin/mips-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/mips-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/mips-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'mips'\n\ +cpu = 'mips'\n\ +endian = 'big'" > /usr/local/share/meson/cross/mips-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "mips-linux-gnu" +ENV CONFIGURE_OPTS "--host=mips-linux-gnu" diff --git a/ci/containers/debian-10-cross-mips64el.Dockerfile b/ci/containers/debian-10-cross-mips64el.Dockerfile new file mode 100644 index 000000000000..09c361f7a47c --- /dev/null +++ b/ci/containers/debian-10-cross-mips64el.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mips64el debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips64el && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-mips64el-linux-gnuabi64 \ + libc6-dev:mips64el \ + libfuse-dev:mips64el \ + libgnutls28-dev:mips64el \ + libxml2-dev:mips64el && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\ +ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\ +strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\ +pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'mips64'\n\ +cpu = 'mips64el'\n\ +endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "mips64el-linux-gnuabi64" +ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64" diff --git a/ci/containers/debian-10-cross-mipsel.Dockerfile b/ci/containers/debian-10-cross-mipsel.Dockerfile new file mode 100644 index 000000000000..00825c8b6285 --- /dev/null +++ b/ci/containers/debian-10-cross-mipsel.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mipsel debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mipsel && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-mipsel-linux-gnu \ + libc6-dev:mipsel \ + libfuse-dev:mipsel \ + libgnutls28-dev:mipsel \ + libxml2-dev:mipsel && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/mipsel-linux-gnu-gcc'\n\ +ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/mipsel-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'mips'\n\ +cpu = 'mipsel'\n\ +endian = 'little'" > /usr/local/share/meson/cross/mipsel-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "mipsel-linux-gnu" +ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu" diff --git a/ci/containers/debian-10-cross-ppc64le.Dockerfile b/ci/containers/debian-10-cross-ppc64le.Dockerfile new file mode 100644 index 000000000000..4f4c835dd074 --- /dev/null +++ b/ci/containers/debian-10-cross-ppc64le.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross ppc64le debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture ppc64el && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-powerpc64le-linux-gnu \ + libc6-dev:ppc64el \ + libfuse-dev:ppc64el \ + libgnutls28-dev:ppc64el \ + libxml2-dev:ppc64el && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\ +ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'ppc64'\n\ +cpu = 'powerpc64le'\n\ +endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "powerpc64le-linux-gnu" +ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu" diff --git a/ci/containers/debian-10-cross-s390x.Dockerfile b/ci/containers/debian-10-cross-s390x.Dockerfile new file mode 100644 index 000000000000..3753a67d8056 --- /dev/null +++ b/ci/containers/debian-10-cross-s390x.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross s390x debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture s390x && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-s390x-linux-gnu \ + libc6-dev:s390x \ + libfuse-dev:s390x \ + libgnutls28-dev:s390x \ + libxml2-dev:s390x && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/s390x-linux-gnu-gcc'\n\ +ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/s390x-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 's390x'\n\ +cpu = 's390x'\n\ +endian = 'big'" > /usr/local/share/meson/cross/s390x-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "s390x-linux-gnu" +ENV CONFIGURE_OPTS "--host=s390x-linux-gnu" diff --git a/ci/containers/debian-10.Dockerfile b/ci/containers/debian-10.Dockerfile new file mode 100644 index 000000000000..4444271bb7d6 --- /dev/null +++ b/ci/containers/debian-10.Dockerfile @@ -0,0 +1,50 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile debian-10 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:10-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libc6-dev \ + libfuse-dev \ + libgnutls28-dev \ + libtool-bin \ + libxml2-dev \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/debian-sid-cross-aarch64.Dockerfile b/ci/containers/debian-sid-cross-aarch64.Dockerfile new file mode 100644 index 000000000000..81aab437f18f --- /dev/null +++ b/ci/containers/debian-sid-cross-aarch64.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross aarch64 debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture arm64 && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-aarch64-linux-gnu \ + libc6-dev:arm64 \ + libfuse-dev:arm64 \ + libgnutls28-dev:arm64 \ + libxml2-dev:arm64 && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/aarch64-linux-gnu-gcc'\n\ +ar = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/aarch64-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'aarch64'\n\ +cpu = 'aarch64'\n\ +endian = 'little'" > /usr/local/share/meson/cross/aarch64-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "aarch64-linux-gnu" +ENV CONFIGURE_OPTS "--host=aarch64-linux-gnu" diff --git a/ci/containers/debian-sid-cross-armv6l.Dockerfile b/ci/containers/debian-sid-cross-armv6l.Dockerfile new file mode 100644 index 000000000000..b766138eb73d --- /dev/null +++ b/ci/containers/debian-sid-cross-armv6l.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross armv6l debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armel && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabi \ + libc6-dev:armel \ + libfuse-dev:armel \ + libgnutls28-dev:armel \ + libxml2-dev:armel && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/arm-linux-gnueabi-gcc'\n\ +ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\ +strip = '/usr/bin/arm-linux-gnueabi-strip'\n\ +pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'arm'\n\ +cpu = 'arm'\n\ +endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabi + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "arm-linux-gnueabi" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabi" diff --git a/ci/containers/debian-sid-cross-armv7l.Dockerfile b/ci/containers/debian-sid-cross-armv7l.Dockerfile new file mode 100644 index 000000000000..7151aa4f6194 --- /dev/null +++ b/ci/containers/debian-sid-cross-armv7l.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross armv7l debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabihf-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture armhf && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-arm-linux-gnueabihf \ + libc6-dev:armhf \ + libfuse-dev:armhf \ + libgnutls28-dev:armhf \ + libxml2-dev:armhf && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/arm-linux-gnueabihf-gcc'\n\ +ar = '/usr/bin/arm-linux-gnueabihf-gcc-ar'\n\ +strip = '/usr/bin/arm-linux-gnueabihf-strip'\n\ +pkgconfig = '/usr/bin/arm-linux-gnueabihf-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'arm'\n\ +cpu = 'armhf'\n\ +endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabihf + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "arm-linux-gnueabihf" +ENV CONFIGURE_OPTS "--host=arm-linux-gnueabihf" diff --git a/ci/containers/debian-sid-cross-i686.Dockerfile b/ci/containers/debian-sid-cross-i686.Dockerfile new file mode 100644 index 000000000000..c1ce5b67ff2a --- /dev/null +++ b/ci/containers/debian-sid-cross-i686.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross i686 debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture i386 && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-i686-linux-gnu \ + libc6-dev:i386 \ + libfuse-dev:i386 \ + libgnutls28-dev:i386 \ + libxml2-dev:i386 && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/i686-linux-gnu-gcc'\n\ +ar = '/usr/bin/i686-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/i686-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/i686-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'x86'\n\ +cpu = 'i686'\n\ +endian = 'little'" > /usr/local/share/meson/cross/i686-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "i686-linux-gnu" +ENV CONFIGURE_OPTS "--host=i686-linux-gnu" diff --git a/ci/containers/debian-sid-cross-mips64el.Dockerfile b/ci/containers/debian-sid-cross-mips64el.Dockerfile new file mode 100644 index 000000000000..9f994afa78c0 --- /dev/null +++ b/ci/containers/debian-sid-cross-mips64el.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mips64el debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mips64el-linux-gnuabi64-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mips64el && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-mips64el-linux-gnuabi64 \ + libc6-dev:mips64el \ + libfuse-dev:mips64el \ + libgnutls28-dev:mips64el \ + libxml2-dev:mips64el && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/mips64el-linux-gnuabi64-gcc'\n\ +ar = '/usr/bin/mips64el-linux-gnuabi64-gcc-ar'\n\ +strip = '/usr/bin/mips64el-linux-gnuabi64-strip'\n\ +pkgconfig = '/usr/bin/mips64el-linux-gnuabi64-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'mips64'\n\ +cpu = 'mips64el'\n\ +endian = 'little'" > /usr/local/share/meson/cross/mips64el-linux-gnuabi64 + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "mips64el-linux-gnuabi64" +ENV CONFIGURE_OPTS "--host=mips64el-linux-gnuabi64" diff --git a/ci/containers/debian-sid-cross-mipsel.Dockerfile b/ci/containers/debian-sid-cross-mipsel.Dockerfile new file mode 100644 index 000000000000..c3684ee11d40 --- /dev/null +++ b/ci/containers/debian-sid-cross-mipsel.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mipsel debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/mipsel-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture mipsel && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-mipsel-linux-gnu \ + libc6-dev:mipsel \ + libfuse-dev:mipsel \ + libgnutls28-dev:mipsel \ + libxml2-dev:mipsel && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/mipsel-linux-gnu-gcc'\n\ +ar = '/usr/bin/mipsel-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/mipsel-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/mipsel-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'mips'\n\ +cpu = 'mipsel'\n\ +endian = 'little'" > /usr/local/share/meson/cross/mipsel-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "mipsel-linux-gnu" +ENV CONFIGURE_OPTS "--host=mipsel-linux-gnu" diff --git a/ci/containers/debian-sid-cross-ppc64le.Dockerfile b/ci/containers/debian-sid-cross-ppc64le.Dockerfile new file mode 100644 index 000000000000..216893c6e066 --- /dev/null +++ b/ci/containers/debian-sid-cross-ppc64le.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross ppc64le debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/powerpc64le-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture ppc64el && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-powerpc64le-linux-gnu \ + libc6-dev:ppc64el \ + libfuse-dev:ppc64el \ + libgnutls28-dev:ppc64el \ + libxml2-dev:ppc64el && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/powerpc64le-linux-gnu-gcc'\n\ +ar = '/usr/bin/powerpc64le-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/powerpc64le-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/powerpc64le-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 'ppc64'\n\ +cpu = 'powerpc64le'\n\ +endian = 'little'" > /usr/local/share/meson/cross/powerpc64le-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "powerpc64le-linux-gnu" +ENV CONFIGURE_OPTS "--host=powerpc64le-linux-gnu" diff --git a/ci/containers/debian-sid-cross-s390x.Dockerfile b/ci/containers/debian-sid-cross-s390x.Dockerfile new file mode 100644 index 000000000000..cc1612a6ed45 --- /dev/null +++ b/ci/containers/debian-sid-cross-s390x.Dockerfile @@ -0,0 +1,75 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross s390x debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libtool-bin \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/s390x-linux-gnu-$(basename /usr/bin/gcc) + +RUN export DEBIAN_FRONTEND=noninteractive && \ + dpkg --add-architecture s390x && \ + eatmydata apt-get update && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y dpkg-dev && \ + eatmydata apt-get install --no-install-recommends -y \ + gcc-s390x-linux-gnu \ + libc6-dev:s390x \ + libfuse-dev:s390x \ + libgnutls28-dev:s390x \ + libxml2-dev:s390x && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + mkdir -p /usr/local/share/meson/cross && \ + echo "[binaries]\n\ +c = '/usr/bin/s390x-linux-gnu-gcc'\n\ +ar = '/usr/bin/s390x-linux-gnu-gcc-ar'\n\ +strip = '/usr/bin/s390x-linux-gnu-strip'\n\ +pkgconfig = '/usr/bin/s390x-linux-gnu-pkg-config'\n\ +\n\ +[host_machine]\n\ +system = 'linux'\n\ +cpu_family = 's390x'\n\ +cpu = 's390x'\n\ +endian = 'big'" > /usr/local/share/meson/cross/s390x-linux-gnu + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "s390x-linux-gnu" +ENV CONFIGURE_OPTS "--host=s390x-linux-gnu" diff --git a/ci/containers/debian-sid.Dockerfile b/ci/containers/debian-sid.Dockerfile new file mode 100644 index 000000000000..dbb2847492d9 --- /dev/null +++ b/ci/containers/debian-sid.Dockerfile @@ -0,0 +1,50 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile debian-sid libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/debian:sid-slim + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libc6-dev \ + libfuse-dev \ + libgnutls28-dev \ + libtool-bin \ + libxml2-dev \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/fedora-32.Dockerfile b/ci/containers/fedora-32.Dockerfile new file mode 100644 index 000000000000..f1769e784f8b --- /dev/null +++ b/ci/containers/fedora-32.Dockerfile @@ -0,0 +1,55 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile fedora-32 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM registry.fedoraproject.org/fedora:32 + +RUN dnf install -y nosync && \ + echo -e '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + golang \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python3-devel \ + qemu-img \ + sed && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/fedora-33.Dockerfile b/ci/containers/fedora-33.Dockerfile new file mode 100644 index 000000000000..dbacd41ef99d --- /dev/null +++ b/ci/containers/fedora-33.Dockerfile @@ -0,0 +1,55 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile fedora-33 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM registry.fedoraproject.org/fedora:33 + +RUN dnf install -y nosync && \ + echo -e '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + golang \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python3-devel \ + qemu-img \ + sed && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile new file mode 100644 index 000000000000..c8f952825843 --- /dev/null +++ b/ci/containers/fedora-rawhide-cross-mingw32.Dockerfile @@ -0,0 +1,60 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mingw32 fedora-rawhide libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM registry.fedoraproject.org/fedora:rawhide + +RUN dnf update -y --nogpgcheck fedora-gpg-keys && \ + dnf install -y nosync && \ + echo -e '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + coreutils \ + diffutils \ + git \ + glibc-langpack-en \ + golang \ + libtool \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + python3-devel \ + qemu-img \ + sed && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/i686-w64-mingw32-$(basename /usr/bin/gcc) + +RUN nosync dnf install -y \ + mingw32-gcc \ + mingw32-gnutls \ + mingw32-headers \ + mingw32-libxml2 \ + mingw32-pkg-config && \ + nosync dnf clean all -y + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "i686-w64-mingw32" +ENV CONFIGURE_OPTS "--host=i686-w64-mingw32" diff --git a/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile new file mode 100644 index 000000000000..b31c72cb9a77 --- /dev/null +++ b/ci/containers/fedora-rawhide-cross-mingw64.Dockerfile @@ -0,0 +1,60 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile --cross mingw64 fedora-rawhide libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM registry.fedoraproject.org/fedora:rawhide + +RUN dnf update -y --nogpgcheck fedora-gpg-keys && \ + dnf install -y nosync && \ + echo -e '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + coreutils \ + diffutils \ + git \ + glibc-langpack-en \ + golang \ + libtool \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + python3-devel \ + qemu-img \ + sed && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-$(basename /usr/bin/gcc) + +RUN nosync dnf install -y \ + mingw64-gcc \ + mingw64-gnutls \ + mingw64-headers \ + mingw64-libxml2 \ + mingw64-pkg-config && \ + nosync dnf clean all -y + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" + +ENV ABI "x86_64-w64-mingw32" +ENV CONFIGURE_OPTS "--host=x86_64-w64-mingw32" diff --git a/ci/containers/fedora-rawhide.Dockerfile b/ci/containers/fedora-rawhide.Dockerfile new file mode 100644 index 000000000000..8d1f255fc319 --- /dev/null +++ b/ci/containers/fedora-rawhide.Dockerfile @@ -0,0 +1,56 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile fedora-rawhide libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM registry.fedoraproject.org/fedora:rawhide + +RUN dnf update -y --nogpgcheck fedora-gpg-keys && \ + dnf install -y nosync && \ + echo -e '#!/bin/sh\n\ +if test -d /usr/lib64\n\ +then\n\ + export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\ +else\n\ + export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\ +fi\n\ +exec "$@"' > /usr/bin/nosync && \ + chmod +x /usr/bin/nosync && \ + nosync dnf update -y && \ + nosync dnf install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-devel \ + glibc-langpack-en \ + gnutls-devel \ + golang \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python3-devel \ + qemu-img \ + sed && \ + nosync dnf autoremove -y && \ + nosync dnf clean all -y && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/opensuse-152.Dockerfile b/ci/containers/opensuse-152.Dockerfile new file mode 100644 index 000000000000..e051a5c92f11 --- /dev/null +++ b/ci/containers/opensuse-152.Dockerfile @@ -0,0 +1,44 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile opensuse-152 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM registry.opensuse.org/opensuse/leap:15.2 + +RUN zypper update -y && \ + zypper install -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + fuse-devel \ + gcc \ + git \ + glibc-devel \ + glibc-locale \ + go \ + libgnutls-devel \ + libtool \ + libxml2-devel \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconfig \ + python3-devel \ + qemu-tools \ + sed && \ + zypper clean --all && \ + rpm -qa | sort > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/refresh b/ci/containers/refresh new file mode 100755 index 000000000000..327f642ed2ec --- /dev/null +++ b/ci/containers/refresh @@ -0,0 +1,42 @@ +#!/bin/sh + +if test -z "$1" +then + echo "syntax: $0 PATH-TO-LCITOOL" + exit 1 +fi + +LCITOOL=$1 + +if ! test -x "$LCITOOL" +then + echo "$LCITOOL is not executable" + exit 1 +fi + +HOSTS=$($LCITOOL hosts | grep -Ev 'freebsd|macos') + +for host in $HOSTS +do + case "$host" in + fedora-rawhide) + for cross in mingw32 mingw64 + do + $LCITOOL dockerfile $host libnbd --cross $cross > $host-cross-$cross.Dockerfile + done + ;; + debian-*) + for cross in aarch64 armv6l armv7l i686 mips mips64el mipsel ppc64le s390x + do + if test "$host-cross-$cross" = "debian-9-cross-i686" || + test "$host-cross-$cross" = "debian-sid-cross-mips" + then + continue + fi + $LCITOOL dockerfile $host libnbd --cross $cross > $host-cross-$cross.Dockerfile + done + ;; + esac + + $LCITOOL dockerfile $host libnbd > $host.Dockerfile +done diff --git a/ci/containers/ubuntu-1804.Dockerfile b/ci/containers/ubuntu-1804.Dockerfile new file mode 100644 index 000000000000..3df4fbe6b5df --- /dev/null +++ b/ci/containers/ubuntu-1804.Dockerfile @@ -0,0 +1,50 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile ubuntu-1804 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/ubuntu:18.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libc6-dev \ + libfuse-dev \ + libgnutls28-dev \ + libtool-bin \ + libxml2-dev \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" diff --git a/ci/containers/ubuntu-2004.Dockerfile b/ci/containers/ubuntu-2004.Dockerfile new file mode 100644 index 000000000000..6361b945c5b6 --- /dev/null +++ b/ci/containers/ubuntu-2004.Dockerfile @@ -0,0 +1,50 @@ +# THIS FILE WAS AUTO-GENERATED +# +# $ lcitool dockerfile ubuntu-2004 libnbd +# +# https://gitlab.com/libvirt/libvirt-ci/-/commit/ea3fb1a9a5976a2c70b85e4621dcefefaf1b53f2 + +FROM docker.io/library/ubuntu:20.04 + +RUN export DEBIAN_FRONTEND=noninteractive && \ + apt-get update && \ + apt-get install -y eatmydata && \ + eatmydata apt-get dist-upgrade -y && \ + eatmydata apt-get install --no-install-recommends -y \ + autoconf \ + automake \ + bash-completion \ + ca-certificates \ + ccache \ + clang \ + coreutils \ + diffutils \ + gcc \ + git \ + golang \ + libc6-dev \ + libfuse-dev \ + libgnutls28-dev \ + libtool-bin \ + libxml2-dev \ + locales \ + make \ + ocaml \ + ocaml-findlib \ + perl \ + pkgconf \ + python3-dev \ + qemu-utils \ + sed && \ + eatmydata apt-get autoremove -y && \ + eatmydata apt-get autoclean -y && \ + sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ + dpkg-reconfigure locales && \ + dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ + mkdir -p /usr/libexec/ccache-wrappers && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ + ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/$(basename /usr/bin/gcc) + +ENV LANG "en_US.UTF-8" +ENV MAKE "/usr/bin/make" +ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers" -- 2.31.1
Martin Kletzander
2021-Apr-07 14:55 UTC
[Libguestfs] [libnbd RFC PATCH] First stab at CI infrastructure
On Tue, Mar 30, 2021 at 06:12:06PM +0200, Martin Kletzander wrote:>This is a first try for adding a CI to libnbd. It uses the libvirt-ci to >get as much coverage as possible with the ease of use provided by that >repository. Not all the data are available there at the time of posting >this patch, so if anyone wants to recreate the Containerfiles and >variable files (for cirrus CI) my temporary branch of libvirt-ci called >nbd_prep: > > https://gitlab.com/nertpinx/libvirt-ci/-/tree/nbd_prep > >The result of this branch CI run is available here: > > https://gitlab.com/nertpinx/libnbd/-/pipelines > >As you can see there are errors. I went down a rabbit hole of trying to >figure out one of them, but ended up not being sure what the preferred >way of fixing that particular issue would be. So instead of trying >myself and raising various questions every single day I am posting this >here as handling it myself would take too much time and I would be >bothering other people throughout days and days going forward. > >If there are any questions related to how the CI is running, how it >works, how to replicate CI builds locally or how to change anything, >then I am more than happy to help. > >Actually recreating the builds locally (at least for Linux distributions >and setups) is pretty straightforward. Choose a file from ci/containers >which represents the desired setup, for our example let's pick fedora >rawhide, and build your container and tag it, e.g. using podman (or feel >free to substitute "podman" with "docker"): > > podman build ci/containers/fedora-33.Dockerfile -t libnbd-fedora-rawhide > >That will get you a container tagged `libnbd-fedora-rawhide` that you >can execute the tests on. You can then run whatever you want inside >that container with the current repository passed through like this: > > podman run -it --rm -v .:/repo -w /repo libnbd-fedora-rawhide bash > >which will bind-mount the current directory onto /repo inside the >container and also use that path as the working directory (just so you >do not have to `cd /repo` before any commands. I prefer running bash, >but of course you can just run the build script used in the CI. I have >put all the commands into one file for simplicity, so that you can >simply specifically `ci/build_script.sh`. So simply executing that >script will give you the results and you can experiment right inside >that environment to figure out what is needed. At the same time you can >easily modify any files inside that repository on your host, just like >you are used to, so that you can use your editor and other setups that >work for you. > >Last few things to note: > >- You should make sure that build files do not interfere between the > host and the container, if you want to replicate a clean build you > need to either use VPATH or just clean everything. > >- No tests include running make distcheck as that seems a bit more > broken and could be fixed after more pressing issues are dealt with, > just so the output does not interfere in the meantime. > >Let me know what you think, and have a nice day.Polite ping. Any thoughts? Anything you'd like to change? Thanks, Martin -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 833 bytes Desc: not available URL: <http://listman.redhat.com/archives/libguestfs/attachments/20210407/6d2a931c/attachment.sig>