From bf6b8c09569bd1cb03f5a910e2ae1475d5dc7c44 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Wed, 6 Nov 2019 12:11:39 +0000 Subject: Perl is now built as a basic dependency of the template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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). --- .file-metadata | Bin 6727 -> 6727 bytes .../software/config/installation/checksums.mk | 1 + reproduce/software/config/installation/versions.mk | 1 + reproduce/software/make/basic.mk | 54 +++++++++++++++++++-- reproduce/software/make/python.mk | 1 - 5 files changed, 52 insertions(+), 5 deletions(-) diff --git a/.file-metadata b/.file-metadata index c5d7065..c7db669 100644 Binary files a/.file-metadata and b/.file-metadata differ 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++; \ -- cgit v1.2.1