Skip to content

Commit d8893a4

Browse files
authored
DAOS-18702 build: Use leap 15.6 for build (2.6 backport) (#17738) (#17809)
New Go compiler >= 1.24 is required for recently detected vulnerability fix (#17732). This version of compiler is not available in leap 15.5, so leap 15.6 must be used for DAOS build. The solution requires the lua-lmod version > 8.7.34 available in a repository with the higher priority than OS default one like in example below: [opensuse-network-cluster-proxy-artifactory] name=opensuse-$releasever-net-clu-proxy-artifactory ... priority=1 Signed-off-by: Tomasz Gromadzki <tomasz.gromadzki@hpe.com>
1 parent d8595cd commit d8893a4

5 files changed

Lines changed: 54 additions & 12 deletions

File tree

Jenkinsfile

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -553,7 +553,7 @@ pipeline {
553553
}
554554
}
555555
}
556-
stage('Build RPM on Leap 15.5') {
556+
stage('Build RPM on Leap 15.6') {
557557
when {
558558
beforeAgent true
559559
expression { !skipStage() }
@@ -566,8 +566,7 @@ pipeline {
566566
' --cap-add=SYS_ADMIN' +
567567
' --privileged=true' +
568568
' -v /scratch:/scratch'
569-
additionalBuildArgs dockerBuildArgs() +
570-
'--build-arg FVERSION=37'
569+
additionalBuildArgs dockerBuildArgs()
571570
}
572571
}
573572
steps {
@@ -707,10 +706,10 @@ pipeline {
707706
}
708707
}
709708
}
710-
stage('Build on Leap 15.5') {
709+
stage('Build on Leap 15.6') {
711710
when {
712711
beforeAgent true
713-
expression { !params.CI_leap15_NOBUILD && !skipStage() }
712+
expression { !params.CI_leap15_NOBUILD && !skipStage() }
714713
}
715714
agent {
716715
dockerfile {
@@ -719,15 +718,19 @@ pipeline {
719718
additionalBuildArgs dockerBuildArgs(repo_type: 'stable',
720719
parallel_build: true,
721720
deps_build: true) +
722-
" -t ${sanitized_JOB_NAME()}-leap15-gcc"
721+
" -t ${sanitized_JOB_NAME()}-leap15-gcc" +
722+
' --build-arg POINT_RELEASE=.6 ' +
723+
' --build-arg REPOS="' + prRepos() + '"'
723724
}
724725
}
725726
steps {
726727
job_step_update(
727728
sconsBuild(parallel_build: true,
729+
stash_files: 'ci/test_files_to_stash.txt',
730+
build_deps: 'no',
731+
stash_opt: true,
728732
scons_args: sconsFaultsArgs() +
729-
' PREFIX=/opt/daos TARGET_TYPE=release',
730-
build_deps: 'yes'))
733+
' PREFIX=/opt/daos TARGET_TYPE=release'))
731734
}
732735
post {
733736
unsuccessful {

ci/parse_ci_envs.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ if [ -n "${STAGE_NAME:?}" ]; then
2323
: "${REPO_SPEC:=el-9}"
2424
;;
2525
*Leap\ 15.6*|*leap15.6*|*opensuse15.6*|*sles15.6*)
26-
: "${CHROOT_NAME:=opensuse-leap-15.5-x86_64}"
26+
: "${CHROOT_NAME:=opensuse-leap-15.6-x86_64}"
2727
: "${TARGET:=leap15.6}"
2828
;;
2929
*Leap\ 15.5*|*leap15.5*|*opensuse15.5*|*sles15.5*)
@@ -39,7 +39,7 @@ if [ -n "${STAGE_NAME:?}" ]; then
3939
: "${TARGET:=leap15.3}"
4040
;;
4141
*Leap\ 15*|*leap15*|*opensuse15*|*sles15*)
42-
: "${CHROOT_NAME:=opensuse-leap-15.5-x86_64}"
42+
: "${CHROOT_NAME:=opensuse-leap-15.6-x86_64}"
4343
: "${TARGET:=leap15}"
4444
: "${REPO_SPEC:=sl-15}"
4545
;;

ci/provisioning/post_provision_config_nodes_LEAP.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
#!/bin/bash
22
#
33
# Copyright 2021-2024 Intel Corporation.
4-
# Copyright 2025 Hewlett Packard Enterprise Development LP
4+
# Copyright 2025-2026 Hewlett Packard Enterprise Development LP
55
#
66
# SPDX-License-Identifier: BSD-2-Clause-Patent
77

88
bootstrap_dnf() {
99
rm -rf "$REPOS_DIR"
1010
ln -s ../zypp/repos.d "$REPOS_DIR"
11-
dnf -y remove lua54 lua-lmod
11+
dnf -y remove lua-lmod
1212
dnf -y --nogpgcheck install lua-lmod --repo '*lua*' --repo '*network-cluster*' --repo '*oss-proxy*'
1313
}
1414

utils/docker/Dockerfile.leap.15

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,20 @@ RUN if [ -n "$REPO_FILE_URL" ]; then direct="${REPO_FILE_URL##*//}; "\
4545
dnf clean all && \
4646
rm -f /tmp/install.sh
4747

48+
# According to https://pkgs.org/search/?q=lua-lmod, Leap 15.6 only has lua-lmod-8.7.34.
49+
# This version has a problem with loading modules, as described in https://github.com/TACC/Lmod/issues/687.
50+
# This affects MPI detection in scons, so DAOS cannot be built with MPI support.
51+
# A custom source of the package is required in CI to install a valid version
52+
# of lua-lmod and its dependencies:
53+
# opensuse-network-cluster for lua-lmod (>=8.7.55)
54+
# opensuse-oss for lua53, lua53-luaterm,, sqlite3-tcl, tcl
55+
# opensuse-devel-languages-lua for lua53-luafilesystem, lua53-luaposix
56+
ARG JENKINS_URL
57+
RUN if [ -n "$JENKINS_URL" ]; then \
58+
dnf -y remove lua-lmod; \
59+
dnf -y --nogpgcheck install lua-lmod --repo '*lua*' --repo '*network-cluster*' --repo '*oss-proxy*'; \
60+
fi
61+
4862
# Add DAOS users
4963
ARG UID=1000
5064
COPY ./utils/scripts/helpers/daos-server-user-setup.sh \

utils/rpms/packaging/rpm_chrootbuild

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,14 @@ EOF
5353
repo_adds=()
5454
repo_dels=()
5555

56+
# Only for Leap 15.6 chroot
57+
# see ../../docker/Dockerfile.leap.15 for more details
58+
if [[ "${CHROOT_NAME}" == *opensuse-leap-15.6* ]]; then
59+
repo_adds+=("--enablerepo=*opensuse-devel-languages-lua-*")
60+
repo_adds+=("--enablerepo=*opensuse-network-cluster-*")
61+
repo_adds+=("--enablerepo=*opensuse-oss-*")
62+
fi
63+
5664
echo -e "config_opts['yum.conf'] += \"\"\"\n" >> mock.cfg
5765

5866
if [ -n "${ARTIFACTORY_URL:-}" ] && "$LOCAL_REPOS"; then
@@ -121,6 +129,23 @@ enabled=1\n" >> mock.cfg
121129
done
122130
echo "\"\"\"" >> mock.cfg
123131

132+
# Only for Leap 15.6 chroot
133+
# see ../../docker/Dockerfile.leap.15 for more details
134+
if [[ "${CHROOT_NAME}" == *opensuse-leap-15.6* ]]; then
135+
# Ensure lua-lmod is installed in the chroot
136+
cat >> mock.cfg <<'EOF'
137+
138+
_pkgs = config_opts.get('chroot_additional_packages')
139+
if _pkgs is None:
140+
config_opts['chroot_additional_packages'] = ['lua-lmod']
141+
elif isinstance(_pkgs, str):
142+
config_opts['chroot_additional_packages'] = f"{_pkgs} lua-lmod".strip()
143+
else:
144+
config_opts['chroot_additional_packages'] = list(_pkgs) + ['lua-lmod']
145+
EOF
146+
147+
fi
148+
124149
if [ -n "$DISTRO_VERSION" ]; then
125150
releasever_opt=("--config-opts=releasever=$DISTRO_VERSION")
126151
fi

0 commit comments

Comments
 (0)