| # THIS FILE WAS AUTO-GENERATED | |
| # | |
| # $ lcitool dockerfile --layers all --host-arch x86_64 debian-13 qemu-minimal | |
| # | |
| # https://gitlab.com/libvirt/libvirt-ci | |
| FROM docker.io/amd64/debian:13-slim | |
| RUN export DEBIAN_FRONTEND=noninteractive && \ | |
| apt-get update && \ | |
| apt-get install -y eatmydata && \ | |
| eatmydata apt-get dist-upgrade -y && \ | |
| eatmydata apt-get install --no-install-recommends -y \ | |
| bash \ | |
| bc \ | |
| bison \ | |
| bzip2 \ | |
| ca-certificates \ | |
| ccache \ | |
| findutils \ | |
| flex \ | |
| gcc \ | |
| git \ | |
| libc6-dev \ | |
| libfdt-dev \ | |
| libffi-dev \ | |
| libglib2.0-dev \ | |
| libpixman-1-dev \ | |
| locales \ | |
| make \ | |
| ninja-build \ | |
| pkgconf \ | |
| python3 \ | |
| python3-pip \ | |
| python3-setuptools \ | |
| python3-venv \ | |
| python3-wheel \ | |
| sed \ | |
| tar && \ | |
| eatmydata apt-get autoremove -y && \ | |
| eatmydata apt-get autoclean -y && \ | |
| sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \ | |
| dpkg-reconfigure locales && \ | |
| rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED && \ | |
| dpkg-query --showformat '${Package}_${Version}_${Architecture}\n' --show > /packages.txt && \ | |
| mkdir -p /usr/libexec/ccache-wrappers && \ | |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/cc && \ | |
| ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/gcc | |
| RUN /usr/bin/pip3 install meson==1.12.0 | |
| ENV CCACHE_WRAPPERSDIR="/usr/libexec/ccache-wrappers" | |
| ENV LANG="en_US.UTF-8" | |
| ENV MAKE="/usr/bin/make" | |
| ENV NINJA="/usr/bin/ninja" | |
| ENV PYTHON="/usr/bin/python3" | |
| # extras for cross and alternate toolchains | |
| RUN apt update && \ | |
| DEBIAN_FRONTEND=noninteractive eatmydata \ | |
| apt install -y --no-install-recommends \ | |
| clang\ | |
| dpkg-dev\ | |
| gdb-multiarch\ | |
| libclang-rt-dev\ | |
| wget\ | |
| rsync | |
| # https://openrisc.io/2025/04/20/toolchainrootfsbins | |
| RUN cd /tmp && \ | |
| wget -q https://github.com/stffrdhrn/or1k-toolchain-build/releases/download/or1k-16.1.0-20260614/or1k-none-linux-musl-16.1.0-20260614.tar.xz && \ | |
| tar --no-same-owner -xf *.tar.xz && \ | |
| rsync -a or1k-none-linux-musl/ /usr/ && \ | |
| rm -rf /tmp/* | |
| RUN apt update && \ | |
| DEBIAN_FRONTEND=noninteractive eatmydata \ | |
| apt install -y --no-install-recommends \ | |
| gcc-aarch64-linux-gnu \ | |
| libc6-dev-arm64-cross \ | |
| gcc-arm-linux-gnueabihf \ | |
| libc6-dev-armhf-cross \ | |
| gcc-alpha-linux-gnu \ | |
| libc6.1-dev-alpha-cross \ | |
| gcc-mips-linux-gnu \ | |
| libc6-dev-mips-cross \ | |
| gcc-mips64-linux-gnuabi64 \ | |
| libc6-dev-mips64-cross \ | |
| gcc-mips64el-linux-gnuabi64 \ | |
| libc6-dev-mips64el-cross \ | |
| gcc-mipsel-linux-gnu \ | |
| libc6-dev-mipsel-cross \ | |
| gcc-mipsisa64r6-linux-gnuabi64 \ | |
| libc6-dev-mips64r6-cross \ | |
| gcc-mipsisa64r6el-linux-gnuabi64 \ | |
| libc6-dev-mips64r6el-cross \ | |
| gcc-powerpc64le-linux-gnu \ | |
| libc6-dev-ppc64el-cross \ | |
| gcc-riscv64-linux-gnu \ | |
| libc6-dev-riscv64-cross \ | |
| gcc-s390x-linux-gnu \ | |
| libc6-dev-s390x-cross\ | |
| gcc-sh4-linux-gnu \ | |
| libc6-dev-sh4-cross \ | |
| gcc-hppa-linux-gnu \ | |
| libc6-dev-hppa-cross \ | |
| gcc-m68k-linux-gnu \ | |
| libc6-dev-m68k-cross \ | |
| gcc-powerpc-linux-gnu \ | |
| libc6-dev-powerpc-cross \ | |
| gcc-powerpc64-linux-gnu \ | |
| libc6-dev-ppc64-cross \ | |
| gcc-sparc64-linux-gnu \ | |
| libc6-dev-sparc64-cross \ | |
| && \ | |
| dpkg-query --showformat '${Package}_${Version}_${Architecture}' --show > /packages.txt | |
| RUN apt update && DEBIAN_FRONTEND=noninteractive eatmydata apt install -y rename | |
| # download mips32r5el toolchain from bootlin, and rename binaries who are simply | |
| # named mipsel-linux-gnu-* | |
| RUN apt update && \ | |
| mkdir -p /opt/mips32r5el/ && \ | |
| cd /opt/mips32r5el/ && \ | |
| wget -q https://toolchains.bootlin.com/downloads/releases/toolchains/mips32r5el/tarballs/mips32r5el--glibc--stable-2026.08-1.tar.xz && \ | |
| tar xvf *.tar.xz && \ | |
| rm *.tar.xz && \ | |
| mv mips32r5el--glibc--stable-2026.08-1/* . && \ | |
| cd bin && \ | |
| rename 's/mipsel/mips32r5el/' mipsel* | |
| ENV PATH="$PATH:/opt/mips32r5el/bin" | |
| ENV QEMU_CONFIGURE_OPTS=--disable-docs | |
| 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 | |
| # As a final step configure the user (if env is defined) | |
| ARG USER | |
| ARG UID | |
| RUN if [ "${USER}" ]; then \ | |
| id ${USER} 2>/dev/null || useradd -u ${UID} -U ${USER}; fi |