From d99b69fdb52f2fd522f53bba29a42d3ba8af5361 Mon Sep 17 00:00:00 2001 From: Boud Roukema Date: Sun, 18 Jan 2026 22:50:48 +0600 Subject: IMPORTANT: Python and some basic software updated, improved portability Summary: this commit has no effect on your project's analysis steps, just check the list of changed Python software versions (if you used them). Until now, the Python packages of Maneage had not been maintained for some time, there were several portability issues: updates to the GNU C Library needed an update to some of the basic software, and the latest macOS features caused some crashes. With this commit, along with the software version updates of [1], the removed software of [2] and newly added software of [3], the following issues in Maneage have been addressed: - README-hacking: - Published paper list: Added links to two published papers. - Publication checklist: added tips on how to squash the full LaTeX source of a Maneage'd projet (which includes many LaTeX files) into a single LaTeX file for some journals. - A new "Maneage Development Workflow" section has been added; see it for details. - paper.mk: empty macro files are not included in the built 'project.tex' since they have no effect and because they can cause problems with uploading to arXiv (which removes empty files). - verify.mk: when verification is activated: - When a macro file does not exist (can happen by mistake), an error is printed to remind the author. - Better dealing with empty macro files (no need to add their hash). - versions.conf: 26 Python packages that cannot currently be built with the new Python build system of Maneage have been separated and commented to cause an early crash if they are required; and encourage volunteers to help update them. This commit is a git "squash" of contributions from the following people - Boud Roukema: updated/added Python packages and fixed many portability issues. - Faezeh Bidjarchian: fixed some portability issues on macOS. - Giacomo Lorenzetti: tested and fixed issues in newly added software. - Khalid Masum: fixed issue with order of LD_LIBRARY_PATH in 'basic.mk'. - Mohammad Akhlaghi: fixed basic software issues and reviewed edits for the merge. - Raul Infante-Sainz: fixed portability issues on macOS. - Sepideh Eskandarlou: helped in finding the verification fixes. [1] Updated software Name Group Version (old -> new) ---- ----- -------------------- GNU Coreutils basic 9.9 -> 9.11 GNU Gettext basic 0.26 -> 1.0 GNU libunistring basic 1.4.1 -> 1.4.2 GNU M4 basic 1.4.20 -> 1.4.21 GNU Nano basic 8.7 -> 9.0 Ninja high-level 1.12.1 -> 1.13.2 OpenMPI high-level 4.1.1 -> 5.0.10 SWIG high-level 4.0.2 -> 4.3.1 Zip high-level 3.0 -> 3.0-15 Astropy python 7.0.1 -> 7.1.0 mpi4py python 3.1.3 -> 4.0.3 setuptools python 75.8.0 -> 80.8.0 [2] Removed software: 'podlators' has been removed from basic software because the necessary scripts that it provided are included in Perl's default installation. [3] New software: Name Group Version ---- ----- ------- framel high-level 8.47.3 GNU Parallel high-level 20260322 Healpix high-level 3.83-2024Nov13 Metaio high-level 8.5.0-a5da19d PCRE2 high-level 10.45 SQLite high-level 3.53.0 TCL high-level 9.1a1 TK high-level 9.1a1 tzdb high-level 2026a lalsuite high-level v7.26-15-g1e4c5e5080 astropy-healpix python 1.1.2 colorama python 0.4.6 cosmodesi-mpytools python 1.0.0-04369fc9 exceptiongroup python 1.3.0 filt-scm python 1.7.0 hatchling python 1.27.0 hatch-vcs python 0.5.0 healpy python 1.18.1 joblib python 1.5.0 igwn-ligolw python 2.1.0 igwn-segments python 2.1.0 iniconfig python 2.1.0 ligo-skymap python 2.4.0 lscsoft-glue python 4.1.0 networkx python 3.5 pandas python 2.2.3 pathspec python 0.12.1 pluggy python 1.6.0 pyfftw python 0.15.1 pygments python 2.19.2 pytest python 8.4.1 python3-fitsio python 1.3.0 pytz python 2025.2 scikit-base python 0.12.2 scikit-learn python 1.6.1 threadpoolctl python 3.6.0 tqdm python 4.67.1 trove-classifiers python 2025.5.9.12 versioneer python 0.29 --- reproduce/software/config/versions.conf | 170 ++++++++++++++++++++------------ 1 file changed, 106 insertions(+), 64 deletions(-) (limited to 'reproduce/software/config/versions.conf') diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf index 7d4a3b5..3e4ec9a 100644 --- a/reproduce/software/config/versions.conf +++ b/reproduce/software/config/versions.conf @@ -20,17 +20,14 @@ bash-version = 5.3.9 binutils-version = 2.45.1 bison-version = 3.8.2 -coreutils-version = 9.9 +coreutils-version = 9.11 curl-version = 8.17.0 diffutils-version = 3.12 -file-version = 5.46 findutils-version = 4.10.0 flock-version = 0.4.0 gawk-version = 5.3.2 -gcc-version = 15.2.0 -gettext-version = 0.26 +gettext-version = 1.0 git-version = 2.52.0 -gmp-version = 6.3.0 grep-version = 3.12 gzip-version = 1.14 help2man-version = 1.49.3 @@ -38,17 +35,16 @@ isl-version = 0.27 less-version = 685 libiconv-version = 1.18 libtool-version = 2.5.4 -libunistring-version = 1.4.1 +libunistring-version = 1.4.2 libxml2-version = 2.15.1 lzip-version = 1.25 -m4-version = 1.4.20 +m4-version = 1.4.21 make-version = 4.4.1 mpc-version = 1.3.1 mpfr-version = 4.2.2 -nano-version = 8.7 +nano-version = 9.0 openssl-version = 3.6.0 perl-version = 5.42.0 -podlators-version = 6.0.2 readline-version = 8.3.3 sed-version = 4.9 tar-version = 1.35 @@ -57,7 +53,6 @@ unzip-version = 6.0 wget-version = 1.25.0 which-version = 2.23 xz-version = 5.6.3 -zip-version = 3.0 zlib-version = 1.3.1 # Version-dependent build @@ -101,13 +96,23 @@ dash-version = 0.5.12 # # As of GCC 15.1, the default C standard has been changed from C17 to C23 # and the following software cannot be built with C23. So we have added -# '-std=c17' to the CFLAGS environment variable in their build rules. After -# updating their version (and if you have GCC 15.1 or later) first remove -# '-std=c17' and then try the build. If it works, move the software back up -# to the main list before the commit. +# '-std=$(GNU_STD_OLD)' to the CFLAGS environment variable in their build +# rules. A test is done in 'configure.sh' to see if the host compiler has +# 'gnu17' and if not, to use 'gnu99'. After updating a package's version +# (and if you have GCC 15.1 or later) first remove '-std=$(GNU_STD_OLD)' +# and then try the build. If it works, move the software package back up to +# the main list before making a commit. +gmp-version = 6.3.0 +file-version = 5.46 ncurses-version = 6.5 pkgconfig-version = 0.29.2 +# GCC +# --- +# +# There is a version-specific 'sed -e' fix for a bug in this version of GCC +# that should no longer be necessary in future versions. +gcc-version = 15.2.0 @@ -138,6 +143,7 @@ emacs-version = 28.1 expat-version = 2.6.4 fftw-version = 3.3.10 flex-version = 2.6.4-410-74a89fd +framel-version = 8.47.3 freetype-version = 2.13.3 gdb-version = 11.1 ghostscript-fonts-gnu-version = 6.0 @@ -146,6 +152,7 @@ ghostscript-version = 10.06.0 gnuastro-version = 0.24 gperf-version = 3.1 gsl-version = 2.8 +healpix-version = 3.83-2024Nov13 icu-version = 70.1 imagemagick-version = 7.1.0-13 imfit-version = 1.6.1 @@ -159,14 +166,17 @@ libpaper-version = 1.1.29 libpng-version = 1.6.46 libtiff-version = 4.7.0 libtirpc-version = 1.2.6 +metaio-version = 8.5.0-a5da19d metastore-version = 1.1.2-23-fa9170b missfits-version = 2.8.0 -ninjabuild-version = 1.12.1 +ninjabuild-version = 1.13.2 openblas-version = 0.3.29 -openmpi-version = 4.1.1 +openmpi-version = 5.0.10 openssh-version = 8.0p1 +parallel-version = 20260322 patch-version = 2.7.6 pcre-version = 8.44 +pcre2-version = 10.45 pixman-version = 0.40.0 plplot-version = 5.15.0 r-cran-version = 4.1.2 @@ -174,14 +184,19 @@ rpcsvc-proto-version = 1.4 scamp-version = 2.10.0 scons-version = 3.0.5 sextractor-version = 2.25.0 +sqlite-version = 3.53.0 swarp-version = 2.41.5 -swig-version = 4.0.2 +swig-version = 4.3.1 +tcl-version = 9.1a1 tides-version = 2.0 +tk-version = 9.1a1 +tzdb-version = 2026a util-linux-version = 2.41.3 valgrind-version = 3.18.1 wcslib-version = 8.5 xlsxio-version = 0.2.21 yaml-version = 0.2.5 +zip-version = 3.0-15 # Xorg packages fontconfig-version = 2.16.0 @@ -224,6 +239,17 @@ minizip-version = $(zlib-version) # version 1.12.0. hdf5-version = 1.13.1 +# The lalsuite tarball within Maneage is based on the upstream commit +# 678514ed of 21 May 2025 of https://git.ligo.org/lscsoft/lalsuite. But +# instead of being a 950 Mb '.tar.gz' file including the '.git/' directory +# (or a 320 Mb '.tar.gz' file without the '.git/' directory), our tarball +# is a 25 Mb '.tar.lz' file (a factor of 30 to 10 times smaller). The main +# difference (apart from the extra compression provided by lzip) is that +# this light tarball does not include the big test data files. A +# description of how this tarball was made and what files have been removed +# is in the 'README-Maneage-LightWeight.md' file that is within the +# tarball. +lalsuite-version = v7.26-15-g1e4c5e5080 @@ -238,74 +264,77 @@ hdf5-version = 1.13.1 # URL in 'reproduce/software/make/python.mk'. # # CLASS:PYTHON-START (important identifier for 'awk'; don't modify this line) -asn1crypto-version = 0.24.0 -asteval-version = 0.9.16 -astropy-version = 7.0.1 +astropy-healpix-version = 1.1.2 astropy-iers-data-version = 0.2025.2.24.0.34.4 +astropy-version = 7.1.0 beautifulsoup4-version = 4.10.0 -beniget-version = 0.4.1 -certifi-version = 2018.11.29 cffi-version = 1.15.0 -chardet-version = 3.0.4 +colorama-version = 0.4.6 contourpy-version = 1.3.1 -corner-version = 2.0.1 +cosmodesi-mpytools-version = 1.0.0-04369fc9 cppy-version = 1.3.1 cycler-version = 0.12.1 cython-version = 3.0.12 -eigency-version = 1.77 -emcee-version = 3.0.1 -entrypoints-version = 0.3 -esutil-version = 0.6.9 +exceptiongroup-version = 1.3.0 extension-helpers-version = 1.2.0 features-version = 0.5.12 flake8-version = 3.7.8 flit-core-version = 3.11.0 +flit-scm-version = 1.7.0 fonttools-version = 4.56.0 -future-version = 0.18.1 galsim-version = 2.3.5 -gast-version = 0.5.3 gpep517-version = 16 h5py-version = 2.10.0 +hatch-vcs-version = 0.5.0 +hatchling-version = 1.27.0 +healpy-version = 1.18.1 html5lib-version = 1.0.1 -idna-version = 2.8 -jeepney-version = 0.4 +igwn-ligolw-version = 2.1.0 +igwn-segments-version = 2.1.0 +iniconfig-version = 2.1.0 jinja2-version = 3.0.3 +joblib-version = 1.5.0 kiwisolver-version = 1.4.8 +ligo-skymap-version = 2.4.0 lmfit-version = 0.9.14 +lscsoft-glue-version = 4.1.0 lsstdesccoord-version = 1.2.0 -markupsafe-version = 2.0.1 -meson-version = 1.7.0 meson-python-version = 0.17.1 -mpi4py-version = 3.1.3 -mpmath-version = 1.1.0 +meson-version = 1.7.0 +mpi4py-version = 4.0.3 +networkx-version = 3.5 numpy-version = 2.2.3 packaging-version = 24.2 -pexpect-version = 4.7.0 +pandas-version = 2.2.3 +pathspec-version = 0.12.1 pillow-version = 11.1.0 pip-version = 19.0.2 -ply-version = 3.11 +pluggy-version = 1.6.0 pybind11-version = 2.13.6 -pycodestyle-version = 2.5.0 -pycparser-version = 2.19 pyerfa-version = 2.0.1.5 -pyflakes-version = 2.1.1 -pyproject-metadata-version = 0.9.0 +pyfftw-version = 0.15.1 +pygments-version = 2.19.2 pyparsing-version = 3.2.1 -pypkgconfig-version = 1.5.1 +pyproject-metadata-version = 0.9.0 +pytest-version = 8.4.1 python-dateutil-version = 2.9.0.post0 python-installer-version = 0.7.0 +python3-fitsio-version = 1.3.0 pythran-version = 0.11.0 +pytz-version = 2025.2 pyyaml-version = 6.0.2 requests-version = 2.21.0 -setuptools-version = 75.8.0 +scikit-base-version = 0.12.2 +scikit-learn-version = 1.6.1 setuptools-scm-version = 8.2.0 +setuptools-version = 80.8.0 sip_tpv-version = 1.1 six-version = 1.17.0 -soupsieve-version = 1.8 sympy-version = 1.4 -uncertainties-version = 3.1.6 -urllib3-version = 1.24.1 -webencodings-version = 0.5.1 +threadpoolctl-version = 3.6.0 +tqdm-version = 4.67.1 +trove-classifiers-version = 2025.5.9.12 +versioneer-version = 0.29 wheel-version = 0.45.1 # Matplotlib and Scipy are big packages that may have difficulty resolving @@ -315,26 +344,11 @@ scipy-version = 1.15.2 # CLASS:PYTHON-END (important identifier for 'awk'; don't modify this line) -# Special Python modules: -# -# Healpy: When any Python module is requested, healpix will also build its -# Python module Healpy. -# -# Bug: Healpix 3.50 doesn't yet support Python 3.10, so we are commenting -# it here. When future versions fix the problem, we'll un-comment it again. -#healpy-version = xxxxx - -# Problematic software that are currently ignored: - -# Healpix 3.80 has different installation scheme that is not yet -# implemented here, and unfortunately healpix 3.50 has conflicts with -# CFITSIO's new version macro and Python 3.10. So for now, we are ignoring -# it. -#healpix-version = 3.50 +# Problematic software that is currently ignored: # Setuptools-rust crash (https://savannah.nongnu.org/bugs/index.php?61731), # so it and its dependencies are being ignored: 'cryptography', and thus @@ -346,6 +360,34 @@ semantic-version-version = 2.10.0 #keyring-version = 18.0.0 #astroquery-version = 0.4 +# Not yet adated to the GPEP517 build method: +#asn1crypto-version = 0.24.0 +#asteval-version = 0.9.16 +#beniget-version = 0.4.1 +#certifi-version = 2018.11.29 +#chardet-version = 3.0.4 +#corner-version = 2.0.1 +#eigency-version = 1.77 +#emcee-version = 3.0.1 +#entrypoints-version = 0.3 +#esutil-version = 0.6.9 +#future-version = 0.18.1 +#gast-version = 0.5.3 +#idna-version = 2.8 +#jeepney-version = 0.4 +#markupsafe-version = 2.0.1 +#mpmath-version = 1.1.0 +#pexpect-version = 4.7.0 +#ply-version = 3.11 +#pycodestyle-version = 2.5.0 +#pycparser-version = 2.19 +#pyflakes-version = 2.1.1 +#pypkgconfig-version = 1.5.1 +#soupsieve-version = 1.8 +#uncertainties-version = 3.1.6 +#urllib3-version = 1.24.1 +#webencodings-version = 0.5.1 + -- cgit v1.2.1