CI: Refresh OpenSUSE Tumbleweed container

Existing as suse:opensuse-tumbleweed is a historical quirk, and adjusted for
consistency with all the other containers.

Make it non-root, use heredocs for legibility, and use the zypper long names
for the benefit of those wondering what was being referenced or duplicated.

Trim the dependencies substantially.  Testing docs isn't very interesting and
saves a lot of space.  Other savings come from removing a huge pile of
optional QEMU dependencies (QEMU just needs to build the Xen parts to be
useful here, not have a full GUI environment).

Finally, there where some packages such as bc, libssh2-devel, libtasn1-devel
and nasm that I'm not aware of any reason to have had, even historically.

This shaves 1G off the size of the container:

  registry.gitlab.com/xen-project/xen/opensuse  tumbleweed-x86_64      1.39GB
  registry.gitlab.com/xen-project/xen/suse      opensuse-tumbleweed    2.35GB

Furthermore, identify which components of the build use which dependencies,
which will help managing them in the future.

Thanks to Olaf Hering for dependency fixes that have been subsumed into this
total overhaul.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Anthony PERARD <anthony.perard@vates.tech>
Release-Acked-By: Oleksii Kurochko <oleksii.kurochko@gmail.com>
This commit is contained in:
Andrew Cooper committed 2024-07-12 16:27:28 +01:00
1 parent 1e66e18806
commit a8bc31be01
4 files changed
+81 -79

No files matched your search

@@ -0,0 +1,76 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/amd64 opensuse/tumbleweed
LABEL maintainer.name="The Xen Project"
LABEL maintainer.email="xen-devel@lists.xenproject.org"
ENV XEN_TARGET_ARCH=x86_64
RUN <<EOF
#!/bin/bash
set -e
useradd --create-home user
zypper refresh
zypper dist-upgrade -y --no-recommends
DEPS=(
# Xen
bison
checkpolicy
clang
diffutils
findutils
flex
gawk
gcc
make
python3
# Tools (general)
git-core
gzip
patch
perl
pkg-config
wget
# libxenguest dombuilder
'pkgconfig(bzip2)'
'pkgconfig(libzstd)'
'pkgconfig(lzo2)'
'pkgconfig(liblzma)'
'pkgconfig(zlib)'
# libacpi
acpica
# libxl
'pkgconfig(uuid)'
'pkgconfig(yajl)'
# Header Check
gcc-c++
# xentop
'pkgconfig(ncurses)'
# Python bindings
python3-devel
python3-setuptools
# Ocaml bindings/oxenstored
ocaml
ocaml-findlib
# Stubdom (download/extract)
bzip2
tar
# Qemu build
meson
ninja
'pkgconfig(glib-2.0)'
'pkgconfig(pixman-1)'
python3-packaging
)
zypper install -y --no-recommends "${DEPS[@]}"
zypper clean -a
EOF
USER user
WORKDIR /build
@@ -1,74 +0,0 @@
# syntax=docker/dockerfile:1
FROM --platform=linux/amd64 opensuse/tumbleweed
LABEL maintainer.name="The Xen Project" \
maintainer.email="xen-devel@lists.xenproject.org"
ENV USER root
RUN mkdir /build
WORKDIR /build
RUN zypper ref && zypper dup -y --no-recommends
RUN zypper install -y --no-recommends \
acpica \
bc \
bison \
bzip2 \
checkpolicy \
clang \
cmake \
diffutils \
discount \
flex \
gawk \
gcc \
gcc-c++ \
git \
ghostscript \
glib2-devel \
glibc-devel \
gzip \
hostname \
libaio-devel \
libbz2-devel \
libext2fs-devel \
libgnutls-devel \
libjpeg62-devel \
libnl3-devel \
libnuma-devel \
libpixman-1-0-devel \
libpng16-devel \
libssh2-devel \
libtasn1-devel \
libuuid-devel \
libyajl-devel \
libzstd-devel \
lzo-devel \
make \
meson \
nasm \
ncurses-devel \
ninja \
ocaml \
ocaml-findlib-devel \
ocaml-ocamlbuild \
ocaml-ocamldoc \
pandoc \
patch \
pkg-config \
'pkgconfig(libpci)' \
'pkgconfig(sdl)' \
'pkgconfig(sdl2)' \
python3-devel \
python3-setuptools \
# systemd-devel for Xen < 4.19
systemd-devel \
tar \
transfig \
valgrind-devel \
wget \
which \
xz-devel \
zlib-devel \
&& \
zypper clean -a
+4 -4
View File
@@ -668,25 +668,25 @@ opensuse-leap-gcc-debug:
opensuse-tumbleweed-clang:
extends: .clang-x86-64-build
variables:
CONTAINER: suse:opensuse-tumbleweed
CONTAINER: opensuse:tumbleweed-x86_64
allow_failure: true
opensuse-tumbleweed-clang-debug:
extends: .clang-x86-64-build-debug
variables:
CONTAINER: suse:opensuse-tumbleweed
CONTAINER: opensuse:tumbleweed-x86_64
allow_failure: true
opensuse-tumbleweed-gcc:
extends: .gcc-x86-64-build
variables:
CONTAINER: suse:opensuse-tumbleweed
CONTAINER: opensuse:tumbleweed-x86_64
allow_failure: true
opensuse-tumbleweed-gcc-debug:
extends: .gcc-x86-64-build-debug
variables:
CONTAINER: suse:opensuse-tumbleweed
CONTAINER: opensuse:tumbleweed-x86_64
allow_failure: true
# PowerPC builds (x86 cross)
+1 -1
View File
@@ -43,7 +43,7 @@ case "_${CONTAINER}" in
_bionic) CONTAINER="${BASE}/ubuntu:bionic" ;;
_xenial) CONTAINER="${BASE}/ubuntu:xenial" ;;
_opensuse-leap|_leap) CONTAINER="${BASE}/suse:opensuse-leap" ;;
_opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/suse:opensuse-tumbleweed" ;;
_opensuse-tumbleweed|_tumbleweed) CONTAINER="${BASE}/opensuse:tumbleweed-x86_64" ;;
esac
# Use this variable to control whether root should be used
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.