diff --git a/external/hermes b/external/hermes
index 609f3de4902c276a9831681156f6a17fbf4ad9b4..6a91fbf250911887a83edf3b333a2eaff1ecde7d 160000
--- a/external/hermes
+++ b/external/hermes
@@ -1 +1 @@
-Subproject commit 609f3de4902c276a9831681156f6a17fbf4ad9b4
+Subproject commit 6a91fbf250911887a83edf3b333a2eaff1ecde7d
diff --git a/include/common/common_defs.hpp b/include/common/common_defs.hpp
index c9d224387c4a1a88b6f6509a4dfda21929411ca2..aa05a7ad243f3dc85535bf27e61be9ae15db3b94 100644
--- a/include/common/common_defs.hpp
+++ b/include/common/common_defs.hpp
@@ -58,11 +58,18 @@ constexpr auto get_chunk_stat = "rpc_srv_chunk_stat";
} // namespace tag
namespace protocol {
-constexpr auto ofi_psm2 = "ofi+psm2";
+constexpr auto na_sm = "na+sm";
constexpr auto ofi_sockets = "ofi+sockets";
constexpr auto ofi_tcp = "ofi+tcp";
constexpr auto ofi_verbs = "ofi+verbs";
-constexpr auto na_sm = "na+sm";
+constexpr auto ofi_psm2 = "ofi+psm2";
+constexpr auto ucx_all = "ucx+all";
+constexpr auto ucx_tcp = "ucx+tcp";
+constexpr auto ucx_rc = "ucx+rc";
+constexpr auto ucx_ud = "ucx+ud";
+constexpr auto all_remote_protocols = {ofi_sockets, ofi_tcp, ofi_verbs,
+ ofi_psm2, ucx_all, ucx_tcp,
+ ucx_rc, ucx_ud};
} // namespace protocol
} // namespace gkfs::rpc
diff --git a/scripts/profiles/0.9.2_rc1/agios.specs b/scripts/profiles/0.9.2_rc1/agios.specs
new file mode 100644
index 0000000000000000000000000000000000000000..e967029cd6b56035f8a9fbfeb4f19b401c29ab37
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/agios.specs
@@ -0,0 +1,81 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="All dependencies (except transport-specific and experimental)"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+ ["agios"]="c26a6544200f823ebb8f890dd94e653d148bf226@development"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "agios"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+)
diff --git a/scripts/profiles/0.9.2_rc1/all.specs b/scripts/profiles/0.9.2_rc1/all.specs
new file mode 100644
index 0000000000000000000000000000000000000000..8c9fb43f2b96bf25944ef6858bc514df128eb748
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/all.specs
@@ -0,0 +1,87 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies for Mogon 2 supercomputer"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["psm2"]="11.2.185"
+ ["json-c"]="0.15-20200726"
+ ["curl"]="7.82.0"
+ ["prometheus-cpp"]="v1.0.0"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+ ["agios"]="c26a6544200f823ebb8f890dd94e653d148bf226@development"
+ ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "psm2" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date"
+ "agios" "curl" "prometheus-cpp" "parallax"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+ ["libfabric"]="--enable-psm2=yes --with-psm2-src=${SOURCE_DIR}/psm2"
+)
diff --git a/scripts/profiles/0.9.2_rc1/ci.specs b/scripts/profiles/0.9.2_rc1/ci.specs
new file mode 100644
index 0000000000000000000000000000000000000000..872dd6114e2109b656a575d1e285fdd8cdaa86ed
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/ci.specs
@@ -0,0 +1,81 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies required by the CI"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["prometheus-cpp"]="v1.0.0"
+ )
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+ ["agios"]="c26a6544200f823ebb8f890dd94e653d148bf226@development"
+ ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd"
+ )
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept"
+ "date" "agios" "parallax" "prometheus-cpp"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+)
diff --git a/scripts/profiles/0.9.2_rc1/default.specs b/scripts/profiles/0.9.2_rc1/default.specs
new file mode 100644
index 0000000000000000000000000000000000000000..afc567273e8c5d77fc3e73e604677a0c8a0ebe4a
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/default.specs
@@ -0,0 +1,80 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="All dependencies"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch syscall_intercept_clone3.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+)
diff --git a/scripts/profiles/0.9.2_rc1/default_ucx.specs b/scripts/profiles/0.9.2_rc1/default_ucx.specs
new file mode 100644
index 0000000000000000000000000000000000000000..d0af49620d78c3ee53167483fb98020eafed739d
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/default_ucx.specs
@@ -0,0 +1,80 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="All dependencies"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["ucx"]="v1.13.0"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch syscall_intercept_clone3.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "ucx" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+)
diff --git a/scripts/profiles/0.9.2_rc1/direct.specs b/scripts/profiles/0.9.2_rc1/direct.specs
new file mode 100644
index 0000000000000000000000000000000000000000..6f2a48123e3ae1f3ec0d9e55ee9478c16dc5daf2
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/direct.specs
@@ -0,0 +1,76 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Direct dependencies"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+)
diff --git a/scripts/profiles/0.9.2_rc1/infiniband_verbs.specs b/scripts/profiles/0.9.2_rc1/infiniband_verbs.specs
new file mode 100644
index 0000000000000000000000000000000000000000..c34c4ff6d8c76566843fcb0bb4471dc0d0e3cb1a
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/infiniband_verbs.specs
@@ -0,0 +1,82 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies for Infiniband supercomputer"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric%verbs"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading/installing
+order=(
+ "lz4" "capstone" "json-c" "libfabric%verbs" "mercury" "argobots" "margo" "rocksdb"
+ "syscall_intercept" "date"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+ ["libfabric%verbs"]="--enable-verbs=yes"
+)
diff --git a/scripts/profiles/0.9.2_rc1/install/agios.install b/scripts/profiles/0.9.2_rc1/install/agios.install
new file mode 100644
index 0000000000000000000000000000000000000000..3d0392ff5305710794c19dc1e8b96985722fa5b7
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/agios.install
@@ -0,0 +1,57 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="agios"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ ${CMAKE} -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" ..
+ make install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/argobots.install b/scripts/profiles/0.9.2_rc1/install/argobots.install
new file mode 100644
index 0000000000000000000000000000000000000000..96ccea920eeb4493c7e6287737cf091945e6b06a
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/argobots.install
@@ -0,0 +1,60 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="argobots"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}"
+ ./autogen.sh
+ cd "${CURR}/build"
+ ../configure --prefix="${INSTALL_DIR}" --enable-perf-opt --disable-checks
+ make -j"${CORES}"
+ make install
+}
+
+pkg_check() {
+ make check
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/capstone.install b/scripts/profiles/0.9.2_rc1/install/capstone.install
new file mode 100644
index 0000000000000000000000000000000000000000..ff299d82b47f76389b3650553014438c65e92ae7
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/capstone.install
@@ -0,0 +1,57 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="capstone"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ ${CMAKE} -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" -DCMAKE_BUILD_TYPE:STRING=Release ..
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/curl.install b/scripts/profiles/0.9.2_rc1/install/curl.install
new file mode 100644
index 0000000000000000000000000000000000000000..d873819c4521e1ed8dce128c2699cc764356f92a
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/curl.install
@@ -0,0 +1,58 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="curl"
+ CURR="${SOURCE_DIR}/${ID}"
+ cd "${CURR}"
+ autoreconf -fi
+ ./configure --prefix="${INSTALL_DIR}" --without-ssl
+ make -j"${CORES}"
+ make install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/date.install b/scripts/profiles/0.9.2_rc1/install/date.install
new file mode 100644
index 0000000000000000000000000000000000000000..c4f12524cf738888185be97b2c2a7c3aed4f6a04
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/date.install
@@ -0,0 +1,61 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="date"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ ${CMAKE} -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DCMAKE_CXX_STANDARD:STRING=14 \
+ -DUSE_SYSTEM_TZ_DB:BOOL=ON \
+ -DBUILD_SHARED_LIBS:BOOL=ON ..
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/json-c.install b/scripts/profiles/0.9.2_rc1/install/json-c.install
new file mode 100644
index 0000000000000000000000000000000000000000..7280cda81e54d91500ef5137a45ad56cad298bc1
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/json-c.install
@@ -0,0 +1,60 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ CURR="${SOURCE_DIR}/json-c"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ cmake -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" -DCMAKE_BUILD_TYPE:STRING=Release ..
+ make -j"${CORES}" install
+ # Margo doesn't search in both directories, so we make it available in both lib and lib64
+ if [[ -f "${INSTALL_DIR}/lib64/pkgconfig/json-c.pc" ]]; then
+ cp ${INSTALL_DIR}/lib64/pkgconfig/json-c.pc ${INSTALL_DIR}/lib/pkgconfig/
+ fi
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/libfabric%verbs.install b/scripts/profiles/0.9.2_rc1/install/libfabric%verbs.install
new file mode 100644
index 0000000000000000000000000000000000000000..15257eb817549eefcab8264671c5df97307e49db
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/libfabric%verbs.install
@@ -0,0 +1,67 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="libfabric%verbs"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}"
+ ./autogen.sh
+ cd "${CURR}/build"
+ OFI_CONFIG="../configure --prefix=${INSTALL_DIR} --enable-tcp=yes"
+
+ EXTRA_INSTALL_ARGS="${PROFILE_EXTRA_INSTALL_ARGS[${ID}]}"
+
+ if [[ -n "${EXTRA_INSTALL_ARGS}" ]]; then
+ OFI_CONFIG="${OFI_CONFIG} ${EXTRA_INSTALL_ARGS}"
+ fi
+
+ ${OFI_CONFIG}
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ make check
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/libfabric.install b/scripts/profiles/0.9.2_rc1/install/libfabric.install
new file mode 100644
index 0000000000000000000000000000000000000000..7db89438e194931bb6311ed581e8d0d81576fa85
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/libfabric.install
@@ -0,0 +1,67 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID=libfabric
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}"
+ ./autogen.sh
+ cd "${CURR}/build"
+ OFI_CONFIG="../configure --prefix=${INSTALL_DIR} --enable-tcp=yes"
+
+ EXTRA_INSTALL_ARGS="${PROFILE_EXTRA_INSTALL_ARGS[${ID}]}"
+
+ if [[ -n "${EXTRA_INSTALL_ARGS}" ]]; then
+ OFI_CONFIG="${OFI_CONFIG} ${EXTRA_INSTALL_ARGS}"
+ fi
+
+ ${OFI_CONFIG}
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ make check
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/lz4.install b/scripts/profiles/0.9.2_rc1/install/lz4.install
new file mode 100644
index 0000000000000000000000000000000000000000..13e4e53b381f7df45aac175f3a9af84498b8abd4
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/lz4.install
@@ -0,0 +1,61 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="lz4"
+ CURR="${SOURCE_DIR}/${ID}"
+ cd "${CURR}"
+ # try to remove binaries first in case they already exist. Otherwise install fails.
+ LZ4_BINS=("${INSTALL_DIR}"/bin/lz4c "${INSTALL_DIR}"/bin/lz4cat "${INSTALL_DIR}"/bin/unlz4 "${INSTALL_DIR}"/bin/lz4)
+ for LZ4_BIN in "${LZ4_BINS[@]}"; do
+ [ -e "$LZ4_BIN" ] && rm "$LZ4_BIN"
+ done
+ make -j"${CORES}"
+ make DESTDIR="${INSTALL_DIR}" PREFIX="" install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/margo.install b/scripts/profiles/0.9.2_rc1/install/margo.install
new file mode 100644
index 0000000000000000000000000000000000000000..d2c6e4b5f2d21ff0e0f02865c53fe374d161b976
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/margo.install
@@ -0,0 +1,59 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="margo"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}"
+ ./prepare.sh
+ cd "${CURR}/build"
+ ../configure --prefix="${INSTALL_DIR}" PKG_CONFIG_PATH="${INSTALL_DIR}/lib/pkgconfig" CFLAGS="${CFLAGS} -Wall -O3"
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ make check
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/mercury.install b/scripts/profiles/0.9.2_rc1/install/mercury.install
new file mode 100644
index 0000000000000000000000000000000000000000..827d3069efb412a46d22790d8a3b56be7592fcc1
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/mercury.install
@@ -0,0 +1,88 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+
+ # if the profile compiles bmi, enable it
+ if [[ -n "${PROFILE_DEP_NAMES['bmi']}" ]]; then
+ USE_BMI="-DNA_USE_BMI:BOOL=ON"
+ else
+ USE_BMI="-DNA_USE_BMI:BOOL=OFF"
+ fi
+
+ # if the profile provides any flavour of libfabric, enable it
+ if profile_has_dependency "^libfabric.*$"; then
+ USE_OFI="-DNA_USE_OFI:BOOL=ON"
+ else
+ USE_OFI="-DNA_USE_OFI:BOOL=OFF"
+ fi
+ # if the profile provides any flavour of UCX, enable it
+ if profile_has_dependency "^ucx.*$"; then
+ USE_UCX="-DNA_USE_UCX:BOOL=ON"
+ else
+ USE_UCX="-DNA_USE_UCX:BOOL=OFF"
+ fi
+
+ ID="mercury"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ PKG_CONFIG_PATH="${INSTALL_DIR}/lib/pkgconfig" $CMAKE \
+ -DCMAKE_PREFIX_PATH=${INSTALL_DIR} \
+ -DCMAKE_BUILD_TYPE:STRING=Release \
+ -DBUILD_TESTING:BOOL=ON \
+ -DMERCURY_USE_CHECKSUMS:BOOL=OFF \
+ -DMERCURY_USE_BOOST_PP:BOOL=ON \
+ -DBUILD_SHARED_LIBS:BOOL=ON \
+ -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
+ ${USE_BMI} ${USE_OFI} ${USE_UCX} \
+ ..
+ make -j"${CORES}"
+ make install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/parallax.install b/scripts/profiles/0.9.2_rc1/install/parallax.install
new file mode 100644
index 0000000000000000000000000000000000000000..0c552cc78118c8f153a02f2bd72f96452ca4b399
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/parallax.install
@@ -0,0 +1,61 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+
+ CURR="${SOURCE_DIR}/parallax"
+ # sed -i -e 's/KEY_SIZE (256)/KEY_SIZE (4096)/g' ${CURR}/lib/btree/conf.h
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ PKG_CONFIG_PATH="${INSTALL_DIR}/lib/pkgconfig" $CMAKE \
+ -DBUILD_SHARED_LIBS:BOOL=OFF \
+ -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
+ -DCMAKE_BUILD_TYPE="Release" \
+ -DCMAKE_CXX_FLAGS_RELEASE="-Wno-error=unused-result" \
+ ..
+ make -j"${CORES}"
+ make install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/prometheus-cpp.install b/scripts/profiles/0.9.2_rc1/install/prometheus-cpp.install
new file mode 100644
index 0000000000000000000000000000000000000000..9373dbcf3a56616807f65ba15bf796f66cd15d22
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/prometheus-cpp.install
@@ -0,0 +1,58 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="prometheus-cpp"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ ${CMAKE} -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
+ -DBUILD_SHARED_LIBS:BOOL=ON ..
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/rocksdb.install b/scripts/profiles/0.9.2_rc1/install/rocksdb.install
new file mode 100644
index 0000000000000000000000000000000000000000..9350e9feb8a34491d61f447be06efd33de315bfb
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/rocksdb.install
@@ -0,0 +1,79 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ CXXFLAGS=''
+ # gcc 9 and clang 8 need -Wno-error=deprecated-copy -Wno-error=pessimizing-move
+ if [[ ("${COMPILER_NAME}" == "g++" && "${COMPILER_MAJOR_VERSION}" -ge 9) ||
+ ("${COMPILER_NAME}" == "clang" && "${COMPILER_MAJOR_VERSION}" -ge 8) ]]; then
+ CXXFLAGS='-Wno-error=deprecated-copy -Wno-error=pessimizing-move'
+ fi
+
+ # TODO use SSE?
+ CURR="${SOURCE_DIR}/rocksdb"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}/build"
+ PKG_CONFIG_PATH="${INSTALL_DIR}/lib/pkgconfig" $CMAKE \
+ -DCMAKE_CXX_FLAGS="${CXXFLAGS}" \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_PREFIX_PATH="${INSTALL_DIR}" \
+ -DCMAKE_INSTALL_LIBDIR="${INSTALL_DIR}/lib" \
+ -DCMAKE_INSTALL_INCLUDEDIR="${INSTALL_DIR}/include" \
+ -DROCKSDB_BUILD_SHARED=OFF \
+ -DWITH_LZ4=ON \
+ -DWITH_GFLAGS=OFF \
+ -DUSE_RTTI=1 \
+ -DPORTABLE=1 \
+ -DWITH_ALL_TESTS=OFF \
+ -DWITH_BENCHMARK_TOOLS=OFF \
+ -DWITH_TOOLS=OFF ..
+ make -j"${CORES}" install
+
+
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/syscall_intercept.install b/scripts/profiles/0.9.2_rc1/install/syscall_intercept.install
new file mode 100644
index 0000000000000000000000000000000000000000..9dd287271c61838a29cedd5e3bf3146ffb598f08
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/syscall_intercept.install
@@ -0,0 +1,61 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID="syscall_intercept"
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}"/build
+ $CMAKE -DCMAKE_PREFIX_PATH="${INSTALL_DIR}" \
+ -DCMAKE_INSTALL_PREFIX="${INSTALL_DIR}" \
+ -DCMAKE_BUILD_TYPE:STRING=Debug \
+ -DBUILD_EXAMPLES:BOOL=OFF \
+ -DBUILD_TESTS:BOOK=OFF ..
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ :
+}
diff --git a/scripts/profiles/0.9.2_rc1/install/ucx.install b/scripts/profiles/0.9.2_rc1/install/ucx.install
new file mode 100644
index 0000000000000000000000000000000000000000..0d8056016c6a6d930244a6f2285516dc630c041a
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/install/ucx.install
@@ -0,0 +1,67 @@
+################################################################################
+# Copyright 2018-2022, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2022, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+# vi: ft=bash
+
+################################################################################
+## The installation script must define both a pkg_install function and
+## pkg_check function that, as their name implies, must specify how
+## a dependency package should be installed and tested. ## ## The following
+## variables can be used in the installation script:
+## - CMAKE: a variable that expands to the cmake binary
+## - SOURCE_DIR: the directory where the sources for the package were
+## downloaded
+## - INSTALL_DIR: the directory where the package should be installed
+## - CORES: the number of cores to use when building
+## - COMPILER_NAME: the name of the compiler being used (e.g. g++, clang, etc.)
+## - COMPILER_FULL_VERSION: the compiler's full version (e.g. 9.3.0)
+## - COMPILER_MAJOR_VERSION: the compiler's major version (e.g. 9)
+## - PERFORM_TEST: whether tests for the package should be executed
+################################################################################
+
+pkg_install() {
+ ID=ucx
+ CURR="${SOURCE_DIR}/${ID}"
+ prepare_build_dir "${CURR}"
+ cd "${CURR}"
+ ./autogen.sh
+ cd "${CURR}/build"
+ UCX_CONFIG="../configure --prefix=${INSTALL_DIR} --with-verbs --with-rc --with-ud --enable-cma"
+
+ EXTRA_INSTALL_ARGS="${PROFILE_EXTRA_INSTALL_ARGS[${ID}]}"
+
+ if [[ -n "${EXTRA_INSTALL_ARGS}" ]]; then
+ UCX_CONFIG="${UCX_CONFIG} ${EXTRA_INSTALL_ARGS}"
+ fi
+
+ ${UCX_CONFIG}
+ make -j"${CORES}" install
+}
+
+pkg_check() {
+ make check
+}
diff --git a/scripts/profiles/0.9.2_rc1/marenostrum4.specs b/scripts/profiles/0.9.2_rc1/marenostrum4.specs
new file mode 100644
index 0000000000000000000000000000000000000000..2fd272eff2539038687724bb33bde698e9241277
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/marenostrum4.specs
@@ -0,0 +1,83 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies for Marenostrum 4 supercomputer"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["psm2"]="11.2.185"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+ ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "psm2" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "parallax"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+ ["libfabric"]="--enable-psm2=no --enable-sockets=yes"
+)
diff --git a/scripts/profiles/0.9.2_rc1/mogon2.specs b/scripts/profiles/0.9.2_rc1/mogon2.specs
new file mode 100644
index 0000000000000000000000000000000000000000..71ebf7a65e326a93b03fce9f283d4e80d7fc0d36
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/mogon2.specs
@@ -0,0 +1,83 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies for Mogon 2 supercomputer"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["psm2"]="11.2.185"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+ ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "psm2" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "parallax"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+ ["libfabric"]="--enable-psm2=yes --with-psm2-src=${SOURCE_DIR}/psm2"
+)
diff --git a/scripts/profiles/0.9.2_rc1/ngio.specs b/scripts/profiles/0.9.2_rc1/ngio.specs
new file mode 100644
index 0000000000000000000000000000000000000000..72c99cebdb4f79b33b86c81f618f869a5ff674d2
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/ngio.specs
@@ -0,0 +1,83 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies for NEXTGenIO prototype cluster"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["psm2"]="11.2.185"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+ ["parallax"]="c130decd7a71c60c20b98d6a23924f05f754c3cd"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "psm2" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date" "parallax"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+ ["libfabric"]="--enable-psm2=yes --with-psm2-src=${SOURCE_DIR}/psm2"
+)
diff --git a/scripts/profiles/0.9.2_rc1/omnipath_psm2.specs b/scripts/profiles/0.9.2_rc1/omnipath_psm2.specs
new file mode 100644
index 0000000000000000000000000000000000000000..10163c302156f7e50faac52a8337068c615461e8
--- /dev/null
+++ b/scripts/profiles/0.9.2_rc1/omnipath_psm2.specs
@@ -0,0 +1,82 @@
+################################################################################
+# Copyright 2018-2021, Barcelona Supercomputing Center (BSC), Spain #
+# Copyright 2015-2021, Johannes Gutenberg Universitaet Mainz, Germany #
+# #
+# This software was partially supported by the #
+# EC H2020 funded project NEXTGenIO (Project ID: 671951, www.nextgenio.eu). #
+# #
+# This software was partially supported by the #
+# ADA-FS project under the SPPEXA project funded by the DFG. #
+# #
+# This file is part of GekkoFS. #
+# #
+# GekkoFS is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# (at your option) any later version. #
+# #
+# GekkoFS is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY; without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with GekkoFS. If not, see . #
+# #
+# SPDX-License-Identifier: GPL-3.0-or-later #
+################################################################################
+
+# vi: ft=bash
+
+# Variables to be imported into the scripts
+declare -A wgetdeps clonedeps clonedeps_args clonedeps_patches extra_install_args
+declare -a order
+
+# Comment that should be displayed when printing the profile
+comment="Dependencies for Omnipath supercomputer"
+
+# Dependencies that must be downloaded directly
+wgetdeps=(
+ ["lz4"]="1.9.3"
+ ["capstone"]="4.0.2"
+ ["argobots"]="1.1"
+ ["rocksdb"]="6.26.1"
+ ["psm2"]="11.2.185"
+ ["json-c"]="0.15-20200726"
+)
+
+# Dependencies that must be cloned
+clonedeps=(
+ ["libfabric"]="HEAD@v1.13.2"
+ ["mercury"]="v2.1.0"
+ ["margo"]="v0.9.6"
+ ["syscall_intercept"]="2c8765fa292bc9c28a22624c528580d54658813d"
+ ["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
+)
+
+# Extra arguments for git clone
+clonedeps_args=(
+ ["mercury"]="--recurse-submodules"
+)
+
+# Patches that should be applied post-clone
+clonedeps_patches=(
+ ["syscall_intercept"]="syscall_intercept.patch"
+)
+
+# Ordering that MUST be followed when downloading
+order=(
+ "lz4" "capstone" "json-c" "psm2" "libfabric" "mercury" "argobots" "margo" "rocksdb" "syscall_intercept" "date"
+)
+
+# Extra arguments passed to the installation script. As such, they can
+# reference the following variables:
+# - CMAKE: a variable that expands to the cmake binary
+# - SOURCE_DIR: the directory where the sources for the package were
+# downloaded
+# - INSTALL_DIR: the directory where the package should be installed
+# - CORES: the number of cores to use when building
+# - PERFORM_TEST: whether tests for the package should be executed
+extra_install_args=(
+ ["libfabric"]="--enable-psm2=yes --with-psm2-src=${SOURCE_DIR}/psm2"
+)
diff --git a/scripts/profiles/latest b/scripts/profiles/latest
index f514a2f0bd053cdaebb7ab7bcffca86fed32620a..feaabae88a52d2fb8a6efdb6dc9458576878866b 120000
--- a/scripts/profiles/latest
+++ b/scripts/profiles/latest
@@ -1 +1 @@
-0.9.1
\ No newline at end of file
+0.9.2_rc1
\ No newline at end of file
diff --git a/scripts/profiles/sources.list b/scripts/profiles/sources.list
index 2c4be6e886b43e2900934ca748460f1634d545f1..28ca9ff3a29149d8dce9a5b80c961938027c74a0 100644
--- a/scripts/profiles/sources.list
+++ b/scripts/profiles/sources.list
@@ -44,6 +44,7 @@ sources=(
["libfabric"]="https://github.com/ofiwg/libfabric.git"
["libfabric%experimental"]="https://github.com/ofiwg/libfabric.git"
["libfabric%verbs"]="https://github.com/ofiwg/libfabric.git"
+ ["ucx"]="https://github.com/openucx/ucx.git"
["mercury"]="https://github.com/mercury-hpc/mercury"
["margo"]="https://github.com/mochi-hpc/mochi-margo"
["syscall_intercept"]="https://github.com/pmem/syscall_intercept.git"
diff --git a/src/client/preload_util.cpp b/src/client/preload_util.cpp
index ed4a1a38e02edfc6052364cbc06262e15a4d8759..62f0a3c7e894175a5359ba5584837764951be5b9 100644
--- a/src/client/preload_util.cpp
+++ b/src/client/preload_util.cpp
@@ -104,16 +104,15 @@ extract_protocol(const string& uri) {
throw runtime_error(fmt::format("Invalid format for URI: '{}'", uri));
}
string protocol{};
-
- if(uri.find(gkfs::rpc::protocol::ofi_sockets) != string::npos) {
- protocol = gkfs::rpc::protocol::ofi_sockets;
- } else if(uri.find(gkfs::rpc::protocol::ofi_psm2) != string::npos) {
- protocol = gkfs::rpc::protocol::ofi_psm2;
- } else if(uri.find(gkfs::rpc::protocol::ofi_verbs) != string::npos) {
- protocol = gkfs::rpc::protocol::ofi_verbs;
+ for(const auto& valid_protocol :
+ gkfs::rpc::protocol::all_remote_protocols) {
+ if(uri.find(valid_protocol) != string::npos) {
+ protocol = valid_protocol;
+ break;
+ }
}
- // check for shared memory protocol. Can be plain shared memory or real ofi
- // protocol + auto_sm
+ // check for shared memory protocol. Can be plain shared memory or real
+ // ofi protocol + auto_sm
if(uri.find(gkfs::rpc::protocol::na_sm) != string::npos) {
if(protocol.empty())
protocol = gkfs::rpc::protocol::na_sm;
diff --git a/src/daemon/daemon.cpp b/src/daemon/daemon.cpp
index f39a0a21bae207f9000ec329cdaaceb88649bcde..f7a8bc1053fc0f2f16f2f894b84e42d642123417 100644
--- a/src/daemon/daemon.cpp
+++ b/src/daemon/daemon.cpp
@@ -496,13 +496,18 @@ parse_input(const cli_options& opts, const CLI::App& desc) {
auto rpc_protocol = string(gkfs::rpc::protocol::ofi_sockets);
if(desc.count("--rpc-protocol")) {
rpc_protocol = opts.rpc_protocol;
- if(rpc_protocol != gkfs::rpc::protocol::ofi_verbs &&
- rpc_protocol != gkfs::rpc::protocol::ofi_sockets &&
- rpc_protocol != gkfs::rpc::protocol::ofi_psm2) {
+ auto protocol_found = false;
+ for(const auto& valid_protocol :
+ gkfs::rpc::protocol::all_remote_protocols) {
+ if(rpc_protocol == valid_protocol) {
+ protocol_found = true;
+ break;
+ }
+ }
+ if(!protocol_found)
throw runtime_error(fmt::format(
"Given RPC protocol '{}' not supported. Check --help for supported protocols.",
rpc_protocol));
- }
}
auto use_auto_sm = desc.count("--auto-sm") != 0;