diff options
| author | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2025-12-29 21:02:50 +0100 |
|---|---|---|
| committer | Mohammad Akhlaghi <mohammad@akhlaghi.org> | 2025-12-29 21:02:50 +0100 |
| commit | 7719b8c404e5ccba010c1e5cce0a5dfd905a29ef (patch) | |
| tree | c7d83cee4d2b39ea9d37bc677283817f491d3edb /reproduce/software | |
| parent | 557299b2bafee350e4d60a334990563c931fcf6a (diff) | |
Summary: The Apptainer script's option names have been renamed: '--sif' and
'--base-sif' are new names for the old '--project-name' and '--base-name'.
Until now the options that took SIF files in the Apptainer script were not
too clear (in their name): ending in '-name' (not clearly mentioning that
it needs a file name). Also, in the same script, we had forgot to add an
option to allow the user to choose a different base operating system!
With this commit, both the issues above have been fixed: the options end in
'-sif' (clearly informing the user that a SIF file is expected) and we now
have a new '--base-os' option. In the process, a few other parts of Maneage
were also polished:
- README-hacking.md: the newly published J-PLUS PSF paper was added to
the list of Maneage'd papers and the final journal information for the
NASIM paper has been added. Some typos here and there were also fixed.
- The curretnly used VIM needed the the '-std=gnu17': necessary now that
the default Maneage GCC 15.2.0 for the high-level software which
defaults to C23.
Diffstat (limited to 'reproduce/software')
| -rw-r--r-- | reproduce/software/config/versions.conf | 9 | ||||
| -rw-r--r-- | reproduce/software/make/high-level.mk | 1 | ||||
| -rwxr-xr-x | reproduce/software/shell/apptainer.sh | 44 |
3 files changed, 30 insertions, 24 deletions
diff --git a/reproduce/software/config/versions.conf b/reproduce/software/config/versions.conf index db5ac8e..f0c2a36 100644 --- a/reproduce/software/config/versions.conf +++ b/reproduce/software/config/versions.conf @@ -179,7 +179,6 @@ swig-version = 4.0.2 tides-version = 2.0 util-linux-version = 2.41.3 valgrind-version = 3.18.1 -vim-version = 9.0 wcslib-version = 8.5 xlsxio-version = 0.2.21 yaml-version = 0.2.5 @@ -200,8 +199,12 @@ xcb-proto-version = 1.17.0 xorgproto-version = 2024.1 xtrans-version = 1.5.2 -# Version-dependent build -# ----------------------- +# Not working with C23 (similar to same topic in basic): future versions +# may have fixed this problem, so when updating, first remove '-std=gnu17' +# and if it builds without crashing, put this back in the normal list. +vim-version = 9.0 + +# Version is in the build recipe lapack-version = 3.8.0 libgit2-version = 1.9.0 diff --git a/reproduce/software/make/high-level.mk b/reproduce/software/make/high-level.mk index 685715f..8ee505c 100644 --- a/reproduce/software/make/high-level.mk +++ b/reproduce/software/make/high-level.mk @@ -1830,6 +1830,7 @@ $(ibidir)/vim-$(vim-version): unpackdir=vim-$(vim-version) cd $(ddir)/$$unpackdir $(shsrcdir)/prep-source.sh $(ibdir) + export CFLAGS="-std=gnu17 $$CFLAGS" ./configure --prefix=$(idir) \ --disable-canberra \ --enable-multibyte \ diff --git a/reproduce/software/shell/apptainer.sh b/reproduce/software/shell/apptainer.sh index 51b36db..6ac9975 100755 --- a/reproduce/software/shell/apptainer.sh +++ b/reproduce/software/shell/apptainer.sh @@ -71,14 +71,14 @@ set -e # Default option values +sif="" jobs=0 quiet=0 source_dir= build_only= -base_name="" +base_sif="" shm_size=20gb scriptname="$0" -project_name="" project_shell=0 container_shell=0 base_os=debian:stable-slim @@ -97,9 +97,9 @@ Top-level script to build and run a Maneage'd project within Apptainer. --source-dir=STR Directory of source code (default: 'pwd -P'). Apptainer images + --sif=STR Project's apptainer image (a '.sif' file). --base-os=STR Base OS name (default: '$base_os'). - --base-name=STR Base OS apptainer image (a '.sif' file). - --project-name=STR Project's apptainer image (a '.sif' file). + --base-sif=STR Base OS apptainer image (a '.sif' file). Interactive shell --project-shell Open the project's shell within the container. @@ -155,10 +155,12 @@ do --source-dir=*) source_dir="${1#*=}"; check_v "$1" "$source_dir"; shift;; # Container options. - --base-name) base_name="$2"; check_v "$1" "$base_name"; shift;shift;; - --base-name=*) base_name="${1#*=}"; check_v "$1" "$base_name"; shift;; - --project-name) project_name="$2"; check_v "$1" "$project_name"; shift;shift;; - --project-name=*) project_name="${1#*=}"; check_v "$1" "$project_name"; shift;; + --sif) sif="$2"; check_v "$1" "$sif"; shift;shift;; + --sif=*) sif="${1#*=}"; check_v "$1" "$sif"; shift;; + --base-os) base_os="$2"; check_v "$1" "$base_os"; shift;shift;; + --base-os=*) base_os="${1#*=}"; check_v "$1" "$base_os"; shift;; + --base-sif) base_sif="$2"; check_v "$1" "$base_sif"; shift;shift;; + --base-sif=*) base_sif="${1#*=}"; check_v "$1" "$base_sif"; shift;; # Interactive shell. --project-shell) project_shell=1; shift;; @@ -206,8 +208,8 @@ fi # Set the default project and base-OS image names (inside the build # directory). -if [ x"$base_name" = x ]; then base_name=$build_dir/maneage-base.sif; fi -if [ x"$project_name" = x ]; then project_name=$build_dir/maneaged.sif; fi +if [ x"$base_sif" = x ]; then base_sif=$build_dir/maneage-base.sif; fi +if [ x"$sif" = x ]; then sif=$build_dir/maneaged.sif; fi @@ -278,9 +280,9 @@ fi # # Build the base operating system using Maneage's './project configure' # step. -if [ -f $project_name ]; then +if [ -f $sif ]; then if [ $quiet = 0 ]; then - printf "$scriptname: info: project's image ('$project_name') " + printf "$scriptname: info: project's image ('$sif') " printf "already exists and will be used. If you want to build a " printf "new project image, give a new name to '--project-name'. " printf "To remove this message run with '--quiet'\n" @@ -289,12 +291,12 @@ else # Build the basic definition, with just Debian-slim with minimal # necessary tools. - if [ -f $base_name ]; then + if [ -f $base_sif ]; then if [ $quiet = 0 ]; then printf "$scriptname: info: base OS apptainer image " - printf "('$base_name') already exists and will be used. " + printf "('$base_sif') already exists and will be used. " printf "If you want to build a new base OS image, give " - printf "a new name to '--base-name'. To remove this " + printf "a new name to '--base-sif'. To remove this " printf "message run with '--quiet'\n" fi else @@ -309,7 +311,7 @@ From: $base_os EOF # Build the base operating system container and delete the # temporary definition file. - apptainer build $base_name $base_def + apptainer build $base_sif $base_def rm $base_def fi @@ -330,7 +332,7 @@ EOF maneage_def=$build_dir/maneage.def cat <<EOF > $maneage_def Bootstrap: localimage -From: $base_name +From: $base_sif %setup mkdir -p \${APPTAINER_ROOTFS}/home/maneager/input @@ -385,7 +387,7 @@ EOF $software_dir_mnt \ --ignore-fakeroot-command \ \ - $project_name \ + $sif \ $maneage_def # Clean up. @@ -397,7 +399,7 @@ fi if ! [ x"$build_only" = x ]; then if [ $quiet = 0 ]; then printf "$scriptname: info: Maneaged project has been configured " - printf "successfully in the '$project_name' image" + printf "successfully in the '$sif' image" fi exit 0 fi @@ -419,7 +421,7 @@ else fi # Build the hostname from the name of the SIF file of the project name. -hstname=$(echo "$project_name" \ +hstname=$(echo "$sif" \ | awk 'BEGIN{FS="/"}{print $NF}' \ | sed -e's|.sif$||') @@ -454,4 +456,4 @@ apptainer $aopt \ --hostname $hstname \ --cwd /home/maneager/source \ \ - $project_name + $sif |
