The dbus build needs to validate one axis
- A variety of libvirt versions
We test a variety of libvirt versions by running a build against the
distro provided libvirt packages. All that is then missing is a build
against the latest libvirt git master, which only needs to be run on
a single distro, for which CentOS 8 is picked as a stable long life
base.
RPM build and tests are skipped on CentOS 7 since it lacks the required
min version of some packages.
Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
---
.gitlab-ci.yml | 218 ++++++++++++++++++
ci/containers/README.rst | 14 ++
ci/containers/libvirt-centos-7.Dockerfile | 90 ++++++++
ci/containers/libvirt-centos-8.Dockerfile | 68 ++++++
.../libvirt-centos-stream.Dockerfile | 69 ++++++
ci/containers/libvirt-debian-10.Dockerfile | 61 +++++
ci/containers/libvirt-debian-9.Dockerfile | 64 +++++
ci/containers/libvirt-debian-sid.Dockerfile | 61 +++++
ci/containers/libvirt-fedora-31.Dockerfile | 58 +++++
ci/containers/libvirt-fedora-32.Dockerfile | 58 +++++
.../libvirt-fedora-rawhide.Dockerfile | 59 +++++
ci/containers/libvirt-opensuse-151.Dockerfile | 60 +++++
ci/containers/libvirt-ubuntu-1804.Dockerfile | 64 +++++
ci/containers/libvirt-ubuntu-2004.Dockerfile | 61 +++++
ci/containers/refresh | 32 +++
15 files changed, 1037 insertions(+)
create mode 100644 ci/containers/README.rst
create mode 100644 ci/containers/libvirt-centos-7.Dockerfile
create mode 100644 ci/containers/libvirt-centos-8.Dockerfile
create mode 100644 ci/containers/libvirt-centos-stream.Dockerfile
create mode 100644 ci/containers/libvirt-debian-10.Dockerfile
create mode 100644 ci/containers/libvirt-debian-9.Dockerfile
create mode 100644 ci/containers/libvirt-debian-sid.Dockerfile
create mode 100644 ci/containers/libvirt-fedora-31.Dockerfile
create mode 100644 ci/containers/libvirt-fedora-32.Dockerfile
create mode 100644 ci/containers/libvirt-fedora-rawhide.Dockerfile
create mode 100644 ci/containers/libvirt-opensuse-151.Dockerfile
create mode 100644 ci/containers/libvirt-ubuntu-1804.Dockerfile
create mode 100644 ci/containers/libvirt-ubuntu-2004.Dockerfile
create mode 100755 ci/containers/refresh
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 50dae92..9b61c70 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,6 +1,99 @@
stages:
- prebuild
+ - containers
+ - builds
+
+.container_job_template: &container_job_definition
+ image: docker:stable
+ stage: containers
+ services:
+ - docker:dind
+ before_script:
+ - export TAG="$CI_REGISTRY_IMAGE/ci-$NAME:latest"
+ - export COMMON_TAG="$CI_REGISTRY/libvirt/libvirt-dbus/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/libvirt-$NAME.Dockerfile" ci
+ - docker push "$TAG"
+ after_script:
+ - docker logout
+
+.script_variables: &script_variables |
+ export MAKEFLAGS="-j$(getconf _NPROCESSORS_ONLN)"
+ export SCRATCH_DIR="/tmp/scratch"
+ export VROOT="$SCRATCH_DIR/vroot"
+ export CCACHE_DIR="$PWD/ccache"
+ export CCACHE_MAXSIZE="500M"
+ export PATH="$CCACHE_WRAPPERSDIR:$VROOT/bin:$PATH"
+ export PKG_CONFIG_PATH="$VROOT/lib/pkgconfig"
+ export XDG_DATA_DIRS="$VROOT/share:/usr/share"
+ export GI_TYPELIB_PATH="$VROOT/lib/girepository-1.0"
+ export LD_LIBRARY_PATH="$VROOT/lib"
+
+.git_native_build_job_template: &git_native_build_job_definition
+ image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+ stage: builds
+ cache:
+ paths:
+ - ccache/
+ key: "$CI_JOB_NAME"
+ before_script:
+ - *script_variables
+ script:
+ - pushd "$PWD"
+ - mkdir -p "$SCRATCH_DIR"
+ - cd "$SCRATCH_DIR"
+ - git clone --depth 1 https://gitlab.com/libvirt/libvirt.git
+ - git clone --depth 1 https://gitlab.com/libvirt/libvirt-glib.git
+ - mkdir libvirt/build
+ - cd libvirt/build
+ - ../autogen.sh --prefix="$VROOT" --without-libvirtd
+ - $MAKE install
+ - cd ../..
+ - mkdir libvirt-glib/build
+ - cd libvirt-glib/build
+ - ../autogen.sh --prefix="$VROOT"
+ - $MAKE install
+ - popd
+ - meson build --prefix="$VROOT"
+ - $NINJA -C build
+ - if test "$TESTS" != "skip";
+ then
+ $NINJA -C build test;
+ $NINJA -C build install;
+ $NINJA -C build dist;
+ fi
+ - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip";
+ then
+ rpmbuild --nodeps -ta build/meson-dist/libvirt-dbus*.tar.xz;
+ fi
+
+.dist_native_build_job_template: &dist_native_build_job_definition
+ image: $CI_REGISTRY_IMAGE/ci-$NAME:latest
+ stage: builds
+ cache:
+ paths:
+ - ccache/
+ key: "$CI_JOB_NAME"
+ before_script:
+ - *script_variables
+ script:
+ - meson build --prefix="$VROOT"
+ - $NINJA -C build
+ - if test "$TESTS" != "skip";
+ then
+ $NINJA -C build test;
+ $NINJA -C build install;
+ $NINJA -C build dist;
+ fi
+ - if test -x /usr/bin/rpmbuild && test "$RPM" != "skip";
+ then
+ rpmbuild --nodeps -ta build/meson-dist/libvirt-dbus*.tar.xz;
+ fi
+
# Check that all commits are signed-off for the DCO.
# Skip on "libvirt" namespace, since we only need to run
@@ -14,3 +107,128 @@ check-dco:
except:
variables:
- $CI_PROJECT_NAMESPACE == 'libvirt'
+
+x64-centos-7-container:
+ <<: *container_job_definition
+ variables:
+ NAME: centos-7
+
+x64-centos-8-container:
+ <<: *container_job_definition
+ variables:
+ NAME: centos-8
+
+x64-centos-stream-container:
+ <<: *container_job_definition
+ variables:
+ NAME: centos-stream
+
+x64-debian-9-container:
+ <<: *container_job_definition
+ variables:
+ NAME: debian-9
+
+x64-debian-10-container:
+ <<: *container_job_definition
+ variables:
+ NAME: debian-10
+
+x64-debian-sid-container:
+ <<: *container_job_definition
+ variables:
+ NAME: debian-sid
+
+x64-fedora-31-container:
+ <<: *container_job_definition
+ variables:
+ NAME: fedora-31
+
+x64-fedora-32-container:
+ <<: *container_job_definition
+ variables:
+ NAME: fedora-32
+
+x64-fedora-rawhide-container:
+ <<: *container_job_definition
+ variables:
+ NAME: fedora-rawhide
+
+x64-opensuse-151-container:
+ <<: *container_job_definition
+ variables:
+ NAME: opensuse-151
+
+x64-ubuntu-1804-container:
+ <<: *container_job_definition
+ variables:
+ NAME: ubuntu-1804
+
+x64-ubuntu-2004-container:
+ <<: *container_job_definition
+ variables:
+ NAME: ubuntu-2004
+
+
+
+x64-centos-7-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: centos-7
+ TESTS: skip
+ RPM: skip
+
+x64-centos-8-git-build:
+ <<: *git_native_build_job_definition
+ variables:
+ NAME: centos-8
+
+x64-centos-stream-git-build:
+ <<: *git_native_build_job_definition
+ variables:
+ NAME: centos-stream
+
+x64-debian-9-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: debian-9
+
+x64-debian-10-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: debian-10
+
+x64-debian-sid-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: debian-sid
+
+x64-fedora-31-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: fedora-31
+
+x64-fedora-32-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: fedora-32
+
+x64-fedora-rawhide-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: fedora-rawhide
+
+x64-opensuse-151-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: opensuse-151
+ RPM: skip
+
+x64-ubuntu-1804-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: ubuntu-1804
+
+x64-ubuntu-2004-dist-build:
+ <<: *dist_native_build_job_definition
+ variables:
+ NAME: ubuntu-2004
diff --git a/ci/containers/README.rst b/ci/containers/README.rst
new file mode 100644
index 0000000..530897e
--- /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/libvirt-centos-7.Dockerfile b/ci/containers/libvirt-centos-7.Dockerfile
new file mode 100644
index 0000000..beb1d08
--- /dev/null
+++ b/ci/containers/libvirt-centos-7.Dockerfile
@@ -0,0 +1,90 @@
+FROM centos:7
+
+RUN echo -e '[openvz]\n\
+name=OpenVZ addons\n\
+baseurl=https://download.openvz.org/virtuozzo/releases/openvz-7.0.11-235/x86_64/os/\n\
+enabled=1\n\
+gpgcheck=1\n\
+skip_if_unavailable=0\n\
+metadata_expire=6h\n\
+priority=90\n\
+includepkgs=libprl*' > /etc/yum.repos.d/openvz.repo && \
+ echo -e '-----BEGIN PGP PUBLIC KEY BLOCK-----\n\
+Version: GnuPG v2.0.22 (GNU/Linux)\n\
+\n\
+mI0EVl80nQEEAKrEeyeTCwrzS9kYedZ/sAc/GUqlb81C7pA9SaR3fyck5mVw1Ogk\n\
+YdmNBPM2kY7QDxR9F0EpSpnxSCAXZXugsQ8KzZ0DRLVeBDQyGs9IGK5hI0zzxIil\n\
+BzfvIexLiQQhLy7YlIi8Jt/uUqKkW0pIMNMGcduY97VATtczpncpkmSzABEBAAG0\n\
+SFZpcnR1b3p6byBUZWFtIChHUEcga2V5IHNpZ25hdHVyZSBmb3IgcGFja2FnZXMp\n\
+IDxzZWN1cml0eUB2aXJ0dW96em8uY29tPoi5BBMBAgAjBQJWXzSdAhsDBwsJCAcD\n\
+AgEGFQgCCQoLBBYCAwECHgECF4AACgkQygt9GUTNrSruIgP/er70Eyo73A1gfrjv\n\
+oPUkyo4rslVRZu3qqCwoMFtJc/Z/UxWgEka1buorlcGLa6eO/EZ49c0n+KGa4Kvt\n\
+EUboIq0yEu5i0FyAj92ifm+hNhoAbGfm0cZ4/fD0oGr3l8OsQo4+iHX4xAPwFe7Y\n\
+zABuB8I1ZDZ4OIp5tDfTTuF2LT24jQRWXzSdAQQAog2Aqb+Ptl68O7cQhWLjVGkj\n\
+yyigZrdeReLx3HloKJPBeQ/kA6uvMJc/IYS3uppMWXv9v+QenS6uhP1TUJ2k9FvM\n\
+t94MQZfALN7Vpf8AF+UeWu4Ru+y4BNzcFhrPhIFNFChOR2QqW6FkgE57D9I177NC\n\
+oJMyrlNe8wcGa178An8AEQEAAYifBBgBAgAJBQJWXzSdAhsMAAoJEMoLfRlEza0q\n\
+bKwD/3+OFVIEXnIv5XgdGRNX5fHggsUN1bb8gva7HANRlKdd4LD8foDM3F/yv/3V\n\
+igG14D5EjKz56SaBDNgiI4++hOzb2M8jhAsR86jxkXFrrP1U3ZNRKg6av9DPFAPS\n\
+WEiJKtQrZDJloqtyi/mmRa1VsV7RYR0VPJjhK/R8EQ7Ysshy\n\
+=fRMg\n\
+-----END PGP PUBLIC KEY BLOCK-----' > /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \
+ rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-OpenVZ && \
+ yum install -y epel-release && \
+ yum update -y && \
+ yum install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-common \
+ glibc-devel \
+ libtool \
+ libvirt-devel \
+ libvirt-gobject-devel \
+ lsof \
+ make \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-pip \
+ python3-setuptools \
+ python3-wheel \
+ python36-dbus \
+ python36-docutils \
+ python36-gobject \
+ python36-pytest \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ yum autoremove -y && \
+ yum clean all -y && \
+ 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)
+
+RUN pip3 install \
+ meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
+
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja-build"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-centos-8.Dockerfile b/ci/containers/libvirt-centos-8.Dockerfile
new file mode 100644
index 0000000..43c4093
--- /dev/null
+++ b/ci/containers/libvirt-centos-8.Dockerfile
@@ -0,0 +1,68 @@
+FROM centos:8
+
+RUN dnf install 'dnf-command(config-manager)' -y && \
+ dnf config-manager --set-enabled -y PowerTools && \
+ dnf install -y epel-release && \
+ dnf update -y && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ gobject-introspection-devel \
+ gtk-doc \
+ libnl3-devel \
+ libtirpc-devel \
+ libtool \
+ libxml2 \
+ libxml2-devel \
+ libxslt \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-flake8 \
+ python3-gobject \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpcgen \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vala \
+ vim && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-centos-stream.Dockerfile b/ci/containers/libvirt-centos-stream.Dockerfile
new file mode 100644
index 0000000..ff487f3
--- /dev/null
+++ b/ci/containers/libvirt-centos-stream.Dockerfile
@@ -0,0 +1,69 @@
+FROM centos:8
+
+RUN dnf install -y centos-release-stream && \
+ dnf install 'dnf-command(config-manager)' -y && \
+ dnf config-manager --set-enabled -y Stream-PowerTools && \
+ dnf install -y epel-release && \
+ dnf update -y && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-devel \
+ glibc-langpack-en \
+ gnutls-devel \
+ gobject-introspection-devel \
+ gtk-doc \
+ libnl3-devel \
+ libtirpc-devel \
+ libtool \
+ libxml2 \
+ libxml2-devel \
+ libxslt \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-flake8 \
+ python3-gobject \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpcgen \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vala \
+ vim && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-debian-10.Dockerfile b/ci/containers/libvirt-debian-10.Dockerfile
new file mode 100644
index 0000000..b3a5879
--- /dev/null
+++ b/ci/containers/libvirt-debian-10.Dockerfile
@@ -0,0 +1,61 @@
+FROM debian:10
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get dist-upgrade -y && \
+ apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ autopoint \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ flake8 \
+ gcc \
+ gdb \
+ gettext \
+ git \
+ libc6-dev \
+ libglib2.0-dev \
+ libtool \
+ libtool-bin \
+ libvirt-dev \
+ libvirt-glib-1.0-dev \
+ locales \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconf \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-gi \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ apt-get autoremove -y && \
+ apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-debian-9.Dockerfile b/ci/containers/libvirt-debian-9.Dockerfile
new file mode 100644
index 0000000..fab5187
--- /dev/null
+++ b/ci/containers/libvirt-debian-9.Dockerfile
@@ -0,0 +1,64 @@
+FROM debian:9
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get dist-upgrade -y && \
+ apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ autopoint \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ flake8 \
+ gcc \
+ gdb \
+ gettext \
+ git \
+ libc6-dev \
+ libglib2.0-dev \
+ libtool \
+ libtool-bin \
+ libvirt-dev libvirt-daemon \
+ libvirt-glib-1.0-dev \
+ locales \
+ lsof \
+ make \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconf \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-gi \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ apt-get autoremove -y && \
+ apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ 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)
+
+RUN pip3 install \
+ meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
+
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-debian-sid.Dockerfile b/ci/containers/libvirt-debian-sid.Dockerfile
new file mode 100644
index 0000000..20ab50b
--- /dev/null
+++ b/ci/containers/libvirt-debian-sid.Dockerfile
@@ -0,0 +1,61 @@
+FROM debian:sid
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get dist-upgrade -y && \
+ apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ autopoint \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ flake8 \
+ gcc \
+ gdb \
+ gettext \
+ git \
+ libc6-dev \
+ libglib2.0-dev \
+ libtool \
+ libtool-bin \
+ libvirt-dev \
+ libvirt-glib-1.0-dev \
+ locales \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconf \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-gi \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ apt-get autoremove -y && \
+ apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-fedora-31.Dockerfile b/ci/containers/libvirt-fedora-31.Dockerfile
new file mode 100644
index 0000000..84c290c
--- /dev/null
+++ b/ci/containers/libvirt-fedora-31.Dockerfile
@@ -0,0 +1,58 @@
+FROM fedora:31
+
+RUN dnf update -y && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ cppi \
+ dbus-daemon \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-devel \
+ glibc-langpack-en \
+ libtool \
+ libvirt-devel \
+ libvirt-gobject-devel \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-flake8 \
+ python3-gobject \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-fedora-32.Dockerfile b/ci/containers/libvirt-fedora-32.Dockerfile
new file mode 100644
index 0000000..d4a656d
--- /dev/null
+++ b/ci/containers/libvirt-fedora-32.Dockerfile
@@ -0,0 +1,58 @@
+FROM fedora:32
+
+RUN dnf update -y && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ cppi \
+ dbus-daemon \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-devel \
+ glibc-langpack-en \
+ libtool \
+ libvirt-devel \
+ libvirt-gobject-devel \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-flake8 \
+ python3-gobject \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-fedora-rawhide.Dockerfile b/ci/containers/libvirt-fedora-rawhide.Dockerfile
new file mode 100644
index 0000000..2b7b712
--- /dev/null
+++ b/ci/containers/libvirt-fedora-rawhide.Dockerfile
@@ -0,0 +1,59 @@
+FROM fedora:rawhide
+
+RUN dnf update -y --nogpgcheck fedora-gpg-keys && \
+ dnf update -y && \
+ dnf install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ cppi \
+ dbus-daemon \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-devel \
+ glibc-langpack-en \
+ libtool \
+ libvirt-devel \
+ libvirt-gobject-devel \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-flake8 \
+ python3-gobject \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ dnf autoremove -y && \
+ dnf clean all -y && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-opensuse-151.Dockerfile b/ci/containers/libvirt-opensuse-151.Dockerfile
new file mode 100644
index 0000000..f8cc366
--- /dev/null
+++ b/ci/containers/libvirt-opensuse-151.Dockerfile
@@ -0,0 +1,60 @@
+FROM opensuse/leap:15.1
+
+RUN zypper update -y && \
+ zypper install -y \
+ autoconf \
+ automake \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ cppi \
+ dbus-1 \
+ gcc \
+ gdb \
+ gettext \
+ gettext-devel \
+ git \
+ glib2-devel \
+ glibc-devel \
+ glibc-locale \
+ libtool \
+ libvirt-devel \
+ libvirt-glib-devel \
+ lsof \
+ make \
+ net-tools \
+ ninja \
+ patch \
+ perl \
+ pkgconfig \
+ python3 \
+ python3-dbus-python \
+ python3-docutils \
+ python3-flake8 \
+ python3-gobject \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ rpm-build \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ zypper clean --all && \
+ 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)
+
+RUN pip3 install \
+ meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
+
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-ubuntu-1804.Dockerfile b/ci/containers/libvirt-ubuntu-1804.Dockerfile
new file mode 100644
index 0000000..c0e2f6d
--- /dev/null
+++ b/ci/containers/libvirt-ubuntu-1804.Dockerfile
@@ -0,0 +1,64 @@
+FROM ubuntu:18.04
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get dist-upgrade -y && \
+ apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ autopoint \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ flake8 \
+ gcc \
+ gdb \
+ gettext \
+ git \
+ libc6-dev \
+ libglib2.0-dev \
+ libtool \
+ libtool-bin \
+ libvirt-dev libvirt-daemon \
+ libvirt-glib-1.0-dev \
+ locales \
+ lsof \
+ make \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconf \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-gi \
+ python3-pip \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ apt-get autoremove -y && \
+ apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ 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)
+
+RUN pip3 install \
+ meson==0.49.0
+
+ENV LANG "en_US.UTF-8"
+
+ENV MAKE "/usr/bin/make"
+ENV NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/libvirt-ubuntu-2004.Dockerfile b/ci/containers/libvirt-ubuntu-2004.Dockerfile
new file mode 100644
index 0000000..86bd044
--- /dev/null
+++ b/ci/containers/libvirt-ubuntu-2004.Dockerfile
@@ -0,0 +1,61 @@
+FROM ubuntu:20.04
+
+RUN export DEBIAN_FRONTEND=noninteractive && \
+ apt-get update && \
+ apt-get dist-upgrade -y && \
+ apt-get install --no-install-recommends -y \
+ autoconf \
+ automake \
+ autopoint \
+ bash \
+ bash-completion \
+ ca-certificates \
+ ccache \
+ chrony \
+ dbus \
+ flake8 \
+ gcc \
+ gdb \
+ gettext \
+ git \
+ libc6-dev \
+ libglib2.0-dev \
+ libtool \
+ libtool-bin \
+ libvirt-dev \
+ libvirt-glib-1.0-dev \
+ locales \
+ lsof \
+ make \
+ meson \
+ net-tools \
+ ninja-build \
+ patch \
+ perl \
+ pkgconf \
+ python3 \
+ python3-dbus \
+ python3-docutils \
+ python3-gi \
+ python3-pytest \
+ python3-setuptools \
+ python3-wheel \
+ screen \
+ strace \
+ sudo \
+ vim && \
+ apt-get autoremove -y && \
+ apt-get autoclean -y && \
+ sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
+ dpkg-reconfigure locales && \
+ 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 NINJA "/usr/bin/ninja"
+ENV PYTHON "/usr/bin/python3"
+
+ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
diff --git a/ci/containers/refresh b/ci/containers/refresh
new file mode 100755
index 0000000..bf62d51
--- /dev/null
+++ b/ci/containers/refresh
@@ -0,0 +1,32 @@
+#!/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 -v freebsd)
+
+for host in $HOSTS
+do
+ if test "$host" = "libvirt-centos-8" || test "$host" = "libvirt-centos-stream"
+ then
+ $LCITOOL dockerfile $host libvirt+minimal,libvirt-glib,libvirt-dbus > $host.Dockerfile
+ else
+ $LCITOOL dockerfile $host libvirt+dist,libvirt-glib+dist,libvirt-dbus > $host.Dockerfile
+ fi
+
+ if test "$host" = "libvirt-debian-9" || test "$host" = "libvirt-ubuntu-1804"
+ then
+ sed -i -e 's/libvirt-dev/libvirt-dev libvirt-daemon/' $host.Dockerfile
+ fi
+done
--
2.26.2
On Wed, 2020-06-24 at 17:26 +0100, Daniel P. Berrangé wrote:
> The dbus build needs to validate one axis
>
> - A variety of libvirt versions
>
> We test a variety of libvirt versions by running a build against the
> distro provided libvirt packages. All that is then missing is a build
> against the latest libvirt git master, which only needs to be run on
> a single distro, for which CentOS 8 is picked as a stable long life
> base.
This...
> +++ b/.gitlab-ci.yml
> +x64-centos-8-git-build:
> + <<: *git_native_build_job_definition
> + variables:
> + NAME: centos-8
> +
> +x64-centos-stream-git-build:
> + <<: *git_native_build_job_definition
> + variables:
> + NAME: centos-stream
... contradicts this...
> +++ b/ci/containers/refresh
> +for host in $HOSTS
> +do
> + if test "$host" = "libvirt-centos-8" || test "$host" = "libvirt-centos-stream"
> + then
> + $LCITOOL dockerfile $host libvirt+minimal,libvirt-glib,libvirt-dbus > $host.Dockerfile
... and this.
What's the rationale for building libvirt and libvirt-glib from git
on CentOS Stream in addition to CentOS 8?
> + if test "$host" = "libvirt-debian-9" || test "$host" = "libvirt-ubuntu-1804"
> + then
> + sed -i -e 's/libvirt-dev/libvirt-dev libvirt-daemon/' $host.Dockerfile
This line is not indented correctly.
Additionally, please add a comment explaining why this hack is needed
in the first place, something along the lines of
Before Debian version 4.10.0-2, some of the runtime files needed by
libvirt were mistakenly shipped in the libvirt-daemon package
One more nitpick: the conditional would look nicer and be easier to
tweak later as
if test "$host" = "libvirt-debian-9" ||
test "$host" = "libvirt-ubuntu-1804"
then
Same applies above.
--
Andrea Bolognani / Red Hat / Virtualization
On Wed, Jun 24, 2020 at 07:16:16PM +0200, Andrea Bolognani wrote: > On Wed, 2020-06-24 at 17:26 +0100, Daniel P. Berrangé wrote: > > The dbus build needs to validate one axis > > > > - A variety of libvirt versions > > > > We test a variety of libvirt versions by running a build against the > > distro provided libvirt packages. All that is then missing is a build > > against the latest libvirt git master, which only needs to be run on > > a single distro, for which CentOS 8 is picked as a stable long life > > base. > > This... > > > +++ b/.gitlab-ci.yml > > +x64-centos-8-git-build: > > + <<: *git_native_build_job_definition > > + variables: > > + NAME: centos-8 > > + > > +x64-centos-stream-git-build: > > + <<: *git_native_build_job_definition > > + variables: > > + NAME: centos-stream > > ... contradicts this... > > > +++ b/ci/containers/refresh > > +for host in $HOSTS > > +do > > + if test "$host" = "libvirt-centos-8" || test "$host" = "libvirt-centos-stream" > > + then > > + $LCITOOL dockerfile $host libvirt+minimal,libvirt-glib,libvirt-dbus > $host.Dockerfile > > ... and this. > > What's the rationale for building libvirt and libvirt-glib from git > on CentOS Stream in addition to CentOS 8? There's something odd with the repos, probably due to modularity. The end result is that the libvirt-gobject-devel packages are missing, and I've not found where they might live. This affects 8 & 8-Stream the same. > > > + if test "$host" = "libvirt-debian-9" || test "$host" = "libvirt-ubuntu-1804" > > + then > > + sed -i -e 's/libvirt-dev/libvirt-dev libvirt-daemon/' $host.Dockerfile > > This line is not indented correctly. > > Additionally, please add a comment explaining why this hack is needed > in the first place, something along the lines of > > Before Debian version 4.10.0-2, some of the runtime files needed by > libvirt were mistakenly shipped in the libvirt-daemon package > > One more nitpick: the conditional would look nicer and be easier to > tweak later as > > if test "$host" = "libvirt-debian-9" || > test "$host" = "libvirt-ubuntu-1804" > then > > Same applies above. Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Thu, 2020-06-25 at 13:32 +0100, Daniel P. Berrangé wrote: > On Wed, Jun 24, 2020 at 07:16:16PM +0200, Andrea Bolognani wrote: > > What's the rationale for building libvirt and libvirt-glib from git > > on CentOS Stream in addition to CentOS 8? > > There's something odd with the repos, probably due to modularity. The > end result is that the libvirt-gobject-devel packages are missing, and > I've not found where they might live. This affects 8 & 8-Stream the > same. Oh, so you're building libvirt-glib from git in order to work around this limitation. Sound reasonable, if hacky :) We should really try to figure out why the packages are absent from the repos, however. Wasn't the PowerTools repo supposed to take care of that? I'm pretty sure I've seen this situation for at least one package myself. -- Andrea Bolognani / Red Hat / Virtualization
On Thu, Jun 25, 2020 at 04:16:35PM +0200, Andrea Bolognani wrote: > On Thu, 2020-06-25 at 13:32 +0100, Daniel P. Berrangé wrote: > > On Wed, Jun 24, 2020 at 07:16:16PM +0200, Andrea Bolognani wrote: > > > What's the rationale for building libvirt and libvirt-glib from git > > > on CentOS Stream in addition to CentOS 8? > > > > There's something odd with the repos, probably due to modularity. The > > end result is that the libvirt-gobject-devel packages are missing, and > > I've not found where they might live. This affects 8 & 8-Stream the > > same. > > Oh, so you're building libvirt-glib from git in order to work around > this limitation. Sound reasonable, if hacky :) > > We should really try to figure out why the packages are absent from > the repos, however. Wasn't the PowerTools repo supposed to take care > of that? I'm pretty sure I've seen this situation for at least one > package myself. It isn't in the repos that I've looked at http://linux-mirrors.fnal.gov/linux/centos/8/BaseOS/x86_64/os/Packages/ http://linux-mirrors.fnal.gov/linux/centos/8/AppStream/x86_64/os/Packages/ http://linux-mirrors.fnal.gov/linux/centos/8/PowerTools/x86_64/os/Packages/ and I don't really want to spend time debugging modularity in centos Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Thu, 2020-06-25 at 15:20 +0100, Daniel P. Berrangé wrote: > On Thu, Jun 25, 2020 at 04:16:35PM +0200, Andrea Bolognani wrote: > > We should really try to figure out why the packages are absent from > > the repos, however. Wasn't the PowerTools repo supposed to take care > > of that? I'm pretty sure I've seen this situation for at least one > > package myself. > > It isn't in the repos that I've looked at > > http://linux-mirrors.fnal.gov/linux/centos/8/BaseOS/x86_64/os/Packages/ > http://linux-mirrors.fnal.gov/linux/centos/8/AppStream/x86_64/os/Packages/ > http://linux-mirrors.fnal.gov/linux/centos/8/PowerTools/x86_64/os/Packages/ > > and I don't really want to spend time debugging modularity in centos What about http://linux-mirrors.fnal.gov/linux/centos/8/virt/x86_64/advanced-virtualization/Packages/l/ ? I can see libvirt-gobject-devel in there. -- Andrea Bolognani / Red Hat / Virtualization
On Thu, Jun 25, 2020 at 04:34:51PM +0200, Andrea Bolognani wrote: > On Thu, 2020-06-25 at 15:20 +0100, Daniel P. Berrangé wrote: > > On Thu, Jun 25, 2020 at 04:16:35PM +0200, Andrea Bolognani wrote: > > > We should really try to figure out why the packages are absent from > > > the repos, however. Wasn't the PowerTools repo supposed to take care > > > of that? I'm pretty sure I've seen this situation for at least one > > > package myself. > > > > It isn't in the repos that I've looked at > > > > http://linux-mirrors.fnal.gov/linux/centos/8/BaseOS/x86_64/os/Packages/ > > http://linux-mirrors.fnal.gov/linux/centos/8/AppStream/x86_64/os/Packages/ > > http://linux-mirrors.fnal.gov/linux/centos/8/PowerTools/x86_64/os/Packages/ > > > > and I don't really want to spend time debugging modularity in centos > > What about > > http://linux-mirrors.fnal.gov/linux/centos/8/virt/x86_64/advanced-virtualization/Packages/l/ > > ? I can see libvirt-gobject-devel in there. I dont see any advanced-virt for centos stream though Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
On Wed, 2020-06-24 at 17:26 +0100, Daniel P. Berrangé wrote: > +++ b/ci/containers/libvirt-centos-7.Dockerfile > + dnf install -y \ > + python3-docutils \ Sorry, one more thing: if I refresh Dockerfiles by pointing the included script to lcitool coming from libvirt-ci master, this line disappears from each Dockerfile except those for CentOS 8 and CentOS Stream. Since it's actually supposed to be there, should I assume that you have local libvirt-ci patches that add a python3-docutils dependency to the libvirt-dbus project? -- Andrea Bolognani / Red Hat / Virtualization
© 2016 - 2026 Red Hat, Inc.