mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-18 15:42:09 -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>
163 lines
5.8 KiB
Docker
163 lines
5.8 KiB
Docker
# THIS FILE WAS AUTO-GENERATED
|
|
#
|
|
# $ lcitool dockerfile --layers all ubuntu-2204 qemu
|
|
#
|
|
# https://gitlab.com/libvirt/libvirt-ci
|
|
|
|
FROM docker.io/library/ubuntu:22.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 \
|
|
bison \
|
|
bsdextrautils \
|
|
bzip2 \
|
|
ca-certificates \
|
|
ccache \
|
|
clang \
|
|
dbus \
|
|
debianutils \
|
|
diffutils \
|
|
exuberant-ctags \
|
|
findutils \
|
|
flex \
|
|
gcc \
|
|
gcovr \
|
|
gettext \
|
|
git \
|
|
hostname \
|
|
libaio-dev \
|
|
libasan6 \
|
|
libasound2-dev \
|
|
libattr1-dev \
|
|
libbpf-dev \
|
|
libbrlapi-dev \
|
|
libbz2-dev \
|
|
libc6-dev \
|
|
libcacard-dev \
|
|
libcap-ng-dev \
|
|
libcapstone-dev \
|
|
libcbor-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 \
|
|
libglusterfs-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 \
|
|
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 \
|
|
libxen-dev \
|
|
libzstd-dev \
|
|
llvm \
|
|
locales \
|
|
make \
|
|
meson \
|
|
mtools \
|
|
multipath-tools \
|
|
ncat \
|
|
nettle-dev \
|
|
ninja-build \
|
|
openssh-client \
|
|
pkgconf \
|
|
python3 \
|
|
python3-numpy \
|
|
python3-opencv \
|
|
python3-pillow \
|
|
python3-pip \
|
|
python3-sphinx \
|
|
python3-sphinx-rtd-theme \
|
|
python3-tomli \
|
|
python3-venv \
|
|
python3-yaml \
|
|
rpm2cpio \
|
|
rustc-1.77 \
|
|
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
|
|
|
|
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.77
|
|
ENV CARGO_HOME=/usr/local/cargo
|
|
ENV PATH=$CARGO_HOME/bin:$PATH
|
|
RUN DEBIAN_FRONTEND=noninteractive eatmydata \
|
|
apt install -y --no-install-recommends cargo
|
|
RUN cargo install 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
|