xref: /openbmc/qemu/tests/docker/dockerfiles/debian-arm64-cross.docker (revision 134b443512825bed401b6e141447b8cdc22d2efe)
1e3000245SAlex Bennée# THIS FILE WAS AUTO-GENERATED
224e0131fSAlex Bennée#
3ca9cde57SAlex Bennée#  $ lcitool dockerfile --layers all --cross-arch aarch64 debian-12 qemu
424e0131fSAlex Bennée#
5e3000245SAlex Bennée# https://gitlab.com/libvirt/libvirt-ci
624e0131fSAlex Bennée
7ca9cde57SAlex BennéeFROM docker.io/library/debian:12-slim
824e0131fSAlex Bennée
9e3000245SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
10e3000245SAlex Bennée    apt-get update && \
11e3000245SAlex Bennée    apt-get install -y eatmydata && \
12e3000245SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
13e3000245SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
14e3000245SAlex Bennée                      bash \
15e3000245SAlex Bennée                      bc \
16548de8f8SDaniel P. Berrangé                      bindgen \
178fae3910SAnton Johansson                      bison \
18e3000245SAlex Bennée                      bsdextrautils \
19e3000245SAlex Bennée                      bzip2 \
20e3000245SAlex Bennée                      ca-certificates \
21e3000245SAlex Bennée                      ccache \
22e3000245SAlex Bennée                      dbus \
23e3000245SAlex Bennée                      debianutils \
24e3000245SAlex Bennée                      diffutils \
25e3000245SAlex Bennée                      exuberant-ctags \
26e3000245SAlex Bennée                      findutils \
278fae3910SAnton Johansson                      flex \
28690be804SAlex Bennée                      gcc \
29e3000245SAlex Bennée                      gcovr \
30e3000245SAlex Bennée                      gettext \
31e3000245SAlex Bennée                      git \
32e3000245SAlex Bennée                      hostname \
338fae3910SAnton Johansson                      libglib2.0-dev \
34e3000245SAlex Bennée                      llvm \
35e3000245SAlex Bennée                      locales \
36e3000245SAlex Bennée                      make \
37e3000245SAlex Bennée                      meson \
38da900078SAni Sinha                      mtools \
39e3000245SAlex Bennée                      ncat \
40e3000245SAlex Bennée                      ninja-build \
41e3000245SAlex Bennée                      openssh-client \
42e3000245SAlex Bennée                      pkgconf \
43e3000245SAlex Bennée                      python3 \
44e3000245SAlex Bennée                      python3-numpy \
45e3000245SAlex Bennée                      python3-opencv \
46e3000245SAlex Bennée                      python3-pillow \
47e3000245SAlex Bennée                      python3-pip \
48e3000245SAlex Bennée                      python3-sphinx \
49e3000245SAlex Bennée                      python3-sphinx-rtd-theme \
50e3000245SAlex Bennée                      python3-venv \
51e3000245SAlex Bennée                      python3-yaml \
52e3000245SAlex Bennée                      rpm2cpio \
53548de8f8SDaniel P. Berrangé                      rustc \
54e3000245SAlex Bennée                      sed \
55ab4c1361SAlex Bennée                      socat \
56e3000245SAlex Bennée                      sparse \
573e3df0d8SAlex Bennée                      swtpm \
58e3000245SAlex Bennée                      tar \
59e3000245SAlex Bennée                      tesseract-ocr \
60bbe30763SAlex Bennée                      tesseract-ocr-eng \
61da900078SAni Sinha                      xorriso \
62bbe30763SAlex Bennée                      zstd && \
63e3000245SAlex Bennée    eatmydata apt-get autoremove -y && \
64e3000245SAlex Bennée    eatmydata apt-get autoclean -y && \
65e3000245SAlex Bennée    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
662355d18cSThomas Huth    dpkg-reconfigure locales && \
672355d18cSThomas Huth    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED
68e3000245SAlex Bennée
698f4bcbcfSBrad SmithENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"
70e3000245SAlex BennéeENV LANG "en_US.UTF-8"
71e3000245SAlex BennéeENV MAKE "/usr/bin/make"
72e3000245SAlex BennéeENV NINJA "/usr/bin/ninja"
73e3000245SAlex BennéeENV PYTHON "/usr/bin/python3"
74e3000245SAlex Bennée
75e3000245SAlex BennéeRUN export DEBIAN_FRONTEND=noninteractive && \
76e3000245SAlex Bennée    dpkg --add-architecture arm64 && \
77e3000245SAlex Bennée    eatmydata apt-get update && \
78e3000245SAlex Bennée    eatmydata apt-get dist-upgrade -y && \
79e3000245SAlex Bennée    eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
80e3000245SAlex Bennée    eatmydata apt-get install --no-install-recommends -y \
81e3000245SAlex Bennée                      gcc-aarch64-linux-gnu \
82e3000245SAlex Bennée                      libaio-dev:arm64 \
83a6f376e9SIlya Maximets                      libasan6:arm64 \
84e3000245SAlex Bennée                      libasound2-dev:arm64 \
85e3000245SAlex Bennée                      libattr1-dev:arm64 \
86e3000245SAlex Bennée                      libbpf-dev:arm64 \
87e3000245SAlex Bennée                      libbrlapi-dev:arm64 \
88e3000245SAlex Bennée                      libbz2-dev:arm64 \
89e3000245SAlex Bennée                      libc6-dev:arm64 \
90e3000245SAlex Bennée                      libcacard-dev:arm64 \
91e3000245SAlex Bennée                      libcap-ng-dev:arm64 \
92e3000245SAlex Bennée                      libcapstone-dev:arm64 \
931ac32dc8SDorjoy Chowdhury                      libcbor-dev:arm64 \
94feb6cb93SDaniel P. Berrangé                      libcmocka-dev:arm64 \
95e3000245SAlex Bennée                      libcurl4-gnutls-dev:arm64 \
96e3000245SAlex Bennée                      libdaxctl-dev:arm64 \
97e3000245SAlex Bennée                      libdrm-dev:arm64 \
98e3000245SAlex Bennée                      libepoxy-dev:arm64 \
99e3000245SAlex Bennée                      libfdt-dev:arm64 \
100e3000245SAlex Bennée                      libffi-dev:arm64 \
101e3000245SAlex Bennée                      libfuse3-dev:arm64 \
102e3000245SAlex Bennée                      libgbm-dev:arm64 \
103e3000245SAlex Bennée                      libgcrypt20-dev:arm64 \
104e3000245SAlex Bennée                      libglib2.0-dev:arm64 \
105e3000245SAlex Bennée                      libglusterfs-dev:arm64 \
106e3000245SAlex Bennée                      libgnutls28-dev:arm64 \
107e3000245SAlex Bennée                      libgtk-3-dev:arm64 \
108*7a383b99SDaniel P. Berrangé                      libgtk-vnc-2.0-dev:arm64 \
109e3000245SAlex Bennée                      libibverbs-dev:arm64 \
110e3000245SAlex Bennée                      libiscsi-dev:arm64 \
111e3000245SAlex Bennée                      libjemalloc-dev:arm64 \
112e3000245SAlex Bennée                      libjpeg62-turbo-dev:arm64 \
113feb6cb93SDaniel P. Berrangé                      libjson-c-dev:arm64 \
114e3000245SAlex Bennée                      liblttng-ust-dev:arm64 \
115e3000245SAlex Bennée                      liblzo2-dev:arm64 \
116e3000245SAlex Bennée                      libncursesw5-dev:arm64 \
117e3000245SAlex Bennée                      libnfs-dev:arm64 \
118e3000245SAlex Bennée                      libnuma-dev:arm64 \
119e3000245SAlex Bennée                      libpam0g-dev:arm64 \
120*7a383b99SDaniel P. Berrangé                      libpcre2-dev:arm64 \
12162259d81SMarc-André Lureau                      libpipewire-0.3-dev:arm64 \
122e3000245SAlex Bennée                      libpixman-1-dev:arm64 \
123e3000245SAlex Bennée                      libpng-dev:arm64 \
124e3000245SAlex Bennée                      libpulse-dev:arm64 \
125e3000245SAlex Bennée                      librbd-dev:arm64 \
126e3000245SAlex Bennée                      librdmacm-dev:arm64 \
127e3000245SAlex Bennée                      libsasl2-dev:arm64 \
128e3000245SAlex Bennée                      libsdl2-dev:arm64 \
129e3000245SAlex Bennée                      libsdl2-image-dev:arm64 \
130e3000245SAlex Bennée                      libseccomp-dev:arm64 \
131e3000245SAlex Bennée                      libselinux1-dev:arm64 \
132e3000245SAlex Bennée                      libslirp-dev:arm64 \
133e3000245SAlex Bennée                      libsnappy-dev:arm64 \
134*7a383b99SDaniel P. Berrangé                      libsndio-dev:arm64 \
135*7a383b99SDaniel P. Berrangé                      libspice-protocol-dev:arm64 \
136e3000245SAlex Bennée                      libspice-server-dev:arm64 \
137e3000245SAlex Bennée                      libssh-gcrypt-dev:arm64 \
138e3000245SAlex Bennée                      libsystemd-dev:arm64 \
139e3000245SAlex Bennée                      libtasn1-6-dev:arm64 \
140e3000245SAlex Bennée                      libubsan1:arm64 \
141e3000245SAlex Bennée                      libudev-dev:arm64 \
142e3000245SAlex Bennée                      liburing-dev:arm64 \
143e3000245SAlex Bennée                      libusb-1.0-0-dev:arm64 \
144e3000245SAlex Bennée                      libusbredirhost-dev:arm64 \
145e3000245SAlex Bennée                      libvdeplug-dev:arm64 \
146e3000245SAlex Bennée                      libvirglrenderer-dev:arm64 \
147e3000245SAlex Bennée                      libvte-2.91-dev:arm64 \
148ca9cde57SAlex Bennée                      libxdp-dev:arm64 \
149e3000245SAlex Bennée                      libxen-dev:arm64 \
150e3000245SAlex Bennée                      libzstd-dev:arm64 \
151e3000245SAlex Bennée                      nettle-dev:arm64 \
152e3000245SAlex Bennée                      systemtap-sdt-dev:arm64 \
153e3000245SAlex Bennée                      zlib1g-dev:arm64 && \
154e3000245SAlex Bennée    eatmydata apt-get autoremove -y && \
155e3000245SAlex Bennée    eatmydata apt-get autoclean -y && \
156e3000245SAlex Bennée    mkdir -p /usr/local/share/meson/cross && \
157dacc122eSPeter Krempa    printf "[binaries]\n\
158e3000245SAlex Bennéec = '/usr/bin/aarch64-linux-gnu-gcc'\n\
159e3000245SAlex Bennéear = '/usr/bin/aarch64-linux-gnu-gcc-ar'\n\
160e3000245SAlex Bennéestrip = '/usr/bin/aarch64-linux-gnu-strip'\n\
161e3000245SAlex Bennéepkgconfig = '/usr/bin/aarch64-linux-gnu-pkg-config'\n\
162e3000245SAlex Bennée\n\
163e3000245SAlex Bennée[host_machine]\n\
164e3000245SAlex Bennéesystem = 'linux'\n\
165e3000245SAlex Bennéecpu_family = 'aarch64'\n\
166e3000245SAlex Bennéecpu = 'aarch64'\n\
167dacc122eSPeter Krempaendian = 'little'\n" > /usr/local/share/meson/cross/aarch64-linux-gnu && \
168e3000245SAlex Bennée    dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
169e3000245SAlex Bennée    mkdir -p /usr/libexec/ccache-wrappers && \
170e3000245SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-cc && \
171e3000245SAlex Bennée    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/aarch64-linux-gnu-gcc
172e3000245SAlex Bennée
173e3000245SAlex BennéeENV ABI "aarch64-linux-gnu"
174e3000245SAlex BennéeENV MESON_OPTS "--cross-file=aarch64-linux-gnu"
175548de8f8SDaniel P. BerrangéENV RUST_TARGET "aarch64-unknown-linux-gnu"
17624e0131fSAlex BennéeENV QEMU_CONFIGURE_OPTS --cross-prefix=aarch64-linux-gnu-
17709bb808fSAlex BennéeENV DEF_TARGET_LIST aarch64-softmmu,aarch64-linux-user
1785b8bcf6bSAlex Bennée# As a final step configure the user (if env is defined)
1795b8bcf6bSAlex BennéeARG USER
1805b8bcf6bSAlex BennéeARG UID
1815b8bcf6bSAlex BennéeRUN if [ "${USER}" ]; then \
1825b8bcf6bSAlex Bennée  id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi
183