master
docker 119 lines 4.15 KB
Raw
1 # THIS FILE WAS AUTO-GENERATED
2 #
3 # $ lcitool dockerfile --layers all --cross-arch mingw64 fedora-43 qemu,qemu-win-installer
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 bash \
22 bc \
23 bindgen-cli \
24 bison \
25 bzip2 \
26 ca-certificates \
27 ccache \
28 compiler-rt \
29 coreutils \
30 ctags \
31 dbus-daemon \
32 diffutils \
33 findutils \
34 flex \
35 gcc \
36 gcovr \
37 git \
38 glib2-devel \
39 glibc-langpack-en \
40 hostname \
41 llvm \
42 make \
43 mtools \
44 ninja-build \
45 openssh-clients \
46 python3 \
47 python3-pip \
48 python3-setuptools \
49 python3-sphinx \
50 python3-sphinx_rtd_theme \
51 python3-wheel \
52 rust \
53 sed \
54 socat \
55 sparse \
56 swtpm \
57 tar \
58 tesseract \
59 tesseract-langpack-eng \
60 util-linux \
61 vulkan-tools \
62 which \
63 xorriso \
64 zstd && \
65 nosync dnf --quiet autoremove -y && \
66 nosync dnf --quiet clean all -y && \
67 rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
68
69 RUN /usr/bin/pip3 install meson==1.12.0
70
71 ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
72 ENV LANG="en_US.UTF-8"
73 ENV MAKE="/usr/bin/make"
74 ENV NINJA="/usr/bin/ninja"
75 ENV PYTHON="/usr/bin/python3"
76
77 RUN nosync dnf --quiet install -y \
78 mingw-w64-tools \
79 mingw32-nsis \
80 mingw64-SDL2 \
81 mingw64-SDL2_image \
82 mingw64-bzip2 \
83 mingw64-curl \
84 mingw64-gcc \
85 mingw64-gcc-c++ \
86 mingw64-gettext \
87 mingw64-glib2 \
88 mingw64-gnutls \
89 mingw64-gtk-vnc2 \
90 mingw64-gtk3 \
91 mingw64-libepoxy \
92 mingw64-libfdt \
93 mingw64-libgcrypt \
94 mingw64-libjpeg-turbo \
95 mingw64-libpng \
96 mingw64-libtasn1 \
97 mingw64-nettle \
98 mingw64-pixman \
99 mingw64-pkg-config \
100 rust-std-static-x86_64-pc-windows-gnu && \
101 nosync dnf --quiet clean all -y && \
102 rpm -qa | sort > /packages.txt && \
103 mkdir -p /usr/libexec/ccache-wrappers && \
104 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-c++ && \
105 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-cc && \
106 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-g++ && \
107 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/x86_64-w64-mingw32-gcc
108
109 ENV ABI="x86_64-w64-mingw32"
110 ENV MESON_OPTS="--cross-file=/usr/share/mingw/toolchain-mingw64.meson"
111 ENV QEMU_CONFIGURE_OPTS=--cross-prefix=x86_64-w64-mingw32-
112 ENV DEF_TARGET_LIST=x86_64-softmmu
113 # As a final step configure the user (if env is defined)
114 ARG USER
115 ARG UID
116 RUN if [ "${USER}" ]; then \
117 id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
118
119 ENV ENABLE_RUST=1