# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross-arch 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 \
                      bison \
                      bsdextrautils \
                      bzip2 \
                      ca-certificates \
                      ccache \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libglib2.0-dev \
                      libpcre2-dev \
                      libsndio-dev \
                      libspice-protocol-dev \
                      llvm \
                      locales \
                      make \
                      meson \
                      mtools \
                      ncat \
                      ninja-build \
                      openssh-client \
                      pkgconf \
                      python3 \
                      python3-numpy \
                      python3-opencv \
                      python3-pillow \
                      python3-pip \
                      python3-setuptools \
                      python3-sphinx \
                      python3-sphinx-rtd-theme \
                      python3-venv \
                      python3-wheel \
                      python3-yaml \
                      rpm2cpio \
                      sed \
                      socat \
                      sparse \
                      tar \
                      tesseract-ocr \
                      tesseract-ocr-eng \
                      xorriso \
                      zstd && \
    eatmydata apt-get autoremove -y && \
    eatmydata apt-get autoclean -y && \
    sed -Ei 's,^# (en_US\.UTF-8 .*)$,\1,' /etc/locale.gen && \
    dpkg-reconfigure locales

RUN /usr/bin/pip3 install tomli

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"

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 \
                      libpipewire-0.3-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 && \
    printf "[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'\n" > /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
# 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
