[Help needed][gazebo] Fix gazebo dependencies#30424
[Help needed][gazebo] Fix gazebo dependencies#30424talregev wants to merge 1 commit intomicrosoft:masterfrom
Conversation
|
On my end, on the ubuntu 22.04 vm I successfully manage to configure gazebo and start build: |
8291256 to
28161a1
Compare
|
I am not sure why in the CI, gazebo need intel-mkl port. I insert it, and it still say it missing. What I am missing? |
|
You actually know that there is a massive baseline regression: |
So I need to wait for the fix? I didn't know that. Thank you for the update. |
5e8f1c0 to
99bb0aa
Compare
|
You may at least fix your patch. Cf. config log: |
99bb0aa to
9263e51
Compare
How about now? |
9263e51 to
4cd756a
Compare
|
@dg0yt I need help to patch gazebo into the new ogre lib. Is it interesting you? |
1f2dfb8 to
a937a65
Compare
|
I am able to compile gazebo with ogre 1.12.9 in manifest mode. I have linkage error. I feel so close: |
|
For compile on windows I did this for atomic error I had: |
ports/gazebo/vcpkg.json
Outdated
There was a problem hiding this comment.
Not possible in the vcpkg registry.
There was a problem hiding this comment.
For now is workaround just to let me compile it. We can discuss it when I successfully compile.
Do you understand the linkage problem?
ports/gazebo/vcpkg.json
Outdated
There was a problem hiding this comment.
Not possible in the vcpkg registry.
|
For linux there more linkage error. Help appreciate. |
|
On windows there isn't qwt libs flags when linkage, that led me thinking to go to the direction that the qwt lib is not set correctly in the cmake file. |
a937a65 to
9eb0e6b
Compare
|
I made a progress in windows compilation. I compile against older qwt 6.1.5 and the linkage of qwt disappear. |
|
I am able to understand that this is a graphviz symbols. I will try to compile with older graphviz port. |
e825d9d to
7b0ab9d
Compare
7b0ab9d to
ee7a692
Compare
|
I was able to compile Gazebo on windows with my fix PR with ogre 1.12.9 and qwt 6.1.5 and graphviz 2.49.1. For compiling: @dg0yt I make this PR compile again for Windows. |
|
You must make it work with the dependencies as present in vcpkg now. No |
It needed old ogre, qwt and graphviz Maybe there is other solution I didn't think of. |
No. |
ee7a692 to
fa958b7
Compare
|
I also able to compile gazebo in windows x86 similar to x64 that I post before.
Without intefere the new port. |
|
Help is needed. I can revive the old ports, but I need help to make them not interfere with the new ports. it not trivial task for me. |
|
Reviving three outdated versions? Triple no. I tried to make this clear early enough. |
Are you the official vcpkg answer?
As gazebo is large project, you cannot expect it to be up to date with all the libraries it support. There always be a ports that needed older versions and cannot update right away and keep up in vcpkg updating system. Thank you for your feedback. |
| "description": "Open source robotics simulator.", | ||
| "homepage": "http://gazebosim.org", | ||
| "license": "Apache-2.0", | ||
| "builtin-baseline": "19af97cba8ca48474e4ad15a24ed50271a9ecdac", |
There was a problem hiding this comment.
This should not be added in to vcpkg.json.
| "description": "Open source robotics simulator.", | ||
| "homepage": "http://gazebosim.org", | ||
| "license": "Apache-2.0", | ||
| "builtin-baseline": "19af97cba8ca48474e4ad15a24ed50271a9ecdac", |
There was a problem hiding this comment.
| "builtin-baseline": "19af97cba8ca48474e4ad15a24ed50271a9ecdac", |
|
@LilyWangLL |
| "overrides": [ | ||
| { | ||
| "name": "ogre", | ||
| "version": "1.12.9", | ||
| "port-version": 10 | ||
| }, | ||
| { | ||
| "name": "qwt", | ||
| "version": "6.1.5" | ||
| }, | ||
| { | ||
| "name": "graphviz", | ||
| "version": "2.49.1", | ||
| "port-version": 4 | ||
| } | ||
| } | ||
| ] |
There was a problem hiding this comment.
Not possible in the vcpkg registry.
These should not be added in to vcpkg.json.
@LilyWangLL Can you read my solution and let me know if it acceptable from vcpkg official team? |
|
@LilyWangLL I want to revive 3 old ports to be along with the new ports:
|
cc @vicroms @BillyONeal This PR need your help. Thanks in advance. |
It doesn't matter how large a project is. No individual project gets to tell the entire ecosystem they must be stuck on any particular version of anything. If something can't use the dependency versions that are currently what you get in the curated registry, our only options are to (1) attempt to patch that project to use what is available, or (2) to delist the project with the incompatible dependency. This rule is not imposed by vcpkg, it is imposed by C++: in a given program there can only be one owner of a given symbol, so we have to pick one.
We have qt5 in vcpkg because the qt project have undertaken the immense effort to make every symbol they publish have the qt major version number be present in the symbol, so a single program can link with both qt5 and qt6 and still be functional. That doesn't mean that everything that transitively wants qt though makes that effort.
In general, multiple versions of the same library aren't link compatible with each other, so we can't do that. We can do it only when the multiple versions are effectively different libraries entirely that don't use any of the same symbol names across version, which is not usual. qt has done that, but I don't know of another project that has. Even for qt you can't use 5.0 side by side with 5.1, for instance. Only major versions get the side by side treatment. |
|
@BillyONeal What is your solution for fixing gazebo port? |
It can either be patched to use current dependencies, or it must be delisted.
Again, we can only do that if those are usable side by side, which is almost never. This is not a vcpkg limitation, this is a C++ limitation. |
|
@BillyONeal Thank you for the patience and the detailed explanations. |
This PR is continue from my old PR:
#24969
Thank for @JackBoosY and @dg0yt for helping out.
I made a little progress, but still need to patch gazebo to fit the new ogre lib. Also gazebo using private headers from ogre that is problematic. There is open issue on gazebo that they want to compile gazebo with vcpkg on their side, I hope to catch their attention to fix all the problems with you guys.
Gazebo open issue:
gazebosim/gazebo-classic#3202
./vcpkg x-add-version --alland committing the result.Waiting for: