Skip to content

Remove unused boost dependency; OpenUSD vendors its own pxr_boost - #32

Merged
oursland merged 2 commits into
conda-forge:mainfrom
oursland:relax-libboost-depends
Jun 22, 2026
Merged

Remove unused boost dependency; OpenUSD vendors its own pxr_boost#32
oursland merged 2 commits into
conda-forge:mainfrom
oursland:relax-libboost-depends

Conversation

@oursland

Copy link
Copy Markdown
Contributor

OpenUSD 24.11+ replaced boost::python with a vendored, namespace-mangled pxr_boost and no longer links external boost in the default build. This recipe enables only PXR_ENABLE_PYTHON_SUPPORT (no OpenVDB/OpenImageIO), so nothing links libboost: all boost symbols resolve to the in-package libusd_boost, and the remaining <boost/...> includes in public headers are behind opt-in guards (PXR_BOOST_PYTHON_HAS_BOOST_SHARED_PTR, PEGTL's legacy-compiler fallback).

libboost-devel is kept in host for the build, but its run-export is ignored since the built libraries link only the vendored libusd_boost, never external libboost. (Note: this still leaves openusd subject to boost-migration rebuilds, which become no-ops.) Bump build number for the rebuild.

Checklist

  • Used a personal fork of the feedstock to propose changes
  • Bumped the build number (if the version is unchanged)
  • Reset the build number to 0 (if the version changed)
  • Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
  • Ensured the license file is being packaged.

@oursland

Copy link
Copy Markdown
Contributor Author

@traversaro I think this PR should be merged before the TBB 2023 one to increase compatibility.

@conda-forge-admin

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I wanted to let you know that I linted all conda-recipes in your PR (recipe/recipe.yaml) and found some lint.

Here's what I've got...

For recipe/recipe.yaml:

  • ❌ Recipe maintainer "oursland." does not exist

For recipe/recipe.yaml:

  • ℹ️ azure.settings_win.variables.CONDA_BLD_PATH is deprecated, please use workflow_settings.build_workspace_dir instead.
  • ℹ️ azure.settings_win.variables.MINIFORGE_HOME is deprecated, please use workflow_settings.tools_install_dir instead.
  • ℹ️ 'Free Disk Space' is deprecated.
    Deprecated. Use workflow_settings.free_disk_space instead.
    Free up disk space before build.
    The following components can be cleaned up: apt, cache, docker.
    When set to true, only apt and cache are cleaned up.
    Set it to the full list to clean up all components.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/27931669399. Examine the logs at this URL for more detail.

@oursland
oursland force-pushed the relax-libboost-depends branch from 869b4b9 to 23e4ef5 Compare June 22, 2026 06:21
@oursland
oursland requested a review from traversaro as a code owner June 22, 2026 06:21
@conda-forge-admin

conda-forge-admin commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Hi! This is the friendly automated conda-forge-linting service.

I just wanted to let you know that I linted all conda-recipes in your PR (recipe/recipe.yaml) and found it was in an excellent condition.

I do have some suggestions for making it better though...

For recipe/recipe.yaml:

  • ℹ️ azure.settings_win.variables.CONDA_BLD_PATH is deprecated, please use workflow_settings.build_workspace_dir instead.
  • ℹ️ azure.settings_win.variables.MINIFORGE_HOME is deprecated, please use workflow_settings.tools_install_dir instead.
  • ℹ️ 'Free Disk Space' is deprecated.
    Deprecated. Use workflow_settings.free_disk_space instead.
    Free up disk space before build.
    The following components can be cleaned up: apt, cache, docker.
    When set to true, only apt and cache are cleaned up.
    Set it to the full list to clean up all components.

This message was generated by GitHub Actions workflow run https://github.com/conda-forge/conda-forge-webservices/actions/runs/27934297156. Examine the logs at this URL for more detail.

@traversaro

Copy link
Copy Markdown
Contributor

Thanks! I am probably missing something, if boost is not used, can't we just remove the libboost-devel dependency instead of ignoring its run_exports ?

oursland added 2 commits June 21, 2026 23:34
OpenUSD 24.11+ replaced boost::python with a vendored, namespace-mangled
pxr_boost and no longer links external boost in the default build. This
recipe enables only PXR_ENABLE_PYTHON_SUPPORT (no OpenVDB/OpenImageIO),
so nothing links libboost: all boost symbols resolve to the in-package
libusd_boost, and the remaining <boost/...> includes in public headers are
behind opt-in guards (PXR_BOOST_PYTHON_HAS_BOOST_SHARED_PTR, PEGTL's
legacy-compiler fallback).

Keeping libboost-devel in host only leaked a spurious `libboost` run-export,
pinning openusd into every boost migration and forcing downstream consumers
(usd-exchange, FreeCAD) onto openusd's boost version. Removing it drops the
phantom runtime constraint and takes openusd out of the boost migration cycle.
…2026.06.21.23.35.32

Other tools:
- conda-build 26.5.0
- rattler-build 0.66.2
- rattler-build-conda-compat 1.4.15
@oursland
oursland force-pushed the relax-libboost-depends branch from 23e4ef5 to 784f058 Compare June 22, 2026 06:35
@oursland

Copy link
Copy Markdown
Contributor Author

I wasn't 100% sure Boost wasn't used, but it's not exported and therefore doesn't require compatibility in depending projects. I've removed it altogether in the latest force push. Hopefully it will build and pass tests.

@traversaro

Copy link
Copy Markdown
Contributor

It seems that indeed (non vendored/forked) boost is not used at all!

@oursland
oursland merged commit 4c95bcc into conda-forge:main Jun 22, 2026
28 checks passed
@oursland
oursland deleted the relax-libboost-depends branch June 22, 2026 18:22
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

Successfully merging this pull request may close these issues.

3 participants