Import QEMU upstream snapshot d2e570c

Upstream: https://gitlab.com/qemu-project/qemu.git

Upstream-Commit: d2e570cc0f97b936902a5b1b86b73c0f5998b475
This commit is contained in:
Yaya48 committed 2026-08-31 02:15:30 +02:00
commit cf256aa081
11315 files changed
+3598369

No files matched your search

+141
View File
@@ -0,0 +1,141 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all alpine-323 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/alpine:3.23
RUN apk update && \
apk upgrade && \
apk add \
alsa-lib-dev \
attr-dev \
bash \
bc \
bison \
bzip2 \
bzip2-dev \
ca-certificates \
capstone-dev \
ccache \
ceph-dev \
clang \
cmocka-dev \
coreutils \
ctags \
curl-dev \
cyrus-sasl-dev \
dbus \
diffutils \
dtc-dev \
eudev-dev \
findutils \
flex \
fuse3-dev \
gcc \
gcovr \
gettext \
git \
glib-dev \
glib-static \
gnutls-dev \
gtk+3.0-dev \
gtk-vnc-dev \
json-c-dev \
libaio-dev \
libbpf-dev \
libcap-ng-dev \
libcbor-dev \
libdrm-dev \
libepoxy-dev \
libffi-dev \
libgcrypt-dev \
libjpeg-turbo-dev \
libnfs-dev \
libpng-dev \
libseccomp-dev \
libselinux-dev \
libslirp-dev \
libssh-dev \
libtasn1-dev \
liburing-dev \
libusb-dev \
libxdp-dev \
linux-pam-dev \
llvm \
lttng-ust-dev \
lzo-dev \
make \
mesa-dev \
meson \
mtools \
multipath-tools \
musl-dev \
ncurses-dev \
ndctl-dev \
net-tools \
nettle-dev \
numactl-dev \
openssh-client \
pcre2-dev \
pipewire-dev \
pixman-dev \
pkgconf \
pulseaudio-dev \
py3-pip \
py3-setuptools \
py3-sphinx \
py3-sphinx_rtd_theme \
py3-wheel \
python3 \
rpm2cpio \
rust \
rust-bindgen \
samurai \
sdl2-dev \
sdl2_image-dev \
sed \
snappy-dev \
sndio-dev \
socat \
sparse \
spice-dev \
spice-protocol \
swtpm \
tar \
tesseract-ocr \
usbredir-dev \
util-linux \
vde2-dev \
virglrenderer-dev \
vte3-dev \
vulkan-tools \
which \
xen-dev \
xorriso \
zlib-dev \
zlib-static \
zstd \
zstd-dev && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
apk list --installed | 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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
# https://gitlab.alpinelinux.org/alpine/aports/-/issues/17463
RUN apk add clang19-libclang
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
+147
View File
@@ -0,0 +1,147 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all centos-stream-9 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM quay.io/centos/centos:stream9
RUN dnf --quiet distro-sync -y && \
dnf --quiet install 'dnf-command(config-manager)' -y && \
dnf --quiet config-manager --set-enabled -y crb && \
dnf --quiet install -y epel-release && \
dnf --quiet install -y epel-next-release && \
dnf --quiet install -y \
SDL2-devel \
alsa-lib-devel \
bash \
bc \
bindgen-cli \
bison \
brlapi-devel \
bzip2 \
bzip2-devel \
ca-certificates \
capstone-devel \
ccache \
clang \
compiler-rt \
coreutils-single \
ctags \
cyrus-sasl-devel \
daxctl-devel \
dbus-daemon \
device-mapper-multipath-devel \
diffutils \
findutils \
flex \
fuse3-devel \
gcc \
gettext \
git \
glib2-devel \
glib2-static \
glibc-langpack-en \
glibc-static \
gnutls-devel \
gtk3-devel \
hostname \
jemalloc-devel \
json-c-devel \
libaio-devel \
libasan \
libattr-devel \
libbpf-devel \
libcacard-devel \
libcap-ng-devel \
libcmocka-devel \
libcurl-devel \
libdrm-devel \
libepoxy-devel \
libfdt-devel \
libffi-devel \
libgcrypt-devel \
libiscsi-devel \
libjpeg-devel \
libnfs-devel \
libpmem-devel \
libpng-devel \
librbd-devel \
libseccomp-devel \
libselinux-devel \
libslirp-devel \
libssh-devel \
libtasn1-devel \
libubsan \
liburing-devel \
libusbx-devel \
libxdp-devel \
libzstd-devel \
llvm \
lttng-ust-devel \
lzo-devel \
make \
mesa-libgbm-devel \
meson \
mtools \
ncurses-devel \
nettle-devel \
ninja-build \
numactl-devel \
openssh-clients \
pam-devel \
pcre-static \
pipewire-devel \
pixman-devel \
pkgconfig \
pulseaudio-libs-devel \
python3-tomli \
python3.11 \
python3.11-pip \
python3.11-setuptools \
python3.11-wheel \
rdma-core-devel \
rust \
rust-std-static \
sed \
snappy-devel \
socat \
spice-protocol \
swtpm \
systemd-devel \
systemtap-sdt-devel \
tar \
usbredir-devel \
util-linux \
vte291-devel \
vulkan-tools \
which \
xorriso \
zlib-devel \
zlib-static \
zstd && \
dnf --quiet autoremove -y && \
dnf --quiet clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
RUN /usr/bin/pip3.11 install \
sphinx \
sphinx-rtd-theme
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3.11"
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,107 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all debian-13 qemu-minimal
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bison \
bzip2 \
ca-certificates \
ccache \
findutils \
flex \
gcc \
git \
libc6-dev \
libfdt-dev \
libffi-dev \
libglib2.0-dev \
libpixman-1-dev \
locales \
make \
ninja-build \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-venv \
python3-wheel \
sed \
tar && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/gcc
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
# extras for cross and alternate toolchains
RUN apt update && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
clang\
dpkg-dev\
gdb-multiarch\
libclang-rt-dev
ENV AVAILABLE_COMPILERS="\
gcc-aarch64-linux-gnu \
libc6-dev-arm64-cross \
gcc-arm-linux-gnueabihf \
libc6-dev-armhf-cross \
gcc-alpha-linux-gnu \
libc6.1-dev-alpha-cross \
gcc-mips-linux-gnu \
libc6-dev-mips-cross \
gcc-mips64-linux-gnuabi64 \
libc6-dev-mips64-cross \
gcc-mips64el-linux-gnuabi64 \
libc6-dev-mips64el-cross \
gcc-mipsel-linux-gnu \
libc6-dev-mipsel-cross \
gcc-powerpc64le-linux-gnu \
libc6-dev-ppc64el-cross \
gcc-riscv64-linux-gnu \
libc6-dev-riscv64-cross \
gcc-s390x-linux-gnu \
libc6-dev-s390x-cross\
gcc-sh4-linux-gnu \
libc6-dev-sh4-cross \
"
RUN if dpkg-architecture -e amd64; then \
export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc-linux-gnu libc6-dev-powerpc-cross"; \
export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
fi && \
apt update && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
${AVAILABLE_COMPILERS} && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
ENV QEMU_CONFIGURE_OPTS=--disable-docs
ENV DEF_TARGET_LIST=aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
@@ -0,0 +1,187 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch x86_64 debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture amd64 && \
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-x86-64-linux-gnu \
libaio-dev:amd64 \
libasan8:amd64 \
libasound2-dev:amd64 \
libattr1-dev:amd64 \
libbpf-dev:amd64 \
libbrlapi-dev:amd64 \
libbz2-dev:amd64 \
libc6-dev:amd64 \
libcacard-dev:amd64 \
libcap-ng-dev:amd64 \
libcapstone-dev:amd64 \
libcbor-dev:amd64 \
libcmocka-dev:amd64 \
libcurl4-gnutls-dev:amd64 \
libdaxctl-dev:amd64 \
libdrm-dev:amd64 \
libepoxy-dev:amd64 \
libfdt-dev:amd64 \
libffi-dev:amd64 \
libfuse3-dev:amd64 \
libgbm-dev:amd64 \
libgcrypt20-dev:amd64 \
libglib2.0-dev:amd64 \
libgnutls28-dev:amd64 \
libgtk-3-dev:amd64 \
libgtk-vnc-2.0-dev:amd64 \
libibverbs-dev:amd64 \
libiscsi-dev:amd64 \
libjemalloc-dev:amd64 \
libjpeg62-turbo-dev:amd64 \
libjson-c-dev:amd64 \
liblttng-ust-dev:amd64 \
liblzo2-dev:amd64 \
libncursesw5-dev:amd64 \
libnfs-dev:amd64 \
libnuma-dev:amd64 \
libpam0g-dev:amd64 \
libpcre2-dev:amd64 \
libpipewire-0.3-dev:amd64 \
libpixman-1-dev:amd64 \
libpmem-dev:amd64 \
libpng-dev:amd64 \
libpulse-dev:amd64 \
librbd-dev:amd64 \
librdmacm-dev:amd64 \
libsasl2-dev:amd64 \
libsdl2-dev:amd64 \
libsdl2-image-dev:amd64 \
libseccomp-dev:amd64 \
libselinux1-dev:amd64 \
libslirp-dev:amd64 \
libsnappy-dev:amd64 \
libsndio-dev:amd64 \
libspice-protocol-dev:amd64 \
libspice-server-dev:amd64 \
libssh-dev:amd64 \
libstd-rust-dev:amd64 \
libsystemd-dev:amd64 \
libtasn1-6-dev:amd64 \
libubsan1:amd64 \
libudev-dev:amd64 \
liburing-dev:amd64 \
libusb-1.0-0-dev:amd64 \
libusbredirhost-dev:amd64 \
libvdeplug-dev:amd64 \
libvirglrenderer-dev:amd64 \
libvte-2.91-dev:amd64 \
libxdp-dev:amd64 \
libxen-dev:amd64 \
libzstd-dev:amd64 \
nettle-dev:amd64 \
systemtap-sdt-dev:amd64 \
zlib1g-dev:amd64 && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[binaries]\n\
c = '/usr/bin/x86_64-linux-gnu-gcc'\n\
ar = '/usr/bin/x86_64-linux-gnu-gcc-ar'\n\
strip = '/usr/bin/x86_64-linux-gnu-strip'\n\
pkgconfig = '/usr/bin/x86_64-linux-gnu-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'x86_64'\n\
cpu = 'x86_64'\n\
endian = 'little'\n" > /usr/local/share/meson/cross/x86_64-linux-gnu && \
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/x86_64-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-linux-gnu-gcc
ENV ABI="x86_64-linux-gnu"
ENV MESON_OPTS="--cross-file=x86_64-linux-gnu"
ENV RUST_TARGET="x86_64-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-linux-gnu-
ENV DEF_TARGET_LIST=x86_64-softmmu,x86_64-linux-user,i386-softmmu,i386-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,186 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch aarch64 debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
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 \
libaio-dev:arm64 \
libasan8:arm64 \
libasound2-dev:arm64 \
libattr1-dev:arm64 \
libbpf-dev:arm64 \
libbrlapi-dev:arm64 \
libbz2-dev:arm64 \
libc6-dev:arm64 \
libcacard-dev:arm64 \
libcap-ng-dev:arm64 \
libcapstone-dev:arm64 \
libcbor-dev:arm64 \
libcmocka-dev:arm64 \
libcurl4-gnutls-dev:arm64 \
libdaxctl-dev:arm64 \
libdrm-dev:arm64 \
libepoxy-dev:arm64 \
libfdt-dev:arm64 \
libffi-dev:arm64 \
libfuse3-dev:arm64 \
libgbm-dev:arm64 \
libgcrypt20-dev:arm64 \
libglib2.0-dev:arm64 \
libgnutls28-dev:arm64 \
libgtk-3-dev:arm64 \
libgtk-vnc-2.0-dev:arm64 \
libibverbs-dev:arm64 \
libiscsi-dev:arm64 \
libjemalloc-dev:arm64 \
libjpeg62-turbo-dev:arm64 \
libjson-c-dev:arm64 \
liblttng-ust-dev:arm64 \
liblzo2-dev:arm64 \
libncursesw5-dev:arm64 \
libnfs-dev:arm64 \
libnuma-dev:arm64 \
libpam0g-dev:arm64 \
libpcre2-dev:arm64 \
libpipewire-0.3-dev:arm64 \
libpixman-1-dev:arm64 \
libpng-dev:arm64 \
libpulse-dev:arm64 \
librbd-dev:arm64 \
librdmacm-dev:arm64 \
libsasl2-dev:arm64 \
libsdl2-dev:arm64 \
libsdl2-image-dev:arm64 \
libseccomp-dev:arm64 \
libselinux1-dev:arm64 \
libslirp-dev:arm64 \
libsnappy-dev:arm64 \
libsndio-dev:arm64 \
libspice-protocol-dev:arm64 \
libspice-server-dev:arm64 \
libssh-dev:arm64 \
libstd-rust-dev:arm64 \
libsystemd-dev:arm64 \
libtasn1-6-dev:arm64 \
libubsan1:arm64 \
libudev-dev:arm64 \
liburing-dev:arm64 \
libusb-1.0-0-dev:arm64 \
libusbredirhost-dev:arm64 \
libvdeplug-dev:arm64 \
libvirglrenderer-dev:arm64 \
libvte-2.91-dev:arm64 \
libxdp-dev:arm64 \
libxen-dev:arm64 \
libzstd-dev:arm64 \
nettle-dev:arm64 \
systemtap-sdt-dev:arm64 \
zlib1g-dev:arm64 && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[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'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
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-gcc
ENV ABI="aarch64-linux-gnu"
ENV MESON_OPTS="--cross-file=aarch64-linux-gnu"
ENV RUST_TARGET="aarch64-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=aarch64-linux-gnu-
ENV DEF_TARGET_LIST=aarch64-softmmu,aarch64-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,184 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch armv7l debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
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 \
libaio-dev:armhf \
libasan8:armhf \
libasound2-dev:armhf \
libattr1-dev:armhf \
libbpf-dev:armhf \
libbrlapi-dev:armhf \
libbz2-dev:armhf \
libc6-dev:armhf \
libcacard-dev:armhf \
libcap-ng-dev:armhf \
libcapstone-dev:armhf \
libcbor-dev:armhf \
libcmocka-dev:armhf \
libcurl4-gnutls-dev:armhf \
libdaxctl-dev:armhf \
libdrm-dev:armhf \
libepoxy-dev:armhf \
libfdt-dev:armhf \
libffi-dev:armhf \
libfuse3-dev:armhf \
libgbm-dev:armhf \
libgcrypt20-dev:armhf \
libglib2.0-dev:armhf \
libgnutls28-dev:armhf \
libgtk-3-dev:armhf \
libgtk-vnc-2.0-dev:armhf \
libibverbs-dev:armhf \
libiscsi-dev:armhf \
libjemalloc-dev:armhf \
libjpeg62-turbo-dev:armhf \
libjson-c-dev:armhf \
liblttng-ust-dev:armhf \
liblzo2-dev:armhf \
libncursesw5-dev:armhf \
libnfs-dev:armhf \
libnuma-dev:armhf \
libpam0g-dev:armhf \
libpcre2-dev:armhf \
libpipewire-0.3-dev:armhf \
libpixman-1-dev:armhf \
libpng-dev:armhf \
libpulse-dev:armhf \
librdmacm-dev:armhf \
libsasl2-dev:armhf \
libsdl2-dev:armhf \
libsdl2-image-dev:armhf \
libseccomp-dev:armhf \
libselinux1-dev:armhf \
libslirp-dev:armhf \
libsnappy-dev:armhf \
libsndio-dev:armhf \
libspice-protocol-dev:armhf \
libspice-server-dev:armhf \
libssh-dev:armhf \
libstd-rust-dev:armhf \
libsystemd-dev:armhf \
libtasn1-6-dev:armhf \
libubsan1:armhf \
libudev-dev:armhf \
liburing-dev:armhf \
libusb-1.0-0-dev:armhf \
libusbredirhost-dev:armhf \
libvdeplug-dev:armhf \
libvirglrenderer-dev:armhf \
libvte-2.91-dev:armhf \
libxdp-dev:armhf \
libzstd-dev:armhf \
nettle-dev:armhf \
systemtap-sdt-dev:armhf \
zlib1g-dev:armhf && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[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'\n" > /usr/local/share/meson/cross/arm-linux-gnueabihf && \
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-gcc
ENV ABI="arm-linux-gnueabihf"
ENV MESON_OPTS="--cross-file=arm-linux-gnueabihf"
ENV RUST_TARGET="armv7-unknown-linux-gnueabihf"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=arm-linux-gnueabihf-
ENV DEF_TARGET_LIST=arm-softmmu,arm-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,20 @@
# Create Debian Bootstrap Image
#
# This is intended to be pre-poluated by:
# - a first stage debootstrap (see debian-bootstrap.pre)
# - a native qemu-$arch that binfmt_misc will run
FROM scratch
# Add everything from the context into the container
ADD . /
# Patch all mounts as docker already has stuff set up
# (this is not needed for later debootstraps but is harmless atm)
RUN sed -i 's/in_target mount/echo not for docker in_target mount/g' /debootstrap/functions
# Run stage 2
RUN /debootstrap/debootstrap --second-stage
# At this point we can install additional packages if we want
# Duplicate deb line as deb-src
RUN cat /etc/apt/sources.list | sed "s/deb/deb-src/" >> /etc/apt/sources.list
+130
View File
@@ -0,0 +1,130 @@
#!/bin/sh
#
# Simple wrapper for debootstrap, run in the docker build context
#
FAKEROOT=$(which fakeroot 2> /dev/null)
# debootstrap < 1.0.67 generates empty sources.list, see Debian#732255
MIN_DEBOOTSTRAP_VERSION=1.0.67
exit_and_skip()
{
exit 3
}
#
# fakeroot is needed to run the bootstrap stage
#
if [ -z $FAKEROOT ]; then
echo "Please install fakeroot to enable bootstraping" >&2
exit_and_skip
fi
if [ -z "${DEB_ARCH}" ]; then
echo "Please set DEB_ARCH to choose an architecture (e.g. armhf)" >&2
exit_and_skip
fi
if [ -z "${DEB_TYPE}" ]; then
echo "Please set DEB_TYPE to a Debian archive name (e.g. testing)" >&2
exit_and_skip
fi
# The following allow finer grain control over the defaults
if [ -z "${DEB_VARIANT}" ]; then
DEB_VARIANT=buildd
fi
if [ -z "${DEB_URL}" ]; then
DEB_URL="http://httpredir.debian.org/debian"
fi
# We check in order for
#
# - DEBOOTSTRAP_DIR pointing at a development checkout
# - PATH for the debootstrap script (installed)
#
# If neither option works then we checkout debootstrap from its
# upstream SCM and run it from there.
#
if [ -z $DEBOOTSTRAP_DIR ]; then
NEED_DEBOOTSTRAP=false
DEBOOTSTRAP=$(which debootstrap 2> /dev/null)
if [ -z $DEBOOTSTRAP ]; then
echo "No debootstrap installed, attempting to install from SCM"
NEED_DEBOOTSTRAP=true
else
INSTALLED_VERSION=$(${DEBOOTSTRAP} --version | sed 's/debootstrap \([0-9\.]*\)[^0-9\.]*.*/\1/')
if ! (echo "${MIN_DEBOOTSTRAP_VERSION}" ; echo "${INSTALLED_VERSION}") \
| sort -t . -n -k 1,1 -k 2,2 -k 3,3 -C ; then
echo "debootstrap too old, attempting to install from SCM"
NEED_DEBOOTSTRAP=true
fi
fi
if $NEED_DEBOOTSTRAP; then
DEBOOTSTRAP_SOURCE=https://salsa.debian.org/installer-team/debootstrap.git
git clone ${DEBOOTSTRAP_SOURCE} ./debootstrap.git
export DEBOOTSTRAP_DIR=./debootstrap.git
DEBOOTSTRAP=./debootstrap.git/debootstrap
(cd "${DEBOOTSTRAP_DIR}" && "${FAKEROOT}" make )
fi
else
DEBOOTSTRAP=${DEBOOTSTRAP_DIR}/debootstrap
if [ ! -f $DEBOOTSTRAP ]; then
echo "Couldn't find script at ${DEBOOTSTRAP}" >&2
exit_and_skip
fi
fi
#
# Add optional args
#
if [ -n "${DEB_KEYRING}" ]; then
DEBOOTSTRAP="${DEBOOTSTRAP} --keyring=${DEB_KEYRING}"
fi
#
# Finally check to see if any qemu's are installed
#
BINFMT_DIR=/proc/sys/fs/binfmt_misc
if [ ! -e $BINFMT_DIR ]; then
echo "binfmt_misc needs enabling for a QEMU bootstrap to work" >&2
exit_and_skip
else
# DEB_ARCH and QEMU arch names are not totally aligned
case "${DEB_ARCH}" in
amd64)
QEMU=qemu-i386
;;
armel|armhf)
QEMU=qemu-arm
;;
arm64)
QEMU=qemu-aarch64
;;
powerpc)
QEMU=qemu-ppc
;;
ppc64el)
QEMU=qemu-ppc64le
;;
s390)
QEMU=qemu-s390x
;;
*)
QEMU=qemu-${DEB_ARCH}
;;
esac
if [ ! -e "${BINFMT_DIR}/$QEMU" ]; then
echo "No binfmt_misc rule to run $QEMU, can't bootstrap" >&2
exit_and_skip
fi
fi
echo "Building a rootfs using ${FAKEROOT} and ${DEBOOTSTRAP} ${DEB_ARCH}/${DEB_TYPE}"
${FAKEROOT} ${DEBOOTSTRAP} --variant=$DEB_VARIANT --foreign --arch=$DEB_ARCH $DEB_TYPE . $DEB_URL || exit 1
exit 0
@@ -0,0 +1,66 @@
#
# Docker Hexagon cross-compiler target
#
# This docker target is used for building hexagon tests. As it also
# needs to be able to build QEMU itself in CI we include its
# build-deps.
#
FROM docker.io/library/debian:13-slim
# Add deb-src repository sources
RUN sed -i "s/^Types: deb$/Types: deb deb-src/" \
/etc/apt/sources.list.d/debian.sources
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata \
# Install common build utilities
apt-get install -y --no-install-recommends \
curl \
wget \
gnupg \
lsb-release \
ccache \
xz-utils \
zstd \
ca-certificates \
bison \
flex \
git \
ninja-build \
python3-pip \
python3-setuptools \
python3-tomli \
python3-venv \
python3-wheel && \
# Install QEMU build deps for use in CI
DEBIAN_FRONTEND=noninteractive eatmydata \
apt build-dep -yy --arch-only qemu && \
mkdir -p /usr/libexec/ccache-wrappers && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
ENV LLVM_VERSION=22
ENV TOOLCHAIN_RELEASE=22.1.8
ENV TOOLCHAIN_URL=https://artifacts.codelinaro.org/artifactory/codelinaro-toolchain-for-hexagon/${TOOLCHAIN_RELEASE}________/hexagon-debs-${TOOLCHAIN_RELEASE}________.tar.gz
ENV CCACHE_WRAPPERSDIR=/usr/libexec/ccache-wrappers
ENV MAKE=/usr/bin/make
RUN curl -#SL https://apt.llvm.org/llvm.sh -o /tmp/llvm.sh && \
chmod +x /tmp/llvm.sh && \
DEBIAN_FRONTEND=noninteractive eatmydata /tmp/llvm.sh ${LLVM_VERSION} && \
rm -f /tmp/llvm.sh && \
mkdir -p /tmp/hexagon-debs && \
curl -#SL "$TOOLCHAIN_URL" | tar -xzC /tmp/hexagon-debs && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt-get install -y /tmp/hexagon-debs/*.deb && \
rm -rf /tmp/hexagon-debs
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
@@ -0,0 +1,184 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch i686 debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
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 \
libaio-dev:i386 \
libasan8:i386 \
libasound2-dev:i386 \
libattr1-dev:i386 \
libbpf-dev:i386 \
libbrlapi-dev:i386 \
libbz2-dev:i386 \
libc6-dev:i386 \
libcacard-dev:i386 \
libcap-ng-dev:i386 \
libcapstone-dev:i386 \
libcbor-dev:i386 \
libcmocka-dev:i386 \
libcurl4-gnutls-dev:i386 \
libdaxctl-dev:i386 \
libdrm-dev:i386 \
libepoxy-dev:i386 \
libfdt-dev:i386 \
libffi-dev:i386 \
libfuse3-dev:i386 \
libgbm-dev:i386 \
libgcrypt20-dev:i386 \
libglib2.0-dev:i386 \
libgnutls28-dev:i386 \
libgtk-3-dev:i386 \
libgtk-vnc-2.0-dev:i386 \
libibverbs-dev:i386 \
libiscsi-dev:i386 \
libjemalloc-dev:i386 \
libjpeg62-turbo-dev:i386 \
libjson-c-dev:i386 \
liblttng-ust-dev:i386 \
liblzo2-dev:i386 \
libncursesw5-dev:i386 \
libnfs-dev:i386 \
libnuma-dev:i386 \
libpam0g-dev:i386 \
libpcre2-dev:i386 \
libpipewire-0.3-dev:i386 \
libpixman-1-dev:i386 \
libpng-dev:i386 \
libpulse-dev:i386 \
librdmacm-dev:i386 \
libsasl2-dev:i386 \
libsdl2-dev:i386 \
libsdl2-image-dev:i386 \
libseccomp-dev:i386 \
libselinux1-dev:i386 \
libslirp-dev:i386 \
libsnappy-dev:i386 \
libsndio-dev:i386 \
libspice-protocol-dev:i386 \
libspice-server-dev:i386 \
libssh-dev:i386 \
libstd-rust-dev:i386 \
libsystemd-dev:i386 \
libtasn1-6-dev:i386 \
libubsan1:i386 \
libudev-dev:i386 \
liburing-dev:i386 \
libusb-1.0-0-dev:i386 \
libusbredirhost-dev:i386 \
libvdeplug-dev:i386 \
libvirglrenderer-dev:i386 \
libvte-2.91-dev:i386 \
libxdp-dev:i386 \
libzstd-dev:i386 \
nettle-dev:i386 \
systemtap-sdt-dev:i386 \
zlib1g-dev:i386 && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[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'\n" > /usr/local/share/meson/cross/i686-linux-gnu && \
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-gcc
ENV ABI="i686-linux-gnu"
ENV MESON_OPTS="--cross-file=i686-linux-gnu"
ENV RUST_TARGET="i686-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=i686-linux-gnu-
ENV DEF_TARGET_LIST=i386-softmmu,i386-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,54 @@
#
# Docker cross-compiler target
#
# This docker target uses prebuilt toolchains for LoongArch64 from:
# https://github.com/loongson/build-tools/releases
#
FROM docker.io/library/debian:13-slim
# Add deb-src repository sources
RUN sed -i "s/^Types: deb$/Types: deb deb-src/" \
/etc/apt/sources.list.d/debian.sources
RUN export DEBIAN_FRONTEND=noninteractive && \
apt-get update && \
apt-get install -y eatmydata && \
eatmydata apt-get dist-upgrade -y && \
apt build-dep -yy qemu
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt-get install -y --no-install-recommends \
build-essential \
bison \
ca-certificates \
ccache \
clang \
flex \
curl \
gettext \
git \
ninja-build \
python3-pip \
python3-setuptools \
python3-tomli \
python3-venv \
python3-wheel && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
RUN curl -#SL https://github.com/loongson/build-tools/releases/download/2023.08.08/CLFS-loongarch64-8.1-x86_64-cross-tools-gcc-glibc.tar.xz \
| tar -xJC /opt
ENV PATH=$PATH:/opt/cross-tools/bin
ENV LD_LIBRARY_PATH=/opt/cross-tools/lib:/opt/cross-tools/loongarch64-unknown-linux-gnu/lib:$LD_LIBRARY_PATH
ENV QEMU_CONFIGURE_OPTS="--disable-docs --disable-tools"
ENV DEF_TARGET_LIST=loongarch64-linux-user,loongarch64-softmmu
ENV MAKE=/usr/bin/make
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
@@ -0,0 +1,96 @@
#!/bin/bash
set -e
TARGET=microblaze-linux-musl
LINUX_ARCH=microblaze
J=$(expr $(nproc) / 2)
TOOLCHAIN_INSTALL=/usr/local
TOOLCHAIN_BIN=${TOOLCHAIN_INSTALL}/bin
CROSS_SYSROOT=${TOOLCHAIN_INSTALL}/$TARGET/sys-root
GCC_PATCH0_URL=https://raw.githubusercontent.com/Xilinx/meta-xilinx/refs/tags/xlnx-rel-v2024.1/meta-microblaze/recipes-devtools/gcc/gcc-12/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch
export PATH=${TOOLCHAIN_BIN}:$PATH
#
# Grab all of the source for the toolchain bootstrap.
#
wget https://ftp.gnu.org/gnu/binutils/binutils-2.37.tar.xz
wget https://ftp.gnu.org/gnu/gcc/gcc-11.2.0/gcc-11.2.0.tar.xz
wget https://www.musl-libc.org/releases/musl-1.2.2.tar.gz
wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.10.70.tar.xz
tar axf binutils-2.37.tar.xz
tar axf gcc-11.2.0.tar.xz
tar axf musl-1.2.2.tar.gz
tar axf linux-5.10.70.tar.xz
mv binutils-2.37 src-binu
mv gcc-11.2.0 src-gcc
mv musl-1.2.2 src-musl
mv linux-5.10.70 src-linux
#
# Patch gcc
#
wget -O - ${GCC_PATCH0_URL} | patch -d src-gcc -p1
mkdir -p bld-hdr bld-binu bld-gcc bld-musl
mkdir -p ${CROSS_SYSROOT}/usr/include
#
# Install kernel headers
#
cd src-linux
make headers_install ARCH=${LINUX_ARCH} INSTALL_HDR_PATH=${CROSS_SYSROOT}/usr
cd ..
#
# Build binutils
#
cd bld-binu
../src-binu/configure --disable-werror \
--prefix=${TOOLCHAIN_INSTALL} --with-sysroot --target=${TARGET}
make -j${J}
make install
cd ..
#
# Build gcc, just the compiler so far.
#
cd bld-gcc
../src-gcc/configure --disable-werror --disable-shared \
--prefix=${TOOLCHAIN_INSTALL} --with-sysroot --target=${TARGET} \
--enable-languages=c --disable-libssp --disable-libsanitizer \
--disable-libatomic --disable-libgomp --disable-libquadmath
make -j${J} all-gcc
make install-gcc
cd ..
#
# Build musl.
# We won't go through the extra step of building shared libraries
# because we don't actually use them in QEMU docker testing.
#
cd bld-musl
../src-musl/configure --prefix=/usr --host=${TARGET} --disable-shared
make -j${j}
make install DESTDIR=${CROSS_SYSROOT}
cd ..
#
# Go back and build the compiler runtime
#
cd bld-gcc
make -j${j}
make install
cd ..
@@ -0,0 +1,185 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch ppc64le debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
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 \
libaio-dev:ppc64el \
libasan8:ppc64el \
libasound2-dev:ppc64el \
libattr1-dev:ppc64el \
libbpf-dev:ppc64el \
libbrlapi-dev:ppc64el \
libbz2-dev:ppc64el \
libc6-dev:ppc64el \
libcacard-dev:ppc64el \
libcap-ng-dev:ppc64el \
libcapstone-dev:ppc64el \
libcbor-dev:ppc64el \
libcmocka-dev:ppc64el \
libcurl4-gnutls-dev:ppc64el \
libdaxctl-dev:ppc64el \
libdrm-dev:ppc64el \
libepoxy-dev:ppc64el \
libfdt-dev:ppc64el \
libffi-dev:ppc64el \
libfuse3-dev:ppc64el \
libgbm-dev:ppc64el \
libgcrypt20-dev:ppc64el \
libglib2.0-dev:ppc64el \
libgnutls28-dev:ppc64el \
libgtk-3-dev:ppc64el \
libgtk-vnc-2.0-dev:ppc64el \
libibverbs-dev:ppc64el \
libiscsi-dev:ppc64el \
libjemalloc-dev:ppc64el \
libjpeg62-turbo-dev:ppc64el \
libjson-c-dev:ppc64el \
liblttng-ust-dev:ppc64el \
liblzo2-dev:ppc64el \
libncursesw5-dev:ppc64el \
libnfs-dev:ppc64el \
libnuma-dev:ppc64el \
libpam0g-dev:ppc64el \
libpcre2-dev:ppc64el \
libpipewire-0.3-dev:ppc64el \
libpixman-1-dev:ppc64el \
libpng-dev:ppc64el \
libpulse-dev:ppc64el \
librbd-dev:ppc64el \
librdmacm-dev:ppc64el \
libsasl2-dev:ppc64el \
libsdl2-dev:ppc64el \
libsdl2-image-dev:ppc64el \
libseccomp-dev:ppc64el \
libselinux1-dev:ppc64el \
libslirp-dev:ppc64el \
libsnappy-dev:ppc64el \
libsndio-dev:ppc64el \
libspice-protocol-dev:ppc64el \
libspice-server-dev:ppc64el \
libssh-dev:ppc64el \
libstd-rust-dev:ppc64el \
libsystemd-dev:ppc64el \
libtasn1-6-dev:ppc64el \
libubsan1:ppc64el \
libudev-dev:ppc64el \
liburing-dev:ppc64el \
libusb-1.0-0-dev:ppc64el \
libusbredirhost-dev:ppc64el \
libvdeplug-dev:ppc64el \
libvirglrenderer-dev:ppc64el \
libvte-2.91-dev:ppc64el \
libxdp-dev:ppc64el \
libzstd-dev:ppc64el \
nettle-dev:ppc64el \
systemtap-sdt-dev:ppc64el \
zlib1g-dev:ppc64el && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[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'\n" > /usr/local/share/meson/cross/powerpc64le-linux-gnu && \
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-gcc
ENV ABI="powerpc64le-linux-gnu"
ENV MESON_OPTS="--cross-file=powerpc64le-linux-gnu"
ENV RUST_TARGET="powerpc64le-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=powerpc64le-linux-gnu-
ENV DEF_TARGET_LIST=ppc64-softmmu,ppc64-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,185 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch riscv64 debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
RUN export DEBIAN_FRONTEND=noninteractive && \
dpkg --add-architecture riscv64 && \
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-riscv64-linux-gnu \
libaio-dev:riscv64 \
libasan8:riscv64 \
libasound2-dev:riscv64 \
libattr1-dev:riscv64 \
libbpf-dev:riscv64 \
libbrlapi-dev:riscv64 \
libbz2-dev:riscv64 \
libc6-dev:riscv64 \
libcacard-dev:riscv64 \
libcap-ng-dev:riscv64 \
libcapstone-dev:riscv64 \
libcbor-dev:riscv64 \
libcmocka-dev:riscv64 \
libcurl4-gnutls-dev:riscv64 \
libdaxctl-dev:riscv64 \
libdrm-dev:riscv64 \
libepoxy-dev:riscv64 \
libfdt-dev:riscv64 \
libffi-dev:riscv64 \
libfuse3-dev:riscv64 \
libgbm-dev:riscv64 \
libgcrypt20-dev:riscv64 \
libglib2.0-dev:riscv64 \
libgnutls28-dev:riscv64 \
libgtk-3-dev:riscv64 \
libgtk-vnc-2.0-dev:riscv64 \
libibverbs-dev:riscv64 \
libiscsi-dev:riscv64 \
libjemalloc-dev:riscv64 \
libjpeg62-turbo-dev:riscv64 \
libjson-c-dev:riscv64 \
liblttng-ust-dev:riscv64 \
liblzo2-dev:riscv64 \
libncursesw5-dev:riscv64 \
libnfs-dev:riscv64 \
libnuma-dev:riscv64 \
libpam0g-dev:riscv64 \
libpcre2-dev:riscv64 \
libpipewire-0.3-dev:riscv64 \
libpixman-1-dev:riscv64 \
libpng-dev:riscv64 \
libpulse-dev:riscv64 \
librbd-dev:riscv64 \
librdmacm-dev:riscv64 \
libsasl2-dev:riscv64 \
libsdl2-dev:riscv64 \
libsdl2-image-dev:riscv64 \
libseccomp-dev:riscv64 \
libselinux1-dev:riscv64 \
libslirp-dev:riscv64 \
libsnappy-dev:riscv64 \
libsndio-dev:riscv64 \
libspice-protocol-dev:riscv64 \
libspice-server-dev:riscv64 \
libssh-dev:riscv64 \
libstd-rust-dev:riscv64 \
libsystemd-dev:riscv64 \
libtasn1-6-dev:riscv64 \
libubsan1:riscv64 \
libudev-dev:riscv64 \
liburing-dev:riscv64 \
libusb-1.0-0-dev:riscv64 \
libusbredirhost-dev:riscv64 \
libvdeplug-dev:riscv64 \
libvirglrenderer-dev:riscv64 \
libvte-2.91-dev:riscv64 \
libxdp-dev:riscv64 \
libzstd-dev:riscv64 \
nettle-dev:riscv64 \
systemtap-sdt-dev:riscv64 \
zlib1g-dev:riscv64 && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[binaries]\n\
c = '/usr/bin/riscv64-linux-gnu-gcc'\n\
ar = '/usr/bin/riscv64-linux-gnu-gcc-ar'\n\
strip = '/usr/bin/riscv64-linux-gnu-strip'\n\
pkgconfig = '/usr/bin/riscv64-linux-gnu-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'riscv64'\n\
cpu = 'riscv64'\n\
endian = 'little'\n" > /usr/local/share/meson/cross/riscv64-linux-gnu && \
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/riscv64-linux-gnu-cc && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/riscv64-linux-gnu-gcc
ENV ABI="riscv64-linux-gnu"
ENV MESON_OPTS="--cross-file=riscv64-linux-gnu"
ENV RUST_TARGET="riscv64gc-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=riscv64-linux-gnu-
ENV DEF_TARGET_LIST=riscv64-softmmu,riscv64-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,184 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch s390x debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libclang-rt-dev \
libglib2.0-dev \
llvm \
locales \
make \
mtools \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
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 \
libaio-dev:s390x \
libasan8:s390x \
libasound2-dev:s390x \
libattr1-dev:s390x \
libbpf-dev:s390x \
libbrlapi-dev:s390x \
libbz2-dev:s390x \
libc6-dev:s390x \
libcacard-dev:s390x \
libcap-ng-dev:s390x \
libcapstone-dev:s390x \
libcbor-dev:s390x \
libcmocka-dev:s390x \
libcurl4-gnutls-dev:s390x \
libdaxctl-dev:s390x \
libdrm-dev:s390x \
libepoxy-dev:s390x \
libfdt-dev:s390x \
libffi-dev:s390x \
libfuse3-dev:s390x \
libgbm-dev:s390x \
libgcrypt20-dev:s390x \
libglib2.0-dev:s390x \
libgnutls28-dev:s390x \
libgtk-3-dev:s390x \
libgtk-vnc-2.0-dev:s390x \
libibverbs-dev:s390x \
libiscsi-dev:s390x \
libjemalloc-dev:s390x \
libjpeg62-turbo-dev:s390x \
libjson-c-dev:s390x \
liblttng-ust-dev:s390x \
liblzo2-dev:s390x \
libncursesw5-dev:s390x \
libnfs-dev:s390x \
libnuma-dev:s390x \
libpam0g-dev:s390x \
libpcre2-dev:s390x \
libpipewire-0.3-dev:s390x \
libpixman-1-dev:s390x \
libpng-dev:s390x \
libpulse-dev:s390x \
librbd-dev:s390x \
librdmacm-dev:s390x \
libsasl2-dev:s390x \
libsdl2-dev:s390x \
libsdl2-image-dev:s390x \
libseccomp-dev:s390x \
libselinux1-dev:s390x \
libslirp-dev:s390x \
libsnappy-dev:s390x \
libsndio-dev:s390x \
libspice-protocol-dev:s390x \
libssh-dev:s390x \
libstd-rust-dev:s390x \
libsystemd-dev:s390x \
libtasn1-6-dev:s390x \
libubsan1:s390x \
libudev-dev:s390x \
liburing-dev:s390x \
libusb-1.0-0-dev:s390x \
libusbredirhost-dev:s390x \
libvdeplug-dev:s390x \
libvirglrenderer-dev:s390x \
libvte-2.91-dev:s390x \
libxdp-dev:s390x \
libzstd-dev:s390x \
nettle-dev:s390x \
systemtap-sdt-dev:s390x \
zlib1g-dev:s390x && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
mkdir -p /usr/local/share/meson/cross && \
printf "[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'\n" > /usr/local/share/meson/cross/s390x-linux-gnu && \
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-gcc
ENV ABI="s390x-linux-gnu"
ENV MESON_OPTS="--cross-file=s390x-linux-gnu"
ENV RUST_TARGET="s390x-unknown-linux-gnu"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=s390x-linux-gnu-
ENV DEF_TARGET_LIST=s390x-softmmu,s390x-linux-user
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,50 @@
#
# Docker toolchain cross-compiler
#
# This dockerfile is used for building a cross-compiler toolchain.
# The script for building the toolchain is supplied via extra-files.
#
FROM docker.io/library/debian:13-slim
# Install build utilities for building gcc and glibc.
# ??? The build-dep isn't working, missing a number of
# minimal build dependiencies, e.g. libmpc.
# Add deb-src repository sources
RUN sed -i "s/^Types: deb$/Types: deb deb-src/" \
/etc/apt/sources.list.d/debian.sources
RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
bison \
ca-certificates \
flex \
gawk \
libmpc-dev \
libmpfr-dev \
rsync \
wget && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt build-dep -yy --arch-only gcc glibc
ADD build-toolchain.sh /root/build-toolchain.sh
RUN cd /root && ./build-toolchain.sh
# Throw away the extra toolchain build deps, the downloaded source,
# and the build trees by restoring the original image,
# then copying the built toolchain from stage 0.
FROM docker.io/library/debian:13-slim
RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
libmpc3
COPY --from=0 /usr/local /usr/local
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
@@ -0,0 +1,50 @@
#
# Docker TriCore cross-compiler target
#
# This docker target builds on the Debian Buster base image but
# doesn't inherit from the common one to avoid bringing in unneeded
# dependencies.
#
# Copyright (c) 2018 Philippe Mathieu-Daudé
#
# SPDX-License-Identifier: GPL-2.0-or-later
#
FROM docker.io/library/debian:13-slim
RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata apt install -yy \
bison \
bzip2 \
ca-certificates \
ccache \
curl \
flex \
g++ \
gcc \
git \
libglib2.0-dev \
libpixman-1-dev \
locales \
make \
ninja-build \
pkgconf \
python3-pip \
python3-setuptools \
python3-tomli \
python3-wheel \
python3-venv && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
RUN curl -#SL https://github.com/bkoppelmann/package_940/releases/download/tricore-toolchain-9.40/tricore-toolchain-9.4.0.tar.gz \
| tar -xzC /usr/local/
# This image can only build a very minimal QEMU as well as the tests
ENV DEF_TARGET_LIST=tricore-softmmu
ENV QEMU_CONFIGURE_OPTS="--disable-user --disable-tools --disable-fdt"
ENV MAKE=/usr/bin/make
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
@@ -0,0 +1,36 @@
#
# Docker cross-compiler target
#
# This docker target builds on the debian stretch base image,
# using a prebuilt toolchains for Xtensa cores from:
# https://github.com/foss-xtensa/toolchain/releases
#
FROM docker.io/library/debian:13-slim
RUN apt-get update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt-get install -y --no-install-recommends \
build-essential \
ca-certificates \
curl \
gettext \
git \
python3-minimal && \
dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt
ENV CPU_LIST="dc232b dc233c de233_fpu dsp3400"
ENV TOOLCHAIN_RELEASE=2020.07
RUN for cpu in $CPU_LIST; do \
curl -#SL http://github.com/foss-xtensa/toolchain/releases/download/$TOOLCHAIN_RELEASE/x86_64-$TOOLCHAIN_RELEASE-xtensa-$cpu-elf.tar.gz \
| tar -xzC /opt; \
done
ENV PATH=$PATH:/opt/$TOOLCHAIN_RELEASE/xtensa-dc232b-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-dc233c-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-de233_fpu-elf/bin:/opt/$TOOLCHAIN_RELEASE/xtensa-dsp3400-elf/bin
ENV MAKE=/usr/bin/make
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
+175
View File
@@ -0,0 +1,175 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all debian-13 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/debian:13-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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
clang \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libaio-dev \
libasan8 \
libasound2-dev \
libattr1-dev \
libbpf-dev \
libbrlapi-dev \
libbz2-dev \
libc6-dev \
libcacard-dev \
libcap-ng-dev \
libcapstone-dev \
libcbor-dev \
libclang-rt-dev \
libcmocka-dev \
libcurl4-gnutls-dev \
libdaxctl-dev \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libfuse3-dev \
libgbm-dev \
libgcrypt20-dev \
libglib2.0-dev \
libgnutls28-dev \
libgtk-3-dev \
libgtk-vnc-2.0-dev \
libibverbs-dev \
libiscsi-dev \
libjemalloc-dev \
libjpeg62-turbo-dev \
libjson-c-dev \
liblttng-ust-dev \
liblzo2-dev \
libncursesw5-dev \
libnfs-dev \
libnuma-dev \
libpam0g-dev \
libpcre2-dev \
libpipewire-0.3-dev \
libpixman-1-dev \
libpmem-dev \
libpng-dev \
libpulse-dev \
librbd-dev \
librdmacm-dev \
libsasl2-dev \
libsdl2-dev \
libsdl2-image-dev \
libseccomp-dev \
libselinux1-dev \
libslirp-dev \
libsnappy-dev \
libsndio-dev \
libspice-protocol-dev \
libspice-server-dev \
libssh-dev \
libstd-rust-dev \
libsystemd-dev \
libtasn1-6-dev \
libubsan1 \
libudev-dev \
liburing-dev \
libusb-1.0-0-dev \
libusbredirhost-dev \
libvdeplug-dev \
libvirglrenderer-dev \
libvte-2.91-dev \
libxdp-dev \
libxen-dev \
libzstd-dev \
llvm \
locales \
make \
mtools \
multipath-tools \
nettle-dev \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc \
sed \
socat \
sparse \
swtpm \
systemtap-sdt-dev \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zlib1g-dev \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
# netmap/cscope/global
RUN apt update && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends \
cscope\
global\
linux-headers-generic
RUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
RUN cd /usr/src/netmap && git checkout v11.3
RUN cd /usr/src/netmap/LINUX && \
./configure --no-drivers --no-apps \
--kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \
&& make install
ENV QEMU_CONFIGURE_OPTS=--enable-netmap
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,152 @@
# syntax = docker/dockerfile:1.5
ARG EMSDK_VERSION_QEMU=4.0.10
ARG ZLIB_VERSION=1.3.2
ARG GLIB_MINOR_VERSION=2.84
ARG GLIB_VERSION=${GLIB_MINOR_VERSION}.0
ARG PIXMAN_VERSION=0.44.2
ARG FFI_VERSION=v3.5.2
ARG MESON_VERSION=1.5.0
FROM docker.io/emscripten/emsdk:$EMSDK_VERSION_QEMU AS build-base-common
ARG MESON_VERSION
ENV TARGET=/builddeps/target
ENV CPATH="$TARGET/include"
ENV PKG_CONFIG_PATH="$TARGET/lib/pkgconfig"
ENV EM_PKG_CONFIG_PATH="$PKG_CONFIG_PATH"
ENV CFLAGS="-O3 -pthread -DWASM_BIGINT"
ENV CXXFLAGS="$CFLAGS"
ENV LDFLAGS="-sWASM_BIGINT -sASYNCIFY=1 -L$TARGET/lib"
RUN apt-get update && apt-get install -y \
autoconf \
bison \
build-essential \
flex \
libglib2.0-dev \
libtool \
pkgconf \
ninja-build \
python3-pip
RUN pip3 install meson==${MESON_VERSION} tomli
RUN mkdir /build
WORKDIR /build
RUN mkdir -p $TARGET
FROM build-base-common AS build-base
ENV CFLAGS="$CFLAGS -sMEMORY64=1"
ENV CXXFLAGS="$CXXFLAGS -sMEMORY64=1"
ENV LDFLAGS="$LDFLAGS -sMEMORY64=1"
RUN <<EOF
cat <<EOT > /cross.meson
[host_machine]
system = 'emscripten'
cpu_family = 'wasm64'
cpu = 'wasm64'
endian = 'little'
[binaries]
c = 'emcc'
cpp = 'em++'
ar = 'emar'
ranlib = 'emranlib'
pkgconfig = ['pkg-config', '--static']
EOT
EOF
FROM build-base AS zlib-dev
ARG ZLIB_VERSION
RUN mkdir -p /zlib
RUN curl -Ls https://zlib.net/zlib-$ZLIB_VERSION.tar.xz | \
tar xJC /zlib --strip-components=1
WORKDIR /zlib
RUN emconfigure ./configure --prefix=$TARGET --static
RUN emmake make install -j$(nproc)
FROM build-base AS libffi-dev
ARG FFI_VERSION
RUN mkdir -p /libffi
RUN git clone https://github.com/libffi/libffi /libffi
WORKDIR /libffi
RUN git checkout $FFI_VERSION
RUN autoreconf -fiv
RUN emconfigure ./configure --host=wasm64-unknown-linux \
--prefix=$TARGET --enable-static \
--disable-shared --disable-dependency-tracking \
--disable-builddir --disable-multi-os-directory \
--disable-raw-api --disable-docs
RUN emmake make install SUBDIRS='include' -j$(nproc)
FROM build-base AS pixman-dev
ARG PIXMAN_VERSION
RUN mkdir /pixman/
RUN git clone https://gitlab.freedesktop.org/pixman/pixman /pixman/
WORKDIR /pixman
RUN git checkout pixman-$PIXMAN_VERSION
RUN <<EOF
cat <<EOT >> /cross.meson
[built-in options]
c_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]
cpp_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]
objc_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]
c_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')]
cpp_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')]
EOT
EOF
RUN meson setup _build --prefix=$TARGET --cross-file=/cross.meson \
--default-library=static \
--buildtype=release -Dtests=disabled -Ddemos=disabled
RUN meson install -C _build
FROM build-base AS glib-dev
ARG GLIB_VERSION
ARG GLIB_MINOR_VERSION
RUN mkdir -p /stub
WORKDIR /stub
RUN <<EOF
cat <<'EOT' > res_query.c
#include <netdb.h>
int res_query(const char *name, int class,
int type, unsigned char *dest, int len)
{
h_errno = HOST_NOT_FOUND;
return -1;
}
EOT
EOF
RUN emcc ${CFLAGS} -c res_query.c -fPIC -o libresolv.o
RUN ar rcs libresolv.a libresolv.o
RUN mkdir -p $TARGET/lib/
RUN cp libresolv.a $TARGET/lib/
RUN mkdir -p /glib
RUN curl -Lks https://download.gnome.org/sources/glib/${GLIB_MINOR_VERSION}/glib-$GLIB_VERSION.tar.xz | \
tar xJC /glib --strip-components=1
COPY --from=zlib-dev /builddeps/ /builddeps/
COPY --from=libffi-dev /builddeps/ /builddeps/
WORKDIR /glib
RUN <<EOF
CFLAGS="$CFLAGS -Wno-incompatible-function-pointer-types" ;
cat <<EOT >> /cross.meson
[built-in options]
c_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]
cpp_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]
objc_args = [$(printf "'%s', " $CFLAGS | sed 's/, $//')]
c_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')]
cpp_link_args = [$(printf "'%s', " $LDFLAGS | sed 's/, $//')]
EOT
EOF
RUN meson setup _build --prefix=$TARGET --cross-file=/cross.meson \
--default-library=static --buildtype=release --force-fallback-for=pcre2 \
-Dselinux=disabled -Dxattr=false -Dlibmount=disabled -Dnls=disabled \
-Dtests=false -Dglib_debug=disabled -Dglib_assert=false -Dglib_checks=false
# FIXME: emscripten doesn't provide some pthread functions in the final link,
# which isn't detected during meson setup.
RUN sed -i -E "/#define HAVE_POSIX_SPAWN 1/d" ./_build/config.h
RUN sed -i -E "/#define HAVE_PTHREAD_GETNAME_NP 1/d" ./_build/config.h
RUN meson install -C _build
FROM build-base-common
COPY --from=glib-dev /builddeps/ /builddeps/
COPY --from=pixman-dev /builddeps/ /builddeps/
@@ -0,0 +1,184 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all fedora-43 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.fedoraproject.org/fedora:43
RUN dnf --quiet install -y nosync && \
printf '#!/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 "$@"\n' > /usr/bin/nosync && \
chmod +x /usr/bin/nosync && \
nosync dnf --quiet update -y && \
nosync dnf --quiet install -y \
SDL2_image-devel \
alsa-lib-devel \
bash \
bc \
bindgen-cli \
bison \
brlapi-devel \
bzip2 \
bzip2-devel \
ca-certificates \
capstone-devel \
ccache \
clang \
compiler-rt \
coreutils \
ctags \
cyrus-sasl-devel \
daxctl-devel \
dbus-daemon \
device-mapper-multipath-devel \
diffutils \
findutils \
flex \
fuse3-devel \
gcc \
gcovr \
gettext \
git \
glib2-devel \
glib2-static \
glibc-langpack-en \
glibc-static \
gnutls-devel \
gtk-vnc2-devel \
gtk3-devel \
hostname \
jemalloc-devel \
json-c-devel \
libaio-devel \
libasan \
libattr-devel \
libbpf-devel \
libcacard-devel \
libcap-ng-devel \
libcbor-devel \
libcmocka-devel \
libcurl-devel \
libdrm-devel \
libepoxy-devel \
libfdt-devel \
libffi-devel \
libgcrypt-devel \
libiscsi-devel \
libjpeg-devel \
libnfs-devel \
libpmem-devel \
libpng-devel \
librbd-devel \
libseccomp-devel \
libselinux-devel \
libslirp-devel \
libssh-devel \
libtasn1-devel \
libubsan \
liburing-devel \
libusbx-devel \
libxdp-devel \
libzstd-devel \
llvm \
lttng-ust-devel \
lzo-devel \
make \
mesa-libgbm-devel \
mtools \
ncurses-devel \
nettle-devel \
ninja-build \
numactl-devel \
openssh-clients \
pam-devel \
pcre2-static \
pipewire-devel \
pixman-devel \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx_rtd_theme \
python3-wheel \
rdma-core-devel \
rust \
rust-std-static \
sdl2-compat-devel \
sed \
snappy-devel \
socat \
sparse \
spice-protocol \
spice-server-devel \
swtpm \
systemd-devel \
systemtap-sdt-dtrace \
tar \
tesseract \
tesseract-langpack-eng \
usbredir-devel \
util-linux \
virglrenderer-devel \
vte291-devel \
vulkan-tools \
which \
xen-devel \
xorriso \
zlib-devel \
zlib-static \
zstd && \
nosync dnf --quiet autoremove -y && \
nosync dnf --quiet clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
RUN dnf install -y wget
ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
ENV RUSTDOC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustdoc
ENV CARGO=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo
RUN set -eux && \
rustArch='x86_64-unknown-linux-gnu' && \
rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" && \
wget "$url" && \
echo "${rustupSha256} *rustup-init" | sha256sum -c - && \
chmod +x rustup-init && \
./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
/usr/local/cargo/bin/rustup --version && \
/usr/local/cargo/bin/rustup run nightly cargo --version && \
/usr/local/cargo/bin/rustup run nightly rustc --version && \
test "$CARGO" = "$(/usr/local/cargo/bin/rustup +nightly which cargo)" && \
test "$RUSTDOC" = "$(/usr/local/cargo/bin/rustup +nightly which rustdoc)" && \
test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
ENV PATH=$CARGO_HOME/bin:$PATH
RUN /usr/local/cargo/bin/rustup run nightly cargo install --locked bindgen-cli
RUN $CARGO --list
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,119 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all --cross-arch mingw64 fedora-43 qemu,qemu-win-installer
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.fedoraproject.org/fedora:43
RUN dnf --quiet install -y nosync && \
printf '#!/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 "$@"\n' > /usr/bin/nosync && \
chmod +x /usr/bin/nosync && \
nosync dnf --quiet update -y && \
nosync dnf --quiet install -y \
bash \
bc \
bindgen-cli \
bison \
bzip2 \
ca-certificates \
ccache \
compiler-rt \
coreutils \
ctags \
dbus-daemon \
diffutils \
findutils \
flex \
gcc \
gcovr \
git \
glib2-devel \
glibc-langpack-en \
hostname \
llvm \
make \
mtools \
ninja-build \
openssh-clients \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx_rtd_theme \
python3-wheel \
rust \
sed \
socat \
sparse \
swtpm \
tar \
tesseract \
tesseract-langpack-eng \
util-linux \
vulkan-tools \
which \
xorriso \
zstd && \
nosync dnf --quiet autoremove -y && \
nosync dnf --quiet clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
RUN nosync dnf --quiet install -y \
mingw-w64-tools \
mingw32-nsis \
mingw64-SDL2 \
mingw64-SDL2_image \
mingw64-bzip2 \
mingw64-curl \
mingw64-gcc \
mingw64-gcc-c++ \
mingw64-gettext \
mingw64-glib2 \
mingw64-gnutls \
mingw64-gtk-vnc2 \
mingw64-gtk3 \
mingw64-libepoxy \
mingw64-libfdt \
mingw64-libgcrypt \
mingw64-libjpeg-turbo \
mingw64-libpng \
mingw64-libtasn1 \
mingw64-nettle \
mingw64-pixman \
mingw64-pkg-config \
rust-std-static-x86_64-pc-windows-gnu && \
nosync dnf --quiet 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-c++ && \
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-g++ && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
ENV ABI="x86_64-w64-mingw32"
ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-w64-mingw32-
ENV DEF_TARGET_LIST=x86_64-softmmu
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
+161
View File
@@ -0,0 +1,161 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all fedora-43 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.fedoraproject.org/fedora:43
RUN dnf --quiet install -y nosync && \
printf '#!/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 "$@"\n' > /usr/bin/nosync && \
chmod +x /usr/bin/nosync && \
nosync dnf --quiet update -y && \
nosync dnf --quiet install -y \
SDL2_image-devel \
alsa-lib-devel \
bash \
bc \
bindgen-cli \
bison \
brlapi-devel \
bzip2 \
bzip2-devel \
ca-certificates \
capstone-devel \
ccache \
clang \
compiler-rt \
coreutils \
ctags \
cyrus-sasl-devel \
daxctl-devel \
dbus-daemon \
device-mapper-multipath-devel \
diffutils \
findutils \
flex \
fuse3-devel \
gcc \
gcovr \
gettext \
git \
glib2-devel \
glib2-static \
glibc-langpack-en \
glibc-static \
gnutls-devel \
gtk-vnc2-devel \
gtk3-devel \
hostname \
jemalloc-devel \
json-c-devel \
libaio-devel \
libasan \
libattr-devel \
libbpf-devel \
libcacard-devel \
libcap-ng-devel \
libcbor-devel \
libcmocka-devel \
libcurl-devel \
libdrm-devel \
libepoxy-devel \
libfdt-devel \
libffi-devel \
libgcrypt-devel \
libiscsi-devel \
libjpeg-devel \
libnfs-devel \
libpmem-devel \
libpng-devel \
librbd-devel \
libseccomp-devel \
libselinux-devel \
libslirp-devel \
libssh-devel \
libtasn1-devel \
libubsan \
liburing-devel \
libusbx-devel \
libxdp-devel \
libzstd-devel \
llvm \
lttng-ust-devel \
lzo-devel \
make \
mesa-libgbm-devel \
mtools \
ncurses-devel \
nettle-devel \
ninja-build \
numactl-devel \
openssh-clients \
pam-devel \
pcre2-static \
pipewire-devel \
pixman-devel \
pkgconfig \
pulseaudio-libs-devel \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx_rtd_theme \
python3-wheel \
rdma-core-devel \
rust \
rust-std-static \
sdl2-compat-devel \
sed \
snappy-devel \
socat \
sparse \
spice-protocol \
spice-server-devel \
swtpm \
systemd-devel \
systemtap-sdt-dtrace \
tar \
tesseract \
tesseract-langpack-eng \
usbredir-devel \
util-linux \
virglrenderer-devel \
vte291-devel \
vulkan-tools \
which \
xen-devel \
xorriso \
zlib-devel \
zlib-static \
zstd && \
nosync dnf --quiet autoremove -y && \
nosync dnf --quiet clean all -y && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
@@ -0,0 +1,148 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all opensuse-leap-16 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM registry.opensuse.org/opensuse/leap:16.0
RUN zypper update -y && \
zypper install -y \
Mesa-devel \
alsa-lib-devel \
bash \
bc \
bison \
brlapi-devel \
bzip2 \
ca-certificates \
ccache \
clang \
clang-devel \
coreutils \
ctags \
cyrus-sasl-devel \
dbus-1 \
diffutils \
findutils \
flex \
fuse3-devel \
gcc \
gcovr \
gettext-runtime \
git \
glib2-devel \
glibc-locale \
glibc-static \
gtk-vnc-devel \
gtk3-devel \
hostname \
jemalloc-devel \
libSDL2-devel \
libSDL2_image-devel \
libaio-devel \
libasan8 \
libattr-devel \
libbpf-devel \
libbz2-devel \
libcacard-devel \
libcap-ng-devel \
libcbor-devel \
libcmocka-devel \
libcurl-devel \
libdrm-devel \
libepoxy-devel \
libfdt-devel \
libffi-devel \
libgcrypt-devel \
libgnutls-devel \
libiscsi-devel \
libjpeg8-devel \
libjson-c-devel \
libndctl-devel \
libnettle-devel \
libnfs-devel \
libnuma-devel \
libpixman-1-0-devel \
libpmem-devel \
libpng16-devel \
libpulse-devel \
librbd-devel \
libseccomp-devel \
libselinux-devel \
libslirp-devel \
libspice-server-devel \
libssh-devel \
libtasn1-devel \
libubsan1 \
libudev-devel \
liburing-devel \
libusb-1_0-devel \
libxdp-devel \
libzstd-devel \
llvm \
lttng-ust-devel \
lzo-devel \
make \
meson \
mtools \
ncurses-devel \
ninja \
openssh \
pam-devel \
pcre2-devel-static \
pipewire-devel \
pkgconfig \
python3-Sphinx \
python3-base \
python3-pip \
python3-setuptools \
python3-sphinx_rtd_theme \
python3-tomli \
python3-wheel \
rdma-core-devel \
rust \
rust-bindgen \
sed \
snappy-devel \
sndio-devel \
socat \
sparse \
spice-protocol-devel \
swtpm \
systemd-devel \
systemtap-dtrace \
tar \
tesseract-ocr \
tesseract-ocr-traineddata-english \
usbredir-devel \
util-linux \
virglrenderer-devel \
vte-devel \
vulkan-tools \
which \
xen-devel \
xorriso \
zlib-devel \
zlib-devel-static \
zstd && \
zypper clean --all && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1
+27
View File
@@ -0,0 +1,27 @@
# Python library testing environment
FROM fedora:latest
MAINTAINER John Snow <[email protected]>
# Please keep this list sorted alphabetically
ENV PACKAGES="\
gcc \
make \
python3 \
python3-pip \
python3-tox \
python3-virtualenv \
python3.10 \
python3.11 \
python3.12 \
python3.13 \
python3.9 \
"
RUN dnf install -y $PACKAGES
RUN rpm -q $PACKAGES | sort > /packages.txt
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
+169
View File
@@ -0,0 +1,169 @@
# THIS FILE WAS AUTO-GENERATED
#
# $ lcitool dockerfile --layers all ubuntu-2404 qemu
#
# https://gitlab.com/libvirt/libvirt-ci
FROM docker.io/library/ubuntu:24.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 \
bash \
bc \
bindgen \
bison \
bsdextrautils \
bzip2 \
ca-certificates \
ccache \
clang \
coreutils \
dbus \
debianutils \
diffutils \
exuberant-ctags \
findutils \
flex \
gcc \
gcovr \
gettext \
git \
hostname \
libaio-dev \
libasan8 \
libasound2-dev \
libattr1-dev \
libbpf-dev \
libbrlapi-dev \
libbz2-dev \
libc6-dev \
libcacard-dev \
libcap-ng-dev \
libcapstone-dev \
libcbor-dev \
libclang-rt-dev \
libcmocka-dev \
libcurl4-gnutls-dev \
libdaxctl-dev \
libdrm-dev \
libepoxy-dev \
libfdt-dev \
libffi-dev \
libfuse3-dev \
libgbm-dev \
libgcrypt20-dev \
libglib2.0-dev \
libgnutls28-dev \
libgtk-3-dev \
libgtk-vnc-2.0-dev \
libibverbs-dev \
libiscsi-dev \
libjemalloc-dev \
libjpeg-turbo8-dev \
libjson-c-dev \
liblttng-ust-dev \
liblzo2-dev \
libncursesw5-dev \
libnfs-dev \
libnuma-dev \
libpam0g-dev \
libpcre2-dev \
libpipewire-0.3-dev \
libpixman-1-dev \
libpmem-dev \
libpng-dev \
libpulse-dev \
librbd-dev \
librdmacm-dev \
libsasl2-dev \
libsdl2-dev \
libsdl2-image-dev \
libseccomp-dev \
libselinux1-dev \
libslirp-dev \
libsnappy-dev \
libsndio-dev \
libspice-protocol-dev \
libspice-server-dev \
libssh-dev \
libstd-rust-dev \
libsystemd-dev \
libtasn1-6-dev \
libubsan1 \
libudev-dev \
liburing-dev \
libusb-1.0-0-dev \
libusbredirhost-dev \
libvdeplug-dev \
libvirglrenderer-dev \
libvte-2.91-dev \
libxdp-dev \
libxen-dev \
libzstd-dev \
llvm \
locales \
make \
mtools \
multipath-tools \
nettle-dev \
ninja-build \
openssh-client \
pkgconf \
python3 \
python3-pip \
python3-setuptools \
python3-sphinx \
python3-sphinx-rtd-theme \
python3-tomli \
python3-venv \
python3-wheel \
rpm2cpio \
rustc-1.83 \
sed \
socat \
sparse \
swtpm \
systemtap-sdt-dev \
tar \
tesseract-ocr \
tesseract-ocr-eng \
vulkan-tools \
xorriso \
zlib1g-dev \
zstd && \
eatmydata apt-get autoremove -y && \
eatmydata apt-get autoclean -y && \
sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
dpkg-reconfigure locales && \
rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
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/clang && \
ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
RUN /usr/bin/pip3 install meson==1.12.0
ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
ENV LANG="en_US.UTF-8"
ENV MAKE="/usr/bin/make"
ENV NINJA="/usr/bin/ninja"
ENV PYTHON="/usr/bin/python3"
ENV RUSTC=/usr/bin/rustc-1.83
ENV RUSTDOC=/usr/bin/rustdoc-1.83
ENV CARGO_HOME=/usr/local/cargo
ENV PATH=$CARGO_HOME/bin:$PATH
RUN apt update && \
DEBIAN_FRONTEND=noninteractive eatmydata \
apt install -y --no-install-recommends cargo
RUN cargo install --locked bindgen-cli
# As a final step configure the user (if env is defined)
ARG USER
ARG UID
RUN if [ "${USER}" ]; then \
id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
ENV ENABLE_RUST=1