aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2019-11-06 12:11:39 +0000
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2019-11-06 12:11:39 +0000
commitbf6b8c09569bd1cb03f5a910e2ae1475d5dc7c44 (patch)
treef2c895c298615351d54290940a9b8a762d4ff02e /reproduce/software
parent623dfeff3e5c6d447a499b074df055cbc47cc45f (diff)
Perl is now built as a basic dependency of the template
Perl is necessary to build Texinfo and later to build LaTeX. Until now we were just using the host operating system's installation of Perl, but in some instances that Perl can be too old and not suppor the features necessary. With this commit, Perl is now built from source during the basic installation step of the template. This was reported by Idafen Santana PĂ©rez, after trying the pipeline on an Amazon AWS EC2 system (a Linux distro by Amazon for its cloud services).
Diffstat (limited to 'reproduce/software')
-rw-r--r--reproduce/software/config/installation/checksums.mk1
-rw-r--r--reproduce/software/config/installation/versions.mk1
-rw-r--r--reproduce/software/make/basic.mk54
-rw-r--r--reproduce/software/make/python.mk1
4 files changed, 52 insertions, 5 deletions
diff --git a/reproduce/software/config/installation/checksums.mk b/reproduce/software/config/installation/checksums.mk
index 6ea6da4..d06559a 100644
--- a/reproduce/software/config/installation/checksums.mk
+++ b/reproduce/software/config/installation/checksums.mk
@@ -50,6 +50,7 @@ mpfr-checksum = d583555d08863bf36c89b289ae26bae353d9a31f08ee3894520992d2c26e5683
ncurses-checksum = e308af43f8b7e01e98a55f4f6c4ee4d1c39ce09d95399fa555b3f0cdf5fd0db0f4c4d820b4af78a63f6cf6d8627587114a40af48cfc066134b600520808a77ee
openssl-checksum = 1523985ba90f38aa91aa6c2d57652f4e243cb2a095ce6336bf34b39b5a9b5b876804299a6825c758b65990e57948da532cca761aa12b10958c97478d04dd6d34
patchelf-checksum = 39745662651cf0a9915685b2767a611ceab4286f8fa57eace342b3f44248431616e8563d4ac6709c97d8534229c73c05470239e462b7e74b36bf629a876dfbad
+perl-checksum = b0db58699dfbe1bab10a7b0472cc377ed215668c89d13c7ca693e6b75ab6a6593a9cf137adbd6096063ee8200d83b389e745bb96b7c6bf4cf4588ac587a446ae
pkgconfig-checksum = 4861ec6428fead416f5cbbbb0bbad10b9152967e481d4b0ff2eb396a9f297f552984c9bb72f6864a37dcd8fca1d9ccceda3ef18d8f121938dbe4fdf2b870fe75
readline-checksum = 41759d27bc3a258fefd7f4ff3277fa6ab9c21abb7b160e1a75aa8eba547bd90b288514e76264bd94fb0172da8a4faa54aab2c07b68a0356918ecf7f1969e866f
sed-checksum = e0be5db4cdf8226b34aaa9071bc5ae0eafde1c52227cee3512eea7fe2520d6c5cebf15266aa5c4adffbb51bf125c140a15644e28d57759893c12823ea9bbf4fb
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk
index bf503ff..3e0fd57 100644
--- a/reproduce/software/config/installation/versions.mk
+++ b/reproduce/software/config/installation/versions.mk
@@ -48,6 +48,7 @@ mpfr-version = 4.0.2
ncurses-version = 6.1
openssl-version = 1.1.1a
patchelf-version = 0.10
+perl-version = 5.30.0
pkgconfig-version = 0.29.2
readline-version = 8.0
sed-version = 4.7
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index 64c10c0..c5b4ca5 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -131,6 +131,7 @@ tarballs = $(foreach t, bash-$(bash-version).tar.lz \
ncurses-$(ncurses-version).tar.gz \
openssl-$(openssl-version).tar.gz \
patchelf-$(patchelf-version).tar.gz \
+ perl-$(perl-version).tar.gz \
pkg-config-$(pkgconfig-version).tar.gz \
readline-$(readline-version).tar.gz \
sed-$(sed-version).tar.xz \
@@ -181,6 +182,10 @@ $(tarballs): $(tdir)/%: | $(lockdir)
elif [ $$n = ncurses ]; then c=$(ncurses-checksum); w=http://ftp.gnu.org/gnu/ncurses; \
elif [ $$n = openssl ]; then c=$(openssl-checksum); w=http://www.openssl.org/source; \
elif [ $$n = patchelf ]; then c=$(patchelf-checksum); w=http://nixos.org/releases/patchelf/patchelf-$(patchelf-version); \
+ elif [ $$n = perl ]; then \
+ c=$(perl-checksum); \
+ v=$$(echo $(perl-version) | sed -e's/\./ /g' | awk '{printf("%d.0", $$1)}'); \
+ w=https://www.cpan.org/src/$$v; \
elif [ $$n = pkg ]; then c=$(pkgconfig-checksum); w=http://pkg-config.freedesktop.org/releases; \
elif [ $$n = readline ]; then c=$(readline-checksum); w=http://ftp.gnu.org/gnu/readline; \
elif [ $$n = sed ]; then c=$(sed-checksum); w=http://ftp.gnu.org/gnu/sed; \
@@ -292,9 +297,6 @@ $(ibidir)/low-level-links: | $(ibdir) $(ildir)
# GNU Gettext (translate messages)
$(call makelink,msgfmt)
- # Needed by TeXLive specifically.
- $(call makelink,perl)
-
# Necessary libraries:
# Libdl (for dynamic loading libraries at runtime)
# POSIX Threads library for multi-threaded programs.
@@ -1016,6 +1018,50 @@ $(ibidir)/mpfr: $(ibidir)/gmp \
$(call gbuild, mpfr-$(mpfr-version), static, , , make check) \
&& echo "GNU Multiple Precision Floating-Point Reliably $(mpfr-version)" > $@
+$(ibidir)/perl: | $(ibidir)/coreutils \
+ $(tdir)/perl-$(perl-version).tar.gz
+ major_version=$$(echo $(perl-version) \
+ | sed -e's/\./ /g' \
+ | awk '{printf("%d", $$1)}'); \
+ base_version=$$(echo $(perl-version) \
+ | sed -e's/\./ /g' \
+ | awk '{printf("%d.%d", $$1, $$2)}'); \
+ cd $(ddir) \
+ && rm -rf perl-$(perl-version) \
+ && if ! tar xf $(word 1,$(filter $(tdir)/%,$|)); then \
+ echo; echo "Tar error"; exit 1; \
+ fi \
+ && cd perl-$(perl-version) \
+ && sed -e's|\#\! /bin/sh|\#\! $(ibdir)/bash|' \
+ -e's|\#\!/bin/sh|\#\! $(ibdir)/bash|' \
+ Configure > Configure-tmp \
+ && mv -f Configure-tmp Configure \
+ && chmod +x Configure \
+ && ./Configure -des \
+ -Dusethreads \
+ -Duseshrplib \
+ -Dprefix=$(idir) \
+ -Dvendorprefix=$(idir) \
+ -Dprivlib=$(idir)/share/perl$$major_version/core_perl \
+ -Darchlib=$(idir)/lib/perl$$major_version/$$base_version/core_perl \
+ -Dsitelib=$(idir)/share/perl$$major_version/site_perl \
+ -Dsitearch=$(idir)/lib/perl$$major_version/$$basever/site_perl \
+ -Dvendorlib=$(idir)/share/perl$$major_version/vendor_perl \
+ -Dvendorarch=$(idir)/lib/perl$$major_version/$$base_version/vendor_perl \
+ -Dscriptdir=$(idir)/bin/core_perl \
+ -Dsitescript=$(idir)/bin/site_perl \
+ -Dvendorscript=$(idir)/bin/vendor_perl \
+ -Dinc_version_list=none \
+ -Dman1ext=1perl \
+ -Dman3ext=3perl \
+ -Dcccdlflags='-fPIC' \
+ -Dlddlflags="-shared $$LDFLAGS" \
+ -Dldflags="$$LDFLAGS" \
+ && make SHELL=$(ibdir)/bash -j$(numthreads) \
+ && make SHELL=$(ibdir)/bash install \
+ && echo "Perl $(perl-version)" > $@
+
+
$(ibidir)/pkg-config: | $(ibidir)/coreutils \
$(tdir)/pkg-config-$(pkgconfig-version).tar.gz
# An existing `libiconv' can cause a conflict with `pkg-config',
@@ -1043,7 +1089,7 @@ $(ibidir)/sed: | $(ibidir)/coreutils \
$(call gbuild, sed-$(sed-version), static) \
&& echo "GNU Sed $(sed-version)" > $@
-$(ibidir)/texinfo: | $(ibidir)/bash \
+$(ibidir)/texinfo: | $(ibidir)/perl \
$(tdir)/texinfo-$(texinfo-version).tar.xz
$(call gbuild, texinfo-$(texinfo-version), static) \
&& if [ "x$(needpatchelf)" != x ]; then \
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index ce0c974..1543048 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -301,7 +301,6 @@ $(ibidir)/python: $(ibidir)/libffi \
| $(tdir)/python-$(python-version).tar.gz
# On Mac systems, the build complains about `clang' specific
# features, so we can't use our own GCC build here.
- echo "HEREKJRE"; \
if [ x$(on_mac_os) = xyes ]; then \
export CC=clang; \
export CXX=clang++; \