| FROM debian:stable-slim |
| |
| ARG AUTOCONF_VERSION=2.69 |
| ARG AUTOMAKE_VERSION=1.15.1 |
| |
| # Run time deps |
| RUN set -eux; \ |
| apt-get update; \ |
| apt-get upgrade -y; \ |
| apt-get install -y --no-install-recommends \ |
| autogen \ |
| ca-certificates \ |
| git \ |
| m4 \ |
| nodejs \ |
| perl \ |
| python3 \ |
| python3-git \ |
| python3-termcolor \ |
| python3-unidiff \ |
| wget; \ |
| rm -rf /var/lib/apt/lists/* |
| |
| # Get and install the autoregen.py script |
| COPY --chmod=755 autoregen.py /usr/local/bin/autoregen.py |
| |
| # Build and install autoconf and automake |
| # Automake depends on autoconf, which is built and installed first |
| RUN set -eux; \ |
| \ |
| savedAptMark="$(apt-mark showmanual)"; \ |
| apt-get update; \ |
| apt-get install -y --no-install-recommends \ |
| build-essential \ |
| ca-certificates \ |
| gzip \ |
| m4 \ |
| tar \ |
| wget \ |
| ; \ |
| rm -r /var/lib/apt/lists/*; \ |
| \ |
| builddir="$(mktemp -d)"; \ |
| \ |
| cd "${builddir}"; \ |
| AUTOCONF_VERSION_SHORT="$(echo $AUTOCONF_VERSION | awk -F. '{ print $1 "." $2 }')"; \ |
| wget -q "https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz"; \ |
| tar xf "autoconf-${AUTOCONF_VERSION}.tar.gz"; \ |
| cd "autoconf-${AUTOCONF_VERSION}"; \ |
| ./configure --program-suffix="-${AUTOCONF_VERSION}"; \ |
| make; \ |
| make install; \ |
| cd .. ;\ |
| rm -rf autoconf*; \ |
| cd /usr/local/bin; \ |
| for f in autoconf autoheader autom4te autoreconf autoscan autoupdate ifnames; do \ |
| ln -sv "$f-$AUTOCONF_VERSION" "$f"; \ |
| [ ! "$AUTOCONF_VERSION" = "$AUTOCONF_VERSION_SHORT" ] && \ |
| ln -sv "$f-$AUTOCONF_VERSION" "$f-$AUTOCONF_VERSION_SHORT"; \ |
| done; \ |
| \ |
| cd "${builddir}"; \ |
| AUTOMAKE_VERSION_SHORT="$(echo $AUTOMAKE_VERSION | awk -F. '{ print $1 "." $2 }')"; \ |
| wget -q "https://ftp.gnu.org/gnu/automake/automake-${AUTOMAKE_VERSION}.tar.gz"; \ |
| tar xf "automake-${AUTOMAKE_VERSION}.tar.gz"; \ |
| cd "automake-${AUTOMAKE_VERSION}"; \ |
| ./configure --program-suffix="-${AUTOMAKE_VERSION}"; \ |
| make; \ |
| make install; \ |
| cd ..; \ |
| rm -rf automake*; \ |
| cd /usr/local/bin; \ |
| for f in aclocal automake; do \ |
| ln -sv "$f-$AUTOMAKE_VERSION" "$f"; \ |
| [ ! "$AUTOMAKE_VERSION" = "$AUTOMAKE_VERSION_SHORT" ] && \ |
| ln -sv "$f-$AUTOMAKE_VERSION" "$f-$AUTOMAKE_VERSION_SHORT"; \ |
| done; \ |
| \ |
| rm -rf "${builddir}"; \ |
| \ |
| apt-mark auto '.*' > /dev/null; \ |
| [ -z "$savedAptMark" ] || apt-mark manual $savedAptMark; \ |
| apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false |