Skip to content
10 changes: 9 additions & 1 deletion EESSI-install-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -336,7 +336,15 @@ else
if [ -f ${easystack_file} ]; then
echo_green "Feeding easystack file ${easystack_file} to EasyBuild..."

${EB} --easystack ${easystack_file} --robot
if [[ ${easystack_file} == *"/rebuilds/"* ]]; then
# the removal script should have removed the original directory and created a new and empty one
# to work around permission issues:
# https://github.com/EESSI/software-layer/issues/556
echo_yellow "This is a rebuild, so using --try-amend=keeppreviousinstall=True to reuse the already created directory"
${EB} --easystack ${easystack_file} --robot --try-amend=keeppreviousinstall=True
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@bedroge Pre-creating an empty installation directory and telling EasyBuild to reuse it rather than removing it and creating one itself helps to avoid the permission issues?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, more info in #871

else
${EB} --easystack ${easystack_file} --robot
fi
ec=$?

# copy EasyBuild log file if EasyBuild exited with an error
Expand Down
11 changes: 8 additions & 3 deletions EESSI-remove-software.sh
Original file line number Diff line number Diff line change
Expand Up @@ -125,13 +125,18 @@ if [ $EUID -eq 0 ]; then
# Two dirname invocations, so returns e.g. /cvmfs/software.eessi.io/versions/2023.06/software/linux/x86_64/amd/zen2
app_installprefix=$(dirname $(dirname ${app_modulepath}))
app_dir=${app_installprefix}/software/${app}
app_subdirs=$(find ${app_dir} -mindepth 1 -maxdepth 1 -type d)
app_module=${app_installprefix}/modules/all/${app}.lua
echo_yellow "Removing ${app_dir} and ${app_module}..."
rm -rf ${app_dir}
rm -rf ${app_module}
# recreate some directory to work around permission denied
# issues when rebuilding the package
mkdir -p ${app_dir}/easybuild
# recreate the installation directories and first-level subdirectories to work around permission denied
# issues when rebuilding the package (see https://github.com/EESSI/software-layer/issues/556)
echo_yellow "Recreating an empty ${app_dir}..."
mkdir -p ${app_dir}
for app_subdir in ${app_subdirs}; do
mkdir -p ${app_subdir}
done
done
else
fatal_error "Easystack file ${easystack_file} not found!"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
# 2025.01.21
# While adding support for Intel Sapphire Rapids, additional patches applied to the
# original easyconfig were required to successfully build SciPy-bundle 2023.07.
# In order to keep the stack consistent across the different CPUs,
# a rebuild is done for all CPU targets with this updated easyconfig.
# See:
# - https://github.com/easybuilders/easybuild-easyconfigs/pull/19419
# - https://github.com/easybuilders/easybuild-easyconfigs/pull/20817
# - https://github.com/easybuilders/easybuild-easyconfigs/pull/21693
easyconfigs:
- SciPy-bundle-2023.07-gfbf-2023a.eb:
options:
# see https://github.com/easybuilders/easybuild-easyconfigs/pull/21693
from-commit: 7c5144d2c1a061cd9f08b5901970b7f6ec5eb5c0