xref: /openbmc/qemu/tests/docker/dockerfiles/fedora-rust-nightly.docker (revision 7cac7aa7040a823c585f1578a38f28e83c8bf3e1)
1# THIS FILE WAS AUTO-GENERATED
2#
3#  $ lcitool dockerfile --layers all fedora-40 qemu
4#
5# https://gitlab.com/libvirt/libvirt-ci
6
7FROM registry.fedoraproject.org/fedora:40
8
9RUN dnf install -y nosync && \
10    printf '#!/bin/sh\n\
11if test -d /usr/lib64\n\
12then\n\
13    export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
14else\n\
15    export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
16fi\n\
17exec "$@"\n' > /usr/bin/nosync && \
18    chmod +x /usr/bin/nosync && \
19    nosync dnf update -y && \
20    nosync dnf install -y \
21               SDL2-devel \
22               SDL2_image-devel \
23               alsa-lib-devel \
24               bash \
25               bc \
26               bindgen-cli \
27               bison \
28               brlapi-devel \
29               bzip2 \
30               bzip2-devel \
31               ca-certificates \
32               capstone-devel \
33               ccache \
34               clang \
35               ctags \
36               cyrus-sasl-devel \
37               daxctl-devel \
38               dbus-daemon \
39               device-mapper-multipath-devel \
40               diffutils \
41               findutils \
42               flex \
43               fuse3-devel \
44               gcc \
45               gcovr \
46               gettext \
47               git \
48               glib2-devel \
49               glib2-static \
50               glibc-langpack-en \
51               glibc-static \
52               glusterfs-api-devel \
53               gnutls-devel \
54               gtk-vnc2-devel \
55               gtk3-devel \
56               hostname \
57               jemalloc-devel \
58               json-c-devel \
59               libaio-devel \
60               libasan \
61               libattr-devel \
62               libbpf-devel \
63               libcacard-devel \
64               libcap-ng-devel \
65               libcmocka-devel \
66               libcurl-devel \
67               libdrm-devel \
68               libepoxy-devel \
69               libfdt-devel \
70               libffi-devel \
71               libgcrypt-devel \
72               libiscsi-devel \
73               libjpeg-devel \
74               libnfs-devel \
75               libpmem-devel \
76               libpng-devel \
77               librbd-devel \
78               libseccomp-devel \
79               libselinux-devel \
80               libslirp-devel \
81               libssh-devel \
82               libtasn1-devel \
83               libubsan \
84               liburing-devel \
85               libusbx-devel \
86               libxdp-devel \
87               libzstd-devel \
88               llvm \
89               lttng-ust-devel \
90               lzo-devel \
91               make \
92               mesa-libgbm-devel \
93               meson \
94               mtools \
95               ncurses-devel \
96               nettle-devel \
97               ninja-build \
98               nmap-ncat \
99               numactl-devel \
100               openssh-clients \
101               pam-devel \
102               pcre-static \
103               pipewire-devel \
104               pixman-devel \
105               pkgconfig \
106               pulseaudio-libs-devel \
107               python3 \
108               python3-PyYAML \
109               python3-numpy \
110               python3-opencv \
111               python3-pillow \
112               python3-pip \
113               python3-sphinx \
114               python3-sphinx_rtd_theme \
115               python3-zombie-imp \
116               rdma-core-devel \
117               rust \
118               sed \
119               snappy-devel \
120               socat \
121               sparse \
122               spice-protocol \
123               spice-server-devel \
124               swtpm \
125               systemd-devel \
126               systemtap-sdt-devel \
127               tar \
128               tesseract \
129               tesseract-langpack-eng \
130               usbredir-devel \
131               util-linux \
132               virglrenderer-devel \
133               vte291-devel \
134               which \
135               xen-devel \
136               xorriso \
137               zlib-devel \
138               zlib-static \
139               zstd && \
140    nosync dnf autoremove -y && \
141    nosync dnf clean all -y && \
142    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
143    rpm -qa | sort > /packages.txt && \
144    mkdir -p /usr/libexec/ccache-wrappers && \
145    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
146    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
147    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
148
149ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
150ENV LANG "en_US.UTF-8"
151ENV MAKE "/usr/bin/make"
152ENV NINJA "/usr/bin/ninja"
153ENV PYTHON "/usr/bin/python3"
154RUN dnf install -y wget
155ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
156ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
157RUN set -eux && \
158  rustArch='x86_64-unknown-linux-gnu' && \
159  rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
160  url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" && \
161  wget "$url" && \
162  echo "${rustupSha256} *rustup-init" | sha256sum -c - && \
163  chmod +x rustup-init && \
164  ./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
165  chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
166  /usr/local/cargo/bin/rustup --version && \
167  /usr/local/cargo/bin/rustup run nightly rustc --version && \
168  test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
169ENV PATH=$CARGO_HOME/bin:$PATH
170RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
171# As a final step configure the user (if env is defined)
172ARG USER
173ARG UID
174RUN if [ "${USER}" ]; then \
175  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
176