summaryrefslogtreecommitdiff
path: root/cmake/dependencies/system
Commit message (Collapse)AuthorAgeFilesLines
* lib: Harden symmetric-key rotationDimitri Staessens2 days1-0/+45
| | | | | | | | | | | | | | | | | | Flow crypto signalled rotation with a single phase-parity bit, so a loss burst that hid an even number of rotations went unnoticed and wedged the flow for good. Each packet now carries a small cleartext selector naming its key directly, so a receiver that falls behind recovers on the next packet instead of getting stuck. The selector also serves as the AEAD nonce and is authenticated as associated data (AAD). Key rotation moves into a new backend-agnostic keyrot module that rotates sub-keys to bound AEAD usage while preserving forward secrecy. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Set FUSE_PREFIX in fuse.cmakeDimitri Staessens2026-02-181-1/+2
| | | | | | | | The FUSE_PREFIX was set in global.cmake, but before HAVE_FUSE was defined. The FUSE_PREFIX should be set in fuse.cmake. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Fix clobbering of FUSE_PREFIXDimitri Staessens2026-02-131-13/+14
| | | | | | | | | | | | | | | | | | | pkg_check_modules(FUSE ...) in fuse.cmake tells CMake's pkg-config module to use FUSE as the variable prefix. pkg-config then populates FUSE_PREFIX with the install prefix of libfuse (i.e., usr). This overwrote the FUSE_PREFIX cache variable set to /tmp/ouroboros in global.cmake. IRMd was calling mkdir("/usr", 0777) on startup and rmdir("/usr") on shutdown. The rmdir only fails because usr isn't empty — if it ever were (e.g., in a minimal container), it would deleted /usr. The fix renames the pkg-config prefix from FUSE to FUSE_PKG, so pkg-config populates FUSE_PKG_PREFIX (harmless) instead of clobbering FUSE_PREFIX. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>
* build: Refactor CMake back to in-tree CMakeListsDimitri Staessens2026-02-136-0/+110
This moves the build definitions back to src/ subdirectories (CMakeLists.txt per component). Configuration and dependencies are kept out of tree. Configuration options are bundled into cmake/config/ modules. Dependencies are grouped by component (system/, crypt/, eth/, coverage/, etc.). It now consistently uses target-based commands (target_include_directories, target_link_libraries) instead of global include_directories(). Proper PRIVATE/PUBLIC visibility for executable link libraries. CONFIG_OUROBOROS_DEBUG now properly set based on being a valid debug config (not just checking the string name). It also adds OuroborosTargets export for find_package() support and CMake package config files (OuroborosConfig.cmake) for easier integration with CMake projects. The build logic now follows more idiomatic CMake practices with configuration separated from target definitions. Signed-off-by: Dimitri Staessens <dimitri@ouroboros.rocks> Signed-off-by: Sander Vrijders <sander@ouroboros.rocks>