gekkofs issueshttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues2024-03-08T19:05:34+01:00https://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/282Fix CMake warnings regarding compatibility with older versions2024-03-08T19:05:34+01:00Marc VefFix CMake warnings regarding compatibility with older versionsWhen running CMake, there are warnings for our external libraries which should be fixed:
```
CMake Deprecation Warning at external/fmt/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a fu...When running CMake, there are warnings for our external libraries which should be fixed:
```
CMake Deprecation Warning at external/fmt/CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 will be removed from a future version of
CMake.
Update the VERSION argument <min> value or use a ...<max> suffix to tell
CMake that the project does not need compatibility with older versions.
```v0.9.3https://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/280Hooks narrow cast types2024-02-19T09:43:00+01:00Marc VefHooks narrow cast typesCurrently, our client hooks return whatever syscall intercept returns. This is usually a cast from `long` to `int`. This is a narrowing operation and therefore we should us `narrow_cast` from gsl to make clear that this is acceptable (we...Currently, our client hooks return whatever syscall intercept returns. This is usually a cast from `long` to `int`. This is a narrowing operation and therefore we should us `narrow_cast` from gsl to make clear that this is acceptable (we do not need an exception in this case). See here https://github.com/microsoft/GSL/blob/main/docs/headers.md#user-content-H-util-narrow_cast
This issue includes adding GSL to GekkoFS and adding `gsl::narrow_cast` to all hooks that narrow.v0.9.3Julius AthenstaedtJulius Athenstaedthttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/260hermes dependency should be handled in the same way as other in source depend...2023-03-24T12:21:32+01:00Alberto Mirandahermes dependency should be handled in the same way as other in source dependenciesSince `hermes` `CMakeLists.txt` is lacking, we are forced to do an explicit `add_subdirectory()` and manually patch the provided target. It would be better to handle it with the function `include_from_source()` introduced by !143, simila...Since `hermes` `CMakeLists.txt` is lacking, we are forced to do an explicit `add_subdirectory()` and manually patch the provided target. It would be better to handle it with the function `include_from_source()` introduced by !143, similarly to `fmt`, `spdlog`, and `cli11`.futurehttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/248CMake: Remove usage of global directory functions such as `add_compile_defini...2023-02-28T16:15:55+01:00Alberto MirandaCMake: Remove usage of global directory functions such as `add_compile_definitions`Global functions such as `add_compile_definitions()`, `add_definitions()`, `include_directories()`, etc. set properties for a directory and all its children. Since this may lead to properties being invisibly set where they shouldn't, tar...Global functions such as `add_compile_definitions()`, `add_definitions()`, `include_directories()`, etc. set properties for a directory and all its children. Since this may lead to properties being invisibly set where they shouldn't, target-specific functions such as `target_compile_definitions()` should be preferred instead.futureAlberto MirandaAlberto Mirandahttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/247CMake: Prefer relative paths instead of absolute paths2023-02-28T16:07:31+01:00Alberto MirandaCMake: Prefer relative paths instead of absolute pathsSince CMake 3.13 it is preferred to use relative paths to the current list directory rather than absolute paths. While we fixed most of these with !143, there are still some remnants, e.g.:
```cmake
add_library(distributor STATIC)
set_p...Since CMake 3.13 it is preferred to use relative paths to the current list directory rather than absolute paths. While we fixed most of these with !143, there are still some remnants, e.g.:
```cmake
add_library(distributor STATIC)
set_property(TARGET distributor PROPERTY POSITION_INDEPENDENT_CODE ON)
target_sources(distributor
PUBLIC
${INCLUDE_DIR}/common/rpc/distributor.hpp
PRIVATE
${CMAKE_CURRENT_LIST_DIR}/rpc/distributor.cpp
)
```futureAlberto MirandaAlberto Mirandahttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/219Search for Prometheus dependency should be done in root `CMakeLists.txt`2023-03-21T12:55:45+01:00Alberto MirandaSearch for Prometheus dependency should be done in root `CMakeLists.txt`Similarly to #218, it is currently being done in `common/CMakeLists.txt`, but it is better to do all dependency management in the root `CMakeLists.txt`. Otherwise, there might be issues with some `CMakeLists.txt` in a different subtree n...Similarly to #218, it is currently being done in `common/CMakeLists.txt`, but it is better to do all dependency management in the root `CMakeLists.txt`. Otherwise, there might be issues with some `CMakeLists.txt` in a different subtree not seeing the `prometheus` imported targets.v0.9.3Alberto MirandaAlberto Mirandahttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/218Search for Spdlog dependency should be done in root `CMakeLists.txt`2023-06-26T15:06:33+02:00Alberto MirandaSearch for Spdlog dependency should be done in root `CMakeLists.txt`It is currently being done in `common/CMakeLists.txt`, but it is better to do all dependency management in the root `CMakeLists.txt`. Otherwise, there might be issues with some `CMakeLists.txt` in a different subtree not seeing the `spdl...It is currently being done in `common/CMakeLists.txt`, but it is better to do all dependency management in the root `CMakeLists.txt`. Otherwise, there might be issues with some `CMakeLists.txt` in a different subtree not seeing the `spdlog` imported targets.v0.9.3Alberto MirandaAlberto Mirandahttps://storage.bsc.es/gitlab/hpc/gekkofs/-/issues/158Modernize CMake scripts2021-11-23T11:53:46+01:00Alberto MirandaModernize CMake scriptsThough we have made an effort to write newer CMake scripts using "Modern CMake" (i.e. using targets), there are still some scripts that are still using old-style CMake (notably the main CMakeLists.txt). We should make an effort to modern...Though we have made an effort to write newer CMake scripts using "Modern CMake" (i.e. using targets), there are still some scripts that are still using old-style CMake (notably the main CMakeLists.txt). We should make an effort to modernize the remaining scripts to simplify maintenance.v1.0.0