upgrade to oiio v3.X and add new ocio additional outputs - #138
Conversation
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
|
@conda-forge-admin, please rerender |
|
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 ( |
needed for making oiio 3.X feedstock conda-forge/openimageio-feedstock#138
- add arm64 target under macos as it is needed in oiio feedstock : conda-forge/openimageio-feedstock#138 - increment build number
- 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.
|
@conda-forge-admin, please rerender |
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.
|
@conda-forge-admin, please rerender |
|
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). |
|
@conda-forge-admin, please rerender |
h-vetinari
left a comment
There was a problem hiding this comment.
Thank you for your work here!
|
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.
|
CI all green and PR ready to merge 😁 |
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.
transforms to recipe v1 target and uses pixi and rattler build now.
Checklist
0(if the version changed)conda-smithy(Use the phrase@conda-forge-admin, please rerenderin a comment in this PR for automated rerendering)