Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OpenImageIO: Add 3.0.0.0 release #25672

Open
wants to merge 46 commits into
base: master
Choose a base branch
from

Conversation

irieger
Copy link
Contributor

@irieger irieger commented Oct 19, 2024

Summary

Changes to recipe: openimageio/3.0.0.0

NOTE: Right now this is a draft using the beta-tag to prepare the MR to be updated once the release is ready.

Motivation

OpenImageIO 3.0.0.0 brings a larger update of the infrastructure, new file formats (especially Jpeg XL which now becomes popular) etc.

Details

Larger changes in the build system introducing the need to adapt a few things, especially:

  • libjxl/JpegXS support only being available in 3.0.0.0 and newer
  • boost no longer needed beginning with 3.0.0.0
  • C++17 now the required standard for Version >= 3

#25660 should ideally be merged to make libjxl a default, currently lcms version needs to be overriden so that libjxl & opencolorio can be required at the same time.


@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@AbrilRBS
Copy link
Member

@irieger are these the only changes you expect to make? I think that maybe we want to split the new major into its own recipe if the changes are going to end up making the old recipe more confusing, thanks!

@AbrilRBS AbrilRBS marked this pull request as draft October 21, 2024 14:14
@AbrilRBS
Copy link
Member

Also, I've converted this to a draft to avoid merging it by mistake, but otherwise the CI should work just the same :)

@conan-center-bot

This comment has been minimized.

@irieger
Copy link
Contributor Author

irieger commented Oct 21, 2024

@irieger are these the only changes you expect to make? I think that maybe we want to split the new major into its own recipe if the changes are going to end up making the old recipe more confusing, thanks!

I'm open to split it up if you think that it would be best to split? I don't currently see much more changes than we currently have, maybe the need for a few more being done in the patching to get the linking fixed, there seems to be a private/public linking issue of some third party libs not translating to the final linking step which I'll look at in the coming days.

@irieger
Copy link
Contributor Author

irieger commented Oct 21, 2024

Also, I've converted this to a draft to avoid merging it by mistake, but otherwise the CI should work just the same :)

How does this work? As I'm normally used to gitlab at work as well as for my personal stuff, I'm not yet firm with all the Github tools. For gitlab just prefixing the title with Draft is enough to prevent the merge already. According to goolge there should be a setting below the Reviewers selection (I assume on the right side of the description), but I don't see a link to change the state there.

@AbrilRBS
Copy link
Member

, but I don't see a link to change the state there.

Oh, that's because I already set is as a draft. Marking it as such simply tells ours bot not to automatically merge it, and disables the merge button in the UI

@irieger
Copy link
Contributor Author

irieger commented Nov 2, 2024

@AbrilRBS Build locally has just worked after the lcms 2.16 was merged. Now in the CCI we have "Error running command `conan graph info --requires..." doesn't really give more information so might that be related to the lcms thingy?

EDIT: As it is shortened and the link doesn't reveal the real call, I can't really locally replicate this exact call here to see what error comes from it.

@irieger
Copy link
Contributor Author

irieger commented Nov 2, 2024

Btw. in the OpenImageIO Slack channel, the maintainer announced that on monday a release candidate should be tagged and next friday there should be the release. I plan to get everything ready based on the RC next week and then should just need to swap the source URL & checksum hopefully.

@irieger
Copy link
Contributor Author

irieger commented Nov 28, 2024

Iirc there was some chatter that with the new CI infrastructure there could be alternative configurations of packages being built that aren't using defaults? For macOS I can only build with --build=missing -o:a 'minizip-ng/*:with_zlib=True' -o:a 'minizip-ng/*:with_libcomp=False' due to:

opencolorio/2.4.0: Invalid: opencolorio/2.4.0 requires minizip-ng with with_zlib = True. On Apple platforms with_libcomp = False is also needed to enable the with_zlib option.

Due to this, currently neither opencolorio nor openimageio will be build for macOS in the CI. Would be nice if it could be done?

@topheg
Copy link

topheg commented Dec 24, 2024

Hello, I tried your recipe for OIIO 3, and have a few remarks / questions

Though libpng is added as a dependency, PNG support is not compiled, I always get :

"CMake Warning at src/png.imageio/CMakeLists.txt:11 (message):
libpng not found, so PNG support will not work

I also see that the build system of OIIO downloads and builds fmt itself, even though it is provided as a dependency.

-- Building package fmt locally
-- Building local fmt 10.2.1 from https://github.com/fmtlib/fmt
-- Downloading local https://github.com/fmtlib/fmt

And one last thing, I see libsquish is declared as a dependency, is it still used in OIIO 3 ? I cannot find any mention of it in the docs.

Anyway, thanks for the great work !

@irieger
Copy link
Contributor Author

irieger commented Jan 1, 2025

Hello, I tried your recipe for OIIO 3, and have a few remarks / questions

Though libpng is added as a dependency, PNG support is not compiled, I always get :

"CMake Warning at src/png.imageio/CMakeLists.txt:11 (message):
libpng not found, so PNG support will not work

I also see that the build system of OIIO downloads and builds fmt itself, even though it is provided as a dependency.

-- Building package fmt locally
-- Building local fmt 10.2.1 from https://github.com/fmtlib/fmt
-- Downloading local https://github.com/fmtlib/fmt

And one last thing, I see libsquish is declared as a dependency, is it still used in OIIO 3 ? I cannot find any mention of it in the docs.

Anyway, thanks for the great work !

Thx for the input. You are right on both points. Missed the png in all the verbosity of the build. And libsquish was also overlooked. Just fixed both. Now looking into getting the pipeline work again.

@irieger
Copy link
Contributor Author

irieger commented Jan 12, 2025

Note for reviewer: The build issue for shared builds looks like what was discussed in #23421

@irieger
Copy link
Contributor Author

irieger commented Jan 12, 2025

Also just created #26364 to solve the graph conflict introduced by a libtiff recipe update a few days ago.

@irieger
Copy link
Contributor Author

irieger commented Jan 18, 2025

Note: I have this successfully build on Windows/Linux and macOS (arm, I don't run this pipeline for x64 macOS anymore).

@irieger
Copy link
Contributor Author

irieger commented Mar 17, 2025

@AbrilRBS @perseoGI Hey, would be nice to get some input here how we could move forward. OIIO just released the next version but I'll spare myself from keeping this PR up to date as long as I'm waiting for feedback but would update once we have some concept to move forward.

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.

5 participants