diff --git a/site_scons/components/__init__.py b/site_scons/components/__init__.py index f6ab99d6245..1d1f9726cef 100644 --- a/site_scons/components/__init__.py +++ b/site_scons/components/__init__.py @@ -1,5 +1,5 @@ # Copyright 2016-2024 Intel Corporation -# Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # Permission is hereby granted, free of charge, to any person obtaining a copy @@ -331,13 +331,15 @@ def define_components(reqs): libs=['abt'], headers=['abt.h']) + fix_fused = os.path.join(Dir('#').abspath, 'utils/scripts/fix_fused.sh') reqs.define('fused', libs=['fused'], defines=['FUSE_USE_VERSION=35'], retriever=GitRepoRetriever(), commands=[['meson', 'setup', '--prefix=$FUSED_PREFIX', '-Ddisable-mtab=True', '-Dudevrulesdir=$FUSED_PREFIX/udev', '-Dutils=False', '--default-library', 'static', '../fused'], ['meson', 'setup', '--reconfigure', '../fused'], - ['ninja', 'install']], + ['ninja', 'install'], + [fix_fused, '$FUSED_PREFIX']], pkgconfig='fused', headers=['fused/fuse.h'], required_progs=['libtoolize', 'ninja', 'meson'], diff --git a/utils/build.config b/utils/build.config index 76f5c0f6fcb..d950b42c396 100644 --- a/utils/build.config +++ b/utils/build.config @@ -3,7 +3,7 @@ component=daos [commit_versions] argobots=v1.2 -fused=v1.0.0 +fused=fuse-3.18.2 pmdk=2.1.3 isal=v2.31.1 isal_crypto=v2.25.0 @@ -15,7 +15,7 @@ ucx=v1.14.1 [repos] argobots=https://github.com/pmodels/argobots.git -fused=https://github.com/daos-stack/fused.git +fused=https://github.com/libfuse/libfuse.git pmdk=https://github.com/daos-stack/pmdk.git isal=https://github.com/intel/isa-l.git isal_crypto=https://github.com/intel/isa-l_crypto.git diff --git a/utils/docker/Dockerfile.el.8 b/utils/docker/Dockerfile.el.8 index bf80f3fc122..927d3889a70 100644 --- a/utils/docker/Dockerfile.el.8 +++ b/utils/docker/Dockerfile.el.8 @@ -1,5 +1,5 @@ # Copyright 2018-2024 Intel Corporation -# Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Copyright 2025 Hewlett Packard Enterprise Development LP # All rights reserved. # @@ -88,6 +88,7 @@ COPY --chown=daos_server:daos_server site_scons/components site_scons/components COPY --chown=daos_server:daos_server utils/build.config utils/ COPY --chown=daos_server:daos_server utils/scripts/copy_files.sh utils/scripts/copy_files.sh COPY --chown=daos_server:daos_server utils/scripts/create_spdk_pkgconfig.sh utils/scripts/create_spdk_pkgconfig.sh +COPY --chown=daos_server:daos_server utils/scripts/fix_fused.sh utils/scripts/fix_fused.sh # Control what to build. By default Dockerfiles build everything to allow for # ease-of-use for users, however in CI everything is turned off and then diff --git a/utils/docker/Dockerfile.el.9 b/utils/docker/Dockerfile.el.9 index 82c5287ff26..3cd9d7e9155 100644 --- a/utils/docker/Dockerfile.el.9 +++ b/utils/docker/Dockerfile.el.9 @@ -1,5 +1,5 @@ # Copyright 2022-2024 Intel Corporation -# Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Copyright 2025 Hewlett Packard Enterprise Development LP # All rights reserved. # @@ -84,6 +84,7 @@ COPY --chown=daos_server:daos_server site_scons/components site_scons/components COPY --chown=daos_server:daos_server utils/build.config utils/ COPY --chown=daos_server:daos_server utils/scripts/copy_files.sh utils/scripts/copy_files.sh COPY --chown=daos_server:daos_server utils/scripts/create_spdk_pkgconfig.sh utils/scripts/create_spdk_pkgconfig.sh +COPY --chown=daos_server:daos_server utils/scripts/fix_fused.sh utils/scripts/fix_fused.sh # Control what to build. By default Dockerfiles build everything to allow for # ease-of-use for users, however in CI everything is turned off and then diff --git a/utils/docker/Dockerfile.leap.15 b/utils/docker/Dockerfile.leap.15 index 41922a06ffd..1180cf1af70 100644 --- a/utils/docker/Dockerfile.leap.15 +++ b/utils/docker/Dockerfile.leap.15 @@ -1,5 +1,5 @@ # Copyright 2018-2024 Intel Corporation -# Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Copyright 2025-2026 Hewlett Packard Enterprise Development LP # All rights reserved. # @@ -103,6 +103,7 @@ COPY --chown=daos_server:daos_server site_scons/components site_scons/components COPY --chown=daos_server:daos_server utils/build.config utils/ COPY --chown=daos_server:daos_server utils/scripts/copy_files.sh utils/scripts/copy_files.sh COPY --chown=daos_server:daos_server utils/scripts/create_spdk_pkgconfig.sh utils/scripts/create_spdk_pkgconfig.sh +COPY --chown=daos_server:daos_server utils/scripts/fix_fused.sh utils/scripts/fix_fused.sh # Control what to build. By default Dockerfiles build everything to allow for # ease-of-use for users, however in CI everything is turned off and then diff --git a/utils/docker/Dockerfile.ubuntu b/utils/docker/Dockerfile.ubuntu index 589c3f3dd9d..626f38ac6b8 100644 --- a/utils/docker/Dockerfile.ubuntu +++ b/utils/docker/Dockerfile.ubuntu @@ -1,5 +1,5 @@ # Copyright 2018-2024 Intel Corporation -# Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Copyright 2025 Hewlett Packard Enterprise Development LP # All rights reserved. # @@ -82,6 +82,7 @@ COPY --chown=daos_server:daos_server site_scons/components site_scons/components COPY --chown=daos_server:daos_server utils/build.config utils/ COPY --chown=daos_server:daos_server utils/scripts/copy_files.sh utils/scripts/copy_files.sh COPY --chown=daos_server:daos_server utils/scripts/create_spdk_pkgconfig.sh utils/scripts/create_spdk_pkgconfig.sh +COPY --chown=daos_server:daos_server utils/scripts/fix_fused.sh utils/scripts/fix_fused.sh # Control what to build. By default Dockerfiles build everything to allow for # ease-of-use for users, however in CI everything is turned off and then diff --git a/utils/rpms/fused.changelog b/utils/rpms/fused.changelog new file mode 100644 index 00000000000..d8a56aacc14 --- /dev/null +++ b/utils/rpms/fused.changelog @@ -0,0 +1,12 @@ +* Mon Dec 1 2025 Jeff Olivier - 1.1.0-1.0 +- Update to fuse-3.17.4 +- Use upstream tag directly + +* Sun Jan 12 2025 Jeff Olivier - 1.0.0-3.0 +- Remove dependence on fused + +* Sat Jan 11 2025 Jeff Olivier - 1.0.0-2.0 +- Only build static lib + +* Mon Feb 12 2024 Jeff Olivier - 1.0.0-1.0 +- Initial packaging for fused, a DAOS file system adaptation of libfused diff --git a/utils/rpms/fused.sh b/utils/rpms/fused.sh index 2b818d727cc..c0a2f2f7fbe 100755 --- a/utils/rpms/fused.sh +++ b/utils/rpms/fused.sh @@ -1,5 +1,5 @@ #!/bin/bash -# (C) Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC set -eEuo pipefail root="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" . "${root}/fpm_common.sh" @@ -15,6 +15,7 @@ LICENSE="BSD" ARCH=${isa} DESCRIPTION="DAOS version of libfuse" URL="https://github.com/daos-stack/fused.git" +RPM_CHANGELOG="fused.changelog" files=() TARGET_PATH="${includedir}/fused" diff --git a/utils/rpms/package_info.sh b/utils/rpms/package_info.sh index 5be9fb49ac8..b9a878413b4 100644 --- a/utils/rpms/package_info.sh +++ b/utils/rpms/package_info.sh @@ -1,6 +1,6 @@ #!/bin/bash # -# (C) Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Copyright 2025-2026 Hewlett Packard Enterprise Development LP # # SPDX-License-Identifier: BSD-2-Clause-Patent @@ -62,8 +62,8 @@ export isal_crypto_full="${isal_crypto_version}-${isal_crypto_release}" export daos_spdk_version="2.0.0" export daos_spdk_release="1${distro_name}" export daos_spdk_full="${daos_spdk_version}-${daos_spdk_release}" -export fused_version="1.0.0" -export fused_release="3${distro_name}" +export fused_version="1.1.0" +export fused_release="1${distro_name}" export fused_full="${fused_version}-${fused_release}" set_lib_name openmpi lib openmpi openmpi3 openmpi diff --git a/utils/scripts/fix_fused.sh b/utils/scripts/fix_fused.sh new file mode 100755 index 00000000000..1f36a555560 --- /dev/null +++ b/utils/scripts/fix_fused.sh @@ -0,0 +1,51 @@ +#!/bin/bash + +set -e + +if [ "$#" -ne 1 ]; then + echo "Usage: $0 " + exit 1 +fi + +prefix=$1 + +if [ ! -d "$prefix" ]; then + echo "Error: Directory '$prefix' not found." + exit 1 +fi + +# Move prefix/include/fuse3 to prefix/include/fused +if [ -d "$prefix/include/fuse3" ]; then + mv "$prefix/include/fuse3" "$prefix/include/fused" + echo "Moved $prefix/include/fuse3 to $prefix/include/fused" +else + echo "Error: $prefix/include/fuse3 not found." + exit 1 +fi + +# Find libfuse3.a and rename it to libfused.a +libfuse_path=$(find "$prefix" -name "libfuse3.a" | head -n 1) + +if [ -n "$libfuse_path" ]; then + libfused_path="$(dirname "$libfuse_path")/libfused.a" + mv "$libfuse_path" "$libfused_path" + echo "Renamed $libfuse_path to $libfused_path" + + # find pkgconfig/fuse3.pc in the same folder as libfuse3.a and rename it to fused.pc + pkgconfig_dir=$(dirname "$libfuse_path")/pkgconfig + if [ -f "$pkgconfig_dir/fuse3.pc" ]; then + mv "$pkgconfig_dir/fuse3.pc" "$pkgconfig_dir/fused.pc" + echo "Renamed $pkgconfig_dir/fuse3.pc to $pkgconfig_dir/fused.pc" + + # replace fuse3 with fused + sed -i 's/fuse3/fused/' "$pkgconfig_dir/fused.pc" + echo "Updated $pkgconfig_dir/fused.pc" + else + echo "Error: fuse3.pc not found in $pkgconfig_dir" + exit 1 + fi + exit 0 +fi + +echo "Error: libfuse3.a not found in $prefix." +exit 1 diff --git a/utils/scripts/install-el8.sh b/utils/scripts/install-el8.sh index 670ef8f6eef..23ff5653f7e 100755 --- a/utils/scripts/install-el8.sh +++ b/utils/scripts/install-el8.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (C) Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Install OS updates and packages as required for building DAOS on EL 8 and # derivatives. Include basic tools and daos dependencies that come from the core repos. @@ -117,4 +117,7 @@ else dnf install ${dnf_install_args} maven fi +# if available, install to get c++20 support +dnf install -y gcc-toolset-12 || true + gem install fpm diff --git a/utils/scripts/install-leap15.sh b/utils/scripts/install-leap15.sh index 5029eb1000a..100a0cda685 100755 --- a/utils/scripts/install-leap15.sh +++ b/utils/scripts/install-leap15.sh @@ -1,5 +1,5 @@ #!/usr/bin/env bash -# (C) Copyright 2025 Google LLC +# Copyright 2025-2026 Google LLC # Install OS updates and package. Include basic tools and daos dependencies # that come from the core repo. @@ -28,7 +28,7 @@ dnf --nodocs install ${dnf_install_args} \ flex \ fuse3 \ gcc \ - gcc-c++ \ + gcc11-c++ \ git \ go \ go-race \ @@ -78,6 +78,10 @@ dnf --nodocs install ${dnf_install_args} \ which \ yasm +update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-11 110 +update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-11 110 +update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-11 110 + # shellcheck disable=SC2086 dnf install ${dnf_install_args} ruby-devel gem install json -v 2.7.6