From 9e7203bbc4b721a8a2a44c58ac9ad47df4b983cd Mon Sep 17 00:00:00 2001 From: Boud Roukema Date: Fri, 14 Oct 2022 00:54:29 +0200 Subject: IMPORTANT (for Python users): Python environment updated (34 software) Summary: this is software update that involves Astropy and its dependencies. In case you are using any of those, it is recommended to reproduce the analysis of your project to make sure that the calls to the various packages have not changed. If you are not using Astropy or its dependencies, this commit will not affect your analysis. Until this commit, Astropy and the whole Python environment of its prerequisites were last updated more than 2 years go. So after the update of the Basic and some high-level (Gnuastro dependencies) software, it was necessary to update Astropy and its dependencies (for those who use it). With this commit, the software listed in the last item below have been updated as well as the following minor technical fixes: - Support bug 110738 (https://savannah.nongnu.org/support/?110738): when the build directory had the same base-name as the source directory (for exapmle '/PATH/proj' and /PATH/proj-build'), Maneage would complain and not continue. - The Python software are now built using the wheels system with 'gpep517' (https://pypi.org/project/gpep517). Python packages that are not required by astropy/matplotlib/scipy have mostly not been updated, but updating their dependencies and adding the build method as 'GPEP517' should be straightforward. - Updated software (dependencies of Astropy). Those with 'N/A' in their previous version string weren't in Maneage prior to this commit. High-level software (not written in Python): boost 1.77.0 1.87.0 ninja build system n/a 1.12.1 openblas 0.3.21 0.3.29 Python packages: python 3.10.6 3.13.2 astropy 5.1 7.0.1 astropy-iers-data n/a 0.2025.2.24.0.34.4 contourpy n/a 1.3.1 cppy n/a 1.3.1 cycler 0.11.0 0.12.1 cython 0.29.24 3.0.12 extension-helpers 0.1 1.2.0 features n/a 0.5.12 flit-core n/a 3.11.0 fonttools n/a 4.56.0 gpep517 n/a 16 kiwisolver 1.0.1 1.4.8 matplotlib 3.3.0 3.10.0 meson n/a 1.7.0 meson-python n/a 0.17.1 numpy 1.21.3 2.2.3 packaging 21.3 24.2 pillow 8.4.0 11.1.0 pybind11 2.5.0 2.13.6 pyerfa-version 2.0.0.1 2.0.1.5 pyproject-metadata n/a 0.9.0 pyparsing 3.0.4 3.2.1 python-dateutil 2.8.0 2.9.0.post0 python-installer n/a 0.7.0 pyyaml 5.1 6.0.2 setuptools 58.3.0 75.8.0 setuptools_scm 3.3.3 8.2.0 scipy 1.7.3 1.15.2 six 1.16.0 1.17.0 wheel 0.37.0 0.45.1 --- reproduce/software/shell/tarball-prepare.sh | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'reproduce/software/shell/tarball-prepare.sh') diff --git a/reproduce/software/shell/tarball-prepare.sh b/reproduce/software/shell/tarball-prepare.sh index 5b41aec..8e30931 100755 --- a/reproduce/software/shell/tarball-prepare.sh +++ b/reproduce/software/shell/tarball-prepare.sh @@ -176,6 +176,10 @@ for f in $allfiles; do name=$(echo $(basename $f) \ | sed -e 's/.tar.*//' -e's/_/-/') + # Extract the software's name from the tarball name (needed later + # for software-specific checks). + sname=$(echo $name | sed -e's|-| |' | awk '{print $1}') + # Lzip will not be available to unpack Lzip itself, so just use Tar. if [[ $name =~ ^lzip ]]; then outname=$name.tar @@ -204,8 +208,9 @@ for f in $allfiles; do # Create a temporary directory name tmpdir=$odir/$name-tmpunpack - # If the temporary directory exists, mkdir will throw an error. The - # developer needs to intervene manually to fix the issue. + # If the temporary directory exists, delete it and build an empty + # directory to work on (to avoid potential conflicts). + if [ -d $tmpdir ]; then rm -rf $tmpdir; fi mkdir $tmpdir @@ -235,8 +240,15 @@ for f in $allfiles; do # for large tarballs such as gcc's) find "$name"/ -type f -print0 | xargs -0 touch + # Some software source files (like Boost; https://www.boost.io) + # have names that are too long for the more robust 'ustar' + # format. So for we should use 'pax' for them. + if [ $sname = boost ]; then tarformat=pax + else tarformat=ustar + fi + # Pack with recommended options - tar -c -Hustar --owner=root --group=root \ + tar -c -H$tarformat --owner=root --group=root \ -f $name.tar $name/ # Lzip will not be available when unpacking Lzip, so we just use Tar. -- cgit v1.2.1