From fa9397cbf567b4d0386bd221dabf34ba0613153b Mon Sep 17 00:00:00 2001 From: Tim Clephas Date: Fri, 26 Apr 2024 12:14:47 +0200 Subject: [PATCH 1/3] Drop the rustup iron requirement (#163) * Drop the rustup iron requirement * Let rust be automatically installed --- .github/workflows/build.yaml | 2 -- README.md | 8 -------- 2 files changed, 10 deletions(-) diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index 7dd4881f..98c6020d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -21,8 +21,6 @@ jobs: - name: Deps run: | apt update && apt install -y curl - - name: Setup Rust - uses: dtolnay/rust-toolchain@1.75.0 - uses: actions/checkout@v2 - name: rosdep run: | diff --git a/README.md b/README.md index 621aa7ac..422759a5 100644 --- a/README.md +++ b/README.md @@ -15,14 +15,6 @@ For information about the Design please visit [design](docs/design.md) page. ## Setup -Install latest rustc via `rustup` if building on Ubuntu Jammy. -Skip this step if building on Ubuntu Noble as `cargo` and `rustc` will be -installed via `rosdep`. -```bash -curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -rustup install 1.75.0 -``` - Build `rmw_zenoh_cpp` ```bash From 394ae207a4b495538dacf8f99abe84a5bd821859 Mon Sep 17 00:00:00 2001 From: Chris Lalancette Date: Thu, 2 May 2024 00:55:59 -0400 Subject: [PATCH 2/3] Fix compilation when building zenohc in debug mode. (#166) When zenohc is built in debug mode, it actually changes the name of the zenohcConfig.cmake file to zenohc_debugConfig.cmake. Luckily it does not change the name of the library. To deal with this, first quietly look for the debug version. If we don't find that, then fall back to the release version. This should make it compile in both circumstances. Signed-off-by: Chris Lalancette --- rmw_zenoh_cpp/CMakeLists.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/rmw_zenoh_cpp/CMakeLists.txt b/rmw_zenoh_cpp/CMakeLists.txt index 1785a4cd..cc8c6944 100644 --- a/rmw_zenoh_cpp/CMakeLists.txt +++ b/rmw_zenoh_cpp/CMakeLists.txt @@ -23,7 +23,10 @@ find_package(rosidl_typesupport_fastrtps_cpp REQUIRED) find_package(rmw REQUIRED) find_package(rmw_dds_common REQUIRED) find_package(zenoh_c_vendor REQUIRED) -find_package(zenohc REQUIRED) +find_package(zenohc_debug QUIET) +if(NOT zenohc_debug_FOUND) + find_package(zenohc REQUIRED) +endif() add_library(rmw_zenoh_cpp SHARED src/detail/attachment_helpers.cpp From 868b64ef3fd64e4f52d76f9933308791a915b6de Mon Sep 17 00:00:00 2001 From: Yadu Date: Wed, 8 May 2024 09:59:40 -0500 Subject: [PATCH 3/3] Sync past tokio bump and drop thread restriction (#134) * Sync past tokio bump and drop thread restriction Signed-off-by: Yadunund * Bump zenoh-c to eclipse-zenoh/zenoh-c#307 * Updated zenoh-c to latest commit (#164) * updated zenoh-c to latest commit * updated zenoh-c commit comment * Updated comment in cmake --------- Signed-off-by: Yadunund Co-authored-by: Julien Enoch Co-authored-by: Steven Palma --- .../DEFAULT_RMW_ZENOH_ROUTER_CONFIG.json5 | 9 +------ .../DEFAULT_RMW_ZENOH_SESSION_CONFIG.json5 | 9 +------ zenoh_c_vendor/CMakeLists.txt | 9 ++----- zenoh_c_vendor/patches/pr_301.patch | 24 ------------------- 4 files changed, 4 insertions(+), 47 deletions(-) delete mode 100644 zenoh_c_vendor/patches/pr_301.patch diff --git a/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_ROUTER_CONFIG.json5 b/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_ROUTER_CONFIG.json5 index c08213e6..3ba55dfa 100644 --- a/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_ROUTER_CONFIG.json5 +++ b/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_ROUTER_CONFIG.json5 @@ -189,14 +189,7 @@ }, // Number of threads dedicated to transmission // By default, the number of threads is calculated as follows: 1 + ((#cores - 1) / 4) - // We limit the number of threads that the zenoh session can spin to 1. - // Without this limit, applications with multiple zenoh sessions can - // encounter system resource errors when trying to create new threads. - // Once zenoh migrates to relying on tokio for its async runtime, - // see https://github.com/eclipse-zenoh/zenoh/pull/566, we can consider - // removing these flags since with tokio, zenoh can better manage the threads it spins - // with the help of thread pools. - threads: 1, + // threads: 1, }, /// Configure the zenoh RX parameters of a link rx: { diff --git a/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_SESSION_CONFIG.json5 b/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_SESSION_CONFIG.json5 index df48b032..55415a13 100644 --- a/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_SESSION_CONFIG.json5 +++ b/rmw_zenoh_cpp/config/DEFAULT_RMW_ZENOH_SESSION_CONFIG.json5 @@ -189,14 +189,7 @@ }, // Number of threads dedicated to transmission // By default, the number of threads is calculated as follows: 1 + ((#cores - 1) / 4) - // We limit the number of threads that the zenoh session can spin to 1. - // Without this limit, applications with multiple zenoh sessions can - // encounter system resource errors when trying to create new threads. - // Once zenoh migrates to relying on tokio for its async runtime, - // see https://github.com/eclipse-zenoh/zenoh/pull/566, we can consider - // removing these flags since with tokio, zenoh can better manage the threads it spins - // with the help of thread pools. - threads: 1, + // threads: 1, }, /// Configure the zenoh RX parameters of a link rx: { diff --git a/zenoh_c_vendor/CMakeLists.txt b/zenoh_c_vendor/CMakeLists.txt index da56c50a..a3ee866e 100644 --- a/zenoh_c_vendor/CMakeLists.txt +++ b/zenoh_c_vendor/CMakeLists.txt @@ -24,16 +24,12 @@ find_package(ament_cmake_vendor_package REQUIRED) # when expanded. set(ZENOHC_CARGO_FLAGS "--no-default-features$--features=zenoh/transport_tcp zenoh/shared-memory") -# Set VCS_VERSION to include changes from https://github.com/eclipse-zenoh/zenoh/pull/802 -# which was synced to zenoh-c in https://github.com/eclipse-zenoh/zenoh-c/pull/272. -# Apply patches: -# - https://github.com/eclipse-zenoh/zenoh-c/pull/301 +# Set VCS_VERSION to include latest changes from zenoh-c https://github.com/eclipse-zenoh/zenoh-c/pull/340. ament_vendor(zenoh_c_vendor VCS_URL https://github.com/eclipse-zenoh/zenoh-c.git - VCS_VERSION 10176b911096cb92b8ee46bc491b78079ee26c20 + VCS_VERSION 68ab0c1faa2c3521680352778e618d95f15e2e95 CMAKE_ARGS "-DZENOHC_CARGO_FLAGS=${ZENOHC_CARGO_FLAGS}" - PATCHES patches ) # set(INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-prefix/install") @@ -42,5 +38,4 @@ ament_vendor(zenoh_c_vendor # DESTINATION "lib/${PROJECT_NAME}" # USE_SOURCE_PERMISSIONS # ) - ament_package() diff --git a/zenoh_c_vendor/patches/pr_301.patch b/zenoh_c_vendor/patches/pr_301.patch deleted file mode 100644 index 68008fd9..00000000 --- a/zenoh_c_vendor/patches/pr_301.patch +++ /dev/null @@ -1,24 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 00aa5ca..d236e99 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -27,7 +27,7 @@ declare_cache_var_true_if_vscode(ZENOHC_BUILD_IN_SOURCE_TREE "Do build inside so - declare_cache_var(ZENOHC_BUILD_WITH_LOGGER_AUTOINIT TRUE BOOL "Enable logger-autoinit zenoh-c feature") - declare_cache_var(ZENOHC_BUILD_WITH_SHARED_MEMORY TRUE BOOL "Enable shared-memory zenoh-c feature") - declare_cache_var(ZENOHC_CUSTOM_TARGET "" STRING "Rust target for cross compilation, 'aarch64-unknown-linux-gnu' for example") --declare_cache_var(ZENOHC_CARGO_CHANNEL "stable" STRING "Cargo channel selected: stable or nightly") -+declare_cache_var(ZENOHC_CARGO_CHANNEL "" STRING "Cargo channel parameter. Should be '+stable', '+nightly' or empty value") - declare_cache_var(ZENOHC_CARGO_FLAGS "" STRING "Additional cargo flags") - declare_cache_var(ZENOHC_LIB_STATIC FALSE BOOL "Alias zenohc::lib target to zenohc::static if TRUE, to zenohc::shared if FALSE") - -@@ -198,8 +198,8 @@ file(GLOB_RECURSE rust_sources "Cargo.toml.in" "src/*.rs" "build.rs" "splitguide - add_custom_command( - OUTPUT ${libs} - COMMAND ${CMAKE_COMMAND} -E echo \"RUSTFLAGS = $$RUSTFLAGS\" -- COMMAND ${CMAKE_COMMAND} -E echo \"cargo +${ZENOHC_CARGO_CHANNEL} build ${cargo_flags}\" -- COMMAND cargo +${ZENOHC_CARGO_CHANNEL} build ${cargo_flags} -+ COMMAND ${CMAKE_COMMAND} -E echo \"cargo ${ZENOHC_CARGO_CHANNEL} build ${cargo_flags}\" -+ COMMAND cargo ${ZENOHC_CARGO_CHANNEL} build ${cargo_flags} - VERBATIM - COMMAND_EXPAND_LISTS - DEPENDS "${rust_sources}"