1*8e721c32SAlex Bennée# THIS FILE WAS AUTO-GENERATED
2*8e721c32SAlex Bennée#
3*8e721c32SAlex Bennée#  $ lcitool dockerfile --layers all debian-12 qemu
4*8e721c32SAlex Bennée#
5*8e721c32SAlex Bennée# https://gitlab.com/libvirt/libvirt-ci
6*8e721c32SAlex Bennée
7*8e721c32SAlex BennéeFROM docker.io/library/debian:12-slim
8*8e721c32SAlex Bennée
9*8e721c32SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
10*8e721c32SAlex Bennée    apt-get update && \
11*8e721c32SAlex Bennée    apt-get install -y eatmydata && \
12*8e721c32SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
13*8e721c32SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
14*8e721c32SAlex Bennée                      bash \
15*8e721c32SAlex Bennée                      bc \
16*8e721c32SAlex Bennée                      bison \
17*8e721c32SAlex Bennée                      bsdextrautils \
18*8e721c32SAlex Bennée                      bzip2 \
19*8e721c32SAlex Bennée                      ca-certificates \
20*8e721c32SAlex Bennée                      ccache \
21*8e721c32SAlex Bennée                      clang \
22*8e721c32SAlex Bennée                      dbus \
23*8e721c32SAlex Bennée                      debianutils \
24*8e721c32SAlex Bennée                      diffutils \
25*8e721c32SAlex Bennée                      exuberant-ctags \
26*8e721c32SAlex Bennée                      findutils \
27*8e721c32SAlex Bennée                      flex \
28*8e721c32SAlex Bennée                      g++ \
29*8e721c32SAlex Bennée                      gcc \
30*8e721c32SAlex Bennée                      gcovr \
31*8e721c32SAlex Bennée                      gettext \
32*8e721c32SAlex Bennée                      git \
33*8e721c32SAlex Bennée                      hostname \
34*8e721c32SAlex Bennée                      libaio-dev \
35*8e721c32SAlex Bennée                      libasan6 \
36*8e721c32SAlex Bennée                      libasound2-dev \
37*8e721c32SAlex Bennée                      libattr1-dev \
38*8e721c32SAlex Bennée                      libbpf-dev \
39*8e721c32SAlex Bennée                      libbrlapi-dev \
40*8e721c32SAlex Bennée                      libbz2-dev \
41*8e721c32SAlex Bennée                      libc6-dev \
42*8e721c32SAlex Bennée                      libcacard-dev \
43*8e721c32SAlex Bennée                      libcap-ng-dev \
44*8e721c32SAlex Bennée                      libcapstone-dev \
45*8e721c32SAlex Bennée                      libcmocka-dev \
46*8e721c32SAlex Bennée                      libcurl4-gnutls-dev \
47*8e721c32SAlex Bennée                      libdaxctl-dev \
48*8e721c32SAlex Bennée                      libdrm-dev \
49*8e721c32SAlex Bennée                      libepoxy-dev \
50*8e721c32SAlex Bennée                      libfdt-dev \
51*8e721c32SAlex Bennée                      libffi-dev \
52*8e721c32SAlex Bennée                      libfuse3-dev \
53*8e721c32SAlex Bennée                      libgbm-dev \
54*8e721c32SAlex Bennée                      libgcrypt20-dev \
55*8e721c32SAlex Bennée                      libglib2.0-dev \
56*8e721c32SAlex Bennée                      libglusterfs-dev \
57*8e721c32SAlex Bennée                      libgnutls28-dev \
58*8e721c32SAlex Bennée                      libgtk-3-dev \
59*8e721c32SAlex Bennée                      libibumad-dev \
60*8e721c32SAlex Bennée                      libibverbs-dev \
61*8e721c32SAlex Bennée                      libiscsi-dev \
62*8e721c32SAlex Bennée                      libjemalloc-dev \
63*8e721c32SAlex Bennée                      libjpeg62-turbo-dev \
64*8e721c32SAlex Bennée                      libjson-c-dev \
65*8e721c32SAlex Bennée                      liblttng-ust-dev \
66*8e721c32SAlex Bennée                      liblzo2-dev \
67*8e721c32SAlex Bennée                      libncursesw5-dev \
68*8e721c32SAlex Bennée                      libnfs-dev \
69*8e721c32SAlex Bennée                      libnuma-dev \
70*8e721c32SAlex Bennée                      libpam0g-dev \
71*8e721c32SAlex Bennée                      libpcre2-dev \
72*8e721c32SAlex Bennée                      libpipewire-0.3-dev \
73*8e721c32SAlex Bennée                      libpixman-1-dev \
74*8e721c32SAlex Bennée                      libpmem-dev \
75*8e721c32SAlex Bennée                      libpng-dev \
76*8e721c32SAlex Bennée                      libpulse-dev \
77*8e721c32SAlex Bennée                      librbd-dev \
78*8e721c32SAlex Bennée                      librdmacm-dev \
79*8e721c32SAlex Bennée                      libsasl2-dev \
80*8e721c32SAlex Bennée                      libsdl2-dev \
81*8e721c32SAlex Bennée                      libsdl2-image-dev \
82*8e721c32SAlex Bennée                      libseccomp-dev \
83*8e721c32SAlex Bennée                      libselinux1-dev \
84*8e721c32SAlex Bennée                      libslirp-dev \
85*8e721c32SAlex Bennée                      libsnappy-dev \
86*8e721c32SAlex Bennée                      libsndio-dev \
87*8e721c32SAlex Bennée                      libspice-protocol-dev \
88*8e721c32SAlex Bennée                      libspice-server-dev \
89*8e721c32SAlex Bennée                      libssh-gcrypt-dev \
90*8e721c32SAlex Bennée                      libsystemd-dev \
91*8e721c32SAlex Bennée                      libtasn1-6-dev \
92*8e721c32SAlex Bennée                      libubsan1 \
93*8e721c32SAlex Bennée                      libudev-dev \
94*8e721c32SAlex Bennée                      liburing-dev \
95*8e721c32SAlex Bennée                      libusb-1.0-0-dev \
96*8e721c32SAlex Bennée                      libusbredirhost-dev \
97*8e721c32SAlex Bennée                      libvdeplug-dev \
98*8e721c32SAlex Bennée                      libvirglrenderer-dev \
99*8e721c32SAlex Bennée                      libvte-2.91-dev \
100*8e721c32SAlex Bennée                      libxdp-dev \
101*8e721c32SAlex Bennée                      libxen-dev \
102*8e721c32SAlex Bennée                      libzstd-dev \
103*8e721c32SAlex Bennée                      llvm \
104*8e721c32SAlex Bennée                      locales \
105*8e721c32SAlex Bennée                      make \
106*8e721c32SAlex Bennée                      meson \
107*8e721c32SAlex Bennée                      mtools \
108*8e721c32SAlex Bennée                      multipath-tools \
109*8e721c32SAlex Bennée                      ncat \
110*8e721c32SAlex Bennée                      nettle-dev \
111*8e721c32SAlex Bennée                      ninja-build \
112*8e721c32SAlex Bennée                      openssh-client \
113*8e721c32SAlex Bennée                      pkgconf \
114*8e721c32SAlex Bennée                      python3 \
115*8e721c32SAlex Bennée                      python3-numpy \
116*8e721c32SAlex Bennée                      python3-opencv \
117*8e721c32SAlex Bennée                      python3-pillow \
118*8e721c32SAlex Bennée                      python3-pip \
119*8e721c32SAlex Bennée                      python3-sphinx \
120*8e721c32SAlex Bennée                      python3-sphinx-rtd-theme \
121*8e721c32SAlex Bennée                      python3-venv \
122*8e721c32SAlex Bennée                      python3-yaml \
123*8e721c32SAlex Bennée                      rpm2cpio \
124*8e721c32SAlex Bennée                      sed \
125*8e721c32SAlex Bennée                      socat \
126*8e721c32SAlex Bennée                      sparse \
127*8e721c32SAlex Bennée                      swtpm \
128*8e721c32SAlex Bennée                      systemtap-sdt-dev \
129*8e721c32SAlex Bennée                      tar \
130*8e721c32SAlex Bennée                      tesseract-ocr \
131*8e721c32SAlex Bennée                      tesseract-ocr-eng \
132*8e721c32SAlex Bennée                      xfslibs-dev \
133*8e721c32SAlex Bennée                      xorriso \
134*8e721c32SAlex Bennée                      zlib1g-dev \
135*8e721c32SAlex Bennée                      zstd && \
136*8e721c32SAlex Bennée    eatmydata apt-get autoremove -y && \
137*8e721c32SAlex Bennée    eatmydata apt-get autoclean -y && \
138*8e721c32SAlex Bennée    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
139*8e721c32SAlex Bennée    dpkg-reconfigure locales && \
140*8e721c32SAlex Bennée    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
141*8e721c32SAlex Bennée    mkdir -p /usr/libexec/ccache-wrappers && \
142*8e721c32SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/c++ && \
143*8e721c32SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
144*8e721c32SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/clang && \
145*8e721c32SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/g++ && \
146*8e721c32SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
147*8e721c32SAlex Bennée
148*8e721c32SAlex BennéeENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
149*8e721c32SAlex BennéeENV LANG "en_US.UTF-8"
150*8e721c32SAlex BennéeENV MAKE "/usr/bin/make"
151*8e721c32SAlex BennéeENV NINJA "/usr/bin/ninja"
152*8e721c32SAlex BennéeENV PYTHON "/usr/bin/python3"
153*8e721c32SAlex Bennée# netmap/cscope/global
154*8e721c32SAlex BennéeRUN DEBIAN_FRONTEND=noninteractive eatmydata \
155*8e721c32SAlex Bennée  apt install -y --no-install-recommends \
156*8e721c32SAlex Bennée  cscope\
157*8e721c32SAlex Bennée  global\
158*8e721c32SAlex Bennée  linux-headers-generic
159*8e721c32SAlex BennéeRUN git clone https://github.com/luigirizzo/netmap.git /usr/src/netmap
160*8e721c32SAlex BennéeRUN cd /usr/src/netmap && git checkout v11.3
161*8e721c32SAlex BennéeRUN cd /usr/src/netmap/LINUX && \
162*8e721c32SAlex Bennée  ./configure --no-drivers --no-apps \
163*8e721c32SAlex Bennée  --kernel-dir=$(ls -d /usr/src/linux-headers-*-$(dpkg --print-architecture)) \
164*8e721c32SAlex Bennée  && make install
165*8e721c32SAlex BennéeENV QEMU_CONFIGURE_OPTS --enable-netmap
166*8e721c32SAlex Bennée# As a final step configure the user (if env is defined)
167*8e721c32SAlex BennéeARG USER
168*8e721c32SAlex BennéeARG UID
169*8e721c32SAlex BennéeRUN if [ "${USER}" ]; then \
170*8e721c32SAlex Bennée  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
171