-
Notifications
You must be signed in to change notification settings - Fork 42
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace custom router with upstream zenohd #262
Comments
Does the original router suffer from the same keyboard capture issues? This might come across a bit lazy, but there's good traction going on! I won't have access to a computer soon however |
I'm in the process of wrapping my head around the code and requirements.
Before going down this route, I just want to make sure this is compatible with @codebot suggestion of making something like a |
I don't believe so. The upstream zenohd router doesn't seem to have a similar keyboard/console interface. https://github.com/eclipse-zenoh/zenoh/blob/main/zenohd/src/main.rs. It's my first time looking at rust code though. |
Yep, this is exactly what I was thinking of.
So, while I love the idea that @codebot suggested, further conversation has turned up a problem with it. The basic problem is that packages like All of that said, I don't think the answer to those questions affects this too much. Whether we are attempting to launch the custom version of zenohd, or the upstream version of zenohd, we still have the same problem. |
I haven't done it myself, so I don't speak with great confidence, but I think both |
Right, debian supports the notion of conflicting packages, like this. I'm not as familiar with systemd. |
I started to work on patching Questions
My AWESOME approach It's using ExternalProject_Add, instead of Cargo because I couldn't find a way to compile zenohd from an external project via Cargo. I'm also not experienced with Cargo. This will successfully build and install zenoh-d and the necessary plugins, but... This approach will require more adjustments to handle windows and mac (mostly when it comes to installing the files). Finally, there are two plugins required by zenohd, So...am I going down the right path here? It seems like we should create a new repo/package that is just dedicated toward building, installing, and configuring the zenohd router for use in ROS2 or use the upstream zenohd router. |
Modification of
The main reason is that we have a policy against using third-party APT repositories when delivering ROS binaries. So while that might be convenient now, it means we wouldn't be able to release this onto the ROS buildfarm later.
When we were doing this late last year, it was far longer than that. Maybe something has changed in the meantime (or you just have a faster machine). Still, like with all projects, compile times on Zenoh are only going to go up, so I think we should find a way to only compile it once. |
I gave a try to this. The Cargo way would be to add in zenoh-c Cargo.toml optional dependencies to |
Another way to build
I set the Also, I can't find a similar way to build the Zenoh plugins which are shared libraries. But they are not required for |
I have just a laptop with an
This was also a thing I couldn't fix. I wasn't able to compile I'll keep poking away at it. |
We'd like to remove the custom router in this repo with the upstream zenohd router.
Context from #261:
Ah, cool. Here is some context. Back in late 2023, we actually didn't have a custom router, and we were just using the router as provided by the upstream Zenoh project. The major problem with that was that it required us to build Zenoh twice: once for building the
zenoh-c
bindings, and once so we got access to the router. Since building Zenoh is pretty slow, this was less than ideal. So we introduced the custom router here. But it isn't ideal, because while it supports most of the features of the zenohd router, it doesn't support all of them. And that leads to confusion.My best idea on how to fix this is to change https://github.com/eclipse-zenoh/zenoh-c so that it can (optionally) also build the router. Then in the vendor package here, we would turn on that option, and also install the router in the correct place so that
ros2 run
could find it. There may be other solutions, but that was the one I came up with.Does that make sense?
Originally posted by @clalancette in #261 (comment)
The text was updated successfully, but these errors were encountered: