aboutsummaryrefslogtreecommitdiff
path: root/reproduce
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce')
-rw-r--r--reproduce/software/config/installation/versions.mk4
-rw-r--r--reproduce/software/make/basic.mk4
-rw-r--r--reproduce/software/make/high-level.mk70
3 files changed, 37 insertions, 41 deletions
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk
index 18a4a2e..d0174c8 100644
--- a/reproduce/software/config/installation/versions.mk
+++ b/reproduce/software/config/installation/versions.mk
@@ -25,13 +25,13 @@
bash-version = 5.0.7
binutils-version = 2.32
coreutils-version = 8.31
-curl-version = 7.63.0
+curl-version = 7.65.1
diffutils-version = 3.7
file-version = 5.36
findutils-version = 4.6.0.199-e3fc
gawk-version = 5.0.0
gcc-version = 9.1.0
-git-version = 2.21.0
+git-version = 2.22.0
gmp-version = 6.1.2
grep-version = 3.3
gzip-version = 1.10
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index f8963bc..468563b 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -623,7 +623,7 @@ $(ibidir)/bash: $(tdir)/bash-$(bash-version).tar.lz \
# complete.
#
# One problem is that Coreutils installs many very basic executables which
-# might be in use by other programs. So we must make sure that when
+# might be in used by other programs. So we must make sure that when
# Coreutils is being built, no other program is being built in
# parallel. The solution to the many executables it installs is to make a
# fake installation (with `DESTDIR'), and get a list of the contents of the
@@ -747,7 +747,7 @@ $(ibidir)/curl: $(tdir)/curl-$(curl-version).tar.gz \
--without-nss, V=1) \
&& if [ "x$(needpatchelf)" != x ]; then \
$(ibdir)/patchelf --set-rpath $(ildir) $(ildir)/libcurl.so; \
- fi
+ fi \
&& echo "cURL $(curl-version)" > $@
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 2924077..d609535 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -150,21 +150,13 @@ $(tarballs): $(tdir)/%: | $(lockdir)
# Set the top download link of the requested tarball.
mergenames=1
- if [ $$n = cfitsio ]; then
- mergenames=0
- v=$$(echo $(cfitsio-version) | sed -e's/\.//' \
- | awk '{l=length($$1); \
- printf (l==4 ? "%d\n" \
- : (l==3 ? "%d0\n" \
- : (l==2 ? "%d00\n" \
- : "%d000\n") ), $$1)}')
- w=https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/cfitsio-$(cfitsio-version).tar.gz
- elif [ $$n = astrometry ]; then w=http://astrometry.net/downloads
+ if [ $$n = astrometry ]; then w=http://astrometry.net/downloads
elif [ $$n = atlas ]; then
mergenames=0
w=https://sourceforge.net/projects/math-atlas/files/Stable/$(atlas-version)/atlas$(atlas-version).tar.bz2/download
elif [ $$n = cairo ]; then w=https://www.cairographics.org/releases
elif [ $$n = cdsclient ]; then w=http://cdsarc.u-strasbg.fr/ftp/pub/sw
+ elif [ $$n = cfitsio ]; then w=https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c
elif [ $$n = cmake ]; then
mergenames=0
majv=$$(echo $(cmake-version) \
@@ -250,19 +242,13 @@ $(tarballs): $(tdir)/%: | $(lockdir)
# libraries. Therefore, we can't use the easy `.a' suffix for static
# libraries as targets and there are different conventions for shared
# library names.
-#
-# For the actual build, the same compiler that built the library will build
-# the programs, so exact knowledge of the suffix is ultimately irrelevant
-# for us here. So, we'll make an `$(ildir)/built' directory and make a
-# simple plain text file in it with the basic library name (an no prefix)
-# and create/write into it when the library is successfully built.
$(ibidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
$(ibidir)/curl
- # CFITSIO hard-codes '@rpath' inside the shared library on
- # Mac systems. So we need to change it to our library
- # installation path. It doesn't affect GNU/Linux, so we'll
- # just do it in any case to keep things clean.
+ # CFITSIO hard-codes '@rpath' inside the shared library on
+ # Mac systems. So we need to change it to our library
+ # installation path. It doesn't affect GNU/Linux, so we'll
+ # just do it in any case to keep things clean.
topdir=$(pwd); cd $(ddir); tar xf $<
customtar=cfitsio-$(cfitsio-version)-custom.tar.gz
cd cfitsio-$(cfitsio-version)
@@ -273,10 +259,10 @@ $(ibidir)/cfitsio: $(tdir)/cfitsio-$(cfitsio-version).tar.gz \
tar cf $$customtar cfitsio-$(cfitsio-version)
cd $$topdir
- # Continue the standard build on the customized tarball.
+ # Continue the standard build on the customized tarball.
$(call gbuild, $$customtar, cfitsio-$(cfitsio-version), , \
- --enable-sse2 --enable-reentrant, , \
- make shared) \
+ --enable-sse2 --enable-reentrant \
+ --with-bzip2=$(idir), , make shared) \
&& rm $$customtar \
&& echo "CFITSIO $(cfitsio-version)" > $@
@@ -293,10 +279,10 @@ $(ibidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
&& echo "GNU Scientific Library $(gsl-version)" > $@
$(ibidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
- # In order to build single and double precission libraries of
- # `fftw', installation of `fftw' is done twice. First time is to
- # build single precission float libraries and second time is for
- # building the default double precission float libraries
+ # In order to build single and double precission libraries of
+ # `fftw', installation of `fftw' is done twice. First time is to
+ # build single precission float libraries and second time is for
+ # building the default double precission float libraries
$(call gbuild, $<, fftw-$(fftw-version), static, \
--enable-shared enable-threads \
--enable-single --enable-type-prefix) \
@@ -624,19 +610,20 @@ $(ibidir)/imagemagick: $(tdir)/imagemagick-$(imagemagick-version).tar.xz \
--without-x --disable-openmp, V=1) \
&& echo "ImageMagick $(imagemagick-version)" > $@
-# `imfit doesn't use the traditional `configure' and `make' to install it.
-# Instead of that, it uses `scons'. As a consecuence, the installation is
-# manually done by decompressing the tarball, and running `scons' with the
-# necessary flags. Despite of that, it is necessary to replace the default
-# searching paths in this script by our installation paths. This is done
-# with `sed', replacing each ocurrence of `/usr/local' by `$(idir)'. After
-# that, each compiled program (`imfit', `imfit-mcmc' and `makeimage') is
-# copied into the installation directory.
+# `imfit' doesn't use the traditional `configure' and `make' to install
+# itself. Instead of that, it uses `scons'. As a consequence, the
+# installation is manually done by decompressing the tarball, and running
+# `scons' with the necessary flags. Despite of that, it is necessary to
+# replace the default searching paths in this script by our installation
+# paths. This is done with `sed', replacing each ocurrence of `/usr/local'
+# by `$(idir)'. After that, each compiled program (`imfit', `imfit-mcmc'
+# and `makeimage') is copied into the installation directory and an `rpath'
+# is added.
$(ibidir)/imfit: $(tdir)/imfit-$(imfit-version).tar.gz \
$(ibidir)/cfitsio \
+ $(ibidir)/scons \
$(ibidir)/fftw \
- $(ibidir)/gsl \
- $(ibidir)/scons
+ $(ibidir)/gsl
cd $(ddir) \
&& unpackdir=imfit-$(imfit-version) \
&& rm -rf $$unpackdir \
@@ -824,6 +811,14 @@ $(itidir)/texlive: reproduce/software/config/installation/texlive.mk \
if [ x"$$res" = x"NOT!" ]; then
echo "" > $@
else
+ # To update itself, tlmgr needs a backup directory.
+ backupdir=$(idir)/texlive/backups
+ mkdir -p $$backupdir
+
+ # Before checking LaTeX packages, update tlmgr itself.
+ tlmgr option backupdir $$backupdir
+ tlmgr update --self
+
# Install all the extra necessary packages. If LaTeX complains
# about not finding a command/file/what-ever/XXXXXX, simply run
# the following command to find which package its in, then add it
@@ -844,6 +839,7 @@ $(itidir)/texlive: reproduce/software/config/installation/texlive.mk \
| awk '{print $$NF}');
# Package names and versions.
+ rm -f $@
tlmgr info $(texlive-packages) --only-installed | awk \
'$$1=="package:" {version=0; \
if($$NF=="tex-gyre") name="texgyre"; \