Skip to content
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

ign-cmake requires component versions to match but debian metadata doesn't #469

Closed
scpeters opened this issue Jun 3, 2021 · 13 comments
Closed
Assignees

Comments

@scpeters
Copy link
Contributor

scpeters commented Jun 3, 2021

I recently saw a user report about a configration error in gazebo_ros when trying to find_package(Gazebo) related to different installed versions of libignition-common3* packages. In this case, the libignition-common3 and libignition-common3-core-dev have version 3.13.2, while all the other components have version 3.13.0. This leads to a cmake error due to a requirement in ign-cmake that all components have the same exact version as the core library. This becomes a problem because there is not such constraint expressed in the debian metadata for ign-common3 (it does constrain the -dev packages to match their corresponding lib package, but there aren't constraints between component libraries).

--- stderr: gazebo_ros                                                                                                                                   
CMake Error at /usr/share/cmake-3.16/Modules/CMakeFindDependencyMacro.cmake:47 (find_package):
  Could not find a configuration file for package "ignition-common3-graphics"
  that exactly matches requested version "3.13.2".
  The following configuration files were considered but not accepted:
    /usr/lib/x86_64-linux-gnu/cmake/ignition-common3-graphics/ignition-common3-graphics-config.cmake, version: 3.13.0
Call Stack (most recent call first):
  /usr/lib/x86_64-linux-gnu/cmake/ignition-common3/ignition-common3-config.cmake:203 (find_dependency)
  /usr/lib/x86_64-linux-gnu/cmake/gazebo/gazebo-config.cmake:250 (find_package)
  ws/install/gazebo_dev/share/gazebo_dev/cmake/gazebo_dev-extras.cmake:2 (find_package)
  ws/install/gazebo_dev/share/gazebo_dev/cmake/gazebo_devConfig.cmake:41 (include)
  CMakeLists.txt:26 (find_package)
---
Failed   <<< gazebo_ros [6.49s, exited with code 1]
$ dpkg-query --list | grep libignition-common3 
ii  libignition-common3:amd64                     3.13.2-1~focal                                      amd64        Ignition Common classes and functions for robot apps - Shared library 
ii  libignition-common3-av:amd64                  3.13.0-1~focal                                      amd64        Ignition Common classes and functions (AV) - Shared library 
ii  libignition-common3-av-dev:amd64              3.13.0-1~focal                                      amd64        Ignition Common classes and functions (AV) - Development files 
ii  libignition-common3-core-dev:amd64            3.13.2-1~focal                                      amd64        Ignition Common classes and functions (core) - Development files 
ii  libignition-common3-dev:amd64                 3.13.0-1~focal                                      amd64        Ignition Common classes and functions for robot apps - Metapackage 
ii  libignition-common3-events:amd64              3.13.0-1~focal                                      amd64        Ignition Common classes and functions (Events) - Shared library 
ii  libignition-common3-events-dev:amd64          3.13.0-1~focal                                      amd64        Ignition Common classes and functions (Events) - Development files 
ii  libignition-common3-graphics:amd64            3.13.0-1~focal                                      amd64        Ignition Common classes and functions (Graphics) - Shared library 
ii  libignition-common3-graphics-dev:amd64        3.13.0-1~focal                                      amd64        Ignition Common classes and functions (Graphics) - Development files 
ii  libignition-common3-profiler:amd64            3.13.0-1~focal                                      amd64        Ignition Common classes and functions (Profiler) - Shared library 
ii  libignition-common3-profiler-dev:amd64        3.13.0-1~focal                                      amd64        Ignition Common classes and functions (profiler) - Development files
@j-rivero
Copy link
Contributor

j-rivero commented Jun 8, 2021

With current setup, dependency chain is more flexible but I think that we can not assure that a particular version of the library X.Y.Z is going to make API fully compatible with X.W.V (adding new features that don't break current API could require to have all the components in the same version to make them work properly). Following semantic versioning, we could probably relax the restriction on ign-cmake to match MAJOR.MINOR and leave PATCH out of the check, I don't think that we can relax it to go without only MAJOR.

Quickest solution by now is to make components to depend on the binary versions, opencv is doing the same for official Debian packages.

Code changes are trivial gazebo-release/gz-common3-release#1 , we will need to run a new release bumping just the release number or wait until the next release.

@scpeters
Copy link
Contributor Author

scpeters commented Jun 9, 2021

Code changes are trivial ignition-release/ign-common3-release#1 , we will need to run a new release bumping just the release number or wait until the next release.

thanks! I just tested that branch with ign-common3 3.13.2-2 and it looks good, so I approved and merged the PR. I'll work on forward-porting the changes to ignition-common4 and then assess which other packages should be updated

@scpeters
Copy link
Contributor Author

I'll work on forward-porting the changes to ignition-common4 and then assess which other packages should be updated

gazebo-release/gz-common4-release#5

@scpeters
Copy link
Contributor Author

it looks like the metadata is already in place for the eigen component of math6:

@scpeters
Copy link
Contributor Author

@scpeters
Copy link
Contributor Author

scpeters commented Jun 16, 2021

release-repos to update (only those with ign-cmake components):

@scpeters
Copy link
Contributor Author

@scpeters
Copy link
Contributor Author

@scpeters
Copy link
Contributor Author

scpeters commented Jun 16, 2021

@chapulina
Copy link
Contributor

@scpeters , are you planning to address the 3 remaining libraries?

@scpeters
Copy link
Contributor Author

scpeters commented Nov 8, 2021

@scpeters , are you planning to address the 3 remaining libraries?

yes, I will start working on this

@scpeters scpeters assigned scpeters and unassigned j-rivero Nov 8, 2021
scpeters added a commit to gazebo-release/gz-physics2-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-physics2-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-rendering3-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/ign-rendering4-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/ign-rendering5-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-rendering6-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-rendering7-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-rendering3-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/ign-rendering4-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-rendering6-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-rendering7-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-sensors7-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-sensors6-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/ign-sensors5-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/ign-sensors4-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-sensors3-release that referenced this issue Nov 17, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
@scpeters
Copy link
Contributor Author

fixes are now merged or in pull requests for all affected packages

scpeters added a commit to gazebo-release/ign-sensors4-release that referenced this issue Nov 18, 2021
* focal/debian/control: symlink to ubuntu/debian

The files are identical already.
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/ign-sensors5-release that referenced this issue Nov 18, 2021
* focal/debian/control: symlink to ubuntu/debian

The files are identical already.
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-sensors6-release that referenced this issue Nov 18, 2021
* focal/debian/control: symlink to ubuntu/debian

The files are identical already.
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-sensors7-release that referenced this issue Nov 18, 2021
* focal/debian/control: symlink to ubuntu/debian

The files are identical already.
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
scpeters added a commit to gazebo-release/gz-sensors3-release that referenced this issue Nov 18, 2021
Part of gazebo-tooling/release-tools#469

Signed-off-by: Steve Peters <scpeters@openrobotics.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants