From 79ee52ed1e136fbd2592a5c2a058f73024d8b5b0 Mon Sep 17 00:00:00 2001 From: Mohammad Akhlaghi Date: Fri, 5 Aug 2022 20:27:56 +0200 Subject: IMPORTANT: Software update SUMMARY: This is a software update to make Maneage more portable and up to date. It does not involve any Maneage infrastructure changes. You should just re-build your project to make sure the updated software haven't removed/changed any of their features that you were using. In particular, for Astrometry.net users, please see the respective note in P.S.2 below. Until now, there have been many updates in the software that are built within Maneage. The last software upadte was almost one year ago. With this commit, the software in the P.S.1 have been updated. A description of notable changes in the software environment is given in P.S.2. This software environment has been tested on an Arch GNU/Linux, Debian, CentOS-7 and macOS. This commit is the merging of 24 individual commits by Raul Infante-Sainz (who put a lot of energy on porting the software below for macOS, and updating citations), Boudewijn Roukema (who helped with memory checking for GCC, and testing on Debian and CentOS), Sepideh Eskandarlou (who tested the environment) and myself. Besides the updates in the core software, the followimg improvements have also been implemented in this commit: - When you run './project shell': - A welcome message is printed that will remind the caller that they have entered a new environment, it will print the location of 'HOME' and the location of the shell startup file. - The 'reproduce/software/shell/bashrc.sh' is loaded as a startup file. This allows you to customize your interactive Maneage shell. A default step has already been placed there that will put the git branch name (in green) within the shell prompt (which was purple). This greatly helps when dealing with directories under Git version control. These settings won't bother with Maneage's default operations: through environment variables we make sure that these './project shell' features will not slow-down the calls to the shell within the non-interactive Make calls. - The host's 'COLORTERM' is passed to the Maneage environment. It is used by some programs that can have color outputs on the terminal. - Updates to citations: - Numpy and Scipy (as requested on their pages): https://numpy.org/citing-numpy and https://scipy.org/citing-scipy - Gnuastro: Added https://arxiv.org/abs/1909.11230 which describes major updates to Gnuastro after 10 releases. - When a software's paper is indexed in the SAO/NASA Astrophysics Data System (ADS), Maneage now use the BibTeX entries provided by ADS. This helps to give a unified format to most software, and more information (like ADS+arXiv hyperlinks in the BibLaTeX compilation of the default bibliography). - We were able to build this version of Maneage on a Debian system from 2010 (+12 years ago!). Only three downgrades were necessary in the "basic" software (not affecting the high-level science software!). A description of the necessary downgrades for such old systems has been added in 'README.md'. P.S.1 List of updated software: Basic software: cURL 7.79.1 --> 7.84.0 Dash 0.5.11.5 --> 0.5.11-057cd65 File 5.41 --> 5.42 GNU AWK 5.1.0 --> 5.1.1 GNU Bash 5.1.8 --> 5.2-rc2 GNU Binutils 2.37 --> 2.39 GNU Compiler Collection (GCC) 11.2.1 --> 12.1.0 GNU Findutils 4.8.0 --> 4.9.0 GNU Gzip 1.11 --> 1.12 GNU Help2man 1.48.5 --> 1.49.2 GNU Integer Set Library (ISL) 0.18 --> 0.24 GNU Libtool 2.4.6 --> 2.4.7 GNU Nano 6.0 --> 6.4 GNU Readline 8.1.1 --> 8.2-rc2 GNU libiconv 0.16 --> 0.17 Git 2.36.0 --> 2.37.1 OpenSSL 3.0.0 --> 3.0.5 PatchELF 0.13 --> 0.15.0 Perl 5.34.0 --> 5.36.0 High-level software: Astrometry.net 0.89 --> 0.91 CFITSIO 4.0.0 --> 4.1.0 CMake 3.21.4 --> 3.24.0 GNU Astronomy Utilities (Gnuastro) 0.16.1 --> 0.18 GPL Ghostscript 9.55.0 --> 9.56.1 HDF5 1.10.5 --> 1.13.1 Libjpeg 9d --> 9e Libtiff 4.3.0 --> 4.4.0 OpenBLAS 0.3.18 --> 0.3.21 PLplot n/a --> 5.15.0 Python 3.10.0 --> 3.10.6 SCAMP 2.6.7 --> 2.10.0 SWarp 2.38.0 --> 2.41.5 Util-Linux 2.37.2 --> 2.38.1 Vim 8.2 --> 9.0 WCSLIB 7.7 --> 7.11 X.org packages (used by graphical software like Ghostscript and LaTeX): Fontconfig 2.13.94 --> 2.14.0 LibX11 1.7.2 --> 1.8 LibXCB 1.14 --> 1.15 XCB-proto 1.14.1 --> 1.15 Xorg-proto 2021.5 --> 2022.1 Python modules: Astropy 5.0 --> 5.1 GalSim 2.3.3 --> 2.3.5 P.S.2: Notable points regarding the software environment: - Two new links from the host's low-level tools are now included in Maneage's build environment: - On GNU/Linux systems, the host's 'ldd' is linked inside the custom environment. This belongs to the GNU C Library (which is not yet installed in Maneage). But helps in checking the linking status of the binaries on GNU/Linux systems. - On macOS: the 'codesign' binary is included, which is used by GNU Emacs on macOS to sign the built executable. - GNU Bison has been moved in basic software (necessary for GNU Binutils). - The Zip and Unzip programs have been moved as high-level software that have to be manually requested when necessary. This is because they are not used by any of the basic software anymore. They were just installed as dependencies of GNU Tar to be close the other compression programs. Also, in the past we would use the original tarballs, and some (for example Numpy) were distributed in Zip format. However, by default, we now use a custom Lzip tarball and don't need Zip or Unzip. This was suggested by Zahra Sharbaf and Raul Infante-Sainz. - Some minor edits in 'reproduce/software/shell/tarball-prepare.sh'. In particular the 'awk' command was effectively just replacing a '_' with '-', so it just uses a simple SED expression instead. - Fixed bug 62700 (https://savannah.nongnu.org/bugs/index.php?62700) by compiling 'xz' with a patched version of the xz source file 'src/liblzma/liblzma.map'. - Astrometry.net doesn't depend on NetPBM any more. NetPBM (and its dependencies) were causing many crashes on macOS and it also a very strange build system that is hard to maintain. Astrometry.net uses it to take images as input. However, it isn't necessary when you provide Astrometry.net with a catalog. Therefore, Raul added some instructions on how to run astrometry from your own custom X-Y catalog. These instruction can be seen on top of the build rule of Astrometry.net in 'reproduce/software/make/high-level.mk'. - h5py has been removed as a dependency of Astropy. It is an optional dependency to write tables into HDF5 format. But since we couldn't get it to build on macOS it has been removed. None of the current Maneage users/developers also use this feature of Astropy! - PLplot is added a new software, but not a default pre-requisite of SCAMP (which can use it to generate figures), because there were many build problems on macOS. Instructions have been added on top of SCAMP on how to add PLplot as a dependency. - With the aim of being able to install Plplot on macOS, we have wrote several lines to fix header problems. However, we didn't succeed. In any case we are leaving these lines in case they are useful in the future. - The '-Wno-nullability-completeness' compiler flag (which is primarily necessary for macOS) is now only added for macOS systems. It was causing many warnings of un-recognized option in GNU/Linux systems. - The 'mkswap' program of Util-Linux has been disabled because it caused crashes on older kernels. Generally, its not necessary for a Maneage project because it needs root permissions to run! - LibXT (of the x.org software) has been added as a dependency of Cairo. - ImageMagick and Lzip were using the host's C++ standard library! But on GNU/Linux we build our own C++ Standard Library with GCC, so with this commit, they properly link with Maneage's C++ standard library. - ImageMagick on macOS couldn't properly link with Maneage's Ghostscript library! This has been fixed using macOS's install_name_tool. - Necessary RAM to build GCC on GNU/Linux systems changed to ~8GB, see https://savannah.nongnu.org/task/?16244#comment12 - Pythran is no longer as prerequisite of Scipy. Until now, Pythran was a prerequisite of Scipy. But we noticed that it is optional and was causing problems on macOS. - The URLs of some of the software have been updated in 'reproduce/software/config/urls.conf'. By default, these are all commented, but they can be useful when searching for new versions or when a project needs custom software that is not (yet) in Maneage. --- README.md | 68 +++++- project | 11 +- reproduce/software/bibtex/astrometrynet.tex | 26 ++- reproduce/software/bibtex/cython.tex | 23 +- reproduce/software/bibtex/fftw.tex | 2 +- reproduce/software/bibtex/gnuastro.tex | 31 +-- reproduce/software/bibtex/healpix.tex | 9 +- reproduce/software/bibtex/imfit.tex | 31 +-- reproduce/software/bibtex/matplotlib.tex | 23 +- reproduce/software/bibtex/mpi4py.tex | 22 +- reproduce/software/bibtex/numpy.tex | 31 +-- reproduce/software/bibtex/scipy.tex | 41 ++-- reproduce/software/bibtex/sextractor.tex | 6 +- reproduce/software/bibtex/tides.tex | 2 +- reproduce/software/config/TARGETS.conf | 4 +- reproduce/software/config/checksums.conf | 101 ++++----- reproduce/software/config/urls.conf | 8 +- reproduce/software/config/versions.conf | 127 ++++++----- reproduce/software/make/basic.mk | 207 ++++++++++++++---- reproduce/software/make/high-level.mk | 233 +++++++++++++++++---- reproduce/software/make/python.mk | 20 +- .../README.xz-5.2.5_src_liblzma_liblzma.map | 8 + .../software/patches/util-linux-2.38.1-macos.patch | 114 ++++++++++ .../patches/xz-5.2.5_src_liblzma_liblzma.map | 115 ++++++++++ reproduce/software/shell/bashrc.sh | 50 +++++ reproduce/software/shell/configure.sh | 4 +- reproduce/software/shell/pre-make-build.sh | 2 +- reproduce/software/shell/tarball-prepare.sh | 14 +- tex/src/references.tex | 2 +- 29 files changed, 988 insertions(+), 347 deletions(-) create mode 100644 reproduce/software/patches/README.xz-5.2.5_src_liblzma_liblzma.map create mode 100644 reproduce/software/patches/util-linux-2.38.1-macos.patch create mode 100644 reproduce/software/patches/xz-5.2.5_src_liblzma_liblzma.map diff --git a/README.md b/README.md index 250f807..acfc444 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 unprobable_ 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/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/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 ||' \ + -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 20e758a..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,14 +947,42 @@ $(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) \ @@ -987,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. @@ -1049,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) @@ -1128,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) @@ -1168,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 @@ -1281,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) \ @@ -1352,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) \ @@ -1430,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'. @@ -1520,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 \ @@ -1593,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 \ @@ -1611,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 +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 +--- + 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 ++#ifdef HAVE_SYS_STATFS_H ++# include ++#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 + #include +-#include + #include + ++#ifdef HAVE_SYS_VFS_H ++# include ++# 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 /* tolower() */ + #include + +-#if defined(HAVE_LINUX_FIEMAP_H) ++#if defined(HAVE_LINUX_FIEMAP_H) && defined(HAVE_SYS_VFS_H) + # include + # include + # 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 # @@ -43,3 +48,48 @@ # # You should have received a copy of the GNU General Public License # along with this script. If not, see . + + + + + +# 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 < 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, -- cgit v1.2.1