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               libcbor-devel \
66               libcmocka-devel \
67               libcurl-devel \
68               libdrm-devel \
69               libepoxy-devel \
70               libfdt-devel \
71               libffi-devel \
72               libgcrypt-devel \
73               libiscsi-devel \
74               libjpeg-devel \
75               libnfs-devel \
76               libpmem-devel \
77               libpng-devel \
78               librbd-devel \
79               libseccomp-devel \
80               libselinux-devel \
81               libslirp-devel \
82               libssh-devel \
83               libtasn1-devel \
84               libubsan \
85               liburing-devel \
86               libusbx-devel \
87               libxdp-devel \
88               libzstd-devel \
89               llvm \
90               lttng-ust-devel \
91               lzo-devel \
92               make \
93               mesa-libgbm-devel \
94               meson \
95               mtools \
96               ncurses-devel \
97               nettle-devel \
98               ninja-build \
99               nmap-ncat \
100               numactl-devel \
101               openssh-clients \
102               pam-devel \
103               pcre-static \
104               pipewire-devel \
105               pixman-devel \
106               pkgconfig \
107               pulseaudio-libs-devel \
108               python3 \
109               python3-PyYAML \
110               python3-numpy \
111               python3-opencv \
112               python3-pillow \
113               python3-pip \
114               python3-sphinx \
115               python3-sphinx_rtd_theme \
116               python3-zombie-imp \
117               rdma-core-devel \
118               rust \
119               sed \
120               snappy-devel \
121               socat \
122               sparse \
123               spice-protocol \
124               spice-server-devel \
125               swtpm \
126               systemd-devel \
127               systemtap-sdt-devel \
128               tar \
129               tesseract \
130               tesseract-langpack-eng \
131               usbredir-devel \
132               util-linux \
133               virglrenderer-devel \
134               vte291-devel \
135               which \
136               xen-devel \
137               xorriso \
138               zlib-devel \
139               zlib-static \
140               zstd && \
141    nosync dnf autoremove -y && \
142    nosync dnf clean all -y && \
143    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
144    rpm -qa | sort > /packages.txt && \
145    mkdir -p /usr/libexec/ccache-wrappers && \
146    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
147    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
148    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
149
150ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
151ENV LANG "en_US.UTF-8"
152ENV MAKE "/usr/bin/make"
153ENV NINJA "/usr/bin/ninja"
154ENV PYTHON "/usr/bin/python3"
155RUN dnf install -y wget
156ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
157ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
158RUN set -eux && \
159  rustArch='x86_64-unknown-linux-gnu' && \
160  rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
161  url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" && \
162  wget "$url" && \
163  echo "${rustupSha256} *rustup-init" | sha256sum -c - && \
164  chmod +x rustup-init && \
165  ./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
166  chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
167  /usr/local/cargo/bin/rustup --version && \
168  /usr/local/cargo/bin/rustup run nightly rustc --version && \
169  test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
170ENV PATH=$CARGO_HOME/bin:$PATH
171RUN /usr/local/cargo/bin/rustup run nightly cargo install bindgen-cli
172# As a final step configure the user (if env is defined)
173ARG USER
174ARG UID
175RUN if [ "${USER}" ]; then \
176  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
177