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