Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add functionality for rebuilding software: try it on OpenMPI 4.1.x to fix smcuda issue #488

Merged
merged 63 commits into from
Mar 26, 2024
Merged
Changes from 3 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
e666e2c
launch with --fakeroot for build jobs triggered by bot
bedroge Mar 1, 2024
34bc1c2
remove existing dirs for rebuilds
bedroge Mar 1, 2024
46e7532
rebuild all OpenMPI 4.1.x versions
bedroge Mar 1, 2024
21959d6
add some comments/links
bedroge Mar 1, 2024
7054a58
fix syntax, add missing parentheses
bedroge Mar 1, 2024
7b78861
remove spaces from blank lines
bedroge Mar 1, 2024
87e5ff0
rename file to be able to find EB version
bedroge Mar 1, 2024
d07879f
clarify comment about fakeroot
bedroge Mar 1, 2024
135c3c8
add --allow-use-as-root-and-accept-consequences
bedroge Mar 1, 2024
f1831b4
add missing $
bedroge Mar 1, 2024
68212a4
fix app_dir variable
bedroge Mar 1, 2024
6bcd0e3
split loop, first remove everything that needs to be removed, then dr…
bedroge Mar 1, 2024
c81c0de
add missing else and fi
bedroge Mar 1, 2024
f994583
su without hypen
bedroge Mar 1, 2024
21e3735
rerun the script with a regular user after removing installations
bedroge Mar 1, 2024
4f436b3
fix typo and add missing quote
bedroge Mar 1, 2024
0676fda
fix syntax
bedroge Mar 1, 2024
95d6aaa
fix typo in app_dir variable
bedroge Mar 1, 2024
e52afc1
run removal step without Prefix
bedroge Mar 1, 2024
be4c592
move removal part to its own script, at least for now
bedroge Mar 1, 2024
340b833
remove su, add error message
bedroge Mar 5, 2024
88d21d9
first run the EESSI-remove-software.sh script in a separate container…
bedroge Mar 5, 2024
499328d
undo
bedroge Mar 5, 2024
8100fed
dont use TMPDIR
bedroge Mar 5, 2024
c758d74
use EUID instead of UID
bedroge Mar 5, 2024
78cc503
do set/override TMPDIR
bedroge Mar 5, 2024
c660a42
dont set fakeroot here
bedroge Mar 8, 2024
be5aa37
run build step with fakeroot
bedroge Mar 8, 2024
4946b08
if run as root, run the removal script
bedroge Mar 8, 2024
123c47a
add fakeroot option
bedroge Mar 8, 2024
93ccf68
add echo
bedroge Mar 8, 2024
017803b
add echo
bedroge Mar 8, 2024
c492406
add removal step
bedroge Mar 8, 2024
7b57e81
remove removal step
bedroge Mar 8, 2024
485ff46
call EESSI-remove-software.sh for removal step
bedroge Mar 8, 2024
8204a52
remove echo command
bedroge Mar 8, 2024
15eb765
remove unused code
bedroge Mar 8, 2024
1f7501f
rename remove to removal, resume tarball step from removal dir
bedroge Mar 8, 2024
333762b
determine whether or not the removal step has to be run
bedroge Mar 11, 2024
0b826ae
remove proxy arguments
bedroge Mar 12, 2024
0ed1249
remove code for setting http(s)_proxy
bedroge Mar 12, 2024
bc4fd89
no need to set build logs dir
bedroge Mar 12, 2024
fd7a9ea
remove commented code
bedroge Mar 12, 2024
994d573
fix comment about purpose of script
bedroge Mar 12, 2024
3d7a959
remove code and parameter for setting shared fs path
bedroge Mar 12, 2024
6d49425
Merge branch '2023.06-software.eessi.io' into software_rebuilds
bedroge Mar 13, 2024
a148920
remove openmpi hook that provided a temporary workaround
bedroge Mar 13, 2024
2a7629c
solve merge conflict, remove openmpi hook that provided a temporary w…
bedroge Mar 13, 2024
5d4542e
remove hook.register for cuda hook
bedroge Mar 13, 2024
9d62787
source init/bash instead of minimal eessi env
bedroge Mar 26, 2024
229ce93
remove GENERIC variable
bedroge Mar 26, 2024
977bcaa
clean up eb optarch=generic settings
bedroge Mar 26, 2024
f1cfc1b
source init/bash and clean up redundant code
bedroge Mar 26, 2024
aa4a82d
set EB variable
bedroge Mar 26, 2024
6ca6a70
remove build-dir argument from display_help
bedroge Mar 26, 2024
e89cb05
export the EASYBUILD_OPTARCH variable
bedroge Mar 26, 2024
502c023
remove EASYBUILD_OPTARCH
bedroge Mar 26, 2024
3206a0f
remove echo_yellow call for generic builds
bedroge Mar 26, 2024
ee1c2ce
use separate variable for removal script arguments
bedroge Mar 26, 2024
c55ee6b
clarify why we need fakeroot, add link to issue
bedroge Mar 26, 2024
85a6749
Merge branch '2023.06-software.eessi.io' into software_rebuilds
bedroge Mar 26, 2024
57d8b6f
remove openmpi hook for smcuda workaround
bedroge Mar 26, 2024
bde75ee
Merge branch '2023.06-software.eessi.io' of github.com:EESSI/software…
bedroge Mar 26, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions EESSI-install-software.sh
Original file line number Diff line number Diff line change
@@ -222,6 +222,23 @@ else
echo_green "All set, let's start installing some software with EasyBuild v${eb_version} in ${EASYBUILD_INSTALLPATH}..."

if [ -f ${easystack_file} ]; then
if [ $(basename $(dirname ${easystack_file} = 'rebuilds' ]; then
echo_green "Software rebuild(s) requested, so determining which existing installation have to be removed..."
# we need to remove existing installation directories first,
# so let's figure out which modules have to be rebuilt by doing a dry-run and grepping "someapp/someversion" for the relevant lines (with [R])
# * [R] $CFGS/s/someapp/someapp-someversion.eb (module: someapp/someversion)
rebuild_apps=$(${EB} --dry-run-short --rebuild --easystack ${easystack_file} | grep "^ \* \[R\]" | grep -o "module: .*[^)]" | awk '{print $2}')
for app in ${rebuild_apps}; do
app_dir=${EASYBUILD_INSTALLPATH}/software/${app}
app_module=${EASYBUILD_INSTALLPATH}/modules/all/${app}.lua
echo_yellow "Removing ${appdir} and {app_module}..."
rm -rf ${appdir}
rm -rf ${app_module}
done
fi
# drop back to a regular user
su - eessi

echo_green "Feeding easystack file ${easystack_file} to EasyBuild..."

${EB} --easystack ${TOPDIR}/${easystack_file} --robot
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
easyconfigs:
- OpenMPI-4.1.4-GCC-12.2.0.eb:
options:
from-pr: 19940
- OpenMPI-4.1.5-GCC-12.3.0:
options:
from-pr: 19940
- OpenMPI-4.1.6-GCC-13.2.0:
options:
from-pr: 19940
5 changes: 5 additions & 0 deletions eessi_container.sh
Original file line number Diff line number Diff line change
@@ -585,6 +585,11 @@ if [[ "${ACCESS}" == "ro" ]]; then
fi

if [[ "${ACCESS}" == "rw" ]]; then
if [[ ! -z ${JOB_CFG_FILE} ]]; then
# always launch build jobs triggered by the job with --fakeroot,
# we drop back to a regular user in the build script
ADDITIONAL_CONTAINER_OPTIONS+=("--fakeroot")
fi
mkdir -p ${EESSI_TMPDIR}/overlay-upper
mkdir -p ${EESSI_TMPDIR}/overlay-work