From eeba06d698afb64bd1f043b7edf9b1bf4dfcf8ad Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Tue, 7 Apr 2026 16:09:16 +0200 Subject: [PATCH 1/4] Custom library Signed-off-by: Tomasz Gromadzki --- Jenkinsfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Jenkinsfile b/Jenkinsfile index 2c19beedb37..a1425dc1699 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,6 +18,7 @@ // To use a test branch (i.e. PR) until it lands to master // I.e. for testing library changes //@Library(value='pipeline-lib@your_branch') _ +@Library(value='pipeline-lib@hendersp/DAOS-17203') _ // The trusted-pipeline-lib daosLatestVersion() method will convert this into a number /* groovylint-disable-next-line CompileStatic, VariableName */ From 3c7420b5e60d7276fdec9059fedcaf7dfc1d0ffb Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Wed, 25 Mar 2026 14:31:02 +0100 Subject: [PATCH 2/4] DAOS-18702 build: Use leap 15.6 for build (#17738) Upgrade Leap build environment for to use OS version 15.6 Signed-off-by: Tomasz Gromadzki --- Jenkinsfile | 19 +++++++++++-------- ci/parse_ci_envs.sh | 4 ++-- .../post_provision_config_nodes_LEAP.sh | 4 ++-- utils/docker/Dockerfile.leap.15 | 14 ++++++++++++++ 4 files changed, 29 insertions(+), 12 deletions(-) diff --git a/Jenkinsfile b/Jenkinsfile index a1425dc1699..14b6aa4f2c3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -554,7 +554,7 @@ pipeline { } } } - stage('Build RPM on Leap 15.5') { + stage('Build RPM on Leap 15.6') { when { beforeAgent true expression { !skipStage() } @@ -567,8 +567,7 @@ pipeline { ' --cap-add=SYS_ADMIN' + ' --privileged=true' + ' -v /scratch:/scratch' - additionalBuildArgs dockerBuildArgs() + - '--build-arg FVERSION=37' + additionalBuildArgs dockerBuildArgs() } } steps { @@ -708,10 +707,10 @@ pipeline { } } } - stage('Build on Leap 15.5') { + stage('Build on Leap 15.6') { when { beforeAgent true - expression { !params.CI_leap15_NOBUILD && !skipStage() } + expression { !params.CI_leap15_NOBUILD && !skipStage() } } agent { dockerfile { @@ -720,15 +719,19 @@ pipeline { additionalBuildArgs dockerBuildArgs(repo_type: 'stable', parallel_build: true, deps_build: true) + - " -t ${sanitized_JOB_NAME()}-leap15-gcc" + " -t ${sanitized_JOB_NAME()}-leap15-gcc" + + ' --build-arg POINT_RELEASE=.6 ' + + ' --build-arg REPOS="' + prRepos() + '"' } } steps { job_step_update( sconsBuild(parallel_build: true, + stash_files: 'ci/test_files_to_stash.txt', + build_deps: 'no', + stash_opt: true, scons_args: sconsFaultsArgs() + - ' PREFIX=/opt/daos TARGET_TYPE=release', - build_deps: 'yes')) + ' PREFIX=/opt/daos TARGET_TYPE=release')) } post { unsuccessful { diff --git a/ci/parse_ci_envs.sh b/ci/parse_ci_envs.sh index 84cb0183f91..332b578239b 100755 --- a/ci/parse_ci_envs.sh +++ b/ci/parse_ci_envs.sh @@ -23,7 +23,7 @@ if [ -n "${STAGE_NAME:?}" ]; then : "${REPO_SPEC:=el-9}" ;; *Leap\ 15.6*|*leap15.6*|*opensuse15.6*|*sles15.6*) - : "${CHROOT_NAME:=opensuse-leap-15.5-x86_64}" + : "${CHROOT_NAME:=opensuse-leap-15.6-x86_64}" : "${TARGET:=leap15.6}" ;; *Leap\ 15.5*|*leap15.5*|*opensuse15.5*|*sles15.5*) @@ -39,7 +39,7 @@ if [ -n "${STAGE_NAME:?}" ]; then : "${TARGET:=leap15.3}" ;; *Leap\ 15*|*leap15*|*opensuse15*|*sles15*) - : "${CHROOT_NAME:=opensuse-leap-15.5-x86_64}" + : "${CHROOT_NAME:=opensuse-leap-15.6-x86_64}" : "${TARGET:=leap15}" : "${REPO_SPEC:=sl-15}" ;; diff --git a/ci/provisioning/post_provision_config_nodes_LEAP.sh b/ci/provisioning/post_provision_config_nodes_LEAP.sh index 5a2a553e56f..14c972d63de 100644 --- a/ci/provisioning/post_provision_config_nodes_LEAP.sh +++ b/ci/provisioning/post_provision_config_nodes_LEAP.sh @@ -1,14 +1,14 @@ #!/bin/bash # # Copyright 2021-2024 Intel Corporation. -# Copyright 2025 Hewlett Packard Enterprise Development LP +# Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # SPDX-License-Identifier: BSD-2-Clause-Patent bootstrap_dnf() { rm -rf "$REPOS_DIR" ln -s ../zypp/repos.d "$REPOS_DIR" - dnf -y remove lua54 lua-lmod + dnf -y remove lua-lmod dnf -y --nogpgcheck install lua-lmod --repo '*lua*' --repo '*network-cluster*' --repo '*oss-proxy*' } diff --git a/utils/docker/Dockerfile.leap.15 b/utils/docker/Dockerfile.leap.15 index 7a982f0a237..64449aa3efd 100644 --- a/utils/docker/Dockerfile.leap.15 +++ b/utils/docker/Dockerfile.leap.15 @@ -45,6 +45,20 @@ RUN if [ -n "$REPO_FILE_URL" ]; then direct="${REPO_FILE_URL##*//}; "\ dnf clean all && \ rm -f /tmp/install.sh +# According to https://pkgs.org/search/?q=lua-lmod, Leap 15.6 only has lua-lmod-8.7.34. +# This version has a problem with loading modules, as described in https://github.com/TACC/Lmod/issues/687. +# This affects MPI detection in scons, so DAOS cannot be built with MPI support. +# A custom source of the package is required in CI to install a valid version +# of lua-lmod and its dependencies: +# opensuse-network-cluster for lua-lmod (>=8.7.55) +# opensuse-oss for lua53, lua53-luaterm,, sqlite3-tcl, tcl +# opensuse-devel-languages-lua for lua53-luafilesystem, lua53-luaposix +ARG JENKINS_URL +RUN if [ -n "$JENKINS_URL" ]; then \ + dnf -y remove lua-lmod; \ + dnf -y --nogpgcheck install lua-lmod --repo '*lua*' --repo '*network-cluster*' --repo '*oss-proxy*'; \ + fi + # Add DAOS users ARG UID=1000 COPY ./utils/scripts/helpers/daos-server-user-setup.sh \ From 49c1f2ce33d3b9deb211c73836db8db6ac860cc5 Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Tue, 7 Apr 2026 08:05:45 +0200 Subject: [PATCH 3/4] Use custom lua-lmod for RPMs build lua-lmod available in the Leap 15.6 release packages does not work as expected. We need to use the newer one for RPM's build environment. Signed-off-by: Tomasz Gromadzki Cancel-prev-build: false Priority: 2 Skip-unit-tests:true Skip-unit-test: true Skip-NLT: true Skip-unit-test-memcheck: true Skip-func-test-el8: true Skip-func-test-el9: true Skip-func-test-leap15: false Skip-fault-injection-test: true Skip-test-el-9.6-rpms: true Skip-test-leap-15-rpms: false Skip-func-hw-test: true --- utils/rpms/packaging/rpm_chrootbuild | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/utils/rpms/packaging/rpm_chrootbuild b/utils/rpms/packaging/rpm_chrootbuild index 250eee810ba..8b86a6d699a 100755 --- a/utils/rpms/packaging/rpm_chrootbuild +++ b/utils/rpms/packaging/rpm_chrootbuild @@ -53,6 +53,14 @@ EOF repo_adds=() repo_dels=() +# Only for Leap 15.6 chroot +# see ../../docker/Dockerfile.leap.15 for more details +if [[ "${CHROOT_NAME}" == *opensuse-leap-15.6* ]]; then + repo_adds+=("--enablerepo=*opensuse-devel-languages-lua-*") + repo_adds+=("--enablerepo=*opensuse-network-cluster-*") + repo_adds+=("--enablerepo=*opensuse-oss-*") +fi + echo -e "config_opts['yum.conf'] += \"\"\"\n" >> mock.cfg if [ -n "${ARTIFACTORY_URL:-}" ] && "$LOCAL_REPOS"; then @@ -121,6 +129,23 @@ enabled=1\n" >> mock.cfg done echo "\"\"\"" >> mock.cfg +# Only for Leap 15.6 chroot +# see ../../docker/Dockerfile.leap.15 for more details +if [[ "${CHROOT_NAME}" == *opensuse-leap-15.6* ]]; then + # Ensure lua-lmod is installed in the chroot + cat >> mock.cfg <<'EOF' + +_pkgs = config_opts.get('chroot_additional_packages') +if _pkgs is None: + config_opts['chroot_additional_packages'] = ['lua-lmod'] +elif isinstance(_pkgs, str): + config_opts['chroot_additional_packages'] = f"{_pkgs} lua-lmod".strip() +else: + config_opts['chroot_additional_packages'] = list(_pkgs) + ['lua-lmod'] +EOF + +fi + if [ -n "$DISTRO_VERSION" ]; then releasever_opt=("--config-opts=releasever=$DISTRO_VERSION") fi From 82609cc8cd7e6e02595a5360adc097194b5cf3d2 Mon Sep 17 00:00:00 2001 From: Tomasz Gromadzki Date: Tue, 7 Apr 2026 20:31:02 +0200 Subject: [PATCH 4/4] Revert "Custom library" This reverts commit eeba06d698afb64bd1f043b7edf9b1bf4dfcf8ad. Doc-only: true Signed-off-by: Tomasz Gromadzki --- Jenkinsfile | 1 - 1 file changed, 1 deletion(-) diff --git a/Jenkinsfile b/Jenkinsfile index 14b6aa4f2c3..812f79ce68b 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -18,7 +18,6 @@ // To use a test branch (i.e. PR) until it lands to master // I.e. for testing library changes //@Library(value='pipeline-lib@your_branch') _ -@Library(value='pipeline-lib@hendersp/DAOS-17203') _ // The trusted-pipeline-lib daosLatestVersion() method will convert this into a number /* groovylint-disable-next-line CompileStatic, VariableName */