conda-forge / boost-feedstock

A conda-smithy repository for boost.
BSD 3-Clause "New" or "Revised" License
15 stars 41 forks source link

How to force boost 1.78 in conda-forge package? #197

Closed cduguet closed 4 months ago

cduguet commented 4 months ago

Comment:

I am creating a new build for pixsfm (I am not the maintainer), that needs to run with pycolmap 0.4.0 and ceres-solver 2.1.0, due to the issues listed in https://github.com/conda-forge/pixsfm-feedstock/issues/17. In short: the package does not work with pycolmap >= 0.5.0 and ceres-solver >= 2.2.0.

The package does not really need libboost for building or host, but it requires boost-cpp=1.78 to be linked in as running dependency, because pycolmap 0.4.0, so I need to add it in deps.run. That way, it compiles and finishes correctly with ./build-locally.py.

However, when building in the CI pipeline, boost-cpp seems to be superseeded. The message from conda-forge-webservices says:

The boost-cpp output has been superseded by libboost-devel (as of 1.82), which now comes with a run-export (on libboost) as well. In case you only needed the boost headers, you should use libboost-headers.

I understand this is due to a recent consolidation of boost. However, in the CI, the building process seems to fail because it tries to install versions of pycolmap that run on libboost >=1.82.0,<1.83.0a0, so I get the error:

  - package pycolmap-0.4.0-cuda112py310h2ee5878_5 requires ceres-solver >=2.2.0,<2.3.0a0, but none of the providers can be installed

More details in the PR.

This is telling me that my specification of boost-cpp =1.78=* is being ignored, and libboost only has versions from 1.82 onwards.

How can I solve this?

cduguet commented 4 months ago

Actually, it seems boost was installed in some other jobs, it successfully compiled in 15/32, so it must have been another dependency forcing pycolmap to build that specific incompatible version.