master
docker 184 lines 6.95 KB
Raw
1 # THIS FILE WAS AUTO-GENERATED
2 #
3 # $ lcitool dockerfile --layers all fedora-43 qemu
4 #
5 # https://gitlab.com/libvirt/libvirt-ci
6
7 FROM registry.fedoraproject.org/fedora:43
8
9 RUN dnf --quiet install -y nosync && \
10 printf '#!/bin/sh\n\
11 if test -d /usr/lib64\n\
12 then\n\
13 export LD_PRELOAD=/usr/lib64/nosync/nosync.so\n\
14 else\n\
15 export LD_PRELOAD=/usr/lib/nosync/nosync.so\n\
16 fi\n\
17 exec "$@"\n' > /usr/bin/nosync && \
18 chmod +x /usr/bin/nosync && \
19 nosync dnf --quiet update -y && \
20 nosync dnf --quiet install -y \
21 SDL2_image-devel \
22 alsa-lib-devel \
23 bash \
24 bc \
25 bindgen-cli \
26 bison \
27 brlapi-devel \
28 bzip2 \
29 bzip2-devel \
30 ca-certificates \
31 capstone-devel \
32 ccache \
33 clang \
34 compiler-rt \
35 coreutils \
36 ctags \
37 cyrus-sasl-devel \
38 daxctl-devel \
39 dbus-daemon \
40 device-mapper-multipath-devel \
41 diffutils \
42 findutils \
43 flex \
44 fuse3-devel \
45 gcc \
46 gcovr \
47 gettext \
48 git \
49 glib2-devel \
50 glib2-static \
51 glibc-langpack-en \
52 glibc-static \
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 mtools \
95 ncurses-devel \
96 nettle-devel \
97 ninja-build \
98 numactl-devel \
99 openssh-clients \
100 pam-devel \
101 pcre2-static \
102 pipewire-devel \
103 pixman-devel \
104 pkgconfig \
105 pulseaudio-libs-devel \
106 python3 \
107 python3-pip \
108 python3-setuptools \
109 python3-sphinx \
110 python3-sphinx_rtd_theme \
111 python3-wheel \
112 rdma-core-devel \
113 rust \
114 rust-std-static \
115 sdl2-compat-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-dtrace \
125 tar \
126 tesseract \
127 tesseract-langpack-eng \
128 usbredir-devel \
129 util-linux \
130 virglrenderer-devel \
131 vte291-devel \
132 vulkan-tools \
133 which \
134 xen-devel \
135 xorriso \
136 zlib-devel \
137 zlib-static \
138 zstd && \
139 nosync dnf --quiet autoremove -y && \
140 nosync dnf --quiet clean all -y && \
141 rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
142 rpm -qa | sort > /packages.txt && \
143 mkdir -p /usr/libexec/ccache-wrappers && \
144 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
145 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
146 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
147
148 RUN /usr/bin/pip3 install meson==1.12.0
149
150 ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
151 ENV LANG="en_US.UTF-8"
152 ENV MAKE="/usr/bin/make"
153 ENV NINJA="/usr/bin/ninja"
154 ENV PYTHON="/usr/bin/python3"
155 RUN dnf install -y wget
156 ENV RUSTUP_HOME=/usr/local/rustup CARGO_HOME=/usr/local/cargo
157 ENV RUSTC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustc
158 ENV RUSTDOC=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/rustdoc
159 ENV CARGO=/usr/local/rustup/toolchains/nightly-x86_64-unknown-linux-gnu/bin/cargo
160 RUN set -eux && \
161 rustArch='x86_64-unknown-linux-gnu' && \
162 rustupSha256='6aeece6993e902708983b209d04c0d1dbb14ebb405ddb87def578d41f920f56d' && \
163 url="https://static.rust-lang.org/rustup/archive/1.27.1/${rustArch}/rustup-init" && \
164 wget "$url" && \
165 echo "${rustupSha256} *rustup-init" | sha256sum -c - && \
166 chmod +x rustup-init && \
167 ./rustup-init -y --no-modify-path --profile default --default-toolchain nightly --default-host ${rustArch} && \
168 chmod -R a+w $RUSTUP_HOME $CARGO_HOME && \
169 /usr/local/cargo/bin/rustup --version && \
170 /usr/local/cargo/bin/rustup run nightly cargo --version && \
171 /usr/local/cargo/bin/rustup run nightly rustc --version && \
172 test "$CARGO" = "$(/usr/local/cargo/bin/rustup +nightly which cargo)" && \
173 test "$RUSTDOC" = "$(/usr/local/cargo/bin/rustup +nightly which rustdoc)" && \
174 test "$RUSTC" = "$(/usr/local/cargo/bin/rustup +nightly which rustc)"
175 ENV PATH=$CARGO_HOME/bin:$PATH
176 RUN /usr/local/cargo/bin/rustup run nightly cargo install --locked bindgen-cli
177 RUN $CARGO --list
178 # As a final step configure the user (if env is defined)
179 ARG USER
180 ARG UID
181 RUN if [ "${USER}" ]; then \
182 id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
183
184 ENV ENABLE_RUST=1