# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross armv6l debian-11 qemu
#
# https://gitlab.com/libvirt/libvirt-ci

FROM docker.io/library/debian:11-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 \
            bsdextrautils \
            bzip2 \
            ca-certificates \
            ccache \
            dbus \
            debianutils \
            diffutils \
            exuberant-ctags \
            findutils \
            gcovr \
            genisoimage \
            gettext \
            git \
            hostname \
            libpcre2-dev \
            libspice-protocol-dev \
            llvm \
            locales \
            make \
            meson \
            ncat \
            ninja-build \
            openssh-client \
            perl-base \
            pkgconf \
            python3 \
            python3-numpy \
            python3-opencv \
            python3-pillow \
            python3-pip \
            python3-sphinx \
            python3-sphinx-rtd-theme \
            python3-venv \
            python3-yaml \
            rpm2cpio \
            sed \
            sparse \
            tar \
            tesseract-ocr \
            tesseract-ocr-eng \
            texinfo && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
    dpkg-reconfigure locales

ENV LANG "en_US.UTF-8"
ENV MAKE "/usr/bin/make"
ENV NINJA "/usr/bin/ninja"
ENV PYTHON "/usr/bin/python3"
ENV CCACHE_WRAPPERSDIR "/usr/libexec/ccache-wrappers"

RUN export DEBIAN_FRONTEND=noninteractive && \
    dpkg --add-architecture armel && \
    eatmydata apt-get update && \
    eatmydata apt-get dist-upgrade -y && \
    eatmydata apt-get install --no-install-recommends -y dpkg-dev && \
    eatmydata apt-get install --no-install-recommends -y \
            g++-arm-linux-gnueabi \
            gcc-arm-linux-gnueabi \
            libaio-dev:armel \
            libasan5:armel \
            libasound2-dev:armel \
            libattr1-dev:armel \
            libbpf-dev:armel \
            libbrlapi-dev:armel \
            libbz2-dev:armel \
            libc6-dev:armel \
            libcacard-dev:armel \
            libcap-ng-dev:armel \
            libcapstone-dev:armel \
            libcmocka-dev:armel \
            libcurl4-gnutls-dev:armel \
            libdaxctl-dev:armel \
            libdrm-dev:armel \
            libepoxy-dev:armel \
            libfdt-dev:armel \
            libffi-dev:armel \
            libfuse3-dev:armel \
            libgbm-dev:armel \
            libgcrypt20-dev:armel \
            libglib2.0-dev:armel \
            libglusterfs-dev:armel \
            libgnutls28-dev:armel \
            libgtk-3-dev:armel \
            libibumad-dev:armel \
            libibverbs-dev:armel \
            libiscsi-dev:armel \
            libjemalloc-dev:armel \
            libjpeg62-turbo-dev:armel \
            libjson-c-dev:armel \
            liblttng-ust-dev:armel \
            liblzo2-dev:armel \
            libncursesw5-dev:armel \
            libnfs-dev:armel \
            libnuma-dev:armel \
            libpam0g-dev:armel \
            libpixman-1-dev:armel \
            libpng-dev:armel \
            libpulse-dev:armel \
            librbd-dev:armel \
            librdmacm-dev:armel \
            libsasl2-dev:armel \
            libsdl2-dev:armel \
            libsdl2-image-dev:armel \
            libseccomp-dev:armel \
            libselinux1-dev:armel \
            libslirp-dev:armel \
            libsnappy-dev:armel \
            libspice-server-dev:armel \
            libssh-gcrypt-dev:armel \
            libsystemd-dev:armel \
            libtasn1-6-dev:armel \
            libubsan1:armel \
            libudev-dev:armel \
            liburing-dev:armel \
            libusb-1.0-0-dev:armel \
            libusbredirhost-dev:armel \
            libvdeplug-dev:armel \
            libvirglrenderer-dev:armel \
            libvte-2.91-dev:armel \
            libzstd-dev:armel \
            nettle-dev:armel \
            systemtap-sdt-dev:armel \
            xfslibs-dev:armel \
            zlib1g-dev:armel && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    mkdir -p /usr/local/share/meson/cross && \
    echo "[binaries]\n\
c = '/usr/bin/arm-linux-gnueabi-gcc'\n\
ar = '/usr/bin/arm-linux-gnueabi-gcc-ar'\n\
strip = '/usr/bin/arm-linux-gnueabi-strip'\n\
pkgconfig = '/usr/bin/arm-linux-gnueabi-pkg-config'\n\
\n\
[host_machine]\n\
system = 'linux'\n\
cpu_family = 'arm'\n\
cpu = 'arm'\n\
endian = 'little'" > /usr/local/share/meson/cross/arm-linux-gnueabi && \
    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/arm-linux-gnueabi-c++ && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-cc && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-g++ && \
    ln -s /usr/bin/ccache /usr/libexec/ccache-wrappers/arm-linux-gnueabi-gcc

ENV ABI "arm-linux-gnueabi"
ENV MESON_OPTS "--cross-file=arm-linux-gnueabi"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=arm-linux-gnueabi-
ENV DEF_TARGET_LIST arm-softmmu,arm-linux-user,armeb-linux-user
