aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/shell/prep-source.sh
AgeCommit message (Collapse)AuthorLines
28 hoursIMPORTANT: version updates and improved portabilityGiacomo Lorenzetti-2/+18
Summary: this commit involves a major version update of many basic software and Gnuastro's major dependencies. So it may affect your configuration and analysis. Until now, the most recent software updates weren't properly tested on MacOS, causing the software configuration step to fail. In particular, the 'prep-source.sh' (that corrects any hard-coded '/bin/sh' within the unpacked tarballs of all software) as well as some issues in the 'tar', 'util-linux' and 'ghostscript' programs. These portability issues were found and fixed by Raul Infante-Sainz and Giacomo Lorenzetti. With this commit, those portability issues have been addressed while updating the following software. Also see notes below the list. High-level software: CFITSIO 4.5.0 --> 4.6.3 Ghostscript 10.04.0 --> 10.06.0 Gnuastro 0.23 --> 0.24 Util-linux 2.40.4 --> 2.41.3 WCSLIB 8.4 --> 8.5 Basic software: cURL 8.11.1 --> 8.17.0 GNU Bash 5.2.37 --> 5.3.9 GNU Binutils 2.43.1 --> 2.45.1 GNU Coreutils 9.6 --> 9.9 GNU Diffutils 3.10 --> 3.12 GNU AWK 5.3.1 --> 5.3.2 GNU GCC 14.2.0 --> 15.2.0 GNU Gettext 0.23.1 --> 0.26 GNU Grep 3.11 --> 3.12 GNU Gzip 1.13 --> 1.14 GNU Libunistring 1.3 --> 1.4.1 GNU M4 1.4.19 --> 1.4.20 GNU MPFR 4.2.1 --> 4.2.2 GNU Nano 8.3 --> 8.7 GNU Readline 8.2.13 --> 8.3.3 Git 2.48.1 --> 2.52.0 Less 668 --> 685 Libxml2 2.13.1 --> 2.15.1 OpenSSL 3.4.0 --> 3.6.0 Perl 5.40.1 --> 5.42.0 The latest versions of Bash and M4 were prepared for the new default C standard of GCC 15.*, so the '-std=gnu17' was removed for them. Also, while a new version of Dash was available, it would cause an issue when building in Apptainer, so it has been described in 'versions.conf' to be aware in the future updates. Libgit2 has been removed as a dependency of Gnuastro. The reason is fully described in the comment on top of Gnuastro's build rule in 'high-level.mk'.
2025-02-10Configuration: no dependency on /bin/sh and useful run-time optionsMohammad Akhlaghi-0/+94
SUMMARY: no change necessary in your project, this commit only involves changes in how already-existing software are built. Some handy options have also been added to the top-level project script and the copyright years have been updated. Until now, if the host's '/bin/sh' had conflicts with the Maneage environment, the configuration of Maneage would crash as soon as we entered the building of high-level software. The full scenario is described in the comments of the newly added 'reproduce/software/shell/prep-source.sh'. This is most relevant when building older Maneage'd project in newer environments. With this commit, the following changes were made to avoid the problem above: - Maneage edits the source code of all installed software to replace '/bin/sh' with Maneage's own shell before the programs are built. Through this, we were able to solve the problem described above. - The portable '#!/usr/bin/env sh' shebangs are now used at the start of the scripts that run during configure time so it uses the first available shell that it finds in its PATH (the system's before Dash is built), then Dash, and after Dash is built, Bash. - For TeXLive, since we don't install it from source, it was necessary to add the libraries necessary for the local '/bin/sh' in LD_LIBRARY_PATH. Some high-level options have been added to the './project' script to simplify certain operations: --keep-going: do not stop upon the first crash, but keep going on to build targets until all build-able targets have been built. This is very useful for debugging large pipelines and allows you to isolate the problematic part of your project. --highlight-all: equivalent to calling both '--highlight-new' & '--highlight-notes'.