Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
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
5 changes: 0 additions & 5 deletions .rpmignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,16 +6,11 @@
el9/daos-*tests*.rpm
el9/daos-mofed*.rpm
el9/daos-serialize*.rpm
el9/ucx*.rpm

leap15/daos-*tests*.rpm
leap15/daos-mofed*.rpm
leap15/daos-serialize*.rpm
leap15/openucx*.rpm
leap15/ucx*.rpm
leap15/*protobuf-c*.rpm

ubuntu20.04/daos-*.deb
ubuntu20.04/libdaos*.deb
ubuntu20.04/ucx*.deb

2 changes: 1 addition & 1 deletion ci/provisioning/post_provision_config_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ fi
EXCLUDE_UPGRADE=mercury,mercury-\*,daos,daos-\*
if rpm -qa | grep mlnx; then
# packages not to allow upgrading if MLNX OFED is installed
EXCLUDE_UPGRADE+=,openmpi,\*mlnx\*,\*ucx\*
EXCLUDE_UPGRADE+=,openmpi,\*mlnx\*
fi
case "$ID_LIKE" in
*rhel*)
Expand Down
47 changes: 23 additions & 24 deletions site_scons/components/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -159,31 +159,30 @@ def define_mercury(reqs):
patch_rpath=['lib64'],
build_env={'CFLAGS': "-fstack-usage -fPIC"})

ucx_configure = ['./configure', '--disable-assertions', '--disable-params-check', '--enable-mt',
'--without-go', '--without-java', '--prefix=$UCX_PREFIX',
'--libdir=$UCX_PREFIX/lib64', '--enable-cma', '--without-cuda',
'--without-gdrcopy', '--with-verbs', '--without-knem', '--without-rocm',
'--without-xpmem', '--without-fuse3', '--without-ugni']

if reqs.target_type == 'debug':
ucx_configure.extend(['--enable-debug'])
else:
ucx_configure.extend(['--disable-debug', '--disable-logging'])

reqs.define('ucx',
retriever=GitRepoRetriever(),
libs=['ucs', 'ucp', 'uct'],
# UCX is no longer built from source, the distribution provided packages are used instead.
ucx_packages = {
'ucs': 'ucx-devel',
'ucp': 'ucx-devel',
'uct': 'ucx-devel',
}
if distro.linux_distribution()[0].split()[0] == 'openSUSE':
ucx_packages = {
'ucs': 'libucs-devel',
'ucp': 'libucp-devel',
'uct': 'libuct-devel',
}

reqs.define('ucx_ucs',
libs=['ucs'],
functions={'ucs': ['ucs_debug_disable_signal']},
package=ucx_packages['ucs'])
reqs.define('ucx_ucp',
libs=['ucp'],
package=ucx_packages['ucp'])
reqs.define('ucx_uct',
libs=['uct'],
headers=['uct/api/uct.h'],
pkgconfig='ucx',
commands=[['./autogen.sh'],
ucx_configure,
['make'],
['make', 'install'],
['mkdir', '-p', '$UCX_PREFIX/lib64/pkgconfig'],
['cp', 'ucx.pc', '$UCX_PREFIX/lib64/pkgconfig']],
build_env={'CFLAGS': '-Wno-error'},
package='ucx-devel' if inst(reqs, 'ucx') else None)
package=ucx_packages['uct'])

mercury_build = ['cmake',
'-DBUILD_SHARED_LIBS:BOOL=ON',
Expand Down Expand Up @@ -230,7 +229,7 @@ def define_mercury(reqs):
['make', 'install']],
libs=['mercury'],
pkgconfig='mercury',
requires=['boost', 'ofi', 'ucx'] + libs,
requires=['boost', 'ofi', 'ucx_ucs', 'ucx_ucp', 'ucx_uct'] + libs,
out_of_src_build=True,
package='mercury-devel' if inst(reqs, 'mercury') else None,
build_env={'CFLAGS': '-fstack-usage'})
Expand Down
2 changes: 0 additions & 2 deletions utils/build.config
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ spdk=v26.01
ofi=v1.22.0
mercury=v2.4.1
protobufc=v1.3.3
ucx=v1.20.0

[repos]
argobots=https://github.com/pmodels/argobots.git
Expand All @@ -23,7 +22,6 @@ spdk=https://github.com/spdk/spdk.git
ofi=https://github.com/ofiwg/libfabric.git
mercury=https://github.com/mercury-hpc/mercury.git
protobufc=https://github.com/protobuf-c/protobuf-c.git
ucx=https://github.com/openucx/ucx.git

[patch_versions]
spdk=0001_external_isal_v26.01.patch
Expand Down
24 changes: 20 additions & 4 deletions utils/docker/Dockerfile.el.9
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ ARG DAOS_DEPS_BUILD=yes
ARG DAOS_KEEP_BUILD=no
ARG DAOS_PACKAGES_BUILD=yes
ARG DEPS_JOBS=32
ARG DAOS_PACKAGES_VERIFY=no

# Pull base image
ARG POINT_RELEASE=
Expand Down Expand Up @@ -141,18 +142,27 @@ RUN --mount=type=bind,source=SConstruct,target=/home/daos/pre/SConstruct \

# Build DAOS dependencies RPMs
ARG DAOS_PACKAGES_BUILD
ARG DAOS_PACKAGES_VERIFY
RUN --mount=type=bind,source=utils/rpms,target=/home/daos/pre/utils/rpms \
--mount=type=bind,source=utils/sl/setup_local.sh,target=/home/daos/pre/utils/sl/setup_local.sh \
--mount=type=bind,source=utils/build.config,target=/home/daos/pre/utils/build.config \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_DEPS_BUILD" != "yes" ] || \
{ \
export DISTRO="el9" && \
/home/daos/pre/utils/rpms/build_packages.sh deps && \
/home/daos/pre/utils/rpms/build_packages.sh deps "$DAOS_PACKAGES_VERIFY" && \
mkdir -p /home/daos/rpms/deps && \
find . -maxdepth 1 -type f -name '*.rpm' \
-exec mv -t /home/daos/rpms/deps {} + ; \
}

RUN --mount=type=bind,source=utils/rpms,target=/home/daos/pre/utils/rpms \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_DEPS_BUILD" != "yes" ] || \
{ \
[ "$DAOS_PACKAGES_VERIFY" = "yes" ] || { \
utils/rpms/verify_rpms.sh /home/daos/rpms/deps "el9" || true; \
} \
}

FROM build-ci AS build-local
# Set a label. This is useful for searching for DAOS images, but is also used
# in github-actions to prune elements of the dockerfile below this point.
Expand Down Expand Up @@ -242,21 +252,27 @@ USER daos_server:daos_server

# Build DAOS RPMs
ARG DAOS_PACKAGES_BUILD
ARG POINT_RELEASE
ARG DAOS_PACKAGES_VERIFY
RUN --mount=type=bind,source=utils/rpms,target=/home/daos/daos/utils/rpms \
--mount=type=bind,source=utils/sl,target=/home/daos/daos/utils/sl \
--mount=type=bind,source=utils/systemd,target=/home/daos/daos/utils/systemd \
--mount=type=bind,source=utils/build.config,target=/home/daos/daos/utils/build.config \
--mount=type=bind,source=utils/rpms/build_packages.sh,target=/home/daos/daos/utils/rpms/build_packages.sh \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_BUILD" != "yes" ] || { \
export DISTRO="el9" && \
/home/daos/daos/utils/rpms/build_packages.sh daos && \
/home/daos/daos/utils/rpms/build_packages.sh daos "$DAOS_PACKAGES_VERIFY" && \
mkdir -p /home/daos/rpms/daos && \
find . -maxdepth 1 -type f -name '*.rpm' \
-exec mv -t /home/daos/rpms/daos {} + ; \
}

# Disable Java build for now since it fails
RUN --mount=type=bind,source=utils/rpms,target=/home/daos/daos/utils/rpms \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_BUILD" != "yes" ] || { \
[ "$DAOS_PACKAGES_VERIFY" = "yes" ] || { \
utils/rpms/verify_rpms.sh /home/daos/rpms/daos "el9" || true; \
} \
}

# Build java and hadoop bindings
#USER daos_server:daos_server
#RUN [ "$DAOS_JAVA_BUILD" != "yes" ] || { \
Expand Down
28 changes: 23 additions & 5 deletions utils/docker/Dockerfile.leap.15
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ ARG DAOS_DEPS_BUILD=yes
ARG DAOS_KEEP_BUILD=no
ARG DAOS_PACKAGES_BUILD=yes
ARG DEPS_JOBS=32
ARG DAOS_PACKAGES_VERIFY=no

# Pull base image
ARG POINT_RELEASE=
Expand Down Expand Up @@ -129,7 +130,7 @@ RUN --mount=type=bind,source=ci/rpm/install_deps.sh,target=/tmp/daos/ci/rpm/inst
--mount=type=bind,source=utils/rpms/package_info.sh,target=/tmp/daos/utils/rpms/package_info.sh \
--mount=type=bind,source=utils/rpms/daos.spec,target=/tmp/daos/utils/rpms/daos.spec \
[ "$DAOS_DEPS_INSTALL" != "yes" ] || { \
/tmp/daos/ci/rpm/install_deps.sh suse.lp156; \
/tmp/daos/ci/rpm/install_deps.sh suse.lp15${POINT_RELEASE#\.}; \
sudo dnf clean all; \
}

Expand Down Expand Up @@ -158,18 +159,27 @@ RUN --mount=type=bind,source=SConstruct,target=/home/daos/pre/SConstruct \
# Build DAOS dependencies RPMs
ARG DAOS_PACKAGES_BUILD
ARG POINT_RELEASE
ARG DAOS_PACKAGES_VERIFY
RUN --mount=type=bind,source=utils/rpms,target=/home/daos/pre/utils/rpms \
--mount=type=bind,source=utils/sl/setup_local.sh,target=/home/daos/pre/utils/sl/setup_local.sh \
--mount=type=bind,source=utils/build.config,target=/home/daos/pre/utils/build.config \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_DEPS_BUILD" != "yes" ] || \
{ \
export DISTRO="suse.lp15${POINT_RELEASE#\.}" && \
/home/daos/pre/utils/rpms/build_packages.sh deps && \
/home/daos/pre/utils/rpms/build_packages.sh deps "$DAOS_PACKAGES_VERIFY" && \
mkdir -p /home/daos/rpms/deps && \
find . -maxdepth 1 -type f -name '*.rpm' \
-exec mv -t /home/daos/rpms/deps {} + ; \
}

RUN --mount=type=bind,source=utils/rpms,target=/home/daos/pre/utils/rpms \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_DEPS_BUILD" != "yes" ] || \
{ \
[ "$DAOS_PACKAGES_VERIFY" = "yes" ] || { \
utils/rpms/verify_rpms.sh /home/daos/rpms/deps "suse.lp15${POINT_RELEASE#\.}" || true; \
} \
}

FROM build-ci AS build-local
# Set a label. This is useful for searching for DAOS images, but is also used
# in github-actions to prune elements of the dockerfile below this point.
Expand Down Expand Up @@ -260,17 +270,25 @@ USER daos_server:daos_server
# Build DAOS RPMs
ARG DAOS_PACKAGES_BUILD
ARG POINT_RELEASE
ARG DAOS_PACKAGES_VERIFY
RUN --mount=type=bind,source=utils/rpms,target=/home/daos/daos/utils/rpms \
--mount=type=bind,source=utils/sl,target=/home/daos/daos/utils/sl \
--mount=type=bind,source=utils/systemd,target=/home/daos/daos/utils/systemd \
--mount=type=bind,source=utils/build.config,target=/home/daos/daos/utils/build.config \
--mount=type=bind,source=utils/rpms/build_packages.sh,target=/home/daos/daos/utils/rpms/build_packages.sh \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_BUILD" != "yes" ] || { \
export DISTRO="suse.lp15${POINT_RELEASE#\.}" && \
/home/daos/daos/utils/rpms/build_packages.sh daos && \
/home/daos/daos/utils/rpms/build_packages.sh daos "$DAOS_PACKAGES_VERIFY" && \
mkdir -p /home/daos/rpms/daos && \
find . -maxdepth 1 -type f -name '*.rpm' \
-exec mv -t /home/daos/rpms/daos {} + ; \
find . -maxdepth 1 -type f -name '*.rpm' \
-exec mv -t /home/daos/rpms/daos {} + ; \
}

RUN --mount=type=bind,source=utils/rpms,target=/home/daos/daos/utils/rpms \
[ "$DAOS_PACKAGES_BUILD" != "yes" ] || [ "$DAOS_BUILD" != "yes" ] || { \
[ "$DAOS_PACKAGES_VERIFY" = "yes" ] || { \
utils/rpms/verify_rpms.sh /home/daos/rpms/daos "suse.lp15${POINT_RELEASE#\.}" || true; \
} \
}

# Build java and hadoop bindings
Expand Down
35 changes: 35 additions & 0 deletions utils/rpms/build_packages.sh
Original file line number Diff line number Diff line change
@@ -1,6 +1,33 @@
#!/bin/bash
# Copyright 2025 Google LLC
# Copyright 2026 Hewlett Packard Enterprise Development LP
#
# SPDX-License-Identifier: BSD-2-Clause-Patent

# Usage:
# build_packages.sh [build_type] [verify]
#
# Args:
# build_type What to build: deps|daos|all. Default: all
# verify Run verify_rpms.sh after package build: yes|no. Default: yes
set -eEuo pipefail

script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" >/dev/null 2>&1 && pwd)"
repo_root="$(cd "${script_dir}/../.." >/dev/null 2>&1 && pwd)"

build_type="${1:-all}"
verify_rpms="${2:-yes}"

case "${verify_rpms}" in
yes|no)
;;
*)
echo "ERROR: verify parameter must be 'yes' or 'no' (got: ${verify_rpms})"
exit 1
;;
esac

cd "${repo_root}"
source utils/sl/setup_local.sh
if [[ "${build_type}" =~ deps|all ]]; then
utils/rpms/argobots.sh
Expand All @@ -15,3 +42,11 @@ fi
if [[ "${build_type}" =~ daos|all ]]; then
utils/rpms/daos.sh
fi

case "${DISTRO:-el9}" in
el*|suse.lp15*)
if [ "${OUTPUT_TYPE:-rpm}" = "rpm" ] && [ "${verify_rpms}" = "yes" ]; then
"${script_dir}/verify_rpms.sh" "$PWD" "${DISTRO:-el9}"
fi
;;
esac
4 changes: 4 additions & 0 deletions utils/rpms/daos-spdk.changelog
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
* Mon Aug 24 2026 Tomasz Gromadzki <tomasz.gromadzki@hpe.com> - 26.01-3
- Rebuild to force update of defective packages.
- Restore missing auto-generated runtime dependencies.

* Fri May 22 2026 Signed-off-by: Jeff Olivier <jeffolivier@google.com> - 26.01-2
- Fix daos_spdk_nvme_perf binary in rpm
- Adjust how we exclude packages to make it generic and not hardcoded
Expand Down
4 changes: 3 additions & 1 deletion utils/rpms/daos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -459,7 +459,9 @@ DEPENDS+=("${openmpi_lib}")
list_files files "${SL_PREFIX}/lib64/libdpar_mpi.so"
clean_bin "${files[@]}"
append_install_list "${files[@]}"
build_package "daos-client-tests-openmpi"
# OpenMPI on EL provides qualified libmpi capabilities that do not satisfy
# FPM's unqualified automatic Requires; the package dependency is explicit.
build_package "daos-client-tests-openmpi" "noautoreq"

#shim packages
PACKAGE_TYPE="empty"
Expand Down
12 changes: 8 additions & 4 deletions utils/rpms/fpm_common.sh
Original file line number Diff line number Diff line change
Expand Up @@ -157,10 +157,14 @@ build_package() {
name="$1"; shift

output_type="${OUTPUT_TYPE:-rpm}"
EXTRA_OPTS+=("--rpm-autoprov")

if [ -n "${RPM_CHANGELOG:-}" ]; then
EXTRA_OPTS+=("--rpm-changelog" "${root}/utils/rpms/${RPM_CHANGELOG}")
if [ "${output_type}" = "rpm" ]; then
EXTRA_OPTS+=("--rpm-autoprov")
if [ "${1-}" != "noautoreq" ]; then
EXTRA_OPTS+=("--rpm-autoreq")
fi
if [ -n "${RPM_CHANGELOG:-}" ]; then
EXTRA_OPTS+=("--rpm-changelog" "${root}/utils/rpms/${RPM_CHANGELOG}")
fi
fi

depends=()
Expand Down
8 changes: 6 additions & 2 deletions utils/rpms/isa-l_crypto.changelog
Original file line number Diff line number Diff line change
@@ -1,8 +1,12 @@
* Mon Aug 24 2026 Tomasz Gromadzki <tomasz.gromadzki@hpe.com> - 2.26.1-2
- Rebuild to force update of defective packages.
- Restore missing auto-generated runtime dependencies.

* Tue Jun 23 2026 Dalton Bohning <dalton.bohning@hpe.com> - 2.26.1-1
* Update to 2.26.1
- Update to 2.26.1

* Fri May 08 2026 Tom Nabarro <thomas.nabarro@hpe.com> - 2.26.0-1
* Update DAOS to 2.26 release to mirror SPDK v26.01 submodule
- Update DAOS to 2.26 release to mirror SPDK v26.01 submodule

* Thu Nov 6 2025 Jeff Olivier <jeffolivier@google.com> - 2.25.0-1
- Update DAOS to 2.25.0 release
Expand Down
2 changes: 0 additions & 2 deletions utils/rpms/libfabric.sh
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,6 @@ cat << EOF > "${tmp}/post_install_libfabric"
ldconfig
EOF
EXTRA_OPTS+=("--after-install" "${tmp}/post_install_libfabric")
EXTRA_OPTS+=("--rpm-autoprov")
ARCH="${isa}"
build_package libfabric

Expand All @@ -50,7 +49,6 @@ if [[ ! "${DISTRO:-el9}" =~ el ]]; then
clean_bin "${files[@]}"
append_install_list "${files[@]}"
EXTRA_OPTS+=("--after-install" "${tmp}/post_install_libfabric")
EXTRA_OPTS+=("--rpm-autoprov")
build_package "${libfabric_lib}"
fi

Expand Down
4 changes: 4 additions & 0 deletions utils/rpms/mercury.changelog
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
%changelog
* Mon Aug 24 2026 Tomasz Gromadzki <tomasz.gromadzki@hpe.com> - 2.4.1-4
- Rebuild to force update of defective packages.
- Restore missing auto-generated runtime dependencies.

* Fri May 29 2026 Joseph Moore <joseph.moore@hpe.com> - 2.4.1-3
- Add NA UCX patch to prevent reconnection on accepted addresses
- Add NA UCX patch to flush RMA puts
Expand Down
8 changes: 4 additions & 4 deletions utils/rpms/package_info.sh
Original file line number Diff line number Diff line change
Expand Up @@ -39,23 +39,23 @@ export libfabric_version="1.22.0"
export libfabric_release="5${distro_name}"
export libfabric_full="${libfabric_version}-${libfabric_release}"
export mercury_version="2.4.1"
export mercury_release="3${distro_name}"
export mercury_release="4${distro_name}"
export mercury_full="${mercury_version}-${mercury_release}"
export argobots_version="1.2"
export argobots_release="4${distro_name}"
export argobots_full="${argobots_version}-${argobots_release}"
export pmdk_version="2.1.4"
export pmdk_release="0${distro_name}"
export pmdk_release="1${distro_name}"
export pmdk_full="${pmdk_version}-${pmdk_release}"
export isal_version="2.31.1"
export isal_release="8${distro_name}"
export isal_full="${isal_version}-${isal_release}"
export isal_crypto_version="2.26.1"
export isal_crypto_release="1${distro_name}"
export isal_crypto_release="2${distro_name}"
export isal_crypto_full="${isal_crypto_version}-${isal_crypto_release}"
export spdk_major_version="26.01"
export daos_spdk_version=${spdk_major_version}
export daos_spdk_release="2${distro_name}"
export daos_spdk_release="3${distro_name}"
export daos_spdk_full="${daos_spdk_version}-${daos_spdk_release}"
export fused_version="1.0.0"
export fused_release="3${distro_name}"
Expand Down
Loading
Loading