# Entorno para compilar los paquetes de Simusol en Arch (siru/distros).
# Arch tiene dpkg y fakeroot pero no debhelper: se instala el de Debian
# (son programas de Perl, no dependen de la arquitectura) desde sus .deb.
FROM docker.io/library/archlinux:latest
RUN pacman -Syu --noconfirm --needed base-devel dpkg fakeroot gcc-fortran \
        autoconf automake libtool pkgconf bison flex perl python which file \
        curl tar gzip xz man-db \
    && pacman -Scc --noconfirm
# debhelper de Ubuntu 24.04 (programas de Perl, de cualquier arquitectura):
# los .deb de debhelper.lista, comprobando su sha512
COPY debhelper.lista /tmp/
RUN cd /tmp && u=http://archive.ubuntu.com/ubuntu/pool/main && \
    while read -r f s; do \
        curl -fsSLO "$u/$f" && echo "$s  $(basename "$f")" | sha512sum -c - && \
        dpkg-deb -x "$(basename "$f")" / && rm "$(basename "$f")" || exit 1; \
    done < debhelper.lista
# debhelper busca config.guess y config.sub donde los deja Debian
RUN mkdir -p /usr/share/misc && for f in config.guess config.sub; do \
        [ -e /usr/share/misc/$f ] || cp "$(ls /usr/share/automake-*/$f | tail -1)" /usr/share/misc/; done
# herramientas de debhelper que no aplican fuera de Debian, como comandos
# que no hacen nada: las dependencias de las bibliotecas no las calcula
# dpkg-shlibdeps (no hay base de dpkg) sino el empaquetado de cada distro
RUN for c in dh_strip_nondeterminism dh_dwz dh_shlibdeps; do \
        printf '#!/bin/sh\nexit 0\n' > /usr/local/bin/$c; chmod +x /usr/local/bin/$c; done
# dpkg-buildpackage lee la base de dpkg (vacia: aca no hay paquetes .deb)
RUN mkdir -p /var/lib/dpkg && touch /var/lib/dpkg/status
ENV PKG_CONFIG_PATH=/usr/lib/x86_64-linux-gnu/pkgconfig
# los modulos de Perl de debhelper (Debian::Debhelper) quedan en /usr/share/perl5
ENV PERL5LIB=/usr/share/perl5
# prove y los demas programas de Perl de Arch estan en /usr/bin/core_perl
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/bin:/usr/bin/core_perl:/usr/bin/vendor_perl:/usr/bin/site_perl
