conda-forge / pinocchio-feedstock

A conda-smithy repository for pinocchio.
BSD 3-Clause "New" or "Revised" License
12 stars 10 forks source link

Wrong run_exports annotation? #94

Closed traversaro closed 1 year ago

traversaro commented 1 year ago

Solution to issue cannot be found in the documentation.

Issue

I noticed (after reading https://github.com/stack-of-tasks/tsid/issues/199) that downstream code that links pinocchio links the library with the full soname until the patch number, i.e. :

<install_prefix>/lib/libpinocchio.so.2.6.16 

This means that if a symbol from libpinocchio is actually used, the downstream library will link to libpinocchio.so.2.6.16, and so it will give an error if libpinocchio.so.2.6.17 is installed (that is indeed the bug in https://github.com/stack-of-tasks/tsid/issues/199). However, the recipe contains:

  run_exports:
    - {{ pin_subpackage(name, max_pin='x.x') }}

That for example means that any downstream library that is build with pinocchio 2.6.16 will depend at runtime to pinocchio with constraint pinocchio>=2.6.16, pinocchio<2.17 .

Depending on whater the pinocchio ABI policy is, the right thing to do is:

Installed packages

Not relevant.

Environment info

Not relevant.
jcarpent commented 1 year ago

Thanks a lot @traversaro for the issue and the fix suggestions. I've applied the second strategy as it seems more aligned with the release strategy of Pinocchio.