aboutsummaryrefslogtreecommitdiff
path: root/reproduce/software/shell
diff options
context:
space:
mode:
authorGiacomo Lorenzetti <glorenzetti@cefca.es>2025-01-21 18:57:10 +0100
committerMohammad Akhlaghi <mohammad@akhlaghi.org>2025-02-11 20:47:53 +0100
commit890858795fd6e0c8c1f3050adec7f4bc78e9e47c (patch)
tree00ae9a5b75dd3edaea8f64109afcf77e4947d3f1 /reproduce/software/shell
parent3c9bf3aff30f02c7d31bd86f36c4db2520f8ffa4 (diff)
IMPORTANT: 73 software upgrades and added offline mode
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. Until now, the software in Maneage had not been updated for almost 2.5 years (since August 2022) and were starting to get dated! Also, when no internet is available (for example in a HPC), the Zenodo check would always cause a crash and needed to be commented manually. With this commit, all the basic software that had been updated as well as the dependencies of Gnuastro (which we commit to maintaining) have been updated after a check of their webpage (see the full list below). To fix the offline issue, a new '--offline' option has been added to the project script. The other following changes were made: - tarball-prepare: has become more resilient (for dealing with file name with spaces or Lzip, which should not be compressed). - Readme: improve documentation when used in Docker. Below you can see the list of basic software that have been updated. The only basic software that have not been updated upstream since the previous Maneage software update are 'bison', 'flock', 'm4', 'pkgconfig', 'unzip' and 'zip'. bash 5.2-rc2 5.2.37 binutils 2.39 2.43.1 coreutils 9.1 9.6 curl 7.84.0 8.11.1 dash 0.5.11-057cd65 0.5.12 diffutils 3.8 3.10 file 5.42 5.46 findutils 4.9.0 4.10.0 gawk 5.1.1 5.3.1 gcc 12.1.0 14.2.0 gettext 0.21 0.23.1 git 2.37.1 2.48.1 gmp 6.2.1 6.3.0 grep 3.7 3.11 gzip 1.12 1.13 help2man 1.49.2 1.49.3 isl 0.24 0.27 less 590 668 libiconv 1.17 1.18 libtool 2.4.7 2.5.4 libunistring 1.0 1.3 libxml2 2.9.12 2.13.5 lzip 1.23 1.25 make 4.3 4.4.1 mpc 1.2.1 1.3.1 mpfr 4.1.0 4.2.1 nano 6.4 8.3 ncurses 6.3 6.5 openssl 3.0.5 3.4.0 perl 5.36.0 5.40.1 podlators 4.14 6.0.2 readline 8.2-rc2 8.2.13 sed 4.8 4.9 tar 1.34 1.35 texinfo 6.8 7.2 wget 1.21.2 1.25.0 which 2.21 2.23 xz 5.2.5 5.6.3 zlib 1.2.11 1.3.1 The high-level software that have been updated. autoconf 2.71 2.72 automake 1.16.5 1.17 cfitsio 4.1.0 4.5.0 cmake 3.24.0 3.31.5 expat 2.4.1 2.6.4 fontconfig 2.14.0 2.16.0 freetype 2.11.0 2.13.3 ghostscript 9.56.1 10.04.0 gnuastro 0.18 0.23 gsl 2.7 2.8 libffi 3.4.2 3.4.7 libgit2 1.3.0 1.9.0 libice 1.0.10 1.1.2 libidn 1.38 1.42 libjpeg 9e 9f libpaper 1.1.28 1.1.29 libpng 1.6.37 1.6.46 libpthread-stubs 0.4 0.5 libsm 1.2.3 1.2.5 libtiff 4.4.0 4.7.0 libxau 1.0.9 1.0.12 libxcb 1.15 1.17 libxdmcp 1.1.3 1.1.5 libxext 1.3.4 1.3.6 libxt 1.2.1 1.3.1 python 3.10.6 3.13.12 util-macros 1.19.3 1.20.2 wcslib 7.11 8.4 xcb-proto 1.15 1.17 xorgproto 2022.1 2024.1 xtrans 1.4.0 1.5.2
Diffstat (limited to 'reproduce/software/shell')
-rwxr-xr-xreproduce/software/shell/configure.sh5
-rwxr-xr-xreproduce/software/shell/tarball-prepare.sh26
2 files changed, 23 insertions, 8 deletions
diff --git a/reproduce/software/shell/configure.sh b/reproduce/software/shell/configure.sh
index 857f3b5..f226ced 100755
--- a/reproduce/software/shell/configure.sh
+++ b/reproduce/software/shell/configure.sh
@@ -1612,11 +1612,11 @@ fi
# which will download the DOI-resolved webpage, and extract the Zenodo-URL
# of the most recent version from there (using the 'coreutils' tarball as
# an example, the directory part of the URL for all the other software are
-# the same). This is not done if the option '--debug' is used.
+# the same). This is not done if the options '--debug' or `--offline` are used.
zenodourl=""
user_backup_urls=""
zenodocheck=.build/software/zenodo-check.html
-if [ x$debug = x ]; then
+if [ x$debug = x ] && [ x$offline = x ]; then
if $downloader $zenodocheck https://doi.org/10.5281/zenodo.3883409; then
zenodourl=$(sed -n -e'/coreutils/p' $zenodocheck \
| sed -n -e'/http/p' \
@@ -1723,6 +1723,7 @@ fi
on_mac_os=$on_mac_os \
sys_cpath=$sys_cpath \
host_cc=$host_cc \
+ offline=$offline \
-j$numthreads
diff --git a/reproduce/software/shell/tarball-prepare.sh b/reproduce/software/shell/tarball-prepare.sh
index e12ff98..09e1c89 100755
--- a/reproduce/software/shell/tarball-prepare.sh
+++ b/reproduce/software/shell/tarball-prepare.sh
@@ -159,12 +159,19 @@ for f in $allfiles; do
name=$(echo $(basename $f) \
| sed -e 's/.tar.*//' -e's/_/-/')
+ # Lzip will not be available to unpack Lzip itself, so just use Tar.
+ if [[ $name =~ ^lzip ]]; then
+ outname=$name.tar
+ else
+ outname=$name.tar.lz
+ fi
+
# Skip previously packed files
- if [ -f $odir/$name.tar.lz ]; then
+ if [ -f $odir/$outname ]; then
# Print the info message if not in quiet mode
if [ -z $quiet ]; then
- echo "$scriptname: $odir/$name.tar.lz: already present in output directory"
+ echo "$scriptname: $odir/$outname: already present in output directory"
fi
# skip this file
@@ -206,19 +213,26 @@ for f in $allfiles; do
# 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)
+ # -print0 is needed for those tarballs that has paths with spaces. For
+ # the same reason it's needed also `xargs -0`. (`xargs` is needed also
+ # for large tarballs such as gcc's)
+ find "$name"/ -type f -print0 | xargs -0 touch
# Pack with recommended options
tar -c -Hustar --owner=root --group=root \
-f $name.tar $name/
- lzip -9 $name.tar
+
+ # Lzip will not be available when unpacking Lzip, so we just use Tar.
+ if [[ ! $name =~ ^lzip ]]; then
+ lzip -9 $name.tar
+ fi
# Move the compressed file from the temporary directory to the target
# output directory
- mv $name.tar.lz $odir/
+ mv $outname $odir/
# Print the sha512sum along with the filename for a quick reference
- echo $(sha512sum $odir/$name.tar.lz)
+ echo $(sha512sum $odir/$outname)
# Clean up the temporary directory
rm -rf $tmpdir