Import QEMU upstream snapshot d2e570c
Upstream: https://gitlab.com/qemu-project/qemu.git Upstream-Commit: d2e570cc0f97b936902a5b1b86b73c0f5998b475
This commit is contained in:
commit
cf256aa081
11315 files changed
+3598369
No files matched your search
@@ -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
|
||||
@@ -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
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
Reference in new issue
Block a user