mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-01 23:03:54 -06:00

On Debian, the rustc-web package provides a newer Rust compiler (1.78) for all architectures except mips64el. On Ubuntu, Rust versions up to 1.80 (?) are available as of this writing for both Jammy (22.04) and Noble (24.04). However, the path to rustc and rustdoc must be provided by hand to the configure script using either command line arguments or environment variables. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
182 lines
6.9 KiB
Docker
182 lines
6.9 KiB
Docker
# THIS FILE WAS AUTO-GENERATED
|
|
#
|
|
# $ lcitool dockerfile --layers all --cross-arch i686 debian-12 qemu
|
|
#
|
|
# https://gitlab.com/libvirt/libvirt-ci
|
|
|
|
FROM docker.io/library/debian:12-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 \
|
|
dbus \
|
|
debianutils \
|
|
diffutils \
|
|
exuberant-ctags \
|
|
findutils \
|
|
flex \
|
|
gcc \
|
|
gcovr \
|
|
gettext \
|
|
git \
|
|
hostname \
|
|
libglib2.0-dev \
|
|
llvm \
|
|
locales \
|
|
make \
|
|
meson \
|
|
mtools \
|
|
ncat \
|
|
ninja-build \
|
|
openssh-client \
|
|
pkgconf \
|
|
python3 \
|
|
python3-numpy \
|
|
python3-opencv \
|
|
python3-pillow \
|
|
python3-pip \
|
|
python3-sphinx \
|
|
python3-sphinx-rtd-theme \
|
|
python3-venv \
|
|
python3-yaml \
|
|
rpm2cpio \
|
|
rustc-web \
|
|
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
|
|
|
|
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 \
|
|
libasan6: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 \
|
|
libglusterfs-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 \
|
|
librbd-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 \
|
|
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 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
|