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

FROM docker.io/library/debian:12-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 \
                      bindgen \
                      bison \
                      bsdextrautils \
                      bzip2 \
                      ca-certificates \
                      ccache \
                      dbus \
                      debianutils \
                      diffutils \
                      exuberant-ctags \
                      findutils \
                      flex \
                      gcc \
                      gcovr \
                      gettext \
                      git \
                      hostname \
                      libglib2.0-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 \
                      rustc \
                      sed \
                      socat \
                      sparse \
                      swtpm \
                      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 && \
    rm -f /usr/lib*/python3*/EXTERNALLY-MANAGED

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 \
                      gcc-powerpc64le-linux-gnu \
                      libaio-dev:ppc64el \
                      libasan6: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 \
                      libcbor-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 \
                      libgtk-vnc-2.0-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 \
                      libpcre2-dev:ppc64el \
                      libpipewire-0.3-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 \
                      libsndio-dev:ppc64el \
                      libspice-protocol-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 \
                      libxdp-dev:ppc64el \
                      libzstd-dev:ppc64el \
                      nettle-dev:ppc64el \
                      systemtap-sdt-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-cc && \
    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 RUST_TARGET "powerpc64le-unknown-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
