master
docker 107 lines 3.96 KB
Raw
1 # THIS FILE WAS AUTO-GENERATED
2 #
3 # $ lcitool dockerfile --layers all debian-13 qemu-minimal
4 #
5 # https://gitlab.com/libvirt/libvirt-ci
6
7 FROM docker.io/library/debian:13-slim
8
9 RUN export DEBIAN_FRONTEND=noninteractive && \
10 apt-get update && \
11 apt-get install -y eatmydata && \
12 eatmydata apt-get dist-upgrade -y && \
13 eatmydata apt-get install --no-install-recommends -y \
14 bash \
15 bc \
16 bison \
17 bzip2 \
18 ca-certificates \
19 ccache \
20 findutils \
21 flex \
22 gcc \
23 git \
24 libc6-dev \
25 libfdt-dev \
26 libffi-dev \
27 libglib2.0-dev \
28 libpixman-1-dev \
29 locales \
30 make \
31 ninja-build \
32 pkgconf \
33 python3 \
34 python3-pip \
35 python3-setuptools \
36 python3-venv \
37 python3-wheel \
38 sed \
39 tar && \
40 eatmydata apt-get autoremove -y && \
41 eatmydata apt-get autoclean -y && \
42 sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
43 dpkg-reconfigure locales && \
44 rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \
45 dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \
46 mkdir -p /usr/libexec/ccache-wrappers && \
47 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \
48 ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc
49
50 RUN /usr/bin/pip3 install meson==1.12.0
51
52 ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers"
53 ENV LANG="en_US.UTF-8"
54 ENV MAKE="/usr/bin/make"
55 ENV NINJA="/usr/bin/ninja"
56 ENV PYTHON="/usr/bin/python3"
57 # extras for cross and alternate toolchains
58 RUN apt update && \
59 DEBIAN_FRONTEND=noninteractive eatmydata \
60 apt install -y --no-install-recommends \
61 clang\
62 dpkg-dev\
63 gdb-multiarch\
64 libclang-rt-dev
65 ENV AVAILABLE_COMPILERS="\
66 gcc-aarch64-linux-gnu \
67 libc6-dev-arm64-cross \
68 gcc-arm-linux-gnueabihf \
69 libc6-dev-armhf-cross \
70 gcc-alpha-linux-gnu \
71 libc6.1-dev-alpha-cross \
72 gcc-mips-linux-gnu \
73 libc6-dev-mips-cross \
74 gcc-mips64-linux-gnuabi64 \
75 libc6-dev-mips64-cross \
76 gcc-mips64el-linux-gnuabi64 \
77 libc6-dev-mips64el-cross \
78 gcc-mipsel-linux-gnu \
79 libc6-dev-mipsel-cross \
80 gcc-powerpc64le-linux-gnu \
81 libc6-dev-ppc64el-cross \
82 gcc-riscv64-linux-gnu \
83 libc6-dev-riscv64-cross \
84 gcc-s390x-linux-gnu \
85 libc6-dev-s390x-cross\
86 gcc-sh4-linux-gnu \
87 libc6-dev-sh4-cross \
88 "
89 RUN if dpkg-architecture -e amd64; then \
90 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-hppa-linux-gnu libc6-dev-hppa-cross"; \
91 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-m68k-linux-gnu libc6-dev-m68k-cross"; \
92 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc-linux-gnu libc6-dev-powerpc-cross"; \
93 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-powerpc64-linux-gnu libc6-dev-ppc64-cross"; \
94 export AVAILABLE_COMPILERS="${AVAILABLE_COMPILERS} gcc-sparc64-linux-gnu libc6-dev-sparc64-cross"; \
95 fi && \
96 apt update && \
97 DEBIAN_FRONTEND=noninteractive eatmydata \
98 apt install -y --no-install-recommends \
99 ${AVAILABLE_COMPILERS} && \
100 dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt
101 ENV QEMU_CONFIGURE_OPTS=--disable-docs
102 ENV DEF_TARGET_LIST=aarch64-linux-user,alpha-linux-user,arm-linux-user,hppa-linux-user,i386-linux-user,m68k-linux-user,mips-linux-user,mips64-linux-user,mips64el-linux-user,mipsel-linux-user,ppc-linux-user,ppc64-linux-user,ppc64le-linux-user,riscv64-linux-user,s390x-linux-user,sh4-linux-user,sparc64-linux-user
103 # As a final step configure the user (if env is defined)
104 ARG USER
105 ARG UID
106 RUN if [ "${USER}" ]; then \
107 id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi