Skip to content

upgrade to oiio v3.X and add new ocio additional outputs - #138

Merged
h-vetinari merged 53 commits into
conda-forge:mainfrom
ndeybach:PR-v3
May 28, 2026
Merged

upgrade to oiio v3.X and add new ocio additional outputs#138
h-vetinari merged 53 commits into
conda-forge:mainfrom
ndeybach:PR-v3

Conversation

@ndeybach

@ndeybach ndeybach commented Apr 21, 2026

Copy link
Copy Markdown
Contributor

transforms to recipe v1 target and uses pixi and rattler build now.

  • rerendered the recipe with new pixi / rattler-build formats
    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.

ndeybach added 7 commits March 8, 2026 17:57
transforms to recipe v1 target and uses pixi and rattler build now.

- rerendered the recipe with new pixi / rattler-build formats
- incremented build number
- regrouped the build logic in a single file as to improve readability in one go of all the branches
- changed the file cleanup to more explicit include in the recipe, and not "rm -rf" style in the script
- added some documentation link
- add precise files and libs for tests (no wildcard)
- remove buildstring overide (let default one)
- clenup / removal of old `recipe/install_lib.sh` and `recipe/install_python.sh` that are no longer needed (fused in main script)
- removal of wrong numpy pin in `recipe/conda_build_config.yaml`
- `recipe/build.sh` addition of removal of docs there
- in recipe, don't use build.files.include as redundant with build script cmale install ..
- cleaner use of script.env for env vars injections in build script
- update license (OIIO moved to Apache 2.0 in 2023)
- add ocio (libs, tools, python)
- make order of things in recipe proper and also match the v2.x orders for oiio
- remove old build.sh script and add 2 pendants for it in ocio
- correct pins for libs (as requested by oiio cmake)
- remove unecessary ignore_run_exports sections
Merges everything from new v1 rerender on main into v3 branch. Except :
- the recipe and build.sh that are v3.x of oiio/ocio
- update target version of oiio
- windows support added
- python build deps added to get it working
- disable openvdb until the recipe there is decoupled from python
@ndeybach ndeybach changed the title Rerender with conda forge upgrade to oiio v3.X and add new ocio additional outputs Apr 21, 2026
@ndeybach

Copy link
Copy Markdown
Contributor Author

@conda-forge-admin, please rerender

@conda-forge-admin

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.

carlodri pushed a commit to conda-forge/pystring-feedstock that referenced this pull request Apr 21, 2026
martin-g pushed a commit to conda-forge/dcmtk-feedstock that referenced this pull request Apr 22, 2026
- add arm64 target under macos as it is needed in oiio feedstock : conda-forge/openimageio-feedstock#138
- increment build number
ndeybach added 11 commits April 22, 2026 11:06
- pystring and dcmtk packages were added required build targets
fix cross compilation builds by using build python during build requirements and not host / target binaries.
Replace fragile Windows lib content checks with explicit DLL/import-lib assertions, add the missing ocioocpuinfo executable check.
- Patch OCIO's Windows Python precommand handling for Ninja builds (wrong injection).

- Relax full-doc-only Python package checks so PyOpenColorIO can build its docstring path without the full HTML docs stack (with patch)

- Keep the temporary macOS minizip library override in the OCIO build script. Ignore the spurious base zlib run export on opencolorio.

Clean up the OCIO tools tests so they are more robust across Unix and Windows.
in 0001-FIX_WIN_NINJA_PYTHON_ENV.patch ; PATH was escaped for CMake/Ninja, but PYTHONPATH was not
OCIO’s CMake asks for Python with Development.Module
- adds reference field in patches
- adds a 0003 patch: Regenerate the OCIO patch series so Windows Python precommand handling and docstring extraction are split cleanly. This keeps patch metadata honest and avoids Ninja batch failures while preserving PyOpenColorIO docstring generation.
When doing cross platform, ocio needs to use a python target for build and runtime that are different.

This fixes that by indicating it to cmake..
- add libopencolorio (resp libopenimageio) with the c++ libraries, headers, CMake/pkg-config.
- And separatly have a metapackage of opencolorio (resp openimageio) to make it work continuity wise with v2.X packages and also allow lower size installs when only the c++ parts are needed.
@ndeybach

Copy link
Copy Markdown
Contributor Author

@conda-forge-admin, please rerender

Comment thread recipe/recipe.yaml
Comment thread recipe/recipe.yaml Outdated
ndeybach added 6 commits May 6, 2026 15:20
Since `tests.package_contents.lib: OpenColorIO` fails under windows, this commit tries a different approach under windows..
According to the rattler build source code:

https://github.com/prefix-dev/rattler-build/blob/ed72949488cef3952cde1f3d074772a8bb6dbe7e/crates/rattler_build_core/src/package_test/content_test.rs#L231

The  `tests.package_contents.lib: OpenColorIO` checks in tests do not account for file names with versionning.

So as a best case attempt we have a special glob for the windows DLL
Since oiio and ocio could be used as dependencies of other libraries / projects that depend on ABI  and that also have python bundled in that itself could cross use the ABI ... we add pybind-abi (documentation on the matter: https://conda-forge.org/docs/maintainer/knowledge_base/#pybind11-and-swig-abi-constraints)

(this could be confirmed by someone more experienced maybe, but awaiting that and in doubt adding it currently to avoid potential future incompatibilities. I would rather remove it than deal with later problem because of it missing)
- having only :

```
lib:
            - OpenColorIO
            - if: win
              then:
                - OpenColorIO_*.dll
```

Seems to fail with:
```
error Package content test failed:
error -   No match for lib glob: OpenColorIO
```

So remove for windows the general `- OpenColorIO` test and add a .lib specific one

- also for libopenimageio fix removal of OpenImageIO_Util by error
Since conda-forge/pystring-feedstock#4 was merged with added run_exports for pystring, we can remove the ones in this feedstock.
Tries to cleanup / improve a bit some sentences.
@ndeybach

ndeybach commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

@conda-forge-admin, please rerender

@ndeybach
ndeybach marked this pull request as ready for review May 7, 2026 17:35
@ndeybach

ndeybach commented May 7, 2026

Copy link
Copy Markdown
Contributor Author

@h-vetinari,

I have resolved as best as possible your initial review points. See oiio package test for the required syntax since the DLL is versioned in its naming.


Overall, I think the recipe is good for a proper review and addressing of the above points I raised so we can probably merge once they are agreed upon.

Most notably which outputs are added, and their naming needs to be decided so I can do the request for the new outputs (the only reason CI currently returns a failed build on all platform).

@ndeybach

Copy link
Copy Markdown
Contributor Author

@conda-forge-admin, please rerender

@h-vetinari h-vetinari left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for your work here!

@h-vetinari

Copy link
Copy Markdown
Member

Ah, just noticed that CI is deep red... This needs fixing first, obviously

now that new CF outputs for the recipe have been approved, retrigger CI to test if passing ok.
@ndeybach

Copy link
Copy Markdown
Contributor Author

CI all green and PR ready to merge 😁

@h-vetinari
h-vetinari merged commit 169f5e1 into conda-forge:main May 28, 2026
9 checks passed
@h-vetinari h-vetinari mentioned this pull request May 29, 2026
5 tasks
wolfv pushed a commit to conda-forge/conda-forge-pinning-feedstock that referenced this pull request Jul 17, 2026
Following recent refactor and [upgrade to 3.X](conda-forge/openimageio-feedstock#138) of OIIO (openimageio) and addition of the OCIO (opencolorio) builds and split into multiple packages:

- libopencolorio: OCIO core library and headers
- py-opencolorio: OCIO Python bindings
- libopenimageio: OIIO core library and headers
- py-openimageio: OIIO Python bindings
- openimageio-tools: OIIO command-line tools
- opencolorio-tools: OCIO command-line tools (built with OIIO lib support)
- openimageio: metapackage OIIO library and command-line tools bundle
- opencolorio: metapackage OCIO library and command-line tools bundle

Thus with explicit library packages (libopenimageio & libopencolorio), it seems relevant and necessary to add them to the global pinning.

Hence this commit pins libopenimageio to 3.1 and libopencolorio to 2.5, matching their minor-level run exports for ABI migrations.
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