docker-perl/5.024.004-main,debugging-buster/Dockerfile
2022-03-04 12:00:07 -05:00

59 lines
2.4 KiB
Docker

FROM debian:buster-backports
LABEL maintainer="Ryan Voots <simcop@cpan.org>"
COPY *.patch /usr/src/perl/
WORKDIR /usr/src/perl
ENV DEBIAN_FRONTEND=noninteractive
RUN perl -i.bak -pE '$x=$_; $x=~s|^deb |deb-src |g;$_.=$x' /etc/apt/sources.list \
&& apt update \
&& apt -yq full-upgrade \
&& apt -yq build-dep perl \
&& apt-get install -y --no-install-recommends \
bzip2 \
ca-certificates \
# cpio \
curl \
dpkg-dev \
# file \
gcc \
# g++ \
libbz2-dev \
libdb-dev \
libc6-dev \
libgdbm-dev \
liblzma-dev \
make \
netbase \
patch \
procps \
zlib1g-dev \
xz-utils \
&& curl -SL https://www.cpan.org/src/5.0/perl-5.24.4.tar.xz -o perl-5.24.4.tar.xz \
&& echo '7f080287ff64750270689843ae945f02159a33cb8f2fc910248c15befba5db84 *perl-5.24.4.tar.xz' | sha256sum -c -
RUN tar --strip-components=1 -xaf perl-5.24.4.tar.xz -C /usr/src/perl \
&& rm perl-5.24.4.tar.xz \
&& cat *.patch | patch -p1 \
&& echo 'print "1..0 # Skipped: Tests are invalid"' > /usr/src/perl/ext/GDBM_File/t/fatal.t
RUN gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)" \
&& archBits="$(dpkg-architecture --query DEB_BUILD_ARCH_BITS)" \
&& archFlag="$([ "$archBits" = '64' ] && echo '-Duse64bitall' || echo '-Duse64bitint')" \
&& ./Configure -Darchname="$gnuArch" "$archFlag" -Accflags=-ggdb -DDEBUGGING -Duseshrplib -Dvendorprefix=/usr/local -Aldflags='-Wl,-z,now -Wl,-zrelro -Wl,-z,noexecstack' -Accflags='-fpie -fPIC -fstack-protector-all -pie -D_FORTIFY_SOURCE=2' -Duseshrplib -des \
&& make -j$(nproc) \
&& TEST_JOBS=$(nproc) make test_harness
RUN make install \
&& cd /usr/src \
&& curl -LO https://www.cpan.org/authors/id/M/MI/MIYAGAWA/App-cpanminus-1.7044.tar.gz \
&& echo '9b60767fe40752ef7a9d3f13f19060a63389a5c23acc3e9827e19b75500f81f3 *App-cpanminus-1.7044.tar.gz' | sha256sum -c - \
&& tar -xzf App-cpanminus-1.7044.tar.gz && cd App-cpanminus-1.7044 && perl bin/cpanm . && cd /root \
&& savedPackages="make netbase" \
&& apt-mark auto '.*' > /dev/null \
&& apt-mark manual $savedPackages \
&& apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false \
&& rm -fr /var/cache/apt/* /var/lib/apt/lists/* \
&& rm -fr ./cpanm /root/.cpanm /usr/src/perl /usr/src/App-cpanminus-1.7044* /tmp/*
WORKDIR /
CMD ["perl5.24.4","-de0"]