Skip to content
......@@ -40,15 +40,15 @@ wgetdeps=(
["lz4"]="1.9.4"
["capstone"]="6.0.0-Alpha1"
["argobots"]="1.2"
["rocksdb"]="8.10.0"
["rocksdb"]="10.4.2"
["json-c"]="0.17-20230812"
["psm2"]="11.2.185"
)
# Dependencies that must be cloned
clonedeps=(
["libfabric"]="HEAD@v1.20.1"
["mercury"]="v2.4.0"
["libfabric"]="HEAD@v2.2.0"
["mercury"]="v2.4.1rc1"
["margo"]="v0.18.3"
["syscall_intercept"]="d8b2a69961921ed123625c79a609331fc56a8931"
["date"]="e7e1482087f58913b80a20b04d5c58d9d6d90155"
......
......@@ -73,6 +73,27 @@ if (GKFS_BUILD_LIBC_INTERCEPTION)
add_library(gkfs_libc_intercept SHARED)
endif()
if (GKFS_BUILD_PYTHON_BINDINGS)
pybind11_add_module(gkfs_python_bindings gkfs_python.cpp)
target_include_directories(gkfs_python_bindings PRIVATE
${INCLUDE_DIR}
${CMAKE_BINARY_DIR}/include
)
target_link_libraries(gkfs_python_bindings PRIVATE
gkfs_user_lib
)
set_target_properties(gkfs_python_bindings PROPERTIES OUTPUT_NAME gkfs_python)
install(
TARGETS gkfs_python_bindings
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
)
endif()
target_sources(gkfs_intercept
PRIVATE gkfs_functions.cpp
intercept.cpp
......
#include <pybind11/pybind11.h>
#include <pybind11/stl.h>
#include <client/user_functions.hpp>
namespace py = pybind11;
PYBIND11_MODULE(gkfs_python, m) {
m.doc() = "Python bindings for GekkoFS POSIX interface";
m.def("open", &gkfs::syscall::gkfs_open);
m.def("create", &gkfs::syscall::gkfs_create);
m.def("libcremove", &gkfs::syscall::gkfs_libcremove);
m.def("remove", &gkfs::syscall::gkfs_remove);
m.def("rmdir", &gkfs::syscall::gkfs_rmdir);
m.def("write", [](int fd, py::bytes data) -> ssize_t {
py::buffer_info info(py::buffer(data).request());
ssize_t ret = gkfs::syscall::gkfs_write(fd, info.ptr, info.size);
if(ret < 0)
throw std::runtime_error("write failed");
return ret;
});
m.def("read", [](int fd, size_t count) -> py::bytes {
std::vector<char> buf(count);
ssize_t ret = gkfs::syscall::gkfs_read(fd, buf.data(), count);
if(ret < 0)
throw std::runtime_error("read failed");
return py::bytes(buf.data(), ret);
});
m.def("close", &gkfs::syscall::gkfs_close);
m.def("lseek", &gkfs::syscall::gkfs_lseek, py::arg("fd"), py::arg("offset"),
py::arg("whence"));
// TODO check behaviour
m.def(
"pwrite",
[](int fd, py::bytes data, int64_t offset) {
std::string buf = data;
return gkfs::syscall::gkfs_pwrite(fd, buf.data(), buf.size(),
offset);
},
py::arg("fd"), py::arg("data"), py::arg("offset"));
m.def(
"pread",
[](int fd, size_t count, int64_t offset) {
std::string buf(count, '\0');
ssize_t nread = gkfs::syscall::gkfs_pread(fd, buf.data(), count,
offset);
if(nread < 0) {
throw std::runtime_error("pread failed");
}
return py::bytes(buf.data(), nread);
},
py::arg("fd"), py::arg("count"), py::arg("offset"));
// TODO check behaviour and buffer strategy
m.def(
"readv",
[](int fd, size_t iovcnt) {
// TODO better allocation or provide size to calc
std::vector<char> buffer(4096 * iovcnt);
std::vector<struct iovec> iov(iovcnt);
size_t chunk = buffer.size() / iovcnt;
for(size_t i = 0; i < iovcnt; ++i) {
iov[i].iov_base = buffer.data() + i * chunk;
iov[i].iov_len = chunk;
}
ssize_t nread =
gkfs::syscall::gkfs_readv(fd, iov.data(), iovcnt);
if(nread < 0)
throw std::runtime_error("readv failed");
return py::bytes(buffer.data(), nread);
},
py::arg("fd"), py::arg("iovcnt"));
// TODO check behaviour and buffer strategy
m.def(
"writev",
[](int fd, const std::vector<py::bytes>& bufs) {
std::vector<std::string> buf_data;
std::vector<struct iovec> iov;
for(const auto& b : bufs) {
buf_data.emplace_back(b); // keep data alive
struct iovec io{};
io.iov_base = (void*) buf_data.back().data();
io.iov_len = buf_data.back().size();
iov.push_back(io);
}
return gkfs::syscall::gkfs_writev(fd, iov.data(), iov.size());
},
py::arg("fd"), py::arg("buffers"));
// TODO check behaviour and buffer strategy
m.def(
"preadv",
[](int fd, size_t iovcnt, int64_t offset) {
std::vector<char> buffer(4096 * iovcnt); // adjust as needed
std::vector<struct iovec> iov(iovcnt);
size_t chunk = buffer.size() / iovcnt;
for(size_t i = 0; i < iovcnt; ++i) {
iov[i].iov_base = buffer.data() + i * chunk;
iov[i].iov_len = chunk;
}
ssize_t nread = gkfs::syscall::gkfs_preadv(fd, iov.data(),
iovcnt, offset);
if(nread < 0)
throw std::runtime_error("preadv failed");
return py::bytes(buffer.data(), nread);
},
py::arg("fd"), py::arg("iovcnt"), py::arg("offset"));
// TODO check behaviour
m.def(
"pwritev",
[](int fd, const std::vector<py::bytes>& bufs, int64_t offset) {
std::vector<std::string> buf_data;
std::vector<struct iovec> iov;
for(const auto& b : bufs) {
buf_data.emplace_back(b);
struct iovec io{};
io.iov_base = (void*) buf_data.back().data();
io.iov_len = buf_data.back().size();
iov.push_back(io);
}
return gkfs::syscall::gkfs_pwritev(fd, iov.data(), iov.size(),
offset);
},
py::arg("fd"), py::arg("buffers"), py::arg("offset"));
m.def("stat",
[](const std::string& path, bool follow_links, bool bypass_rename) {
struct stat buf;
int res = gkfs::syscall::gkfs_stat(path, &buf, follow_links,
bypass_rename);
// TODO check if syscall was successful
py::dict stat_result;
stat_result["st_dev"] = buf.st_dev;
stat_result["st_ino"] = buf.st_ino;
stat_result["st_mode"] = buf.st_mode;
stat_result["st_nlink"] = buf.st_nlink;
stat_result["st_uid"] = buf.st_uid;
stat_result["st_gid"] = buf.st_gid;
stat_result["st_rdev"] = buf.st_rdev;
stat_result["st_size"] = buf.st_size;
stat_result["st_blksize"] = buf.st_blksize;
stat_result["st_blocks"] = buf.st_blocks;
stat_result["st_atime"] = buf.st_atime;
stat_result["st_mtime"] = buf.st_mtime;
stat_result["st_ctime"] = buf.st_ctime;
return std::make_tuple(res, stat_result);
});
m.def("statx", [](int dirfd, const std::string& path, int flags,
unsigned int mask, bool follow_links) {
struct statx stx;
memset(&stx, 0, sizeof(stx));
int ret = gkfs::syscall::gkfs_statx(dirfd, path, flags, mask, &stx,
follow_links);
py::dict meta;
if(ret == 0) {
meta["size"] = stx.stx_size;
meta["mode"] = stx.stx_mode;
meta["uid"] = stx.stx_uid;
meta["gid"] = stx.stx_gid;
meta["mtime"] = stx.stx_mtime.tv_sec;
meta["atime"] = stx.stx_atime.tv_sec;
meta["ctime"] = stx.stx_ctime.tv_sec;
meta["ino"] = stx.stx_ino;
meta["nlink"] = stx.stx_nlink;
meta["dev_major"] = stx.stx_dev_major;
meta["dev_minor"] = stx.stx_dev_minor;
}
return py::make_tuple(ret, meta);
});
m.def("dup", &gkfs::syscall::gkfs_dup);
m.def("dup2", &gkfs::syscall::gkfs_dup2);
m.def("access", &gkfs::syscall::gkfs_access, py::arg("path"),
py::arg("mask"), py::arg("follow_links") = true);
m.def("get_file_list", &gkfs::syscall::gkfs_get_file_list);
m.def("opendir", &gkfs::syscall::gkfs_opendir);
m.def("getdents", [](unsigned int fd, unsigned int count) {
std::vector<char> buf(count);
int ret = gkfs::syscall::gkfs_getdents(
fd, reinterpret_cast<struct linux_dirent*>(buf.data()), count);
if(ret < 0)
throw std::runtime_error("getdents failed");
return py::bytes(buf.data(), ret);
});
m.def("getdents64", [](unsigned int fd, unsigned int count) {
std::vector<char> buf(count);
int ret = gkfs::syscall::gkfs_getdents64(
fd, reinterpret_cast<struct linux_dirent64*>(buf.data()),
count);
if(ret < 0)
throw std::runtime_error("getdents64 failed");
return py::bytes(buf.data(), ret);
});
m.def("truncate", &gkfs::syscall::gkfs_truncate);
#ifdef HAS_SYMLINKS
m.def("mk_symlink", &gkfs::syscall::gkfs_mk_symlink);
m.def("readlink", [](const std::string& path, int bufsize) {
std::vector<char> buf(bufsize);
int ret = gkfs::syscall::gkfs_readlink(path, buf.data(), bufsize);
if(ret < 0)
throw std::runtime_error("readlink failed");
return std::string(buf.data(), ret);
});
#endif
#ifdef HAS_RENAME
m.def("rename", &gkfs::syscall::gkfs_rename);
#endif
m.def("fsync", &gkfs::syscall::gkfs_fsync);
m.def("mmap", [](uintptr_t addr, size_t length, int prot, int flags, int fd,
off_t offset) {
void* result = gkfs::syscall::gkfs_mmap(
reinterpret_cast<void*>(addr), length, prot, flags, fd, offset);
// if(result == MAP_FAILED) // TODO
// throw std::runtime_error("gkfs_mmap failed");
return reinterpret_cast<uintptr_t>(result);
});
m.def("munmap", [](uintptr_t addr, size_t length) {
return gkfs::syscall::gkfs_munmap(reinterpret_cast<void*>(addr),
length);
});
m.def("msync", [](uintptr_t addr, size_t length, int flags) {
return gkfs::syscall::gkfs_msync(reinterpret_cast<void*>(addr), length,
flags);
});
// TODO missing
// expand_start, expand_status, expand_finalize
m.def(
"init",
[]() {
int result = gkfs_init();
if(result != 0) {
throw std::runtime_error("gkfs_init() failed with code " +
std::to_string(result));
}
return result;
},
"Initialize GekkoFS");
m.def(
"end",
[]() {
int result = gkfs_end();
if(result != 0) {
throw std::runtime_error("gkfs_end() failed with code " +
std::to_string(result));
}
return result;
},
"End GekkoFS");
}
......@@ -143,6 +143,15 @@ if (GKFS_RENAME_SUPPORT)
)
endif ()
if (GKFS_BUILD_PYTHON_BINDINGS)
gkfs_add_python_test(
NAME test_python_bindings
PYTHON_VERSION 3.6
WORKING_DIRECTORY ${PROJECT_SOURCE_DIR}/tests/integration
SOURCE python_bindings/
)
endif ()
if (GKFS_INSTALL_TESTS)
install(DIRECTORY harness
DESTINATION ${CMAKE_INSTALL_DATAROOTDIR}/gkfs/tests/integration
......
......@@ -753,6 +753,7 @@ class ShellClient:
self._patched_env = {
'LD_LIBRARY_PATH' : libdirs,
'PYTHONPATH' : libdirs,
'LD_PRELOAD' : str(self._preload_library),
'LIBGKFS_HOSTS_FILE' : str(self.cwd / gkfs_hosts_file),
'LIBGKFS_LOG' : gkfs_client_log_level,
......
################################################################################
# Copyright 2018-2025, Barcelona Supercomputing Center (BSC), Spain #
# Copyright 2015-2025, 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 <https://www.gnu.org/licenses/>. #
# #
# SPDX-License-Identifier: GPL-3.0-or-later #
################################################################################
import harness
from pathlib import Path
import errno
import stat
import os
import ctypes
import sh
import fnmatch
import sys
import pytest
from harness.logger import logger
nonexisting = "nonexisting"
expected_output = """Created file: /testfile2, fd=0
Deleted file: /testfile2, fd=0
Open file: /testfile, fd=46
['.', '..', 'testfile']
write success
lseek success
Read data: b'Test GekkoFS!'
pwrite success
Read data: b'HelloGekkoFS!'
Pread data: b'Gekko'
Readv data: b'HelloGekkoFS!'
Preadv data: b'HelloGekkoFS!'
Duplicated fds: 47, 48
Stat result: {'st_dev': 0, 'st_ino': 6604349686198632337, 'st_mode': 33188, 'st_nlink': 1, 'st_uid': 1000, 'st_gid': 1000, 'st_rdev': 0, 'st_size': 13, 'st_blksize': 524288, 'st_blocks': 0, 'st_atime': 0, 'st_mtime': 0, 'st_ctime': 0}
Statx result: {'size': 13, 'mode': 33188, 'uid': 1000, 'gid': 1000, 'mtime': 0, 'atime': 0, 'ctime': 0, 'ino': 6604349686198632337, 'nlink': 1, 'dev_major': 0, 'dev_minor': 0}
Access check (R_OK|W_OK): 0
File list: ['.', '..', 'testfile']
mmap/msync/munmap done
Symlink not supported or failed.
Renamed /testfile to /testfile_renamed
File list: ['.', '..', 'testfile_renamed']
Removed /testfile_renamed
File list: ['.', '..']
"""
def find_up_and_down(pattern, start_path=None):
if start_path is None:
start_path = os.getcwd()
current_dir = os.path.abspath(start_path)
while True:
for root, dirs, files in os.walk(current_dir):
for name in files:
if fnmatch.fnmatch(name, pattern):
return os.path.join(root, name)
parent_dir = os.path.dirname(current_dir)
if parent_dir == current_dir:
# Reached filesystem root
break
current_dir = parent_dir
return None
def test_pybindings(gkfs_daemon, gkfs_shell):
# Example usage:
found_file = find_up_and_down("gkfs_python_lib_example.py")
assert found_file != None
print("Found:", found_file)
cmd = gkfs_shell.python(found_file)
print("stdout", cmd.stdout.decode())
print("stderr", cmd.stderr.decode())
assert cmd.exit_code == 0
assert cmd.stdout.decode() == expected_output
assert cmd.stderr.decode() == ''
Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Cloned 'https://github.com/francielizanon/agios.git' to 'agios' with commit '[c26a6544200f823ebb8f890dd94e653d148bf226]' and flags '--branch=development'
Done
......@@ -2,10 +2,10 @@ Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Downloaded 'https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_11.2.185.tar.gz' to 'psm2'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[34a41033fce94195700c5ab1e097f40741d7f016]' and flags ''
Done
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[2c8765fa292bc9c28a22624c528580d54658813d]' and flags ''
Applying patch '/builds/gitlab/hpc/gekkofs/scripts/patches/syscall_intercept.patch'...
Cloned 'https://github.com/francielizanon/agios.git' to 'agios' with commit '[c26a6544200f823ebb8f890dd94e653d148bf226]' and flags '--branch=development'
......
Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Done
Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Downloaded 'https://github.com/zeromq/libzmq/archive/v4.3.5.tar.gz' to 'libzmq'
Downloaded 'https://github.com/zeromq/cppzmq/archive/v4.10.0.tar.gz' to 'cppzmq'
......
Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric%verbs' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Done
......@@ -2,11 +2,11 @@ Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Downloaded 'https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_11.2.185.tar.gz' to 'psm2'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Cloned 'https://github.com/HowardHinnant/date.git' to 'date' with commit '[e7e1482087f58913b80a20b04d5c58d9d6d90155]' and flags ''
Cloned 'https://github.com/CARV-ICS-FORTH/parallax.git' to 'parallax' with commit '[c130decd7a71c60c20b98d6a23924f05f754c3cd]' and flags ''
......
Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.1.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.15.0]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Cloned 'https://github.com/HowardHinnant/date.git' to 'date' with commit '[e7e1482087f58913b80a20b04d5c58d9d6d90155]' and flags ''
Downloaded 'https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_11.2.185.tar.gz' to 'psm2'
......
Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Downloaded 'https://github.com/zeromq/libzmq/archive/v4.3.5.tar.gz' to 'libzmq'
Downloaded 'https://github.com/zeromq/cppzmq/archive/v4.10.0.tar.gz' to 'cppzmq'
......
......@@ -2,11 +2,11 @@ Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Downloaded 'https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_11.2.185.tar.gz' to 'psm2'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.18.3]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Cloned 'https://github.com/HowardHinnant/date.git' to 'date' with commit '[e7e1482087f58913b80a20b04d5c58d9d6d90155]' and flags ''
Cloned 'https://github.com/CARV-ICS-FORTH/parallax.git' to 'parallax' with commit '[c130decd7a71c60c20b98d6a23924f05f754c3cd]' and flags ''
......
......@@ -2,11 +2,11 @@ Downloaded 'https://github.com/lz4/lz4/archive/v1.9.4.tar.gz' to 'lz4'
Downloaded 'https://github.com/aquynh/capstone/archive/6.0.0-Alpha1.tar.gz' to 'capstone'
Downloaded 'https://github.com/json-c/json-c/archive/json-c-0.17-20230812.tar.gz' to 'json-c'
Downloaded 'https://github.com/cornelisnetworks/opa-psm2/archive/PSM2_11.2.185.tar.gz' to 'psm2'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v1.20.1'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.0]' and flags '--recurse-submodules'
Cloned 'https://github.com/ofiwg/libfabric.git' to 'libfabric' with commit '[HEAD]' and flags '--branch=v2.2.0'
Cloned 'https://github.com/mercury-hpc/mercury' to 'mercury' with commit '[v2.4.1rc1]' and flags '--recurse-submodules'
Downloaded 'https://github.com/pmodels/argobots/archive/v1.2.tar.gz' to 'argobots'
Cloned 'https://github.com/mochi-hpc/mochi-margo' to 'margo' with commit '[v0.15.0]' and flags ''
Downloaded 'https://github.com/facebook/rocksdb/archive/v8.10.0.tar.gz' to 'rocksdb'
Downloaded 'https://github.com/facebook/rocksdb/archive/v10.4.2.tar.gz' to 'rocksdb'
Cloned 'https://github.com/GekkoFS/syscall_intercept.git' to 'syscall_intercept' with commit '[d8b2a69961921ed123625c79a609331fc56a8931]' and flags ''
Cloned 'https://github.com/HowardHinnant/date.git' to 'date' with commit '[e7e1482087f58913b80a20b04d5c58d9d6d90155]' and flags ''
Done