aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--README.md68
-rwxr-xr-xproject11
-rw-r--r--reproduce/analysis/config/INPUTS.conf115
-rw-r--r--reproduce/analysis/make/initialize.mk125
-rw-r--r--reproduce/software/bibtex/astrometrynet.tex26
-rw-r--r--reproduce/software/bibtex/cython.tex23
-rw-r--r--reproduce/software/bibtex/fftw.tex2
-rw-r--r--reproduce/software/bibtex/gnuastro.tex31
-rw-r--r--reproduce/software/bibtex/healpix.tex9
-rw-r--r--reproduce/software/bibtex/imfit.tex31
-rw-r--r--reproduce/software/bibtex/matplotlib.tex23
-rw-r--r--reproduce/software/bibtex/mpi4py.tex22
-rw-r--r--reproduce/software/bibtex/numpy.tex31
-rw-r--r--reproduce/software/bibtex/scipy.tex41
-rw-r--r--reproduce/software/bibtex/sextractor.tex6
-rw-r--r--reproduce/software/bibtex/tides.tex2
-rw-r--r--reproduce/software/config/LOCAL.conf.in43
-rw-r--r--reproduce/software/config/TARGETS.conf4
-rw-r--r--reproduce/software/config/checksums.conf101
-rw-r--r--reproduce/software/config/urls.conf8
-rw-r--r--reproduce/software/config/versions.conf127
-rw-r--r--reproduce/software/make/basic.mk207
-rw-r--r--reproduce/software/make/high-level.mk234
-rw-r--r--reproduce/software/make/python.mk20
-rw-r--r--reproduce/software/patches/README.xz-5.2.5_src_liblzma_liblzma.map8
-rw-r--r--reproduce/software/patches/util-linux-2.38.1-macos.patch114
-rw-r--r--reproduce/software/patches/xz-5.2.5_src_liblzma_liblzma.map115
-rwxr-xr-xreproduce/software/shell/bashrc.sh50
-rwxr-xr-xreproduce/software/shell/configure.sh4
-rwxr-xr-xreproduce/software/shell/pre-make-build.sh2
-rwxr-xr-xreproduce/software/shell/tarball-prepare.sh14
-rw-r--r--tex/src/references.tex2
32 files changed, 1204 insertions, 415 deletions
diff --git a/README.md b/README.md
index 250f807..808977b 100644
--- a/README.md
+++ b/README.md
@@ -188,6 +188,56 @@ analysis and finally create the final paper).
+
+
+
+
+
+### Building on older systems (+10 year old compilers)
+
+Maneage builds almost all its software itself. But to do that, it needs a C
+and C++ compiler on the host. The C++ standard in particular is updated
+regularly. Therefore, gradually the basic software packages (that are used
+to build the internal Maneage C compiler and other necessary tools) will
+start using the newer language features in their newer versions. As a
+result, if a host doesn't update its compiler for more than a decade, some
+of the basic software may not get built.
+
+Note that this is only a problem for the "basic" software of Maneage (that
+are used to build Maneage's own C compiler), not the high-level (or
+science) software. On GNU/Linux systems, the high-level software get built
+with Maneage's own C compiler. Therefore once Maneage's C compiler is
+built, you don't need to worry about the versions of the high-level
+software.
+
+One solution to such cases is to downgrade the versions of the basic
+software that can't be built. For example, when building Maneage in August
+2022 on a old Debian GNU/Linux system from 2010 (with GCC 4.4.5 and GNU C
+Library 2.11.3 and Linux kernel 2.6.32-5 on an amd64 architecture), the
+following low-level packages needed to be downgraded to slightly earlier
+versions.
+
+| Program name | 2022-08 version | Version for old system |
+|:------------------------------|:---------------:|:----------------------:|
+| PatchELF | 0.13 | 0.9 |
+| GNU Binutils | 2.39 | 2.37 |
+| GNU Compiler Collection (GCC) | 12.1.0 | 10.2.0 |
+
+As you can see above, fortunately most basic software in Maneage respect
++10 year old compilers and are build-able there. So your higher-level
+science software should be buildable with out changing their versions. It
+is _highly improbable_ that these downgrades will affect your final science
+result.
+
+
+
+
+
+
+
+
+
+
### Building on ARM
As of 2021-10-13, very little testing of Maneage has been done on arm64
@@ -237,6 +287,11 @@ light and should be very fast.
+
+
+
+
+
### Building in Docker containers
Docker containers are a common way to build projects in an independent
@@ -534,7 +589,12 @@ steps.
following contents. Just replace `UID` with your user ID (found in
step 1 above). Note that we are manually setting the `maneager` (user)
password to `123` and the root password to '456' (both should be
- repeated because they must be confirmed by `passwd`).
+ repeated because they must be confirmed by `passwd`). To install other
+ operating systems, just change the contents on the `FROM` line. For
+ example, for CentOS 7 you can use `FROM centos:centos7`, for the
+ latest CentOS, you can use `FROM centos:latest` (you may need to add
+ this line `RUN yum install -y passwd` before the `RUN useradd ...`
+ line.).
```
FROM debian:stable-slim
@@ -658,7 +718,11 @@ steps.
versions of both and will use them. But for the very first packages,
they are necessary. In the process, by setting the `PS1` environment
variable, we'll define a color-coding for the interactive shell prompt
- (red for root and purple for the user).
+ (red for root and purple for the user). If you build another operating
+ system, replace the `apt` commands accordingly (for example on CentOS,
+ you don't need the `apt update` line and you should use `yum install
+ -y gcc gcc-c++ wget glibc-static` to install the three basic
+ dependencies).
```shell
su
diff --git a/project b/project
index 95af313..d087286 100755
--- a/project
+++ b/project
@@ -516,20 +516,25 @@ case $operation in
# tools like some text editors.
bdir=`.local/bin/realpath .build`
instdir="$bdir"/software/installed
+ bindir="$bdir"/software/installed/bin
+ rcfile=$(pwd)/reproduce/software/shell/bashrc.sh
.local/bin/env -i \
HOME="$bdir" \
TERM="$TERM" \
+ PATH="$bindir" \
CCACHE_DISABLE=1 \
- PATH="$instdir"/bin \
+ PROJECT_STATUS=shell \
+ SHELL="$bindir"/bash \
+ COLORTERM="$COLORTERM" \
+ PROJECT_RCFILE="$rcfile" \
LDFLAGS=-L"$instdir"/lib \
- SHELL="$instdir"/bin/bash \
CPPFLAGS=-I"$instdir"/include \
LD_LIBRARY_PATH="$instdir"/lib \
OMPI_MCA_plm_rsh_agent=/bin/false \
PYTHONPATH="$instdir"/lib/python/site-packages \
PYTHONPATH3="$instdir"/lib/python/site-packages \
PS1="[\[\033[01;35m\]maneage@\h \W\[\033[32m\]\[\033[00m\]]$ " \
- "$instdir"/bin/bash --noprofile --norc
+ "$bindir"/bash --noprofile --rcfile "$rcfile"
;;
diff --git a/reproduce/analysis/config/INPUTS.conf b/reproduce/analysis/config/INPUTS.conf
index 75e24de..5970ae3 100644
--- a/reproduce/analysis/config/INPUTS.conf
+++ b/reproduce/analysis/config/INPUTS.conf
@@ -1,9 +1,10 @@
# This project's input file information (metadata).
#
# For each input (external) data file that is used within the project,
-# three variables are suggested here (two of them are mandatory). These
-# variables will be used by 'reproduce/analysis/make/download.mk' to import
-# the dataset into the project (within the build directory):
+# three variables are suggested here (only the verification variable is
+# strictly mandatory). These variables will be used by the download rule of
+# 'reproduce/analysis/make/initialize.mk' to import the dataset into the
+# project (within the build directory):
#
# - If the file already exists locally in '$(INDIR)' (the optional input
# directory that may have been specified at configuration time with
@@ -12,27 +13,53 @@
# files are large.
#
# - If the file doesn't exist in '$(INDIR)', or no input directory was
-# specified at configuration time, then the file is downloaded from a
-# specific URL.
+# specified at configuration time, then the file is downloaded from the
+# specified URL for that dataset.
#
# In both cases, before placing the file (or its link) in the build
-# directory, 'reproduce/analysis/make/download.mk' will check the SHA256
-# checksum of the dataset and if it differs from the pre-defined value (set
-# for that file, here), it will abort (since this is not the intended
-# dataset).
-#
-# Therefore, the two variables specifying the URL and SHA256 checksum of
-# the file are MANDATORY. The third variable (INPUT-%-size) showing the
-# human-readable size of the file (from 'ls -lh') is optional (but
-# recommended: because it gives future scientists to get a feeling of the
-# volume of data they need to input: will become important if the
-# size/number of files is large).
+# directory, the download rule of 'reproduce/analysis/make/initialize.mk'
+# will check the verification of the dataset and if it differs from the
+# pre-defined value (set for that file, here), it will abort (since this is
+# not the intended dataset).
#
+# Verification (two modes)
+# ------------------------
+# - SHA256 checksum. This will check the full contents of the file, and
+# is generic to any data format. However, if the server inserts custom
+# headers like the query date or query code and etc, this form of
+# validation is not useful: because every download will have different
+# headers. In such cases, you should use the other verification methods
+# below. In other words, this method is only good for files that are
+# "static" on the server (and left there unchanged). If the file is
+# generated at request time, the server usually inserts custom run-time
+# dependent headers; making it impossible to verify with an SHA
+# checksum of the whole file.
+# - The FITS Standard's 'DATASUM' (which will only check the data, not
+# the headers). According to the FITS standard, this sum ignores all
+# headers, and is only calculated on a HDU's data. By default, this
+# will require Gnuastro (which can easily calculate and return the
+# value on the command-line), and it assumes HDU number 1 (counting
+# from 0). You can modify the defaults by modifying the rule in
+# 'reproduce/analysis/make/initialize.mk'.
+#
+# Automatic writing of verification
+# ---------------------------------
+# In case you would like Maneage to find the checksum upon downloading, put
+# the string '--auto-replace--' instead of a checksum. This can be helpful
+# for large datasets; where downloading only for adding the checksum is not
+# easy/possible and can be buggy. In this scenario, upon downloading the
+# file its checksum will be calculated and will be replaced with the
+# '--auto-replace--' in this file. But since this file is under version
+# control, be sure to commit all the updated checksums after your downloads
+# are finished!
+#
+# Variable description
+# --------------------
# The naming convension is critical for the input files to be properly
-# imported into the project. In the patterns below, the '%' is the full
-# file name (including its suffix): for example in the demo input of this
-# file in the 'maneage' branch, we have 'INPUT-wfpc2.fits-sha256':
-# therefore, the input file (within the project's '$(indir)') is called
+# imported into Maneage. In the patterns below, the '%' is the full file
+# name (including its suffix): for example in the demo input of this file
+# in the 'maneage' branch, we have 'INPUT-wfpc2.fits-sha256': therefore,
+# the input file (within the project's '$(indir)') is called
# 'wfpc2.fits'. This allows you to simply set '$(indir)/wfpc2.fits' as the
# pre-requisite of any recipe that needs the input file: you will rarely
# (if at all!) need to use these variables directly.
@@ -40,23 +67,17 @@
# INPUT-%-sha256: The sha256 checksum of the file. You can generate the
# SHA256 checksum of a file with the 'sha256sum FILENAME'
# command (where 'FILENAME' is the name of your
-# file). this is very important for an automatic
-# verification of the file: that it hasn't changed
-# between different runs of the project (locally or in
-# the URL). There are more robust checksum algorithms
-# like the 'SHA' standards.
-#
-# AUTOMATIC CHEKSUM CALCULATION: In case you would like
-# Maneage to find the checksum upon downloading, put the
-# string '--auto-replace--' instead of a checksum. This
-# can be helpful for large datasets; where downloading
-# only for adding the checksum is not easy/possible and
-# can be buggy. In this scenario, upon downloading the
-# file its checksum will be calculated and will be
-# replaced with the '--auto-replace--' in this file. But
-# since this file is under version control, be sure to
-# commit all the updated checksums after your downloads
-# are finished!
+# file). Don't use this if you give the 'fitsdatasum'
+# keyvalue.
+#
+# INPUT-%-fitsdatasum: The FITS standard DATASUM value for HDU number 1
+# of the FITS file (counting from 0). Don't use this
+# if you give the 'sha256' keyword.
+#
+# INPUT-%-fitshdu: The HDU identifier (counter from 0, or name) to use
+# for the verification. This is only relevant in the
+# 'fitsdatasum' verification method and optional (if not
+# given, HDU number 1 is used; counting from 0).
#
# INPUT-%-url: The URL to download the file if it is not available
# locally. It can happen that during the first phases of
@@ -70,6 +91,13 @@
# good feeling of the necessary network and storage
# capacity that is necessary to start the project.
#
+# Therefore, the the verification variable is MANDATORY in any case. The
+# variable with a URL is only necessary if you do not have the file
+# locally. However, The size variable is optional (but recommended: because
+# it gives future scientists a feeling of the volume of data they need to
+# input to run your project: will become important if the size/number of
+# files is large).
+#
# The input dataset's name (that goes into the '%') can be different from
# the URL's file name (last component of the URL, after the last '/'). Just
# note that it is assumed that the local copy (outside of your project) is
@@ -87,7 +115,18 @@
-# Demo dataset used in the histogram plot (remove when customizing).
+# Demo dataset used in the histogram plot
+# ---------------------------------------
+#
+# Remove this part while you are entering your project's datasets.
+#
+# Since the demonstration dataset is a FITS file, we have also added the
+# two '$(INPUT-%-fits*)' variables as a demonstration. But they are
+# commented because the SHA256 method is also possible for this file (its
+# not generated on the server at query time; it is a static file on the
+# server).
INPUT-wfpc2.fits-size = 62K
INPUT-wfpc2.fits-url = https://fits.gsfc.nasa.gov/samples/WFPC2ASSNu5780205bx.fits
INPUT-wfpc2.fits-sha256 = 9851bc2bf9a42008ea606ec532d04900b60865daaff2f233e5c8565dac56ad5f
+#INPUT-wfpc2.fits-fitshdu = 0
+#INPUT-wfpc2.fits-fitsdatasum = 2218330266
diff --git a/reproduce/analysis/make/initialize.mk b/reproduce/analysis/make/initialize.mk
index eb5f2ff..7314184 100644
--- a/reproduce/analysis/make/initialize.mk
+++ b/reproduce/analysis/make/initialize.mk
@@ -63,15 +63,18 @@ pconfdir = reproduce/analysis/config
# loaded.
#
# If your project doesn't need any preparation, you can ignore this.
+#
+# The '-' behind the include commands is used for adding the files only if
+# it is possible (they exist). This is necessary because sometimes the user
+# will have only '*.conf' or '*.mk' files, or with 'make clean' (where the
+# preparation Makefile may call initialize.mk before the main
+# 'top-make.mk'). If the '-' is not used, Make will complain about not
+# finding these files.
ifeq (x$(project-phase),xprepare)
$(prepdir):; mkdir $@
else
-include $(bsdir)/preparation-done.mk
+-include $(bsdir)/preparation-done.mk
ifeq (x$(include-prepare-results),xyes)
-# The '-' behind the include is The '-' is used for adding the files only
-# if it is possible (they exist). This is necessary because sometimes the
-# user will have only '*.conf' or '*.mk' files. So, if the '-' is not used,
-# Make will complain about not finding these files.
-include $(prepdir)/*.mk $(prepdir)/*.conf
endif
endif
@@ -227,7 +230,7 @@ project-commit-hash := $(shell \
export LD_LIBRARY_PATH="$(installdir)/lib"; \
echo $$($(installdir)/bin/git describe --dirty --always --long); \
else echo NOGIT; fi)
-project-package-name := maneaged-$(project-commit-hash)
+project-package-name = maneaged-$(project-commit-hash)
project-package-contents = $(texdir)/$(project-package-name)
@@ -438,13 +441,15 @@ dist-software:
-# Download input data
-# --------------------
+# Import input data
+# -----------------
#
-# 'reproduce/analysis/config/INPUTS.conf' contains the input dataset
-# properties. In most cases, you will not need to edit this rule. Simply
-# follow the instructions of 'INPUTS.conf' and set the variables names
-# according to the described standards and everything should be fine.
+# The list files to be imported (downloaded from a server, or linked from a
+# local location), are listed in 'reproduce/analysis/config/INPUTS.conf'
+# along with their URLs and verification checksums. In most cases, you will
+# not need to edit this rule. Simply follow the instructions at the top of
+# 'INPUTS.conf' and set the variables names according to the described
+# standards and everything should be fine.
#
# TECHNICAL NOTE on the '$(foreach, n ...)' loop of 'inputdatasets': we are
# using several (relatively complex!) features particular to Make: In GNU
@@ -465,16 +470,60 @@ dist-software:
# progress at every moment.
$(indir):; mkdir $@
downloadwrapper = $(bashdir)/download-multi-try
-inputdatasets = $(foreach i, \
- $(patsubst INPUT-%-sha256,%, \
- $(filter INPUT-%-sha256,$(.VARIABLES))), \
- $(indir)/$(i))
+inputdatasets := $(foreach i, \
+ $(patsubst INPUT-%-sha256,%, \
+ $(filter INPUT-%-sha256,$(.VARIABLES))) \
+ $(patsubst INPUT-%-fitsdatasum,%, \
+ $(filter INPUT-%-fitsdatasum,$(.VARIABLES))), \
+ $(indir)/$(i))
$(inputdatasets): $(indir)/%: | $(indir) $(lockdir)
-# Set the necessary parameters for this input file as shell variables
-# (to help in readability).
- url=$(INPUT-$*-url)
- sha=$(INPUT-$*-sha256)
+# Starting rule with '@': In case there is a username or password
+# given for the database, we don't want the values to be printed in
+# the terminal as the pipeline is running. We are therefore starting
+# this recipe with an '@' (so Make doesn't print the used
+# commands). To help the user know what is happening (in case they
+# can't tell from the Wget outputs), we'll just start the recipe with
+# a notice on what is being imported.
+ @echo "Importing $@"
+
+# If a username or password has been provided, add them to the WGET
+# command. The two variables are defined in the local configuation
+# file 'reproduce/software/config/LOCAL.conf' that is not under
+# version control. Different servers may use different authentication
+# formats. If the default one doesn't work for your server, comment
+# it and uncomment the one that works. If your serve needs a
+# different kind of authentication format, please add it yourself. In
+# case you need a new format, we encourage you to send the format to
+# us using the link below:
+# https://savannah.nongnu.org/support/?group=reproduce&func=additem
+ authopt=""
+ if [ x"$(DATABASEAUTHTYPE)" != x ]; then
+ case "$(DATABASEAUTHTYPE)" in
+
+# Format: '--user=XXXX --password=YYYY'
+ userpass)
+ if [ x'$(DATABASEUSER)' != x ]; then
+ authopt="--user='$(DATABASEUSER)'"; fi
+ if [ x'$(DATABASEPASS)' != x ]; then
+ authopt="$$authopt --password='$(DATABASEPASS)'"; fi
+ ;;
+
+# Format: --post-data 'username=XXXX&password=YYYY'
+ postdata)
+ if [ x'$(DATABASEUSER)' != x ]; then
+ authopt="--post-data 'username=$(DATABASEUSER)"; fi
+ if [ x'$(DATABASEPASS)' != x ]; then
+ authopt="$$authopt""&password=$(DATABASEPASS)'";
+ else authopt="$$authopt'" # To close the single quote
+ fi
+ ;;
+
+# Unrecognized format.
+ *)
+ echo "Maneage: 'DATABASEAUTHTYPE' format not recognized! Please see the description of this variable in 'reproduce/software/config/LOCAL.conf' for the acceptable values."; exit 1;;
+ esac
+ fi
# Download (or make the link to) the input dataset. If the file
# exists in 'INDIR', it may be a symbolic link to some other place in
@@ -488,13 +537,29 @@ $(inputdatasets): $(indir)/%: | $(indir) $(lockdir)
ln -fs $$(readlink -f $(INDIR)/$*) $$unchecked
else
touch $(lockdir)/download
- $(downloadwrapper) "wget --no-use-server-timestamps -O" \
- $(lockdir)/download $$url $$unchecked
+ $(downloadwrapper) "wget $$authopt --no-use-server-timestamps -O" \
+ $(lockdir)/download $(INPUT-$*-url) $$unchecked
+ fi
+
+# Set the checksum related variables.
+ if [ x"$(INPUT-$*-sha256)" != x ]; then
+ suffix=sha256
+ sumin=$(INPUT-$*-sha256)
+ verifname="SHA256 checksum"
+ sum=$$(sha256sum $$unchecked | awk '{print $$1}')
+ elif [ x"$(INPUT-$*-fitsdatasum)" != x ]; then
+ suffix=fitsdatasum
+ sumin=$(INPUT-$*-fitsdatasum)
+ verifname="FITS standard DATASUM"
+ if [ x"$(INPUT-$*-fitshdu)" = x ]; then hdu=1;
+ else hdu="$(INPUT-$*-fitshdu)"; fi
+ sum=$$(astfits $$unchecked -h$$hdu --datasum | awk '{print $$1}')
+ else
+ echo "$@: checksum for verifyication not recognized!"; exit 1
fi
-# Check the checksum to see if this is the proper dataset.
- sum=$$(sha256sum $$unchecked | awk '{print $$1}')
- if [ $$sum = $$sha ]; then
+# Verify the input.
+ if [ $$sum = $$sumin ]; then
mv $$unchecked $@
echo "Integrity confirmed, using $@ in this project."
@@ -502,11 +567,11 @@ $(inputdatasets): $(indir)/%: | $(indir) $(lockdir)
else
# The user has asked to update the checksum in 'INPUTS.conf'.
- if [ $$sha = "--auto-replace--" ]; then
+ if [ $$sumin = "--auto-replace--" ]; then
# Put the updated 'INPUTS.conf' in a temporary file.
inputstmp=$@.inputs
- awk '{if($$1 == "INPUT-$*-sha256") \
+ awk '{if($$1 == "INPUT-$*-'$$suffix'") \
$$3="'$$sum'"; print}' \
$(pconfdir)/INPUTS.conf > $$inputstmp
@@ -520,10 +585,10 @@ $(inputdatasets): $(indir)/%: | $(indir) $(lockdir)
# Error on non-matching checksums.
else
echo; echo;
- echo "Wrong SHA256 checksum for input file '$*':"
+ echo "Wrong $$verifname for input file '$*':"
echo " File location: $$unchecked"; \
- echo " Expected SHA256 checksum: $$sha"; \
- echo " Calculated SHA256 checksum: $$sum"; \
+ echo " Expected $$verifname: $$sumin"; \
+ echo " Calculated $$verifname: $$sum"; \
echo; exit 1
fi
fi
diff --git a/reproduce/software/bibtex/astrometrynet.tex b/reproduce/software/bibtex/astrometrynet.tex
index 26d211b..3bedfc3 100644
--- a/reproduce/software/bibtex/astrometrynet.tex
+++ b/reproduce/software/bibtex/astrometrynet.tex
@@ -6,15 +6,19 @@
%% without any warranty.
@ARTICLE{astrometrynet,
- doi = {10.1088/0004-6256/139/5/1782},
- url = {https://doi.org/10.1088%2F0004-6256%2F139%2F5%2F1782},
- year = 2010,
- month = {mar},
- publisher = {{IOP} Publishing},
- volume = {139},
- number = {5},
- pages = {1782},
- author = {Dustin Lang and David W. Hogg and Keir Mierle and Michael Blanton and Sam Roweis},
- title = {{ASTROMETRY}.{NET}: {BLIND} {ASTROMETRIC} {CALIBRATION} {OF} {ARBITRARY} {ASTRONOMICAL} {IMAGES}},
- journal = {AJ}
+ author = {{Lang}, Dustin and {Hogg}, David W. and {Mierle}, Keir and {Blanton}, Michael and {Roweis}, Sam},
+ title = "{Astrometry.net: Blind Astrometric Calibration of Arbitrary Astronomical Images}",
+ journal = {AJ},
+ keywords = {astrometry, catalogs, instrumentation: miscellaneous, methods: data analysis, methods: statistical, techniques: image processing, Astrophysics - Instrumentation and Methods for Astrophysics},
+ year = 2010,
+ month = may,
+ volume = {139},
+ number = {5},
+ pages = {1782-1800},
+ doi = {10.1088/0004-6256/139/5/1782},
+archivePrefix = {arXiv},
+ eprint = {0910.2233},
+ primaryClass = {astro-ph.IM},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2010AJ....139.1782L},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/cython.tex b/reproduce/software/bibtex/cython.tex
index 30a0713..a7df8d5 100644
--- a/reproduce/software/bibtex/cython.tex
+++ b/reproduce/software/bibtex/cython.tex
@@ -6,16 +6,15 @@
%% without any warranty.
@ARTICLE{cython2011,
- author = {{Behnel}, S. and {Bradshaw}, R. and {Citro}, C. and {Dalcin}, L. and
- {Seljebotn}, D.~S. and {Smith}, K.},
- title = "{Cython: The Best of Both Worlds}",
- journal = {CiSE},
- year = 2011,
- month = mar,
- volume = 13,
- number = 2,
- pages = {31},
- doi = {10.1109/MCSE.2010.118},
- adsurl = {http://ui.adsabs.harvard.edu/abs/2011CSE....13b..31B},
- adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+ author = {{Behnel}, Stefan and {Bradshaw}, Robert and {Citro}, Craig and {Dalcin}, Lisandro and {Seljebotn}, Dag Sverre and {Smith}, Kurt},
+ title = "{Cython: The Best of Both Worlds}",
+ journal = {Computing in Science and Engineering},
+ year = 2011,
+ month = mar,
+ volume = {13},
+ number = {2},
+ pages = {31-39},
+ doi = {10.1109/MCSE.2010.118},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2011CSE....13b..31B},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/fftw.tex b/reproduce/software/bibtex/fftw.tex
index 1186efa..1bca7c2 100644
--- a/reproduce/software/bibtex/fftw.tex
+++ b/reproduce/software/bibtex/fftw.tex
@@ -12,7 +12,7 @@
year = {2005},
volume = {93},
number = {2},
- pages = {216},
+ pages = {216-231},
doi = {10.1109/JPROC.2004.840301},
ISSN = {0018-9219},
month = {Feb},
diff --git a/reproduce/software/bibtex/gnuastro.tex b/reproduce/software/bibtex/gnuastro.tex
index 018a35b..20efc19 100644
--- a/reproduce/software/bibtex/gnuastro.tex
+++ b/reproduce/software/bibtex/gnuastro.tex
@@ -6,19 +6,20 @@
%% without any warranty.
@ARTICLE{gnuastro,
- author = {{Akhlaghi}, M. and {Ichikawa}, T.},
- title = "{Noise-based Detection and Segmentation of Nebulous Objects}",
- journal = {ApJS},
-archivePrefix = "arXiv",
- eprint = {1505.01664},
- primaryClass = "astro-ph.IM",
- keywords = {galaxies: irregular, galaxies: photometry, galaxies: structure, methods: data analysis, techniques: image processing, techniques: photometric},
- year = 2015,
- month = sep,
- volume = 220,
- eid = {1},
- pages = {1},
- doi = {10.1088/0067-0049/220/1/1},
- adsurl = {http://ui.adsabs.harvard.edu/abs/2015ApJS..220....1A},
- adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+ author = {{Akhlaghi}, Mohammad and {Ichikawa}, Takashi},
+ title = "{Noise-based Detection and Segmentation of Nebulous Objects}",
+ journal = {ApJS},
+ keywords = {galaxies: irregular, galaxies: photometry, galaxies: structure, methods: data analysis, techniques: image processing, techniques: photometric, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Cosmology and Nongalactic Astrophysics, Astrophysics - Astrophysics of Galaxies},
+ year = 2015,
+ month = sep,
+ volume = {220},
+ number = {1},
+ eid = {1},
+ pages = {1},
+ doi = {10.1088/0067-0049/220/1/1},
+archivePrefix = {arXiv},
+ eprint = {1505.01664},
+ primaryClass = {astro-ph.IM},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2015ApJS..220....1A},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/healpix.tex b/reproduce/software/bibtex/healpix.tex
index 77471c5..2860f72 100644
--- a/reproduce/software/bibtex/healpix.tex
+++ b/reproduce/software/bibtex/healpix.tex
@@ -6,16 +6,15 @@
%% without any warranty.
@ARTICLE{healpix,
- author = {{G{\'o}rski}, K.~M. and {Hivon}, E. and {Banday}, A.~J. and {Wand
- elt}, B.~D. and {Hansen}, F.~K. and {Reinecke}, M. and {Bartelmann}, M.},
+ author = {{G{\'o}rski}, K.~M. and {Hivon}, E. and {Banday}, A.~J. and {Wandelt}, B.~D. and {Hansen}, F.~K. and {Reinecke}, M. and {Bartelmann}, M.},
title = "{HEALPix: A Framework for High-Resolution Discretization and Fast Analysis of Data Distributed on the Sphere}",
journal = {ApJ},
keywords = {Cosmology: Cosmic Microwave Background, Cosmology: Observations, Methods: Statistical, Astrophysics},
- year = "2005",
- month = "Apr",
+ year = 2005,
+ month = apr,
volume = {622},
number = {2},
- pages = {759},
+ pages = {759-771},
doi = {10.1086/427976},
archivePrefix = {arXiv},
eprint = {astro-ph/0409513},
diff --git a/reproduce/software/bibtex/imfit.tex b/reproduce/software/bibtex/imfit.tex
index 167586d..39301a1 100644
--- a/reproduce/software/bibtex/imfit.tex
+++ b/reproduce/software/bibtex/imfit.tex
@@ -6,19 +6,20 @@
%% without any warranty.
@ARTICLE{imfit2015,
- author = {{Erwin}, P.},
- title = "{IMFIT: A Fast, Flexible New Program for Astronomical Image Fitting}",
- journal = {ApJ},
-archivePrefix = "arXiv",
- eprint = {1408.1097},
- primaryClass = "astro-ph.IM",
- keywords = {galaxies: bulges, galaxies: photometry, galaxies: structure, methods: data analysis, techniques: image processing, techniques: photometric },
- year = 2015,
- month = feb,
- volume = 799,
- eid = {226},
- pages = {226},
- doi = {10.1088/0004-637X/799/2/226},
- adsurl = {https://ui.adsabs.harvard.edu/abs/2015ApJ...799..226E},
- adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+ author = {{Erwin}, Peter},
+ title = "{IMFIT: A Fast, Flexible New Program for Astronomical Image Fitting}",
+ journal = {ApJ},
+ keywords = {galaxies: bulges, galaxies: photometry, galaxies: structure, methods: data analysis, techniques: image processing, techniques: photometric, Astrophysics - Instrumentation and Methods for Astrophysics, Astrophysics - Astrophysics of Galaxies},
+ year = 2015,
+ month = feb,
+ volume = {799},
+ number = {2},
+ eid = {226},
+ pages = {226},
+ doi = {10.1088/0004-637X/799/2/226},
+archivePrefix = {arXiv},
+ eprint = {1408.1097},
+ primaryClass = {astro-ph.IM},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2015ApJ...799..226E},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/matplotlib.tex b/reproduce/software/bibtex/matplotlib.tex
index aab2c04..7c2eace 100644
--- a/reproduce/software/bibtex/matplotlib.tex
+++ b/reproduce/software/bibtex/matplotlib.tex
@@ -5,14 +5,17 @@
%% notice and this notice are preserved. This file is offered as-is,
%% without any warranty.
-@Article{matplotlib2007,
- Author = {Hunter, J. D.},
- Title = {Matplotlib: A 2D graphics environment},
- Journal = {CiSE},
- Volume = {9},
- Number = {3},
- Pages = {90},
- publisher = {IEEE COMPUTER SOC},
- doi = {10.1109/MCSE.2007.55},
- year = 2007
+@ARTICLE{matplotlib2007,
+ author = {{Hunter}, John D.},
+ title = "{Matplotlib: A 2D Graphics Environment}",
+ journal = {CiSE},
+ keywords = {Python, Scripting languages, Application development, Scientific programming},
+ year = 2007,
+ month = may,
+ volume = {9},
+ number = {3},
+ pages = {90-95},
+ doi = {10.1109/MCSE.2007.55},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2007CSE.....9...90H},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/mpi4py.tex b/reproduce/software/bibtex/mpi4py.tex
index 598bbda..b8c7b3f 100644
--- a/reproduce/software/bibtex/mpi4py.tex
+++ b/reproduce/software/bibtex/mpi4py.tex
@@ -6,15 +6,15 @@
%% without any warranty.
@ARTICLE{mpi4py2011,
- author = {{Dalcin}, L.~D. and {Paz}, R.~R. and {Kler}, P.~A. and {Cosimo}, A.
- },
- title = "{Parallel distributed computing using Python}",
- journal = {AdvWatRes},
- year = 2011,
- month = sep,
- volume = 34,
- pages = {1124},
- doi = {10.1016/j.advwatres.2011.04.013},
- adsurl = {http://ui.adsabs.harvard.edu/abs/2011AdWR...34.1124D},
- adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+ author = {{Dalcin}, Lisandro D. and {Paz}, Rodrigo R. and {Kler}, Pablo A. and {Cosimo}, Alejandro},
+ title = "{Parallel distributed computing using Python}",
+ journal = {Advances in Water Resources},
+ year = 2011,
+ month = sep,
+ volume = {34},
+ number = {9},
+ pages = {1124-1139},
+ doi = {10.1016/j.advwatres.2011.04.013},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2011AdWR...34.1124D},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/numpy.tex b/reproduce/software/bibtex/numpy.tex
index 0dee489..58622da 100644
--- a/reproduce/software/bibtex/numpy.tex
+++ b/reproduce/software/bibtex/numpy.tex
@@ -5,19 +5,20 @@
%% notice and this notice are preserved. This file is offered as-is,
%% without any warranty.
-@ARTICLE{numpy2011,
- author = {{van der Walt}, S. and {Colbert}, S.~C. and {Varoquaux}, G.},
- title = "{The NumPy Array: A Structure for Efficient Numerical Computation}",
- journal = {CiSE},
-archivePrefix = "arXiv",
- eprint = {1102.1523},
- primaryClass = "cs.MS",
- year = 2011,
- month = mar,
- volume = 13,
- number = 2,
- pages = {22},
- doi = {10.1109/MCSE.2011.37},
- adsurl = {http://ui.adsabs.harvard.edu/abs/2011CSE....13b..22V},
- adsnote = {Provided by the SAO/NASA Astrophysics Data System}
+@ARTICLE{numpy2020,
+ author = {{Harris}, Charles R. and {Millman}, K. Jarrod and {van der Walt}, St{\'e}fan J. and {Gommers}, Ralf and {Virtanen}, Pauli and {Cournapeau}, David and {Wieser}, Eric and {Taylor}, Julian and {Berg}, Sebastian and {Smith}, Nathaniel J. and {Kern}, Robert and {Picus}, Matti and {Hoyer}, Stephan and {van Kerkwijk}, Marten H. and {Brett}, Matthew and {Haldane}, Allan and {del R{\'\i}o}, Jaime Fern{\'a}ndez and {Wiebe}, Mark and {Peterson}, Pearu and {G{\'e}rard-Marchant}, Pierre and {Sheppard}, Kevin and {Reddy}, Tyler and {Weckesser}, Warren and {Abbasi}, Hameer and {Gohlke}, Christoph and {Oliphant}, Travis E.},
+ title = "{Array programming with NumPy}",
+ journal = {Nature},
+ keywords = {Computer Science - Mathematical Software, Statistics - Computation},
+ year = 2020,
+ month = sep,
+ volume = {585},
+ number = {7825},
+ pages = {357-362},
+ doi = {10.1038/s41586-020-2649-2},
+archivePrefix = {arXiv},
+ eprint = {2006.10256},
+ primaryClass = {cs.MS},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2020Natur.585..357H},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/scipy.tex b/reproduce/software/bibtex/scipy.tex
index 4b1292d..8db9fd6 100644
--- a/reproduce/software/bibtex/scipy.tex
+++ b/reproduce/software/bibtex/scipy.tex
@@ -5,30 +5,19 @@
%% notice and this notice are preserved. This file is offered as-is,
%% without any warranty.
-@ARTICLE{scipy2011,
- author = {K. J. {Millman} and M. {Aivazis}},
- journal = {CiSE},
- title = {Python for Scientists and Engineers},
- year = {2011},
- volume = {13},
- number = {2},
- pages = {9},
- keywords = {Special issues and sections;Computer languages;Programming;Scientific computing;Numerical models;Programming languages;Python;Scientific computing;interactive research;Python libraries;Python tools},
- doi = {10.1109/MCSE.2011.36},
- ISSN = {1521-9615},
- month ={March},
-}
-
-@ARTICLE{scipy2007,
- author = {T. E. {Oliphant}},
- journal = {CiSE},
- title = {Python for Scientific Computing},
- year = {2007},
- volume = {9},
- number = {3},
- pages = {10},
- keywords = {high level languages;Python;scientific computing;steering language;scientific codes;high-level language;Scientific computing;High level languages;Libraries;Writing;Application software;Embedded software;Software standards;Standards development;Internet;Prototypes;Python;computer languages;scientific programming;scientific computing},
- doi = {10.1109/MCSE.2007.58},
- ISSN = {1521-9615},
- month = {May},
+@ARTICLE{scipy2020,
+ author = {{Virtanen}, Pauli and {Gommers}, Ralf and {Oliphant}, Travis E. and {Haberland}, Matt and {Reddy}, Tyler and {Cournapeau}, David and {Burovski}, Evgeni and {Peterson}, Pearu and {Weckesser}, Warren and {Bright}, Jonathan and {van der Walt}, St{\'e}fan J. and {Brett}, Matthew and {Wilson}, Joshua and {Millman}, K. Jarrod and {Mayorov}, Nikolay and {Nelson}, Andrew R.~J. and {Jones}, Eric and {Kern}, Robert and {Larson}, Eric and {Carey}, C.~J. and {Polat}, {\.I}lhan and {Feng}, Yu and {Moore}, Eric W. and {VanderPlas}, Jake and {Laxalde}, Denis and {Perktold}, Josef and {Cimrman}, Robert and {Henriksen}, Ian and {Quintero}, E.~A. and {Harris}, Charles R. and {Archibald}, Anne M. and {Ribeiro}, Ant{\^o}nio H. and {Pedregosa}, Fabian and {van Mulbregt}, Paul and {SciPy 1. 0 Contributors}},
+ title = "{SciPy 1.0: fundamental algorithms for scientific computing in Python}",
+ journal = {Nature Methods},
+ keywords = {Computer Science - Mathematical Software, Computer Science - Data Structures and Algorithms, Computer Science - Software Engineering, Physics - Computational Physics},
+ year = 2020,
+ month = feb,
+ volume = {17},
+ pages = {261-272},
+ doi = {10.1038/s41592-019-0686-2},
+archivePrefix = {arXiv},
+ eprint = {1907.10121},
+ primaryClass = {cs.MS},
+ adsurl = {https://ui.adsabs.harvard.edu/abs/2020NatMe..17..261V},
+ adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
diff --git a/reproduce/software/bibtex/sextractor.tex b/reproduce/software/bibtex/sextractor.tex
index 8905be8..8dbfb48 100644
--- a/reproduce/software/bibtex/sextractor.tex
+++ b/reproduce/software/bibtex/sextractor.tex
@@ -11,10 +11,10 @@
title = "{SExtractor: Software for source extraction.}",
journal = {A\&AS},
keywords = {METHODS: DATA ANALYSIS, TECHNIQUES: IMAGE PROCESSING, GALAXIES: PHOTOMETRY},
- year = "1996",
- month = "Jun",
+ year = 1996,
+ month = jun,
volume = {117},
- pages = {393},
+ pages = {393-404},
doi = {10.1051/aas:1996164},
adsurl = {https://ui.adsabs.harvard.edu/abs/1996A&AS..117..393B},
adsnote = {Provided by the SAO/NASA Astrophysics Data System}
diff --git a/reproduce/software/bibtex/tides.tex b/reproduce/software/bibtex/tides.tex
index b97762a..4e69b1a 100644
--- a/reproduce/software/bibtex/tides.tex
+++ b/reproduce/software/bibtex/tides.tex
@@ -13,7 +13,7 @@
month = nov,
volume = 39,
eid = {5},
- pages = {5:1},
+ pages = {1-28},
doi = {10.1145/2382585.2382590},
keywords = {Taylor series method, automatic differentiation, high precision, numerical integration of ODEs, variational equations},
}
diff --git a/reproduce/software/config/LOCAL.conf.in b/reproduce/software/config/LOCAL.conf.in
index a7434ea..b9d6842 100644
--- a/reproduce/software/config/LOCAL.conf.in
+++ b/reproduce/software/config/LOCAL.conf.in
@@ -15,3 +15,46 @@ DEPENDENCIES-DIR = @ddir@
SYS_CPATH = @sys_cpath@
DOWNLOADER = @downloader@
GROUP-NAME = @groupname@
+
+
+
+
+
+# Server authentication/identification
+# ------------------------------------
+#
+# If you need to identify yourself to the database server (when downloading
+# input files), you can write your user name and password in the two
+# variables below. When these two variables are defined, the download rule
+# (in 'reproduce/analysis/make/initialize.mk') will pass their values to
+# the '--user' and '--password' options of WGET.\
+#
+# The 'DATABASEAUTHTYPE' specifies which type of authentication is
+# recognized by the database with the 'wget' command. It can take the
+# following values:
+# 'userpass': Assumes --user='XXXX' --password='YYYY'
+# 'postdata': Assumes --post-data 'username=XXXX&password=YYYY'
+#
+# SPECIAL CHARACTERS IN PASSWORD: if your password has special characters
+# like '#' or '$' (that can have special meaning for Make), then comment
+# them with a back-slash. For example if your password is 'ab#cd', write it
+# below as 'ab\#cd'. Within 'initialize.mk', the user name and password are
+# placed inside single quotes before being used, so special characters
+# won't be problematic. However, if your password includes characters like
+# the single quote itself, this can be problematic. In this case, you can
+# temporarily (without committing!) directly enter the password in the
+# respective rule of 'initialize.mk' and after downloading, undo the change
+# (which is easy with 'git restore'). If you have any ideas on how to
+# account for such characters in a generic way, please let us know and
+# we'll suggest them here for future users.
+#
+# SECURITY WARNING: only set the values of these two variables in
+# 'LOCAL.conf' (which is _not_ under version control), _not_
+# 'LOCAL.conf.in' (which is under version control). It is also recommended
+# to remove the ID and password values from 'LOCAL.conf' immediately after
+# your downloads finish: even though 'LOCAL.conf' is not under version
+# control, it will still be on your computer, which may be accessed by
+# others or (mistakenly) shared with others.
+DATABASEUSER =
+DATABASEPASS =
+DATABASEAUTHTYPE =
diff --git a/reproduce/software/config/TARGETS.conf b/reproduce/software/config/TARGETS.conf
index ef95f57..5e45abf 100644
--- a/reproduce/software/config/TARGETS.conf
+++ b/reproduce/software/config/TARGETS.conf
@@ -36,10 +36,10 @@
# Programs and libraries (for Python or R modules, use respective variable).
-top-level-programs = gnuastro
+top-level-programs = gnuastro
# Python libraries/modules.
-top-level-python =
+top-level-python =
# R libraries/modules
# [For developers 2022-01-02: 'r-cran-cowplot r-cran-gridExtra' for all]
diff --git a/reproduce/software/config/checksums.conf b/reproduce/software/config/checksums.conf
index 736a5e5..cc7e2de 100644
--- a/reproduce/software/config/checksums.conf
+++ b/reproduce/software/config/checksums.conf
@@ -15,28 +15,28 @@
# Basic/low-level programs and libraires (installed in any case)
# --------------------------------------------------------------
-bash-checksum = 409843172032fbe7ef50004ddc30934e12d864e30935fa501dd8a2792c0c12c9c00e1108c05a95ba84b5ab4dd146d92e793b684df1f49ba51eba40f39d47f14d
-binutils-checksum = f3c10d8aeb50872278ece6ad31f7369bf12b2d09618812322b35e6750024b45f77fc32d498a9c579df3c152ce3da382f480281743eb5b53639aa287b7166aba3
+bash-checksum = 2ce67af3ff6b6c9d87b2e98986da937ee100a4cecefd50f01ccdbaeb53e45ff80b1e84d5861619dd3058259223a1f0748e5850aa2dab13b3350fb8a955c3024e
+binutils-checksum = 028c64a9ac34def97ddb4ead355776999c4e3376857e865c536ed74593292437f5bd2049c036a506129f596ba78898b0cefec5c677b6cd76e7d18dfac9c64a33
bzip2-checksum = 929cb1b2d0db8a505e2bafe3ce2c893c8f132dd617c0110e86e19f116b570a85de3c8a635483b530456fc8f8b6698c8190d21313e47607f442807b10489ac86e
cert-checksum = 25b689ebac01ebde136bcef1ef4aa18389fcc618375755001f153b37060cfb327fd6d6afac25d4ddfcf78fd6678fa00ce49ba688e725e4a4c657c37cba4ec3ca
coreutils-checksum = 887ca0ea9e6918c9e959033e625537335902a118af8384a050bbdfadf1c7fa30a92521dd4d9714055d869c1619c20f0f6bcecb89a99f22278a74668b393a5cf0
-curl-checksum = af977f4ea4b096d3de8d116cfe4f8abbfe5dad487745b6fbc1b13c2669d2bcfdcafa44c9c4cf89c4fb413b3c0986d4e25ae107d461e6295bf469ae3cbc31bb67
-dash-checksum = d8533e3fb29ab00369ee0e4f700a2e5ac2fc11a7c51d83fb93dbbe25d1e06b73718f6f583e368bd232edde41b03b53493657e81dc2e0ce439a9da8e1ed627923
+curl-checksum = 9158e35f1f8bee8236df933b0011bc1865bcf10182725b9578824abbfa9cc4dc1e468ab97a5c30bb791cba23e224e395189a6a70b314a500dac1222e4bf21908
+dash-checksum = 794290f8270f05a134966088af5a7f5abd5c7a06e7057108aa49ad18af43643a038cd926192b81cfc9169d9d419b03c9e815483936bbaf102fe7a462f84f358d
diffutils-checksum = 597cd0a14087722b78469e2238fcee25e78108f53ca43fbff1194d87625b4c7498a205f68c7bb44fcd437b8d642bba263ac40170780aede006076b11956fd06e
-file-checksum = f1cc951f8972073aa8d29842858d653ecf890e18840d29b848e3b7ac717b2cebe41091415f38cfda1e0d8d066d9e8200ca8a94b5a77f96b8a9b952a9a567284c
-findutils-checksum = a330ace9e7af668b5294c231f9fb45f23c1345d770d67d047d280cd1c6c0fe01f248ccd9877c170bebe8471618261e09a3d64909bb094c73584928005027d58e
+file-checksum = 22acda3d760fa19f94c67086ae5ea8243afbc896be10d3905b92610fe58cdc5954ce4f6756a2cc2a2c241572c37a56b4d6813b14a37f51d718314c6dc9b201fb
+findutils-checksum = 8f1887781e3f97aec1144dbda6da9590489ffb7dd28e47a5c574c0382398988f015a6f4364b90a66a9e35b3c0e79d8a71c573402b3f95f7f9482f2d47687a4a9
flock-checksum = f711815035e21b46572bf80e730a55822e5abf4cb29749e476ee6cf4d5027e9a7deeacf5f6b8c37f18f17a0cc7a6d98fb0be3936e97b122707f1cb2306d1e1d9
-gawk-checksum = 682fadd3630d51d13d19443a9a93d4cba1bd6802dd078f1366f17f39d3fa5800f47037b103d742be9254475fdc251d90626f95a2e04b5ace117cfaecebca2281
-gcc-checksum = 7f9605b9527799f92b3251968f63e53bd0b74880952f0cbc58ade9b4eee60bac4990ad408c1a6067f7aa36225709061106f0d93bc581ec97711fc5ff6ae15127
+gawk-checksum = 60a9fb36e57c0819576f5b2e48b0cf82210dd0cc45f65529c15d53ae66f8d0674929434bd7ed6fa4beaafc81c6b0ccd8c56d21b5326f7b03dcf958cafca03c3a
+gcc-checksum = be8a7e21fb7ee3be80b814708d6ffb63093fa103a51eb736b3717ac506ed4afcc7571bfe0d475f072e82bed439225d20c07e5d1bbf449a9bc4e10b82e4d8dead
gettext-checksum = f3083af79341bfdc849118333c1598812c12bc225d998181694648187088050160deb4777c252f72a7158e914c2967416489bc6167ef8505664497f2fb94ecbf
-git-checksum = fe41fca911b3f276ac0832c059054c3f51fcc97862d23d47b5bc813a766ef31f431595553f62655360766427ae65debf09f6e2ded318bc8062de2410c359eb51
+git-checksum = 2ade8fe6e9bbc88ebfe72348b13e7c68acbd066dfd6bcdd0de4949ec22aa25d02246efb25e7a7868eef1739c8e8cc7bb73c4caffe0060046bbf738f601eac2a7
gmp-checksum = 2bec8840bceaeac542ce1f7870d5b971b631b055b49751ba4f78f98229d7eb9cd97c0a668f6d7cf81a53bf0b3d5d70e682af523f8f0eee0d7390727ff2bbb271
grep-checksum = e8c28da23fcef11825c54794b3eebffd0eaf84b7ebf5e187fd06b5d4aeff2af1ac097f0166151b3f11f332dc72abf6097188d578f549496f4c7c96ccf479a61e
-gzip-checksum = 48db13116543ffff39ce03a058e5ca279d93581b8aead3b857c41b0aa3028aa787d5bb21ee18d002565ba3e016fed60d55062b3fd91c41a9877f9f7febc6ae27
-isl-checksum = 00821ccdde36540869b47b1f68837183dfc8eb0ae580a36ba92c25308618a25680adc8de7b9df4d93851b300d7e457c931e7ff3a40fa90e336c74bcab3504e41
+gzip-checksum = 43bfed5da4f376f9ee295fb505648e364bd85d38c22f0de79024e5fd2b7e341f7fef8fed0d49a0f0484164fb5c6ce02b1b1951891807bc2b50e1a3e8f7990548
+isl-checksum = e257c19d861da6615c0be303bd8800d5e1a1c71595126da573c7a8d91fea6c41b9cacc2378caf5272949c6719c8835584a6c7fd05246bf4ffe56031543f648e3
less-checksum = 31f733ecf4170b4f5dcf467b902d0753833f852739b03bf611137aea3672c03e00e9418fd5e289e82624c2dd42b0de06cb65a7a637dae78e7647e5c6ecf9fb57
-libiconv-checksum = 396be5305f899619596b72ccc8a192c5fcc8e12163fd23376833c957ee44dbf3d39461360bf7e32a049f9f12a851da7836bfc8a62842114fc10717ac92762987
-libtool-checksum = 379a16baf2123d3cdd28cf8e35e4bb1e0326ae7f431c42ab2a3bd42ccac99a622e5ff0a68703b81614c147bc02178612a5cecb105b8943937a05c0b3ec91fea0
+libiconv-checksum = 01e1b073ae6a82320d8759c973ca27c217377f2afd7a27f52f944d1d6e9079e407a7a4d2352f6b38541e49a85cb27dd39ce2f5f74f44ff42775901cda72e1159
+libtool-checksum = e0bdf6194e77beff0273a487b6345a0707addf1c7f57c35663550c5ef6f41dfcadaaac9df30ada639f5c066fa17a4ce7155bbfc0c920e1a1eadd55dae8183754
libunistring-checksum = f1e92717fc043c2d7c454e44700559b0bd75457fdf3da5e803d9d58d8ebdff261bc73f380f6350bb04ce04071687c0317d09b4e8615003187948be1cd4d0bab3
libxml2-checksum = 0fdc16aa7536adfe1deaadd19cdc20101dd3b081bd0a2e59d8ecc2965b2ef4c30d2e2447ab5b0cdb861c57ddb89ace1bd4ce120d9436b751b37724a90981ba8c
lzip-checksum = 9b18ab9b7ef9a7d1c2da06b48fd018399e94405a5ada457885b778c59caa3faed0e73e1da398516621dc9e721587785b57ef1f8a12c1b0e116ebce5129f0f24d
@@ -44,14 +44,14 @@ m4-checksum = 7f8845f99e64d6a45859b9d80b03352a5526b3de0311ca4d6dd6850e504d26dfc9
make-checksum = ddf0fdcb9ee1b182ef294c5da70c1275288c99bef60e63a25c0abed2ddd44aba1770be4aab1db8cac81e5f624576f2127c5d825a1824e1c7a49df4f16445526b
mpc-checksum = 85e044749c2a001a70af2c11fc4bac58709ca7df11bf6da3b03cca852ef336eb37c4fb1dafdffde2d13df35caa7c296a7cba19a4625b82dc3cccc5066ac95774
mpfr-checksum = 23a30040511809b6a8ed33d5ef83f903e987f0e4b8e87c9bfa627fdf0ca6400330bda4fd727cf1d37f04f7804c77663ed983c6b5ed26f5d5bd772bf13f1f9eb5
-nano-checksum = e1ae28710ce05ef9c73357b9fb556fa6a7e670ae6fd786339677cb8a154446029dd9c4ead4eeab014691e941211a2d2c9faefc7695d1b97c2b8b445ba77ff067
+nano-checksum = 0995899c5bae17411461870d5a5fc61da43679938cd2bf909ae96a0e3ecd3f47319f57397983ef53abe076c34147ec77eb87de0167ce17d1933fddd95983e0a9
ncurses-checksum = 68b7c0388304791ce82ab86ea5c5725357f07bbae0c230af3e4722f75617778b6e28d1f0c1d65871379670e54fcc96ecd54f529a3462d207f3d930e6dad5a2dd
-openssl-checksum = f913eb1f654f702161e524a02ccdd028e26d418f26e334069d77ee0134f094809d5c86bfd65e8d05c9bf3d4f10d58a9f3c4452c8d6120741a90541114d82d5b6
+openssl-checksum = 722588b8d9f8b7a1c607475f441c47a7097b12f1885a471767424c7509103589a9e2647b5da35f5218fac6edee5c7946e4f2eb6962b434b14142330cf7403ef1
patchelf-checksum = f74409c00e7e50a88590267fa0c173f71239f1471985792f7bcdab750d202a9a25383c015987608bbcd6ace5b3642645d46dba63199ba54fabbcb51ae7fca8f6
-perl-checksum = 47c37f2698d7f46d2bd8a19abfd329ed58509a9eeb6c9ddb32e435434fcacd5b70419c01d0fa10d1c599cf43248ebc1538076e6bdedc56624fac887d480b8b8d
+perl-checksum = 0cb49a0891ed0b8963093556af232b424d97eea5af659b00a6781c1de446da730a318c5d75d1d8cb7d7572cd4adb1423e4b9019bad96aa17da0de28a19f36399
pkgconfig-checksum = c37ab9336ac15a73bf5a23101f3fd8a04810f39b0679634e420e5d7bbd60a80cfc919122694cf83965beb071d2780681efc8d954ce99d77eb235a4dc7497e250
podlators-checksum = c653205fd1e8e570750584cdb3a813a1250ae6f66d4e654b3521b80052867a3a6ba15ad3d7c8a22065f1febc36175257f9b5685570fcf0a87908c2dc9d42cb3d
-readline-checksum = 90d9571609b90f07573f831878f5131df17f1baabc064398c95915f13d44ea0907e41218be089377523751ca5b02a8486b5306ef6d0245432a0c224b7aa7fb94
+readline-checksum = e7afacba7da0ec0f98c5cfd1a25873a1803c1beee9f8b2bb603844415466e9406512b69e1624412be3a48dc49ed048433599b0f9693986a5253debbc5631e0ae
sed-checksum = 90d8fa16b2570baee061c128d6db688a3354796a6499014f12dc4c5966b34cbb8a04a47914e4ff8dc1815444ad0235565efef2a327b67c485e3324c2a1d07d78
tar-checksum = 98d938d76a55dca1d1ba9a13f1aa2a3e8ae25ea422843e93daab98d373f4a72eebf052c88c87122ac16ed629863dc3fdb86dddf18d3ab5a2565b06f49b7d02bd
texinfo-checksum = 6a706bd0f973b9bbe4fdbc3bfd475cc9699eb410d276cbc19a73255924313006e1b80a87803fa30f7245e3fcb610c829da31e38c91e791e19f11ca8b998914c4
@@ -77,7 +77,7 @@ zlib-checksum = 97493906504451830655b300b4144deeeb9f41bdb9b3f3a3d5635c2b16bf90d5
apachelog4cxx-checksum = 2c4b907a47ae00c38ae9bcd5d215be5115bfb677646cac50538eb1c75824f594aa997dafc9a7828dc6bfd5f22f4c486f13e4210b9a1d8a9c98098d96384ef9c3
apr-checksum = d0ddf8b10dd8d3a831b94e541d387414cc4d507ad48ff752d3274fb808afe6628d7951364aa3e0f71f373c78d0081411f6a0595d01c62bfb0a54bbc86002c82a
apr-util-checksum = 6589948e3f9daf4ecd700bdbd2053fcb83005cec9d339278dda067996ba696e4a947116f066cee03214458aa15e0cb6f0df0103e7bc6f8f32327722eb7265f35
-astrometrynet-checksum = 9d07cf03f6408a19164914fa7b389aaedec8ae27ec9dcdef75b5a0db6a71000a15cdc1d9a8d9b2256c5299a890f499792407cf362ca0bed27f4f182f4a93b789
+astrometrynet-checksum = 33bf92ec1d5aad50525739f5afb3abd2abe27c8b0cce35a6923831b7b7c35930cb6f14425df47c60dc5561cd27b4af55ea6ccdabaa2d444c81a6c86c7ef9629c
atlas-checksum = 13634a63c686800bef8affcf4e8f5f89d08f485fc557eb1b9ba51a405926014e659e439268f655984bb7f59ffe497d594cd7a607103826f1046325d89796e1b0
autoconf-checksum = daf3d17178d8c2d0f872a50217ba4d8a1481bad7e70ee5a58c5599717a01209cbd58e6149c72f6c4829b96dcf602bcfb828d47e32a9cfe3e5710c45f4f1736e7
automake-checksum = 728284b89ab4607b5de5db6b8bf5ad8730cbd8ac094f583b93bb92c59dee35e021e823cddd412b0507b18a12cbbbfbec0fb0447c23d0afd167769641fe0755e5
@@ -85,8 +85,8 @@ bison-checksum = 08c3e9bcf9fc01bc8b3a6c5e5f8ecdf628e07d6ce0874341e9df6d7b2925db7
boost-checksum = cc7b78311538d6e8a6849d58da3b4d3062dc6b816f91a06b86609e6f1538d87ef9308c27af4db7a644e7c8e2b3de73c9f011a739e75262a0f36affdc313947f3
cairo-checksum = 5de8528196b450d01da5cd4562dec0dd8c31028b77640b6c611172f7c5ad1dc9a4d30bd4e38259344c3ee42b979e29be702a3190aae5fbf47c82c79ee0c14a8e
cdsclient-checksum = 24584eedeb84ab4666cbd2ed0b7264c92c63c9cf090595b75b01dd46f848419d6a7e5cff4db3946695f879d0ee2bfbeb527e88c2be85e769b577302d9b2ad2b7
-cfitsio-checksum = 51dc93aecadb08a402898e4c4bacf7a085a9799dda7678aa9e46d3096d51683a49bdb162f18c69b23cba47ffb78a35b11fc41a37f9b559af6da95589d3ad2e67
-cmake-checksum = 351ee5d50d65c6048508c3982842e94e74a8eba066adfd348bb4c79f41a26613c0306ea1b49e96d8272ddae3b2680d74caebcd8391a3bf72d702f30f92c48fab
+cfitsio-checksum = 18dcaec9907c0d6d09c28a1238b0ab1425268aa6c83ca163a2ea8df404cc8fcaa5b9a5b17ed585d415d56ee9a2647b0cfcd6e03da91a1a2f75cf0db530287270
+cmake-checksum = 7587ff2bc7f0d75e4a19798081d13f10545fc49fdf06e913fd1606db2056204471f3536c0e2c46924013c4d64ff1f4e0422eff5dd6b911bce65c01e8510d24be
eigen-checksum = 39c1944e0daca50bb01e929edc98e2bfc234accb30ca019dcccfc7b02db5cc81035592be219ae93cc3ec16fe0255e7e4d1f29ca2ad3dfee7e63546c47cb2f807
emacs-checksum = 91313dced8cd74f9e4a996eef42806aad00fb2576fc77b3694bb7b670624b6a1551ff49c2a3326dbeeba916e5732ca5975b5dc40b3b063f6e73a22839009abe9
expat-checksum = 526f2ec03978f853ff76a911b5a168f58a7eac83b8405536afe2a6acf4611ebcb96acbc5df809fd18e4edeb7ca5059a3ce56dcbd12cb33eecf742c6361d83d19
@@ -94,69 +94,70 @@ fftw-checksum = 28bd2f620399a415181027d30d7ea193aa487c7a277c9943d0051488908fd87e
flex-checksum = a18e0dcdd21bd51779fd70e5efc2d77fa7b2a56d4d0e929d8abb437f86d7fcfa2cd09b8268185698200866dac8bec4444c5a7cff3140c515eaa49fc77c5aea66
freetype-checksum = b3c7289cda3f89fa6e51143f2d1f1c82fa34808d0caa9262e7be5498c8f0fdb14e88d31ec9928e3add71f03208e40adb2fa94c2a4b4c6b7bfb81daf64b1578cb
gdb-checksum = 4afd6660d2bbc4c48ce726062fb42217bdaa5974774407358b2624036a2ace48ed853746e4d6b83b9a409cd8fefc622b0727c79da8826e28e3d1444fa3a9d148
-ghostscript-checksum = 6dd1713bf40648ba6ed234a6c68582f87fa4075a191cf9af4f4ffa1854b94439c5ee4748e27ade3e8e0b7168fee1df3e9a9f3a32f70ac1ab9dd68e3878358ff2
+ghostscript-checksum = b8ca229c118bd29f0fadb87a65975011d793d8245652eb7e2d2cc1c0e90be1d545b0bfc216703766e35aedd096a1c3ddb6ad9ed8d3c71efa0a9f9904a524e903
ghostscript-fonts-gnu-checksum = d8de17e5d920bd3803ecdc07aca224fa5b9a26db847ddae0ecc79488dc3e867ab3155a8565f20df7855e5228bc7f36a549b082ba0b8b56c9b948d6cfb655fdc0
ghostscript-fonts-std-checksum = 40e01f88dd113c3120686c11da1c4cf4ee77c8db315b21cc936c3ccfb42cad4949e207298ec6d78d03327ff05122fcd75ac82d5e7cdc9698d4bbf1f72b19756a
-gnuastro-checksum = 97e3789c1462b895ac8f4141dd9fe6bff0f052fb584fc73a5a7b8192adb047947500363c512fb5a947981d68cee1aba3f3082753c0c2ec43a72e7d79693dc8dd
+gnuastro-checksum = 3af26ab271d0015642e7290c96899f433c24ae93685fff3dddcef697acf590981da03a7c598b01f31ff042ec99fc4e4759a5622af73bb6ee989c3c2060be7936
gperf-checksum = 854cdb24337f14b0d4199cc97c4a1d2ec7f953ad8125a47a932d93f79bdc067e2de231859ac0e842f14b1a8d80c5606fdc2c295a370df5e85ea15023b478805b
gsl-checksum = f9b92ef783d922f97fa40e934314648c627002e0b5c8067e6ca9b691cfacd6363efe68216db75ae1a093053c7aa6b56fda2769bd2e10b2c3a373339d7a0fc9c5
-hdf5-checksum = f828ee9d63533effe1ad358230e5ce7b64c5016e49291d9533575f713cbfba496290fc0151fd9617898bdf36785984ddb38a9207f529d7702d4e23838fe050d8
+hdf5-checksum = 58d6d9a1c201efa0863d9c31d189b4d40b1a9b1fb1ab9cb3fdeb4463f508c043e467aa4d44484c2af111d4e2fb775223286da69568774e6edef285208290c67b
healpix-checksum = c11949e92aae9919fd41de91cbab72beffe2519c1203ab153ba217c6b6c81f2c10ceb07b683da0d04fb53ef5c80a9b208bdbb5379f379b7da9d0611d2430cc8e
-help2man-checksum = 4e1656f323c889d2a8fd4603132fd14260de5dbf4d828122037ed561355e404458668f15adfd499c7ec600eb6fd653345cf4687377669f47d2a8ce391d5aed29
+help2man-checksum = 94346bed1c6b4f41384a216af55464ee142a47c40fa9d2dcc8bd86a4ecd64afb4ee7c1a06efbc9c6c7f4f275936dc21840ead193a8cc45840808d6d361be5e3d
icu-checksum = ab14b52a3fdf2dcde6b5160ab7218eac381b850d3c278324379741c49d71fa6040fbacca94c6937e6c9fc15843761121deff302ca6854da5ca1cd5b26a34e839
imagemagick-checksum = 2132614540b7422c9772fcebe7e8e358994efcfb53d8e48fa52992313b09b191847e395bad305322c377a4697014353bb8c15adc4edfd712e038504fc7f17c5e
imfit-checksum = 15edd2349232c1c8e611b31d3a46b0700112d274515f54d0a0085bb4bfa6d3d5f8a15cd926516e043a29ce841accf3534ae58dbfb952d858dc9445199c957096
lapack-checksum = ff670e194a1d8c998f05e6143e01a09e6b43176c511217ea3c77742afd9f2566251c50fc23aeb916442401f7118c1d1fe21f0172382a7f4f2c516c1d7d873e24
libbsd-checksum = 5c7d98474000af1271a36ab769e54aba41578e0b0f06e47af2986d6821b6586ac430ec04cc51b7836823834dd9d0aec9f4ab3af088b94f963b89729fa2cc95d8
libffi-checksum = 6a4d46567512c3ce69a11c8d01fa0397cf653ea6207b5a86192a52367006f0f27fc08b9ae3559ef45da69433c7c39818199b29ac06bc2c7dc0fafefe7ae7b32d
-libidn-checksum = 8606bbdacc48b7fd572104896615acf0ca88f7c11a60c9eafc2ddb8477110a1f62c5684dbd5adf45b6417d9fc04a46add26052f63e464a81b3f4192443d13447
libgit2-checksum = 7db8792f4280c484e324aa0f862714cd2ff3ea5c93aaf6953b08f9f2d7423e742d78f6fad11b5e5823747c81188e12432f247ee99dfaf331e4ce293713904ab2
-libjpeg-checksum = e27405f4caefe485a14b5017ffb17025373ac78c6a727c5d95e6b007f5b5e1256f028beb9410f0351d3733ad7f63967de2ed523cdfa4c406db690fddebf3e04b
+libidn-checksum = 8606bbdacc48b7fd572104896615acf0ca88f7c11a60c9eafc2ddb8477110a1f62c5684dbd5adf45b6417d9fc04a46add26052f63e464a81b3f4192443d13447
+libjpeg-checksum = 420397a802d81aac7c093aa056bd306f4c617a1deaa42b75179b9497da90568d560624e5423675030fcade69fa2cbca5203060e9fe9f0ef67e5025926b2e1dbc
libmd-checksum = a598b61dcbd7c3daf25a4affccfcdb2f6d58a0d2057b4f24e8fb92cddbeb0d62f1f5e3dd55195dd83be405d187184a331ea080b936b6c336ad4271be03b0beb0
libnsl-checksum = a3c8f674357674b7ed4b26c05adde607f39be8d6dc9ff715448e1fcc5fc23d11fbb4ce85a6e493b79bdb0bb450dc3ffb1fb480715779f738d7bc016fae91621d
libpaper-checksum = e1f37dfbbcc467c2269e228fa71893fd6c4738e1fd6cf24ce6e2ded568cfeeed80da097e51e833aa48e4ab9e1be0a5c75f9f4cf8bf2f050214c85013e9c24043
libpng-checksum = 8bf8aaccf4b9efe15a18f0c7a0a6a942eba7bcdbaf61313f50af7e04a237ccc12f380b53ed88e5efa2d20b13f1a0f9f365b6bd7824d32350b3b3d9c6fa63eef6
-libtiff-checksum = 628e9e6b3ff5cdf661ac4c9cbee7fc10d5555554d39e447d9a0c4e99b9a81e4ae51e990f7e3a83b607145948a57a3d1d46fae13758d844ebb3e55bb307e28ebf
+libtiff-checksum = 4e0da3df4b853f2017d99f23c5ed83d9f0d20743ce4caaf2ab915fa2d392858a7a74f91b1fd8a00055d1e82e26a5eb165aec6411709ea66478dce16062ccb93e
libtirpc-checksum = bcb6b5c062c1301aa1246ec93ae0a5c1d221b8421126d020863517cb814b43ed038fb6c0c2faf4e68ff133b69abefe4f4d42bfc870671da6c27ca941a30b155a
metastore-checksum = ac1230686535a652e95024abaf6c5585bdab36f4e092bee5fa4deff2a913cd60f3a6bd8020c6887ccab97f0da3a284a0d4619fad5464a269e7b2040d6f7e6aaf
missfits-checksum = 32727f5eb30573a1cedacb8900e2536867e4815059eee32e64e3db65be9291b8a91b9f45b2c9f3cf6fc2a8cc448012ea3d502bdd9dee516008e17d5086aee795
netpbm-checksum = aef81d2e46850fae1fb34a38fa9f634be3c47c7c4e80f300c61aadd5532bcbccdec636e6c701e54caca67ac2d6ce3a7b6a9f090deb00cd4db718439986f89d8e
-openblas-checksum = 363588495451f872d4332a1c5e5ff4422202935641f490515e6f8144d3e1838ef737f39e77aaca396d23f9011b981961aa503e5d5935260231e31bb2280f890d
+openblas-checksum = 979cf2ecd4777fd0a65091210187b717e20ebe65917dd568dfb2590c686cf1a665dffcb3732c7e199c7b951a31e625f0428119d59106635af96552f69964908f
openmpi-checksum = 88c73fd708dd5fe3a893d5517425a8a4c3e252fae4715df9a9b0f2311abe94cf5f71be92f153820fbaeb32c7d0ac0175d5165bdadcadc731427309102182c1bd
openssh-checksum = e280fa2d56f550efd37c5d2477670326261aa8b94d991f9eb17aad90e0c6c9c939efa90fe87d33260d0f709485cb05c379f0fd1bd44fc0d5190298b6398c9982
patch-checksum = 75d4e1544484da12185418cd4a1571994398140a91ac606fa08dd067004187dad77d1413f0eb3319b3fe4df076714615c98b29df06af052bb65960fa8b0c86bf
pcre-checksum = abac4c4f9df9e61d7d7761a9c50843882611752e1df0842a54318f358c28f5953025eba2d78997d21ee690756b56cc9f1c04a5ed591dd60654cc78ba16d9ecfb
pixman-checksum = 333732b99994f7ea636d647e0b6123075351b27601b5b6370c9bc821a1ab3921386ddb92b51e015f3fc35104ba09be1e0d7bef47f0b4f73036b01d1d70396dd9
-python-checksum = 30cc55a4ca7d65c55a967d9c43e2ebeeed2905f2fab01540140537e0384f943b6ab6699b1c2b91cb2b3834fe7d3d1976aec58ba4c5b9f209bc0ea9a0ff248332
+plplot-checksum = 2c5a36d84ebd948402c924d304427b5702bc75bdd22753c9b3b910b382dfdcc26910382aae452f02d86b25c1c813bbe1f40c9305de1d2809d575975f610fdf10
+python-checksum = b3d6b4187b31167b382e195037d7ca01d5e9c112fceb0f12a30c101dbcc91079601c01aa449f9d33d2fc53c795c33305e80c891e986a0e24cbecc14beaf90199
r-cran-checksum = 54cc07956a70c09b5a533188eb063d2a9dc67a8aa5648ec7f9c107f626220c9f6e17ab7175e65dd54a8d608a1ca4106c8ad2856709eb995ab66439b5f033e725
rpcsvc-proto-checksum = c3011d7d7ef97a4a751f6921df1a23e1dd8ac50fb0690c759d37010ed7be27968a2130e3b8872cb48d5914216f9d539096a424f1ec38a75f7ed899748151c6f4
-scamp-checksum = 35034a367d2cd09dc51e727e0f23ef6234edc0d978fd71cda1e80391d86af160138cb57281f7f7f9047e35b1246a0de6b235414086a62524413ed423f498583f
+scamp-checksum = c7a192f357c6808acd16d1c5d2657c5c8c2f61e4fecb8a4b18d39b07f4c444f85d5029c21571d41ec3ba9c8d075de8bd660b0e029bf5dd63e3819e963430a938
scons-checksum = 0477038b014674049f12899b64584d44a85283d521b2422561e42020a5ae296a5af005684087c3ff410ed3fcbdcc5ff61998bc429eb29513f2a864138ffc4945
sextractor-checksum = 4035710f9b8a20a0bb1a3913dab2dadd8444c179bf6dee425e0e8bb66a772944ea189bfce89fd791d316a790fc4b2cb15a62633b19d1d5331b1803dec2e70af7
-swarp-checksum = 80f4ade59738df3d4c9b47bda04148b53c6ba995d523fa8d1e02fb5d952b6078a53cc7d273849a033505de127a4f318b95adf2bf5a2dc38e8cc9bdaf5658487a
+swarp-checksum = 810af6ea0a2dfc7b78b0f6aaa486b80c29f517b90c29f5037d05f31f761e96a55c8b5dcc259e1b435b25f45f01dac45ddba61da84000a69676cce119880bb05d
swig-checksum = ecb1d940f584c23df036a8f77288916003f861851dfdf836ddc5bc45b95312f9259150084191c1d9f086c006e64e12a4db22f7ea382fbb71667b811b8f99995d
tides-checksum = c3360ff0d023b43749ba09a33302ca059f017a157b3ce7cdcf4f1a1578e90d3e7fa420077043adbee6b1ebf94bd698c8d6b279012f36d2a05b4de5351e30e108
-util-linux-checksum = 2e07b4765482182112c424cbfe5af0dc9c9a50918e335bf99846f3017b291f5df23e95c77942f2265e9b0d471201a0d53d3c79d916df1c61cf044a80e37f85ee
-vim-checksum = 06ba43386fcf308520d88d7a68e9bc1fabd824b05078b8f9112500a2ad4e50a91f1a1c2925889b7c06dbce34307f12abf508e2172b05fd283f965cc06552eb6d
-wcslib-checksum = 008bb069bcc21f7944b37ca44e85aa5d343d44aeb24ad3920c2db716a984e3fb63cdad8fe05ae63b8850c5ce4ce5f81c524dfd14958ae38fcaef32f893814b45
+util-linux-checksum = 5f2534266a71cf61373d5b79f5a130191a06e5a3cc025982747be0d336b7ff60bded56cb1e0b42705f01dbd3ff8634928760554c53fef10045e68775c945854f
+vim-checksum = 85d083fcf3638f2c3a049b88da46d569d6a250ae132f3821d440c07c4792befffc09e4235241ca96d7b0307a1bb96cd2222ac8a63fb41c6add8c2bdc6c17aabb
+wcslib-checksum = f2ee5b0b6aa8e6ef2923a85d0213e7d66c54b6cdee5c6843abc97436b699215479815db2766ae76af1f1bd6eef4f46cd8510dd87bae8272a4a7c770c32ab7535
xlsxio-checksum = 22870fda7bd4eefd5fea2a9ad7530c9049135129d9b69805091777e6b54b2fc6c3f0e69c6954f36bce54eebbfeccaf637cce9e271a593221a4296d6632470a6c
yaml-checksum = dadd7d8e0d88b5ebab005e5d521d56d541580198aa497370966b98c904586e642a1cd4f3881094eb57624f218d50db77417bbfd0ffdce50340f011e35e8c4c02
# Xorg related packages
-util-macros-checksum = b29c388c60b8318a478656f0552210b2194ee302c082f694e5426ac5c3f4b97fc3e377cd6a7b2b97c3da3442cfb4a5e42dbae18e151ae39f5f84554016a01155
-xorgproto-checksum = b9471ce92f2a5fee9d32710191d7df63799027214ceace60fb2ae8616c888ad142d2a131dea5acc768e86bc71719873c72c20a2863fa821790b96faef44f603f
+fontconfig-checksum = 4786b8419bdead24fe16cdb152b898d2676a59c534fd301f02e5343fd4fe54780fea06521e7c0bf45b794dbb08b0f17359eb5c6f1fe4e31d71dfd952c8fa3da2
+libice-checksum = 9e3488abaff115ac919e5df85479044579802b38a10597425e13466c22c149ef56a8adba77e2adbbcccb8d2e72e23976313f4af3dcee66128b768c971c513932
+libpthread-stubs-checksum = a99695c007e17d81879d5c113652c5e1edab2d63aac9b2984c4f334d85e2cebc1d0b4e8134d6196ed8eea4d4da41972fca27bb8a0c76c2946460f785233a2c03
+libsm-checksum = b9eec391f0438e85e32cf771afbb35bf215119ec31d9e31be40c1b653f2c3e894c2d19add0d6ff69e944d1230f681275e8abad86a8912ec37c1c41e0f1ce4d00
+libx11-checksum = c5ee35af06a90bfa0e9c5f42feea9887c5beb88960a7658f8465524a360e400a5640e5dcda741549d7ecf470e7142d3728a32659e12f95a316203655a408db42
libxau-checksum = bdca8935aa1a52bcd2748004d26c7405725c18021a4d9a67604c98c1ec3957cc85b5d987d2fcd9fa4ae5e59b6bbd6ab75712beee2d448bd733a7e3ffeb18e62f
+libxcb-checksum = 85effa5ac6c158df2affbe1a9085ebd2c52ddceaa8d972035afaea2a1f1d3031357bac2586237438cfc20a51468e620b0ff8775d057446ce2ef0768d947e9f25
libxdmcp-checksum = cb1d4650f97d66e73acd2465ec7d757b9b797cce2f85e301860a44997a461837eea845ec9bd5b639ec5ca34c804f8bdd870697a5ce3f4e270b687c9ef74f25ec
-xcb-proto-checksum = 385ea15eac6326b73849f1dae790619760f473f4c5471a3ccf990b01350931395e988cd83f632c94fe987eec74198f59835b8140686774710462e0019f90c168
-libxcb-checksum = c69c7e5d6c172aa0bd65d6f3ad25d9a8388194cf2281ee9c9e02baf73c351752b7c287fd04f8ee3429d5b55358806c81565046796263212379593db4e32c4287
-fontconfig-checksum = 12dfddb3b37d71555764fe97dcb439496f3fc0e6d34e4536a92eda1069cc78ceb1dda5b2c0b247f779a093a6c75c56afcac6f0cd099d897c2ce30740a9fbb183
-xtrans-checksum = 1c2fdd7cb906f012f7db5d42466734f89608bf3376b6bf4b115c2efbf71c4247587cc218ccfcfaa6d50f0cf336865d10fc604515b25bc6e95917db8acb7e3000
-libx11-checksum = 740cc5364d49cee8fd86f3dc0f43d7b358c94989717ea8991addea9b2307df6e5b2ae1f8f7aa3571f7294b8760c7aca7be9fdf5b477dec55da14e915dccafd7c
libxext-checksum = 58f4e87f200bfde2b9a2cd85c1c39d5462b702e12274ffa5fae5bd3a08b3dfab1290b399c31224c86627d927106e4dbfcdec6152c11b169834442008228796d4
-libice-checksum = 9e3488abaff115ac919e5df85479044579802b38a10597425e13466c22c149ef56a8adba77e2adbbcccb8d2e72e23976313f4af3dcee66128b768c971c513932
-libsm-checksum = b9eec391f0438e85e32cf771afbb35bf215119ec31d9e31be40c1b653f2c3e894c2d19add0d6ff69e944d1230f681275e8abad86a8912ec37c1c41e0f1ce4d00
libxt-checksum = 9ec0f95ae073360ea7a80ffca2dcd998c991363b79696550c4f88edf2c9cbf740caca23929660b77fffca4ca292465a101398e9e891cd00db85f8eceaa78cde0
-libpthread-stubs-checksum = a99695c007e17d81879d5c113652c5e1edab2d63aac9b2984c4f334d85e2cebc1d0b4e8134d6196ed8eea4d4da41972fca27bb8a0c76c2946460f785233a2c03
+util-macros-checksum = b29c388c60b8318a478656f0552210b2194ee302c082f694e5426ac5c3f4b97fc3e377cd6a7b2b97c3da3442cfb4a5e42dbae18e151ae39f5f84554016a01155
+xcb-proto-checksum = b1e2c12c9d66e729815e782af47cfd50ede4c771fe0d0607a423a3bcddfb5f2fdf5c8b58b17cfccf508104cf5ad6cc05be8bad5f96807538322050ecd65fa320
+xorgproto-checksum = 32852ca4d682207dd1399274714f26da6a995c3f4a20c3ef197e8dfd637f6782d4ce02cb8721ca0179e4618a585beacc53e74537869434dc3096d4ad47e10c26
+xtrans-checksum = 1c2fdd7cb906f012f7db5d42466734f89608bf3376b6bf4b115c2efbf71c4247587cc218ccfcfaa6d50f0cf336865d10fc604515b25bc6e95917db8acb7e3000
# Python packages
# ---------------
@@ -170,7 +171,7 @@ libpthread-stubs-checksum = a99695c007e17d81879d5c113652c5e1edab2d63aac9b2984c4f
# hash here.
asn1crypto-checksum = 44d442a6ddfa971e31e24712fe084368356deb5e1c4c3b3e813e0910931860215bc1c4f9eb2c4bd4fdef607c324086c096e9357068646efd28c97f2d4f85c62f
asteval-checksum = 4d64900b2f7dfdd098d6c8c102f9d9fd46f9ec265a54330e7d94479ba41f0ee0698855658e18b8b32b9c255159eb9a085af5f0306eb6508663d3fea7d2e00b4a
-astropy-checksum = 52b7feae68308445014665e3fc80201ca82955916fbe4d065dbb1a439885befb4f669932cec6fd7d359094138fab0ca188162efab764c4591d53896cdb335426
+astropy-checksum = 4dcc515dd656b2c8d040456f8ca66fae9bf856e2e8273675b28d924fc66a6cc687ac258a696f7d6fa5959cde2c2761e3e1c14c1e8db4e6adc690eb59ea0feb7c
astroquery-checksum = 43846791d8469a26cf6bb8819db58b830cfe50a34bc0091c2e843dd7dc78b1317530855d432a3a567a9f6a6f4d2682382a32edc91ea01716246b99b3625ec521
beautifulsoup4-checksum = bf8fd3e54da63a506f294f0e5f1201fd46bf2edcc2db23e99eda995313b8a8d24db3cd2d1903853c539a9320bfb9eb4b29e311772bfddc0d125f0b4aec71e384
beniget-checksum = 32a19d77323a0a21544ce7fbbb71cc5f4c66949dba280d81deb36f38364544d9fdfb3d24fc48a1ff6d251fb22c24357e81dd7fa4a7e6c11d8b931723e150a182
@@ -188,7 +189,7 @@ esutil-checksum = 7f1f22b0a05855819e3bd9bc2eee14942c2f536fb99f4af03575eb41d3d3fd
extension-helpers-checksum = ea62d537d0f76af9f975ad577d3a679e027fe0dd21f8a125ccb34bff1e4cfb69ecc15c8bceb406744033e91827fc8b78477e30e8f3cc45396bb6ed8102159b08
flake8-checksum = a25076bb7f978ca23af0f2016b30bf5fe4680371b4c0939361a6f8c496f3c846cf98ecadee35fc2dedd588116c8cd982529972dd2411ab139621912b69132a1e
future-checksum = c70565a660cf87c5e7e994bae0d4eb0b2b8b607ecb5ce65521c027bf0a39ce5699f0578413bd3c7edd5d01aeb1617de48dcea098a9e9021d8487a73007573030
-galsim-checksum = d7e354778de87cf5c8964a7f252025eeeabc04ef2fb673c35adc536b449442aca261e2bd96befaaa872065376ac79cbe23d1ee7d034bcab5916f74b98112b8b8
+galsim-checksum = 65393c4bcf52a3e723604a956aac5f58f490e41c7d5ddbd5d61660658738e2496aa30f632d4d83b765aaf1e46ac691fcd02fc827380e07c8f921c160a9f6a6fd
gast-checksum = 8311f48788daf060bee54ad8986eae054c2a426adcf97f1503cde37c4da2827cd0f664188e51f5c2f932a0a4ded78166a8466465595a640106060c8b6c7072a5
h5py-checksum = c49b04f7dcddf03f36d4f063d79ecbe544e0b1daee432d4a76cfa83dac3a1f2cb144f40a74fb85ea17cb5b778f57f709969ea5d1a2afc5bdd5aecbc9d732898d
healpy-checksum = installed-with-healpix
@@ -224,8 +225,8 @@ requests-checksum = 385e1d80993a21c09e7c4682500ca8c24155962ba41ecd8e73612722b2ff
scipy-checksum = ed7956f5686b13689d9a8246a8c3afa64a33f993b38fe0e9ed9e880d49298fea6014f10bc3e1a280f1474155cd691ee0409d133254c5f8cd133805d41b2f1ed4
secretstorage-checksum = 295e0f75c772edf153480730dc20051f06e60e040a18f169620cb4aaa37b8c1a254a496464d3794a38cf49fa884a7b561fe364816f0d12a5b2622c77259f03cf
setuptools-checksum = 92040b907eb5d15ae6a95f73c2f2229e7d4c1941c82890ce3920fcb5549240223433db6e1388b1131ba574540a55a0487ae9b802c9e43d0c1cfde699167ef3e6
-setuptools_scm-checksum = 196d4785a1802875d89b9e54ae788e791a9c5cb685109784059955b691242984e42b96d77075116790935f56be82259bc2588d95d65ecbb101261d76daddb83c
setuptools-rust-checksum = cdebf61a2d55846104a3f2ff5eb0c1e268285d2e1f074dc0080b99faf74e3bfa55af9dd5ecd12aba97b37888b8bf5d7388d7b42f2b0b9e906c9860309ea5aceb
+setuptools_scm-checksum = 196d4785a1802875d89b9e54ae788e791a9c5cb685109784059955b691242984e42b96d77075116790935f56be82259bc2588d95d65ecbb101261d76daddb83c
sip_tpv-checksum = 5e03279cb3650dd506332dfcb31aa4a20f23f55b8a29fd18da5c6d422d1b7dc49e12362ceae2ff7417c874401b5e87a73ca1ac0f3c8747c8984e4269cad56c3f
six-checksum = 903334a9dcde08d654e5bf8f2bc06aa4d72449bd2b667505b9c191c38eb5b8259233fc791215584393cc70aea92ea29035460880a6a151f5defce5db084da1af
soupsieve-checksum = abdcbb6a13563e7afadd3056141587fdc3d7d644e346f789bca0a16242d860219e462491b0c624b287300af960fb8e3f85c79f5137580939a9fc8c3d6961478c
@@ -246,6 +247,9 @@ wheel-checksum = 0a900806b97c368a6fdb763353c14a54e1fb629443af11432cbbaba5f2d7fa7
# 'reproduce/software/conf/versions.conf'. If you update the version and are
# confident that the new version is safe to use, then you can update the
# hash here.
+r-cran-MASS-checksum = 0d22ff69cff1414bf52d11aefd75b442c9c8fecb343fe3733c7b28a6b881f3c87ac8b6e4b0d76709c36e612523ef386d207d403c2292881c083e03d21b3709ec
+r-cran-R6-checksum = 5986510ff19c1e0129bb0b88d72020d30255e26d6da9a40c123b7b0c42c3e121188c8de34b79ad5eb0e0390eb4d59f2b7f0224b58679459bec0c4d677dec6ea9
+r-cran-RColorBrewer-checksum = 62aae85a0cf349a58ff51922886f71e2a9dc7b9548b061390f3b370f240bcec72340b3ebc03077a0374ce18ccf16121247e0500eca875ef2ab2f755c809e8f28
r-cran-cli-checksum = 29782b4cb00a94536c871276835a5f762f3deca8355c35b9366434cd2873604ea20f2746ef624eb4e6ec1514cb9079e8c101e50ace85fb1336f3befcf77be244
r-cran-colorspace-checksum = b6c24e1dd104d444e09049df61fcaac680aafc1f530bcff07fc8ce5f2bcfc9a3521aac032a506b61dd10de885a914ed82c4095ee95113e407ffd0cd43662f098
r-cran-cowplot-checksum = 39e3b29078ffa67e03911c21b4cc09a8dcfe0bf38fb180691e82f2ff87c993e78f89173a750dcf08424fa1e0ab39ae5d07fc59af792ac0333ef02cd9ea8afc03
@@ -262,13 +266,10 @@ r-cran-isoband-checksum = 253d0b768492b64d5c32ab20f3b896cfe206305b8a53b31055813b
r-cran-labeling-checksum = 0ba0cb33863f79868ec6f2289f29ddc742cc620b7ed85364099448d39d71a51cce45028097100aeeaf8a8a7e4ad0982b459ef20a15faed9c5c7db79e9f9b01fe
r-cran-lifecycle-checksum = 1ac7aafb41925d19abfd78f454d1acd5102a72ee7017840f14cf54d035cf3999d5b6dc2979b00214358e3c26dfac3407c8b525b434e8882c123a92a132bb07df
r-cran-magrittr-checksum = b0bca6000602b90c996efc3681799a8a965a5bb90eb5e3436b7a26be15e5a219ef6300f4086f0b6efda734272775688a8ca77a4094eda429926a9179125b87c7
-r-cran-MASS-checksum = 0d22ff69cff1414bf52d11aefd75b442c9c8fecb343fe3733c7b28a6b881f3c87ac8b6e4b0d76709c36e612523ef386d207d403c2292881c083e03d21b3709ec
r-cran-mgcv-checksum = 83df262152d9ee5081b3d16711b5cae3860f7dd879f97db014b987edd6b110b11219bac0e07f8ca04169181291aea76399d465b9bf0e96a1b6aaf83692fdf5bc
r-cran-munsell-checksum = 59536096c637d84b80f097bf400bcbb9fcb7ddf6267ce6b026e3c7b3cbcf548caef118439a1928dd8833359a18b14e49f38fe90ea7919c28c215b3b297c036a3
r-cran-pillar-checksum = dd2bc53539ec6838cb8d5bb5ddf30cff9c43c5de0f8d148374d5a394385429a06243db48e7cf6bdb463bad7a130fb47b172ceaac8d04ca3205b4c4210ab672ff
r-cran-pkgconfig-checksum = 0b636d9b1233a00974ac93eb2a1e0ad6b552fa043bfe9743ec74ef884c1d01a73c372586516abca8772a836c50dcd9eed4d10c50f6883fc68ba2494e79872aaf
-r-cran-R6-checksum = 5986510ff19c1e0129bb0b88d72020d30255e26d6da9a40c123b7b0c42c3e121188c8de34b79ad5eb0e0390eb4d59f2b7f0224b58679459bec0c4d677dec6ea9
-r-cran-RColorBrewer-checksum = 62aae85a0cf349a58ff51922886f71e2a9dc7b9548b061390f3b370f240bcec72340b3ebc03077a0374ce18ccf16121247e0500eca875ef2ab2f755c809e8f28
r-cran-rlang-checksum = 8dc647e59dc767471345f9cfda7b77316215b0bf5a96e28f63e216d80f239ba9ed260b90926d175080e256d645f9a1b621d7602bfe27c32d0151758753b6cac8
r-cran-scales-checksum = a1c693f993010613a33b9a165d5f853ad5f4fbbd790deae2bd5b19adc6ea0adbf27962e0f56807297ec56a71a6a5f57e3aa0ef78c266e74dc600da34c24d16e8
r-cran-tibble-checksum = 4a4953b9083064ba10e240e304617f0b2c65039eb188f56761cfac228e99186054b543aef045607b63e5ebf9da2d20255f0ae724fd974c497507706d21a92864
diff --git a/reproduce/software/config/urls.conf b/reproduce/software/config/urls.conf
index 7177411..6c68830 100644
--- a/reproduce/software/config/urls.conf
+++ b/reproduce/software/config/urls.conf
@@ -41,7 +41,7 @@
#libtool-url = http://ftp.gnu.org/gnu/libtool
#libunistring-url = http://ftp.gnu.org/gnu/libunistring
#libxml2-url = ftp://xmlsoft.org/libxml2
-#lzip-url = http://akhlaghi.org/src
+#lzip-url = https://download.savannah.gnu.org/releases/lzip/
#m4-url = http://akhlaghi.org/maneage-software
#make-url = http://akhlaghi.org/src
#mpc-url = http://ftp.gnu.org/gnu/mpc
@@ -149,15 +149,17 @@
# Xorg packages
# -------------
#fontconfig-url = https://www.freedesktop.org/software/fontconfig/release
+#libice-url = https://www.x.org/archive/individual/lib/
#libpthread-stubs-url = https://xcb.freedesktop.org/dist
+#libsm-url = https://www.x.org/archive/individual/lib/
#libx11-url = https://www.x.org/pub/individual/lib
#libxau-url = https://www.x.org/pub/individual/lib
+#libxcb-url = https://xcb.freedesktop.org/dist/
#libxdmcp-url = https://www.x.org/pub/individual/lib
#libxext-url = https://www.x.org/pub/individual/lib
-#libice-url = https://www.x.org/archive/individual/lib/
+#libxext-url = https://www.x.org/archive/individual/lib/
#util-macros-url = https://www.x.org/pub/individual/util
#xcb-proto-url = https://xorg.freedesktop.org/archive/individual/proto
-#libxcb-url = https://xcb.freedesktop.org/dist/
#xorgproto-url = https://xorg.freedesktop.org/archive/individual/proto
#xtrans-url = https://www.x.org/pub/individual/lib
diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf
index 04de56f..725c721 100644
--- a/reproduce/software/config/versions.conf
+++ b/reproduce/software/config/versions.conf
@@ -17,26 +17,28 @@
# --------------------------------------------------------------
#
# CLASS:BASIC (important identifier for 'awk'; don't modify this line)
-bash-version = 5.1.8
-binutils-version = 2.37
+bash-version = 5.2-rc2
+binutils-version = 2.39
+bison-version = 3.8.2
coreutils-version = 9.1
-curl-version = 7.79.1
-dash-version = 0.5.11.5
+curl-version = 7.84.0
+dash-version = 0.5.11-057cd65
diffutils-version = 3.8
-file-version = 5.41
-findutils-version = 4.8.0
+file-version = 5.42
+findutils-version = 4.9.0
flock-version = 0.4.0
-gawk-version = 5.1.0
-gcc-version = 11.2.0
+gawk-version = 5.1.1
+gcc-version = 12.1.0
gettext-version = 0.21
-git-version = 2.36.0
+git-version = 2.37.1
gmp-version = 6.2.1
grep-version = 3.7
-gzip-version = 1.11
-isl-version = 0.18
+gzip-version = 1.12
+help2man-version = 1.49.2
+isl-version = 0.24
less-version = 590
-libiconv-version = 1.16
-libtool-version = 2.4.6
+libiconv-version = 1.17
+libtool-version = 2.4.7
libunistring-version = 1.0
libxml2-version = 2.9.12
lzip-version = 1.23
@@ -44,14 +46,13 @@ m4-version = 1.4.19
make-version = 4.3
mpc-version = 1.2.1
mpfr-version = 4.1.0
-nano-version = 6.0
+nano-version = 6.4
ncurses-version = 6.3
-openssl-version = 3.0.0
-patchelf-version = 0.13
-perl-version = 5.34.0
+openssl-version = 3.0.5
+perl-version = 5.36.0
pkgconfig-version = 0.29.2
podlators-version = 4.14
-readline-version = 8.1.1
+readline-version = 8.2-rc2
sed-version = 4.8
tar-version = 1.34
texinfo-version = 6.8
@@ -79,6 +80,15 @@ bzip2-version = 1.0.8
# the date that is also equal to the version.
certpem-version = 2021-10-15
+# PatchELF
+# --------
+#
+# PatchELF 0.15 requires a C++ compiler with the 2017 standard. There are
+# still systems that don't have such compilers and there hasn't been any
+# Maneage-related bug in PatchELF that would need newer versions. So we'll
+# stick to this version until the stdc++17 compilers are more commonly
+# supported.
+patchelf-version = 0.13
@@ -93,18 +103,17 @@ certpem-version = 2021-10-15
#
# CLASS:HIGHLEVEL (important identifier for 'awk'; don't modify this line)
apachelog4cxx-version = 0.12.1
-apr-version = 1.7.0
apr-util-version = 1.6.1
-astrometrynet-version = 0.89
+apr-version = 1.7.0
+astrometrynet-version = 0.91
atlas-version = 3.10.3
autoconf-version = 2.71
automake-version = 1.16.5
-bison-version = 3.8.2
boost-version = 1.77.0
cairo-version = 1.16.0
cdsclient-version = 3.84
-cfitsio-version = 4.0.0
-cmake-version = 3.21.4
+cfitsio-version = 4.1.0
+cmake-version = 3.24.0
eigen-version = 3.4.0
emacs-version = 28.1
expat-version = 2.4.1
@@ -112,70 +121,70 @@ fftw-version = 3.3.10
flex-version = 2.6.4-410-74a89fd
freetype-version = 2.11.0
gdb-version = 11.1
-ghostscript-version = 9.55.0
ghostscript-fonts-gnu-version = 6.0
ghostscript-fonts-std-version = 8.11
-gnuastro-version = 0.16.1-e0f1
+ghostscript-version = 9.56.1
+gnuastro-version = 0.18
gperf-version = 3.1
gsl-version = 2.7
-help2man-version = 1.48.5
icu-version = 70.1
imagemagick-version = 7.1.0-13
imfit-version = 1.6.1
libbsd-version = 0.11.3
libffi-version = 3.4.2
libidn-version = 1.38
-libjpeg-version = 9d
+libjpeg-version = 9e
libmd-version = 1.0.4
libnsl-version = 1.2.0-4a062cf
libpaper-version = 1.1.28
libpng-version = 1.6.37
-libtiff-version = 4.3.0
+libtiff-version = 4.4.0
libtirpc-version = 1.2.6
metastore-version = 1.1.2-23-fa9170b
missfits-version = 2.8.0
-openblas-version = 0.3.18
+openblas-version = 0.3.21
openmpi-version = 4.1.1
openssh-version = 8.0p1
patch-version = 2.7.6
pcre-version = 8.44
pixman-version = 0.40.0
-python-version = 3.10.0
+plplot-version = 5.15.0
+python-version = 3.10.6
r-cran-version = 4.1.2
rpcsvc-proto-version = 1.4
-scamp-version = 2.6.7
+scamp-version = 2.10.0
scons-version = 3.0.5
sextractor-version = 2.25.0
-swarp-version = 2.38.0
+swarp-version = 2.41.5
swig-version = 4.0.2
tides-version = 2.0
-util-linux-version = 2.37.2
+util-linux-version = 2.38.1
valgrind-version = 3.18.1
-vim-version = 8.2
+vim-version = 9.0
xlsxio-version = 0.2.21
yaml-version = 0.2.5
# Xorg packages
-util-macros-version = 1.19.3
-xorgproto-version = 2021.5
+fontconfig-version = 2.14.0
+libice-version = 1.0.10
+libpthread-stubs-version = 0.4
+libsm-version = 1.2.3
+libx11-version = 1.8
libxau-version = 1.0.9
+libxcb-version = 1.15
libxdmcp-version = 1.1.3
-xcb-proto-version = 1.14.1
-libxcb-version = 1.14
-fontconfig-version = 2.13.94
-xtrans-version = 1.4.0
-libx11-version = 1.7.2
libxext-version = 1.3.4
-libice-version = 1.0.10
-libsm-version = 1.2.3
libxt-version = 1.2.1
-libpthread-stubs-version = 0.4
+util-macros-version = 1.19.3
+xcb-proto-version = 1.15
+xorgproto-version = 2022.1
+xtrans-version = 1.4.0
# Version-dependent build
# -----------------------
lapack-version = 3.8.0
libgit2-version = 1.3.0
-wcslib-version = 7.7
+wcslib-version = 7.11
# Netpbm's questions in the configure steps maybe change with different or
# new versions.
@@ -188,7 +197,7 @@ minizip-version = $(zlib-version)
# Be careful with updateing hdf5 because h5py 2.10.0 doesn't work with
# version 1.12.0.
-hdf5-version = 1.10.5
+hdf5-version = 1.13.1
@@ -206,7 +215,7 @@ hdf5-version = 1.10.5
# CLASS:PYTHON-START (important identifier for 'awk'; don't modify this line)
asn1crypto-version = 0.24.0
asteval-version = 0.9.16
-astropy-version = 5.0
+astropy-version = 5.1
beautifulsoup4-version = 4.10.0
beniget-version = 0.4.1
certifi-version = 2018.11.29
@@ -222,7 +231,7 @@ esutil-version = 0.6.9
extension-helpers-version = 0.1
flake8-version = 3.7.8
future-version = 0.18.1
-galsim-version = 2.3.3
+galsim-version = 2.3.5
gast-version = 0.5.3
h5py-version = 2.10.0
html5lib-version = 1.0.1
@@ -233,7 +242,6 @@ kiwisolver-version = 1.0.1
lmfit-version = 0.9.14
lsstdesccoord-version = 1.2.0
markupsafe-version = 2.0.1
-matplotlib-version = 3.3.0
mpi4py-version = 3.1.3
mpmath-version = 1.1.0
numpy-version = 1.21.3
@@ -242,18 +250,17 @@ pexpect-version = 4.7.0
pillow-version = 8.4.0
pip-version = 19.0.2
ply-version = 3.11
+pybind11-version = 2.5.0
pycodestyle-version = 2.5.0
pycparser-version = 2.19
pyerfa-version = 2.0.0.1
pyflakes-version = 2.1.1
-pybind11-version = 2.5.0
pyparsing-version = 3.0.4
pypkgconfig-version = 1.5.1
python-dateutil-version = 2.8.0
pythran-version = 0.11.0
pyyaml-version = 5.1
requests-version = 2.21.0
-scipy-version = 1.7.3
setuptools-version = 58.3.0
setuptools_scm-version = 3.3.3
sip_tpv-version = 1.1
@@ -264,6 +271,12 @@ uncertainties-version = 3.1.6
urllib3-version = 1.24.1
webencodings-version = 0.5.1
wheel-version = 0.37.0
+
+# More recent versions of Matplotlib and Scipy have issues with finding
+# dependencies in our Python build system.
+scipy-version = 1.7.3
+matplotlib-version = 3.3.0
+
# CLASS:PYTHON-END (important identifier for 'awk'; don't modify this line)
# Special Python modules:
@@ -309,11 +322,14 @@ wheel-version = 0.37.0
# called 'R-CRAN' (or 'r-cran') in Maneage, because searching on a single
# letter string 'R' is extremely inefficient.
#
-# IMPORTANT: If you intend to change the version of any of the R-CRAN
-# modules/libraries below, please fix the hash strings of the respective
-# packages in 'reproduce/software/conf/checksums.conf'.
+# IMPORTANT: Similar to all software, if you intend to change the version
+# of any of the R-CRAN modules/libraries below, please fix the hash strings
+# of the respective packages in 'reproduce/software/conf/checksums.conf'.
#
# CLASS:R-CRAN-START (important identifier for 'awk'; don't modify this line)
+r-cran-MASS-version = 7.3-54
+r-cran-R6-version = 2.5.0
+r-cran-RColorBrewer-version = 1.1-2
r-cran-cli-version = 2.5.0
r-cran-colorspace-version = 2.0-1
r-cran-cowplot-version = 1.1.1
@@ -330,13 +346,10 @@ r-cran-isoband-version = 0.2.4
r-cran-labeling-version = 0.4.2
r-cran-lifecycle-version = 1.0.0
r-cran-magrittr-version = 2.0.1
-r-cran-MASS-version = 7.3-54
r-cran-mgcv-version = 1.8-36
r-cran-munsell-version = 0.5.0
r-cran-pillar-version = 1.6.1
r-cran-pkgconfig-version = 2.0.3
-r-cran-R6-version = 2.5.0
-r-cran-RColorBrewer-version = 1.1-2
r-cran-rlang-version = 0.4.11
r-cran-scales-version = 1.1.1
r-cran-tibble-version = 3.1.2
diff --git a/reproduce/software/make/basic.mk b/reproduce/software/make/basic.mk
index d90d945..14d63cf 100644
--- a/reproduce/software/make/basic.mk
+++ b/reproduce/software/make/basic.mk
@@ -55,6 +55,7 @@ ddir = $(BDIR)/software/build-tmp
idir = $(BDIR)/software/installed
ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
+iidir = $(BDIR)/software/installed/include
ibidir = $(BDIR)/software/installed/version-info/proglib
# Ultimate Makefile target. GNU Nano (a simple and very light-weight text
@@ -87,13 +88,18 @@ export SHELL := $(ibdir)/dash
export PATH := $(ibdir):$(PATH)
export PKG_CONFIG_PATH := $(ildir)/pkgconfig
export PKG_CONFIG_LIBDIR := $(ildir)/pkgconfig
-export CPPFLAGS := -I$(idir)/include $(CPPFLAGS) \
- -Wno-nullability-completeness
export LDFLAGS := $(rpath_command) -L$(ildir) $(LDFLAGS)
# Disable built-in rules (which are not needed here!)
.SUFFIXES:
+# See description of '-Wno-nullability-completeness' in
+# 'reproduce/software/shell/configure.sh'.
+ifeq ($(on_mac_os),yes)
+ noccwarnings=-Wno-nullability-completeness
+endif
+export CPPFLAGS := -I$(idir)/include $(CPPFLAGS) $(noccwarnings)
+
# This is the "basic" tools where we are relying on the host operating
# system, but are slowly populating our basic software envirnoment. To run
# (system or template) programs, 'LD_LIBRARY_PATH' is necessary, so here,
@@ -202,6 +208,7 @@ $(ibidir)/low-level-links: $(ibidir)/grep-$(grep-version) \
$(call makelink,xcrun)
$(call makelink,sysctl)
$(call makelink,sw_vers)
+ $(call makelink,codesign)
$(call makelink,dsymutil)
$(call makelink,install_name_tool)
@@ -222,6 +229,10 @@ $(ibidir)/low-level-links: $(ibidir)/grep-$(grep-version) \
fi
done
+# Useful tools: 'ldd' (list libraries linked by binary on GNU
+# systems)
+ $(call makelink,ldd)
+
# We want this to be empty (so it doesn't interefere with the other
# files in 'ibidir'.
touch $@
@@ -252,10 +263,46 @@ $(ibidir)/gzip-$(gzip-version): | $(ibdir) $(ildir) $(lockdir)
$(call gbuild, gzip-$(gzip-version), static, , V=1)
echo "GNU Gzip $(gzip-version)" > $@
+# 2022-07-14 B Roukema
+#
+# xz-5.2.5 fails on (at least) CentOS 7 (Redhat) systems while trying
+# to compile 'cmake' in Maneage - this is Maneage bug 62700 [1].
+#
+# The fix appears to be just a few lines, although it's not clear
+# how robust or long-term it is. Since we don't yet have 'patch' in
+# 'basic.mk', this file has to be copied into place rather than patched.
+
+# xz-5.2.5_src_liblzma_liblzma.map is a patched
+# version of xz-5.2.5/src/liblzma/liblzma.map based on discussion at
+# [1] + [2] + the patch file [3].
+#
+# [1] https://savannah.nongnu.org/bugs/index.php?62700
+# [2] https://github.com/easybuilders/easybuild-easyconfigs/issues/14991
+# [3] https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/bcebb3320ffb63f9804ca8d4d64d1822ec7c9792/easybuild/easyconfigs/x/XZ/XZ-5.2.5_compat-libs.patch
$(ibidir)/xz-$(xz-version): $(ibidir)/gzip-$(gzip-version)
+
+# Prepare the tarball.
tarball=xz-$(xz-version).tar.lz
$(call import-source, $(xz-url), $(xz-checksum))
- $(call gbuild, xz-$(xz-version), static)
+
+# Until the bug mentioned above is fixed, we'll can't use the generic
+# rule.
+# $(call gbuild, xz-$(xz-version), static)
+
+# Configure and build with patched file.
+ srcdir=$$(pwd)
+ unpackdir=xz-$(xz-version)
+ patchedfile=xz-5.2.5_src_liblzma_liblzma.map
+ cd $(ddir)
+ rm -rf $$unpackdir
+ tar -x -f $(tdir)/$$tarball
+ cd $$unpackdir
+ cp -pv $$srcdir/reproduce/software/patches/$$patchedfile \
+ src/liblzma/liblzma.map # copy the fixed file into place
+ ./configure --prefix=$(idir)
+ make install
+ cd ..
+ rm -rf $$unpackdir
echo "XZ Utils $(xz-version)" > $@
$(ibidir)/bzip2-$(bzip2-version): $(ibidir)/gzip-$(gzip-version)
@@ -303,26 +350,6 @@ $(ibidir)/bzip2-$(bzip2-version): $(ibidir)/gzip-$(gzip-version)
ln -fs libbz2.so.$(bzip2-version) libbz2.so
echo "Bzip2 $(bzip2-version)" > $@
-$(ibidir)/unzip-$(unzip-version): $(ibidir)/gzip-$(gzip-version)
- tarball=unzip-$(unzip-version).tar.lz
- $(call import-source, $(unzip-url), $(unzip-checksum))
- $(call gbuild, unzip-$(unzip-version), static,, \
- -f unix/Makefile generic \
- CFLAGS="-DBIG_MEM -DMMAP",,pwd, \
- -f unix/Makefile generic \
- BINDIR=$(ibdir) MANDIR=$(idir)/man/man1 )
- echo "Unzip $(unzip-version)" > $@
-
-$(ibidir)/zip-$(zip-version): $(ibidir)/gzip-$(gzip-version)
- tarball=zip-$(zip-version).tar.lz
- $(call import-source, $(zip-url), $(zip-checksum))
- $(call gbuild, zip-$(zip-version), static,, \
- -f unix/Makefile generic \
- CFLAGS="-DBIG_MEM -DMMAP",,pwd, \
- -f unix/Makefile generic \
- BINDIR=$(ibdir) MANDIR=$(idir)/man/man1 )
- echo "Zip $(zip-version)" > $@
-
# Some programs (like Wget and CMake) that use zlib need it to be dynamic
# so they use our custom build. So we won't force a static-only build.
#
@@ -341,11 +368,9 @@ $(ibidir)/zlib-$(zlib-version): $(ibidir)/gzip-$(gzip-version)
# software to be built).
$(ibidir)/tar-$(tar-version): \
$(ibidir)/xz-$(xz-version) \
- $(ibidir)/zip-$(zip-version) \
$(ibidir)/gzip-$(gzip-version) \
$(ibidir)/zlib-$(zlib-version) \
- $(ibidir)/bzip2-$(bzip2-version) \
- $(ibidir)/unzip-$(unzip-version)
+ $(ibidir)/bzip2-$(bzip2-version)
# Since all later programs depend on Tar, the configuration will hit
# a bottleneck here: only making Tar. So its more efficient to built
@@ -629,7 +654,7 @@ $(ibidir)/perl-$(perl-version): $(ibidir)/patchelf-$(patchelf-version)
-Dcccdlflags='-fPIC' \
$(perl-conflddlflags) \
-Dldflags="$$LDFLAGS"
- make -j$(numthreads)
+ make -j$(numthreads) V=1
make install
cd ..
rm -rf perl-$(perl-version)
@@ -807,6 +832,8 @@ $(ibidir)/curl-$(curl-version): $(ibidir)/coreutils-$(coreutils-version)
--without-librtmp \
--without-libidn2 \
--without-wolfssl \
+ --without-nghttp2 \
+ --without-nghttp3 \
--without-brotli \
--without-gnutls \
--without-cyassl \
@@ -814,6 +841,7 @@ $(ibidir)/curl-$(curl-version): $(ibidir)/coreutils-$(coreutils-version)
--without-axtls \
--disable-ldaps \
--disable-ldap \
+ --without-zstd \
--without-nss, V=1)
if [ -f $(ibdir)/patchelf ]; then
@@ -875,6 +903,12 @@ $(ibidir)/wget-$(wget-version): \
# process of the higher-level programs and libraries. Note that during the
# building of those higher-level programs (after this Makefile finishes),
# there is no access to the system's PATH.
+$(ibidir)/bison-$(bison-version): $(ibidir)/help2man-$(help2man-version)
+ tarball=bison-$(bison-version).tar.lz
+ $(call import-source, $(bison-url), $(bison-checksum))
+ $(call gbuild, bison-$(bison-version), static, ,V=1 -j$(numthreads))
+ echo "GNU Bison $(bison-version)" > $@
+
$(ibidir)/diffutils-$(diffutils-version): \
$(ibidir)/coreutils-$(coreutils-version)
tarball=diffutils-$(diffutils-version).tar.lz
@@ -928,6 +962,13 @@ $(ibidir)/gawk-$(gawk-version): \
# Build final target.
echo "GNU AWK $(gawk-version)" > $@
+$(ibidir)/help2man-$(help2man-version): \
+ $(ibidir)/coreutils-$(coreutils-version)
+ tarball=help2man-$(help2man-version).tar.lz
+ $(call import-source, $(help2man-url), $(help2man-checksum))
+ $(call gbuild, help2man-$(help2man-version), static, ,V=1)
+ echo "Help2man $(Help2man-version)" > $@
+
$(ibidir)/libiconv-$(libiconv-version): \
$(ibidir)/pkg-config-$(pkgconfig-version)
tarball=libiconv-$(libiconv-version).tar.lz
@@ -1070,6 +1111,17 @@ $(ibidir)/sed-$(sed-version): $(ibidir)/coreutils-$(coreutils-version)
$(ibidir)/texinfo-$(texinfo-version): \
$(ibidir)/perl-$(perl-version) \
$(ibidir)/gettext-$(gettext-version)
+
+# Setting for the XS sub-package. "This is because in theory, the XS
+# module could be built with a different compiler to the rest of the
+# project, needing completely different flags" (part of [1])
+#
+# [1] https://lists.gnu.org/archive/html/bug-texinfo/2022-08/msg00068.html
+ export PERL="$(ibdir)/perl"
+ export PERL_EXT_LDFLAGS="-L$(ildir)"
+ export PERL_EXT_CPPFLAGS="-I$(iidir)"
+
+# Basic build commands.
tarball=texinfo-$(texinfo-version).tar.lz
$(call import-source, $(texinfo-url), $(texinfo-checksum))
$(call gbuild, texinfo-$(texinfo-version), static)
@@ -1136,6 +1188,7 @@ $(ibidir)/binutils-$(binutils-version): \
$(ibidir)/gawk-$(gawk-version) \
$(ibidir)/grep-$(grep-version) \
$(ibidir)/wget-$(wget-version) \
+ $(ibidir)/bison-$(bison-version) \
$(ibidir)/which-$(which-version) \
$(ibidir)/libtool-$(libtool-version) \
$(ibidir)/texinfo-$(texinfo-version) \
@@ -1164,7 +1217,7 @@ $(ibidir)/binutils-$(binutils-version): \
# Build binutils with the standard 'gbuild' function.
$(call gbuild, binutils-$(binutils-version), static, \
--with-lib-path=$(sys_library_path), \
- -j$(numthreads) )
+ -j$(numthreads) V=1)
# The 'ld' linker of Binutils needs several '*crt*.o' files from
# the host's GNU C Library to run. On some systems these object
@@ -1287,20 +1340,35 @@ $(ibidir)/gcc-$(gcc-version): $(ibidir)/binutils-$(binutils-version)
current_dir=$$(pwd)
# By default 'ddir' (where GCC is decompressed and built) is in the
-# RAM (on systems that support '/dev/shm'). This is done to avoid
-# building so many small/temporary files and possibly harming the
-# hard-drive or SSD. But if the RAM doesn't have enough space, we
-# should use the hard-drive or SSD. During its build GCC's build
-# directory will become about 7GB (multiple of 1024 bytes, for GCC
-# 11.2.0). So at this step, we are making sure we have more than
-# 7.5GiB (multiple of 1000 bytes, which corresponds to 7.32GB)
-# before GCC starts to build. Note that the 4th column of 'df' is
-# the "available" space at the time of running, not the full
-# space. So the background RAM that the OS will be using during
-# Maneage is accounted for. Also consider that GCC is built alone
-# (no other Maneage software is built at the same time as GCC).
- in_ram=$$(df $(ddir) \
- | awk 'NR==2{print ($$4>7500000) ? "yes" : "no"}'); \
+# RAM (on systems that support a '/dev/shm' RAM disk). This is done
+# to avoid building so many small/temporary files and possibly
+# harming the hard-drive or SSD. But if the RAM doesn't have enough
+# space, we should use the hard-drive or SSD. During its build,
+# GCC's build directory will become about 7GiB (in units of 1024^3
+# bytes, for GCC 12.1.0, which corresponds to 7.5GB, in units of
+# 1000^3 bytes). So at this step, we make sure that we have more
+# than 12GiB before GCC starts to build. See the figure in the link
+# below for GCC's RAM consumption as a function of time:
+#
+# https://savannah.nongnu.org/task/?16244#comment12
+#
+# For POSIX portability and longevity (default sizes might change),
+# we use the '-P' option, and we use the environment variable
+# POSIXLY_CORRECT=1, so the 'block size' is 512 bytes. We'll also
+# allow for about ~0.5 GB at the start.
+#
+# So we need 8 GiB * 1024^3 (B/GiB) / 512 blocks/B = 16777216
+# blocks, in blocks of 512 bytes.
+#
+# The 4th column of 'df' is the "available" space at the time of
+# running, not the full space. So the 'RAM disk' that the OS
+# will be using as "pretend" disk space (e.g. using 'tmpfs'; this
+# is physically RAM, but appears as if it is disk space)
+# during this stage of Maneage is accounted for. GCC is built
+# alone - no other Maneage software is built at the same time as
+# GCC - so this amount of RAM should be enough.
+ in_ram=$$(POSIXLY_CORRECT=1 df -P $(ddir) \
+ | awk 'NR==2{print ($$4>16777216) ? "yes" : "no"}'); \
if [ $$in_ram = "yes" ]; then odir=$(ddir)
else
odir=$(BDIR)/software/build-tmp-gcc-due-to-lack-of-space
@@ -1308,9 +1376,11 @@ $(ibidir)/gcc-$(gcc-version): $(ibidir)/binutils-$(binutils-version)
mkdir $$odir
fi
-# Go into the proper directory, unpack GCC and prepare the 'build'
-# directory inside it for all the built files.
+# Go into the directory to uncompress GCC.
cd $$odir
+
+# Unpack GCC and prepare the 'build' directory inside it for all
+# the built files.
rm -rf gcc-$(gcc-version)
tar -xf $(tdir)/$$tarball
if [ $$odir != $(ddir) ]; then
@@ -1318,6 +1388,34 @@ $(ibidir)/gcc-$(gcc-version): $(ibidir)/binutils-$(binutils-version)
fi
cd gcc-$(gcc-version)
+# Unfortunately binutils installs headers like 'ansidecl.h' that
+# have been seen to conflict with GCC's internal versions of those
+# headers. For example in the 'ansidecl.h' of Binutils 2.39, the
+# 'PTR' macro isn't defined, while the same file in GCC 12.1.0 has
+# defined it. Therefore, without this change, GCC will include the
+# file installed from Binutils, not find what it needs and crash!
+# Therefore, with the 'CPPFLAGS' modification below, we tell GCC to
+# first look into its own 'include' directory before anything else.
+ export CPPFLAGS="-I$$(pwd)/include $(CPPFLAGS)"
+
+# In the GNU C Library 2.36 (which is more recent than GCC 12.1.0),
+# the 'linux/mount.h' (loaded by 'linux/fs.h', which is loaded by
+# 'libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp'
+# in GCC) conflicts with 'sys/mount.h' which is directly loaded by
+# the same file! This is a known conflict in glibc 2.36 (see
+# [1]). As described in [1], one solution is the final job done in
+# [2]. We therefore do this process here: 1) Not loading
+# 'linux/fs.h', and adding the necessary macros directly.
+#
+# [1] https://sourceware.org/glibc/wiki/Release/2.36#Usage_of_.3Clinux.2Fmount.h.3E_and_.3Csys.2Fmount.h.3E
+# [2] https://reviews.llvm.org/D129471
+ sed -e's|\#include <linux/fs.h>||' \
+ -e"s|FS_IOC_GETFLAGS;|_IOR('f', 1, long);|" \
+ -e"s|FS_IOC_GETVERSION;|_IOR('v', 1, long);|" \
+ -e"s|FS_IOC_SETFLAGS;|_IOW('f', 2, long);|" \
+ -e"s|FS_IOC_SETVERSION;|_IOW('v', 2, long);|" \
+ -i libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cpp
+
# Set the build directory for the processing.
mkdir build
cd build
@@ -1396,6 +1494,25 @@ $(ibidir)/gcc-$(gcc-version): $(ibidir)/binutils-$(binutils-version)
+# Software that need re-compilation (to use our own libraries)
+$(ibidir)/lzip-$(lzip-version): $(ibidir)/gcc-$(gcc-version)
+ tarball=lzip-$(lzip-version).tar
+ unpackdir=lzip-$(lzip-version)
+ cd $(ddir)
+ rm -rf $$unpackdir
+ tar -xf $(tdir)/$$tarball
+ cd $$unpackdir
+ ./configure --build --check --installdir="$(ibdir)"
+ if [ -f $(ibdir)/patchelf ]; then
+ $(ibdir)/patchelf --set-rpath $(ildir) $(ibdir)/lzip;
+ fi
+ cd ..
+ rm -rf $$unpackdir
+ echo "Lzip $(lzip-version)" > $@
+
+
+
+
@@ -1418,7 +1535,7 @@ $(ibidir)/gcc-$(gcc-version): $(ibidir)/binutils-$(binutils-version)
# nano (and use their own optional high-level text editor). To do this, you
# can just have to manually remove 'nano' from 'targets-proglib' above and
# add their optional text editor in 'TARGETS.conf'.
-$(ibidir)/nano-$(nano-version): $(ibidir)/gcc-$(gcc-version)
+$(ibidir)/nano-$(nano-version): $(ibidir)/lzip-$(lzip-version)
tarball=nano-$(nano-version).tar.lz
$(call import-source, $(nano-url), $(nano-checksum))
$(call gbuild, nano-$(nano-version), static)
diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk
index 966ea9b..a2474af 100644
--- a/reproduce/software/make/high-level.mk
+++ b/reproduce/software/make/high-level.mk
@@ -49,6 +49,7 @@ ddir = $(BDIR)/software/build-tmp
idir = $(BDIR)/software/installed
ibdir = $(BDIR)/software/installed/bin
ildir = $(BDIR)/software/installed/lib
+iidir = $(BDIR)/software/installed/include
ibidir = $(BDIR)/software/installed/version-info/proglib
# Basic directories (specific to this Makefile).
@@ -147,7 +148,6 @@ export SHELL := $(ibdir)/bash
.SHELLFLAGS := --noprofile --norc -ec
export LDFLAGS := $(rpath_command) -L$(ildir)
export PKG_CONFIG_LIBDIR := $(ildir)/pkgconfig
-export CPPFLAGS := -I$(idir)/include -Wno-nullability-completeness
export PKG_CONFIG_PATH := $(ildir)/pkgconfig:$(idir)/share/pkgconfig
# Disable built-in rules (which are not needed here!)
@@ -160,6 +160,13 @@ export F77 := $(ibdir)/gfortran
export LD_RUN_PATH := $(ildir):$(il64dir)
export LD_LIBRARY_PATH := $(ildir):$(il64dir)
+# See description of '-Wno-nullability-completeness' in
+# 'reproduce/software/shell/configure.sh'.
+ifeq ($(on_mac_os),yes)
+ noccwarnings=-Wno-nullability-completeness
+endif
+export CPPFLAGS := -I$(idir)/include $(noccwarnings)
+
# In macOS, if a directory exists in both 'C_INCLUDE_PATH' and 'CPPFLAGS'
# it will be ignored in 'CPPFLAGS' (which has higher precedence). So, we
# should not define 'C_INCLUDE_PATH' on macOS. This happened with clang
@@ -429,6 +436,7 @@ $(ibidir)/cfitsio-$(cfitsio-version):
echo "CFITSIO $(cfitsio-version)" > $@
$(ibidir)/cairo-$(cairo-version): \
+ $(ibidir)/libxt-$(libxt-version) \
$(ibidir)/pixman-$(pixman-version) \
$(ibidir)/libpng-$(libpng-version) \
$(ibidir)/freetype-$(freetype-version)
@@ -448,7 +456,8 @@ $(ibidir)/eigen-$(eigen-version):
topdir=$(pwd); cd $(ddir); tar -xf $(tdir)/$$tarball
cd eigen-$(eigen-version)
if ! [ -d $(iidir)/eigen3 ]; then mkdir $(iidir)/eigen3; fi
- cp -r Eigen/* $(iidir)/eigen3/
+ cp -r Eigen/* $(iidir)/eigen3/ # Some expect 'eigen3'.
+ ln -s $(iidir)/eigen3 $(iidir)/Eigen # Others expect 'Eigen'.
cd $$topdir
rm -rf $(ddir)/eigen-$(eigen-version)
echo "Eigen $(eigen-version)" > $@
@@ -529,7 +538,7 @@ $(ibidir)/gsl-$(gsl-version):
$(ibidir)/hdf5-$(hdf5-version): $(ibidir)/openmpi-$(openmpi-version)
export CC=mpicc
export FC=mpif90
- tarball=hdf5-$(hdf5-version).tar.gz
+ tarball=hdf5-$(hdf5-version).tar.lz
$(call import-source, $(hdf5-url), $(hdf5-checksum))
$(call gbuild, hdf5-$(hdf5-version), static, \
--enable-parallel \
@@ -919,8 +928,8 @@ $(ibidir)/wcslib-$(wcslib-version): $(ibidir)/cfitsio-$(cfitsio-version)
--with-cfitsioinc=$(idir)/include \
--without-pgplot $$fortranopt)
if [ x$(on_mac_os) = xyes ]; then
- install_name_tool -id $(ildir)/libwcs.7.7.dylib \
- $(ildir)/libwcs.7.7.dylib
+ install_name_tool -id $(ildir)/libwcs.7.11.dylib \
+ $(ildir)/libwcs.7.11.dylib
fi
echo "WCSLIB $(wcslib-version)" > $@
@@ -938,15 +947,44 @@ $(ibidir)/wcslib-$(wcslib-version): $(ibidir)/cfitsio-$(cfitsio-version)
#
# Astrometry-net contains a lot of programs. We need to specify the
# installation directory and the Python executable (by default it will look
-# for /usr/bin/python)
+# for /usr/bin/python).
+#
+# An optional dependency is 'netpbm' but it has many dependencies and a
+# crazy build system. So, it is not in the default preprequisites. If you
+# need it you can add it as a prerequisite and pray that it will work.
+#
+# A consequence of not having 'netpbm' is that for obtaining the
+# astrometric solution of one image using 'solve-field', it is necessary to
+# build a catalog of sources with image coordinates and flux (x,y,flux) in
+# advance. The catalog has to be sorted by flux. Finally, when invoking
+# 'solve-field', the width and heigh of the original image have to be
+# provided.
+#
+# More explicitly, raw basic steps using Gnuastro:
+#
+# - Obtain a catalog with image coordinates and flux (x,y,brightness):
+# $ astnoisechisel img.fits -o det.fits
+# $ astsegment det.fits -o seg.fits
+# $ astmkcatalog seg.fits --clumpscat --x --y --brightness -o cat-raw.fits
+#
+# - Sort by flux:
+# $ asttable cat-raw.fits --hdu 2 --sort brightness --descending \
+# --output cat.fits
+#
+# - Get the x-size and y-size from the header:
+# $ xsize=$(astfits img.fits --keyvalue NAXIS1 --quiet)
+# $ ysize=$(astfits img.fits --keyvalue NAXIS2 --quiet)
+#
+# - Run 'solve-field' to obtain the astrometric solution:
+# $ solve-field cat.fits --width $xsize --height $ysize [--other-parameters]
$(ibidir)/astrometrynet-$(astrometrynet-version): \
$(ibidir)/gsl-$(gsl-version) \
$(ibidir)/swig-$(swig-version) \
$(ipydir)/numpy-$(numpy-version) \
$(ibidir)/cairo-$(cairo-version) \
$(ibidir)/libpng-$(libpng-version) \
- $(ibidir)/netpbm-$(netpbm-version) \
$(ibidir)/wcslib-$(wcslib-version) \
+ $(ipydir)/astropy-$(astropy-version) \
$(ibidir)/cfitsio-$(cfitsio-version) \
$(ibidir)/libjpeg-$(libjpeg-version)
@@ -986,12 +1024,6 @@ $(ibidir)/automake-$(automake-version): $(ibidir)/autoconf-$(autoconf-version)
$(call gbuild, automake-$(automake-version), static, ,V=1)
echo "GNU Automake $(automake-version)" > $@
-$(ibidir)/bison-$(bison-version): $(ibidir)/help2man-$(help2man-version)
- tarball=bison-$(bison-version).tar.lz
- $(call import-source, $(bison-url), $(bison-checksum))
- $(call gbuild, bison-$(bison-version), static, ,V=1 -j$(numthreads))
- echo "GNU Bison $(bison-version)" > $@
-
# cdsclient is a set of software written in c to interact with astronomical
# database servers. It is a dependency of 'scamp' to be able to download
# reference catalogues.
@@ -1048,7 +1080,11 @@ $(ibidir)/cmake-$(cmake-version):
$(ibidir)/flex-$(flex-version): $(ibidir)/bison-$(bison-version)
tarball=flex-$(flex-version).tar.lz
$(call import-source, $(flex-url), $(flex-checksum))
- $(call gbuild, flex-$(flex-version), static, ,V=1 -j$(numthreads))
+ $(call gbuild, flex-$(flex-version), static, \
+ --with-libiconv-prefix=$(idir) \
+ --with-libintl-prefix=$(idir) \
+ --disable-dependency-tracking, \
+ V=1 -j$(numthreads))
echo "Flex $(flex-version)" > $@
$(ibidir)/gdb-$(gdb-version): $(ibidir)/python-$(python-version)
@@ -1127,13 +1163,7 @@ $(ibidir)/gnuastro-$(gnuastro-version): \
$(call gbuild, gnuastro-$(gnuastro-version), static, , \
-j$(numthreads))
cp $(dtexdir)/gnuastro.tex $(ictdir)/
- echo "GNU Astronomy Utilities $(gnuastro-version) \citep{gnuastro}" > $@
-
-$(ibidir)/help2man-$(help2man-version):
- tarball=help2man-$(help2man-version).tar.lz
- $(call import-source, $(help2man-url), $(help2man-checksum))
- $(call gbuild, help2man-$(help2man-version), static, ,V=1)
- echo "Help2man $(Help2man-version)" > $@
+ echo "GNU Astronomy Utilities $(gnuastro-version) \citep{gnuastro,akhlaghi19}" > $@
$(ibidir)/icu-$(icu-version): $(ibidir)/python-$(python-version)
@@ -1167,8 +1197,25 @@ $(ibidir)/imagemagick-$(imagemagick-version): \
tarball=ImageMagick-$(imagemagick-version).tar.lz
$(call import-source, $(imagemagick-url), $(imagemagick-checksum))
$(call gbuild, ImageMagick-$(imagemagick-version), static, \
- --with-gslib --without-x --disable-openmp, \
+ --without-x \
+ --with-gslib \
+ --disable-openmp \
+ --with-libstdc=$(ildir), \
V=1 -j$(numthreads))
+
+# On macOS, an executable and several libraries are not properly
+# linked with the Ghostscript library (libgs), so we need to fix it
+# manually.
+ if [ x$(on_mac_os) = xyes ]; then
+ gsversion=$$(echo $(ghostscript-version) \
+ | awk -F'.' '{print $$1"."$$2}')
+ libMagicks=$$(ls -l $(ildir)/libMagick*.dylib \
+ | awk '/^-/{print $$NF}')
+ libMagicks_all="$(ibdir)/magick $$libMagicks"
+ for f in $$libMagicks_all; do \
+ install_name_tool -change libgs.dylib.$$gsversion \
+ $(ildir)/libgs.dylib.$$gsversion $$f; done
+ fi
echo "ImageMagick $(imagemagick-version)" > $@
# 'imfit' doesn't use the traditional 'configure' and 'make' to install
@@ -1280,12 +1327,12 @@ $(ibidir)/missfits-$(missfits-version):
cp $(dtexdir)/missfits.tex $(ictdir)/
echo "MissFITS $(missfits-version) \citep{missfits}" > $@
-# Netpbm is a prerequisite of Astrometry-net, it contains a lot of programs.
-# This program has a crazy dialogue installation which is override using the
-# printf statment. Each '\n' is a new question that the installation process
-# ask to the user. We give all answers with a pipe to the scripts (configure
-# and install). The questions are different depending on the system (tested
-# on GNU/Linux and Mac OS).
+# Netpbm is an optional prerequisite of Astrometry-net, it contains a lot
+# of programs. This program has a crazy dialogue installation which is
+# override using the printf statment. Each '\n' is a new question that the
+# installation process ask to the user. We give all answers with a pipe to
+# the scripts (configure and install). The questions are different
+# depending on the system (tested on GNU/Linux and Mac OS).
$(ibidir)/netpbm-$(netpbm-version): \
$(ibidir)/flex-$(flex-version) \
$(ibidir)/libpng-$(libpng-version) \
@@ -1351,15 +1398,43 @@ $(ibidir)/pcre-$(pcre-version):
, V=1 -j$(numthreads))
echo "Perl Compatible Regular Expressions $(pcre-version)" > $@
-# 2022-01-01 The rules for building R - identified as r-cran to avoid the
-# difficulties in searching text for a one-letter string - were shifted to
-# 'r-cran.mk'.
+# On macOS 12.3 Monterey with AppleClang 13.1.6.13160021, Plplot 5.15.0
+# needs the 'finite' function of 'math.h' which has been deprecated in
+# macOS. By manually adding "#define finite isfinite" in 'math.h' like
+# below, we fixed this problem but still it can't find 'exit' during the
+# configuration phase so we stopped trying to port it to macOS. It means
+# that on macOS Plplot is not available. For other OSs it should be fine.
+# On macOS, the file 'tmath.h' can be found with 'xcrun --show-sdk-path'.
+#
+# cp /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/math.h \
+# $(iidir)/math.h
+# awk '{if($$0 ~ /#define isinf\(x\)/) {print "#define finite isfinite"; print $$0} else print $$0 }' \
+# $(iidir)/math.h > $(iidir)/math-tmp.h
+# mv $(iidir)/math-tmp.h $(iidir)/math.h
+$(ibidir)/plplot-$(plplot-version): \
+ $(ibidir)/cairo-$(cairo-version) \
+ $(ibidir)/freetype-$(freetype-version)
+ tarball=plplot-$(plplot-version).tar.lz
+ $(call import-source, $(plplot-url), $(plplot-checksum))
+ $(call cbuild, plplot-$(plplot-version), static, \
+ -DDEFAULT_NO_BINDINGS:BOOL=ON \
+ -DENABLE_cxx:BOOL=ON \
+ -DENABLE_fortran:BOOL=ON \
+ -DDEFAULT_NO_QT_DEVICES:BOOL=ON)
+ echo "PLplot $(pcre-version)" > $@
# SCAMP documentation says ATLAS is a mandatory prerequisite for using
# SCAMP. We have ATLAS into the project but there are some problems with the
# libraries that are not yet solved. However, we tried to install it with
# the option --enable-openblas and it worked (same issue happened with
# 'sextractor'.
+#
+# Plplot in SCAMP cannot be built for macOS. See comments on top of Plplot.
+# But if you are not using macOS and want to enable plots, follow the
+# steps below:
+#
+# 1. Add '$(ibidir)/plplot-$(plplot-version)' to the prerequisites
+# 2. Remove the option '--enable-plplot=no' from the call of 'gbuild'
$(ibidir)/scamp-$(scamp-version): \
$(ibidir)/fftw-$(fftw-version) \
$(ibidir)/openblas-$(openblas-version) \
@@ -1429,32 +1504,56 @@ $(ibidir)/scons-$(scons-version): $(ibidir)/python-$(python-version)
echo "SCons $(scons-version)" > $@
# Sextractor crashes complaining about not linking with some ATLAS
-# libraries. But we can override this issue since we have Openblas
+# libraries. But we can override this issue since we have OpenBLAS
# installed, it is just necessary to explicity tell sextractor to use it in
# the configuration step.
-#
-# The '-fcommon' is a necessary C compilation flag for GCC 10 and above. It
-# is necessary for astromatic libraries, otherwise their build will crash.
$(ibidir)/sextractor-$(sextractor-version): \
$(ibidir)/fftw-$(fftw-version) \
$(ibidir)/openblas-$(openblas-version)
+# Import the source.
tarball=sextractor-$(sextractor-version).tar.lz
$(call import-source, $(sextractor-url), $(sextractor-checksum))
+# Unpack the tarball and enter the directory.
+ unpackdir=sextractor-$(sextractor-version)
+ cd $(ddir)
+ rm -rf $$unpackdir
+ tar -xf $(tdir)/$$tarball
+ cd $$unpackdir
+
# See comment above 'missfits' for '-fcommon'.
- $(call gbuild, sextractor-$(sextractor-version), static, \
- CFLAGS="-fcommon" \
- --enable-threads \
- --enable-openblas \
- --with-openblas-libdir=$(ildir) \
- --with-openblas-incdir=$(idir)/include)
+ ./configure --prefix="$(idir)" \
+ CFLAGS="-fcommon" \
+ --enable-threads \
+ --enable-openblas \
+ --libdir=$(ildir) \
+ --includedir=$(iidir) \
+ --with-openblas-libdir=$(ildir) \
+ --with-openblas-incdir=$(iidir)
+
+# On macOS we need to manually change 'finite' to 'isfinite' in the
+# header file 'src/levmar/compiler.h'. Until this problem is
+# hopefully fixed in next releases, we are doing it manually using
+# 'sed'. Consequently we are not installing it using 'gbuild'. Once
+# this is fixed upstream, we can use the standard 'gbuild'.
+ sed -i -e's|define LM_FINITE finite |define LM_FINITE isfinite |' \
+ src/levmar/compiler.h
+
+# Build, install and delete the temporary files.
+ make V=1
+ make install
+ cd ..
+ rm -rf $$unpackdir
+
+# Make links for other possibly used names, copy citation and build
+# the final target.
ln -fs $(ibdir)/sex $(ibdir)/sextractor
ln -fs $(ibdir)/sex $(ibdir)/source-extractor
cp $(dtexdir)/sextractor.tex $(ictdir)/
echo "SExtractor $(sextractor-version) \citep{sextractor}" > $@
$(ibidir)/swarp-$(swarp-version): $(ibidir)/fftw-$(fftw-version)
- tarball=swarp-$(swarp-version).tar.gz
+ tarball=swarp-$(swarp-version).tar.lz
$(call import-source, $(swarp-url), $(swarp-checksum))
# See comment above 'missfits' for '-fcommon'.
@@ -1519,6 +1618,29 @@ $(ibidir)/util-linux-$(util-linux-version): | $(idircustom)
cd $(ddir)
tar -xf $(tdir)/$$tarball
cd util-linux-$(util-linux-version)
+
+# If a patch exists for the current version, apply it.
+ if [ -f $(patchdir)/util-linux-$(util-linux-version)-macos.patch ]; then
+ cp $(patchdir)/util-linux-$(util-linux-version)-macos.patch \
+ util-linux-$(util-linux-version)-macos.patch
+ git apply util-linux-$(util-linux-version)-macos.patch
+ fi
+
+# The 'mkswap' feature needs low-level file system and kernel headers
+# that are not always available (in particular on older Linux
+# kernels). Also, creating SWAP space will need root permissions, so
+# its not something a Maneager may need! Unfortunately there is no
+# configuration option to disable this so we'll have to disable it
+# manually by commenting the relevant files in the
+# 'configure.ac'. Having a more recent 'configure.ac' will trigger
+# the './configure' script to be re-created after the first run, but
+# it is pretty fast and not a problem.
+ sed -e's|UL_BUILD_INIT(\[mkswap\], \[yes\])|UL_BUILD_INIT(\[mkswap\], \[no\])|' \
+ -i configure.ac
+
+
+# Configure Util-linux
+ export CONFIG_SHELL=$(ibdir)/bash
./configure --prefix=$(idircustom)/util-linux \
--disable-dependency-tracking \
--enable-libmount-support-mtab \
@@ -1592,12 +1714,12 @@ $(ibidir)/xlsxio-$(xlsxio-version): \
# useful in projects during its development, for more see the comment above
# GNU Emacs.
$(ibidir)/vim-$(vim-version):
- tarball=vim-$(vim-version).tar.bz2
+ tarball=vim-$(vim-version).tar.lz
$(call import-source, $(vim-url), $(vim-checksum))
cd $(ddir)
tar -xf $(tdir)/$$tarball
- n=$$(echo $(vim-version) | sed -e's|\.||')
- cd $(ddir)/vim$$n
+ unpackdir=vim-$(vim-version)
+ cd $(ddir)/$$unpackdir
./configure --prefix=$(idir) \
--disable-canberra \
--enable-multibyte \
@@ -1610,9 +1732,29 @@ $(ibidir)/vim-$(vim-version):
make -j$(numthreads)
make install
cd ..
- rm -rf vim$$n
+ rm -rf $$unpackdir
echo "VIM $(vim-version)" > $@
+$(ibidir)/unzip-$(unzip-version): $(ibidir)/gzip-$(gzip-version)
+ tarball=unzip-$(unzip-version).tar.lz
+ $(call import-source, $(unzip-url), $(unzip-checksum))
+ $(call gbuild, unzip-$(unzip-version), static,, \
+ -f unix/Makefile generic \
+ CFLAGS="-DBIG_MEM -DMMAP",,pwd, \
+ -f unix/Makefile generic \
+ BINDIR=$(ibdir) MANDIR=$(idir)/man/man1 )
+ echo "Unzip $(unzip-version)" > $@
+
+$(ibidir)/zip-$(zip-version): $(ibidir)/gzip-$(gzip-version)
+ tarball=zip-$(zip-version).tar.lz
+ $(call import-source, $(zip-url), $(zip-checksum))
+ $(call gbuild, zip-$(zip-version), static,, \
+ -f unix/Makefile generic \
+ CFLAGS="-DBIG_MEM -DMMAP",,pwd, \
+ -f unix/Makefile generic \
+ BINDIR=$(ibdir) MANDIR=$(idir)/man/man1 )
+ echo "Zip $(zip-version)" > $@
+
diff --git a/reproduce/software/make/python.mk b/reproduce/software/make/python.mk
index 6766744..546195b 100644
--- a/reproduce/software/make/python.mk
+++ b/reproduce/software/make/python.mk
@@ -172,8 +172,10 @@ $(ipydir)/astroquery-$(astroquery-version): \
$(call pybuild, tar -xf, astroquery-$(astroquery-version), , \
Astroquery $(astroquery-version))
+# The optional dependency 'h5py' that is necessary for writting tables in
+# HDF5 format has been removed from Astropy because on macOS it cannot be
+# installed.
$(ipydir)/astropy-$(astropy-version): \
- $(ipydir)/h5py-$(h5py-version) \
$(ibidir)/expat-$(expat-version) \
$(ipydir)/scipy-$(scipy-version) \
$(ipydir)/numpy-$(numpy-version) \
@@ -400,7 +402,9 @@ $(ipydir)/lmfit-$(lmfit-version): \
LMFIT $(lmfit-version))
$(ipydir)/lsstdesccoord-$(lsstdesccoord-version): \
- $(ipydir)/cython-$(cython-version)
+ $(ipydir)/cffi-$(cffi-version) \
+ $(ipydir)/numpy-$(numpy-version) \
+ $(ipydir)/future-$(future-version)
tarball=lsstdesccoord-$(lsstdesccoord-version).tar.gz
$(call import-source, $(lsstdesccoord-url), $(lsstdesccoord-checksum))
$(call pybuild, tar -xf, LSSTDESC.Coord-$(lsstdesccoord-version), , \
@@ -455,7 +459,6 @@ $(ipydir)/mpmath-$(mpmath-version): $(ipydir)/setuptools-$(setuptools-version)
mpmath $(mpmath-version))
$(ipydir)/numpy-$(numpy-version): \
- $(ibidir)/unzip-$(unzip-version) \
$(ipydir)/cython-$(cython-version) \
$(ibidir)/openblas-$(openblas-version) \
$(ipydir)/setuptools-$(setuptools-version)
@@ -471,7 +474,7 @@ $(ipydir)/numpy-$(numpy-version): \
$(call pybuild, tar -xf, numpy-$(numpy-version),$$conf, \
Numpy $(numpy-version))
cp $(dtexdir)/numpy.tex $(ictdir)/
- echo "Numpy $(numpy-version) \citep{numpy2011}" > $@
+ echo "Numpy $(numpy-version) \citep{numpy2020}" > $@
$(ipydir)/packaging-$(packaging-version): \
$(ipydir)/pyparsing-$(pyparsing-version)
@@ -594,9 +597,12 @@ $(ipydir)/requests-$(requests-version): $(ipydir)/idna-$(idna-version) \
$(call pybuild, tar -xf, requests-$(requests-version), , \
Requests $(requests-version))
+# 'pythran' is disabled in the build of Scipy because of complications it
+# caused on some systems. It is explicitly disabled using the environmental
+# variable. If for some reason it is needed, set the environment variable
+# to 1, and add it as a prerequisite of 'scipy'.
$(ipydir)/scipy-$(scipy-version): \
$(ipydir)/numpy-$(numpy-version) \
- $(ipydir)/pythran-$(pythran-version) \
$(ipydir)/pybind11-$(pybind11-version)
tarball=scipy-$(scipy-version).tar.lz
$(call import-source, $(scipy-url), $(scipy-checksum))
@@ -605,10 +611,11 @@ $(ipydir)/scipy-$(scipy-version): \
else
export LDFLAGS="$(LDFLAGS) -shared"
fi
+ export SCIPY_USE_PYTHRAN=0
conf="$$(pwd)/reproduce/software/config/numpy-scipy.cfg"
$(call pybuild, tar -xf, scipy-$(scipy-version),$$conf)
cp $(dtexdir)/scipy.tex $(ictdir)/
- echo "Scipy $(scipy-version) \citep{scipy2007,scipy2011}" > $@
+ echo "Scipy $(scipy-version) \citep{scipy2020}" > $@
$(ipydir)/secretstorage-$(secretstorage-version): \
$(ipydir)/jeepney-$(jeepney-version) \
@@ -619,7 +626,6 @@ $(ipydir)/secretstorage-$(secretstorage-version): \
SecretStorage $(secretstorage-version))
$(ipydir)/setuptools-$(setuptools-version): \
- $(ibidir)/unzip-$(unzip-version) \
$(ibidir)/python-$(python-version)
tarball=setuptools-$(setuptools-version).tar.lz
$(call import-source, $(setuptools-url), $(setuptools-checksum))
diff --git a/reproduce/software/patches/README.xz-5.2.5_src_liblzma_liblzma.map b/reproduce/software/patches/README.xz-5.2.5_src_liblzma_liblzma.map
new file mode 100644
index 0000000..15e2787
--- /dev/null
+++ b/reproduce/software/patches/README.xz-5.2.5_src_liblzma_liblzma.map
@@ -0,0 +1,8 @@
+2022-07-14 B Roukema
+xz-5.2.5_src_liblzma_liblzma.map is a patched version of xz-5.2.5/src/liblzma/liblzma.map
+based on discussion at https://savannah.nongnu.org/bugs/index.php?62700
+and https://github.com/easybuilders/easybuild-easyconfigs/issues/14991 and
+https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/bcebb3320ffb63f9804ca8d4d64d1822ec7c9792/easybuild/easyconfigs/x/XZ/XZ-5.2.5_compat-libs.patch
+
+Since we don't yet have 'patch' in 'basic.mk', this file has to be copied
+into place rather than patched.
diff --git a/reproduce/software/patches/util-linux-2.38.1-macos.patch b/reproduce/software/patches/util-linux-2.38.1-macos.patch
new file mode 100644
index 0000000..d89422d
--- /dev/null
+++ b/reproduce/software/patches/util-linux-2.38.1-macos.patch
@@ -0,0 +1,114 @@
+From 3671d4a878fb58aa953810ecf9af41809317294f Mon Sep 17 00:00:00 2001
+From: Karel Zak <kzak@redhat.com>
+Date: Mon, 4 Apr 2022 13:17:44 +0200
+Subject: [PATCH] build-sys: improve dependences for lib/procfs.c
+
+* add #ifdefs when use statfs() and include statfs.h or vfs.h
+
+Addresses: https://github.com/util-linux/util-linux/issues/1634
+Signed-off-by: Karel Zak <kzak@redhat.com>
+---
+ configure.ac | 2 ++
+ include/statfs_magic.h | 4 +++-
+ lib/procfs.c | 15 +++++++++++++--
+ misc-utils/hardlink.c | 2 +-
+ 4 files changed, 19 insertions(+), 4 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 3fba95336a5b60b277d90615089093901fec723e..11c86b9a70809cbade98539b17fb2e1186984ebb 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -346,6 +346,7 @@ AC_CHECK_HEADERS([ \
+ sys/socket.h \
+ sys/sockio.h \
+ sys/stat.h \
++ sys/statfs.h \
+ sys/swap.h \
+ sys/syscall.h \
+ sys/sysmacros.h \
+@@ -355,6 +356,7 @@ AC_CHECK_HEADERS([ \
+ sys/types.h \
+ sys/ucred.h \
+ sys/un.h \
++ sys/vfs.h \
+ sys/xattr.h \
+ unistd.h \
+ utmp.h \
+diff --git a/include/statfs_magic.h b/include/statfs_magic.h
+index b6b0225e865aeb3c04610ecab177f3e95f1cc61a..67ad0af2595862795299f0bcdb7baa5778742185 100644
+--- a/include/statfs_magic.h
++++ b/include/statfs_magic.h
+@@ -1,7 +1,9 @@
+ #ifndef UTIL_LINUX_STATFS_MAGIC_H
+ #define UTIL_LINUX_STATFS_MAGIC_H
+
+-#include <sys/statfs.h>
++#ifdef HAVE_SYS_STATFS_H
++# include <sys/statfs.h>
++#endif
+
+ /*
+ * If possible then don't depend on internal libc __SWORD_TYPE type.
+diff --git a/lib/procfs.c b/lib/procfs.c
+index 4d6d25b6d78eba56aada4cd9acacee4d2e69f656..0d58857c83b378cb1cb3baf00f88f992ff8dce1e 100644
+--- a/lib/procfs.c
++++ b/lib/procfs.c
+@@ -6,9 +6,13 @@
+ */
+ #include <ctype.h>
+ #include <unistd.h>
+-#include <sys/vfs.h>
+ #include <errno.h>
+
++#ifdef HAVE_SYS_VFS_H
++# include <sys/vfs.h>
++# include "statfs_magic.h"
++#endif
++
+ #include "c.h"
+ #include "pathnames.h"
+ #include "procfs.h"
+@@ -16,7 +20,6 @@
+ #include "all-io.h"
+ #include "debug.h"
+ #include "strutils.h"
+-#include "statfs_magic.h"
+
+ static void procfs_process_deinit_path(struct path_cxt *pc);
+
+@@ -356,6 +359,7 @@ int procfs_dirent_match_name(DIR *procfs, struct dirent *d, const char *name)
+ return 0;
+ }
+
++#ifdef HAVE_SYS_VFS_H
+ /* checks if fd is file in a procfs;
+ * returns 1 if true, 0 if false or couldn't determine */
+ int fd_is_procfs(int fd)
+@@ -375,7 +379,14 @@ int fd_is_procfs(int fd)
+ } while (ret != 0);
+
+ return st.f_type == STATFS_PROC_MAGIC;
++ return 0;
+ }
++#else
++int fd_is_procfs(int fd __attribute__((__unused__)))
++{
++ return 0;
++}
++#endif
+
+ static char *strdup_procfs_file(pid_t pid, const char *name)
+ {
+diff --git a/misc-utils/hardlink.c b/misc-utils/hardlink.c
+index dd55af12aab7903e6025d0a39ea020c2400300e8..08af2882c1359e41fba37377a08c9a18647b0f9f 100644
+--- a/misc-utils/hardlink.c
++++ b/misc-utils/hardlink.c
+@@ -38,7 +38,7 @@
+ #include <ctype.h> /* tolower() */
+ #include <sys/ioctl.h>
+
+-#if defined(HAVE_LINUX_FIEMAP_H)
++#if defined(HAVE_LINUX_FIEMAP_H) && defined(HAVE_SYS_VFS_H)
+ # include <linux/fs.h>
+ # include <linux/fiemap.h>
+ # ifdef FICLONE
diff --git a/reproduce/software/patches/xz-5.2.5_src_liblzma_liblzma.map b/reproduce/software/patches/xz-5.2.5_src_liblzma_liblzma.map
new file mode 100644
index 0000000..8df17a9
--- /dev/null
+++ b/reproduce/software/patches/xz-5.2.5_src_liblzma_liblzma.map
@@ -0,0 +1,115 @@
+XZ_5.0 {
+global:
+ lzma_alone_decoder;
+ lzma_alone_encoder;
+ lzma_auto_decoder;
+ lzma_block_buffer_bound;
+ lzma_block_buffer_decode;
+ lzma_block_buffer_encode;
+ lzma_block_compressed_size;
+ lzma_block_decoder;
+ lzma_block_encoder;
+ lzma_block_header_decode;
+ lzma_block_header_encode;
+ lzma_block_header_size;
+ lzma_block_total_size;
+ lzma_block_unpadded_size;
+ lzma_check_is_supported;
+ lzma_check_size;
+ lzma_code;
+ lzma_crc32;
+ lzma_crc64;
+ lzma_easy_buffer_encode;
+ lzma_easy_decoder_memusage;
+ lzma_easy_encoder;
+ lzma_easy_encoder_memusage;
+ lzma_end;
+ lzma_filter_decoder_is_supported;
+ lzma_filter_encoder_is_supported;
+ lzma_filter_flags_decode;
+ lzma_filter_flags_encode;
+ lzma_filter_flags_size;
+ lzma_filters_copy;
+ lzma_filters_update;
+ lzma_get_check;
+ lzma_index_append;
+ lzma_index_block_count;
+ lzma_index_buffer_decode;
+ lzma_index_buffer_encode;
+ lzma_index_cat;
+ lzma_index_checks;
+ lzma_index_decoder;
+ lzma_index_dup;
+ lzma_index_encoder;
+ lzma_index_end;
+ lzma_index_file_size;
+ lzma_index_hash_append;
+ lzma_index_hash_decode;
+ lzma_index_hash_end;
+ lzma_index_hash_init;
+ lzma_index_hash_size;
+ lzma_index_init;
+ lzma_index_iter_init;
+ lzma_index_iter_locate;
+ lzma_index_iter_next;
+ lzma_index_iter_rewind;
+ lzma_index_memusage;
+ lzma_index_memused;
+ lzma_index_size;
+ lzma_index_stream_count;
+ lzma_index_stream_flags;
+ lzma_index_stream_padding;
+ lzma_index_stream_size;
+ lzma_index_total_size;
+ lzma_index_uncompressed_size;
+ lzma_lzma_preset;
+ lzma_memlimit_get;
+ lzma_memlimit_set;
+ lzma_memusage;
+ lzma_mf_is_supported;
+ lzma_mode_is_supported;
+ lzma_physmem;
+ lzma_properties_decode;
+ lzma_properties_encode;
+ lzma_properties_size;
+ lzma_raw_buffer_decode;
+ lzma_raw_buffer_encode;
+ lzma_raw_decoder;
+ lzma_raw_decoder_memusage;
+ lzma_raw_encoder;
+ lzma_raw_encoder_memusage;
+ lzma_stream_buffer_bound;
+ lzma_stream_buffer_decode;
+ lzma_stream_buffer_encode;
+ lzma_stream_decoder;
+ lzma_stream_encoder;
+ lzma_stream_flags_compare;
+ lzma_stream_footer_decode;
+ lzma_stream_footer_encode;
+ lzma_stream_header_decode;
+ lzma_stream_header_encode;
+ lzma_version_number;
+ lzma_version_string;
+ lzma_vli_decode;
+ lzma_vli_encode;
+ lzma_vli_size;
+};
+
+XZ_5.1.2alpha {
+global:
+ lzma_stream_encoder_mt;
+ lzma_stream_encoder_mt_memusage;
+} XZ_5.0;
+
+XZ_5.2.2 {
+global:
+ lzma_block_uncomp_encode;
+ lzma_cputhreads;
+ lzma_get_progress;
+
+local:
+ *;
+} XZ_5.1.2alpha;
+
+XZ_5.2 {
+} XZ_5.2.2;
diff --git a/reproduce/software/shell/bashrc.sh b/reproduce/software/shell/bashrc.sh
index 6bb871b..3e496c0 100755
--- a/reproduce/software/shell/bashrc.sh
+++ b/reproduce/software/shell/bashrc.sh
@@ -28,6 +28,11 @@
# When doing the project's analysis: all software have known
# versions.
#
+# shell
+# -----
+# When the user has activated the interactive shell (with './project
+# shell').
+#
#
# Copyright (C) 2019-2022 Mohammad Akhlaghi <mohammad@akhlaghi.org>
#
@@ -43,3 +48,48 @@
#
# You should have received a copy of the GNU General Public License
# along with this script. If not, see <http://www.gnu.org/licenses/>.
+
+
+
+
+
+# Interactive mode settings. We don't want these within the pipeline
+# because they are useless there (for example the introduction message or
+# prompt) and can un-necessarily slow down the running jobs (recall that
+# the shell is executed at the start of each recipe).
+if [ x$PROJECT_STATUS = xshell ]; then
+
+ # A small introductory message.
+ echo "----------------------------------------------------------------------"
+ echo "Welcome to the Maneage interactive shell for this project, running"
+ echo " $(sh --version | awk 'NR==1')"
+ echo
+ echo "This shell's home directory is the project's build directory:"
+ echo " HOME: $HOME"
+ echo
+ echo "This shell's startup file is in the project's source directory:"
+ echo " $PROJECT_RCFILE"
+ echo
+ echo "To return to your host shell, run the 'exit' command."
+ echo "----------------------------------------------------------------------"
+
+ # To activate colors in generic commands.
+ alias ls='ls --color=auto'
+ alias grep='grep --color=auto'
+
+ # Add the Git branch information to the command prompt only when Git is
+ # present. Also set the command-prompt color to purple for normal users
+ # and red when the root is running it.
+ if git --version &> /dev/null; then
+ parse_git_branch() {
+ git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/ (\1)/'
+ }
+ else
+ parse_git_branch() { echo &> /dev/null; }
+ fi
+ if [ x$(whoami) = xroot ]; then
+ export PS1="[\[\033[01;31m\]\u@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\]]# "
+ else
+ export PS1="[\[\033[01;35m\]maneage@\h \W\[\033[32m\]\$(parse_git_branch)\[\033[00m\]]$ "
+ fi
+fi
diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh
index b946c3b..e8cf97b 100755
--- a/reproduce/software/shell/configure.sh
+++ b/reproduce/software/shell/configure.sh
@@ -446,7 +446,9 @@ if ! [ -d $compilertestdir ]; then mkdir $compilertestdir; fi
# also harmless for our test here, so it is generally added.
testprog=$compilertestdir/test
testsource=$compilertestdir/test.c
-noccwarnings="-Wno-nullability-completeness"
+if [ x$on_mac_os = xyes ]; then
+ noccwarnings="-Wno-nullability-completeness"
+fi
echo; echo; echo "Checking host C compiler ('$CC')...";
cat > $testsource <<EOF
#include <stdio.h>
diff --git a/reproduce/software/shell/pre-make-build.sh b/reproduce/software/shell/pre-make-build.sh
index e7de93d..e4a9eb3 100755
--- a/reproduce/software/shell/pre-make-build.sh
+++ b/reproduce/software/shell/pre-make-build.sh
@@ -230,7 +230,7 @@ build_program() {
# (without compression it is just ~400Kb). So we use its '.tar' file and
# won't rely on the host's compression tools at all.
progname="lzip"
-progname_tex="Lzip"
+progname_tex="" # Lzip re-built after GCC (empty string to avoid repetition)
url=$(awk '/^'$progname'-url/{print $3}' $urlfile)
version=$(awk '/^'$progname'-version/{print $3}' "$versionsfile")
tarball=$progname-$version.tar
diff --git a/reproduce/software/shell/tarball-prepare.sh b/reproduce/software/shell/tarball-prepare.sh
index 69e6afa..94feedd 100755
--- a/reproduce/software/shell/tarball-prepare.sh
+++ b/reproduce/software/shell/tarball-prepare.sh
@@ -154,9 +154,10 @@ fi
# Process all files
for f in $allfiles; do
- # Seperate name and version number
- name=$(echo $f | sed -e 's/.tar.*//' \
- | awk 'BEGIN { FS = "[-_ ]" } {print $1 "-" $2}')
+ # Extract the name and version (while replacing any possible '_' with
+ # '-' because some software separate name and version with '_').
+ name=$(echo $(basename $f) \
+ | sed -e 's/.tar.*//' -e's/_/-/')
# Skip previously packed files
if [ -f $odir/$name.tar.lz ]; then
@@ -202,6 +203,11 @@ for f in $allfiles; do
mv * $name/
fi
+ # Put the current date on all the files because some packagers will not
+ # add dates to their release tarballs, resulting in dates of the
+ # Unix-time zero'th second (1970-01-01 at 00:00:00)!
+ touch $(find "$name"/ -type f)
+
# Pack with recommended options
tar -c -Hustar --owner=root --group=root \
-f $name.tar $name/
@@ -215,5 +221,5 @@ for f in $allfiles; do
echo $(sha512sum $odir/$name.tar.lz)
# Clean up the temporary directory
- rm -r $tmpdir
+ rm -rf $tmpdir
done
diff --git a/tex/src/references.tex b/tex/src/references.tex
index b38706b..267b9ab 100644
--- a/tex/src/references.tex
+++ b/tex/src/references.tex
@@ -13,7 +13,7 @@
{Roukema}, Boudewijn F. and {Khellat}, Mohammadreza and
{Valls-Gabaud}, David and {Baena-Galle}, Roberto},
title = "{Toward Long-Term and Archivable Reproducibility}",
- journal = {Computing in Science and Engineering},
+ journal = {CiSE},
keywords = {Computer Science - Digital Libraries},
year = 2021,
month = may,