# THIS FILE WAS AUTO-GENERATED
#
#  $ lcitool dockerfile --layers all --cross ppc64le 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 \
                      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-sphinx \
                      python3-sphinx-rtd-theme \
                      python3-venv \
                      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

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

ENV ABI "powerpc64le-linux-gnu"
ENV MESON_OPTS "--cross-file=powerpc64le-linux-gnu"
ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu-
ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-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
