aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software
diff options
context:
space:
mode:
Diffstat (limited to 'reproduce/software')
-rw-r--r--reproduce/software/config/checksums.conf19
-rw-r--r--reproduce/software/config/versions.conf29
-rwxr-xr-xreproduce/software/make/atlas-multiple.mk19
-rwxr-xr-xreproduce/software/make/atlas-single.mk19
-rw-r--r--reproduce/software/make/basic.mk71
-rw-r--r--reproduce/software/make/build-rules.mk19
-rw-r--r--reproduce/software/make/high-level.mk47
-rw-r--r--reproduce/software/make/python.mk47
-rwxr-xr-xreproduce/software/shell/bashrc.sh21
-rwxr-xr-xreproduce/software/shell/configure.sh167
10 files changed, 292 insertions, 166 deletions
diff --git a/reproduce/software/config/checksums.conf b/reproduce/software/config/checksums.conf
index 37fe64d..b173589 100644
--- a/reproduce/software/config/checksums.conf
+++ b/reproduce/software/config/checksums.conf
@@ -2,18 +2,15 @@
#
# Copyright (C) 2018-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf
index 0c2cd0b..d19f095 100644
--- a/reproduce/software/config/versions.conf
+++ b/reproduce/software/config/versions.conf
@@ -3,18 +3,15 @@
# Copyright (C) 2018-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
# Copyright (C) 2019-2020 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
@@ -46,7 +43,6 @@ metastore-version = 1.1.2-23-fa9170b
mpc-version = 1.1.0
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
@@ -216,6 +212,11 @@ libgit2-version = 0.28.2
netpbm-version = 10.86.99
wcslib-version = 6.4
-# Minizip is installed as a part of `zlib', and they have the same version.
-zlib-version = 1.2.11
+# Minizip is installed with the same `zlib' tarball, and they have the same
+# version.
minizip-version = $(zlib-version)
+
+# From version 1.2 OpenSSL may not need a manual addition, as described in
+# its comments and `https://savannah.nongnu.org/bugs/?58263'. If it doesn't
+# cause problems, put it back in the list of "Basic/low-level" tools.
+openssl-version = 1.1.1a \ No newline at end of file
diff --git a/reproduce/software/make/atlas-multiple.mk b/reproduce/software/make/atlas-multiple.mk
index b05d3f8..c98130d 100755
--- a/reproduce/software/make/atlas-multiple.mk
+++ b/reproduce/software/make/atlas-multiple.mk
@@ -10,18 +10,15 @@
#
# Copyright (C) 2019-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
ORIGLDFLAGS := $(LDFLAGS)
diff --git a/reproduce/software/make/atlas-single.mk b/reproduce/software/make/atlas-single.mk
index 61ae9a1..82eade9 100755
--- a/reproduce/software/make/atlas-single.mk
+++ b/reproduce/software/make/atlas-single.mk
@@ -10,18 +10,15 @@
#
# Copyright (C) 2019-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
ORIGLDFLAGS := $(LDFLAGS)
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index d1fbc3f..0bec163 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -18,18 +18,15 @@
# Copyright (C) 2018-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
# Copyright (C) 2019-2020 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
# Top level environment
@@ -159,14 +156,18 @@ tarballs = $(foreach t, bash-$(bash-version).tar.lz \
, $(tdir)/$(t) )
$(tarballs): $(tdir)/%: | $(lockdir)
- n=$$(echo $* | sed -e's/[0-9\-]/ /g' \
- -e's/\./ /g' \
+ # Remove the version numbers and suffix from the tarball name so we
+ # can search more easily only with the program name. This requires
+ # the first character of the version to be a digit: packages such
+ # as `foo' and `foo-3' will not be distinguished, but `foo' and
+ # `foo2' will be distinguished.
+ n=$$(echo $* | sed -e's/-[0-9]/ /' -e's/\./ /g' \
| awk '{print $$1}' ); \
\
mergenames=1; \
if [ $$n = bash ]; then c=$(bash-checksum); w=http://akhlaghi.org/maneage-software; \
elif [ $$n = binutils ]; then c=$(binutils-checksum); w=http://ftp.gnu.org/gnu/binutils; \
- elif [ $$n = bzip ]; then c=$(bzip2-checksum); w=http://akhlaghi.org/maneage-software; \
+ elif [ $$n = bzip2 ]; then c=$(bzip2-checksum); w=http://akhlaghi.org/maneage-software; \
elif [ $$n = cert ]; then c=$(cert-checksum); w=http://akhlaghi.org/maneage-software; \
elif [ $$n = coreutils ]; then c=$(coreutils-checksum); w=http://ftp.gnu.org/gnu/coreutils;\
elif [ $$n = curl ]; then c=$(curl-checksum); w=https://curl.haxx.se/download; \
@@ -184,7 +185,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
elif [ $$n = libiconv ]; then c=$(libiconv-checksum); w=https://ftp.gnu.org/pub/gnu/libiconv; \
elif [ $$n = libtool ]; then c=$(libtool-checksum); w=http://ftp.gnu.org/gnu/libtool; \
elif [ $$n = lzip ]; then c=$(lzip-checksum); w=http://download.savannah.gnu.org/releases/lzip; \
- elif [ $$n = m ]; then \
+ elif [ $$n = m4 ]; then \
mergenames=0; \
c=$(m4-checksum); \
w=http://akhlaghi.org/maneage-software/m4-1.4.18-patched.tar.gz; \
@@ -199,7 +200,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
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 = pkg-config ]; 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; \
elif [ $$n = tar ]; then c=$(tar-checksum); w=http://ftp.gnu.org/gnu/tar; \
@@ -804,6 +805,14 @@ $(ibidir)/openssl: $(tdir)/cert.pem \
# environment variable.
#
# https://wiki.openssl.org/index.php/Compilation_and_Installation
+ #
+ # Bug 58263 (https://savannah.nongnu.org/bugs/?58263): In OpenSSL
+ # Version 1.1.1a (also checked in 1.1.1g), `openssl/ec.h' fails to
+ # include `openssl/openconf.h' on some OSs. The SED hack below
+ # inserts a hardwired element of `openssl/openconf.h' that is
+ # needed to include sections of code `f` that are deprecated in
+ # 1.2.0, but not yet in 1.1.1. This problem may be solved in
+ # version 1.2.x, so please check again in that bug.
if [ x$(on_mac_os) = xyes ]; then \
export KERNEL_BITS=64; \
copt="shared no-ssl2 no-ssl3 enable-ec_nistp_64_gcc_128"; \
@@ -816,6 +825,9 @@ $(ibidir)/openssl: $(tdir)/cert.pem \
--with-zlib-lib=$(ildir) \
--with-zlib-include=$(idir)/include, \
-j$(numthreads), , ./config ) \
+ && mv -v $(idir)/include/openssl/ec.h $(idir)/include/openssl/ec.h.orig \
+ && sed -e 's,\(# include .openssl/opensslconf\.h.\),\1\n#ifndef DEPRECATEDIN_1_2_0\n#define DEPRECATEDIN_1_2_0(f) f;\n#endif\n,' \
+ $(idir)/include/openssl/ec.h.orig > $(idir)/include/openssl/ec.h \
&& cp $(tdir)/cert.pem $(idir)/etc/ssl/cert.pem \
&& if [ $$? = 0 ]; then \
if [ x$(on_mac_os) = xyes ]; then \
@@ -1296,8 +1308,8 @@ $(ibidir)/gcc: | $(ibidir)/binutils \
tar xf $(word 1,$(filter $(tdir)/%,$|)); \
if [ $$odir != $(ddir) ]; then \
ln -s $$odir/gcc-$(gcc-version) $(ddir)/gcc-$(gcc-version); \
- fi \
- && cd gcc-$(gcc-version) \
+ fi; \
+ if cd gcc-$(gcc-version) \
&& mkdir build \
&& cd build \
&& ../configure SHELL=$(ibdir)/bash \
@@ -1346,6 +1358,25 @@ $(ibidir)/gcc: | $(ibidir)/binutils \
rm -rf $$odir; \
rm $(ddir)/gcc-$(gcc-version); \
fi \
- && ln -sf $(ibdir)/gcc $(ibdir)/cc \
- && echo "GNU Compiler Collection (GCC) $(gcc-version)" > $@; \
+ && ln -sf $(ibdir)/gcc $(ibdir)/cc; \
+ then \
+ echo "GNU Compiler Collection (GCC) $(gcc-version)" > $@; \
+ else echo; echo; echo; \
+ echo "_________________________________________________"; \
+ echo "!!!!!!!! Warning from Maneage !!!!!!!!"; \
+ echo; \
+ echo "Unfortunately building of GCC failed on this system!"; \
+ echo "Can you please copy the last ~500 lines above and post it"; \
+ echo "as a bug here (as an attached file):"; \
+ echo " https://sv.nongnu.org/support/?func=additem&group=reproduce"; \
+ echo; \
+ echo "In the meantime, please re-configure Maneage with '--host-cc'"; \
+ echo "like below so it uses your own C compiler for building the"; \
+ echo "high-level software ('-e' is to use the existing configuration):"; \
+ echo; \
+ echo " ./project configure -e --host-cc"; \
+ echo; \
+ echo "__________ SEE NOTE FROM MANEAGE ABOVE __________"; \
+ echo; exit 1; \
+ fi; \
fi
diff --git a/reproduce/software/make/build-rules.mk b/reproduce/software/make/build-rules.mk
index f3ca7d2..8d78ce3 100644
--- a/reproduce/software/make/build-rules.mk
+++ b/reproduce/software/make/build-rules.mk
@@ -5,18 +5,15 @@
#
# Copyright (C) 2018-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index ce617af..ffab19c 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -11,18 +11,15 @@
# Copyright (C) 2018-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
# Copyright (C) 2019-2020 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
@@ -206,17 +203,19 @@ tarballs = $(foreach t, apachelog4cxx-$(apachelog4cxx-version).tar.lz \
, $(tdir)/$(t) )
$(tarballs): $(tdir)/%: | $(lockdir)
- # Remove all numbers, `-' and `.' from the tarball name so we can
- # search more easily only with the program name.
- @n=$$(echo $* | sed -e's/[0-9\-]/ /g' -e's/\./ /g' \
- | awk '{print $$1}' )
+ # Remove the version numbers and suffix from the tarball name so we
+ # can search more easily only with the program name. This requires
+ # the first character of the version to be a digit: packages such
+ # as `foo' and `foo-3' will not be distinguished, but `foo' and
+ # `foo2' will be distinguished.
+ @n=$$(echo $* | sed -e's/-[0-9]/ /' -e's/\./ /g' \
+ | awk '{print $$1}' )
# Set the top download link of the requested tarball.
mergenames=1
- if [ $$n = apachelog ]; then c=$(apachelog4cxx-checksum); w=http://akhlaghi.org/maneage-software
- elif [ $* = apr-util-$(apr-util-version).tar.gz ]; then
- c=$(apr-util-checksum); w=https://www-us.apache.org/dist/apr
+ if [ $$n = apachelog4cxx ]; then c=$(apachelog4cxx-checksum); w=http://akhlaghi.org/maneage-software
elif [ $$n = apr ]; then c=$(apr-checksum); w=https://www-us.apache.org/dist/apr
+ elif [ $$n = apr-util ]; then c=$(apr-util-checksum); w=https://www-us.apache.org/dist/apr
elif [ $$n = astrometry ]; then c=$(astrometrynet-checksum); w=http://astrometry.net/downloads
elif [ $$n = atlas ]; then
mergenames=0
@@ -259,29 +258,29 @@ $(tarballs): $(tdir)/%: | $(lockdir)
w=https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs$$v
elif [ $$n = gnuastro ]; then c=$(gnuastro-checksum); w=http://ftp.gnu.org/gnu/gnuastro
elif [ $$n = gsl ]; then c=$(gsl-checksum); w=http://ftp.gnu.org/gnu/gsl
- elif [ $$n = hdf ]; then
+ elif [ $$n = hdf5 ]; then
mergenames=0
c=$(hdf5-checksum)
majorver=$$(echo $(hdf5-version) | sed -e 's/\./ /g' | awk '{printf("%d.%d", $$1, $$2)}')
w=https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$$majorver/hdf5-$(hdf5-version)/src/$*
elif [ $$n = healpix ]; then c=$(healpix-checksum); w=http://akhlaghi.org/maneage-software
- elif [ $$n = help ]; then c=$(help2man-checksum); w=http://ftp.gnu.org/gnu/help2man
+ elif [ $$n = help2man ]; then c=$(help2man-checksum); w=http://ftp.gnu.org/gnu/help2man
elif [ $$n = imagemagick ]; then c=$(imagemagick-checksum); w=http://akhlaghi.org/maneage-software
elif [ $$n = imfit ]; then
mergenames=0
c=$(imfit-checksum)
w=http://www.mpe.mpg.de/~erwin/resources/imfit/imfit-$(imfit-version)-source.tar.gz
- elif [ $$n = install ]; then c=NO-CHECK-SUM; w=http://mirror.ctan.org/systems/texlive/tlnet
+ elif [ $$n = install-tl-unx ]; then c=NO-CHECK-SUM; w=http://mirror.ctan.org/systems/texlive/tlnet
elif [ $$n = jpegsrc ]; then c=$(libjpeg-checksum); w=http://ijg.org/files
elif [ $$n = lapack ]; then c=$(lapack-checksum); w=http://www.netlib.org/lapack
elif [ $$n = libnsl ]; then c=$(libnsl-checksum); w=http://akhlaghi.org/maneage-software
elif [ $$n = libpng ]; then c=$(libpng-checksum); w=https://download.sourceforge.net/libpng
- elif [ $$n = libgit ]; then
+ elif [ $$n = libgit2 ]; then
mergenames=0
c=$(libgit2-checksum)
w=https://github.com/libgit2/libgit2/archive/v$(libgit2-version).tar.gz
elif [ $$n = libtirpc ]; then c=$(libtirpc-checksum); w=https://downloads.sourceforge.net/libtirpc
- elif [ $$n = libxml ]; then c=$(libxml2-checksum); w=ftp://xmlsoft.org/libxml2
+ elif [ $$n = libxml2 ]; then c=$(libxml2-checksum); w=ftp://xmlsoft.org/libxml2
elif [ $$n = missfits ]; then c=$(missfits-checksum); w=https://www.astromatic.net/download/missfits
elif [ $$n = netpbm ]; then c=$(netpbm-checksum); w=http://akhlaghi.org/maneage-software
elif [ $$n = openblas ]; then
@@ -298,7 +297,7 @@ $(tarballs): $(tdir)/%: | $(lockdir)
elif [ $$n = R ]; then c=$(R-checksum);
majver=$$(echo $(R-version) | sed -e's/\./ /g' | awk '{print $$1}')
w=https://cran.r-project.org/src/base/R-$$majver
- elif [ $$n = rpcsvc ]; then c=$(rpcsvc-proto-checksum); w=https://github.com/thkukuk/rpcsvc-proto/releases/download/v$(rpcsvc-proto-version)
+ elif [ $$n = rpcsvc-proto ]; then c=$(rpcsvc-proto-checksum); w=https://github.com/thkukuk/rpcsvc-proto/releases/download/v$(rpcsvc-proto-version)
elif [ $$n = scamp ]; then c=$(scamp-checksum); w=http://akhlaghi.org/maneage-software
elif [ $$n = scons ]; then
mergenames=0
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index 1ef1bf2..f378650 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -11,18 +11,15 @@
# Copyright (C) 2019-2020 Raul Infante-Sainz <infantesainz@gmail.com>
# Copyright (C) 2019-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# 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
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This Makefile is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This Makefile is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
@@ -134,16 +131,18 @@ $(pytarballs): $(tdir)/%:
# first string.
@if [ $* = python-dateutil-$(python-dateutil-version).tar.gz ]; then
n=dateutil
- elif [ $* = h5py-$(h5py-version).tar.gz ]; then
- n=h5py
# elif [ $* = strange-tarball5name-version.tar.gz ]; then
# n=strange5-name
else
- # Remove all numbers, `-' and `.' from the tarball name so we can
- # search more easily only with the program name.
- n=$$(echo $* | sed -e's/[0-9\-]/ /g' -e's/\./ /g' \
- | awk '{print $$1}')
+ # Remove the version numbers and suffix from the tarball name so
+ # we can search more easily only with the program name. This
+ # requires the first character of the version to be a digit:
+ # packages such as `foo' and `foo-3' will not be distinguished,
+ # but `foo' and `foo2' will be distinguished.
+ n=$$(echo $* | sed -e's/-[0-9]/ /' -e's/\./ /g' \
+ | awk '{print $$1}' )
+
fi
# Set the top download link of the requested tarball. The ones
@@ -183,11 +182,11 @@ $(pytarballs): $(tdir)/%:
c=$(secretstorage-checksum)
hash=a6/89/df343dbc2957a317127e7ff2983230dc5336273be34f2e1911519d85aeb5
h=$(pytopurl)/$$hash/SecretStorage-$(secretstorage-version).tar.gz
- elif [ $$n = asn ]; then h=fc/f1/8db7daa71f414ddabfa056c4ef792e1461ff655c2ae2928a2b675bfed6b4; c=$(asn1crypto-checksum)
+ elif [ $$n = asn1crypto ]; then h=fc/f1/8db7daa71f414ddabfa056c4ef792e1461ff655c2ae2928a2b675bfed6b4; c=$(asn1crypto-checksum)
elif [ $$n = asteval ]; then h=50/3f/29b7935c6dc09ee96dc347edc66c57e8ef68d595dd35b763a36a117acc8c; c=$(asteval-checksum)
elif [ $$n = astroquery ]; then h=e2/af/a3cd3b30745832a0e81f5f13327234099aaf5d03b7979ac947a888e68e91; c=$(astroquery-checksum)
elif [ $$n = astropy ]; then h=de/96/7feaca4b9be134128838395a9d924ea0b389ed4381702dcd9d11ae31789f; c=$(astropy-checksum)
- elif [ $$n = beautifulsoup ]; then h=80/f2/f6aca7f1b209bb9a7ef069d68813b091c8c3620642b568dac4eb0e507748; c=$(beautifulsoup4-checksum)
+ elif [ $$n = beautifulsoup4 ]; then h=80/f2/f6aca7f1b209bb9a7ef069d68813b091c8c3620642b568dac4eb0e507748; c=$(beautifulsoup4-checksum)
elif [ $$n = certifi ]; then h=55/54/3ce77783acba5979ce16674fc98b1920d00b01d337cfaaf5db22543505ed; c=$(certifi-checksum)
elif [ $$n = cffi ]; then h=64/7c/27367b38e6cc3e1f49f193deb761fe75cda9f95da37b67b422e62281fcac; c=$(cffi-checksum)
elif [ $$n = chardet ]; then h=fc/bb/a5768c230f9ddb03acc9ef3f0d4a3cf93462473795d18e9535498c8f929d; c=$(chardet-checksum)
@@ -198,23 +197,23 @@ $(pytarballs): $(tdir)/%:
elif [ $$n = emcee ]; then h=f0/c0/cd433f2aedeef9b1e5ed7d236c82564f7518fe7fe2238fa141ea9ce08e73; c=$(emcee-checksum)
elif [ $$n = entrypoints ]; then h=b4/ef/063484f1f9ba3081e920ec9972c96664e2edb9fdc3d8669b0e3b8fc0ad7c; c=$(entrypoints-checksum)
elif [ $$n = esutil ]; then h=5b/91/77e38282fd3d47b55e351544ab179eb209b309a8d2d40f8cdb6241beda00; c=$(esutil-checksum)
- elif [ $$n = flake ]; then h=8d/a7/99222c9200af533c1ecb1120d99adbd1c033b57296ac5cb39d121db007a8; c=$(flake8-checksum)
+ elif [ $$n = flake8 ]; then h=8d/a7/99222c9200af533c1ecb1120d99adbd1c033b57296ac5cb39d121db007a8; c=$(flake8-checksum)
elif [ $$n = future ]; then h=3f/bf/57733d44afd0cf67580658507bd11d3ec629612d5e0e432beb4b8f6fbb04; c=$(future-checksum)
elif [ $$n = h5py ]; then h=43/27/a6e7dcb8ae20a4dbf3725321058923fec262b6f7835179d78ccc8d98deec; c=$(h5py-checksum)
- elif [ $$n = html ]; then h=85/3e/cf449cf1b5004e87510b9368e7a5f1acd8831c2d6691edd3c62a0823f98f; c=$(html5lib-checksum)
+ elif [ $$n = html5lib ]; then h=85/3e/cf449cf1b5004e87510b9368e7a5f1acd8831c2d6691edd3c62a0823f98f; c=$(html5lib-checksum)
elif [ $$n = idna ]; then h=ad/13/eb56951b6f7950cadb579ca166e448ba77f9d24efc03edd7e55fa57d04b7; c=$(idna-checksum)
elif [ $$n = jeepney ]; then h=16/1d/74adf3b164a8d19a60d0fcf706a751ffa2a1eaa8e5bbb1b6705c92a05263; c=$(jeepney-checksum)
elif [ $$n = keyring ]; then h=15/88/c6ce9509438bc02d54cf214923cfba814412f90c31c95028af852b19f9b2; c=$(keyring-checksum)
elif [ $$n = kiwisolver ]; then h=31/60/494fcce70d60a598c32ee00e71542e52e27c978e5f8219fae0d4ac6e2864; c=$(kiwisolver-checksum)
elif [ $$n = lmfit ]; then h=59/6e/117794cf85b7345361877e49245870490ae438f1981dea3c6af1316b30e7; c=$(lmfit-checksum)
elif [ $$n = matplotlib ]; then h=12/d1/7b12cd79c791348cb0c78ce6e7d16bd72992f13c9f1e8e43d2725a6d8adf; c=$(matplotlib-checksum)
- elif [ $$n = mpi ]; then h=04/f5/a615603ce4ab7f40b65dba63759455e3da610d9a155d4d4cece1d8fd6706; c=$(mpi4py-checksum)
+ elif [ $$n = mpi4py ]; then h=04/f5/a615603ce4ab7f40b65dba63759455e3da610d9a155d4d4cece1d8fd6706; c=$(mpi4py-checksum)
elif [ $$n = mpmath ]; then h=ca/63/3384ebb3b51af9610086b23ea976e6d27d6d97bf140a76a365bd77a3eb32; c=$(mpmath-checksum)
elif [ $$n = numpy ]; then h=ac/36/325b27ef698684c38b1fe2e546e2e7ef9cecd7037bcdb35c87efec4356af; c=$(numpy-checksum)
elif [ $$n = pexpect ]; then h=1c/b1/362a0d4235496cb42c33d1d8732b5e2c607b0129ad5fdd76f5a583b9fcb3; c=$(pexpect-checksum)
elif [ $$n = pip ]; then h=4c/4d/88bc9413da11702cbbace3ccc51350ae099bb351febae8acc85fec34f9af; c=$(pip-checksum)
elif [ $$n = pkgconfig ]; then h=6e/a9/ff67ef67217dfdf2aca847685fe789f82b931a6957a3deac861297585db6; c=$(pypkgconfig-checksum)
- elif [ $$n = pybind ]; then h=aa/91/deb6743e79e22ab01502296570b39b8404f10cc507a6692d612a7fee8d51; c=$(pybind11-checksum)
+ elif [ $$n = pybind11 ]; then h=aa/91/deb6743e79e22ab01502296570b39b8404f10cc507a6692d612a7fee8d51; c=$(pybind11-checksum)
elif [ $$n = pycodestyle ]; then h=1c/d1/41294da5915f4cae7f4b388cea6c2cd0d6cd53039788635f6875dfe8c72f; c=$(pycodestyle-checksum)
elif [ $$n = pycparser ]; then h=68/9e/49196946aee219aead1290e00d1e7fdeab8567783e83e1b9ab5585e6206a; c=$(pycparser-checksum)
elif [ $$n = pyflakes ]; then h=52/64/87303747635c2988fcaef18af54bfdec925b6ea3b80bcd28aaca5ba41c9e; c=$(pyflakes-checksum)
@@ -230,7 +229,7 @@ $(pytarballs): $(tdir)/%:
elif [ $$n = soupsieve ]; then h=0c/52/e9088bb9b96e2d39fc3b33fcda5b4fde9d71473536ac660a1ca9a0958a2f; c=$(soupsieve-checksum)
elif [ $$n = sympy ]; then h=54/2e/6adb11fe599d4cfb7e8833753350ac51aa2c0603c226b36f9051cc9d2425; c=$(sympy-checksum)
elif [ $$n = uncertainties ]; then h=2a/c2/babbe5b16141859dd799ed31c03987100a7b6d0ca7c0ed4429c96ce60fdf; c=$(uncertainties-checksum)
- elif [ $$n = urllib ]; then h=b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1; c=$(urllib3-checksum)
+ elif [ $$n = urllib3 ]; then h=b1/53/37d82ab391393565f2f831b8eedbffd57db5a718216f82f1a8b4d381a1c1; c=$(urllib3-checksum)
elif [ $$n = virtualenv ]; then h=51/aa/c395a6e6eaaedfa5a04723b6446a1df783b16cca6fec66e671cede514688; c=$(virtualenv-checksum)
elif [ $$n = webencodings ]; then h=0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47; c=$(webencodings-checksum)
# elif [ $$n = strange5-name ]; then h=XXXXX; c=$(XXXXX-checksum)
diff --git a/reproduce/software/shell/bashrc.sh b/reproduce/software/shell/bashrc.sh
index b2a151f..69bbba6 100755
--- a/reproduce/software/shell/bashrc.sh
+++ b/reproduce/software/shell/bashrc.sh
@@ -31,15 +31,12 @@
#
# Copyright (C) 2019-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# This script is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
-#
-# This script is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# This script is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
+#
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh
index dc93d80..71b07cc 100755
--- a/reproduce/software/shell/configure.sh
+++ b/reproduce/software/shell/configure.sh
@@ -4,18 +4,18 @@
#
# Copyright (C) 2018-2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
-# This script is free software: you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
+# This script is part of Maneage. Maneage is free software: you can
+# redistribute it and/or modify it under the terms of the GNU General
+# Public License as published by the Free Software Foundation, either
+# version 3 of the License, or (at your option) any later version.
#
-# This script is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-# Public License for more details.
-#
-# A copy of the GNU General Public License is available at
-# <http://www.gnu.org/licenses/>.
+# Maneage is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
+# more details. See <http://www.gnu.org/licenses/>.
+
+
+
# Script settings
@@ -93,6 +93,64 @@ absolute_dir ()
+# Check file permission handling (POSIX-compatibility)
+# ----------------------------------------------------
+#
+# Check if a `given' directory handles permissions as expected.
+#
+# This is to prevent a known bug in the NTFS filesystem that prevents
+# proper installation of Perl, and probably some other packages. This
+# function receives the directory as an argument and then, creates a dummy
+# file, and examines whether the given directory handles the file
+# permissions as expected.
+#
+# Returns `0' if everything is fine, and `255' otherwise. Choosing `0' is
+# to mimic the `$ echo $?' behavior, while choosing `255' is to prevent
+# misunderstanding 0 and 1 as true and false.
+#
+# ===== CAUTION! ===== #
+#
+# Since there is a `set -e' before running this function, the whole script
+# stops and exits IF the `check_permission' (or any other function) returns
+# anything OTHER than `0'! So, only use this function as a test. Here's a
+# minimal example:
+#
+# if $(check_permission $some_directory) ; then
+# echo "yay"; else "nay";
+# fi ;
+check_permission ()
+{
+ # Make a `junk' file, activate its executable flag and record its
+ # permissions generally.
+ local junkfile=$1/check_permission_tmp_file
+ rm -f $junkfile
+ echo "Don't let my short life go to waste" > $junkfile
+ chmod +x $junkfile
+ local perm_before=$(ls -l $junkfile | awk '{print $1}')
+
+ # Now, remove the executable flag and record the permissions.
+ chmod -x $junkfile
+ local perm_after=$(ls -l $junkfile | awk '{print $1}')
+
+ # Clean up before leaving the function
+ rm -f $junkfile
+
+ # If the permissions are equal, the filesystem doesn't allow
+ # permissions.
+ if [ $perm_before = $perm_after ]; then
+ # Setting permission FAILED
+ return 1
+ else
+ # Setting permission SUCCESSFUL
+ return 0
+ fi
+}
+
+
+
+
+
+
# Check for C/C++ compilers
# -------------------------
#
@@ -241,7 +299,7 @@ rm -f $testprog $testsource
# See if the C compiler can build static libraries
# ------------------------------------------------
-
+#
# We are manually only working with shared libraries: because some
# high-level programs like Wget and cURL need dynamic linking and if we
# build the libraries statically, our own builds will be ignored and these
@@ -258,6 +316,44 @@ static_build=no
+# Check for GNU gettext
+# ---------------------
+#
+# Some of the basic sofware need GNU gettext which we don't yet install.
+has_gettext=0
+if type msgfmt > /dev/null 2>/dev/null; then has_gettext=1; fi
+if [ $has_gettext = 0 ]; then
+ cat <<EOF
+______________________________________________________
+!!!!!!! GNU gettext NOT FOUND !!!!!!!
+
+Some of the core programs in Maneage require a running GNU gettext on the
+host. Unfortuantely we haven't had the time yet to include its installation
+in Maneage, but it is defined as task #15616 so we don't forget. Generally,
+GNU gettext is already available on many systems, so it hasn't been
+reported too commonly. But please consider helping in this if you have
+time and interest.
+
+Until we include gettext's installation in Maneage, please use your package
+manager to install GNU gettext, then re-run the configuration to
+continue. Here are the relevant commands on some common GNU/Linux
+distributions (you'll only need one of them, or a similar command, if you
+use another package manager):
+
+ apt install gettext
+ yum install gettext
+ pacman -S gettext
+
+!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+
+EOF
+ exit 1
+fi
+
+
+
+
+
# If we are on a Mac OS system
# ----------------------------
#
@@ -287,7 +383,6 @@ ______________________________________________________
EOF
sleep 5
else
- host_cc=0
on_mac_os=no
fi
@@ -653,21 +748,20 @@ EOF
bdir=$(absolute_dir $build_dir)
rm -rf $build_dir/$junkname
else
- echo " -- Can't write in '$build_dir'"; echo
+ echo " ** Can't write in '$build_dir'"; echo
fi
else
if mkdir $build_dir 2> /dev/null; then
instring="the newly created"
bdir=$(absolute_dir $build_dir)
else
- echo " -- Can't create '$build_dir'"; echo
+ echo " ** Can't create '$build_dir'"; echo
fi
fi
# If its given, make sure it isn't a subdirectory of the source
# directory.
if ! [ x"$bdir" = x ]; then
- echo "Given build directory: $bdir"
if echo "$bdir/" \
| grep '^'$currentdir 2> /dev/null > /dev/null; then
@@ -676,17 +770,30 @@ EOF
# Inform the user that this is not acceptable and reset `bdir'.
bdir=
- echo " -- The build-directory cannot be under the source-directory."
- echo " Please specify another build-directory that is outside of the source."
- echo ""
- else
- echo " -- Build directory set to ($instring): '$bdir'"
+ echo " ** The build-directory cannot be under the source-directory."
+ fi
+ fi
+
+ # If everything is fine until now, see if we're able to manipulate
+ # file permissions.
+ if ! [ x"$bdir" = x ]; then
+ if ! $(check_permission $bdir); then
+ bdir=
+ echo " ** File permissions can't be modified in this directory"
fi
fi
- # Reset `build_dir' to blank, so it continues asking when the
- # previous value wasn't usable.
- build_dir=
+ # If the build directory was good, the loop will stop, if not,
+ # reset `build_dir' to blank, so it continues asking for another
+ # directory and let the user know that they must select a new
+ # directory.
+ if [ x$bdir = x ]; then
+ build_dir=
+ echo " ** Please select another directory."
+ echo ""
+ else
+ echo " -- Build directory set to ($instring): '$bdir'"
+ fi
done
fi
@@ -1405,12 +1512,16 @@ cat <<EOF
----------------
The project and its environment are configured with no errors.
-Please run the following command to start.
+To change the configuration later, you can re-run './project configure' or
+manually edit 'reproduce/software/config/LOCAL.conf'. Just be careful with
+the build-directory: its location is hard-coded in the installed software
+so if you change it manually, many of the project's software will crash. If
+you have to use another built-directory, just re-configure a clean project
+there.
+
+Please run the following command to start the project.
(Replace '8' with the number of CPU threads on your system)
$buildcommand
-To change the configuration later, please re-run './project configure', DO
-NOT manually edit the relevant files.
-
EOF