aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/config
diff options
context:
space:
mode:
authorMohammad Akhlaghi <mohammad@akhlaghi.org>2020-06-10 23:44:13 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2020-06-27 16:32:59 +0100
commitc151eddbcc5f4208b40dc3037a8ae8adb0ff9173 (patch)
tree5a5eadb85053a0cf5852d9daa6992d5bdffba531 /reproduce/software/config
parent5c3f2c4e38bec20616e4cf6ac568298a614df040 (diff)
IMPORTANT: many improvements to low-level software building phase
POSSIBLE EFFECT ON YOUR PROJECT: The changes in this commit may only cause conflicts to your project if you have changed the software building Makefiles in your project's branch (e.g., 'basic.mk', 'high-level.mk' and 'python.mk'). If your project has only added analysis, it shouldn't be affected. This is a large commit, involving a long series of corrections in a differnt branch which is now finally being merged into the core Maneage branch. All changes were related and came up naturally as the low-level infrastructure was improved. So separating them in the end for the final merge would have been very time consuming and we are merging them as one commit. In general, the software building Makefiles are now much more easier to read, modify and use, along with several new features that have been added. See below for the full list. - Until now, Maneage needed the host to have a 'make' implementation because Make was necessary to build Lzip. Lzip is then used to uncompress the source of our own GNU Make. However, in the minimalist/slim versions of operating systems (for example used to build Docker images) Make isn't included by default. Since Lzip was the only program before our own GNU Make was installed, we consulting Antonio Diaz Diaz (creator of Lzip) and he kindly added the necessary functionality to a new version of Lzip, which we are using now. Hence we don't need to assume a Make implementation on the host any more. With this commit, Lzip and GNU Make are built without Make, allowing everything else to be safely built with our own custom version of GNU Make and not using the host's 'make' at all. - Until recently (Commit 3d8aa5953c4) GNU Make was built in 'basic.mk'. Therefore 'basic.mk' was written in a way that it can be used with other 'make' implementations also (i.e., important shell commands starting with '&&' and ending in '\' without any comments between them!). Furthermore, to help in style uniformity, the rules in 'high-level.mk' and 'python.mk' also followed a similar structure. But due to the point above, we can now guarantee that GNU Make is used from the very first Makefile, so this hard-to-read structure has been removed in the software build recipes and they are much more readable and edit-friendly now. - Until now, the default backup servers where at some fixed URLs, on our own pages or on Gitlab. But recently we uploaded all the necessary software to Zenodo (https://doi.org/10.5281/zenodo.3883409) which is more suitable for this task (it promises longevity, has a fixed DOI, while allowing us to add new content, or new software tarball versions). With this commit, a small script has been written to extract the most recent Zenodo upload link from the Zenodo DOI and use it for downloading the software source codes. - Until now, we primarily used the webpage of each software for downloading its tarball. But this caused many problems: 1) Some of them needed Javascript before the download, 2) Some URLs had a complex dependency on the version number, 3) some servers would be randomly down for maintenance and etc. So thanks to the point above, we now use the Zenodo server as the primary download location. However, if a user wants to use a custom software that is not (yet!) in Zenodo, the download script gives priority to a custom URL that the users can give as Make variables. If that variable is defined, then the script will use that URL before going onto Zenodo. We now have a special place for such URLs: 'reproduce/software/config/urls.conf'. The old URLs (which are a good documentation themselves) are preserved here, but are commented by default. - The software source code downloading and checksum verification step has been moved into a Make function called 'import-source' (defined in the 'build-rules.mk' and loaded in all software Makefiles). Having taken all the low-level steps there, I noticed that there is no more need for having the tarball as a separate target! So with this commit, a single rule is the only place that needs to be edited/added (greatly simplifying the software building Makefiles). - Following task #15272, A new option has been added to the './project' script called '--all-highlevel'. When this option is given, the contents of 'TARGETS.conf' are ignored and all the software in Maneage are built (selected by parsing the 'versions.conf' file). This new option was added to confirm the extensive changes made in all the software building recipes and is great for development/testing purposes. - Many of the software hadn't been tested for a long time! So after using the newly added '--all-highlevel', we noticed that some need to be updated. In general, with this commit, 'libpaper' and 'pcre' were added as new software, and the versions of the following software was updated: 'boost', 'flex', 'libtirpc', 'openblas' and 'lzip'. A 'run-parts.in' shell script was added in 'reproduce/software/shell/' which is installed with 'libpaper'. - Even though we intentionally add the necessary flags to add RPATH inside the built executable at compilation time, some software don't do it (different software on different operating systems!). Until now, for historical reasons this check was done in different ways for different software on GNU/Linux sytems. But now it is unified: if 'patchelf' is present we apply it. Because of this, 'patchelf' has been put as a top-level prerequisite, right after Tar and is installed before anything else. - In 'versions.conf', GNU Libtool is recognized as 'libtool', but in 'basic.mk', it was 'glibtool'! This caused many confusions and is corrected with this commit (in 'basic.mk', it is also 'libtool'). - A new argument is added to the './project' script to allow easy loading of the project's shell and environment for fast/temporary testing of things in the same environment as the project. Before activating the project's shell, we completely remove all host environment variables to simulate the project's environment. It can be called with this command: './project shell'. A simple prompt has also been added to highlight that the user is using the Maneage shell!
Diffstat (limited to 'reproduce/software/config')
-rw-r--r--reproduce/software/config/checksums.conf12
-rw-r--r--reproduce/software/config/urls.conf159
-rw-r--r--reproduce/software/config/versions.conf93
3 files changed, 215 insertions, 49 deletions
diff --git a/reproduce/software/config/checksums.conf b/reproduce/software/config/checksums.conf
index e23df9f..2da488b 100644
--- a/reproduce/software/config/checksums.conf
+++ b/reproduce/software/config/checksums.conf
@@ -38,7 +38,7 @@ libiconv-checksum = 365dac0b34b4255a0066e8033a8b3db4bdb94b9b57a9dca17ebf2d779139
libtool-checksum = a6eef35f3cbccf2c9e2667f44a476ebc80ab888725eb768e91a3a6c33b8c931afc46eb23efaee76c8696d3e4eed74ab1c71157bcb924f38ee912c8a90a6521a4
libunistring-checksum = 01dcab6e05ea4c33572bf96cc0558bcffbfc0e62fc86410cef06c1597a0073d5750525fe2dee4fdb39c9bd704557fcbab864f9645958108a2e07950bc539fe54
libxml2-checksum = cb7784ba4e72e942614e12e4f83f4ceb275f3d738b30e3b5c1f25edf8e9fa6789e854685974eed95b362049dbf6c8e7357e0327d64c681ed390534ac154e6810
-lzip-checksum = e3331bbf0166541332182a9a28c2e08f522735ef668a06dfa26055251d5142a09227d97e6ae50b38c0b8805479a307a9e55c81b120d5befad2fde44676261843
+lzip-checksum = e2e229899002072322a5bf7fb7ef37ff7cc2d0ded7d6525679ac29cec5c1534de89f76bc01e15c3d76584099957d596b9e5b32d3f9cbfc6bc8d6370fc67d7d96
m4-checksum = a92cad4441b3fd7c033837389ca3499494523d364a5fda043d92c517051510f1758b3b837f0477f42d2258a179ab79a4993e5d1694ef2673db6d96d1faff84fe
make-checksum = ddf0fdcb9ee1b182ef294c5da70c1275288c99bef60e63a25c0abed2ddd44aba1770be4aab1db8cac81e5f624576f2127c5d825a1824e1c7a49df4f16445526b
metastore-checksum = b2a5fdde9de5ddc1e6c368d5da1b2e97e4fdbaa138a7be281ccb40a81dd4a9bb1849d36b2d5d3f01205079bace60441f82a7002097ff3a7037340a35b0f1574a
@@ -80,7 +80,7 @@ atlas-checksum = bf17306f09f2aa973cb776e2c9eacfb2409ad4d95d19802e1c4e0597d0a099f
autoconf-checksum = c25e834251bfc2befe822614caf1c80d7e1314a83e7173304abc235fd15a958b8db9fbc801e8ad98328dfd6d9dbc425bfbbefec500fa268992ae7bbf4fa5bc35
automake-checksum = 47b0120a59e3e020529a6ce750297d7de1156fd2be38db5d101e50120f11b40c28741ecd5eacf2790a9e25386713dcf7717339cfa5d7943d0dbf47c417383448
bison-checksum = 00d2b37187b93100ec4b220ce2752d12ccf68f9d0d39b380d375d36dd8a22aa1d6e60156918f95e4493f9531c5d42d8fad38fd807307b491c1ca7ca4177823d9
-boost-checksum = 4378e20f18db9f186ac0f38ad98c522526e0fe48a8deb968c41325e3f69e733be3298505e91ea713e79a9d9e741305fa879d289f74e6276e0ec7286f03be87fc
+boost-checksum = 2844dddd3357e76909f2f3d008f686949f8b54aed29e1c650e18becd0b50701a273bb3754f1a4e56c0c056693b27c354c9ba54ddbec92599e192c2f6736fe3be
cairo-checksum = 9eb27c4cf01c0b8b56f2e15e651f6d4e52c99d0005875546405b64f1132aed12fbf84727273f493d84056a13105e065009d89e94a8bfaf2be2649e232b82377f
cdsclient-checksum = 2d7abf0079189b9dd19cb8919061445fd19ea9f7dfd54e8ceee26b743218cf62ab00eba0147abe82d9294223927f04b4cc3328620dfc9184a7049f8d515b29e4
cfitsio-checksum = c0502699e266928dd25abe57730dc4b357ccc9023789fe745324ae01aa688516aceaf37321ee578f0430111d9718f0fec0dc5b54c07f935529560f00b32ce1e3
@@ -88,7 +88,7 @@ cmake-checksum = f09440681e0c414f5ca669f3aeba6666d09e0642f30a2e12c3199e7fb3da95a
eigen-checksum = 34cf600914cce719d61511577ef9cd26fbdcb7a6fad1d0ab8396f98b887fac6a5577d3967e84a8f56225cc50de38f3b91f34f447d14312028383e32b34ea1972
expat-checksum = 514ff2ef3c93af0b1715b7a08732db33c13a113c4c72422716a22ee26c09235deed71ec55510cee24c33bcd6b2347602bd71ce70a432d5583fb63765ff9e0e09
fftw-checksum = ab918b742a7c7dcb56390a0a0014f517a6dff9a2e4b4591060deeb2c652bf3c6868aa74559a422a276b853289b4b701bdcbd3d4d8c08943acf29167a7be81a38
-flex-checksum = e9785f3d620a204b7d20222888917dc065c2036cae28667065bf7862dfa1b25235095a12fd04efdbd09bfd17d3452e6b9ef953a8c1137862ff671c97132a082e
+flex-checksum = b4ef58d4a1d66b213e2f59df06959decf46d26b253cdc3f51cd26e2e2b505461ef23dafa974dd2005b1f0cafa5a83fe9258baf78004b2fdae6dfc299bc17bfd1
freetype-checksum = 02f0f4211f9cee5b5e46ebe61190482fca5b41bc26be06fcf0d2d717e9fb119229308398c420eeea476fa2511ca2d52948f1a3242efad30ca82ed0b07cd50e3a
gdb-checksum = b4161df5adfce3eb51b3b3fc6072b2ef9f612f5e0f95b25bc57382812854836e9d1b24807c68cc8987e37e90112c6d75ffc1de3ea67a9f92858b4ce1af85c479
ghostscript-checksum = acee64fae78771bffa19b0b2bfaba3c345b420f93ceb4fc9df5fb705f785c8ed720fde2aef53546fac6aca2f7366c64c68a6e373a71999a42dc71aadc9aa782f
@@ -104,15 +104,17 @@ libffi-checksum = 980ca30a8d76f963fca722432b1fe5af77d7a4e4d2eac5144fbc5374d4c596
libgit2-checksum = 0879c162e2e1dc00eadfbda22cd1f9d3a95b4ec2b653c108983f37c2f695140882de4d50d7cbc04ced247125a4e9fe6df16130e1267891aecdb2411d920db5c6
libjpeg-checksum = 74ea5af3545657d4ac03f8f7933913112cc2d982f0e379d0e5647f1acac21931468e53806297c30ebe180c7bcf84919a0ac20a4195afb03db03060d57904ef6c
libnsl-checksum = a3c8f674357674b7ed4b26c05adde607f39be8d6dc9ff715448e1fcc5fc23d11fbb4ce85a6e493b79bdb0bb450dc3ffb1fb480715779f738d7bc016fae91621d
+libpaper-checksum = 3bf6ebb0af89931d2f72ea4a09a7fa958b2facda5f238983ec7bac39652e08614b33f0de3af74a03457b2a4203eee4950bf18a4b726e79aa64093ace6a1fb0bc
libpng-checksum = 59e8c1059013497ae616a14c3abbe239322d3873c6ded0912403fc62fb260561768230b6ab997e2cccc3b868c09f539fd13635616b9fa0dd6279a3f63ec7e074
libtiff-checksum = d213e5db09fd56b8977b187c5a756f60d6e3e998be172550c2892dbdb4b2a8e8c750202bc863fe27d0d1c577ab9de1710d15e9f6ed665aadbfd857525a81eea8
-libtirpc-checksum = 392f391f9fc1bd68d81dc44e4058831a64b32790b5c8c37338b0ab416fad2ae4d16389e632596734dba09780347918cc65c6f134e0c1afd09e81ec250785ed23
+libtirpc-checksum = bcb6b5c062c1301aa1246ec93ae0a5c1d221b8421126d020863517cb814b43ed038fb6c0c2faf4e68ff133b69abefe4f4d42bfc870671da6c27ca941a30b155a
missfits-checksum = 32727f5eb30573a1cedacb8900e2536867e4815059eee32e64e3db65be9291b8a91b9f45b2c9f3cf6fc2a8cc448012ea3d502bdd9dee516008e17d5086aee795
netpbm-checksum = 064720f8a9d0a502488e1af4daecdbf3936910996507ca6f311073a0ad842346692a148eb1ddf7b717f7b108f60500246cb4b83f4d3665f5fc285a84ae1d63d6
-openblas-checksum = 91b3074eb922453bf843158b4281cde65db9e8bbdd7590e75e9e6cdcb486157f7973f2936f327bb3eb4f1702ce0ba51ae6729d8d4baf2d986c50771e8f696df0
+openblas-checksum = 64a5f983b2f6e02cdb6e0f14433498cc5daa1ccfb49246f7a2dcd38f9982fa608f2abea069fe0e35012af8c1441c43d1f6418eaccd40795f5002fed1c36ce05d
openmpi-checksum = 760716974cb6b25ad820184622e1ee7926bc6fda87db6b574f76792bc1ca99522e52195866c14b7cb2df5a4981efdaf9f71d2c5533cc0e8e45c2c4b3b74cbacc
openssh-checksum = e280fa2d56f550efd37c5d2477670326261aa8b94d991f9eb17aad90e0c6c9c939efa90fe87d33260d0f709485cb05c379f0fd1bd44fc0d5190298b6398c9982
patch-checksum = 75d4e1544484da12185418cd4a1571994398140a91ac606fa08dd067004187dad77d1413f0eb3319b3fe4df076714615c98b29df06af052bb65960fa8b0c86bf
+pcre-checksum = abac4c4f9df9e61d7d7761a9c50843882611752e1df0842a54318f358c28f5953025eba2d78997d21ee690756b56cc9f1c04a5ed591dd60654cc78ba16d9ecfb
pixman-checksum = 1b0205dbe9d9185c68813ce577a889f3c83e83fbd9955c3a72d411c3b476e6be93fc246b5b6ef4ee17e2bb8eb6fb5559e01dff7feb6a6c4c6314f980e960d690
python-checksum = c25a72ad792f7c1b4c2f79faebbe9608d04b04b2fe58ab804cb4732cdaa75ea93d175f5e52b38e91cb6ae0559ea6b645d802c8b6a869584e8bb9b5018367ce3d
R-checksum = 17513e9f4dd27c61c11f7aa45227aeeeefb375bf5d4e193b471724f379a1b2da33e127cbe91aa175cbbbb048b892047e2f610280585c8159242a6c94790b07f9
diff --git a/reproduce/software/config/urls.conf b/reproduce/software/config/urls.conf
new file mode 100644
index 0000000..dc5a9d8
--- /dev/null
+++ b/reproduce/software/config/urls.conf
@@ -0,0 +1,159 @@
+# Optional URLs of software to use for downloading their source
+#
+# If un-commented the URLs of this file will be used. Otherwise default
+# servers (primarily on 'zenodo.org') will be checked for the tarball.
+#
+# Copyright (C) 2020 Mohammad Akhlaghi <mohammad@akhlaghi.org>
+# Copyright (C) 2020 Raul Infante-Sainz <infantesainz@gmail.com>
+#
+# Copying and distribution of this file, with or without modification, are
+# permitted in any medium without royalty provided the copyright notice and
+# this notice are preserved. This file is offered as-is, without any
+# warranty.
+
+
+
+
+
+# Basic/low-level programs and libraires (installed in any case)
+# --------------------------------------------------------------
+#bash-url = http://akhlaghi.org/maneage-software
+#binutils-url = http://ftp.gnu.org/gnu/binutils
+#bzip2-url = http://akhlaghi.org/maneage-software
+#cert-url = http://akhlaghi.org/maneage-software
+#coreutils-url = http://ftp.gnu.org/gnu/coreutils
+#curl-url = https://curl.haxx.se/download
+#dash-url = http://akhlaghi.org/maneage-software
+#diffutils-url = http://ftp.gnu.org/gnu/diffutils
+#file-url = ftp://ftp.astron.com/pub/file
+#findutils-url = http://ftp.gnu.org/gnu/findutils
+#flock-url = http://akhlaghi.org/src
+#gawk-url = http://ftp.gnu.org/gnu/gawk
+#gcc-url = http://ftp.gnu.org/gnu/gcc/gcc-$(gcc-version)
+#gettext-url = https://ftp.gnu.org/gnu/gettext
+#git-url = http://mirrors.edge.kernel.org/pub/software/scm/git
+#gmp-url = https://gmplib.org/download/gmp
+#grep-url = http://ftp.gnu.org/gnu/grep
+#gzip-url = http://akhlaghi.org/src
+#isl-url = ftp://gcc.gnu.org/pub/gcc/infrastructure
+#libbsd-url = http://libbsd.freedesktop.org/releases
+#libiconv-url = https://ftp.gnu.org/pub/gnu/libiconv
+#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
+#m4-url = http://akhlaghi.org/maneage-software
+#make-url = http://akhlaghi.org/src
+#metastore-url = http://akhlaghi.org/maneage-software
+#mpc-url = http://ftp.gnu.org/gnu/mpc
+#mpfr-url = http://www.mpfr.org/mpfr-current
+#ncurses-url = http://ftp.gnu.org/gnu/ncurses
+#openssl-url = http://www.openssl.org/source
+#patchelf-url = http://nixos.org/releases/patchelf/patchelf-$(patchelf-version)
+#perl-url = $(shell echo https://www.cpan.org/src/$$(echo $(perl-version) | sed -e's/\./ /g' | awk '{printf("%d.0", $$1)}'))
+#pkgconfig-url = http://pkg-config.freedesktop.org/releases
+#readline-url = http://ftp.gnu.org/gnu/readline
+#sed-url = http://ftp.gnu.org/gnu/sed
+#tar-url = http://ftp.gnu.org/gnu/tar
+#texinfo-url = http://ftp.gnu.org/gnu/texinfo
+#unzip-url = $(shell echo ftp://ftp.info-zip.org/pub/infozip/src/unzip$$(echo $(unzip-version) | sed -e's/\.//').tgz)
+#wget-url = http://ftp.gnu.org/gnu/wget
+#which-url = http://ftp.gnu.org/gnu/which
+#xz-url = http://tukaani.org/xz
+#zip-url = $(shell echo ftp://ftp.info-zip.org/pub/infozip/src/zip$$(echo $(zip-version) | sed -e's/\.//').tgz)
+#zlib-url = http://www.zlib.net
+
+
+
+
+
+# Optional/high-level programs and libraries
+# ------------------------------------------
+#
+# These are programs and libraries that are optional, The ones in
+# `reproduce/software/config/TARGETS.conf' will be built as
+# part of a project. To specify a software there, just remove the
+# `-url' suffix from the list below.
+#apachelog4cxx-url = http://akhlaghi.org/maneage-software
+#apr-url = https://www-us.apache.org/dist/apr
+#apr-util-url = https://www-us.apache.org/dist/apr
+#astrometrynet-url = http://astrometry.net/downloads
+#atlas-url = https://sourceforge.net/projects/math-atlas/files/Stable/$(atlas-version)/atlas$(atlas-version).tar.bz2/download
+#autoconf-url = http://akhlaghi.org/maneage-software
+#automake-url = http://ftp.gnu.org/gnu/automake
+#bison-url = http://ftp.gnu.org/gnu/bison
+#boost-url = $(shell vstr=$$(echo $(boost-version) | sed -e's/\./_/g'); echo https://dl.bintray.com/boostorg/release/$(boost-version)/source)
+#cairo-url = https://www.cairographics.org/releases
+#cdsclient-url = http://cdsarc.u-strasbg.fr/ftp/pub/sw
+#cfitsio-url = https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c
+#cmake-url = $(shell majv=$$(echo $(cmake-version) | sed -e's/\./ /' | awk '{printf("%d.%d", $$1, $$2)}'); echo https://cmake.org/files/v$$majv/cmake-$(cmake-version).tar.gz)
+#eigen-url = http://bitbucket.org/eigen/eigen/get/$(eigen-version).tar.gz
+#expat-url = $(shell vstr=$$(echo $(expat-version) | sed -e's/\./_/g'); echo https://github.com/libexpat/libexpat/releases/download/R_$$vstr/expat-$(expat-version).tar.lz)
+#fftw-url = ftp://ftp.fftw.org/pub/fftw
+#flex-url = https://github.com/westes/flex/files/981163
+#freetype-url = https://download.savannah.gnu.org/releases/freetype
+#gdb-url = http://ftp.gnu.org/gnu/gdb
+#ghostscript-url = $(shell v=$$(echo $(ghostscript-version) | sed -e's/\.//'); echo https://github.com/ArtifexSoftware/ghostpdl-downloads/releases/download/gs$$v)
+#gnuastro-url = http://ftp.gnu.org/gnu/gnuastro
+#gsl-url = http://ftp.gnu.org/gnu/gsl
+#hdf5-url = $(shell majorver=$$(echo $(hdf5-version) | sed -e 's/\./ /g' | awk '{printf("%d.%d", $$1, $$2)}'); echo https://support.hdfgroup.org/ftp/HDF5/releases/hdf5-$$majorver/hdf5-$(hdf5-version)/src)
+#healpix-url = http://akhlaghi.org/maneage-software
+#help2man-url = http://ftp.gnu.org/gnu/help2man
+#imagemagick-url = http://akhlaghi.org/maneage-software
+#imfit-url = http://www.mpe.mpg.de/~erwin/resources/imfit
+#lapack-url = http://www.netlib.org/lapack
+#libffi-url = ftp://sourceware.org/pub/libffi
+#libgit2-url = https://github.com/libgit2/libgit2/archive
+#libjpeg-url = http://ijg.org/files
+#libnsl-url = http://akhlaghi.org/maneage-software
+#ibpaper-url=http://ftp.debian.org/debian/pool/main/libp/libpaper/
+#libpng-url = https://download.sourceforge.net/libpng
+#libtiff-url = https://download.osgeo.org/libtiff
+#libtirpc-url = https://downloads.sourceforge.net/libtirpc
+#minizip-url =
+#missfits-url = https://www.astromatic.net/download/missfits
+#netpbm-url = http://akhlaghi.org/maneage-software
+#openblas-url = https://github.com/xianyi/OpenBLAS/archive
+#openmpi-url = $(shell majorver=$$(echo $(openmpi-version) | sed -e 's/\./ /g' | awk '{printf("%d.%d", $$1, $$2)}'); echo https://download.open-mpi.org/release/open-mpi/v$$majorver)
+#openssh-url = https://artfiles.org/openbsd/OpenSSH/portable
+#patch-url = http://ftp.gnu.org/gnu/patch
+#pixman-url = https://www.cairographics.org/releases
+#python-url = https://www.python.org/ftp/python/$(python-version)
+#R-url = $(shell majver=$$(echo $(R-version) | sed -e's/\./ /g' | awk '{print $$1}'); echo https://cran.r-project.org/src/base/R-$$majver)
+#rpcsvc-proto-url = https://github.com/thkukuk/rpcsvc-proto/releases/download
+#scamp-url = http://akhlaghi.org/maneage-software
+#scons-url = https://sourceforge.net/projects/scons/files/scons/$(scons-version)/scons-$(scons-version).tar.gz/download
+#sextractor-url = http://akhlaghi.org/maneage-software
+#swarp-url = https://www.astromatic.net/download/swarp
+#swig-url = https://sourceforge.net/projects/swig/files/swig/swig-$(swig-version)
+#tides-url = http://akhlaghi.org/maneage-software
+#valgrind-url = https://sourceware.org/pub/valgrind
+#wcslib-url = ftp://ftp.atnf.csiro.au/pub/software/wcslib
+#xlsxio-url = https://github.com/brechtsanders/xlsxio/archive
+#yaml-url = pyyaml.org/download/libyaml
+
+
+
+
+
+# Python packages
+# ---------------
+#
+# Similar to optional programs and libraries above.
+#
+# IMPORTANT: Python packages are usually distributed on servers like
+# 'https://pypi.org'. You can search for your package here and add the link
+# to the tarball here for your desired software. The links in PyPi don't
+# contain the names of the software, but only have hashes. So we aren't
+# including them by default here. But adding them is trivial for a certain
+# version. For example if you search "Numpy" and click on the "Download
+# files" menu, you can download the source '.zip' file. For version 1.18.5,
+# (with full filename of 'numpy-1.18.5.zip') the link will be like this.
+#
+# numpy-url = https://files.pythonhosted.org/packages/01/1b/d3ddcabd5817be02df0e6ee20d64f77ff6d0d97f83b77f65e98c8a651981/numpy-1.18.5.zip
+#
+# Hence, if the version changes, the checksum, and its two top host
+# directories also change. This is why we aren't putting any URL here by
+# default, if you need to add one, simply follow the numpy example above.
+# But be sure to send us a link to the tarball so we upload it to Maneage's
+# backup servers.
diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf
index 1a4172a..b395e0f 100644
--- a/reproduce/software/config/versions.conf
+++ b/reproduce/software/config/versions.conf
@@ -14,6 +14,8 @@
# Basic/low-level programs and libraires (installed in any case)
# --------------------------------------------------------------
+#
+# CLASS:BASIC (important identifier, don't modify this line)
bash-version = 5.0.11
binutils-version = 2.32
coreutils-version = 8.31
@@ -22,6 +24,7 @@ dash-version = 0.5.10.2
diffutils-version = 3.7
file-version = 5.36
findutils-version = 4.7.0
+flock-version = 0.2.3
gawk-version = 5.0.1
gcc-version = 9.2.0
gettext-version = 0.20.2
@@ -35,8 +38,8 @@ libiconv-version = 1.16
libtool-version = 2.4.6
libunistring-version = 0.9.10
libxml2-version = 2.9.9
-lzip-version = 1.20
-m4-version = 1.4.18
+lzip-version = 1.22-rc2
+m4-version = 1.4.18-patched
make-version = 4.3
metastore-version = 1.1.2-23-fa9170b
mpc-version = 1.1.0
@@ -56,6 +59,14 @@ xz-version = 5.2.4
zip-version = 3.0
zlib-version = 1.2.11
+# Version-dependent build
+# -----------------------
+#
+# When updating the version of these programs/libraries, please look into
+# the build rule first: In one way or another, the version string becomes
+# necessary during their build and must be accounted for.
+bzip2-version = 1.0.6
+
@@ -67,6 +78,8 @@ zlib-version = 1.2.11
# `reproduce/software/config/TARGETS.conf' will be built as
# part of a project. To specify a software there, just remove the
# `-version' suffix from the list below.
+#
+# CLASS:HIGHLEVEL (important identifier, don't modify this line.)
apachelog4cxx-version = 0.10.0-603-014954db
apr-version = 1.7.0
apr-util-version = 1.6.1
@@ -75,7 +88,7 @@ atlas-version = 3.10.3
autoconf-version = 2.69.200-babc
automake-version = 1.16.1
bison-version = 3.4.2
-boost-version = 1.71.0
+boost-version = 1.73.0
cairo-version = 1.16.0
cdsclient-version = 3.84
cfitsio-version = 3.47
@@ -83,8 +96,7 @@ cmake-version = 3.17.0
eigen-version = 3.3.7
expat-version = 2.2.9
fftw-version = 3.3.8
-flex-version = 2.6.4
-flock-version = 0.2.3
+flex-version = 2.6.4-91-ga631f5d
freetype-version = 2.9
gdb-version = 8.3
ghostscript-version = 9.50
@@ -98,14 +110,16 @@ imfit-version = 1.6.1
libffi-version = 3.2.1
libjpeg-version = v9b
libnsl-version = 1.2.0-4a062cf
+libpaper-version = 1.1.28
libpng-version = 1.6.37
libtiff-version = 4.0.10
-libtirpc-version = 1.1.4
+libtirpc-version = 1.2.6
missfits-version = 2.8.0
-openblas-version = 0.3.5
+openblas-version = 0.3.10
openmpi-version = 4.0.1
openssh-version = 8.0p1
patch-version = 2.7.6
+pcre-version = 8.44
pixman-version = 0.38.0
python-version = 3.7.4
R-version = 3.6.2
@@ -119,6 +133,29 @@ tides-version = 2.0
xlsxio-version = 0.2.21
yaml-version = 0.2.2
+# Version-dependent build
+# -----------------------
+lapack-version = 3.8.0
+libgit2-version = 0.28.2
+wcslib-version = 6.4
+
+# Netpbm's questions in the configure steps maybe change with different or
+# new versions.
+netpbm-version = 10.86.99
+
+# Minizip is installed with the same `zlib' tarball, and they have the same
+# version.
+minizip-version = $(zlib-version)
+
+# From version 1.2 OpenSSL may not need a manual addition, as described in
+# its comments and `https://savannah.nongnu.org/bugs/?58263'. If it doesn't
+# cause problems, put it back in the list of "Basic/low-level" tools.
+openssl-version = 1.1.1a
+
+# Version 3.15.0 needs two patches, please check if they are necessary on
+# any future release.
+valgrind-version = 3.15.0
+
@@ -131,6 +168,8 @@ yaml-version = 0.2.2
# IMPORTANT: If you intend to change the version of any of the Python
# modules/libraries below, please fix the hash strings of the respective
# URL in `reproduce/software/make/python.mk'.
+#
+# CLASS:PYTHON (important identifier, don't modify this line.)
asn1crypto-version = 0.24.0
asteval-version = 0.9.16
astropy-version = 4.0
@@ -151,7 +190,6 @@ flake8-version = 3.7.8
future-version = 0.18.1
galsim-version = 2.2.1
h5py-version = 2.9.0
-healpy-version = installed-with-healpix
html5lib-version = 1.0.1
idna-version = 2.8
jeepney-version = 0.4
@@ -184,42 +222,9 @@ soupsieve-version = 1.8
sympy-version = 1.4
uncertainties-version = 3.1.2
urllib3-version = 1.24.1
-virtualenv-version = 16.4.0
webencodings-version = 0.5.1
-
-
-
-
-# Special programs and libraries
-# ------------------------------
-#
-# When updating the version of these libraries, please look into the build
-# rule first: In one way or another, the version string becomes necessary
-# during their build and must be accounted for.
+# Special Python modules:
#
-# Special notes:
-# - `netpbm' questions in the configure steps maybe change with different
-# or new versions.
-
-# Basic/low-level
-bzip2-version = 1.0.6
-
-# Optional/high-level
-lapack-version = 3.8.0
-libgit2-version = 0.28.2
-netpbm-version = 10.86.99
-wcslib-version = 6.4
-
-# Minizip is installed with the same `zlib' tarball, and they have the same
-# version.
-minizip-version = $(zlib-version)
-
-# From version 1.2 OpenSSL may not need a manual addition, as described in
-# its comments and `https://savannah.nongnu.org/bugs/?58263'. If it doesn't
-# cause problems, put it back in the list of "Basic/low-level" tools.
-openssl-version = 1.1.1a
-
-# Version 3.15.0 needs two patches, please check if they are necessary on
-# any future release.
-valgrind-version = 3.15.0
+# Healpy: When any Python module is requested, healpix will also build its
+# Python module Healpy.