aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.file-metadatabin6713 -> 6713 bytes
-rwxr-xr-xconfigure86
-rw-r--r--reproduce/software/config/installation/TARGETS.mk1
-rw-r--r--reproduce/software/config/installation/numpy-scipy.cfg1
-rw-r--r--reproduce/software/config/installation/versions.mk8
-rw-r--r--reproduce/software/make/basic.mk10
-rw-r--r--reproduce/software/make/high-level.mk61
-rw-r--r--reproduce/software/make/python.mk9
8 files changed, 114 insertions, 62 deletions
diff --git a/.file-metadata b/.file-metadata
index a86e94c..c22144e 100644
--- a/.file-metadata
+++ b/.file-metadata
Binary files differ
diff --git a/configure b/configure
index e99776b..000ec4f 100755
--- a/configure
+++ b/configure
@@ -884,42 +884,80 @@ fi
#
# On some GNU/Linux distros, the C compiler is broken into `multilib' (for
# 32-bit and 64-bit support, with their own headers). On these systems,
-# `sys/cdefs.h' is not available by default. So if the user hasn't manually
-# installed it before this configure script, GCC won't build. We are thus
-# explicitly testing a small C program here to see if the host's C compiler
-# won't have any problems in building GCC.
+# `/usr/include/sys/cdefs.h' and `/usr/lib/libc.a' are not available by
+# default. So GCC will crash with different ugly errors! The only solution
+# is that user manually installs the `multilib' part as root, before
+# running the configure script.
+#
+# Note that `sys/cdefs.h' may be available in other directories (for
+# example `/usr/include/x86_64-linux-gnu/') that are automatically included
+# in an installed GCC. HOWEVER during the build of GCC, all those other
+# directories are ignored. So even if they exist, they are useless.
+warningsleep=0
if [ $host_cc = 0 ]; then
- tfile=$sdir/gcc-cdefs-test.c;
- echo "#include <sys/cdefs.h>" > $tfile;
- echo "int main(void){return 0;}" >> $tfile;
- if gcc $tfile -o $sdir/gcc-cdefs-test &> /dev/null; then
- rm $sdir/gcc-cdefs-test*;
- else
+ if ! [ -f /usr/include/sys/cdefs.h ]; then
host_cc=1
- fi;
- rm -f $tfile;
+ warningsleep=1
+ cat <<EOF
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!! Warning !!!!!!!!!!!!!!!!!!!!!!
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+This system doesn't have '/usr/include/sys/cdefs.h'. Because of this, the
+project can't build its custom GCC to ensure better reproducibility. We
+strongly recommend installing the proper package (for your operating
+system) that installs this necessary file. For example on some Debian-based
+GNU/Linux distros, you need these two packages: 'gcc-multilib' and
+'g++-multilib'.
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+EOF
+ fi
- if [ $host_cc = 1 ]; then
+ if [ -f /usr/lib/libc.a ] || [ -f /usr/lib64/libc.a ]; then
+ # This is just a place holder
+ host_cc=$host_cc
+ else
+ host_cc=1
+ warningsleep=1
cat <<EOF
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!! Warning !!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-This system's C compiler (called with 'gcc') can't include
-'sys/cdefs.h. Because of this, the project can't build its custom GCC to
-ensure better reproducibility. We strongly recommend installing the proper
-package (for your operating system) that installs this necessary file. For
-example on some Debian-based GNU/Linux distros, you need these two
-packages: 'gcc-multilib' and 'g++-multilib'.
-
-However, since GCC is pretty low-level, this configuration script will
-continue in 5 seconds and use your system's C compiler (it won't build a
-custom GCC). But please consider installing the necessary package(s) to
-complete your C compiler, then re-run './configure'.
+This system doesn't have '/usr/lib/libc.a' or '/usr/lib64/libc.a'. Because
+of this, the project can't build its custom GCC to ensure better
+reproducibility. We strongly recommend installing the proper package (for
+your operating system) that installs this necessary file.
+
+Some possible solutions:
+ 1. On some Debian-based GNU/Linux distros, these two packages may fix the
+ problem: 'gcc-multilib' and 'g++-multilib'.
+ 2. (BE CAREFUL!) If you have '/usr/lib/x86_64-linux-gnu' but don't have
+ '/usr/lib64', then running the following command might fix this
+ particular problem by making a symbolic link.
+ $ sudo ln -s /usr/lib/x86_64-linux-gnu /usr/lib64
+ After the configure script is finished, delete the link with 'rm
+ /usr/lib64' (you won't need it any more as far as this project is
+ concerned).
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
EOF
+ fi
+
+ if [ $warningsleep = 1 ]; then
+ cat <<EOF
+
+PLEASE SEE THE WARNINGS ABOVE.
+
+Since GCC is pretty low-level, this configuration script will continue in 5
+seconds and use your system's C compiler (it won't build a custom GCC). But
+please consider installing the necessary package(s) to complete your C
+compiler, then re-run './configure'.
+
+EOF
sleep 5
fi
fi
diff --git a/reproduce/software/config/installation/TARGETS.mk b/reproduce/software/config/installation/TARGETS.mk
index 4b1ff2e..b9157f1 100644
--- a/reproduce/software/config/installation/TARGETS.mk
+++ b/reproduce/software/config/installation/TARGETS.mk
@@ -1,6 +1,7 @@
# Necessary high-level software to build in this project.
#
# Copyright (C) 2018-2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice and
diff --git a/reproduce/software/config/installation/numpy-scipy.cfg b/reproduce/software/config/installation/numpy-scipy.cfg
index 4b7a7b0..03038ed 100644
--- a/reproduce/software/config/installation/numpy-scipy.cfg
+++ b/reproduce/software/config/installation/numpy-scipy.cfg
@@ -8,6 +8,7 @@
# should leave out sections that your package does not use.
#
# Copyright (C) 2018-2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice and
diff --git a/reproduce/software/config/installation/versions.mk b/reproduce/software/config/installation/versions.mk
index df2b4fa..5c7743d 100644
--- a/reproduce/software/config/installation/versions.mk
+++ b/reproduce/software/config/installation/versions.mk
@@ -83,10 +83,10 @@ gsl-version = 2.5
hdf5-version = 1.10.5
libffi-version = 3.2.1
libjpeg-version = v9b
+libpng-version = 1.6.37
libtiff-version = 4.0.10
libtool-version = 2.4.6
libxml2-version = 2.9.9
-netpbm-version = 10.47.72
openblas-version = 0.3.5
openmpi-version = 4.0.1
pixman-version = 0.38.0
@@ -159,8 +159,8 @@ webencodings-version = 0.5.1
# during their build and must be accounted for.
#
# Special notes:
-# - `libpng' is downgraded: the current installation of `netpbm' requires
-# a version less than 1.5.
+# - `netpbm' questions in the configure steps maybe change with different
+# or new versions.
# Basic/low-level
bzip2-version = 1.0.6
@@ -168,5 +168,5 @@ bzip2-version = 1.0.6
# Optional/high-level
lapack-version = 3.8.0
libgit2-version = 0.26.0
-libpng-version = 1.4.22
+netpbm-version = 10.86.99
wcslib-version = 6.2
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index f2442ff..05161e9 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -16,6 +16,7 @@
# ------------------------------------------------------------------------
#
# Copyright (C) 2018-2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com>
#
# This Makefile is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@@ -806,7 +807,8 @@ $(ibidir)/git: $(tdir)/git-$(git-version).tar.xz \
&& echo "Git $(git-version)" > $@
$(ibidir)/gmp: $(tdir)/gmp-$(gmp-version).tar.lz \
- $(ibidir)/bash
+ $(ibidir)/bash \
+ $(ibidir)/m4
$(call gbuild, $<, gmp-$(gmp-version), static, , , make check) \
&& echo "GNU Multiple Precision Arithmetic Library $(gmp-version)" > $@
@@ -1038,7 +1040,7 @@ $(ibidir)/gcc: $(gcc-prerequisites) \
rm -f $(ibdir)/gcc* $(ibdir)/g++ $(ibdir)/gfortran $(ibdir)/gcov*;\
rm -rf $(ildir)/gcc $(ildir)/libcc* $(ildir)/libgcc*; \
rm -rf $(ildir)/libgfortran* $(ildir)/libstdc* rm $(idir)/x86_64*;\
- \
+ \
ln -fs $(ildir) $(idir)/lib64; \
\
cd $(ddir); \
@@ -1076,7 +1078,7 @@ $(ibidir)/gcc: $(gcc-prerequisites) \
patchelf --set-rpath $(ildir) $$f; \
fi; \
done; \
- fi; \
- ln -sf $(ibdir)/gcc $(ibdir)/cc \
+ fi \
+ && ln -sf $(ibdir)/gcc $(ibdir)/cc \
&& echo "GNU Compiler Collection (GCC) $(gcc-version)" > $@; \
fi
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index c930814..85120bd 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -9,6 +9,7 @@
# ------------------------------------------------------------------------
#
# Copyright (C) 2018-2019 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2019 Raul Infante-Sainz <infantesainz@gmail.com>
#
# This Makefile is free software: you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
@@ -123,7 +124,7 @@ tarballs = $(foreach t, astrometry.net-$(astrometrynet-version).tar.gz \
libpng-$(libpng-version).tar.xz \
libgit2-$(libgit2-version).tar.gz \
libxml2-$(libxml2-version).tar.gz \
- netpbm-$(netpbm-version).tgz \
+ netpbm-$(netpbm-version).tar.gz \
openmpi-$(openmpi-version).tar.gz \
openblas-$(openblas-version).tar.gz \
pixman-$(pixman-version).tar.gz \
@@ -183,9 +184,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
mergenames=0
w=https://github.com/libgit2/libgit2/archive/v$(libgit2-version).tar.gz
elif [ $$n = libxml ]; then w=ftp://xmlsoft.org/libxml2
- elif [ $$n = netpbm ]; then
- mergenames=0
- w=https://sourceforge.net/projects/netpbm/files/super_stable/$(netpbm-version)/netpbm-$(netpbm-version).tgz/download
+ elif [ $$n = netpbm ]; then w=http://akhlaghi.org/src
elif [ $$n = openblas ]; then
mergenames=0
w=https://github.com/xianyi/OpenBLAS/archive/v$(openblas-version).tar.gz
@@ -207,13 +206,13 @@ $(tarballs): $(tdir)/%: | $(lockdir)
exit 1
fi
- # Download the requested tarball. Note that some packages may not
- # follow our naming convention (where the package name is merged
- # with its version number). In such cases, `w' will be the full
- # address, not just the top directory address. But since we are
- # storing all the tarballs in one directory, we want it to have
- # the same naming convention, so we'll download it to a temporary
- # name, then rename that.
+ # Download the requested tarball. Note that some packages may not
+ # follow our naming convention (where the package name is merged
+ # with its version number). In such cases, `w' will be the full
+ # address, not just the top directory address. But since we are
+ # storing all the tarballs in one directory, we want it to have
+ # the same naming convention, so we'll download it to a temporary
+ # name, then rename that.
if [ $$mergenames = 1 ]; then tarballurl=$$w/"$*"
else tarballurl=$$w
fi
@@ -279,7 +278,7 @@ $(ibidir)/gsl: $(tdir)/gsl-$(gsl-version).tar.gz
$(ibidir)/fftw: $(tdir)/fftw-$(fftw-version).tar.gz
$(call gbuild, $<, fftw-$(fftw-version), static, \
- --enable-shared) \
+ --enable-shared --enable-single) \
&& cp $(dtexdir)/fftw.tex $(ictdir)/ \
&& echo "FFTW $(fftw-version) \citep{fftw}" > $@
@@ -314,7 +313,7 @@ $(ibidir)/libxml2: $(tdir)/libxml2-$(libxml2-version).tar.gz
# If you really need the Python bindings, try the
# --with-python-install-dir=DIR option
$(call gbuild, $<, libxml2-$(libxml2-version), static, \
- --without-python) \
+ --without-python) \
&& echo "Libxml2 $(libxml2-version)" > $@
$(ibidir)/pixman: $(tdir)/pixman-$(pixman-version).tar.gz
@@ -500,9 +499,17 @@ $(ibidir)/astrometrynet: $(tdir)/astrometry.net-$(astrometrynet-version).tar.gz
$(ipydir)/numpy \
$(ibidir)/swig \
$(ibidir)/gsl
+ # We are modifying the Makefile in two steps because on Mac OS
+ # system we do not have `/proc/cpuinfo' nor `free'. Since this is
+ # only for the `report.txt', this changes do not causes problems in
+ # running `astrometrynet'
cd $(ddir) \
+ && rm -rf astrometry.net-$(astrometrynet-version) \
&& if ! tar xf $<; then echo; echo "Tar error"; exit 1; fi \
&& cd astrometry.net-$(astrometrynet-version) \
+ && sed -e 's|cat /proc/cpuinfo|echo "Ignoring CPU info"|' \
+ -e 's|-free|echo "Ignoring RAM info"|' Makefile > Makefile.tmp \
+ && mv Makefile.tmp Makefile \
&& make \
&& make py \
&& make extra \
@@ -594,7 +601,7 @@ $(ibidir)/netpbm: $(tdir)/netpbm-$(netpbm-version).tgz \
$(ibidir)/libpng \
$(ibidir)/unzip
if [ x$(on_mac_os) = xyes ]; then \
- answers='\n\n\n\n\n\n\n\n\n\n\n\nnone\n\n\n'; \
+ answers='\n\n$(ildir)\n\n\n\n\n\n$(ildir)/include\n\n$(ildir)/include\n\n$(ildir)/include\nnone\n\n'; \
else \
answers='\n\n\n\ny\n\n\n\n\n\n\n\n\n\n\n\n\n'; \
fi; \
@@ -608,7 +615,7 @@ $(ibidir)/netpbm: $(tdir)/netpbm-$(netpbm-version).tgz \
&& rm -rf $(ddir)/$$unpackdir/install \
&& make package pkgdir=$(ddir)/$$unpackdir/install \
&& printf "$(ddir)/$$unpackdir/install\n$(idir)\n\n\nN\n\n\n\n\nN\n\n" \
- | ./installnetpbm \
+ | ./installnetpbm \
&& cd .. \
&& rm -rf $$unpackdir \
&& echo "Netpbm $(netpbm-version)" > $@
@@ -619,9 +626,9 @@ $(ibidir)/netpbm: $(tdir)/netpbm-$(netpbm-version).tgz \
# the option --enable-openblas and it worked (same issue happened with
# `sextractor'.
$(ibidir)/scamp: $(tdir)/scamp-$(scamp-version).tar.lz \
- $(ibidir)/cdsclient \
- $(ibidir)/openblas \
- $(ibidir)/fftw
+ $(ibidir)/cdsclient \
+ $(ibidir)/openblas \
+ $(ibidir)/fftw
$(call gbuild, $<, scamp-$(scamp-version), static, \
--enable-threads --enable-openblas \
--with-fftw-libdir=$(idir) \
@@ -639,19 +646,19 @@ $(ibidir)/sextractor: $(tdir)/sextractor-$(sextractor-version).tar.lz \
$(ibidir)/openblas \
$(ibidir)/fftw
$(call gbuild, $<, sextractor-$(sextractor-version), static, \
- --enable-threads --enable-openblas \
- --with-openblas-libdir=$(ildir) \
- --with-openblas-incdir=$(idir)/include) \
- && ln -fs $(ibdir)/sex $(ibdir)/sextractor \
- && cp $(dtexdir)/sextractor.tex $(ictdir)/ \
- && echo "Sextractor $(sextractor-version) \citep{sextractor}" > $@
+ --enable-threads --enable-openblas \
+ --with-openblas-libdir=$(ildir) \
+ --with-openblas-incdir=$(idir)/include) \
+ && ln -fs $(ibdir)/sex $(ibdir)/sextractor \
+ && cp $(dtexdir)/sextractor.tex $(ictdir)/ \
+ && echo "Sextractor $(sextractor-version) \citep{sextractor}" > $@
$(ibidir)/swarp: $(tdir)/swarp-$(swarp-version).tar.gz \
$(ibidir)/fftw
$(call gbuild, $<, swarp-$(swarp-version), static, \
- --enable-threads) \
- && cp $(dtexdir)/swarp.tex $(ictdir)/ \
- && echo "SWarp $(swarp-version) \citep{swarp}" > $@
+ --enable-threads) \
+ && cp $(dtexdir)/swarp.tex $(ictdir)/ \
+ && echo "SWarp $(swarp-version) \citep{swarp}" > $@
$(ibidir)/swig: $(tdir)/swig-$(swig-version).tar.gz
# Option --without-pcre was a suggestion once the configure step
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index 4c407f6..1a7be56 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -350,7 +350,9 @@ $(ipydir)/h5py: $(tdir)/h5py-$(h5py-version).tar.gz \
$(ipydir)/pypkgconfig \
$(ipydir)/setuptools \
$(ipydir)/cython \
- $(ibidir)/hdf5
+ $(ipydir)/numpy \
+ $(ibidir)/hdf5 \
+ $(ipydir)/six
#$(ipydir)/mpi4py # AFTER its problem is fixed.
#export HDF5_MPI=ON; # AFTER its problem is fixed.
export HDF5_DIR=$(ildir); \
@@ -496,8 +498,9 @@ $(ipydir)/setuptools_scm: $(tdir)/setuptools_scm-$(setuptools_scm-version).tar.g
$(call pybuild, tar xf, $<, setuptools_scm-$(setuptools_scm-version), ,\
Setuptools-scm $(setuptools_scm-version))
-$(ipydir)/sip_tpv: $(tdir)/sip_tpv-$(sip_tpv-version).tar.gz \
- $(ipydir)/mpmath \
+$(ipydir)/sip_tpv: $(tdir)/sip_tpv-$(sip_tpv-version).tar.gz \
+ $(ipydir)/astropy \
+ $(ipydir)/numpy \
$(ipydir)/sympy
$(call pybuild, tar xf, $<, sip_tpv-$(sip_tpv-version), ,) \
&& cp $(dtexdir)/sip_tpv.tex $(ictdir)/ \