Binary dependencies - SO versions

0 views
Skip to first unread message

Evgeny Tankhilevich

unread,
Mar 24, 2021, 8:41:19 AM3/24/21
to Anaconda - Public
Hello,

I am trying to build a conda package for a C++ package with a Python interface. The C++ package has a few dependencies, including boost. I add `boost` to requirements section of my `meta.yaml`, and it builds fine (with cmake).

Problems arise when I start using the package in a conda environment with other packages, that also depend on boost. During my build, the `boost` dependency was resolved to `boost-1.75.0`, so now my binary has links to SO's like `libboost_python39.so.1.75.0` all over it. Now it looks as if some of the other packages in my environment rely on older version of boost, `boost-1.72.0`, and that older version is picked (why? should not conda assume backwards compatibility in the newer version, rather than forward compatibility in the older version?). Now, when my package is loaded, it cannot find `libboost_python39.so.1.75.0`  any more ( only `libboost_python39.so.1.72.0` has been deployed) and crashes.

What is the correct way to address this problem? Should I create build variants for my package with every version of boost? The documentation on build variants is a little vague (they give examples, rather than describing concepts more generally), so any pointers will be appreciated.

Thanks in advance,
Evgeny
Reply all
Reply to author
Forward
0 new messages