xref: /openbmc/qemu/tests/docker/dockerfiles/fedora-rust-nightly.docker (revision c94bee4cd6693c1c65ba43bb8970cf909dec378b)
18105ca85SPaolo Bonzini# THIS FILE WAS AUTO-GENERATED
28105ca85SPaolo Bonzini#
38105ca85SPaolo Bonzini#  $ lcitool dockerfile --layers all fedora-40 qemu
48105ca85SPaolo Bonzini#
58105ca85SPaolo Bonzini# https://gitlab.com/libvirt/libvirt-ci
68105ca85SPaolo Bonzini
78105ca85SPaolo BonziniFROM registry.fedoraproject.org/fedora:40
88105ca85SPaolo Bonzini
98105ca85SPaolo BonziniRUN dnf install -y nosync && \
108105ca85SPaolo Bonzini    printf '#!/bin/sh\n\
118105ca85SPaolo Bonziniif test -d /usr/lib64\n\
128105ca85SPaolo Bonzinithen\n\
138105ca85SPaolo Bonzini    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
148105ca85SPaolo Bonzinielse\n\
158105ca85SPaolo Bonzini    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
168105ca85SPaolo Bonzinifi\n\
178105ca85SPaolo Bonziniexec "$@"\n' > /usr/bin/nosync && \
188105ca85SPaolo Bonzini    chmod +x /usr/bin/nosync && \
198105ca85SPaolo Bonzini    nosync dnf update -y && \
208105ca85SPaolo Bonzini    nosync dnf install -y \
218105ca85SPaolo Bonzini               SDL2-devel \
228105ca85SPaolo Bonzini               SDL2_image-devel \
238105ca85SPaolo Bonzini               alsa-lib-devel \
248105ca85SPaolo Bonzini               bash \
258105ca85SPaolo Bonzini               bc \
26548de8f8SDaniel P. Berrangé               bindgen-cli \
278105ca85SPaolo Bonzini               bison \
288105ca85SPaolo Bonzini               brlapi-devel \
298105ca85SPaolo Bonzini               bzip2 \
308105ca85SPaolo Bonzini               bzip2-devel \
318105ca85SPaolo Bonzini               ca-certificates \
328105ca85SPaolo Bonzini               capstone-devel \
338105ca85SPaolo Bonzini               ccache \
348105ca85SPaolo Bonzini               clang \
358105ca85SPaolo Bonzini               ctags \
368105ca85SPaolo Bonzini               cyrus-sasl-devel \
378105ca85SPaolo Bonzini               daxctl-devel \
388105ca85SPaolo Bonzini               dbus-daemon \
398105ca85SPaolo Bonzini               device-mapper-multipath-devel \
408105ca85SPaolo Bonzini               diffutils \
418105ca85SPaolo Bonzini               findutils \
428105ca85SPaolo Bonzini               flex \
438105ca85SPaolo Bonzini               fuse3-devel \
448105ca85SPaolo Bonzini               gcc \
458105ca85SPaolo Bonzini               gcovr \
468105ca85SPaolo Bonzini               gettext \
478105ca85SPaolo Bonzini               git \
488105ca85SPaolo Bonzini               glib2-devel \
498105ca85SPaolo Bonzini               glib2-static \
508105ca85SPaolo Bonzini               glibc-langpack-en \
518105ca85SPaolo Bonzini               glibc-static \
528105ca85SPaolo Bonzini               glusterfs-api-devel \
538105ca85SPaolo Bonzini               gnutls-devel \
548105ca85SPaolo Bonzini               gtk-vnc2-devel \
558105ca85SPaolo Bonzini               gtk3-devel \
568105ca85SPaolo Bonzini               hostname \
578105ca85SPaolo Bonzini               jemalloc-devel \
588105ca85SPaolo Bonzini               json-c-devel \
598105ca85SPaolo Bonzini               libaio-devel \
608105ca85SPaolo Bonzini               libasan \
618105ca85SPaolo Bonzini               libattr-devel \
628105ca85SPaolo Bonzini               libbpf-devel \
638105ca85SPaolo Bonzini               libcacard-devel \
648105ca85SPaolo Bonzini               libcap-ng-devel \
65*1ac32dc8SDorjoy Chowdhury               libcbor-devel \
668105ca85SPaolo Bonzini               libcmocka-devel \
678105ca85SPaolo Bonzini               libcurl-devel \
688105ca85SPaolo Bonzini               libdrm-devel \
698105ca85SPaolo Bonzini               libepoxy-devel \
708105ca85SPaolo Bonzini               libfdt-devel \
718105ca85SPaolo Bonzini               libffi-devel \
728105ca85SPaolo Bonzini               libgcrypt-devel \
738105ca85SPaolo Bonzini               libiscsi-devel \
748105ca85SPaolo Bonzini               libjpeg-devel \
758105ca85SPaolo Bonzini               libnfs-devel \
768105ca85SPaolo Bonzini               libpmem-devel \
778105ca85SPaolo Bonzini               libpng-devel \
788105ca85SPaolo Bonzini               librbd-devel \
798105ca85SPaolo Bonzini               libseccomp-devel \
808105ca85SPaolo Bonzini               libselinux-devel \
818105ca85SPaolo Bonzini               libslirp-devel \
828105ca85SPaolo Bonzini               libssh-devel \
838105ca85SPaolo Bonzini               libtasn1-devel \
848105ca85SPaolo Bonzini               libubsan \
858105ca85SPaolo Bonzini               liburing-devel \
868105ca85SPaolo Bonzini               libusbx-devel \
878105ca85SPaolo Bonzini               libxdp-devel \
888105ca85SPaolo Bonzini               libzstd-devel \
898105ca85SPaolo Bonzini               llvm \
908105ca85SPaolo Bonzini               lttng-ust-devel \
918105ca85SPaolo Bonzini               lzo-devel \
928105ca85SPaolo Bonzini               make \
938105ca85SPaolo Bonzini               mesa-libgbm-devel \
948105ca85SPaolo Bonzini               meson \
958105ca85SPaolo Bonzini               mtools \
968105ca85SPaolo Bonzini               ncurses-devel \
978105ca85SPaolo Bonzini               nettle-devel \
988105ca85SPaolo Bonzini               ninja-build \
998105ca85SPaolo Bonzini               nmap-ncat \
1008105ca85SPaolo Bonzini               numactl-devel \
1018105ca85SPaolo Bonzini               openssh-clients \
1028105ca85SPaolo Bonzini               pam-devel \
1038105ca85SPaolo Bonzini               pcre-static \
1048105ca85SPaolo Bonzini               pipewire-devel \
1058105ca85SPaolo Bonzini               pixman-devel \
1068105ca85SPaolo Bonzini               pkgconfig \
1078105ca85SPaolo Bonzini               pulseaudio-libs-devel \
1088105ca85SPaolo Bonzini               python3 \
1098105ca85SPaolo Bonzini               python3-PyYAML \
1108105ca85SPaolo Bonzini               python3-numpy \
1118105ca85SPaolo Bonzini               python3-opencv \
1128105ca85SPaolo Bonzini               python3-pillow \
1138105ca85SPaolo Bonzini               python3-pip \
1148105ca85SPaolo Bonzini               python3-sphinx \
1158105ca85SPaolo Bonzini               python3-sphinx_rtd_theme \
1168105ca85SPaolo Bonzini               python3-zombie-imp \
1178105ca85SPaolo Bonzini               rdma-core-devel \
118548de8f8SDaniel P. Berrangé               rust \
1198105ca85SPaolo Bonzini               sed \
1208105ca85SPaolo Bonzini               snappy-devel \
1218105ca85SPaolo Bonzini               socat \
1228105ca85SPaolo Bonzini               sparse \
1238105ca85SPaolo Bonzini               spice-protocol \
1248105ca85SPaolo Bonzini               spice-server-devel \
1258105ca85SPaolo Bonzini               swtpm \
1268105ca85SPaolo Bonzini               systemd-devel \
1278105ca85SPaolo Bonzini               systemtap-sdt-devel \
1288105ca85SPaolo Bonzini               tar \
1298105ca85SPaolo Bonzini               tesseract \
1308105ca85SPaolo Bonzini               tesseract-langpack-eng \
1318105ca85SPaolo Bonzini               usbredir-devel \
1328105ca85SPaolo Bonzini               util-linux \
1338105ca85SPaolo Bonzini               virglrenderer-devel \
1348105ca85SPaolo Bonzini               vte291-devel \
1358105ca85SPaolo Bonzini               which \
1368105ca85SPaolo Bonzini               xen-devel \
1378105ca85SPaolo Bonzini               xorriso \
1388105ca85SPaolo Bonzini               zlib-devel \
1398105ca85SPaolo Bonzini               zlib-static \
1408105ca85SPaolo Bonzini               zstd && \
1418105ca85SPaolo Bonzini    nosync dnf autoremove -y && \
1428105ca85SPaolo Bonzini    nosync dnf clean all -y && \
1438105ca85SPaolo Bonzini    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
1448105ca85SPaolo Bonzini    rpm -qa | sort > /packages.txt && \
1458105ca85SPaolo Bonzini    mkdir -p /usr/libexec/ccache-wrappers && \
1468105ca85SPaolo Bonzini    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
1478105ca85SPaolo Bonzini    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
1488105ca85SPaolo Bonzini    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
1498105ca85SPaolo Bonzini
1508105ca85SPaolo BonziniENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
1518105ca85SPaolo BonziniENV LANG "en_US.UTF-8"
1528105ca85SPaolo BonziniENV MAKE "/usr/bin/make"
1538105ca85SPaolo BonziniENV NINJA "/usr/bin/ninja"
1548105ca85SPaolo BonziniENV PYTHON "/usr/bin/python3"
1558105ca85SPaolo BonziniRUN dnf install -y wget
1568105ca85SPaolo BonziniENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
1578105ca85SPaolo BonziniENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
1588105ca85SPaolo BonziniRUN set -eux && \
1598105ca85SPaolo Bonzini  rustArch='x86_64-unknown-linux-gnu' && \
1608105ca85SPaolo Bonzini  rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
1618105ca85SPaolo Bonzini  url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" && \
1628105ca85SPaolo Bonzini  wget "$url" && \
1638105ca85SPaolo Bonzini  echo "${rustupSha256} *rustup-init" | sha256sum -c - && \
1648105ca85SPaolo Bonzini  chmod +x rustup-init && \
1658105ca85SPaolo Bonzini  ./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
1668105ca85SPaolo Bonzini  chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
1678105ca85SPaolo Bonzini  /usr/local/cargo/bin/rustup --version && \
1688105ca85SPaolo Bonzini  /usr/local/cargo/bin/rustup run nightly rustc --version && \
1698105ca85SPaolo Bonzini  test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
1708105ca85SPaolo BonziniENV PATH=$CARGO_HOME/bin:$PATH
1718105ca85SPaolo BonziniRUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
1728105ca85SPaolo Bonzini# As a final step configure the user (if env is defined)
1738105ca85SPaolo BonziniARG USER
1748105ca85SPaolo BonziniARG UID
1758105ca85SPaolo BonziniRUN if [ "${USER}" ]; then \
1768105ca85SPaolo Bonzini  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
177