From 9813b5e16f5878066d48edb31afb7643ca5b72c4 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Sat, 12 Jul 2025 13:04:49 -0700 Subject: [PATCH 01/14] Initial commit for VFX 2026 images Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 50 ++ CONTRIBUTING.md | 51 +- README.md | 219 +++-- ci-base/Dockerfile | 10 +- ci-base/README.md | 56 +- ci-base/image.yaml | 2 +- ci-baseqt/Dockerfile | 10 +- ci-baseqt/README.md | 68 +- ci-baseqt/image.yaml | 2 +- ci-common/README.md | 66 +- ci-materialx/Dockerfile | 10 +- ci-materialx/README.md | 79 +- ci-materialx/image.yaml | 2 +- ci-ocio/Dockerfile | 10 +- ci-ocio/README.md | 65 +- ci-ocio/image.yaml | 2 +- ci-oiio/Dockerfile | 14 +- ci-oiio/README.md | 73 +- ci-oiio/image.yaml | 2 +- ci-opencue/README.md | 15 +- ci-openexr/README.md | 22 +- ci-openfx/Dockerfile | 102 +++ ci-openfx/README.md | 41 + ci-openfx/image.yaml | 12 + ci-openrv/README.md | 21 +- ci-openvdb/Dockerfile | 10 +- ci-openvdb/README.md | 179 ++-- ci-openvdb/image.yaml | 2 +- ci-osl/Dockerfile | 14 +- ci-osl/README.md | 183 ++-- ci-osl/image.yaml | 2 +- ci-otio/Dockerfile | 10 +- ci-otio/README.md | 68 +- ci-otio/image.yaml | 2 +- ci-usd/Dockerfile | 10 +- ci-usd/README.md | 95 +- ci-usd/image.yaml | 2 +- ci-vfxall/Dockerfile | 14 +- ci-vfxall/README.md | 211 +++-- ci-vfxall/image.yaml | 2 +- packages/base1/Dockerfile | 38 - packages/base2/Dockerfile | 78 -- packages/base3/Dockerfile | 113 --- packages/common/Dockerfile | 10 +- packages/conan/recipes/b2/conandata.yml | 3 + packages/conan/recipes/boost/conandata.yml | 15 + packages/conan/recipes/boost/conanfile.py | 58 +- .../dependencies/dependencies-1.82.0.yml | 2 +- .../dependencies/dependencies-1.88.0.yml | 299 +++++++ ...1.87.0-boost-fiber-fix-property-numa.patch | 60 ++ .../1.88.0-locale-iconv-library-option.patch | 12 + .../recipes/boost/test_package/conanfile.py | 70 +- .../recipes/boost/test_package/process.cpp | 19 +- packages/conan/recipes/brotli/conanfile.py | 10 +- packages/conan/recipes/bzip2/CMakeLists.txt | 4 +- packages/conan/recipes/bzip2/conandata.yml | 12 +- .../recipes/bzip2/test_package/CMakeLists.txt | 4 +- .../recipes/{blosc => c-blosc}/conandata.yml | 0 .../recipes/{blosc => c-blosc}/conanfile.py | 22 +- .../patches/cmake-dependencies-1.21.4+.patch | 0 .../test_package/CMakeLists.txt | 8 +- .../test_package/conanfile.py | 0 .../test_package/test_package.c | 0 packages/conan/recipes/clang/conandata.yml | 65 +- packages/conan/recipes/clang/conanfile.py | 274 ++++-- .../patches/19x/0000-cmake-dependencies.patch | 93 ++ .../conan/recipes/clang/patches/dummy.diff | 0 packages/conan/recipes/cmake/conandata.yml | 3 + packages/conan/recipes/cpython/conandata.yml | 18 +- packages/conan/recipes/cpython/conanfile.py | 58 +- .../3.13/3.13.0-0002-remove-module-deps.patch | 50 ++ ....13.0-0003-relocatable-python-config.patch | 11 + .../recipes/cpython/test_package/conanfile.py | 10 +- packages/conan/recipes/dbus/conanfile.py | 3 +- .../recipes/double-conversion/conanfile.py | 5 +- packages/conan/recipes/expat/conandata.yml | 9 + packages/conan/recipes/expat/conanfile.py | 2 + .../recipes/expat/test_package/CMakeLists.txt | 8 +- packages/conan/recipes/fmt/conandata.yml | 3 + .../conan/recipes/fontconfig/conanfile.py | 5 +- packages/conan/recipes/gdbm/conanfile.py | 5 +- packages/conan/recipes/giflib/conanfile.py | 13 +- packages/conan/recipes/glew/conanfile.py | 42 +- .../glew/patches/0001-fix-cmake-2.1.0.patch | 2 +- .../glew/patches/0001-fix-cmake-2.2.0.patch | 2 +- packages/conan/recipes/glfw/conandata.yml | 45 +- packages/conan/recipes/glfw/conanfile.py | 62 +- .../recipes/glfw/test_package/CMakeLists.txt | 4 +- packages/conan/recipes/glib/conanfile.py | 22 +- packages/conan/recipes/gtest/conandata.yml | 3 + packages/conan/recipes/gtest/conanfile.py | 12 +- packages/conan/recipes/icu/conanfile.py | 16 +- packages/conan/recipes/lcms/conandata.yml | 3 + packages/conan/recipes/libalsa/conanfile.py | 5 +- .../libbacktrace/test_package/CMakeLists.txt | 4 +- .../conan/recipes/libdeflate/conandata.yml | 3 + packages/conan/recipes/libdrm/conanfile.py | 3 +- packages/conan/recipes/libffi/conanfile.py | 5 +- packages/conan/recipes/libiconv/conandata.yml | 5 +- packages/conan/recipes/libiconv/conanfile.py | 34 +- .../libiconv/test_package/CMakeLists.txt | 4 +- .../conan/recipes/libjpeg-turbo/conanfile.py | 16 +- packages/conan/recipes/libjxl/conanfile.py | 2 +- packages/conan/recipes/libpng/conanfile.py | 13 +- .../conan/recipes/libsndfile/conanfile.py | 5 +- packages/conan/recipes/libtiff/conanfile.py | 14 +- .../conan/recipes/libxcrypt/conandata.yml | 3 + .../libxcrypt/test_package/CMakeLists.txt | 4 +- .../conan/recipes/libxshmfence/conanfile.py | 5 +- packages/conan/recipes/lz4/conanfile.py | 32 +- .../recipes/lz4/test_package/CMakeLists.txt | 4 +- packages/conan/recipes/md4c/conanfile.py | 8 +- .../recipes/md4c/test_package/CMakeLists.txt | 4 +- .../conan/recipes/minizip-ng/conandata.yml | 5 +- .../conan/recipes/minizip-ng/conanfile.py | 4 +- packages/conan/recipes/mpdecimal/conanfile.py | 5 +- packages/conan/recipes/nspr/conanfile.py | 3 +- packages/conan/recipes/nss/conanfile.py | 23 +- packages/conan/recipes/ocio/conanfile.py | 4 +- packages/conan/recipes/oiio/conandata.yml | 20 + packages/conan/recipes/oiio/conanfile.py | 2 +- .../conan/recipes/onetbb/all/conandata.yml | 3 + packages/conan/recipes/onetbb/config.yml | 2 + .../conan/recipes/openal-soft/conanfile.py | 3 +- packages/conan/recipes/openexr/conanfile.py | 2 +- packages/conan/recipes/openfx/CMakeLists.txt | 78 ++ .../conan/recipes/openfx/cmake/OpenFX.cmake | 22 + packages/conan/recipes/openfx/conandata.yml | 14 + packages/conan/recipes/openfx/conanfile.py | 118 +++ .../recipes/openfx/symbols/linux.symbols | 7 + .../conan/recipes/openfx/symbols/os.symbols | 2 + .../recipes/openfx/symbols/windows.symbols | 3 + .../openfx/test_package/CMakeLists.txt | 26 + .../recipes/openfx/test_package/conanfile.py | 32 + .../recipes/openfx/test_package/invert.cpp | 307 +++++++ packages/conan/recipes/openjpeg/conanfile.py | 14 +- packages/conan/recipes/openssl/conanfile.py | 5 +- .../conan/recipes/opensubdiv/conandata.yml | 11 + .../conan/recipes/opensubdiv/conanfile.py | 42 +- .../opensubdiv/test_package/CMakeLists.txt | 2 +- packages/conan/recipes/openvdb/conandata.yml | 25 + packages/conan/recipes/openvdb/conanfile.py | 310 +++++++ .../openvdb/test_package/CMakeLists.txt | 18 + .../recipes/openvdb/test_package/conanfile.py | 32 + .../openvdb/test_package/test_package.cpp | 20 + packages/conan/recipes/opus/conanfile.py | 5 +- packages/conan/recipes/pcre2/conanfile.py | 7 +- .../recipes/ptex/test_package/CMakeLists.txt | 4 +- packages/conan/recipes/pugixml/conandata.yml | 3 + .../pugixml/test_package/CMakeLists.txt | 4 +- .../conan/recipes/pulseaudio/conanfile.py | 8 +- packages/conan/recipes/pybind11/conanfile.py | 12 +- .../pybind11/test_package/conanfile.py | 6 + packages/conan/recipes/pyside/conandata.yml | 9 +- .../conan/recipes/pystring/CMakeLists.txt | 4 +- .../pystring/test_package/CMakeLists.txt | 4 +- packages/conan/recipes/qt/conandata.yml | 140 ++- packages/conan/recipes/qt/conanfile.py | 9 +- ...01-ninja-1.12-build-qtwebengine-6.5.6.diff | 10 + .../qt/patches/CVE-2024-33861-qtbase-6.5.diff | 22 + .../patches/CVE-2024-39936-qtbase-6.5.patch | 138 +++ .../CVE-2025-23050-qtconnectivity-6.5.diff | 221 +++++ .../CVE-2025-23050-qtconnectivity-6.8.diff | 220 +++++ .../qt/patches/CVE-2025-30348-qtbase-6.5.diff | 127 +++ .../qt/patches/CVE-2025-3512-qtbase-6.8.diff | 230 +++++ .../qt/patches/CVE-2025-4211-qtbase-6.5.diff | 61 ++ .../qt/patches/CVE-2025-4211-qtbase-6.8.diff | 60 ++ .../qt/patches/CVE-2025-5455-qtbase-6.5.patch | 22 + .../qt/patches/CVE-2025-5455-qtbase-6.8.patch | 21 + .../CVE-2025-5683-qtimageformats-6.5.patch | 29 + .../CVE-2025-5683-qtimageformats-6.8.patch | 28 + .../recipes/qt/patches/QTBUG-59769-6.5.6.diff | 30 + .../recipes/qt/patches/c72097e-6.5.6.diff | 42 + ....5.4.diff => qtbase-core-cmake-6.5.4.diff} | 0 .../qt/patches/qtbase-core-cmake-6.5.6.diff | 14 + .../patches/spellcheck_buildflags-6.5.6.diff | 10 + packages/conan/recipes/qt/qtmodules6.5.6.conf | 332 +++++++ packages/conan/recipes/qt/qtmodules6.7.3.conf | 338 +++++++ packages/conan/recipes/qt/qtmodules6.8.3.conf | 338 +++++++ packages/conan/recipes/snappy/conandata.yml | 16 + packages/conan/recipes/snappy/conanfile.py | 11 +- ...2.2-0003-fix-clobber-list-older-llvm.patch | 13 + .../patches/1.2.2-0004-rtti-by-default.patch | 26 + .../snappy/test_package/test_package.c | 2 +- packages/conan/recipes/sqlite3/conanfile.py | 5 +- packages/conan/recipes/tcl/conanfile.py | 5 +- packages/conan/recipes/tk/conanfile.py | 5 +- .../conan/recipes/tsl-robin-map/conandata.yml | 3 + .../recipes/util-linux-libuuid/conanfile.py | 5 +- .../conan/recipes/vulkan-headers/conanfile.py | 7 +- .../conan/recipes/vulkan-loader/conanfile.py | 5 +- packages/conan/recipes/xkbcommon/conanfile.py | 19 +- .../recipes/xorg/test_package/CMakeLists.txt | 6 +- packages/conan/recipes/xz_utils/conanfile.py | 5 +- packages/conan/recipes/yaml-cpp/conanfile.py | 34 +- packages/conan/recipes/zlib/conanfile.py | 11 +- .../recipes/zlib/test_package/CMakeLists.txt | 4 +- .../recipes/zlib/test_package/test_package.c | 24 +- packages/conan/recipes/zstd/conandata.yml | 3 + packages/conan/recipes/zstd/conanfile.py | 13 +- .../recipes/zstd/test_package/CMakeLists.txt | 4 +- packages/conan/settings/global.conf | 4 +- .../conan/settings/profiles_aswf/ci_common4 | 20 +- .../conan/settings/profiles_aswf/ci_common5 | 20 +- .../conan/settings/profiles_aswf/ci_common6 | 19 + packages/conan/settings/profiles_aswf/vfx2024 | 16 +- packages/conan/settings/profiles_aswf/vfx2025 | 14 +- packages/conan/settings/profiles_aswf/vfx2026 | 109 +++ .../settings/profiles_aswftesting/ci_common4 | 4 +- .../settings/profiles_aswftesting/ci_common6 | 19 + .../settings/profiles_aswftesting/vfx2024 | 16 +- .../settings/profiles_aswftesting/vfx2025 | 14 +- .../settings/profiles_aswftesting/vfx2026 | 108 +++ packages/vfx1/Dockerfile | 8 +- packages/vfx2/Dockerfile | 8 +- python/aswfdocker/builder.py | 18 +- python/aswfdocker/cli/aswfdocker.py | 172 +++- python/aswfdocker/data/versions.yaml | 845 ++++++++++++------ python/aswfdocker/tests/test_builder.py | 63 +- python/aswfdocker/tests/test_migrater.py | 42 +- scripts/common/install_cudadevel.sh | 9 +- scripts/common/install_dev_ccache.sh | 2 +- scripts/common/install_dev_cmake.sh | 2 +- scripts/common/install_pippackages.sh | 6 +- scripts/common/install_yumpackages.sh | 81 +- scripts/vfx/build_otio.sh | 2 +- 226 files changed, 7331 insertions(+), 1854 deletions(-) create mode 100644 ci-openfx/Dockerfile create mode 100644 ci-openfx/README.md create mode 100644 ci-openfx/image.yaml delete mode 100644 packages/base1/Dockerfile delete mode 100644 packages/base2/Dockerfile delete mode 100644 packages/base3/Dockerfile create mode 100644 packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml create mode 100644 packages/conan/recipes/boost/patches/1.87.0-boost-fiber-fix-property-numa.patch create mode 100644 packages/conan/recipes/boost/patches/1.88.0-locale-iconv-library-option.patch rename packages/conan/recipes/{blosc => c-blosc}/conandata.yml (100%) rename packages/conan/recipes/{blosc => c-blosc}/conanfile.py (84%) rename packages/conan/recipes/{blosc => c-blosc}/patches/cmake-dependencies-1.21.4+.patch (100%) rename packages/conan/recipes/{blosc => c-blosc}/test_package/CMakeLists.txt (52%) rename packages/conan/recipes/{blosc => c-blosc}/test_package/conanfile.py (100%) rename packages/conan/recipes/{blosc => c-blosc}/test_package/test_package.c (100%) create mode 100644 packages/conan/recipes/clang/patches/19x/0000-cmake-dependencies.patch delete mode 100644 packages/conan/recipes/clang/patches/dummy.diff create mode 100644 packages/conan/recipes/cpython/patches/3.13/3.13.0-0002-remove-module-deps.patch create mode 100644 packages/conan/recipes/cpython/patches/3.13/3.13.0-0003-relocatable-python-config.patch create mode 100644 packages/conan/recipes/openfx/CMakeLists.txt create mode 100644 packages/conan/recipes/openfx/cmake/OpenFX.cmake create mode 100644 packages/conan/recipes/openfx/conandata.yml create mode 100644 packages/conan/recipes/openfx/conanfile.py create mode 100644 packages/conan/recipes/openfx/symbols/linux.symbols create mode 100644 packages/conan/recipes/openfx/symbols/os.symbols create mode 100644 packages/conan/recipes/openfx/symbols/windows.symbols create mode 100644 packages/conan/recipes/openfx/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/openfx/test_package/conanfile.py create mode 100644 packages/conan/recipes/openfx/test_package/invert.cpp create mode 100644 packages/conan/recipes/openvdb/conandata.yml create mode 100644 packages/conan/recipes/openvdb/conanfile.py create mode 100644 packages/conan/recipes/openvdb/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/openvdb/test_package/conanfile.py create mode 100644 packages/conan/recipes/openvdb/test_package/test_package.cpp create mode 100644 packages/conan/recipes/qt/patches/0001-ninja-1.12-build-qtwebengine-6.5.6.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2024-33861-qtbase-6.5.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2024-39936-qtbase-6.5.patch create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.5.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.8.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-30348-qtbase-6.5.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.5.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.8.diff create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.5.patch create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.8.patch create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.5.patch create mode 100644 packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch create mode 100644 packages/conan/recipes/qt/patches/QTBUG-59769-6.5.6.diff create mode 100644 packages/conan/recipes/qt/patches/c72097e-6.5.6.diff rename packages/conan/recipes/qt/patches/{qtbase-core-cmake_6.5.4.diff => qtbase-core-cmake-6.5.4.diff} (100%) create mode 100644 packages/conan/recipes/qt/patches/qtbase-core-cmake-6.5.6.diff create mode 100644 packages/conan/recipes/qt/patches/spellcheck_buildflags-6.5.6.diff create mode 100644 packages/conan/recipes/qt/qtmodules6.5.6.conf create mode 100644 packages/conan/recipes/qt/qtmodules6.7.3.conf create mode 100644 packages/conan/recipes/qt/qtmodules6.8.3.conf create mode 100644 packages/conan/recipes/snappy/patches/1.2.2-0003-fix-clobber-list-older-llvm.patch create mode 100644 packages/conan/recipes/snappy/patches/1.2.2-0004-rtti-by-default.patch mode change 120000 => 100644 packages/conan/settings/profiles_aswf/ci_common4 mode change 120000 => 100644 packages/conan/settings/profiles_aswf/ci_common5 create mode 100644 packages/conan/settings/profiles_aswf/ci_common6 create mode 100644 packages/conan/settings/profiles_aswf/vfx2026 create mode 100644 packages/conan/settings/profiles_aswftesting/ci_common6 create mode 100644 packages/conan/settings/profiles_aswftesting/vfx2026 diff --git a/CHANGELOG.md b/CHANGELOG.md index 11472576..07845596 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,56 @@ All notable changes to this project will be documented in this file. +# 2025-07-XX + +- 2024.3 release + - using Conan 2 recipes + - updated versions + - Conan 2.16.1 (was 1.x) + - CUDA 12.6.3 (was 12.6.1) + - ccache 4.9.1 (was 4.8.3) + - CMake 3.31.7 (was 3.27.9) + - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) + - Blosc 1.21.6 (was 1.21.5) + - GLEW 2.2.0 (was 2.1.0) + - GLFW 3.4 (was 3.3.8) + - gtest 1.15.2 (was 1.14.0) + - lcmd 2.17 (was 2.16) + - log4cplus 2.1.2 (was 2.1.1) + - minizip-ng 4.0.10 (was 4.0.8) + - pybind11 2.13.6 (was 2.12.0) + - opensubdive 3.6.1 (was 3.6.0) + - python 3.11.13 (was 3.11.11) + - Qt 6.5.6 (was 6.5.4) + - OIIO 2.5.19.0 (was 2.5.18.0) + - OpenFX 1.5s +- 2025.2 + - updated versions + - Conan 2.16.1 (was 2.14.0) + - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) + - LLVM 19.1.7 (was 19.1.1) + - lcmd 2.17 (was 2.16) + - minizip-ng 4.0.10 (was 4.0.8) + - opensubdiv 3.6.1 (was 3.6.0) + - python 3.11.13 (was 3.11.11) + - Qt 6.5.6 (was 6.5.4) + - OIIO 3.0.8.1 (was 3.0.6.1) + - OpenEXR 3.3.4 (was 3.3.3) + - OpenFX 1.5s + - OSL 1.14.6.0 (was 1.14.5.1) +- 2026.0 + - pre-release for testing purposes, does not yet include late releasing ASWF packages in final 2026 release (OOCIO, OpenEXR, OpenVDB) + - see `ci_common6` and `2026` sections of versions.yaml for full list of package versions +- new build images for OpenFX +- OpenVDB now built as a Conan package +- system wrapper Conan packages + - improved wrapper packages no longer declare include directories and libraries they don't include + - query container OS for installed system package version instead of hard coding (pkgconfig / rpm) +- aswfdocker utility gets "conandiff" option to show upstream changes to vendored Conan Center Index recipes to help +with keeping recipes up to date + - merge upstream recipe changes, in particular changes for CMake 4 compatibility + - `--keep_source` and `--keep_build` command line options are obsolete, no longer relevant with Conan 2 + # 2025-05-04 - 2025.1 images diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7464d07b..7178d322 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -72,8 +72,8 @@ license. ### Commit Sign-Off Every commit must be signed off. That is, every commit log message -must include a “`Signed-off-by`” line (generated, for example, with -“`git commit --signoff`”), indicating that the committer wrote the +must include a "`Signed-off-by`" line (generated, for example, with +"`git commit --signoff`"), indicating that the committer wrote the code and has the right to release it under the [Apache-2.0](LICENSE.md) license. See [Contribution Sign-Off](https://github.com/AcademySoftwareFoundation/tac/blob/main/process/contributing.md#contribution-sign-off) for more information on this requirement. @@ -83,7 +83,7 @@ for more information on this requirement. ### Git Basics Working with aswf-docker requires understanding a significant amount of -Git and GitHub based terminology. If you’re unfamiliar with these +Git and GitHub based terminology. If you're unfamiliar with these tools or their lingo, please look at the [GitHub Glossary](https://help.github.com/articles/github-glossary/) or browse [GitHub Help](https://help.github.com/). @@ -113,8 +113,8 @@ contributions should be done on top of it. After sufficient work is done on the main branch and the aswf-docker leadership determines that a release is due, we will bump the relevant internal versioning and tag a commit with the corresponding version -number, e.g. v2.0.1. Each Minor version also has its own “Release -Branch”, e.g. RB-1.1. This marks a branch of code dedicated to that +number, e.g. v2.0.1. Each Minor version also has its own "Release +Branch", e.g. RB-1.1. This marks a branch of code dedicated to that Major.Minor version, which allows upstream bug fixes to be cherry-picked to a given version while still allowing the main branch to continue forward onto higher versions. This basic repository @@ -141,7 +141,7 @@ workflow. In a typical workflow, you should **fork** the aswf-docker repository to your account. This creates a copy of the repository under your user -namespace and serves as the “home base” for your development branches, +namespace and serves as the "home base" for your development branches, from which you will submit **pull requests** to the upstream repository to be merged. @@ -291,9 +291,20 @@ Use the existing recipes as an example, and borrow from the MIT-licensed Follow the great instructions there: [Conan Center Index - How to add Packages](https://github.com/conan-io/conan-center-index/blob/master/docs/how_to_add_packages.md), but ignore the `config.yml` instructions as the aswfdocker `versions.yaml` already -takes care of listing all the maintained package versions. +takes care of listing all the maintained package versions. If required `config.yml` can still be used when completely different recipes are require for +major package versions, see the `onetbb` package for an example. -Then ensure the ASWF-specific settings are added in the `conanfile.py` such as `python`. This project attempts to minimize local changes to the recipes which originate in the Conan Center Index. Local changes may be marked with a `# ASWF` comment. For simple recipes, the required changes may be as minimal as: +Then ensure the ASWF-specific settings are added in the `conanfile.py` such as `cpython`. This project attempts to minimize local changes to the recipes which originate in the Conan Center Index. Local changes may be marked with a `# ASWF` comment. For simple recipes, the required changes may be as minimal as: + +- adding a [SPDX license header](https://spdx.dev/learn/handling-license-info/) where the `From:` URL can be obtained by using the `y` hotkey in the GitHub web UI to obtain a permalink to the version of the Conan recipe file +you are basing hyour local copy on. +``` +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/opencolorio/all/conanfile.py +``` - adding a line to the `layout()` method to adhere to the Enterprise Linux convention of storing 64 bit libraries in the `lib64` directory rather than Conan's default `lib`: ``` @@ -354,6 +365,28 @@ The `--keep-source` and `--keep-build` can help when iterating on the build reci avoid re-downloading the source, and even keep the previous build artifact. All regular aswfdocker commands and options work the same with conan or docker packages. +You can use the `aswfdocker conandiff` command to view updates in the upstream Conan Center Index recipes since the last time the local copy was updated. This requires the `From: https://...` header comment to be updated correctly. + +``` +$ aswfdocker conandiff +Checking conanfile.py files... + +Found outdated conanfile.py: +aswf-docker/packages/conan/recipes/minizip-ng/conanfile.py: + Package: minizip-ng + Current SHA: 156d3592a823c0d3d297d8c365eee01f27532a49 + Found 1 newer commits: + Commit: 7e056a381694e0fd0b791b9fd06d87d391f461c0 + Diff URL: https://github.com/conan-io/conan-center-index/commit/7e056a381694e0fd0b791b9fd06d87d391f461c0 + Timestamp: 2024-12-31 14:55:30+00:00 + Message: + minizip-ng: add version 4.0.7 (#26112) + + * minizip-ng: add version 4.0.7 + + * rename windows library names in 4.0.7 +``` + ### Docker-only Packages If a package has no Conan recipe folder its conan package will be skipped at release time. @@ -391,7 +424,7 @@ Mutable: true Reclaimable: true Shared: false Size: 93.56GB -Description: cached mount /opt/conan_home/d from exec /bin/sh -c conan create ${ASWF_CONAN_KEEP_SOURCE} ${ASWF_CONAN_KEEP_BUILD} ${ASWF_CONAN_BUILD_MISSING} --profile:all ${ASWF_CONAN_HOME}/.conan2/profiles_${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} --name ${ASWF_PKG_NAME} --version ${ASWF_PKG_VERSION} --user ${ASWF_PKG_ORG} --channel ${ASWF_CONAN_CHANNEL} ${ASWF_CONAN_HOME}/recipes/${ASWF_PKG_NAME} with id "//opt/conan_home/d" +Description: cached mount /opt/conan_home/d from exec /bin/sh -c conan create ${ASWF_CONAN_BUILD_MISSING} --profile:all ${ASWF_CONAN_HOME}/.conan2/profiles_${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} --name ${ASWF_PKG_NAME} --version ${ASWF_PKG_VERSION} --user ${ASWF_PKG_ORG} --channel ${ASWF_CONAN_CHANNEL} ${ASWF_CONAN_HOME}/recipes/${ASWF_PKG_NAME} with id "//opt/conan_home/d" Usage count: 159 Last used: 14 minutes ago Type: exec.cachemount diff --git a/README.md b/README.md index aa83fab2..7931c45f 100644 --- a/README.md +++ b/README.md @@ -12,101 +12,122 @@ Changes are documented in [CHANGELOG.md](CHANGELOG.md) ## CI Images -These images are for Continuous Integration testing of various project managed by the ASWF. -Each image (apart from `ci-common`) is available for multiple VFX Platform Years. - -| Image | Stats | Description | -| ------ | ----- | ----------- | -| [aswf/ci-common:1](https://hub.docker.com/r/aswf/ci-common/tags?name=1) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/1) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/1) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base CentOS-7 image with devtoolset-6 (GCC-6.3.1), clang-6-10 and cuda-10.2. | -| [aswf/ci-common:2](https://hub.docker.com/r/aswf/ci-common/tags?name=2) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/2) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/2) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base CentOS-7 image with devtoolset-9.1 (GCC-9.3.1), clang-10-14 and cuda-11.4. | -| [aswf/ci-common:3](https://hub.docker.com/r/aswf/ci-common/tags?name=3) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/3) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/3) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-14-15 and cuda-11.8. | -| [aswf/ci-common:4](https://hub.docker.com/r/aswf/ci-common/tags?name=4) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/4) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/4) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-16-17 and cuda-12.6.1. | -| [aswf/ci-common:5](https://hub.docker.com/r/aswf/ci-common/tags?name=5) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/5) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/5) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-18-19 and cuda-12.6.1. | -| [aswf/ci-base:2018](https://hub.docker.com/r/aswf/ci-base/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:1` with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2019](https://hub.docker.com/r/aswf/ci-base/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2020](https://hub.docker.com/r/aswf/ci-base/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2021](https://hub.docker.com/r/aswf/ci-base/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2022](https://hub.docker.com/r/aswf/ci-base/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2023](https://hub.docker.com/r/aswf/ci-base/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:3` with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2024](https://hub.docker.com/r/aswf/ci-base/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:4` with most VFX Platform requirements pre-installed. | -| [aswf/ci-base:2025](https://hub.docker.com/r/aswf/ci-base/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:5` with most VFX Platform requirements pre-installed. | -| [aswf/ci-baseqt:2018](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:1` with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-baseqt:2019](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-baseqt:2020](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-baseqt:2021](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-baseqt:2022](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-baseqt:2023](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:3` with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-baseqt:2024](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:4` with most VFX Platform requirements pre-installed with Qt and Pyside. | -| [aswf/ci-baseqt:2025](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:5` with most VFX Platform requirements pre-installed with Qt and PySide. | -| [aswf/ci-openexr:2018](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:1`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2019](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:1`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2020](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:1`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2021](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:2`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2022](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:2`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2023](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:3`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2024](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:4`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-openexr:2025](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:5`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | -| [aswf/ci-ocio:2018](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:1`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2019](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:1`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2020](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:1`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2021](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:2`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2022](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:2`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2023](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:3`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2024](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:4`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-ocio:2025](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:5`, comes with all OpenColorIO upstream dependencies pre-installed. | -| [aswf/ci-opencue:2018](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:1`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2019](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:1`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2020](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:1`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2021](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:2`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2022](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:2`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2023](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:3`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2024](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:4`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-opencue:2025](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:5`, comes with all OpenCue upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2018](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:1`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2019](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:1`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2020](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:1`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2021](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:2`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2022](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:2`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2023](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:3`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2024](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:4`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-openvdb:2025](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:5`, comes with all OpenVDB upstream dependencies pre-installed. | -| [aswf/ci-otio:2019](https://hub.docker.com/r/aswf/ci-otio/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:1`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-otio:2020](https://hub.docker.com/r/aswf/ci-otio/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:1`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-otio:2021](https://hub.docker.com/r/aswf/ci-otio/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:2`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-otio:2022](https://hub.docker.com/r/aswf/ci-otio/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:2`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-otio:2023](https://hub.docker.com/r/aswf/ci-otio/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:3`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-otio:2024](https://hub.docker.com/r/aswf/ci-otio/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:4`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-otio:2025](https://hub.docker.com/r/aswf/ci-otio/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:5`, comes with all OpenTimelineIO upstream dependencies pre-installed. | -| [aswf/ci-oiio:2024](https://hub.docker.com/r/aswf/ci-oiio/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-oiio/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-oiio/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-oiio) | Based on `aswf/ci-common:4`, comes with all OpenImageIO upstream dependencies pre-installed. | -| [aswf/ci-oiio:2025](https://hub.docker.com/r/aswf/ci-oiio/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-oiio/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-oiio/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-oiio) | Based on `aswf/ci-common:5`, comes with all OpenImageIO upstream dependencies pre-installed. | -| [aswf/ci-materialx:2023](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:3`, comes with all MaterialX upstream dependencies pre-installed. | -| [aswf/ci-materialx:2024](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:4`, comes with all MaterialX upstream dependencies pre-installed. | -| [aswf/ci-materialx:2025](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:5`, comes with all MaterialX upstream dependencies pre-installed. | -| [aswf/ci-usd:2019](https://hub.docker.com/r/aswf/ci-usd/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-usd:2020](https://hub.docker.com/r/aswf/ci-usd/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-usd:2021](https://hub.docker.com/r/aswf/ci-usd/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-usd:2022](https://hub.docker.com/r/aswf/ci-usd/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-usd:2023](https://hub.docker.com/r/aswf/ci-usd/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:3`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-usd:2024](https://hub.docker.com/r/aswf/ci-usd/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:4`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-usd:2025](https://hub.docker.com/r/aswf/ci-usd/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:5`, comes with all USD upstream dependencies pre-installed. | -| [aswf/ci-osl:2018](https://hub.docker.com/r/aswf/ci-osl/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2019](https://hub.docker.com/r/aswf/ci-osl/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2020](https://hub.docker.com/r/aswf/ci-osl/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2021](https://hub.docker.com/r/aswf/ci-osl/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:2`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2022](https://hub.docker.com/r/aswf/ci-osl/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:2`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2023](https://hub.docker.com/r/aswf/ci-osl/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:3`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2024](https://hub.docker.com/r/aswf/ci-osl/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:4`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-osl:2025](https://hub.docker.com/r/aswf/ci-osl/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:5`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | -| [aswf/ci-openrv:2024](https://hub.docker.com/r/aswf/ci-openrv/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openrv/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openrv/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openrv) | Based on `aswf/ci-common:4`, comes with all OpenRV upstream dependencies pre-installed. | -| [aswf/ci-openrv:2025](https://hub.docker.com/r/aswf/ci-openrv/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openrv/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openrv/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openrv) | Based on `aswf/ci-common:5`, comes with all OpenRV upstream dependencies pre-installed. | -| [aswf/ci-vfxall:2019](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:1`, comes with most VFX packages pre-installed. | -| [aswf/ci-vfxall:2020](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:1`, comes with most VFX packages pre-installed. | -| [aswf/ci-vfxall:2021](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:2`, comes with most VFX packages pre-installed. | -| [aswf/ci-vfxall:2022](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:2`, comes with most VFX packages pre-installed. | -| [aswf/ci-vfxall:2023](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:3`, comes with most VFX packages pre-installed. | -| [aswf/ci-vfxall:2024](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:4`, comes with most VFX packages pre-installed. | -| [aswf/ci-vfxall:2025](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:5`, comes with most VFX packages pre-installed. | - +These images are for Continuous Integration testing of various project managed by the ASWF. Each image is available for multiple VFX Platform Years, some versions of `ci-common` are common to multiple VFX Platform Years. Docker Hub stats do not break down pull count statistics per image tag, the pull count is an aggregate for all tags of an image. + +The `ci-packagename` image contains all the dependencies required to build `packagename` and is meant to be used in that package's CI process, it does not include the package itself. The `ci-vfxall` image contains builds of every package, installed in `/usr/local`. + +| Image | Image Version | Stats | Description | +| ----- | ------------- | ----- | ----------- | +| [aswf/ci-common](https://hub.docker.com/r/aswf/ci-common) | [aswf/ci-common:1](https://hub.docker.com/r/aswf/ci-common/tags?name=1) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/1) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/1) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base CentOS-7 image with devtoolset-6 (GCC-6.3.1), clang-6-10 and cuda-10.2. | +| | [aswf/ci-common:2](https://hub.docker.com/r/aswf/ci-common/tags?name=2) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/2) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/2) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base CentOS-7 image with devtoolset-9.1 (GCC-9.3.1), clang-10-14 and cuda-11.4. | +| | [aswf/ci-common:3](https://hub.docker.com/r/aswf/ci-common/tags?name=3) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/3) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/3) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-14-15 and cuda-11.8. | +| | [aswf/ci-common:4](https://hub.docker.com/r/aswf/ci-common/tags?name=4) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/4) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/4) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-16-17 and cuda-12.6.3. | +| | [aswf/ci-common:5](https://hub.docker.com/r/aswf/ci-common/tags?name=5) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/5) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/5) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-8 image with gcc-toolset-11 (GCC-11.2.x), clang-18-19 and cuda-12.6.3. | +| | [aswf/ci-common:6](https://hub.docker.com/r/aswf/ci-common/tags?name=6) ![Image Version](https://img.shields.io/docker/v/aswf/ci-common/6) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-common/6) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-common) | A base RockyLinux-9 image with gcc-toolset-14 (GCC-14.2.x), clang-19-20 and cuda-12.9.1. | +| [aswf/ci-base](https://hub.docker.com/r/aswf/ci-base) | [aswf/ci-base:2018](https://hub.docker.com/r/aswf/ci-base/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:1` with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2019](https://hub.docker.com/r/aswf/ci-base/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2020](https://hub.docker.com/r/aswf/ci-base/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2021](https://hub.docker.com/r/aswf/ci-base/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2022](https://hub.docker.com/r/aswf/ci-base/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2023](https://hub.docker.com/r/aswf/ci-base/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:3` with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2024](https://hub.docker.com/r/aswf/ci-base/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:4` with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2025](https://hub.docker.com/r/aswf/ci-base/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:5` with most VFX Platform requirements pre-installed. | +| | [aswf/ci-base:2026](https://hub.docker.com/r/aswf/ci-base/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-base/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-base/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-base) | Based on `aswf/ci-common:6` with most VFX Platform requirements pre-installed. | +| [aswf/ci-baseqt](https://hub.docker.com/r/aswf/ci-baseqt) | [aswf/ci-baseqt:2018](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:1` with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2019](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2020](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:1: with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2021](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2022](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:2` with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2023](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:3` with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2024](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:4` with most VFX Platform requirements pre-installed with Qt and Pyside. | +| | [aswf/ci-baseqt:2025](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:5` with most VFX Platform requirements pre-installed with Qt and PySide. | +| | [aswf/ci-baseqt:2026](https://hub.docker.com/r/aswf/ci-baseqt/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-baseqt/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-baseqt/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-baseqt) | Based on `aswf/ci-common:6` with most VFX Platform requirements pre-installed with Qt and PySide. | +| [aswf/ci-openexr](https://hub.docker.com/r/aswf/ci-openexr) | [aswf/ci-openexr:2018](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:1`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2019](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:1`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2020](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:1`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2021](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:2`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2022](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:2`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2023](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:3`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2024](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:4`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2025](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:5`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| | [aswf/ci-openexr:2026](https://hub.docker.com/r/aswf/ci-openexr/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openexr/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openexr/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openexr) | Based on `aswf/ci-common:6`, comes with all Imath and OpenEXR upstream dependencies pre-installed. | +| [aswf/ci-ocio](https://hub.docker.com/r/aswf/ci-ocio) | [aswf/ci-ocio:2018](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:1`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2019](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:1`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2020](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:1`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2021](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:2`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2022](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:2`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2023](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:3`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2024](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:4`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2025](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:5`, comes with all OpenColorIO upstream dependencies pre-installed. | +| | [aswf/ci-ocio:2026](https://hub.docker.com/r/aswf/ci-ocio/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-ocio/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-ocio/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-ocio) | Based on `aswf/ci-common:6`, comes with all OpenColorIO upstream dependencies pre-installed. | +| [aswf/ci-opencue](https://hub.docker.com/r/aswf/ci-opencue) | [aswf/ci-opencue:2018](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:1`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2019](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:1`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2020](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:1`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2021](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:2`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2022](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:2`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2023](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:3`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2024](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:4`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2025](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:5`, comes with all OpenCue upstream dependencies pre-installed. | +| | [aswf/ci-opencue:2026](https://hub.docker.com/r/aswf/ci-opencue/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-opencue/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-opencue/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-opencue) | Based on `aswf/ci-common:6`, comes with all OpenCue upstream dependencies pre-installed. | +| [aswf/ci-openvdb](https://hub.docker.com/r/aswf/ci-openvdb) | [aswf/ci-openvdb:2018](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:1`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2019](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:1`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2020](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:1`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2021](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:2`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2022](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:2`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2023](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:3`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2024](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:4`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2025](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:5`, comes with all OpenVDB upstream dependencies pre-installed. | +| | [aswf/ci-openvdb:2026](https://hub.docker.com/r/aswf/ci-openvdb/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openvdb/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openvdb/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openvdb) | Based on `aswf/ci-common:6`, comes with all OpenVDB upstream dependencies pre-installed. | +| [aswf/ci-otio](https://hub.docker.com/r/aswf/ci-otio) | [aswf/ci-otio:2019](https://hub.docker.com/r/aswf/ci-otio/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:1`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2020](https://hub.docker.com/r/aswf/ci-otio/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:1`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2021](https://hub.docker.com/r/aswf/ci-otio/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:2`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2022](https://hub.docker.com/r/aswf/ci-otio/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:2`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2023](https://hub.docker.com/r/aswf/ci-otio/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:3`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2024](https://hub.docker.com/r/aswf/ci-otio/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:4`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2025](https://hub.docker.com/r/aswf/ci-otio/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:5`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| | [aswf/ci-otio:2026](https://hub.docker.com/r/aswf/ci-otio/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-otio/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-otio/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-otio) | Based on `aswf/ci-common:6`, comes with all OpenTimelineIO upstream dependencies pre-installed. | +| [aswf/ci-oiio](https://hub.docker.com/r/aswf/ci-oiio) | [aswf/ci-oiio](https://hub.docker.com/r/aswf/ci-oiio)| [aswf/ci-oiio:2024](https://hub.docker.com/r/aswf/ci-oiio/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-oiio/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-oiio/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-oiio) | Based on `aswf/ci-common:4`, comes with all OpenImageIO upstream dependencies pre-installed. | +| | [aswf/ci-oiio:2025](https://hub.docker.com/r/aswf/ci-oiio/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-oiio/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-oiio/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-oiio) | Based on `aswf/ci-common:5`, comes with all OpenImageIO upstream dependencies pre-installed. | +| | [aswf/ci-oiio:2026](https://hub.docker.com/r/aswf/ci-oiio/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-oiio/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-oiio/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-oiio) | Based on `aswf/ci-common:6`, comes with all OpenImageIO upstream dependencies pre-installed. | +| [aswf/ci-materialx](https://hub.docker.com/r/aswf/ci-materialx) | [aswf/ci-materialx:2023](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:3`, comes with all MaterialX upstream dependencies pre-installed. | +| | [aswf/ci-materialx:2024](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:4`, comes with all MaterialX upstream dependencies pre-installed. | +| | [aswf/ci-materialx:2025](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:5`, comes with all MaterialX upstream dependencies pre-installed. | +| | [aswf/ci-materialx:2026](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:6`, comes with all MaterialX upstream dependencies pre-installed. | +| [aswf/ci-usd](https://hub.docker.com/r/aswf/ci-usd) | [aswf/ci-usd:2019](https://hub.docker.com/r/aswf/ci-usd/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2020](https://hub.docker.com/r/aswf/ci-usd/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2021](https://hub.docker.com/r/aswf/ci-usd/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2022](https://hub.docker.com/r/aswf/ci-usd/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2023](https://hub.docker.com/r/aswf/ci-usd/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:3`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2024](https://hub.docker.com/r/aswf/ci-usd/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:4`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2025](https://hub.docker.com/r/aswf/ci-usd/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:5`, comes with all USD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2026](https://hub.docker.com/r/aswf/ci-usd/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:6`, comes with all USD upstream dependencies pre-installed. | +| [aswf/ci-osl](https://hub.docker.com/r/aswf/ci-osl) | [aswf/ci-osl:2018](https://hub.docker.com/r/aswf/ci-osl/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2019](https://hub.docker.com/r/aswf/ci-osl/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2020](https://hub.docker.com/r/aswf/ci-osl/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2021](https://hub.docker.com/r/aswf/ci-osl/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:2`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2022](https://hub.docker.com/r/aswf/ci-osl/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:2`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2023](https://hub.docker.com/r/aswf/ci-osl/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:3`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2024](https://hub.docker.com/r/aswf/ci-osl/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:4`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2025](https://hub.docker.com/r/aswf/ci-osl/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:5`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| | [aswf/ci-osl:2026](https://hub.docker.com/r/aswf/ci-osl/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:6`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | +| [aswf/ci-openrv](https://hub.docker.com/r/aswf/ci-openrv) | [aswf/ci-openrv:2024](https://hub.docker.com/r/aswf/ci-openrv/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openrv/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openrv/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openrv) | Based on `aswf/ci-common:4`, comes with all OpenRV upstream dependencies pre-installed. | +| | [aswf/ci-openrv:2025](https://hub.docker.com/r/aswf/ci-openrv/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openrv/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openrv/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openrv) | Based on `aswf/ci-common:5`, comes with all OpenRV upstream dependencies pre-installed. | +| | [aswf/ci-openrv:2026](https://hub.docker.com/r/aswf/ci-openrv/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openrv/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openrv/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openrv) | Based on `aswf/ci-common:6`, comes with all OpenRV upstream dependencies pre-installed. | +| [aswf/ci-openfx](https://hub.docker.com/r/aswf/ci-openfx) | [aswf/ci-openfx:2024](https://hub.docker.com/r/aswf/ci-openfx/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openfx/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openfx/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openfx) | Based on `aswf/ci-common:4`, comes with all OpenFX upstream dependencies pre-installed. | +| | [aswf/ci-openfx:2025](https://hub.docker.com/r/aswf/ci-openfx/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openfx/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openfx/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openfx) | Based on `aswf/ci-common:5`, comes with all OpenFX upstream dependencies pre-installed. | +| | [aswf/ci-openfx:2026](https://hub.docker.com/r/aswf/ci-openfx/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-openfx/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-openfx/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-openfx) | Based on `aswf/ci-common:6`, comes with all OpenFX upstream dependencies pre-installed. | +| [aswf/ci-rawtoaces](https://hub.docker.com/r/aswf/ci-rawtoaces) | [aswf/ci-rawtoaces:2024](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-rawtoaces/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-rawtoaces/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-rawtoaces) | Based on `aswf/ci-common:4`, comes with all rawtoaces upstream dependencies pre-installed. | +| | [aswf/ci-rawtoaces:2025](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-rawtoaces/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-rawtoaces/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-rawtoaces) | Based on `aswf/ci-common:5`, comes with all rawtoaces upstream dependencies pre-installed. | +| | [aswf/ci-rawtoaces:2026](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-rawtoaces/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-rawtoaces/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-rawtoaces) | Based on `aswf/ci-common:6`, comes with all rawtoaces upstream dependencies pre-installed. | +| [aswf/ci-xstudio](https://hub.docker.com/r/aswf/ci-xstudio) | [aswf/ci-xstudio:2026](https://hub.docker.com/r/aswf/ci-xstudio/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-xstudio/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-xstudio/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-xstudio) | Based on `aswf/ci-common:6`, comes with all xSTUDIO upstream dependencies pre-installed. | +| [aswf/ci-vfxall](https://hub.docker.com/r/aswf/ci-vfxall) | [aswf/ci-vfxall:2019](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:1`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2020](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:1`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2021](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:2`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2022](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:2`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2023](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:3`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2024](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:4`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2025](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:5`, comes with most VFX packages pre-installed. | +| | [aswf/ci-vfxall:2026](https://hub.docker.com/r/aswf/ci-vfxall/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-vfxall/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-vfxall/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-vfxall) | Based on `aswf/ci-common:6`, comes with most VFX packages pre-installed. | ### Versions @@ -147,9 +168,11 @@ to first create a free [Linux Foundation account](https://sso.linuxfoundation.or ### Status -As of April 2025 there are full 2018, 2019, 2020, 2021, 2022, -2023, 2024 and 2025 [VFX Platform](https://vfxplatform.com) compliant images. N.B. that the -pre-2024 versions of the images still exist but are not maintained/rebuilt anymore, which +As of July 2025 there are full 2018, 2019, 2020, 2021, 2022, +2023, 2024 and 2025 [VFX Platform](https://vfxplatform.com) compliant images. The 2026 images are for testing purposes only and won't be complete until the fall of 2025 when some major ASWF packages release their new versions called for by the 2026 VFX Platform. + +Note that the +pre-2024 versions of the images still exist but are not maintained / rebuilt anymore, which means they might be obsolete (especially the OS part). ## CI Packages diff --git a/ci-base/Dockerfile b/ci-base/Dockerfile index 3a39db1b..73ba178a 100644 --- a/ci-base/Dockerfile +++ b/ci-base/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -82,7 +82,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -128,7 +128,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -171,7 +171,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -219,7 +219,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-base/README.md b/ci-base/README.md index af55d49f..c1bd6527 100644 --- a/ci-base/README.md +++ b/ci-base/README.md @@ -23,7 +23,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -39,7 +38,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -55,7 +53,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -71,7 +68,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -87,7 +83,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -97,7 +92,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-base:2024.2](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2024.2) +## [aswf/ci-base:2024.3](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -105,7 +100,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -117,19 +112,18 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-base:2025.1](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2025.1) +## [aswf/ci-base:2025.2](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -149,8 +143,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -161,3 +154,34 @@ Contains: * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-base:2026.0](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-base/image.yaml b/ci-base/image.yaml index d6885971..2a5efabe 100644 --- a/ci-base/image.yaml +++ b/ci-base/image.yaml @@ -22,7 +22,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-baseqt/Dockerfile b/ci-baseqt/Dockerfile index 02c27aa9..19be0f9e 100644 --- a/ci-baseqt/Dockerfile +++ b/ci-baseqt/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -87,7 +87,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -138,7 +138,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -186,7 +186,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -239,7 +239,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-baseqt/README.md b/ci-baseqt/README.md index e5a6e298..c15083d9 100644 --- a/ci-baseqt/README.md +++ b/ci-baseqt/README.md @@ -23,7 +23,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -41,7 +40,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -59,7 +57,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -77,7 +74,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -95,7 +91,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -107,7 +102,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-baseqt:2024.2](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2024.2) +## [aswf/ci-baseqt:2024.3](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -115,7 +110,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -127,23 +122,22 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-baseqt:2025.1](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2025.1) +## [aswf/ci-baseqt:2025.2](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -163,8 +157,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -174,8 +167,43 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-baseqt:2026.0](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-baseqt/image.yaml b/ci-baseqt/image.yaml index fd2a2aa8..1790bfaa 100644 --- a/ci-baseqt/image.yaml +++ b/ci-baseqt/image.yaml @@ -22,7 +22,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-common/README.md b/ci-common/README.md index 03207eb3..123c2c2e 100644 --- a/ci-common/README.md +++ b/ci-common/README.md @@ -161,35 +161,35 @@ Contains: * sonar-4.8.0.2856 * conan-1.58.0 -## [aswf/ci-common:4-clang16.2](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=4-clang16.2) +## [aswf/ci-common:4-clang16.3](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=4-clang16.3) Contains: * clang-16.0.6 -* cmake-3.27.9 +* cmake-3.31.7 * ninja-1.12.1 -* cuda-12.6.1 +* cuda-12.6.3 * glvnd-1.7.0 -* ccache-4.8.3 +* ccache-4.9.1 * dts-11 -* sonar-6.2.1.4610 -* conan-2.14.0 +* sonar-7.1.0.4889 +* conan-2.16.1 * yq-4.45.2 -## [aswf/ci-common:4-clang17.2](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=4-clang17.2) +## [aswf/ci-common:4-clang17.3](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=4-clang17.3) Contains: * clang-17.0.6 -* cmake-3.27.9 +* cmake-3.31.7 * ninja-1.12.1 -* cuda-12.6.1 +* cuda-12.6.3 * glvnd-1.7.0 -* ccache-4.8.3 +* ccache-4.9.1 * dts-11 -* sonar-6.2.1.4610 -* conan-2.14.0 +* sonar-7.1.0.4889 +* conan-2.16.1 * yq-4.45.2 -## [aswf/ci-common:5-clang18.1](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=5-clang18.1) +## [aswf/ci-common:5-clang18.2](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=5-clang18.2) Contains: * clang-18.1.8 @@ -199,21 +199,49 @@ Contains: * glvnd-1.7.0 * ccache-4.9.1 * dts-11 -* sonar-6.2.1.4610 -* conan-2.14.0 +* sonar-7.1.0.4889 +* conan-2.16.1 * yq-4.45.2 -## [aswf/ci-common:5-clang19.1](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=5-clang19.1) +## [aswf/ci-common:5-clang19.2](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=5-clang19.2) Contains: -* clang-19.1.1 +* clang-19.1.7 * cmake-3.31.7 * ninja-1.12.1 * cuda-12.6.3 * glvnd-1.7.0 * ccache-4.9.1 * dts-11 -* sonar-6.2.1.4610 -* conan-2.14.0 +* sonar-7.1.0.4889 +* conan-2.16.1 * yq-4.45.2 +## [aswf/ci-common:6-clang19.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=6-clang19.0) + +Contains: +* clang-19.1.7 +* cmake-4.0.2 +* ninja-1.12.1 +* cuda-12.9.1 +* glvnd-1.7.0 +* ccache-4.11.3 +* dts-14 +* sonar-7.1.0.4889 +* conan-2.16.1 +* yq-4.45.4 + +## [aswf/ci-common:6-clang20.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=6-clang20.0) + +Contains: +* clang-20.1.7 +* cmake-4.0.2 +* ninja-1.12.1 +* cuda-12.9.1 +* glvnd-1.7.0 +* ccache-4.11.3 +* dts-14 +* sonar-7.1.0.4889 +* conan-2.16.1 +* yq-4.45.4 + diff --git a/ci-materialx/Dockerfile b/ci-materialx/Dockerfile index 649dc94a..4e52a32f 100644 --- a/ci-materialx/Dockerfile +++ b/ci-materialx/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -95,7 +95,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -155,7 +155,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -211,7 +211,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -272,7 +272,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-materialx/README.md b/ci-materialx/README.md index 9fc5984e..5e7ad922 100644 --- a/ci-materialx/README.md +++ b/ci-materialx/README.md @@ -24,7 +24,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -46,7 +45,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -62,7 +60,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-materialx:2024.2](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2024.2) +## [aswf/ci-materialx:2024.3](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -70,7 +68,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -82,31 +80,30 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 +* qt-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * ocio-2.3.2 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-materialx:2025.1](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2025.1) +## [aswf/ci-materialx:2025.2](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -126,8 +123,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -137,16 +133,59 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 +* qt-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * ocio-2.4.2 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-materialx:2026.0](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* ocio-2.4.2 +* oiio-3.0.8.1 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-materialx/image.yaml b/ci-materialx/image.yaml index 17002f02..6c74acc2 100644 --- a/ci-materialx/image.yaml +++ b/ci-materialx/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-ocio/Dockerfile b/ci-ocio/Dockerfile index f7a85dc8..bc12cdd8 100644 --- a/ci-ocio/Dockerfile +++ b/ci-ocio/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -85,7 +85,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -135,7 +135,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -181,7 +181,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -232,7 +232,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-ocio/README.md b/ci-ocio/README.md index b2878b4c..a3f19033 100644 --- a/ci-ocio/README.md +++ b/ci-ocio/README.md @@ -24,7 +24,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -42,7 +41,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -60,7 +58,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -78,7 +75,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -96,7 +92,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -108,7 +103,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-ocio:2024.2](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2024.2) +## [aswf/ci-ocio:2024.3](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -116,7 +111,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -128,22 +123,21 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * openexr-3.2.4 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-ocio:2025.1](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2025.1) +## [aswf/ci-ocio:2025.2](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -163,8 +157,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -173,8 +166,42 @@ Contains: * boost-1.85.0 * pybind11-2.13.6 * imath-3.1.12 -* lcms-2.16 -* openexr-3.3.3 +* lcms-2.17 +* openexr-3.3.4 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-ocio:2026.0](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* imath-3.1.12 +* lcms-2.17 +* openexr-3.3.4 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-ocio/image.yaml b/ci-ocio/image.yaml index e39bf5b9..3be12823 100644 --- a/ci-ocio/image.yaml +++ b/ci-ocio/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 61602c34..80a8d39e 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -63,7 +63,6 @@ ARG ASWF_VFXPLATFORM_VERSION # Comment out this block to use Conan packages -FROM ${ASWF_PKG_ORG}/ci-package-openvdb:$ASWF_VFXPLATFORM_VERSION-$ASWF_OPENVDB_VERSION AS ci-package-openvdb FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-oiio @@ -96,7 +95,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -156,7 +155,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -212,7 +211,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -239,7 +238,6 @@ ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION -COPY --from=ci-package-openvdb /. /usr/local/ COPY ci-oiio/README.md ci-oiio/image.yaml /usr/local/aswf/ @@ -274,7 +272,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} @@ -296,7 +294,7 @@ ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -# openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 diff --git a/ci-oiio/README.md b/ci-oiio/README.md index e41c539d..f50e2972 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -18,7 +18,7 @@ Warning: this image does *not* contain OpenImageIO itself as it is used to *buil [Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-oiio/Dockerfile) -## [aswf/ci-oiio:2024.2](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2024.2) +## [aswf/ci-oiio:2024.3](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -26,7 +26,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -38,21 +38,20 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 +* qt-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 @@ -62,7 +61,7 @@ Contains: * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-oiio:2025.1](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2025.1) +## [aswf/ci-oiio:2025.2](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -82,8 +81,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -93,16 +91,59 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 +* qt-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * ocio-2.4.2 * openvdb-12.0.0 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-oiio:2026.0](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* ocio-2.4.2 +* openvdb-12.0.1 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-oiio/image.yaml b/ci-oiio/image.yaml index 61c9a899..d5ce2166 100644 --- a/ci-oiio/image.yaml +++ b/ci-oiio/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-opencue/README.md b/ci-opencue/README.md index 52da5556..29cbb2cd 100644 --- a/ci-opencue/README.md +++ b/ci-opencue/README.md @@ -53,17 +53,24 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-opencue:2024.2](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2024.2) +## [aswf/ci-opencue:2024.3](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2024.3) Contains: -* cpython-3.11.11 +* cpython-3.11.13 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-opencue:2025.1](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2025.1) +## [aswf/ci-opencue:2025.2](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2025.2) Contains: -* cpython-3.11.11 +* cpython-3.11.13 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-opencue:2026.0](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2026.0) + +Contains: +* cpython-3.13.3 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-openexr/README.md b/ci-openexr/README.md index 84cbdedd..7ed46ba2 100644 --- a/ci-openexr/README.md +++ b/ci-openexr/README.md @@ -63,27 +63,39 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-openexr:2024.2](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2024.2) +## [aswf/ci-openexr:2024.3](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2024.3) Contains: * boost-1.82.0 * bzip2-1.0.8 -* cpython-3.11.11 +* cpython-3.11.13 * libbacktrace-cci.20210118 * libdeflate-1.23 -* pybind11-2.12.0 +* pybind11-2.13.6 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-openexr:2025.1](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2025.1) +## [aswf/ci-openexr:2025.2](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2025.2) Contains: * boost-1.85.0 * bzip2-1.0.8 -* cpython-3.11.11 +* cpython-3.11.13 * libbacktrace-cci.20210118 * libdeflate-1.23 * pybind11-2.13.6 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-openexr:2026.0](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2026.0) + +Contains: +* boost-1.88.0 +* bzip2-1.0.8 +* cpython-3.13.3 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* pybind11-2.13.6 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-openfx/Dockerfile b/ci-openfx/Dockerfile new file mode 100644 index 00000000..c7f8e7d4 --- /dev/null +++ b/ci-openfx/Dockerfile @@ -0,0 +1,102 @@ +# syntax=docker/dockerfile:1.10 +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +# !!! This file is automatically generated from a template and the `image.yaml` file in the same folder !!! + +ARG ASWF_ORG +ARG ASWF_PKG_ORG +ARG CI_COMMON_VERSION +ARG ASWF_CLANG_MAJOR_VERSION +ARG ASWF_PYSIDE_CLANG_VERSION +ARG ASWF_CONAN_CHANNEL + +ARG ASWF_VFXPLATFORM_VERSION + + +ARG ASWF_EXPAT_VERSION +ARG ASWF_NUMPY_VERSION +ARG ASWF_VFXPLATFORM_VERSION + + + + +# Comment out this block to use Conan packages +FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-openfx + + +ARG ASWF_ORG +ARG ASWF_CONAN_HOME +ARG ASWF_PKG_ORG +ARG ASWF_VERSION +ARG CI_COMMON_VERSION +ARG ASWF_PYSIDE_CLANG_VERSION +ARG ASWF_CONAN_CHANNEL + + + +ARG ASWF_EXPAT_VERSION +ARG ASWF_NUMPY_VERSION +ARG ASWF_VFXPLATFORM_VERSION + + +LABEL org.opencontainers.image.name="$ASWF_ORG/ci-openfx" +LABEL org.opencontainers.image.title="OpenFX CI Docker Image" +LABEL org.opencontainers.image.description="Contains: Python and other OpenFX upstream dependencies\ +Warning: this image does *not* contain OpenFX itself as it is used to *build* OpenFX!" +LABEL org.opencontainers.image.url="http://aswf.io/" +LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-openfx/Dockerfile" +LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" +LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group" +LABEL org.opencontainers.image.version="${ASWF_VERSION}" + + +LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" + + +LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" +LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" +LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" + + +ENV ASWF_ORG=${ASWF_ORG} +ENV ASWF_VERSION=${ASWF_VERSION} +ENV ASWF_INSTALL_PREFIX=/usr/local +ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + + + +ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} + + +ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION +ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION +ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION + + +COPY ci-openfx/README.md ci-openfx/image.yaml /usr/local/aswf/ + + + +COPY scripts/common/install_conanpackages.sh /tmp/ + +ARG ASWF_PYTHON_MAJOR_MINOR_VERSION +ENV ASWF_PYTHON_MAJOR_MINOR_VERSION=${ASWF_PYTHON_MAJOR_MINOR_VERSION} + +# conan-only packages +COPY < . +[requires] +expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +EOF + +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 + + +RUN --mount=type=cache,target=/opt/conan_home/d \ + --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + + diff --git a/ci-openfx/README.md b/ci-openfx/README.md new file mode 100644 index 00000000..a8a53846 --- /dev/null +++ b/ci-openfx/README.md @@ -0,0 +1,41 @@ + + +# Academy Software Foundation Docker Image + +See [aswf.io](https://aswf.io) and [aswf-docker](https://github.com/AcademySoftwareFoundation/aswf-docker) +for further information, and participate in the discussion on the +[ASWF Slack #wg-ci channel](https://academysoftwarefdn.slack.com/archives/C0169RX7MMK). + +## OpenFX CI Docker Image + +Contains: Python and other OpenFX upstream dependencies +Warning: this image does *not* contain OpenFX itself as it is used to *build* OpenFX! + +[Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-openfx/Dockerfile) + +## [aswf/ci-openfx:2024.3](https://hub.docker.com/r/aswf/ci-openfx/tags?page=1&name=2024.3) + +Contains: +* expat-2.6.4 +* numpy-1.24.3 +* vfxplatform-2024 + +## [aswf/ci-openfx:2025.2](https://hub.docker.com/r/aswf/ci-openfx/tags?page=1&name=2025.2) + +Contains: +* expat-2.6.4 +* numpy-1.26.4 +* vfxplatform-2025 + +## [aswf/ci-openfx:2026.0](https://hub.docker.com/r/aswf/ci-openfx/tags?page=1&name=2026.0) + +Contains: +* expat-2.7.1 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-openfx/image.yaml b/ci-openfx/image.yaml new file mode 100644 index 00000000..5298adde --- /dev/null +++ b/ci-openfx/image.yaml @@ -0,0 +1,12 @@ +name: "openfx" +title: "OpenFX CI Docker Image" +description: | + Contains: Python and other OpenFX upstream dependencies + Warning: this image does *not* contain OpenFX itself as it is used to *build* OpenFX! +packages: + - expat +implicit_packages: + - numpy + - vfxplatform +docker_from: ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} +docker_package_version: $ASWF_VFXPLATFORM_VERSION diff --git a/ci-openrv/README.md b/ci-openrv/README.md index 4b35ad43..b6c8c4de 100644 --- a/ci-openrv/README.md +++ b/ci-openrv/README.md @@ -18,21 +18,30 @@ Warning: this image does *not* contain OpenRV itself as it is used to *build* Op [Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-openrv/Dockerfile) -## [aswf/ci-openrv:2024.2](https://hub.docker.com/r/aswf/ci-openrv/tags?page=1&name=2024.2) +## [aswf/ci-openrv:2024.3](https://hub.docker.com/r/aswf/ci-openrv/tags?page=1&name=2024.3) Contains: -* cpython-3.11.11 +* cpython-3.11.13 * expat-2.6.4 -* qt-6.5.4 +* qt-6.5.6 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-openrv:2025.1](https://hub.docker.com/r/aswf/ci-openrv/tags?page=1&name=2025.1) +## [aswf/ci-openrv:2025.2](https://hub.docker.com/r/aswf/ci-openrv/tags?page=1&name=2025.2) Contains: -* cpython-3.11.11 +* cpython-3.11.13 * expat-2.6.4 -* qt-6.5.4 +* qt-6.5.6 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-openrv:2026.0](https://hub.docker.com/r/aswf/ci-openrv/tags?page=1&name=2026.0) + +Contains: +* cpython-3.13.3 +* expat-2.7.1 +* qt-6.8.3 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-openvdb/Dockerfile b/ci-openvdb/Dockerfile index 5f91a650..813a1b67 100644 --- a/ci-openvdb/Dockerfile +++ b/ci-openvdb/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -97,7 +97,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -159,7 +159,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -217,7 +217,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -280,7 +280,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-openvdb/README.md b/ci-openvdb/README.md index 304666fb..14a802c9 100644 --- a/ci-openvdb/README.md +++ b/ci-openvdb/README.md @@ -24,7 +24,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -48,7 +47,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -72,7 +70,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -96,7 +93,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -120,7 +116,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -144,7 +139,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -168,7 +162,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -192,7 +185,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -216,7 +208,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -240,7 +231,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -264,7 +254,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -288,7 +277,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -312,7 +300,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -330,7 +317,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-openvdb:2024-clang16.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2024-clang16.2) +## [aswf/ci-openvdb:2024-clang16.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2024-clang16.3) Contains: * b2-5.2.1 @@ -338,7 +325,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -350,33 +337,32 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * ocio-2.3.2 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * partio-1.19.0 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-openvdb:2024-clang17.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2024-clang17.2) +## [aswf/ci-openvdb:2024-clang17.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2024-clang17.3) Contains: * b2-5.2.1 @@ -384,7 +370,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -396,33 +382,32 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * ocio-2.3.2 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * partio-1.19.0 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-openvdb:2025-clang18.1](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang18.1) +## [aswf/ci-openvdb:2025-clang18.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang18.2) Contains: * b2-5.2.1 @@ -442,8 +427,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -453,22 +437,22 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * ocio-2.4.2 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * partio-1.19.0 * numpy-1.26.4 * vfxplatform-2025 -## [aswf/ci-openvdb:2025-clang19.1](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang19.1) +## [aswf/ci-openvdb:2025-clang19.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang19.2) Contains: * b2-5.2.1 @@ -488,8 +472,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -499,18 +482,108 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * ocio-2.4.2 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * partio-1.19.0 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-openvdb:2026-clang19.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang19.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* ocio-2.4.2 +* oiio-3.0.8.1 +* partio-1.19.0 +* numpy-1.26.4 +* vfxplatform-2026 + +## [aswf/ci-openvdb:2026-clang20.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang20.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* ocio-2.4.2 +* oiio-3.0.8.1 +* partio-1.19.0 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-openvdb/image.yaml b/ci-openvdb/image.yaml index 4d5ecf51..2d29a2e0 100644 --- a/ci-openvdb/image.yaml +++ b/ci-openvdb/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-osl/Dockerfile b/ci-osl/Dockerfile index 60397363..81b124e4 100644 --- a/ci-osl/Dockerfile +++ b/ci-osl/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -66,7 +66,6 @@ ARG ASWF_VFXPLATFORM_VERSION # Comment out this block to use Conan packages -FROM ${ASWF_PKG_ORG}/ci-package-openvdb:$ASWF_VFXPLATFORM_VERSION-$ASWF_OPENVDB_VERSION AS ci-package-openvdb FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-osl @@ -99,7 +98,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GDBM_VERSION @@ -162,7 +161,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" @@ -221,7 +220,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION @@ -251,7 +250,6 @@ ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION -COPY --from=ci-package-openvdb /. /usr/local/ COPY ci-osl/README.md ci-osl/image.yaml /usr/local/aswf/ @@ -286,7 +284,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} @@ -310,7 +308,7 @@ libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -# openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF diff --git a/ci-osl/README.md b/ci-osl/README.md index 687a366b..144d0b57 100644 --- a/ci-osl/README.md +++ b/ci-osl/README.md @@ -24,7 +24,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -49,7 +48,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -74,7 +72,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -99,7 +96,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -124,7 +120,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -149,7 +144,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -174,7 +168,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -199,7 +192,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -224,7 +216,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -249,7 +240,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -274,7 +264,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -299,7 +288,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -324,7 +312,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -349,7 +336,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -374,7 +360,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -393,7 +378,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-osl:2024-clang16.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2024-clang16.2) +## [aswf/ci-osl:2024-clang16.3](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2024-clang16.3) Contains: * b2-5.2.1 @@ -401,7 +386,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -413,34 +398,33 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * ocio-2.3.2 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * openvdb-11.0.0 * partio-1.19.0 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-osl:2024-clang17.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2024-clang17.2) +## [aswf/ci-osl:2024-clang17.3](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2024-clang17.3) Contains: * b2-5.2.1 @@ -448,7 +432,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -460,34 +444,33 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * ocio-2.3.2 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * openvdb-11.0.0 * partio-1.19.0 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-osl:2025-clang18.1](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2025-clang18.1) +## [aswf/ci-osl:2025-clang18.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2025-clang18.2) Contains: * b2-5.2.1 @@ -507,8 +490,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -518,23 +500,23 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * ocio-2.4.2 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * openvdb-12.0.0 * partio-1.19.0 * numpy-1.26.4 * vfxplatform-2025 -## [aswf/ci-osl:2025-clang19.1](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2025-clang19.1) +## [aswf/ci-osl:2025-clang19.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2025-clang19.2) Contains: * b2-5.2.1 @@ -554,8 +536,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * gdbm-system * glew-2.2.0 @@ -565,19 +546,111 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * ocio-2.4.2 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * openvdb-12.0.0 * partio-1.19.0 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-osl:2026-clang19.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2026-clang19.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* ocio-2.4.2 +* oiio-3.0.8.1 +* openvdb-12.0.1 +* partio-1.19.0 +* numpy-1.26.4 +* vfxplatform-2026 + +## [aswf/ci-osl:2026-clang20.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2026-clang20.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* gdbm-system +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* ocio-2.4.2 +* oiio-3.0.8.1 +* openvdb-12.0.1 +* partio-1.19.0 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-osl/image.yaml b/ci-osl/image.yaml index a4c21a51..8d6906bd 100644 --- a/ci-osl/image.yaml +++ b/ci-osl/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - gdbm diff --git a/ci-otio/Dockerfile b/ci-otio/Dockerfile index dc70e654..38a13128 100644 --- a/ci-otio/Dockerfile +++ b/ci-otio/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION @@ -87,7 +87,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION @@ -139,7 +139,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" @@ -187,7 +187,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION @@ -240,7 +240,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-otio/README.md b/ci-otio/README.md index c402fb17..8f99d4e0 100644 --- a/ci-otio/README.md +++ b/ci-otio/README.md @@ -24,7 +24,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -43,7 +42,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -62,7 +60,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -81,7 +78,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -100,7 +96,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -113,7 +108,7 @@ Contains: * numpy-1.23.5 * vfxplatform-2023 -## [aswf/ci-otio:2024.2](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2024.2) +## [aswf/ci-otio:2024.3](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -121,7 +116,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -133,23 +128,22 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * imath-3.1.12 * numpy-1.24.3 * vfxplatform-2024 -## [aswf/ci-otio:2025.1](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2025.1) +## [aswf/ci-otio:2025.2](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -169,8 +163,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * glew-2.2.0 * glfw-3.4 @@ -179,9 +172,44 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * imath-3.1.12 * numpy-1.26.4 * vfxplatform-2025 +## [aswf/ci-otio:2026.0](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* imath-3.1.12 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-otio/image.yaml b/ci-otio/image.yaml index 045000e0..a362ffa6 100644 --- a/ci-otio/image.yaml +++ b/ci-otio/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - glew diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile index 0f552a2c..57b58e89 100644 --- a/ci-usd/Dockerfile +++ b/ci-usd/Dockerfile @@ -33,7 +33,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION @@ -100,7 +100,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ZLIB_VERSION ARG ASWF_ZSTD_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION @@ -165,7 +165,7 @@ LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" @@ -226,7 +226,7 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION @@ -292,7 +292,7 @@ tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-usd/README.md b/ci-usd/README.md index 3632c7a3..de4f52fa 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -24,7 +24,6 @@ Contains: * cppunit-1.14.0 * gtest-1.8.1 * onetbb-2018 -* blosc-1.5.0 * cpython-2.7.15 * glew-2.1.0 * glfw-3.1.2 @@ -51,7 +50,6 @@ Contains: * cppunit-1.15.1 * gtest-1.10.0 * onetbb-2019_u6 -* blosc-1.5.0 * cpython-3.7.3 * glew-2.1.0 * glfw-3.1.2 @@ -78,7 +76,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u2 -* blosc-1.5.0 * cpython-3.7.9 * glew-2.1.0 * glfw-3.1.2 @@ -105,7 +102,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.9.15 * glew-2.1.0 * glfw-3.1.2 @@ -133,7 +129,6 @@ Contains: * cppunit-1.15.1 * gtest-1.11.0 * onetbb-2020_u3 -* blosc-1.17.0 * cpython-3.10.11 * glew-2.1.0 * glfw-3.1.2 @@ -155,7 +150,7 @@ Contains: * hdf5-1.8.23 * vfxplatform-2023 -## [aswf/ci-usd:2024.2](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2024.2) +## [aswf/ci-usd:2024.3](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2024.3) Contains: * b2-5.2.1 @@ -163,7 +158,7 @@ Contains: * cppunit-1.15.1 * expat-2.6.4 * fmt-11.1.4 -* gtest-1.14.0 +* gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 * libiconv-1.17 @@ -175,36 +170,35 @@ Contains: * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.5 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 -* glew-2.1.0 -* glfw-3.3.8 -* log4cplus-2.1.1 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 * boost-1.82.0 -* pybind11-2.12.0 +* pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * alembic-1.8.6 * ocio-2.3.2 -* oiio-2.5.18.0 -* opensubdiv-3.6.0 +* oiio-2.5.19.0 +* opensubdiv-3.6.1 * partio-1.19.0 * materialx-1.39.2 * numpy-1.24.3 * hdf5-1.8.23 * vfxplatform-2024 -## [aswf/ci-usd:2025.1](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2025.1) +## [aswf/ci-usd:2025.2](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2025.2) Contains: * b2-5.2.1 @@ -224,8 +218,7 @@ Contains: * onetbb-2021.13.0 * zlib-1.3.1 * zstd-1.5.6 -* blosc-1.21.6 -* cpython-3.11.11 +* cpython-3.11.13 * freetype-2.13.2 * glew-2.2.0 * glfw-3.4 @@ -234,22 +227,70 @@ Contains: * pybind11-2.13.6 * libwebp-1.5.0 * md4c-0.4.8 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * highway-1.2.0 * imath-3.1.12 -* lcms-2.16 +* lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.3 +* openexr-3.3.4 * alembic-1.8.8 * ocio-2.4.2 -* oiio-3.0.6.1 -* opensubdiv-3.6.0 +* oiio-3.0.8.1 +* opensubdiv-3.6.1 * partio-1.19.0 * materialx-1.39.3 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2025 +## [aswf/ci-usd:2026.0](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2026.0) + +Contains: +* b2-5.3.2 +* bzip2-1.0.8 +* cppunit-1.15.1 +* expat-2.7.1 +* fmt-11.2.0 +* gtest-1.17.0 +* libbacktrace-cci.20210118 +* libdeflate-1.24 +* libiconv-1.18 +* libxcrypt-4.4.38 +* lz4-1.10.0 +* pugixml-1.15 +* pystring-1.1.4 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* cpython-3.13.3 +* freetype-2.13.2 +* glew-2.2.0 +* glfw-3.4 +* log4cplus-2.1.2 +* boost-1.88.0 +* pybind11-2.13.6 +* libwebp-1.5.0 +* md4c-0.5.2 +* qt-6.8.3 +* pyside-6.8.3 +* highway-1.2.0 +* imath-3.1.12 +* lcms-2.17 +* libuhdr-1.4.0 +* ptex-2.4.3 +* libjxl-0.11.1 +* openexr-3.3.4 +* alembic-1.8.8 +* ocio-2.4.2 +* oiio-3.0.8.1 +* opensubdiv-3.6.1 +* partio-1.19.0 +* materialx-1.39.3 +* numpy-1.26.4 +* hdf5-1.8.23 +* vfxplatform-2026 + diff --git a/ci-usd/image.yaml b/ci-usd/image.yaml index eabe3fd3..00b3710b 100644 --- a/ci-usd/image.yaml +++ b/ci-usd/image.yaml @@ -23,7 +23,7 @@ packages: - yaml-cpp - zlib - zstd - - blosc # base1-2 packages + - c-blosc # base1-2 packages - cpython - freetype - glew diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index eea2985b..dd352577 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -14,7 +14,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_BOOST_VERSION ARG ASWF_CPPUNIT_VERSION ARG ASWF_CPYTHON_VERSION @@ -72,7 +72,6 @@ ARG ASWF_VFXPLATFORM_VERSION # Comment out this block to use Conan packages -FROM ${ASWF_PKG_ORG}/ci-package-openvdb:$ASWF_VFXPLATFORM_VERSION-$ASWF_OPENVDB_VERSION AS ci-package-openvdb FROM ${ASWF_PKG_ORG}/ci-package-usd:$ASWF_VFXPLATFORM_VERSION-$ASWF_USD_VERSION AS ci-package-usd FROM ${ASWF_PKG_ORG}/ci-package-osl:$ASWF_VFXPLATFORM_VERSION-$ASWF_OSL_VERSION AS ci-package-osl FROM ${ASWF_PKG_ORG}/ci-package-otio:$ASWF_VFXPLATFORM_VERSION-$ASWF_OTIO_VERSION AS ci-package-otio @@ -89,7 +88,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_BOOST_VERSION ARG ASWF_CPPUNIT_VERSION ARG ASWF_CPYTHON_VERSION @@ -157,7 +156,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.blosc="$ASWF_BLOSC_VERSION" +LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" @@ -222,7 +221,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_BLOSC_VERSION=$ASWF_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION @@ -277,7 +276,6 @@ ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION -COPY --from=ci-package-openvdb /. /usr/local/ COPY --from=ci-package-usd /. /usr/local/ COPY --from=ci-package-osl /. /usr/local/ COPY --from=ci-package-otio /. /usr/local/ @@ -296,7 +294,7 @@ COPY < . [requires] -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} @@ -340,7 +338,7 @@ oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -# openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # usd/${ASWF_USD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 83c3474f..03bfff55 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -20,7 +20,6 @@ Contains: all supported VFX packages ## [aswf/ci-vfxall:2019-clang6.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang6.12) Contains: -* blosc-1.5.0 * boost-1.66.0 * cppunit-1.14.0 * cpython-2.7.15 @@ -50,7 +49,6 @@ Contains: ## [aswf/ci-vfxall:2019-clang7.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang7.12) Contains: -* blosc-1.5.0 * boost-1.66.0 * cppunit-1.14.0 * cpython-2.7.15 @@ -80,7 +78,6 @@ Contains: ## [aswf/ci-vfxall:2019-clang8.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang8.12) Contains: -* blosc-1.5.0 * boost-1.66.0 * cppunit-1.14.0 * cpython-2.7.15 @@ -110,7 +107,6 @@ Contains: ## [aswf/ci-vfxall:2019-clang9.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang9.12) Contains: -* blosc-1.5.0 * boost-1.66.0 * cppunit-1.14.0 * cpython-2.7.15 @@ -140,7 +136,6 @@ Contains: ## [aswf/ci-vfxall:2020-clang7.10](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2020-clang7.10) Contains: -* blosc-1.5.0 * boost-1.70.0 * cppunit-1.15.1 * cpython-3.7.3 @@ -170,7 +165,6 @@ Contains: ## [aswf/ci-vfxall:2021-clang10.7](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2021-clang10.7) Contains: -* blosc-1.5.0 * boost-1.73.0 * cppunit-1.15.1 * cpython-3.7.9 @@ -200,7 +194,6 @@ Contains: ## [aswf/ci-vfxall:2022-clang10.13](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang10.13) Contains: -* blosc-1.17.0 * boost-1.76.0 * cppunit-1.15.1 * cpython-3.9.15 @@ -231,7 +224,6 @@ Contains: ## [aswf/ci-vfxall:2022-clang11.13](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang11.13) Contains: -* blosc-1.17.0 * boost-1.76.0 * cppunit-1.15.1 * cpython-3.9.15 @@ -262,7 +254,6 @@ Contains: ## [aswf/ci-vfxall:2022-clang12.4](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang12.4) Contains: -* blosc-1.17.0 * boost-1.76.0 * cppunit-1.15.1 * cpython-3.9.15 @@ -293,7 +284,6 @@ Contains: ## [aswf/ci-vfxall:2022-clang13.4](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang13.4) Contains: -* blosc-1.17.0 * boost-1.76.0 * cppunit-1.15.1 * cpython-3.9.15 @@ -324,7 +314,6 @@ Contains: ## [aswf/ci-vfxall:2022-clang14.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang14.3) Contains: -* blosc-1.17.0 * boost-1.76.0 * cppunit-1.15.1 * cpython-3.9.15 @@ -355,7 +344,6 @@ Contains: ## [aswf/ci-vfxall:2023-clang14.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2023-clang14.2) Contains: -* blosc-1.17.0 * boost-1.80.0 * cppunit-1.15.1 * cpython-3.10.11 @@ -386,7 +374,6 @@ Contains: ## [aswf/ci-vfxall:2023-clang15.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2023-clang15.2) Contains: -* blosc-1.17.0 * boost-1.80.0 * cppunit-1.15.1 * cpython-3.10.11 @@ -414,29 +401,28 @@ Contains: * hdf5-1.8.23 * vfxplatform-2023 -## [aswf/ci-vfxall:2024-clang16.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang16.2) +## [aswf/ci-vfxall:2024-clang16.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang16.3) Contains: -* blosc-1.21.5 * boost-1.82.0 * cppunit-1.15.1 -* cpython-3.11.11 +* cpython-3.11.13 * expat-2.6.4 * freetype-2.13.2 -* glew-2.1.0 -* glfw-3.3.8 +* glew-2.2.0 +* glfw-3.4 * libbacktrace-cci.20210118 -* log4cplus-2.1.1 +* log4cplus-2.1.2 * lz4-1.10.0 * md4c-0.4.8 -* pybind11-2.12.0 +* pybind11-2.13.6 * snappy-1.1.10 * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 * dbus-system * fontconfig-system -* glib-2.78.3 +* glib-2.56.4 * libalsa-system * libdrm-system * libsndfile-system @@ -444,19 +430,19 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93 +* nss-3.93.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system * xkbcommon-0.9.1 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * imath-3.1.12 * openexr-3.2.4 * alembic-1.8.6 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * ocio-2.3.2 -* opensubdiv-3.6.0 +* opensubdiv-3.6.1 * ptex-2.4.2 * openvdb-11.0.0 * materialx-1.39.2 @@ -468,29 +454,28 @@ Contains: * hdf5-1.8.23 * vfxplatform-2024 -## [aswf/ci-vfxall:2024-clang17.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang17.2) +## [aswf/ci-vfxall:2024-clang17.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang17.3) Contains: -* blosc-1.21.5 * boost-1.82.0 * cppunit-1.15.1 -* cpython-3.11.11 +* cpython-3.11.13 * expat-2.6.4 * freetype-2.13.2 -* glew-2.1.0 -* glfw-3.3.8 +* glew-2.2.0 +* glfw-3.4 * libbacktrace-cci.20210118 -* log4cplus-2.1.1 +* log4cplus-2.1.2 * lz4-1.10.0 * md4c-0.4.8 -* pybind11-2.12.0 +* pybind11-2.13.6 * snappy-1.1.10 * onetbb-2020_u3 * zlib-1.3.1 * zstd-1.5.6 * dbus-system * fontconfig-system -* glib-2.78.3 +* glib-2.56.4 * libalsa-system * libdrm-system * libsndfile-system @@ -498,19 +483,19 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93 +* nss-3.93.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system * xkbcommon-0.9.1 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * imath-3.1.12 * openexr-3.2.4 * alembic-1.8.6 -* oiio-2.5.18.0 +* oiio-2.5.19.0 * ocio-2.3.2 -* opensubdiv-3.6.0 +* opensubdiv-3.6.1 * ptex-2.4.2 * openvdb-11.0.0 * materialx-1.39.2 @@ -522,13 +507,12 @@ Contains: * hdf5-1.8.23 * vfxplatform-2024 -## [aswf/ci-vfxall:2025-clang18.1](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang18.1) +## [aswf/ci-vfxall:2025-clang18.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang18.2) Contains: -* blosc-1.21.6 * boost-1.85.0 * cppunit-1.15.1 -* cpython-3.11.11 +* cpython-3.11.13 * expat-2.6.4 * freetype-2.13.2 * glew-2.2.0 @@ -544,7 +528,7 @@ Contains: * zstd-1.5.6 * dbus-system * fontconfig-system -* glib-2.78.3 +* glib-2.56.4 * libalsa-system * libdrm-system * libsndfile-system @@ -552,37 +536,36 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93 +* nss-3.93.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system * xkbcommon-0.9.1 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * imath-3.1.12 -* openexr-3.3.3 +* openexr-3.3.4 * alembic-1.8.8 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * ocio-2.4.2 -* opensubdiv-3.6.0 +* opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.0 * materialx-1.39.3 * usd-25.05 * partio-1.19.0 -* osl-1.14.5.1 +* osl-1.14.6.0 * otio-0.17.0 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2025 -## [aswf/ci-vfxall:2025-clang19.1](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang19.1) +## [aswf/ci-vfxall:2025-clang19.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang19.2) Contains: -* blosc-1.21.6 * boost-1.85.0 * cppunit-1.15.1 -* cpython-3.11.11 +* cpython-3.11.13 * expat-2.6.4 * freetype-2.13.2 * glew-2.2.0 @@ -598,7 +581,7 @@ Contains: * zstd-1.5.6 * dbus-system * fontconfig-system -* glib-2.78.3 +* glib-2.56.4 * libalsa-system * libdrm-system * libsndfile-system @@ -606,27 +589,133 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93 +* nss-3.93.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system * xkbcommon-0.9.1 -* qt-6.5.4 -* pyside-6.5.4 +* qt-6.5.6 +* pyside-6.5.6 * imath-3.1.12 -* openexr-3.3.3 +* openexr-3.3.4 * alembic-1.8.8 -* oiio-3.0.6.1 +* oiio-3.0.8.1 * ocio-2.4.2 -* opensubdiv-3.6.0 +* opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.0 * materialx-1.39.3 * usd-25.05 * partio-1.19.0 -* osl-1.14.5.1 +* osl-1.14.6.0 * otio-0.17.0 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2025 +## [aswf/ci-vfxall:2026-clang19.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2026-clang19.0) + +Contains: +* boost-1.88.0 +* cppunit-1.15.1 +* cpython-3.13.3 +* expat-2.7.1 +* freetype-2.13.2 +* glew-2.2.0 +* glfw-3.4 +* libbacktrace-cci.20210118 +* log4cplus-2.1.2 +* lz4-1.10.0 +* md4c-0.5.2 +* pybind11-2.13.6 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* dbus-system +* fontconfig-system +* glib-2.68.4 +* libalsa-system +* libdrm-system +* libsndfile-system +* libtiff-4.4.0 +* libwebp-1.5.0 +* libxshmfence-system +* md4c-0.5.2 +* nss-3.101.0 +* openjpeg-2.4.0 +* opus-system +* pulseaudio-system +* xkbcommon-1.0.3 +* qt-6.8.3 +* pyside-6.8.3 +* imath-3.1.12 +* openexr-3.3.4 +* alembic-1.8.8 +* oiio-3.0.8.1 +* ocio-2.4.2 +* opensubdiv-3.6.1 +* ptex-2.4.3 +* openvdb-12.0.1 +* materialx-1.39.3 +* usd-25.05.01 +* partio-1.19.0 +* osl-1.14.6.0 +* otio-0.17.0 +* numpy-1.26.4 +* hdf5-1.8.23 +* vfxplatform-2026 + +## [aswf/ci-vfxall:2026-clang20.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2026-clang20.0) + +Contains: +* boost-1.88.0 +* cppunit-1.15.1 +* cpython-3.13.3 +* expat-2.7.1 +* freetype-2.13.2 +* glew-2.2.0 +* glfw-3.4 +* libbacktrace-cci.20210118 +* log4cplus-2.1.2 +* lz4-1.10.0 +* md4c-0.5.2 +* pybind11-2.13.6 +* snappy-1.2.2 +* onetbb-2022.1.0 +* zlib-1.3.1 +* zstd-1.5.7 +* dbus-system +* fontconfig-system +* glib-2.68.4 +* libalsa-system +* libdrm-system +* libsndfile-system +* libtiff-4.4.0 +* libwebp-1.5.0 +* libxshmfence-system +* md4c-0.5.2 +* nss-3.101.0 +* openjpeg-2.4.0 +* opus-system +* pulseaudio-system +* xkbcommon-1.0.3 +* qt-6.8.3 +* pyside-6.8.3 +* imath-3.1.12 +* openexr-3.3.4 +* alembic-1.8.8 +* oiio-3.0.8.1 +* ocio-2.4.2 +* opensubdiv-3.6.1 +* ptex-2.4.3 +* openvdb-12.0.1 +* materialx-1.39.3 +* usd-25.05.01 +* partio-1.19.0 +* osl-1.14.6.0 +* otio-0.17.0 +* numpy-1.26.4 +* hdf5-1.8.23 +* vfxplatform-2026 + diff --git a/ci-vfxall/image.yaml b/ci-vfxall/image.yaml index 145ce418..e0f020cf 100644 --- a/ci-vfxall/image.yaml +++ b/ci-vfxall/image.yaml @@ -3,7 +3,7 @@ title: "VFX All CI Docker Image" description: | Contains: all supported VFX packages packages: - - blosc + - c-blosc - boost - cppunit - cpython diff --git a/packages/base1/Dockerfile b/packages/base1/Dockerfile deleted file mode 100644 index fa89529c..00000000 --- a/packages/base1/Dockerfile +++ /dev/null @@ -1,38 +0,0 @@ -# syntax = docker/dockerfile:1.4 -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -# "Global" ARGs -ARG ASWF_ORG -ARG ASWF_BOOST_VERSION -ARG CI_COMMON_VERSION -ARG ASWF_CLANG_VERSION -ARG ASWF_CLANG_MAJOR_VERSION -ARG ASWF_CMAKE_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_CUDA_VERSION -ARG ASWF_DTS_VERSION -ARG ASWF_DTS_PREFIX -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_NINJA_VERSION -ARG ASWF_NUMPY_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_PYTHON_MAJOR_MINOR_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_VFXPLATFORM_VERSION - - -#################### ci-baseos-gl-packages #################### -FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-baseos-gl-packages - -COPY ../scripts/common/before_build.sh \ - ../scripts/common/copy_new_files.sh \ - /tmp/ - -ENV DOWNLOADS_DIR=/tmp/downloads \ - CCACHE_DIR=/tmp/ccache \ - ASWF_INSTALL_PREFIX=/usr/local - diff --git a/packages/base2/Dockerfile b/packages/base2/Dockerfile deleted file mode 100644 index 55570b20..00000000 --- a/packages/base2/Dockerfile +++ /dev/null @@ -1,78 +0,0 @@ -# syntax = docker/dockerfile:1.4 -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -# "Global" ARGs -ARG ASWF_ORG -ARG CI_COMMON_VERSION -ARG ASWF_CMAKE_VERSION -ARG ASWF_CLANG_MAJOR_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_PYTHON_MAJOR_MINOR_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_VFXPLATFORM_VERSION - -#################### ci-baseos-gl-packages #################### -FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-baseos-gl-packages - -ARG ASWF_PKG_ORG -ARG ASWF_CONAN_CHANNEL -ARG ASWF_VFXPLATFORM_VERSION - -ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} - -RUN --mount=type=cache,target=/opt/conan_home/d \ - --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} - -COPY ../scripts/common/before_build.sh \ - ../scripts/common/copy_new_files.sh \ - /tmp/ - -ENV DOWNLOADS_DIR=/tmp/downloads \ - CCACHE_DIR=/tmp/ccache \ - ASWF_INSTALL_PREFIX=/usr/local - - -#################### ci-qt-builder #################### -FROM ci-baseos-gl-packages AS ci-qt-builder - -ARG ASWF_QT_VERSION -ENV ASWF_QT_VERSION=${ASWF_QT_VERSION} - -COPY ../scripts/base/build_qt.sh \ - /tmp/ - -RUN --mount=type=cache,target=/tmp/ccache \ - --mount=type=cache,sharing=private,target=/tmp/downloads \ - /tmp/before_build.sh && \ - /tmp/build_qt.sh && \ - /tmp/copy_new_files.sh && \ - ccache --show-stats - - -#################### ci-package-qt #################### -FROM scratch AS ci-package-qt - -ARG ASWF_ORG -ARG CI_COMMON_VERSION -ARG ASWF_DTS_VERSION -ARG ASWF_DTS_PREFIX -ARG ASWF_QT_VERSION -ARG ASWF_VFXPLATFORM_VERSION - -LABEL org.opencontainers.image.name="$ASWF_ORG/ci-package-qt" -LABEL org.opencontainers.image.title="Qt package built for ASWF Docker images" -LABEL org.opencontainers.image.description="Qt headers and binaries to be installed in ASWF Docker images" -LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group" -LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" -LABEL org.opencontainers.image.url="https://www.qt.io/" -LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/packages/Dockerfile" -LABEL org.opencontainers.image.version="${ASWF_QT_VERSION}" -LABEL org.opencontainers.image.licenses="https://doc.qt.io/qt-5/licenses-used-in-qt.html" -LABEL io.aswf.docker.versions.ci-common="${CI_COMMON_VERSION}" -LABEL io.aswf.docker.versions.vfx-platform="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.dts="${ASWF_DTS_VERSION}" -LABEL io.aswf.docker.versions.glfw="${ASWF_QT_VERSION}" - -COPY --from=ci-qt-builder /package/. / diff --git a/packages/base3/Dockerfile b/packages/base3/Dockerfile deleted file mode 100644 index 64f8c342..00000000 --- a/packages/base3/Dockerfile +++ /dev/null @@ -1,113 +0,0 @@ -# syntax = docker/dockerfile:1.4 -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: Apache-2.0 - -# "Global" ARGs -ARG ASWF_ORG -ARG CI_COMMON_VERSION -ARG ASWF_CLANG_MAJOR_VERSION -ARG ASWF_CMAKE_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_PYTHON_MAJOR_MINOR_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_VFXPLATFORM_VERSION - -# Required base packages built in previous stages -FROM ${ASWF_ORG}/ci-package-qt:${ASWF_VFXPLATFORM_VERSION}-${ASWF_QT_VERSION} AS ci-package-qt-external - - -#################### ci-baseos-gl-packages #################### -FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-baseos-gl-packages - -ARG ASWF_PKG_ORG -ARG ASWF_CONAN_CHANNEL -ARG ASWF_VFXPLATFORM_VERSION - -ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} - -RUN --mount=type=cache,target=/opt/conan_home/d \ - --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} - -COPY ../scripts/common/before_build.sh \ - ../scripts/common/copy_new_files.sh \ - /tmp/ - -ENV DOWNLOADS_DIR=/tmp/downloads \ - CCACHE_DIR=/tmp/ccache \ - ASWF_INSTALL_PREFIX=/usr/local \ - PYTHONPATH=${ASWF_INSTALL_PREFIX}/lib/python${ASWF_PYTHON_MAJOR_MINOR_VERSION}/site-packages:${PYTHONPATH} - - -#################### ci-pyside-builder #################### -FROM ci-baseos-gl-packages AS ci-pyside-builder - -ARG ASWF_CPYTHON_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_NUMPY_VERSION -ARG ASWF_PKG_ORG -ARG ASWF_CONAN_CHANNEL -ARG ASWF_VFXPLATFORM_VERSION - -ENV ASWF_CPYTHON_VERSION=${ASWF_CPYTHON_VERSION} -ENV ASWF_PYSIDE_VERSION=${ASWF_PYSIDE_VERSION} -ENV ASWF_NUMPY_VERSION=${ASWF_NUMPY_VERSION} -ENV ASWF_PKG_ORG=${ASWF_PKG_ORG} -ENV ASWF_CONAN_CHANNEL=${ASWF_CONAN_CHANNEL} -ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} - -COPY scripts/common/install_conanpackages.sh /tmp - -# Use conan to install some packages -COPY < . -[requires] -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -EOF - -RUN --mount=type=cache,target=/opt/conan_home/d \ - --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} - - -# Workaround pyside issue with Qt headers within system location https://bugreports.qt.io/browse/PYSIDE-787 -COPY --from=ci-package-qt-external /. /tmp/qt5temp - -COPY ../scripts/base/build_pyside.sh \ - /tmp/ - -RUN --mount=type=cache,target=/tmp/ccache \ - --mount=type=cache,sharing=private,target=/tmp/downloads \ - /tmp/before_build.sh && \ - /tmp/build_pyside.sh && \ - /tmp/copy_new_files.sh && \ - ccache --show-stats - - -#################### ci-package-pyside #################### -FROM scratch AS ci-package-pyside - -ARG ASWF_ORG -ARG CI_COMMON_VERSION -ARG ASWF_DTS_VERSION -ARG ASWF_DTS_PREFIX -ARG ASWF_PYSIDE_VERSION -ARG ASWF_VFXPLATFORM_VERSION - -LABEL org.opencontainers.image.name="$ASWF_ORG/ci-package-pyside" -LABEL org.opencontainers.image.title="PySide package built for ASWF Docker images" -LABEL org.opencontainers.image.description="PySide headers and binaries to be installed in ASWF Docker images" -LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group" -LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" -LABEL org.opencontainers.image.url="https://www.qt.io/qt-for-python" -LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/packages/Dockerfile" -LABEL org.opencontainers.image.version="${ASWF_PYSIDE_VERSION}" -LABEL org.opencontainers.image.licenses="LGPL-2.1" -LABEL io.aswf.docker.versions.ci-common="${CI_COMMON_VERSION}" -LABEL io.aswf.docker.versions.vfx-platform="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.dts="${ASWF_DTS_VERSION}" -LABEL io.aswf.docker.versions.pyside="${ASWF_PYSIDE_VERSION}" - -COPY --from=ci-pyside-builder /package/. / diff --git a/packages/common/Dockerfile b/packages/common/Dockerfile index b3a2b5fc..df7e8f36 100644 --- a/packages/common/Dockerfile +++ b/packages/common/Dockerfile @@ -33,6 +33,8 @@ ARG ASWF_DTS_PREFIX ENV ASWF_DTS_PREFIX=${ASWF_DTS_PREFIX} ARG ASWF_CMAKE_VERSION ENV ASWF_CMAKE_VERSION=${ASWF_CMAKE_VERSION} +ARG ASWF_CCACHE_VERSION +ENV ASWF_CCACHE_VERSION=${ASWF_CCACHE_VERSION} ARG ASWF_YQ_VERSION ENV ASWF_YQ_VERSION=${ASWF_YQ_VERSION} @@ -112,9 +114,8 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_CONAN_VERSION ARG ASWF_CONAN_REMOTE ARG ASWF_CONAN_PYTHON_VERSION -ARG ASWF_CONAN_KEEP_SOURCE -ARG ASWF_CONAN_KEEP_BUILD ARG ASWF_CONAN_BUILD_MISSING +ARG ASWF_CONAN_NO_REMOTE ARG ASWF_CONAN_PUSH ARG ASWF_DTS_VERSION ENV ASWF_DTS_VERSION=${ASWF_DTS_VERSION} @@ -139,6 +140,8 @@ ARG ASWF_NUMPY_VERSION ENV ASWF_NUMPY_VERSION=${ASWF_NUMPY_VERSION} ARG ASWF_CMAKE_VERSION ENV ASWF_CMAKE_VERSION=${ASWF_CMAKE_VERSION} +ARG ASWF_CCACHE_VERSION +ENV ASWF_CCACHE_VERSION=${ASWF_CCACHE_VERSION} ARG ASWF_PYBIND11_VERSION ENV ASWF_PYBIND11_VERSION=${ASWF_PYBIND11_VERSION} ARG ASWF_BOOST_VERSION @@ -199,9 +202,8 @@ RUN --mount=type=cache,target=${ASWF_CONAN_HOME}/d \ --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/.conan2,source=packages/conan/settings \ --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/recipes,source=packages/conan/recipes \ conan create \ - ${ASWF_CONAN_KEEP_SOURCE} \ - ${ASWF_CONAN_KEEP_BUILD} \ ${ASWF_CONAN_BUILD_MISSING} \ + ${ASWF_CONAN_NO_REMOTE} \ --profile:all ${ASWF_CONAN_HOME}/.conan2/profiles_${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} \ --name ${ASWF_PKG_NAME} \ --version ${ASWF_PKG_VERSION} \ diff --git a/packages/conan/recipes/b2/conandata.yml b/packages/conan/recipes/b2/conandata.yml index c464545e..8382aafd 100644 --- a/packages/conan/recipes/b2/conandata.yml +++ b/packages/conan/recipes/b2/conandata.yml @@ -29,3 +29,6 @@ sources: "5.2.1": url: "https://github.com/bfgroup/b2/releases/download/5.2.1/b2-5.2.1.tar.bz2" sha256: "6428edec31731aa479b4e7d8f83898831a0919352ec7d7f9874145abe165a578" + "5.3.2": + url: "https://github.com/bfgroup/b2/releases/download/5.3.2/b2-5.3.2.tar.bz2" + sha256: "881827649356dfa59caa30e169931424993c72a1626a502abb7ea474484eac26" diff --git a/packages/conan/recipes/boost/conandata.yml b/packages/conan/recipes/boost/conandata.yml index 89f97f31..13e25552 100644 --- a/packages/conan/recipes/boost/conandata.yml +++ b/packages/conan/recipes/boost/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/boost/all/conandata.yml sources: + "1.88.0": + url: "https://archives.boost.io/release/1.88.0/source/boost_1_88_0.tar.bz2" + sha256: "46d9d2c06637b219270877c9e16155cbd015b6dc84349af064c088e9b5b12f7b" "1.87.0": url: "https://archives.boost.io/release/1.87.0/source/boost_1_87_0.tar.bz2" sha256: "af57be25cb4c4f4b413ed692fe378affb4352ea50fbe294a11ef548f4d527d89" @@ -33,6 +36,18 @@ sources: url: "https://boostorg.jfrog.io/artifactory/main/release/1.66.0/source/boost_1_66_0.tar.bz2" sha256: "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9" patches: + "1.88.0": + - patch_file: "patches/1.88.0-locale-iconv-library-option.patch" + patch_description: "Optional flag to specify iconv from either libc of libiconv" + patch_type: "conan" + "1.87.0": + - patch_file: "patches/1.82.0-locale-iconv-library-option.patch" + patch_description: "Optional flag to specify iconv from either libc of libiconv" + patch_type: "conan" + - patch_file: "patches/1.87.0-boost-fiber-fix-property-numa.patch" + patch_description: "Fix b2 numa=on property for Boost.Fiber" + patch_type: "official" + patch_source: https://github.com/boostorg/fiber/commit/238487b543e8863c647d31a82ccfc3fa11a960d9" "1.86.0": - patch_file: "patches/1.82.0-locale-iconv-library-option.patch" patch_description: "Optional flag to specify iconv from either libc of libiconv" diff --git a/packages/conan/recipes/boost/conanfile.py b/packages/conan/recipes/boost/conanfile.py index e3dc4c33..fd76f0f0 100644 --- a/packages/conan/recipes/boost/conanfile.py +++ b/packages/conan/recipes/boost/conanfile.py @@ -2,13 +2,13 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/cceee569179c10fa56d1fd9c3582f3371944ba59/recipes/boost/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/d4f752a9a00040dfd8e397f3ac4eaf3be7c515ce/recipes/boost/all/conanfile.py from conan import ConanFile from conan.errors import ConanException, ConanInvalidConfiguration from conan.tools.apple import is_apple_os, to_apple_arch, XCRun from conan.tools.build import build_jobs, cross_building, valid_min_cppstd, supported_cppstd -from conan.tools.env import VirtualBuildEnv +from conan.tools.env import VirtualBuildEnv, Environment from conan.tools.files import ( apply_conandata_patches, chdir, collect_libs, copy, export_conandata_patches, get, mkdir, rename, replace_in_file, rm, rmdir, save @@ -395,10 +395,10 @@ def _python_executable(self): obtain full path to the python interpreter executable :return: path to the python interpreter executable, either set by option, or system default """ - # ASWF: eventually we want our own Python, but we don't know where it lives until - # requirements() has been called. Until then we just use the system puthon. + # ASWF: we don't know where our Python lives until + # requirements() has been called. Until then we just use the system python. # exe = self.options.python_executable if self.options.python_executable else sys.executable - exe = self.options.python_executable if self.options.python_executable else "python" + exe = self.options.python_executable if self.options.python_executable else "python3" return str(exe).replace("\\", "/") @property @@ -663,9 +663,10 @@ def configure(self): if not self.options.without_python: if not self.options.python_version: - self.options.python_version = self._detect_python_version() - # ASWF: always query dynamically since it will change + # ASWF: too early since we don't know where Python is before requirements() is called + # self.options.python_version = self._detect_python_version() # self.options.python_executable = self._python_executable + pass else: self.options.rm_safe("python_buildid") @@ -868,13 +869,21 @@ def source(self): apply_conandata_patches(self) def generate(self): - if not self.options.header_only: - # ASWF: only in validate() has the dependency graph been computed and packages installed - # allowing access to full path of our own python interpreter + # ASWF: only in generate() has the dependency graph been computed and packages installed + # allowing access to full path of our own python interpreter + if not self.options.without_python: pythonInfo = self.dependencies["cpython"] exe = os.path.join(pythonInfo.package_folder, pythonInfo.cpp_info.bindirs[0], "python") - self.options.python_executable = exe + py_lib = os.path.join(pythonInfo.package_folder, pythonInfo.cpp_info.libdirs[0]) + env = Environment() + env.define("PYTHONPATH", py_lib) + env.prepend("LD_LIBRARY_PATH", py_lib, separator=os.pathsep) + envvars = env.vars(self,scope=None) + with envvars.apply(): + self.options.python_executable = exe + self.options.python_version = self._detect_python_version() + if not self.options.header_only: env = VirtualBuildEnv(self) env.generate() vc = VCVars(self) @@ -944,7 +953,8 @@ def _get_python_var(self, name): NOTE: distutils is deprecated and breaks the recipe since Python 3.10 """ - python_version_parts = str(self.info.options.python_version).split('.') + # ASWF: self.info.options only in package_id() + python_version_parts = str(self.options.python_version).split('.') python_major = int(python_version_parts[0]) python_minor = int(python_version_parts[1]) if(python_major >= 3 and python_minor >= 10): @@ -1193,6 +1203,9 @@ def build(self): with chdir(self, sources): # To show the libraries *1 # self.run("%s --show-libraries" % b2_exe) + # ASWF: LD_LIBRARY_PATH for Python run by b2 + py_lib = os.path.join(self.dependencies["cpython"].package_folder, "lib64") + os.environ["LD_LIBRARY_PATH"] = os.pathsep.join([py_lib,os.environ.get("LD_LIBRARY_PATH")]) self.run(full_command) @property @@ -1478,7 +1491,7 @@ def add_defines(library): flags.extend([ "install", f"--prefix={self.package_folder}", - f"--libdir={self.package_folder}/lib64", # Override default lib + f"--libdir={self.package_folder}/lib64", # ASWF Override default lib f"-j{build_jobs(self)}", "--abbreviate-paths", f"-d{self.options.debug_level}", @@ -1710,7 +1723,9 @@ def _toolset_tag(self): def package(self): # This stage/lib is in source_folder... Face palm, looks like it builds in build but then # copy to source with the good lib name + # ASWF: license files in separate subdirs copy(self, "LICENSE_1_0.txt", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + # ASWF: keep cmake files # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) if self.options.header_only: copy(self, "*", src=os.path.join(self.source_folder, "boost"), @@ -1937,7 +1952,20 @@ def package_info(self): libformatdata = {} if not self.options.without_python: - pyversion = Version(self._python_version) + # ASWF: a consumer of this package can call package_info() before generate(), + # so we have to make sure that python_version is correctly set + if not self.options.python_version: + pythonInfo = self.dependencies["cpython"] + exe = os.path.join(pythonInfo.package_folder, pythonInfo.cpp_info.bindirs[0], "python") + py_lib = os.path.join(pythonInfo.package_folder, pythonInfo.cpp_info.libdirs[0]) + env = Environment() + env.define("PYTHONPATH", py_lib) + env.prepend("LD_LIBRARY_PATH", py_lib, separator=os.pathsep) + envvars = env.vars(self,scope=None) + with envvars.apply(): + self.options.python_executable = exe + self.options.python_version = self._detect_python_version() + pyversion = Version(self.options.python_version) libformatdata["py_major"] = pyversion.major libformatdata["py_minor"] = pyversion.minor @@ -1959,7 +1987,7 @@ def filter_transform_module_libraries(names): for name in names: if name in ("boost_stacktrace_windbg", "boost_stacktrace_windbg_cached") and self.settings.os != "Windows": continue - if name in ("boost_math_c99l", "boost_math_tr1l") and str(self.settings.arch).startswith("ppc"): + if name in ("boost_math_c99l", "boost_math_tr1l") and (str(self.settings.arch).startswith("ppc") or (Version(self.version) >= "1.87.0" and self.settings.os == "Emscripten")): continue if name in ("boost_stacktrace_addr2line", "boost_stacktrace_backtrace", "boost_stacktrace_basic") and self.settings.os == "Windows": continue diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml index 21bc4e9c..02d6958c 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml @@ -1,4 +1,4 @@ -onfigure_options: +configure_options: - atomic - chrono - container diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml new file mode 100644 index 00000000..4f35fdb3 --- /dev/null +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml @@ -0,0 +1,299 @@ +configure_options: +- atomic +- charconv +- chrono +- cobalt +- container +- context +- contract +- coroutine +- date_time +- exception +- fiber +- filesystem +- graph +- graph_parallel +- iostreams +- json +- locale +- log +- math +- mpi +- nowide +- process +- program_options +- python +- random +- regex +- serialization +- stacktrace +- system +- test +- thread +- timer +- type_erasure +- url +- wave +dependencies: + atomic: [] + charconv: [] + chrono: + - system + cobalt: + - container + - context + - system + container: [] + context: [] + contract: + - exception + - thread + coroutine: + - context + - exception + - system + date_time: [] + exception: [] + fiber: + - context + - filesystem + fiber_numa: + - fiber + filesystem: + - atomic + - system + graph: + - math + - random + - regex + - serialization + graph_parallel: + - filesystem + - graph + - mpi + - random + - serialization + iostreams: + - random + - regex + json: + - container + - system + locale: + - thread + log: + - atomic + - date_time + - exception + - filesystem + - random + - regex + - system + - thread + log_setup: + - log + math: [] + math_c99: + - math + math_c99f: + - math + math_c99l: + - math + math_tr1: + - math + math_tr1f: + - math + math_tr1l: + - math + mpi: + - graph + - serialization + mpi_python: + - mpi + - python + nowide: + - filesystem + numpy: + - python + prg_exec_monitor: + - test + process: + - filesystem + - system + - context + program_options: [] + python: [] + random: + - system + regex: [] + serialization: [] + stacktrace: [] + stacktrace_addr2line: + - stacktrace + stacktrace_backtrace: + - stacktrace + stacktrace_basic: + - stacktrace + stacktrace_from_exception: + - stacktrace + stacktrace_noop: + - stacktrace + stacktrace_windbg: + - stacktrace + stacktrace_windbg_cached: + - stacktrace + system: [] + test: + - exception + test_exec_monitor: + - test + thread: + - atomic + - chrono + - container + - date_time + - exception + - system + timer: [] + type_erasure: + - thread + unit_test_framework: + - prg_exec_monitor + - test + - test_exec_monitor + url: + - system + wave: + - filesystem + - serialization + wserialization: + - serialization +libs: + atomic: + - boost_atomic + charconv: + - boost_charconv + chrono: + - boost_chrono + cobalt: + - boost_cobalt + container: + - boost_container + context: + - boost_context + contract: + - boost_contract + coroutine: + - boost_coroutine + date_time: + - boost_date_time + exception: + - boost_exception + fiber: + - boost_fiber + fiber_numa: + - boost_fiber_numa + filesystem: + - boost_filesystem + graph: + - boost_graph + graph_parallel: + - boost_graph_parallel + iostreams: + - boost_iostreams + json: + - boost_json + locale: + - boost_locale + log: + - boost_log + log_setup: + - boost_log_setup + math: [] + math_c99: + - boost_math_c99 + math_c99f: + - boost_math_c99f + math_c99l: + - boost_math_c99l + math_tr1: + - boost_math_tr1 + math_tr1f: + - boost_math_tr1f + math_tr1l: + - boost_math_tr1l + mpi: + - boost_mpi + mpi_python: + - boost_mpi_python + nowide: + - boost_nowide + numpy: + - boost_numpy{py_major}{py_minor} + prg_exec_monitor: + - boost_prg_exec_monitor + process: + - boost_process + program_options: + - boost_program_options + python: + - boost_python{py_major}{py_minor} + random: + - boost_random + regex: + - boost_regex + serialization: + - boost_serialization + stacktrace: [] + stacktrace_addr2line: + - boost_stacktrace_addr2line + stacktrace_backtrace: + - boost_stacktrace_backtrace + stacktrace_basic: + - boost_stacktrace_basic + stacktrace_from_exception: + - boost_stacktrace_from_exception + stacktrace_noop: + - boost_stacktrace_noop + stacktrace_windbg: + - boost_stacktrace_windbg + stacktrace_windbg_cached: + - boost_stacktrace_windbg_cached + system: + - boost_system + test: [] + test_exec_monitor: + - boost_test_exec_monitor + thread: + - boost_thread + timer: + - boost_timer + type_erasure: + - boost_type_erasure + unit_test_framework: + - boost_unit_test_framework + url: + - boost_url + wave: + - boost_wave + wserialization: + - boost_wserialization +requirements: + iostreams: + - bzip2 + - lzma + - zlib + - zstd + locale: + - iconv + - icu + python: + - python + regex: + - icu + stacktrace: + - backtrace +static_only: +- boost_exception +- boost_test_exec_monitor +version: 1.88.0 diff --git a/packages/conan/recipes/boost/patches/1.87.0-boost-fiber-fix-property-numa.patch b/packages/conan/recipes/boost/patches/1.87.0-boost-fiber-fix-property-numa.patch new file mode 100644 index 00000000..a8bf6392 --- /dev/null +++ b/packages/conan/recipes/boost/patches/1.87.0-boost-fiber-fix-property-numa.patch @@ -0,0 +1,60 @@ +From 238487b543e8863c647d31a82ccfc3fa11a960d9 Mon Sep 17 00:00:00 2001 +From: Oliver Kowalke +Date: Fri, 21 Feb 2025 15:28:56 +0100 +Subject: [PATCH 1/1] fix property numa + +--- + libs/fiber/boost-fiber-features.jam | 10 ++++++++++ + libs/fiber/build.jam | 5 +++++ + libs/fiber/build/Jamfile.v2 | 3 --- + 3 files changed, 15 insertions(+), 3 deletions(-) + create mode 100644 boost-fiber-features.jam + +diff --git a/libs/fiber/boost-fiber-features.jam b/libs/fiber/boost-fiber-features.jam +new file mode 100644 +index 0000000..d3eba2f +--- /dev/null ++++ b/libs/fiber/boost-fiber-features.jam +@@ -0,0 +1,10 @@ ++# Copyright René Ferdinand Rivera Morell 2023-2024 ++# Distributed under the Boost Software License, Version 1.0. ++# (See accompanying file LICENSE_1_0.txt or copy at ++# http://www.boost.org/LICENSE_1_0.txt) ++ ++import feature ; ++import os ; ++ ++feature.feature numa : on : optional propagated composite ; ++feature.compose on : BOOST_USE_NUMA ; +diff --git a/libs/fiber/build.jam b/libs/fiber/build.jam +index 27e70ae..81b929f 100644 +--- a/libs/fiber/build.jam ++++ b/libs/fiber/build.jam +@@ -5,6 +5,11 @@ + + require-b2 5.2 ; + ++import-search /boost/predef/tools/check ; ++ ++import predef ; ++import boost-fiber-features ; ++ + constant boost_dependencies : + /boost/assert//boost_assert + /boost/config//boost_config +diff --git a/libs/fiber/build/Jamfile.v2 b/libs/fiber/build/Jamfile.v2 +index e477938..08987b1 100644 +--- a/libs/fiber/build/Jamfile.v2 ++++ b/libs/fiber/build/Jamfile.v2 +@@ -14,9 +14,6 @@ import config : requires ; + import-search /boost/context ; + import boost-context-features ; + +-feature.feature numa : on : optional propagated composite ; +-feature.compose on : BOOST_USE_NUMA ; +- + constant boost_dependencies_private : + /boost/algorithm//boost_algorithm + /boost/filesystem//boost_filesystem +-- +2.31.1 diff --git a/packages/conan/recipes/boost/patches/1.88.0-locale-iconv-library-option.patch b/packages/conan/recipes/boost/patches/1.88.0-locale-iconv-library-option.patch new file mode 100644 index 00000000..2e58b2e9 --- /dev/null +++ b/packages/conan/recipes/boost/patches/1.88.0-locale-iconv-library-option.patch @@ -0,0 +1,12 @@ +diff --git a/libs/locale/build.jam b/libs/locale/build.jam +index f1321db3..36899cdc 100644 +--- a/libs/locale/build.jam ++++ b/libs/locale/build.jam +@@ -11,6 +11,7 @@ project /boost/locale + # Features + + feature.feature boost.locale.iconv : on off : optional propagated ; ++feature.feature boost.locale.iconv.lib : libc libiconv : optional propagated ; + feature.feature boost.locale.icu : on off : optional propagated ; + feature.feature boost.locale.posix : on off : optional propagated ; + feature.feature boost.locale.std : on off : optional propagated ; diff --git a/packages/conan/recipes/boost/test_package/conanfile.py b/packages/conan/recipes/boost/test_package/conanfile.py index 0d42c2fd..f33edf4f 100644 --- a/packages/conan/recipes/boost/test_package/conanfile.py +++ b/packages/conan/recipes/boost/test_package/conanfile.py @@ -1,6 +1,7 @@ # Copyright (c) Contributors to the conan-center-index Project. All rights reserved. # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT +# From: https://github.com/conan-io/conan-center-index/blob/1729c3c2c3b0e9d058821fa00e8a54154415efc6/recipes/boost/all/test_package/conanfile.py from conan import ConanFile from conan.errors import ConanException @@ -30,16 +31,10 @@ def requirements(self): def generate(self): tc = CMakeToolchain(self) - tc.cache_variables["HEADER_ONLY"] = self.dependencies[ - "boost" - ].options.header_only + tc.cache_variables["HEADER_ONLY"] = self.dependencies["boost"].options.header_only if not self.dependencies["boost"].options.header_only: - tc.cache_variables["Boost_USE_STATIC_LIBS"] = not self.dependencies[ - "boost" - ].options.shared - tc.cache_variables["WITH_PYTHON"] = not self.dependencies[ - "boost" - ].options.without_python + tc.cache_variables["Boost_USE_STATIC_LIBS"] = not self.dependencies["boost"].options.shared + tc.cache_variables["WITH_PYTHON"] = not self.dependencies["boost"].options.without_python if not self.dependencies["boost"].options.without_python: pyversion = self.dependencies["boost"].options.python_version tc.cache_variables["PYTHON_VERSION_TO_SEARCH"] = pyversion @@ -53,51 +48,22 @@ def generate(self): tc.cache_variables["Python_SITELIB"] = os.path.join(pythonInfo.package_folder, pythonInfo.cpp_info.libdirs[0], "python{os.environ['ASWF_PYTHON_MAJOR_MINOR_VERSION']}","site-packages") - tc.cache_variables["WITH_RANDOM"] = not self.dependencies[ - "boost" - ].options.without_random - tc.cache_variables["WITH_REGEX"] = not self.dependencies[ - "boost" - ].options.without_regex - tc.cache_variables["WITH_TEST"] = not self.dependencies[ - "boost" - ].options.without_test - tc.cache_variables["WITH_COROUTINE"] = not self.dependencies[ - "boost" - ].options.without_coroutine - tc.cache_variables["WITH_CHRONO"] = not self.dependencies[ - "boost" - ].options.without_chrono - tc.cache_variables["WITH_FIBER"] = not self.dependencies[ - "boost" - ].options.without_fiber - tc.cache_variables["WITH_LOCALE"] = not self.dependencies[ - "boost" - ].options.without_locale - tc.cache_variables["WITH_NOWIDE"] = not self._boost_option( - "without_nowide", True - ) + tc.cache_variables["WITH_RANDOM"] = not self.dependencies["boost"].options.without_random + tc.cache_variables["WITH_REGEX"] = not self.dependencies["boost"].options.without_regex + tc.cache_variables["WITH_TEST"] = not self.dependencies["boost"].options.without_test + tc.cache_variables["WITH_COROUTINE"] = not self.dependencies["boost"].options.without_coroutine + tc.cache_variables["WITH_CHRONO"] = not self.dependencies["boost"].options.without_chrono + tc.cache_variables["WITH_FIBER"] = not self.dependencies["boost"].options.without_fiber + tc.cache_variables["WITH_LOCALE"] = not self.dependencies["boost"].options.without_locale + tc.cache_variables["WITH_NOWIDE"] = not self._boost_option("without_nowide", True) tc.cache_variables["WITH_JSON"] = not self._boost_option("without_json", True) - tc.cache_variables["WITH_PROCESS"] = not self._boost_option( - "without_process", True - ) - tc.cache_variables["WITH_STACKTRACE"] = not self.dependencies[ - "boost" - ].options.without_stacktrace - tc.cache_variables["WITH_STACKTRACE_ADDR2LINE"] = self.dependencies[ - "boost" - ].conf_info.get("user.boost:stacktrace_addr2line_available") - tc.cache_variables["WITH_STACKTRACE_BACKTRACE"] = self._boost_option( - "with_stacktrace_backtrace", False - ) + tc.cache_variables["WITH_PROCESS"] = not self._boost_option("without_process", True) + tc.cache_variables["WITH_STACKTRACE"] = not self.dependencies["boost"].options.without_stacktrace + tc.cache_variables["WITH_STACKTRACE_ADDR2LINE"] = self.dependencies["boost"].conf_info.get("user.boost:stacktrace_addr2line_available") + tc.cache_variables["WITH_STACKTRACE_BACKTRACE"] = self._boost_option("with_stacktrace_backtrace", False) tc.cache_variables["WITH_URL"] = not self._boost_option("without_url", True) - if ( - self.dependencies["boost"].options.namespace != "boost" - and not self.dependencies["boost"].options.namespace_alias - ): - tc.cache_variables["BOOST_NAMESPACE"] = self.dependencies[ - "boost" - ].options.namespace + if self.dependencies["boost"].options.namespace != 'boost' and not self.dependencies["boost"].options.namespace_alias: + tc.cache_variables['BOOST_NAMESPACE'] = self.dependencies["boost"].options.namespace tc.generate() def build(self): diff --git a/packages/conan/recipes/boost/test_package/process.cpp b/packages/conan/recipes/boost/test_package/process.cpp index fa89afeb..66b1704c 100644 --- a/packages/conan/recipes/boost/test_package/process.cpp +++ b/packages/conan/recipes/boost/test_package/process.cpp @@ -4,14 +4,21 @@ // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // This comes from the following Boost example: -// https://github.com/boostorg/process/blob/boost-1.86.0/example/v2/intro.cpp +// https://github.com/boostorg/process/blob/boost-1.88.0/example/intro.cpp // clang-format: off #include #include // clang-format: on +#include +#define BOOST_PROCESS_V2_DEFAULT (BOOST_VERSION / 100 % 1000 >= 88) + +#if BOOST_PROCESS_V2_DEFAULT +#include +#else #include +#endif #include #include @@ -21,8 +28,12 @@ namespace boost = BOOST_NAMESPACE; #endif -namespace proc = boost::process::v2; -namespace asio = boost::asio; +#if BOOST_PROCESS_V2_DEFAULT +namespace proc = boost::process; +#else +namespace proc = boost::process::v2; +#endif +namespace asio = boost::asio; int main() { @@ -41,4 +52,4 @@ int main() std::cout << "CMake version: '" << line << "'" << std::endl; c.wait(); -} +} \ No newline at end of file diff --git a/packages/conan/recipes/brotli/conanfile.py b/packages/conan/recipes/brotli/conanfile.py index d63ec062..a3f9ff3c 100644 --- a/packages/conan/recipes/brotli/conanfile.py +++ b/packages/conan/recipes/brotli/conanfile.py @@ -14,27 +14,23 @@ class SystemBrotliConan(ConanFile): def package_info(self): includedir = "/usr/include/brotli" - self.cpp_info.libdirs = ["/usr/lib64"] self.cpp_info.includedirs = [includedir] self.cpp_info.set_property("cmake_file_name", "brotli") self.cpp_info.set_property("cmake_target_name", "brotli::brotli") # brotlicommon - self.cpp_info.components["brotlicommon"].libdirs = ["/usr/lib64"] self.cpp_info.components["brotlicommon"].includedirs = [includedir] - self.cpp_info.components["brotlicommon"].libs = ["brotlicommon"] + self.cpp_info.components["brotlicommon"].system_libs = ["brotlicommon"] # brotlidec - self.cpp_info.components["brotlidec"].libdirs = ["/usr/lib64"] self.cpp_info.components["brotlidec"].includedirs = [includedir] - self.cpp_info.components["brotlidec"].libs = ["brotlidec"] + self.cpp_info.components["brotlidec"].system_libs = ["brotlidec"] self.cpp_info.components["brotlidec"].requires = ["brotlicommon"] # brotlienc - self.cpp_info.components["brotlienc"].libdirs = ["/usr/lib64"] self.cpp_info.components["brotlienc"].includedirs = [includedir] - self.cpp_info.components["brotlienc"].libs = ["brotlienc"] + self.cpp_info.components["brotlienc"].system_libs = ["brotlienc"] self.cpp_info.components["brotlienc"].requires = ["brotlicommon"] diff --git a/packages/conan/recipes/bzip2/CMakeLists.txt b/packages/conan/recipes/bzip2/CMakeLists.txt index c5fdbc06..8dc65856 100644 --- a/packages/conan/recipes/bzip2/CMakeLists.txt +++ b/packages/conan/recipes/bzip2/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/5fecff85282c68fae05e776fb330779bdb94a6e8/recipes/bzip2/all/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/bzip2/all/CMakeLists.txt -cmake_minimum_required(VERSION 3.4) +cmake_minimum_required(VERSION 3.15) project(bzip2 LANGUAGES C) include(GNUInstallDirs) diff --git a/packages/conan/recipes/bzip2/conandata.yml b/packages/conan/recipes/bzip2/conandata.yml index 8056822f..c3518683 100644 --- a/packages/conan/recipes/bzip2/conandata.yml +++ b/packages/conan/recipes/bzip2/conandata.yml @@ -2,14 +2,20 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/5fecff85282c68fae05e776fb330779bdb94a6e8/recipes/bzip2/all/conandata.yml +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/bzip2/all/conandata.yml sources: "1.0.8": - url: "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" + url: + - "https://sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" + - "https://mirrors.kernel.org/sourceware/bzip2/bzip2-1.0.8.tar.gz" + - "https://www.mirrorservice.org/sites/sourceware.org/pub/bzip2/bzip2-1.0.8.tar.gz" sha256: "ab5a03176ee106d3f0fa90e381da478ddae405918153cca248e682cd0c4a2269" "1.0.6": - url: "https://sourceware.org/pub/bzip2/bzip2-1.0.6.tar.gz" + url: + - "https://sourceware.org/pub/bzip2/bzip2-1.0.6.tar.gz" + - "https://mirrors.kernel.org/sourceware/bzip2/bzip2-1.0.6.tar.gz" + - "https://www.mirrorservice.org/sites/sourceware.org/pub/bzip2/bzip2-1.0.6.tar.gz" sha256: "a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd" patches: "1.0.6": diff --git a/packages/conan/recipes/bzip2/test_package/CMakeLists.txt b/packages/conan/recipes/bzip2/test_package/CMakeLists.txt index 20e85801..f8902faf 100644 --- a/packages/conan/recipes/bzip2/test_package/CMakeLists.txt +++ b/packages/conan/recipes/bzip2/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/5fecff85282c68fae05e776fb330779bdb94a6e8/recipes/bzip2/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/bzip2/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(BZip2 REQUIRED) diff --git a/packages/conan/recipes/blosc/conandata.yml b/packages/conan/recipes/c-blosc/conandata.yml similarity index 100% rename from packages/conan/recipes/blosc/conandata.yml rename to packages/conan/recipes/c-blosc/conandata.yml diff --git a/packages/conan/recipes/blosc/conanfile.py b/packages/conan/recipes/c-blosc/conanfile.py similarity index 84% rename from packages/conan/recipes/blosc/conanfile.py rename to packages/conan/recipes/c-blosc/conanfile.py index 49ca46fe..5435bb8b 100644 --- a/packages/conan/recipes/blosc/conanfile.py +++ b/packages/conan/recipes/c-blosc/conanfile.py @@ -2,20 +2,21 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/c-blosc/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/86cbb6845aa71dcbdb4482a332c338e2c1833801/recipes/c-blosc/all/conanfile.py from conan import ConanFile +from conan.errors import ConanException from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir from conan.tools.microsoft import is_msvc from conan.tools.scm import Version import os -required_conan_version = ">=1.53.0" +required_conan_version = ">=2.1" class CbloscConan(ConanFile): - name = "blosc" + name = "c-blosc" description = "An extremely fast, multi-threaded, meta-compressor library." license = "BSD-3-Clause" topics = ("blosc", "compression") @@ -64,13 +65,13 @@ def layout(self): def requirements(self): if self.options.with_lz4: - self.requires(f"lz4/1.10.0@{os.environ['ASWF_PKG_ORG']}/{os.environ['ASWF_CONAN_CHANNEL']}", transitive_libs=True) + self.requires("lz4/1.9.4") if self.options.with_snappy: - self.requires(f"snappy/1.1.10@{os.environ['ASWF_PKG_ORG']}/{os.environ['ASWF_CONAN_CHANNEL']}", transitive_libs=True) + self.requires("snappy/1.1.10") if self.options.with_zlib: - self.requires(f"zlib/[>=1.2.11 <2]@{os.environ['ASWF_PKG_ORG']}/{os.environ['ASWF_CONAN_CHANNEL']}", transitive_libs=True) + self.requires("zlib/[>=1.2.11 <2]") if self.options.with_zstd: - self.requires(f"zstd/1.5.6@{os.environ['ASWF_PKG_ORG']}/{os.environ['ASWF_CONAN_CHANNEL']}", transitive_libs=True) + self.requires("zstd/1.5.5") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -100,6 +101,9 @@ def generate(self): tc.variables["CMAKE_INSTALL_SYSTEM_RUNTIME_LIBS_SKIP"] = True # Generate a relocatable shared lib on Macos tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0042"] = "NEW" + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support + # if Version(self.version) > "1.21.5": # pylint: disable=conan-unreachable-upper-version # ASWF disable check + # raise ConanException("CMAKE_POLICY_VERSION_MINIMUM hardcoded to 3.5, check if new version supports CMake 4") tc.generate() deps = CMakeDeps(self) @@ -116,11 +120,13 @@ def build(self): cmake.build() def package(self): - licenses = [ "BLOSC.txt", "BITSHUFFLE.txt", "FASTLZ.txt" ] + licenses = ["BLOSC.txt", "BITSHUFFLE.txt", "FASTLZ.txt"] for license_file in licenses: + # ASWF: license files in package specific directory copy(self, license_file, src=os.path.join(self.source_folder, "LICENSES"), dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() + # ASWF: pkgconfig in lib64 rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) def package_info(self): diff --git a/packages/conan/recipes/blosc/patches/cmake-dependencies-1.21.4+.patch b/packages/conan/recipes/c-blosc/patches/cmake-dependencies-1.21.4+.patch similarity index 100% rename from packages/conan/recipes/blosc/patches/cmake-dependencies-1.21.4+.patch rename to packages/conan/recipes/c-blosc/patches/cmake-dependencies-1.21.4+.patch diff --git a/packages/conan/recipes/blosc/test_package/CMakeLists.txt b/packages/conan/recipes/c-blosc/test_package/CMakeLists.txt similarity index 52% rename from packages/conan/recipes/blosc/test_package/CMakeLists.txt rename to packages/conan/recipes/c-blosc/test_package/CMakeLists.txt index 61e34277..fb52c03f 100644 --- a/packages/conan/recipes/blosc/test_package/CMakeLists.txt +++ b/packages/conan/recipes/c-blosc/test_package/CMakeLists.txt @@ -2,12 +2,12 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/c-blosc/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/c-blosc/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) -find_package(blosc REQUIRED CONFIG) +find_package(c-blosc REQUIRED CONFIG) add_executable(${PROJECT_NAME} test_package.c) -target_link_libraries(${PROJECT_NAME} PRIVATE blosc::blosc) +target_link_libraries(${PROJECT_NAME} PRIVATE c-blosc::c-blosc) diff --git a/packages/conan/recipes/blosc/test_package/conanfile.py b/packages/conan/recipes/c-blosc/test_package/conanfile.py similarity index 100% rename from packages/conan/recipes/blosc/test_package/conanfile.py rename to packages/conan/recipes/c-blosc/test_package/conanfile.py diff --git a/packages/conan/recipes/blosc/test_package/test_package.c b/packages/conan/recipes/c-blosc/test_package/test_package.c similarity index 100% rename from packages/conan/recipes/blosc/test_package/test_package.c rename to packages/conan/recipes/c-blosc/test_package/test_package.c diff --git a/packages/conan/recipes/clang/conandata.yml b/packages/conan/recipes/clang/conandata.yml index 4621eb51..cc8a62f0 100644 --- a/packages/conan/recipes/clang/conandata.yml +++ b/packages/conan/recipes/clang/conandata.yml @@ -1,23 +1,48 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/llvm-core/all/conandata.yml + sources: - "16.0.4": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-16.0.4.tar.gz" - sha256: "10c3fe1757d2e4f1cd7745dc548ecf687680a71824ec81701c38524c2a0753e2" - "16.0.6": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-16.0.6.tar.gz" - sha256: "56b2f75fdaa95ad5e477a246d3f0d164964ab066b4619a01836ef08e475ec9d5" - "17.0.1": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-17.0.1.tar.gz" - sha256: "d51b10be66c10a6a81f4c594b554ffbf1063ffbadcb810af37d1f88d6e0b49dd" - "17.0.6": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-17.0.6.tar.gz" - sha256: "81494d32e6f12ea6f73d6d25424dbd2364646011bb8f7e345ca870750aa27de1" + "20.1.7": + "llvm": + url: "https://github.com/llvm/llvm-project/archive/llvmorg-20.1.7.tar.gz" + sha256: "91865189d0ca30ca81b7f7af637aca745b6eeeba97c5dfb0ab7d79a1d9659289" + "cmake": + url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-20.1.7/cmake-20.1.7.src.tar.xz" + sha256: "afdab526c9b337a4eacbb401685beb98a18fb576037ecfaa93171d4c644fe791" + "19.1.7": + "llvm": + url: "https://github.com/llvm/llvm-project/archive/llvmorg-19.1.1.tar.gz" + sha256: "115dfd98a353d05bffdab3f80db22f159da48aca0124e8c416f437adcd54b77f" + "cmake": + url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.7/cmake-19.1.7.src.tar.xz" + sha256: "11c5a28f90053b0c43d0dec3d0ad579347fc277199c005206b963c19aae514e3" "18.1.8": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-18.1.8.tar.gz" - sha256: "09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856" - "19.1.0": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-19.1.0.tar.gz" - sha256: "0a08341036ca99a106786f50f9c5cb3fbe458b3b74cab6089fd368d0edb2edfe" - "19.1.1": - url: "https://github.com/llvm/llvm-project/archive/llvmorg-19.1.1.tar.gz" - sha256: "115dfd98a353d05bffdab3f80db22f159da48aca0124e8c416f437adcd54b77f" + "llvm": + url: "https://github.com/llvm/llvm-project/archive/llvmorg-18.1.8.tar.gz" + sha256: "09c08693a9afd6236f27a2ebae62cda656eba19021ef3f94d59e931d662d4856" + "cmake": + url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-18.1.8/cmake-18.1.8.src.tar.xz" + sha256: "59badef592dd34893cd319d42b323aaa990b452d05c7180ff20f23ab1b41e837" + "17.0.6": + "llvm": + url: "https://github.com/llvm/llvm-project/archive/llvmorg-17.0.6.tar.gz" + sha256: "81494d32e6f12ea6f73d6d25424dbd2364646011bb8f7e345ca870750aa27de1" + "cmake": + url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-17.0.6/cmake-17.0.6.src.tar.xz" + sha256: "807f069c54dc20cb47b21c1f6acafdd9c649f3ae015609040d6182cab01140f4" + "16.0.6": + "llvm": + url: "https://github.com/llvm/llvm-project/archive/llvmorg-16.0.6.tar.gz" + sha256: "56b2f75fdaa95ad5e477a246d3f0d164964ab066b4619a01836ef08e475ec9d5" + "cmake": + url: "https://github.com/llvm/llvm-project/releases/download/llvmorg-16.0.6/cmake-16.0.6.src.tar.xz" + sha256: "39d342a4161095d2f28fb1253e4585978ac50521117da666e2b1f6f28b62f514" patches: + "19.1.7": + - patch_file: patches/19x/0000-cmake-dependencies.patch + patch_description: fix references to third party libs to match conan variables and targets + patch_type: conan + base_path: llvm-main/llvm diff --git a/packages/conan/recipes/clang/conanfile.py b/packages/conan/recipes/clang/conanfile.py index 39a0d2b9..c2ff9ece 100644 --- a/packages/conan/recipes/clang/conanfile.py +++ b/packages/conan/recipes/clang/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/1f8a9d826fdf0c0e3cedf798b44a10dadb3223fe/recipes/llvm-core/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/llvm-core/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration @@ -14,6 +14,7 @@ collect_libs, get, rmdir, + load, save, copy, export_conandata_patches, @@ -26,7 +27,7 @@ import json import os -from pathlib import Path +from pathlib import Path, PurePosixPath import re import textwrap @@ -58,13 +59,89 @@ "XCore" } +def components_from_dotfile(dotfile): + """ + Parse the dotfile generated by the + [cmake --graphviz](https://cmake.org/cmake/help/latest/module/CMakeGraphVizOptions.html) + option to generate the list of available LLVM CMake targets and their inter-component dependencies. + + In future a [CPS](https://cps-org.github.io/cps/index.html) format could be used, or generated directly + by the LLVM build system + """ + def node_labels(dot): + """ + match each node in the dotfile with a label property, and map the label to a conan component + """ + label_replacements = { + "LibXml2::LibXml2": "libxml2::libxml2", + "ZLIB::ZLIB": "zlib::zlib", + "zstd::libzstd_static": "zstd::zstdlib", + "-lpthread": "pthread" + } + for row in dot: + match_label = re.match(r'''^\s*"(node[0-9]+)"\s*\[\s*label\s*=\s*"(.+)".*''', row) + if match_label: + node = match_label.group(1) + label = match_label.group(2) + yield node, label_replacements.get(label, label) + + def node_dependencies(dot): + """ + Using the nodes with labels, extract the component dependencies of each node + """ + ignore_deps = [ + "diaguids.lib" # https://github.com/llvm/llvm-project/issues/86250 + ] + labels = {k: v for k, v in node_labels(dot)} + for row in dot: + match_dep = re.match(r'''^\s*"(node[0-9]+)"\s*->\s*"(node[0-9]+)".*''', row) + if match_dep: + node_label = labels[match_dep.group(1)] + dependency = labels[match_dep.group(2)] + if node_label.startswith("LLVM") and PurePosixPath(dependency).parts[-1] not in ignore_deps: + yield node_label, labels[match_dep.group(2)] + # some components don't have dependencies + for label in labels.values(): + if label.startswith("LLVM"): + yield label, None + + system_libs = { + "ole32", + "delayimp", + "shell32", + "advapi32", + "-delayload:shell32.dll", + "uuid", + "psapi", + "-delayload:ole32.dll", + "ntdll", + "ws2_32", + "rt", + "m", + "dl", + "pthread" + } + components = {} + dotfile_rows = dotfile.split("\n") + for node, dependency in node_dependencies(dotfile_rows): + key = "system_libs" if dependency in system_libs else "requires" + if not node in components: + components[node] = { "system_libs": [], "requires": [] } + if dependency is not None: + components[node][key] = [dependency] + elif dependency is not None: + components[node][key].append(dependency) + + return components class ClangConan(ConanFile): + # ASWF: upstream recipe only builds llvm, we build llvm + clang name = "clang" description = ( "A toolkit for the construction of highly optimized compilers," "optimizers, and runtime environments." ) + package_type = "library" license = "Apache-2.0 WITH LLVM-exception" topics = ("llvm", "compiler") homepage = "https://llvm.org" @@ -99,6 +176,7 @@ class ClangConan(ConanFile): "with_zlib": [True, False], "with_xml2": [True, False], "with_z3": [True, False], + "with_zstd": [True, False], } default_options = { "shared": False, @@ -120,21 +198,31 @@ class ClangConan(ConanFile): "with_xml2": False, "with_z3": False, "with_zlib": False, + "with_zstd": False, } @property def _min_cppstd(self): + if Version(self.version) >= 19: + return 17 return 14 @property def _compilers_minimum_version(self): - return { + return {14: { "apple-clang": "10", - "clang": "7", - "gcc": "7", + "clang": "3.4", + "gcc": "5", "msvc": "191", "Visual Studio": "15", - } + }, 17: { + "apple-clang": "10", + "clang": "6", + "gcc": "7", + "msvc": "192", + "Visual Studio": "16", + }, + }.get(self._min_cppstd, {}) def export_sources(self): export_conandata_patches(self) @@ -143,6 +231,12 @@ def config_options(self): if self.settings.os == "Windows": del self.options.fPIC del self.options.with_libedit # not supported on windows + if Version(self.version) < 15: + # Added by https://reviews.llvm.org/D128465 + del self.options.with_zstd + if Version(self.version) >= 19: + # removed in https://github.com/llvm/llvm-project/commit/852aaf54071ad072335dcac57f544d4da34c875a + del self.options.with_terminfo def configure(self): if self.options.shared: @@ -155,7 +249,7 @@ def layout(self): def requirements(self): if self.options.with_ffi: - self.requires("libffi/3.4.4") + self.requires("libffi/3.4.6") if self.options.get_safe("with_libedit"): self.requires("editline/3.1") if self.options.with_zlib: @@ -164,9 +258,12 @@ def requirements(self): self.requires("libxml2/[>=2.12.5 <3]") if self.options.with_z3: self.requires("z3/4.13.0") + if self.options.get_safe("with_zstd"): + self.requires("zstd/1.5.6") def build_requirements(self): self.tool_requires(f"ninja/{os.environ['ASWF_NINJA_VERSION']}@{self.user}/ci_common{os.environ['CI_COMMON_VERSION']}") + self.tool_requires("cmake/[>=3.20 <4]") # required by LLVM 19 def validate(self): if self.settings.compiler.cppstd: @@ -180,12 +277,10 @@ def validate(self): if self.options.shared: if self.settings.os == "Windows": raise ConanInvalidConfiguration("Shared builds are currently not supported on Windows") - if is_apple_os(self): + if is_apple_os(self) and self.options.with_xml2 and bool(self.dependencies["libxml2"].options.iconv): # FIXME iconv contains duplicate symbols in the libiconv and libcharset libraries (both of which are # provided by libiconv). This may be an issue with how conan packages libiconv - iconv_dep = self.dependencies.get("libiconv") - if iconv_dep and not iconv_dep.options.shared: - raise ConanInvalidConfiguration("Static iconv cannot be linked into a shared library on macos " + raise ConanInvalidConfiguration("iconv cannot be linked into the shared LLVM library on macos " "due to duplicate symbols. Use libxml2/*:iconv=False.") if self.options.exceptions and not self.options.rtti: @@ -207,7 +302,13 @@ def validate_build(self): raise ConanInvalidConfiguration("Shared Debug build is not supported on CCI due to resource limitations") def source(self): - get(self, **self.conan_data["sources"][self.version], strip_root=True) + sources = self.conan_data["sources"][self.version] + if Version(self.version) < 15: + get(self, **sources, strip_root=True) + else: + # LLVM >=15 split up several components in its release, including cmake + get(self, **sources["llvm"], destination='llvm-main', strip_root=True) + get(self, **sources["cmake"], destination='cmake', strip_root=True) def _apply_resource_limits(self, cmake_definitions): if os.getenv("CONAN_CENTER_BUILD_SERVICE"): @@ -239,6 +340,7 @@ def generate(self): tc = CMakeToolchain(self, generator="Ninja") # https://releases.llvm.org/12.0.0/docs/CMake.html # https://releases.llvm.org/13.0.0/docs/CMake.html + # https://releases.llvm.org/19.1.0/docs/CMake.html cmake_variables = { # Enables LLVM to find conan libraries during try_compile "CMAKE_TRY_COMPILE_CONFIGURATION": str(self.settings.build_type), @@ -252,6 +354,7 @@ def generate(self): "LLVM_LINK_LLVM_DYLIB": self.options.shared, "LLVM_DYLIB_COMPONENTS": self.options.components, "LLVM_ABI_BREAKING_CHECKS": "WITH_ASSERTS", + "LLVM_INCLUDE_BENCHMARKS": False, "LLVM_INCLUDE_TOOLS": True, "LLVM_INCLUDE_EXAMPLES": False, "LLVM_INCLUDE_TESTS": False, @@ -270,9 +373,13 @@ def generate(self): "LLVM_ENABLE_FFI": self.options.with_ffi, "LLVM_ENABLE_ZLIB": "FORCE_ON" if self.options.with_zlib else False, "LLVM_ENABLE_LIBXML2": "FORCE_ON" if self.options.with_xml2 else False, - "LLVM_ENABLE_TERMINFO": self.options.with_terminfo, "LLVM_ENABLE_ZSTD": False # ASWF: remove zstd dependency } + if Version(self.version) < 19: + cmake_variables["LLVM_ENABLE_TERMINFO"] = self.options.get_safe("with_terminfo") + else: + cmake_variables["LLVM_ENABLE_ZSTD"] = "FORCE_ON" if self.options.get_safe("with_zstd") else False + if self.options.targets != "all": cmake_variables["LLVM_TARGETS_TO_BUILD"] = self.options.targets @@ -285,7 +392,7 @@ def generate(self): if not self.options.shared: cmake_variables.update({ "DISABLE_LLVM_LINK_LLVM_DYLIB": True, - "LLVM_ENABLE_PIC": self.options.get_safe("fPIC", default=True), + "LLVM_ENABLE_PIC": self.options.get_safe("fPIC", default=True) }) if self.options.use_sanitizer == "None": @@ -295,7 +402,7 @@ def generate(self): if self.settings.os == "Linux": # ASWF: Older LLVM versions need to know where DTS gcc is installed. But clang 19 deprecates GCC_INSTALL_DIR - if Version(self.version) < "18" and compiler == "gcc": + if Version(self.version) < "18" and self.settings.compiler == "gcc": cmake_variables["GCC_INSTALL_PREFIX"] = os.environ["GCC_INSTALL_PREFIX"] # Workaround for: https://github.com/conan-io/conan/issues/13560 libdirs_host = [l for dependency in self.dependencies.host.values() for l in dependency.cpp_info.aggregated_components().libdirs] @@ -310,80 +417,52 @@ def generate(self): tc = CMakeDeps(self) tc.generate() + deps = CMakeDeps(self) + deps.generate() + + @property + def _graphviz_file(self): + return PurePosixPath(self.build_folder) / "llvm-core.dot" + def build(self): apply_conandata_patches(self) cmake = CMake(self) - cmake.configure(build_script_folder="llvm") + graphviz_args = [f"--graphviz={self._graphviz_file}"] + + # components not exported or not of interest + exclude_patterns = [ + "LLVMTableGenGlobalISel.*", + "CONAN_LIB.*", + "LLVMExegesis.*", + "LLVMCFIVerify.*" + ] + graphviz_options = textwrap.dedent(f""" + set(GRAPHVIZ_EXECUTABLES OFF) + set(GRAPHVIZ_MODULE_LIBS OFF) + set(GRAPHVIZ_OBJECT_LIBS OFF) + set(GRAPHVIZ_IGNORE_TARGETS "{';'.join(exclude_patterns)}") + """) + save(self, PurePosixPath(self.build_folder) / "CMakeGraphVizOptions.cmake", graphviz_options) + if Version(self.version) < 18: + cmake.configure(build_script_folder="llvm-main/llvm", cli_args=graphviz_args) # ASWF: building llvm + clang + else: + cmake.configure(build_script_folder="llvm-main/llvm", cli_args=graphviz_args) # ASWF: building llvm + clang cmake.build() @property def _package_folder_path(self): - return Path(self.package_folder) - - def _update_component_dependencies(self, components): - def _sanitized_components(deps_list): - match_genex = re.compile(r"""\\\$""") - replacements = { - "LibXml2::LibXml2": "libxml2::libxml2", - "ZLIB::ZLIB": "zlib::zlib" - } - for dep in deps_list.split(";"): - match = match_genex.search(dep) - if match: - yield match.group(1) - else: - replacement = replacements.get(dep) - if replacement: - yield replacement - elif dep.startswith("-l"): - yield dep[2:] - else: - yield dep - - def _parse_deps(deps_list): - data = { - "requires": [], - "system_libs": [] - } - windows_system_libs = [ - "ole32", - "delayimp", - "shell32", - "advapi32", - "-delayload:shell32.dll", - "uuid", - "psapi", - "-delayload:ole32.dll" - ] - for component in _sanitized_components(deps_list): - if component in windows_system_libs: - continue - if component in ["rt", "m", "dl", "pthread"]: - data["system_libs"].append(component) - else: - data["requires"].append(component) - return data - - # Can't use tools.files.load due to CRLF endings on Windows causing issues with Regular Expressions - cmake_exports = (self._package_folder_path / "lib64" / "cmake" / "llvm" / "LLVMExports.cmake").read_text("utf-8") - match_dependencies = re.compile( - r'''^set_target_properties\((\w+).*\n?\s*INTERFACE_LINK_LIBRARIES\s+"(\S+)"''', re.MULTILINE) - - for llvm_lib, dependencies in match_dependencies.findall(cmake_exports): - if llvm_lib in components: - components[llvm_lib].update(_parse_deps(dependencies)) + return PurePosixPath(self.package_folder) - def _llvm_build_info(self): - cmake_config = (self._package_folder_path / "lib64" / "cmake" / "llvm" / "LLVMConfig.cmake").read_text("utf-8") + @property + def _llvm_source_folder_path(self): + if (Version(self.version) < 18): + return PurePosixPath(self.source_folder) - match_cmake_var = re.compile(r"""^set\(LLVM_AVAILABLE_LIBS (?P.*)\)$""", re.MULTILINE) - match = match_cmake_var.search(cmake_config) - if match is None: - self.output.warning("Could not find components in LLVMConfig.cmake") - return None + return PurePosixPath(self.source_folder) / "llvm-main" - components = {component: {} for component in match.groupdict()["components"].split(";")} - self._update_component_dependencies(components) + def _llvm_build_info(self): + cmake_config = Path(self._package_folder_path / "lib64" / "cmake" / "llvm" / "LLVMConfig.cmake").read_text("utf-8") # ASWF: cmake modules in lib64 + components = components_from_dotfile(load(self, self._graphviz_file)) return { "components": components, @@ -392,7 +471,7 @@ def _llvm_build_info(self): @property def _cmake_module_path(self): - return Path("lib64") / "cmake" / "llvm" + return PurePosixPath("lib64") / "cmake" / "llvm" #ASWF: cmake modules in lib64 @property def _build_info_file(self): @@ -411,6 +490,7 @@ def _create_cmake_build_module(self, build_info, module_file): set(LLVM_AVAILABLE_LIBS "{';'.join(build_info['components'].keys())}") set(LLVM_BUILD_TYPE "{self.settings.build_type}") set(LLVM_CMAKE_DIR "${{CMAKE_CURRENT_LIST_DIR}}") + list(APPEND CMAKE_MODULE_DIR ${{CMAKE_CURRENT_LIST_DIR}}) set(LLVM_ALL_TARGETS "{self._all_targets}") set(LLVM_TARGETS_TO_BUILD "{self._targets_to_build}") set(LLVM_TARGETS_WITH_JIT "{';'.join(targets_with_jit)}") @@ -441,38 +521,38 @@ def _read_build_info(self) -> dict: return json.load(fp) def package(self): - copy(self, "LICENSE.TXT", self.source_folder, (self._package_folder_path / "licenses" / self.name).as_posix()) + # ASWF: license files in package specific folder + copy(self, "LICENSE.TXT", self._llvm_source_folder_path, self._package_folder_path / "licenses" / self.name) cmake = CMake(self) cmake.install() build_info = self._write_build_info() cmake_folder = self._package_folder_path / "lib64" / "cmake" / "llvm" - cmake_folder_posix = cmake_folder.as_posix() - # rm(self, "LLVMConfig.cmake", cmake_folder_posix) - # rm(self, "LLVMExports*", cmake_folder_posix) - # rm(self, "Find*", cmake_folder_posix) - rm(self, "*.pdb", (self._package_folder_path / "lib64").as_posix()) - rm(self, "*.pdb", (self._package_folder_path / "bin").as_posix()) + # rm(self, "LLVMConfig.cmake", cmake_folder) + # rm(self, "LLVMExports*", cmake_folder) + # rm(self, "Find*", cmake_folder) + rm(self, "*.pdb", self._package_folder_path / "lib64") + rm(self, "*.pdb", self._package_folder_path / "bin") # need to rename this as Conan will flag it, but it's not actually a Config file and is needed by # downstream packages - rename(self, (cmake_folder / "LLVM-Config.cmake").as_posix(), (cmake_folder / "LLVM-ConfigInternal.cmake").as_posix()) - replace_in_file(self, (cmake_folder / "AddLLVM.cmake").as_posix(), "LLVM-Config", "LLVM-ConfigInternal") + rename(self, cmake_folder / "LLVM-Config.cmake", cmake_folder / "LLVM-ConfigInternal.cmake") + replace_in_file(self, cmake_folder / "AddLLVM.cmake", "LLVM-Config", "LLVM-ConfigInternal") replace_in_file(self, (cmake_folder / "LLVMConfig.cmake").as_posix(), "LLVM-Config", "LLVM-ConfigInternal") - rmdir(self, (self._package_folder_path / "share").as_posix()) + rmdir(self, self._package_folder_path / "share") if self.options.shared: - rm(self, "*.a", (self._package_folder_path / "lib64").as_posix()) + rm(self, "*.a", self._package_folder_path / "lib64") # ASWF self._create_cmake_build_module( build_info, - (self._package_folder_path / self._build_module_file_rel_path).as_posix() + self._package_folder_path / self._build_module_file_rel_path ) def package_info(self): self.cpp_info.set_property("cmake_file_name", "LLVM") self.cpp_info.set_property("cmake_build_modules", [self._build_module_file_rel_path, - (self._cmake_module_path / "LLVM-ConfigInternal.cmake").as_posix()] + self._cmake_module_path / "LLVM-ConfigInternal.cmake"] ) self.cpp_info.builddirs.append(self._cmake_module_path) @@ -483,12 +563,8 @@ def package_info(self): for component_name, data in components.items(): self.cpp_info.components[component_name].set_property("cmake_target_name", component_name) self.cpp_info.components[component_name].libs = [component_name] - requires = data.get("requires") - if requires is not None: - self.cpp_info.components[component_name].requires += requires - system_libs = data.get("system_libs") - if system_libs is not None: - self.cpp_info.components[component_name].system_libs += system_libs + self.cpp_info.components[component_name].requires = data["requires"] + self.cpp_info.components[component_name].system_libs = data["system_libs"] else: self.cpp_info.set_property("cmake_target_name", "LLVM") self.cpp_info.libs = collect_libs(self) diff --git a/packages/conan/recipes/clang/patches/19x/0000-cmake-dependencies.patch b/packages/conan/recipes/clang/patches/19x/0000-cmake-dependencies.patch new file mode 100644 index 00000000..b7de008c --- /dev/null +++ b/packages/conan/recipes/clang/patches/19x/0000-cmake-dependencies.patch @@ -0,0 +1,93 @@ +diff --git a/cmake/config-ix.cmake b/cmake/config-ix.cmake +index 0aae13e30f2a..c87f22d28dc6 100644 +--- a/cmake/config-ix.cmake ++++ b/cmake/config-ix.cmake +@@ -137,7 +137,7 @@ if(LLVM_ENABLE_ZLIB) + # library on a 64-bit system which would result in a link-time failure. + cmake_push_check_state() + list(APPEND CMAKE_REQUIRED_INCLUDES ${ZLIB_INCLUDE_DIRS}) +- list(APPEND CMAKE_REQUIRED_LIBRARIES ${ZLIB_LIBRARY}) ++ list(APPEND CMAKE_REQUIRED_LIBRARIES ${ZLIB_LIBRARIES}) + check_symbol_exists(compress2 zlib.h HAVE_ZLIB) + cmake_pop_check_state() + if(LLVM_ENABLE_ZLIB STREQUAL FORCE_ON AND NOT HAVE_ZLIB) +@@ -232,11 +232,11 @@ if(NOT LLVM_USE_SANITIZER MATCHES "Memory.*") + # Skip libedit if using ASan as it contains memory leaks. + if (LLVM_ENABLE_LIBEDIT AND NOT LLVM_USE_SANITIZER MATCHES ".*Address.*") + if(LLVM_ENABLE_LIBEDIT STREQUAL FORCE_ON) +- find_package(LibEdit REQUIRED) ++ find_package(editline REQUIRED) + else() +- find_package(LibEdit) ++ find_package(editline) + endif() +- set(HAVE_LIBEDIT "${LibEdit_FOUND}") ++ set(HAVE_LIBEDIT "${editline_FOUND}") + else() + set(HAVE_LIBEDIT 0) + endif() +diff --git a/lib/LineEditor/CMakeLists.txt b/lib/LineEditor/CMakeLists.txt +index c4cd91cbb0cd..b95d073d9725 100644 +--- a/lib/LineEditor/CMakeLists.txt ++++ b/lib/LineEditor/CMakeLists.txt +@@ -1,5 +1,5 @@ + if(HAVE_LIBEDIT) +- set(link_libs LibEdit::LibEdit) ++ set(link_libs editline::editline) + endif() + + add_llvm_component_library(LLVMLineEditor +diff --git a/lib/Support/CMakeLists.txt b/lib/Support/CMakeLists.txt +index f653379e3033..4cb691de3027 100644 +--- a/lib/Support/CMakeLists.txt ++++ b/lib/Support/CMakeLists.txt +@@ -301,27 +301,13 @@ set(llvm_system_libs ${system_libs}) + # This block is only needed for llvm-config. When we deprecate llvm-config and + # move to using CMake export, this block can be removed. + if(LLVM_ENABLE_ZLIB) +- # CMAKE_BUILD_TYPE is only meaningful to single-configuration generators. +- if(CMAKE_BUILD_TYPE) +- string(TOUPPER ${CMAKE_BUILD_TYPE} build_type) +- get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION_${build_type}) +- endif() +- if(NOT zlib_library) +- get_property(zlib_library TARGET ZLIB::ZLIB PROPERTY LOCATION) +- endif() ++ set(zlib_library ${ZLIB_LIBRARIES}) + get_library_name(${zlib_library} zlib_library) + set(llvm_system_libs ${llvm_system_libs} "${zlib_library}") + endif() + + if(LLVM_ENABLE_ZSTD) +- # CMAKE_BUILD_TYPE is only meaningful to single-configuration generators. +- if(CMAKE_BUILD_TYPE) +- string(TOUPPER ${CMAKE_BUILD_TYPE} build_type) +- get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION_${build_type}) +- endif() +- if(NOT zstd_library) +- get_property(zstd_library TARGET ${zstd_target} PROPERTY LOCATION) +- endif() ++ set(zstd_library ${zstd_LIBRARIES}) + if (zstd_target STREQUAL zstd::libzstd_shared) + get_library_name(${zstd_library} zstd_library) + set(llvm_system_libs ${llvm_system_libs} "${zstd_library}") +diff --git a/lib/WindowsManifest/CMakeLists.txt b/lib/WindowsManifest/CMakeLists.txt +index 910132a4c7de..f4d91c9d56da 100644 +--- a/lib/WindowsManifest/CMakeLists.txt ++++ b/lib/WindowsManifest/CMakeLists.txt +@@ -21,14 +21,7 @@ add_llvm_component_library(LLVMWindowsManifest + # This block is only needed for llvm-config. When we deprecate llvm-config and + # move to using CMake export, this block can be removed. + if(LLVM_ENABLE_LIBXML2) +- # CMAKE_BUILD_TYPE is only meaningful to single-configuration generators. +- if(CMAKE_BUILD_TYPE) +- string(TOUPPER ${CMAKE_BUILD_TYPE} build_type) +- get_property(libxml2_library TARGET LibXml2::LibXml2 PROPERTY LOCATION_${build_type}) +- endif() +- if(NOT libxml2_library) +- get_property(libxml2_library TARGET LibXml2::LibXml2 PROPERTY LOCATION) +- endif() ++ set(libxml2_library ${libxml2_LIBRARIES}) + get_library_name(${libxml2_library} libxml2_library) + set_property(TARGET LLVMWindowsManifest PROPERTY LLVM_SYSTEM_LIBS ${libxml2_library}) + endif() diff --git a/packages/conan/recipes/clang/patches/dummy.diff b/packages/conan/recipes/clang/patches/dummy.diff deleted file mode 100644 index e69de29b..00000000 diff --git a/packages/conan/recipes/cmake/conandata.yml b/packages/conan/recipes/cmake/conandata.yml index c9bc80ec..7cdc9ce2 100644 --- a/packages/conan/recipes/cmake/conandata.yml +++ b/packages/conan/recipes/cmake/conandata.yml @@ -62,3 +62,6 @@ sources: "3.31.7": url: "https://github.com/Kitware/CMake/releases/download/v3.31.7/cmake-3.31.7.tar.gz" sha256: "a6d2eb1ebeb99130dfe63ef5a340c3fdb11431cce3d7ca148524c125924cea68" + "4.0.2": + url: "https://github.com/Kitware/CMake/releases/download/v4.0.2/cmake-4.0.2.tar.gz" + sha256: "1c3a82c8ca7cf12e0b17178f9d0c32f7ac773bd5651a98fcfd80fbf4977f8d48" diff --git a/packages/conan/recipes/cpython/conandata.yml b/packages/conan/recipes/cpython/conandata.yml index e6f4a520..e05cff5d 100644 --- a/packages/conan/recipes/cpython/conandata.yml +++ b/packages/conan/recipes/cpython/conandata.yml @@ -5,17 +5,18 @@ # From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/cpython/all/conandata.yml sources: - 3.11.10: - url: "https://www.python.org/ftp/python/3.11.10/Python-3.11.10.tgz" - sha256: "92f2faf242681bfa406d53a51e17d42c5373affe23a130cd9697e132ef574706" - -sources: + "3.13.3": + url: "https://www.python.org/ftp/python/3.13.3/Python-3.13.3.tgz" + sha256: "988d735a6d33568cbaff1384a65cb22a1fb18a9ecb73d43ef868000193ce23ed" "3.12.7": url: "https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz" sha256: "73ac8fe780227bf371add8373c3079f42a0dc62deff8d612cd15a618082ab623" "3.12.2": url: "https://www.python.org/ftp/python/3.12.2/Python-3.12.2.tgz" sha256: "a7c4f6a9dc423d8c328003254ab0c9338b83037bd787d680826a5bf84308116e" + "3.11.13": + url: "https://www.python.org/ftp/python/3.11.13/Python-3.11.13.tgz" + sha256: "0f1a22f4dfd34595a29cf69ee7ea73b9eff8b1cc89d7ab29b3ab0ec04179dad8" "3.11.12": url: "https://www.python.org/ftp/python/3.11.12/Python-3.11.12.tgz" sha256: "379c9929a989a9d65a1f5d854e011f4872b142259f4fc0a8c4062d2815ed7fba" @@ -53,6 +54,13 @@ sources: url: "https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz" sha256: "d62e3015f2f89c970ac52343976b406694931742fbde2fed8d1ce8ebb4e1f8ff" patches: + "3.13.3": + - patch_file: "patches/3.13/3.13.0-0002-remove-module-deps.patch" + patch_description: "Remove section of solution file forcing projects to be built that might not be used for this recipe" + patch_type: "conan" + - patch_file: "patches/3.13/3.13.0-0003-relocatable-python-config.patch" + patch_description: "Allow package to be relocatable" + patch_type: "conan" "3.12.7": - patch_file: "patches/3.9/3.9.7-0002-_msi-vcxproj.patch" patch_description: "Fix ARM/ARM64 mismatch in project file" diff --git a/packages/conan/recipes/cpython/conanfile.py b/packages/conan/recipes/cpython/conanfile.py index 3c1d0bae..2d8c8517 100644 --- a/packages/conan/recipes/cpython/conanfile.py +++ b/packages/conan/recipes/cpython/conanfile.py @@ -3,6 +3,7 @@ # SPDX-License-Identifier: MIT # # From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/cpython/all/conanfile.py +# With 3.13 patches from https://github.com/conan-io/conan-center-index/pull/25536 import os import re @@ -11,7 +12,7 @@ from conan import ConanFile from conan.errors import ConanInvalidConfiguration from conan.tools.apple import is_apple_os, fix_apple_shared_install_name -from conan.tools.env import VirtualRunEnv +from conan.tools.env import VirtualRunEnv, Environment from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, load, mkdir, replace_in_file, rm, rmdir, save, unzip, download from conan.tools.gnu import Autotools, AutotoolsToolchain, AutotoolsDeps, PkgConfigDeps from conan.tools.layout import basic_layout @@ -125,17 +126,21 @@ def requirements(self): if Version(self.version) < "3.10" or is_apple_os(self): # FIXME: mpdecimal > 2.5.0 on MacOS causes the _decimal module to not be importable self.requires("mpdecimal/2.5.0") - else: + elif Version(self.version) < "3.13": self.requires("mpdecimal/2.5.1") + else: + self.requires("mpdecimal/4.0.0") if self.settings.os != "Windows": if not is_apple_os(self): self.requires("util-linux-libuuid/2.39.2") - # In <3.9 and lower patch versions of 3.9/10/11, crypt.h was exposed in Python.h - # This was removed in 3.11 and backported: https://github.com/python/cpython/issues/88914 - # For the sake of this recipe, we only have later patch versions, so this version check - # may be slightly inaccurate if a lower patch version is desired. - transitive_crypt = Version(self.version) < "3.9" - self.requires("libxcrypt/4.4.36", transitive_headers=transitive_crypt, transitive_libs=transitive_crypt) + if Version(self.version) < "3.13": + # In <3.9 and lower patch versions of 3.9/10/11, crypt.h was exposed in Python.h + # This was removed in 3.11 and backported: https://github.com/python/cpython/issues/88914 + # For the sake of this recipe, we only have later patch versions, so this version check + # may be slightly inaccurate if a lower patch version is desired. + # This dependency is removed entirely in 3.13. + transitive_crypt = Version(self.version) < "3.9" + self.requires("libxcrypt/4.4.36", transitive_headers=transitive_crypt, transitive_libs=transitive_crypt) if self.options.get_safe("with_bz2"): self.requires("bzip2/1.0.8") if self.options.get_safe("with_gdbm", False): @@ -195,8 +200,9 @@ def validate(self): if self.dependencies["mpdecimal"].ref.version < Version("2.5.0"): raise ConanInvalidConfiguration("cpython 3.9.0 (and newer) requires (at least) mpdecimal 2.5.0") - if self.settings.compiler == "gcc" and Version(self.settings.compiler.version).major == 9 and Version(self.version) >= "3.12": - raise ConanInvalidConfiguration("FIXME: GCC 9 produces an internal compiler error locally, and a link error in CCI") + # TEMPORARY: Merge https://github.com/conan-io/conan-center-index/pull/25890 first + if self.settings.os == "Windows" and self._supports_modules and self.dependencies["mpdecimal"].options.shared: + raise ConanInvalidConfiguration("TEMPORARY: Merge https://github.com/conan-io/conan-center-index/pull/25890 first") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -344,13 +350,21 @@ def _patch_msvc_projects(self): replace_in_file(self, self._msvc_project_path("_ssl"), '', "") # For mpdecimal, we need to remove all headers and all c files *except* the main module file, _decimal.c - self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\.\.\\Modules\\_decimal\\.*\.h.*', "") - self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\.\.\\Modules\\_decimal\\libmpdec\\.*\.c.*', "") + if Version(self.version) < "3.13": + self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\.\.\\Modules\\_decimal\\.*\.h.*', "") + self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\.\.\\Modules\\_decimal\\libmpdec\\.*\.c.*', "") + # Remove extra include directory + replace_in_file(self, self._msvc_project_path("_decimal"), r"..\Modules\_decimal\libmpdec;", "") + else: + # https://github.com/python/cpython/commit/849e0716d378d6f9f724d1b3c386f6613d52a49d + # changed _decimal.vcxproj enough that we need different patching code. + self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\.\.\\Modules\\_decimal\\windows\\.*\.h.*', "") + self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\$\(mpdecimalDir\)\\libmpdec\\.*\.h.*', "") + self._regex_replace_in_file(self._msvc_project_path("_decimal"), r'.*Include=\"\$\(mpdecimalDir\)\\libmpdec\\.*\.c.*', "") + replace_in_file(self, self._msvc_project_path("_decimal"), r"..\Modules\_decimal\windows;$(mpdecimalDir)\libmpdec;", "") # There is also an assembly file with a complicated build step as part of the mpdecimal build replace_in_file(self, self._msvc_project_path("_decimal"), "", "-->") - # Remove extra include directory - replace_in_file(self, self._msvc_project_path("_decimal"), r"..\Modules\_decimal\libmpdec;", "") # Don't include vendored sqlite3 replace_in_file(self, self._msvc_project_path("_sqlite3"), @@ -796,9 +810,16 @@ def package(self): # ASWF: how do you convince pip to write to lib64 instead of lib? py_version = Version(self.version) py_exe = os.path.join(self.package_folder, "bin", f"python{py_version.major}.{py_version.minor}") - self.run(f"{py_exe} -m pip install nose coverage docutils epydoc") + py_lib = os.path.join(self.package_folder, "lib64") + py_home = os.path.join(self.package_folder, "lib64", f"python{py_version.major}.{py_version.minor}") + env = Environment() + env.define("PYTHONPATH", py_home) + env.prepend("LD_LIBRARY_PATH", py_lib, separator=os.pathsep) + envvars = env.vars(self,scope=None) + envvars.save_script("set_python_home") + self.run(f"{py_exe} -m pip install nose coverage docutils epydoc", env=["set_python_home"]) if self.options.get_safe("with_numpy"): - self.run(f"{py_exe} -m pip install numpy=={os.environ['ASWF_NUMPY_VERSION']}") + self.run(f"{py_exe} -m pip install numpy=={os.environ['ASWF_NUMPY_VERSION']}", env=["set_python_home"]) fix_apple_shared_install_name(self) @@ -869,7 +890,7 @@ def package_info(self): ["pathcch", "shlwapi", "version", "ws2_32"] ) self.cpp_info.components["python"].requires = ["zlib::zlib"] - if self.settings.os != "Windows": + if self.settings.os != "Windows" and Version(self.version) < "3.13": self.cpp_info.components["python"].requires.append("libxcrypt::libxcrypt") self.cpp_info.components["python"].set_property( "pkg_config_name", f"python-{py_version.major}.{py_version.minor}" @@ -910,7 +931,8 @@ def package_info(self): if self.settings.os != "Windows": if not is_apple_os(self): self.cpp_info.components["_hidden"].requires.append("util-linux-libuuid::util-linux-libuuid") - self.cpp_info.components["_hidden"].requires.append("libxcrypt::libxcrypt") + if Version(self.version) < "3.13": + self.cpp_info.components["_hidden"].requires.append("libxcrypt::libxcrypt") if self.options.with_bz2: self.cpp_info.components["_hidden"].requires.append("bzip2::bzip2") if self.options.get_safe("with_gdbm", False): diff --git a/packages/conan/recipes/cpython/patches/3.13/3.13.0-0002-remove-module-deps.patch b/packages/conan/recipes/cpython/patches/3.13/3.13.0-0002-remove-module-deps.patch new file mode 100644 index 00000000..7b918d63 --- /dev/null +++ b/packages/conan/recipes/cpython/patches/3.13/3.13.0-0002-remove-module-deps.patch @@ -0,0 +1,50 @@ +diff --git a/PCbuild/pcbuild.sln b/PCbuild/pcbuild.sln +index bdddec60da..f6a30955bf 100644 +--- a/PCbuild/pcbuild.sln ++++ b/PCbuild/pcbuild.sln +@@ -9,45 +9,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution + EndProjectSection + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "python", "python.vcxproj", "{B11D750F-CD1F-4A96-85CE-E69A5C5259F9}" +- ProjectSection(ProjectDependencies) = postProject +- {01FDF29A-40A1-46DF-84F5-85EBBD2A2410} = {01FDF29A-40A1-46DF-84F5-85EBBD2A2410} +- {0E9791DB-593A-465F-98BC-681011311617} = {0E9791DB-593A-465F-98BC-681011311617} +- {0E9791DB-593A-465F-98BC-681011311618} = {0E9791DB-593A-465F-98BC-681011311618} +- {12728250-16EC-4DC6-94D7-E21DD88947F8} = {12728250-16EC-4DC6-94D7-E21DD88947F8} +- {13CECB97-4119-4316-9D42-8534019A5A44} = {13CECB97-4119-4316-9D42-8534019A5A44} +- {16BFE6F0-22EF-40B5-B831-7E937119EF10} = {16BFE6F0-22EF-40B5-B831-7E937119EF10} +- {17E1E049-C309-4D79-843F-AE483C264AEA} = {17E1E049-C309-4D79-843F-AE483C264AEA} +- {18CAE28C-B454-46C1-87A0-493D91D97F03} = {18CAE28C-B454-46C1-87A0-493D91D97F03} +- {2097F1C1-597C-4167-93E3-656A7D6339B2} = {2097F1C1-597C-4167-93E3-656A7D6339B2} +- {28B5D777-DDF2-4B6B-B34F-31D938813856} = {28B5D777-DDF2-4B6B-B34F-31D938813856} +- {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781} = {36D0C52C-DF4E-45D0-8BC7-E294C3ABC781} +- {384C224A-7474-476E-A01B-750EA7DE918C} = {384C224A-7474-476E-A01B-750EA7DE918C} +- {447F05A8-F581-4CAC-A466-5AC7936E207E} = {447F05A8-F581-4CAC-A466-5AC7936E207E} +- {4946ECAC-2E69-4BF8-A90A-F5136F5094DF} = {4946ECAC-2E69-4BF8-A90A-F5136F5094DF} +- {494BAC80-A60C-43A9-99E7-ACB691CE2C4D} = {494BAC80-A60C-43A9-99E7-ACB691CE2C4D} +- {54B1431F-B86B-4ACB-B28C-88BCF93191D8} = {54B1431F-B86B-4ACB-B28C-88BCF93191D8} +- {6901D91C-6E48-4BB7-9FEC-700C8131DF1D} = {6901D91C-6E48-4BB7-9FEC-700C8131DF1D} +- {6DAC66D9-E703-4624-BE03-49112AB5AA62} = {6DAC66D9-E703-4624-BE03-49112AB5AA62} +- {73FCD2BD-F133-46B7-8EC1-144CD82A59D5} = {73FCD2BD-F133-46B7-8EC1-144CD82A59D5} +- {78D80A15-BD8C-44E2-B49E-1F05B0A0A687} = {78D80A15-BD8C-44E2-B49E-1F05B0A0A687} +- {86937F53-C189-40EF-8CE8-8759D8E7D480} = {86937F53-C189-40EF-8CE8-8759D8E7D480} +- {885D4898-D08D-4091-9C40-C700CFE3FC5A} = {885D4898-D08D-4091-9C40-C700CFE3FC5A} +- {900342D7-516A-4469-B1AD-59A66E49A25F} = {900342D7-516A-4469-B1AD-59A66E49A25F} +- {9E48B300-37D1-11DD-8C41-005056C00008} = {9E48B300-37D1-11DD-8C41-005056C00008} +- {9EC7190A-249F-4180-A900-548FDCF3055F} = {9EC7190A-249F-4180-A900-548FDCF3055F} +- {A2697BD3-28C1-4AEC-9106-8B748639FD16} = {A2697BD3-28C1-4AEC-9106-8B748639FD16} +- {A840DDFB-ED50-484B-B527-B32E7CF90FD5} = {A840DDFB-ED50-484B-B527-B32E7CF90FD5} +- {B244E787-C445-441C-BDF4-5A4F1A3A1E51} = {B244E787-C445-441C-BDF4-5A4F1A3A1E51} +- {C6E20F84-3247-4AD6-B051-B073268F73BA} = {C6E20F84-3247-4AD6-B051-B073268F73BA} +- {CB435430-EBB1-478B-8F4E-C256F6838F55} = {CB435430-EBB1-478B-8F4E-C256F6838F55} +- {D06B6426-4762-44CC-8BAD-D79052507F2F} = {D06B6426-4762-44CC-8BAD-D79052507F2F} +- {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E} = {EB6E69DD-04BF-4543-9B92-49FAABCEAC2E} +- {ECC7CEAC-A5E5-458E-BB9E-2413CC847881} = {ECC7CEAC-A5E5-458E-BB9E-2413CC847881} +- {F749B822-B489-4CA5-A3AD-CE078F5F338A} = {F749B822-B489-4CA5-A3AD-CE078F5F338A} +- {F9D71780-F393-11E0-BE50-0800200C9A66} = {F9D71780-F393-11E0-BE50-0800200C9A66} +- {FCBE1EF2-E0F0-40B1-88B5-00A35D378742} = {FCBE1EF2-E0F0-40B1-88B5-00A35D378742} +- {FDB84CBB-2FB6-47C8-A2D6-091E0833239D} = {FDB84CBB-2FB6-47C8-A2D6-091E0833239D} +- EndProjectSection + EndProject + Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "pythoncore", "pythoncore.vcxproj", "{CF7AC3D1-E2DF-41D2-BEA6-1E2556CDEA26}" + ProjectSection(ProjectDependencies) = postProject diff --git a/packages/conan/recipes/cpython/patches/3.13/3.13.0-0003-relocatable-python-config.patch b/packages/conan/recipes/cpython/patches/3.13/3.13.0-0003-relocatable-python-config.patch new file mode 100644 index 00000000..8704135a --- /dev/null +++ b/packages/conan/recipes/cpython/patches/3.13/3.13.0-0003-relocatable-python-config.patch @@ -0,0 +1,11 @@ +--- Misc/python-config.sh.in ++++ Misc/python-config.sh.in +@@ -36,7 +36,7 @@ + # locations. Keep prefix & exec_prefix using their original values in case + # they are referenced in other configure variables, to prevent double + # substitution, issue #22140. +-prefix="@prefix@" ++prefix="$PYTHON_ROOT" + exec_prefix="@exec_prefix@" + exec_prefix_real=${prefix_real} + includedir=$(echo "@includedir@" | sed "s#$prefix#$prefix_real#") diff --git a/packages/conan/recipes/cpython/test_package/conanfile.py b/packages/conan/recipes/cpython/test_package/conanfile.py index afceade2..4472abde 100644 --- a/packages/conan/recipes/cpython/test_package/conanfile.py +++ b/packages/conan/recipes/cpython/test_package/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/cpython/all/test_package/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/d4f752a9a00040dfd8e397f3ac4eaf3be7c515ce/recipes/cpython/all/test_package/conanfile.py import os from io import StringIO @@ -72,6 +72,14 @@ def _supports_modules(self): def generate(self): tc = CMakeToolchain(self) tc.cache_variables["BUILD_MODULE"] = self._supports_modules + # ASWF: CMakeToolchain doesn't pass LD_LIBRARY_PATH to configure but we need it for gcc-toolset + # tc.presets_run_environment["LD_LIBRARY_PATH"] = os.environ["LD_LIBRARY_PATH"] + # ASWF: as per https://github.com/python/cpython/issues/95957 starting with + # version 3.11 options --with-tcltk-libs and --with-tcltk-includes are no longer + # recognized and configure relies on pkgconf to find those. Our Tcl/Tk wrapper + # packages don't provide those, inject them via TCLTK_LIBS env var + if Version(self.version) >= "3.11": + os.environ["TCLTK_LIBS"] = "-ltcl -ltk" tc.generate() deps = CMakeDeps(self) diff --git a/packages/conan/recipes/dbus/conanfile.py b/packages/conan/recipes/dbus/conanfile.py index 71ada26d..71275163 100644 --- a/packages/conan/recipes/dbus/conanfile.py +++ b/packages/conan/recipes/dbus/conanfile.py @@ -14,8 +14,7 @@ class SystemDbusConan(ConanFile): def package_info(self): self.cpp_info.includedirs = ["/usr/include/dbus-1.0"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["dbus-1"] + self.cpp_info.systemlibs = ["dbus-1"] self.cpp_info.set_property("cmake_file_name", "DBus1") self.cpp_info.set_property("cmake_target_name", "dbus-1") diff --git a/packages/conan/recipes/double-conversion/conanfile.py b/packages/conan/recipes/double-conversion/conanfile.py index 021e4517..5dae1cb8 100644 --- a/packages/conan/recipes/double-conversion/conanfile.py +++ b/packages/conan/recipes/double-conversion/conanfile.py @@ -13,9 +13,8 @@ class SystemDoubleConversionConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["double-conversion"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["double-conversion"] self.cpp_info.set_property("cmake_file_name", "double-conversion") self.cpp_info.set_property("cmake_target_name", "double-conversion::double-conversion") diff --git a/packages/conan/recipes/expat/conandata.yml b/packages/conan/recipes/expat/conandata.yml index 70605fb1..e778c92a 100644 --- a/packages/conan/recipes/expat/conandata.yml +++ b/packages/conan/recipes/expat/conandata.yml @@ -1,4 +1,13 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/expat/all/conandata.yml + sources: + "2.7.1": + url: "https://github.com/libexpat/libexpat/releases/download/R_2_7_1/expat-2.7.1.tar.xz" + sha256: "354552544b8f99012e5062f7d570ec77f14b412a3ff5c7d8d0dae62c0d217c30" "2.6.4": url: "https://github.com/libexpat/libexpat/releases/download/R_2_6_4/expat-2.6.4.tar.xz" sha256: "a695629dae047055b37d50a0ff4776d1d45d0a4c842cf4ccee158441f55ff7ee" diff --git a/packages/conan/recipes/expat/conanfile.py b/packages/conan/recipes/expat/conanfile.py index d9ada5ec..893899ef 100644 --- a/packages/conan/recipes/expat/conanfile.py +++ b/packages/conan/recipes/expat/conanfile.py @@ -1,6 +1,8 @@ # Copyright (c) Contributors to the conan-center-index Project. All rights reserved. # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/expat/all/conanfile.py from conan import ConanFile from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout diff --git a/packages/conan/recipes/expat/test_package/CMakeLists.txt b/packages/conan/recipes/expat/test_package/CMakeLists.txt index 5129dd0d..9805f616 100644 --- a/packages/conan/recipes/expat/test_package/CMakeLists.txt +++ b/packages/conan/recipes/expat/test_package/CMakeLists.txt @@ -1,4 +1,10 @@ -cmake_minimum_required(VERSION 3.1) +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/expat/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(expat REQUIRED CONFIG) diff --git a/packages/conan/recipes/fmt/conandata.yml b/packages/conan/recipes/fmt/conandata.yml index fbb4ff80..dd811bc1 100644 --- a/packages/conan/recipes/fmt/conandata.yml +++ b/packages/conan/recipes/fmt/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/b96b04ffad873992cbcfb98f0d84f6f44beb169d/recipes/fmt/all/conandata.yml sources: + "11.2.0": + url: "https://github.com/fmtlib/fmt/releases/download/11.2.0/fmt-11.2.0.zip" + sha256: "203eb4e8aa0d746c62d8f903df58e0419e3751591bb53ff971096eaa0ebd4ec3" "11.1.4": url: "https://github.com/fmtlib/fmt/releases/download/11.1.4/fmt-11.1.4.zip" sha256: "49b039601196e1a765e81c5c9a05a61ed3d33f23b3961323d7322e4fe213d3e6" diff --git a/packages/conan/recipes/fontconfig/conanfile.py b/packages/conan/recipes/fontconfig/conanfile.py index 1802afd3..ae6f9dee 100644 --- a/packages/conan/recipes/fontconfig/conanfile.py +++ b/packages/conan/recipes/fontconfig/conanfile.py @@ -13,9 +13,8 @@ class SystemFontconfigConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["fontconfig"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["fontconfig"] self.cpp_info.set_property("cmake_file_name", "Fontconfig") self.cpp_info.set_property("cmake_target_name", "Fontconfig::Fontconfig") diff --git a/packages/conan/recipes/gdbm/conanfile.py b/packages/conan/recipes/gdbm/conanfile.py index 22ddd621..3c31d5fe 100644 --- a/packages/conan/recipes/gdbm/conanfile.py +++ b/packages/conan/recipes/gdbm/conanfile.py @@ -10,9 +10,8 @@ class SystemGdbmConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["gdbm", "gdbm_compat"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["gdbm", "gdbm_compat"] self.cpp_info.set_property("cmake_file_name", "gdbm") self.cpp_info.set_property("cmake_target_name", "gdbm::gdbm") diff --git a/packages/conan/recipes/giflib/conanfile.py b/packages/conan/recipes/giflib/conanfile.py index 9b28ae27..3ad61162 100644 --- a/packages/conan/recipes/giflib/conanfile.py +++ b/packages/conan/recipes/giflib/conanfile.py @@ -5,13 +5,20 @@ # From: https://github.com/conan-io/conan-center-index/blob/f83ca9df2f14d01f49b186cb279740c295ae09c9/recipes/giflib/5.1.x/conanfile.py from conan import ConanFile +from conan.tools.files import load +from io import StringIO class SystemGiflibConan(ConanFile): name = "giflib" - version = "5.1.4" # For oiio recipe - settings = "os", "arch", "compiler", "build_type" - + + def set_version(self): + # giflib-devel missing a pkgconfig on RHEL + cmd = "rpm -q --qf '%{VERSION}' giflib-devel" + stdout = StringIO() + self.run(cmd, stdout=stdout) + self.version = stdout.getvalue() + def package_info(self): self.cpp_info.includedirs = ["/usr/include"] self.cpp_info.libdirs = ["/usr/lib64"] diff --git a/packages/conan/recipes/glew/conanfile.py b/packages/conan/recipes/glew/conanfile.py index 4e9a72b8..097c97f6 100644 --- a/packages/conan/recipes/glew/conanfile.py +++ b/packages/conan/recipes/glew/conanfile.py @@ -2,15 +2,16 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/glew/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/glew/all/conanfile.py from conan import ConanFile +from conan.errors import ConanInvalidConfiguration from conan.tools.apple import is_apple_os from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rm, rmdir import os -required_conan_version = ">=1.53.0" +required_conan_version = ">=2.1" class GlewConan(ConanFile): @@ -26,6 +27,7 @@ class GlewConan(ConanFile): "shared": [True, False], "fPIC": [True, False], "with_egl": [True, False], + "with_glu": ["mesa-glu", "system"] } default_options = { "shared": False, @@ -36,11 +38,23 @@ class GlewConan(ConanFile): def export_sources(self): export_conandata_patches(self) + def validate(self): + if self.options.with_glu == "mesa-glu" and (is_apple_os(self) or self.settings.os == "Windows"): + raise ConanInvalidConfiguration("mesa-glu only suppported on Linux.") + def config_options(self): if self.settings.os == "Windows": del self.options.fPIC del self.options.with_egl + if self.options.with_glu == None: + if is_apple_os(self) or self.settings.os == "Windows": + self.options.with_glu = "system" + else: + # ASWF: use system GLU wrapper + # self.options.with_glu = "mesa-glu" + self.options.with_glu = "system" + def configure(self): if self.options.shared: self.options.rm_safe("fPIC") @@ -55,11 +69,9 @@ def layout(self): def requirements(self): self.requires("opengl/system") # GL/glew.h includes glu.h. - if is_apple_os(self) or self.settings.os == "Windows": - self.requires("glu/system", transitive_headers=True) + if self.options.with_glu == "mesa-glu": + self.requires("mesa-glu/9.0.3", transitive_headers=True) else: - # Don't depend on external GLU recipe - # self.requires("mesa-glu/9.0.0", transitive_headers=True) self.requires("glu/system", transitive_headers=True) def source(self): @@ -93,7 +105,6 @@ def package_info(self): glewlib_target_name = "glew" if self.options.shared else "glew_s" self.cpp_info.set_property("cmake_find_mode", "both") self.cpp_info.set_property("cmake_module_file_name", "GLEW") - self.cpp_info.set_property("cmake_file_name", "glew") self.cpp_info.set_property("cmake_target_name", "GLEW::GLEW") self.cpp_info.set_property("pkg_config_name", "glew") self.cpp_info.components["glewlib"].set_property("cmake_module_target_name", "GLEW::GLEW") @@ -111,21 +122,12 @@ def package_info(self): self.cpp_info.components["glewlib"].defines.append("GLEW_STATIC") self.cpp_info.components["glewlib"].requires = ["opengl::opengl"] - if is_apple_os(self) or self.settings.os == "Windows": - self.cpp_info.components["glewlib"].requires.append("glu::glu") + if self.options.with_glu == "mesa-glu": + self.cpp_info.components["glewlib"].requires.append("mesa-glu::mesa-glu") else: - # Use system GLU - # self.cpp_info.components["glewlib"].requires.append("mesa-glu::mesa-glu") - self.cpp_info.components["glewlib"].requires.append("glu::glu") - - # TODO: to remove in conan v2 once cmake_find_package_* generators removed - self.cpp_info.filenames["cmake_find_package"] = "GLEW" - self.cpp_info.filenames["cmake_find_package_multi"] = "glew" - self.cpp_info.names["cmake_find_package"] = "GLEW" - self.cpp_info.names["cmake_find_package_multi"] = "GLEW" - self.cpp_info.components["glewlib"].names["cmake_find_package"] = "GLEW" - self.cpp_info.components["glewlib"].names["cmake_find_package_multi"] = glewlib_target_name + self.cpp_info.components["glewlib"].requires.append("glu::glu") + # ASWF: is this stil needed? self.env_info.CMAKE_PREFIX_PATH.append( os.path.join(self.package_folder, "lib64", "cmake") ) diff --git a/packages/conan/recipes/glew/patches/0001-fix-cmake-2.1.0.patch b/packages/conan/recipes/glew/patches/0001-fix-cmake-2.1.0.patch index 17b3876e..5ad47092 100644 --- a/packages/conan/recipes/glew/patches/0001-fix-cmake-2.1.0.patch +++ b/packages/conan/recipes/glew/patches/0001-fix-cmake-2.1.0.patch @@ -1,7 +1,7 @@ --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -1,10 +1,10 @@ -+cmake_minimum_required (VERSION 2.8.12) ++cmake_minimum_required (VERSION 3.5) +project (glew C) if ( NOT DEFINED CMAKE_BUILD_TYPE ) set( CMAKE_BUILD_TYPE Release CACHE STRING "Build type" ) diff --git a/packages/conan/recipes/glew/patches/0001-fix-cmake-2.2.0.patch b/packages/conan/recipes/glew/patches/0001-fix-cmake-2.2.0.patch index cf492105..b9dde639 100644 --- a/packages/conan/recipes/glew/patches/0001-fix-cmake-2.2.0.patch +++ b/packages/conan/recipes/glew/patches/0001-fix-cmake-2.2.0.patch @@ -1,7 +1,7 @@ --- a/build/cmake/CMakeLists.txt +++ b/build/cmake/CMakeLists.txt @@ -1,10 +1,10 @@ -+cmake_minimum_required (VERSION 2.8.12) ++cmake_minimum_required (VERSION 3.5) +project (glew C) if ( NOT DEFINED CMAKE_BUILD_TYPE ) set( CMAKE_BUILD_TYPE Release CACHE STRING "Build type" ) diff --git a/packages/conan/recipes/glfw/conandata.yml b/packages/conan/recipes/glfw/conandata.yml index 8b82a666..a4823929 100644 --- a/packages/conan/recipes/glfw/conandata.yml +++ b/packages/conan/recipes/glfw/conandata.yml @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/glfw/all/conandata.yml +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/glfw/all/conandata.yml sources: "3.4": @@ -14,21 +14,6 @@ sources: "3.3.7": url: "https://github.com/glfw/glfw/releases/download/3.3.7/glfw-3.3.7.zip" sha256: "4ef0c544a8ace9a6cd0e0aef8250090f89fea1bf96e9fc1d9d6f76386c290c9c" - "3.3.6": - url: "https://github.com/glfw/glfw/releases/download/3.3.6/glfw-3.3.6.zip" - sha256: "45537305d44c0a9f3612d4ec4a48414547cf854bff3ed613078f7ec648a12781" - "3.3.5": - url: "https://github.com/glfw/glfw/releases/download/3.3.5/glfw-3.3.5.zip" - sha256: "98a8639cfcd4f9ed2748cfa531c217e0364b64884b43e3336c62c58802eaa34f" - "3.3.4": - url: "https://github.com/glfw/glfw/releases/download/3.3.4/glfw-3.3.4.zip" - sha256: "bbd2c42c660b725e9755eb417e40b373f0d4c03138c9b2e210d02cd308bd99cd" - "3.3.3": - url: "https://github.com/glfw/glfw/releases/download/3.3.3/glfw-3.3.3.zip" - sha256: "723087ad45b40cd333be7d1a2cd5e09a28facb7f3acdb69f3e5613bd20543977" - "3.3.2": - url: "https://github.com/glfw/glfw/releases/download/3.3.2/glfw-3.3.2.zip" - sha256: "08a33a512f29d7dbf78eab39bd7858576adcc95228c9efe8e4bc5f0f3261efc7" patches: "3.3.8": - patch_file: "patches/3.3.5-0001-Wayland-Remove-extra-cmake-modules-dependency.patch" @@ -45,31 +30,3 @@ patches: patch_description: "Remove dependency on extra-cmake-modules to fix generation of Wayland Protocols" patch_type: "official" patch_source: "https://github.com/glfw/glfw/commit/2747e47393cbca2d09db56223e735bd94b21e2eb" - "3.3.5": - - patch_file: "patches/3.3.5-0001-Wayland-Remove-extra-cmake-modules-dependency.patch" - patch_description: "Remove dependency on extra-cmake-modules to fix generation of Wayland Protocols" - patch_type: "official" - patch_source: "https://github.com/glfw/glfw/commit/2747e47393cbca2d09db56223e735bd94b21e2eb" - "3.3.4": - - patch_file: "patches/3.3.3-0001-Wayland-Remove-extra-cmake-modules-dependency.patch" - patch_description: "Remove dependency on extra-cmake-modules to fix generation of Wayland Protocols" - patch_type: "official" - patch_source: "https://github.com/glfw/glfw/commit/2747e47393cbca2d09db56223e735bd94b21e2eb" - "3.3.3": - - patch_file: "patches/3.3.3-0001-Wayland-Remove-extra-cmake-modules-dependency.patch" - patch_description: "Remove dependency on extra-cmake-modules to fix generation of Wayland Protocols" - patch_type: "official" - patch_source: "https://github.com/glfw/glfw/commit/2747e47393cbca2d09db56223e735bd94b21e2eb" - "3.3.2": - - patch_file: "patches/3.3.2-0001-fix-objc-cmake3.19+.patch" - patch_description: "Fix ObjC handling while using recent CMake versions" - patch_type: "portability" - patch_source: "https://github.com/glfw/glfw/commit/3327050ca66ad34426a82c217c2d60ced61526b7" - - patch_file: "patches/3.3.2-0002-macos-relocatable.patch" - patch_description: "Relocatable shared lib on macOS" - patch_type: "portability" - patch_source: "https://github.com/glfw/glfw/commit/5a15d8a7842fbc4b5260eac2335a6691bca9be4b" - - patch_file: "patches/3.3.2-0003-Wayland-Remove-extra-cmake-modules-dependency.patch" - patch_description: "Remove dependency on extra-cmake-modules to fix generation of Wayland Protocols" - patch_type: "official" - patch_source: "https://github.com/glfw/glfw/commit/2747e47393cbca2d09db56223e735bd94b21e2eb" diff --git a/packages/conan/recipes/glfw/conanfile.py b/packages/conan/recipes/glfw/conanfile.py index f4f8a41f..eaf0c256 100644 --- a/packages/conan/recipes/glfw/conanfile.py +++ b/packages/conan/recipes/glfw/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/glfw/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/glfw/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration @@ -15,7 +15,7 @@ import os import textwrap -required_conan_version = ">=1.60.0 <2 || >=2.0.5" +required_conan_version = ">=2.0.5" class GlfwConan(ConanFile): @@ -58,6 +58,8 @@ def config_options(self): self.options.rm_safe("with_wayland") if self.settings.os not in ["Linux", "FreeBSD"] or Version(self.version) <= "3.3.8": self.options.rm_safe("with_x11") + if Version(self.version) >= "3.4": + self.options.rm_safe("vulkan_static") def configure(self): if self.options.shared: @@ -67,6 +69,8 @@ def configure(self): if self.options.get_safe("with_wayland"): self.options["xkbcommon"].with_wayland = True + self.options["wayland"].shared = True + self.options["xkbcommon"].shared = True def layout(self): cmake_layout(self, src_folder="src") @@ -74,8 +78,10 @@ def layout(self): self.cpp.package.libdirs = ["lib64"] def requirements(self): - self.requires("opengl/system") - if self.options.vulkan_static: + # libs=False because glfw does not link to opengl, it + # loads it via dlopen or equivalent + self.requires("opengl/system", libs=False, transitive_headers=True) + if self.options.get_safe("vulkan_static"): self.requires("vulkan-loader/1.3.268.0") if self.settings.os in ["Linux", "FreeBSD"]: if self.options.get_safe("with_x11", True): @@ -85,8 +91,14 @@ def requirements(self): self.requires("xkbcommon/1.6.0") def validate(self): - if self.options.get_safe("with_wayland") and not self.dependencies["xkbcommon"].options.with_wayland: - raise ConanInvalidConfiguration(f"{self.ref} requires the with_wayland option in xkbcommon to be enabled when the with_wayland option is enabled") + if self.options.get_safe("with_wayland"): + xkbcommon_options = self.dependencies["xkbcommon"].options + if not xkbcommon_options.with_wayland: + raise ConanInvalidConfiguration(f"{self.ref} requires the with_wayland option in xkbcommon to be enabled when the with_wayland option is enabled") + if not xkbcommon_options.shared: + raise ConanInvalidConfiguration(f"{self.ref} always loads xkbcommon dependencies dynamically and does not support static linkage") + if not self.dependencies["wayland"].options.shared: + raise ConanInvalidConfiguration(f"{self.ref} always loads wayland dependencies dynamically and does not support static linkage") def build_requirements(self): if self.options.get_safe("with_wayland"): @@ -94,7 +106,7 @@ def build_requirements(self): if self._has_build_profile: self.tool_requires("wayland/") if not self.conf.get("tools.gnu:pkg_config", check_type=str): - self.tool_requires("pkgconf/2.1.0") + self.tool_requires("pkgconf/[>=2.2 <3]") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -116,7 +128,8 @@ def generate(self): tc.cache_variables["GLFW_BUILD_WAYLAND"] = self.options.get_safe("with_wayland", False) else: tc.cache_variables["GLFW_USE_WAYLAND"] = self.options.get_safe("with_wayland", False) - tc.variables["GLFW_VULKAN_STATIC"] = self.options.vulkan_static + if Version(self.version) < "3.4": + tc.cache_variables["GLFW_VULKAN_STATIC"] = self.options.get_safe("vulkan_static", False) if is_msvc(self): tc.cache_variables["USE_MSVC_RUNTIME_LIBRARY_DLL"] = not is_msvc_static_runtime(self) tc.generate() @@ -148,13 +161,13 @@ def _patch_sources(self): apply_conandata_patches(self) # don't force PIC replace_in_file(self, os.path.join(self.source_folder, "src", "CMakeLists.txt"), - "POSITION_INDEPENDENT_CODE ON", "") + "POSITION_INDEPENDENT_CODE ON", "") # don't force static link to libgcc if MinGW replace_in_file(self, os.path.join(self.source_folder, "src", "CMakeLists.txt"), - "target_link_libraries(glfw PRIVATE \"-static-libgcc\")", "") + "target_link_libraries(glfw PRIVATE \"-static-libgcc\")", "") # Allow to link vulkan-loader into shared glfw - if self.options.vulkan_static: + if self.options.get_safe("vulkan_static"): cmakelists = os.path.join(self.source_folder, "CMakeLists.txt") replace_in_file( self, @@ -225,7 +238,7 @@ def package_info(self): ]) self.cpp_info.requires = ["opengl::opengl"] - if self.options.vulkan_static: + if self.options.get_safe("vulkan_static"): self.cpp_info.requires.append("vulkan-loader::vulkan-loader") if self.settings.os in ["Linux", "FreeBSD"]: if self.options.get_safe("with_x11", True): @@ -247,15 +260,18 @@ def package_info(self): "xkbcommon::xkbcommon" ]) - # backward support of cmake_find_package, cmake_find_package_multi & pkg_config generators - self.cpp_info.filenames["cmake_find_package"] = "glfw3" - self.cpp_info.filenames["cmake_find_package_multi"] = "glfw3" - self.cpp_info.names["cmake_find_package"] = "glfw" - self.cpp_info.names["cmake_find_package_multi"] = "glfw" - self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path] - self.cpp_info.build_modules["cmake_find_package_multi"] = [self._module_file_rel_path] - self.cpp_info.names["pkg_config"] = "glfw3" + # Starting with version 3.4, glfw loads the platform libraries at runtime + # and hence does not need to link with them. + self.cpp_info.requires = [] + if Version(self.version) < "3.4": + self.cpp_info.requires.append("opengl::opengl") + if self.options.get_safe("vulkan_static"): + self.cpp_info.requires.append("vulkan-loader::vulkan-loader") + if self.settings.os in ["Linux", "FreeBSD"]: + if self.options.get_safe("with_x11", True): + self.cpp_info.requires.append("xorg::x11") + if self.options.get_safe("with_wayland"): + self.cpp_info.requires.extend(["wayland::wayland", "xkbcommon::xkbcommon"]) - self.env_info.CMAKE_PREFIX_PATH.append( - os.path.join(self.package_folder, "lib64", "cmake") - ) + # ASWF: is this still required> + self.env_info.CMAKE_PREFIX_PATH.append(os.path.join(self.package_folder, "lib64", "cmake")) diff --git a/packages/conan/recipes/glfw/test_package/CMakeLists.txt b/packages/conan/recipes/glfw/test_package/CMakeLists.txt index 119bd863..01726a7e 100644 --- a/packages/conan/recipes/glfw/test_package/CMakeLists.txt +++ b/packages/conan/recipes/glfw/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/22dfbd2b42eed730eca55e14025e8ffa65f723b2/recipes/glfw/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/glfw/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(glfw3 REQUIRED CONFIG) diff --git a/packages/conan/recipes/glib/conanfile.py b/packages/conan/recipes/glib/conanfile.py index 45453fa2..5ce050de 100644 --- a/packages/conan/recipes/glib/conanfile.py +++ b/packages/conan/recipes/glib/conanfile.py @@ -5,15 +5,19 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/glib/all/conanfile.py from conan import ConanFile - +from conan.tools.files import load import os +import re class SystemGLibConan(ConanFile): name = "glib" - version = "2.78.3" # For Qt conan recipe - settings = "os", "arch", "compiler", "build_type" + def set_version(self): + content = load(self, "/usr/lib64/pkgconfig/glib-2.0.pc") + match = re.search(r"^Version:\s*(.+)$", content, re.MULTILINE) + self.version = match.group(1).strip() + def requirements(self): self.requires("zlib/[>=1.2.11 <2]") self.requires("libffi/3.4.4") @@ -21,7 +25,7 @@ def requirements(self): def package_info(self): self.cpp_info.components["glib-2.0"].set_property("pkg_config_name", "glib-2.0") - self.cpp_info.components["glib-2.0"].libs = ["glib-2.0"] + self.cpp_info.components["glib-2.0"].system_libs = ["glib-2.0"] self.cpp_info.components["glib-2.0"].includedirs += [ os.path.join("include", "glib-2.0"), os.path.join("lib", "glib-2.0", "include") @@ -29,7 +33,7 @@ def package_info(self): self.cpp_info.components["glib-2.0"].resdirs = ["res"] self.cpp_info.components["gmodule-no-export-2.0"].set_property("pkg_config_name", "gmodule-no-export-2.0") - self.cpp_info.components["gmodule-no-export-2.0"].libs = ["gmodule-2.0"] + self.cpp_info.components["gmodule-no-export-2.0"].system_libs = ["gmodule-2.0"] self.cpp_info.components["gmodule-no-export-2.0"].resdirs = ["res"] self.cpp_info.components["gmodule-no-export-2.0"].requires.append("glib-2.0") @@ -40,22 +44,22 @@ def package_info(self): self.cpp_info.components["gmodule-2.0"].requires += ["gmodule-no-export-2.0", "glib-2.0"] self.cpp_info.components["gobject-2.0"].set_property("pkg_config_name", "gobject-2.0") - self.cpp_info.components["gobject-2.0"].libs = ["gobject-2.0"] + self.cpp_info.components["gobject-2.0"].system_libs = ["gobject-2.0"] self.cpp_info.components["gobject-2.0"].resdirs = ["res"] self.cpp_info.components["gobject-2.0"].requires += ["glib-2.0", "libffi::libffi"] self.cpp_info.components["gthread-2.0"].set_property("pkg_config_name", "gthread-2.0") - self.cpp_info.components["gthread-2.0"].libs = ["gthread-2.0"] + self.cpp_info.components["gthread-2.0"].system_libs = ["gthread-2.0"] self.cpp_info.components["gthread-2.0"].resdirs = ["res"] self.cpp_info.components["gthread-2.0"].requires.append("glib-2.0") self.cpp_info.components["gio-2.0"].set_property("pkg_config_name", "gio-2.0") - self.cpp_info.components["gio-2.0"].libs = ["gio-2.0"] + self.cpp_info.components["gio-2.0"].system_libs = ["gio-2.0"] self.cpp_info.components["gio-2.0"].resdirs = ["res"] self.cpp_info.components["gio-2.0"].requires += ["glib-2.0", "gobject-2.0", "gmodule-2.0", "zlib::zlib"] self.cpp_info.components["gresource"].set_property("pkg_config_name", "gresource") - self.cpp_info.components["gresource"].libs = [] # this is actually an executable + self.cpp_info.components["gresource"].system_libs = [] # this is actually an executable self.cpp_info.components["glib-2.0"].system_libs.append("pthread") self.cpp_info.components["gmodule-no-export-2.0"].system_libs.append("pthread") diff --git a/packages/conan/recipes/gtest/conandata.yml b/packages/conan/recipes/gtest/conandata.yml index 1c99b66d..de86794f 100644 --- a/packages/conan/recipes/gtest/conandata.yml +++ b/packages/conan/recipes/gtest/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/gtest/all/conandata.yml sources: + "1.17.0": + url: "https://github.com/google/googletest/archive/refs/tags/v1.17.0.tar.gz" + sha256: "65fab701d9829d38cb77c14acdc431d2108bfdbf8979e40eb8ae567edf10b27c" "1.15.2": url: "https://github.com/google/googletest/archive/refs/tags/v1.15.2.tar.gz" sha256: "7b42b4d6ed48810c5362c265a17faebe90dc2373c885e5216439d37927f02926" diff --git a/packages/conan/recipes/gtest/conanfile.py b/packages/conan/recipes/gtest/conanfile.py index 68680455..1a2de169 100644 --- a/packages/conan/recipes/gtest/conanfile.py +++ b/packages/conan/recipes/gtest/conanfile.py @@ -2,7 +2,8 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/gtest/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/gtest/all/conanfile.py + from conan import ConanFile from conan.errors import ConanInvalidConfiguration from conan.tools.build import check_min_cppstd @@ -12,7 +13,7 @@ from conan.tools.scm import Version import os -required_conan_version = ">=1.54.0" +required_conan_version = ">=2.1" class GTestConan(ConanFile): @@ -130,6 +131,7 @@ def generate(self): if Version(self.version) < "1.12.0": # Relocatable shared lib on Macos tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0042"] = "NEW" + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() def _patch_sources(self): @@ -200,9 +202,3 @@ def package_info(self): self.cpp_info.components["gmock_main"].set_property("pkg_config_name", "gmock_main") self.cpp_info.components["gmock_main"].libs = [f"gmock_main{self._postfix}"] self.cpp_info.components["gmock_main"].requires = ["gmock"] - - # TODO: to remove in conan v2 once cmake_find_package_* generators removed - self.cpp_info.names["cmake_find_package"] = "GTest" - self.cpp_info.names["cmake_find_package_multi"] = "GTest" - self.cpp_info.components["libgtest"].names["cmake_find_package"] = "gtest" - self.cpp_info.components["libgtest"].names["cmake_find_package_multi"] = "gtest" diff --git a/packages/conan/recipes/icu/conanfile.py b/packages/conan/recipes/icu/conanfile.py index 57b4ca98..9d874d7d 100644 --- a/packages/conan/recipes/icu/conanfile.py +++ b/packages/conan/recipes/icu/conanfile.py @@ -13,8 +13,7 @@ class SystemICUConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] + self.cpp_info.includedirs = [] self.cpp_info.set_property("cmake_file_name", "ICU") self.cpp_info.set_property("cmake_target_name", "ICU::ICU") @@ -29,15 +28,13 @@ def package_info(self): # icuuc self.cpp_info.components["icu-uc"].set_property("cmake_target_name", "ICU::uc") - self.cpp_info.components["icu-uc"].libs = ["icuuc"] + self.cpp_info.components["icu-uc"].system_libs = ["icuuc", "m", "pthread"] self.cpp_info.components["icu-uc"].requires = ["icu-data"] - self.cpp_info.components["icu-uc"].system_libs = ["m", "pthread"] # icui18n self.cpp_info.components["icu-i18n"].set_property("cmake_target_name", "ICU::i18n") - self.cpp_info.components["icu-i18n"].libs = ["icui18n"] + self.cpp_info.components["icu-i18n"].systemlibs = ["icui18n", "m"] self.cpp_info.components["icu-i18n"].requires = ["icu-uc"] - self.cpp_info.components["icu-i18n"].system_libs = ["m"] # Alias of i18n CMake component self.cpp_info.components["icu-i18n-alias"].set_property("cmake_target_name", "ICU::in") @@ -45,16 +42,15 @@ def package_info(self): # icuio self.cpp_info.components["icu-io"].set_property("cmake_target_name", "ICU::io") - self.cpp_info.components["icu-io"].libs = ["icuio"] + self.cpp_info.components["icu-io"].system_libs = ["icuio"] self.cpp_info.components["icu-io"].requires = ["icu-i18n", "icu-uc"] # icutu self.cpp_info.components["icu-tu"].set_property("cmake_target_name", "ICU::tu") - self.cpp_info.components["icu-tu"].libs = ["icutu"] + self.cpp_info.components["icu-tu"].system_libs = ["icutu", "pthread"] self.cpp_info.components["icu-tu"].requires = ["icu-i18n", "icu-uc"] - self.cpp_info.components["icu-tu"].system_libs = ["pthread"] # icutest self.cpp_info.components["icu-test"].set_property("cmake_target_name", "ICU::test") - self.cpp_info.components["icu-test"].libs = ["icutest"] + self.cpp_info.components["icu-test"].system_libs = ["icutest"] self.cpp_info.components["icu-test"].requires = ["icu-tu", "icu-uc"] diff --git a/packages/conan/recipes/lcms/conandata.yml b/packages/conan/recipes/lcms/conandata.yml index a8b2d56c..ae8cfb24 100644 --- a/packages/conan/recipes/lcms/conandata.yml +++ b/packages/conan/recipes/lcms/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/lcms/all/conandata.yml sources: + "2.17": + url: "https://github.com/mm2/Little-CMS/releases/download/lcms2.17/lcms2-2.17.tar.gz" + sha256: "d11af569e42a1baa1650d20ad61d12e41af4fead4aa7964a01f93b08b53ab074" "2.16": url: "https://github.com/mm2/Little-CMS/releases/download/lcms2.16/lcms2-2.16.tar.gz" sha256: "d873d34ad8b9b4cea010631f1a6228d2087475e4dc5e763eb81acc23d9d45a51" diff --git a/packages/conan/recipes/libalsa/conanfile.py b/packages/conan/recipes/libalsa/conanfile.py index c8c2cf21..9f1aa274 100644 --- a/packages/conan/recipes/libalsa/conanfile.py +++ b/packages/conan/recipes/libalsa/conanfile.py @@ -13,9 +13,8 @@ class SystemLibalsaConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["asound"] + self.cpp_info.includedirs = [] + self.cpp_info.systemlibs = ["asound"] self.cpp_info.set_property("cmake_file_name", "ALSA") self.cpp_info.set_property("cmake_target_name", "ALSA:ALSA") diff --git a/packages/conan/recipes/libbacktrace/test_package/CMakeLists.txt b/packages/conan/recipes/libbacktrace/test_package/CMakeLists.txt index 8d443100..603e6955 100644 --- a/packages/conan/recipes/libbacktrace/test_package/CMakeLists.txt +++ b/packages/conan/recipes/libbacktrace/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/7abb9ee39e6009e3dbc45043307a1098246d4ad7/recipes/libbacktrace/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/libbacktrace/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(libbacktrace REQUIRED CONFIG) diff --git a/packages/conan/recipes/libdeflate/conandata.yml b/packages/conan/recipes/libdeflate/conandata.yml index a06fa2f7..56d6873e 100644 --- a/packages/conan/recipes/libdeflate/conandata.yml +++ b/packages/conan/recipes/libdeflate/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/187fd740e479c64303915954b5d43f56a490ce68/recipes/libdeflate/all/conandata.yml sources: + "1.24": + url: "https://github.com/ebiggers/libdeflate/archive/refs/tags/v1.24.tar.gz" + sha256: "ad8d3723d0065c4723ab738be9723f2ff1cb0f1571e8bfcf0301ff9661f475e8" "1.23": url: "https://github.com/ebiggers/libdeflate/archive/refs/tags/v1.23.tar.gz" sha256: "1ab18349b9fb0ce8a0ca4116bded725be7dcbfa709e19f6f983d99df1fb8b25f" diff --git a/packages/conan/recipes/libdrm/conanfile.py b/packages/conan/recipes/libdrm/conanfile.py index ef220e6e..27497059 100644 --- a/packages/conan/recipes/libdrm/conanfile.py +++ b/packages/conan/recipes/libdrm/conanfile.py @@ -13,8 +13,7 @@ class SystemLibdrmConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["drm", "drm_amdgpu", "drm_nouveau", "drm_intel", "drm_radeon"] + self.cpp_info.system_libs = ["drm", "drm_amdgpu", "drm_nouveau", "drm_intel", "drm_radeon"] self.cpp_info.includedirs = ["/usr/include/libdrm", "/usr/include/libdrm/nouveau"] self.cpp_info.set_property("cmake_file_name", "Libdrm") diff --git a/packages/conan/recipes/libffi/conanfile.py b/packages/conan/recipes/libffi/conanfile.py index dd6a6473..2286b4a7 100644 --- a/packages/conan/recipes/libffi/conanfile.py +++ b/packages/conan/recipes/libffi/conanfile.py @@ -10,9 +10,8 @@ class SystemLibffiConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["ffi"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["ffi"] self.cpp_info.set_property("cmake_file_name", "libffi") self.cpp_info.set_property("cmake_target_name", "libffi::libffi") diff --git a/packages/conan/recipes/libiconv/conandata.yml b/packages/conan/recipes/libiconv/conandata.yml index af819b0e..77dd4940 100644 --- a/packages/conan/recipes/libiconv/conandata.yml +++ b/packages/conan/recipes/libiconv/conandata.yml @@ -2,9 +2,12 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/libiconv/all/conandata.yml +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/libiconv/all/conandata.yml sources: + "1.18": + url: "https://ftp.gnu.org/gnu/libiconv/libiconv-1.18.tar.gz" + sha256: "3b08f5f4f9b4eb82f151a7040bfd6fe6c6fb922efe4b1659c66ea933276965e8" "1.17": url: "https://ftp.gnu.org/gnu/libiconv/libiconv-1.17.tar.gz" sha256: "8f74213b56238c85a50a5329f77e06198771e70dd9a739779f4c02f65d971313" diff --git a/packages/conan/recipes/libiconv/conanfile.py b/packages/conan/recipes/libiconv/conanfile.py index dc90dcee..b5d81989 100644 --- a/packages/conan/recipes/libiconv/conanfile.py +++ b/packages/conan/recipes/libiconv/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/libiconv/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/libiconv/all/conanfile.py from conan import ConanFile from conan.tools.apple import fix_apple_shared_install_name @@ -24,7 +24,7 @@ from conan.tools.scm import Version import os -required_conan_version = ">=1.54.0" +required_conan_version = ">=2.1" class LibiconvConan(ConanFile): @@ -55,10 +55,6 @@ def _is_clang_cl(self): def _msvc_tools(self): return ("clang-cl", "llvm-lib", "lld-link") if self._is_clang_cl else ("cl", "lib", "link") - @property - def _settings_build(self): - return getattr(self, "settings_build", self.settings) - def export_sources(self): export_conandata_patches(self) @@ -82,7 +78,7 @@ def layout(self): self.cpp.package.libdirs = ["lib64"] def build_requirements(self): - if self._settings_build.os == "Windows": + if self.settings_build.os == "Windows": if not self.conf.get("tools.microsoft.bash:path", check_type=str): self.tool_requires("msys2/cci.latest") self.win_bash = True @@ -95,28 +91,11 @@ def generate(self): env.generate() tc = AutotoolsToolchain(self) - if self.settings.os == "Windows" and self.settings.compiler == "gcc": - if self.settings.arch == "x86": - tc.update_configure_args({ - "--host": "i686-w64-mingw32", - "RC": "windres --target=pe-i386", - "WINDRES": "windres --target=pe-i386", - }) - elif self.settings.arch == "x86_64": - tc.update_configure_args({ - "--host": "x86_64-w64-mingw32", - "RC": "windres --target=pe-x86-64", - "WINDRES": "windres --target=pe-x86-64", - }) - msvc_version = {"Visual Studio": "12", "msvc": "180"} - if is_msvc(self) and Version(self.settings.compiler.version) >= msvc_version[str(self.settings.compiler)]: - # https://github.com/conan-io/conan/issues/6514 - tc.extra_cflags.append("-FS") if cross_building(self) and is_msvc(self): triplet_arch_windows = {"x86_64": "x86_64", "x86": "i686", "armv8": "aarch64"} # ICU doesn't like GNU triplet of conan for msvc (see https://github.com/conan-io/conan/issues/12546) host_arch = triplet_arch_windows.get(str(self.settings.arch)) - build_arch = triplet_arch_windows.get(str(self._settings_build.arch)) + build_arch = triplet_arch_windows.get(str(self.settings_build.arch)) if host_arch and build_arch: host = f"{host_arch}-w64-mingw32" @@ -173,8 +152,3 @@ def package_info(self): self.cpp_info.set_property("cmake_file_name", "Iconv") self.cpp_info.set_property("cmake_target_name", "Iconv::Iconv") self.cpp_info.libs = ["iconv", "charset"] - - # TODO: to remove in conan v2 - self.cpp_info.names["cmake_find_package"] = "Iconv" - self.cpp_info.names["cmake_find_package_multi"] = "Iconv" - self.env_info.PATH.append(os.path.join(self.package_folder, "bin")) diff --git a/packages/conan/recipes/libiconv/test_package/CMakeLists.txt b/packages/conan/recipes/libiconv/test_package/CMakeLists.txt index b7e84b64..0aad7839 100644 --- a/packages/conan/recipes/libiconv/test_package/CMakeLists.txt +++ b/packages/conan/recipes/libiconv/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/libiconv/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/libiconv/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package C) find_package(Iconv REQUIRED) diff --git a/packages/conan/recipes/libjpeg-turbo/conanfile.py b/packages/conan/recipes/libjpeg-turbo/conanfile.py index 34aac8cc..96694cc5 100644 --- a/packages/conan/recipes/libjpeg-turbo/conanfile.py +++ b/packages/conan/recipes/libjpeg-turbo/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/b96b04ffad873992cbcfb98f0d84f6f44beb169d/recipes/libjpeg-turbo/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/libjpeg-turbo/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration @@ -13,7 +13,7 @@ from conan.tools.scm import Version import os -required_conan_version = ">=1.53.0" +required_conan_version = ">=2.1" class LibjpegTurboConan(ConanFile): @@ -24,6 +24,7 @@ class LibjpegTurboConan(ConanFile): homepage = "https://libjpeg-turbo.org" topics = ("jpeg", "libjpeg", "image", "multimedia", "format", "graphics") provides = "libjpeg" + package_type = "library" settings = "os", "arch", "compiler", "build_type" options = { "shared": [True, False], @@ -127,6 +128,8 @@ def generate(self): tc.variables["WITH_CRT_DLL"] = True # avoid replacing /MD by /MT in compiler flags if Version(self.version) <= "2.1.0": tc.variables["CMAKE_MACOSX_BUNDLE"] = False # avoid configuration error if building for iOS/tvOS/watchOS + if Version(self.version) < "3.0.2": + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() def _patch_sources(self): @@ -178,12 +181,3 @@ def package_info(self): self.cpp_info.components["turbojpeg"].set_property("cmake_target_name", f"libjpeg-turbo::turbojpeg{cmake_target_suffix}") self.cpp_info.components["turbojpeg"].set_property("pkg_config_name", "libturbojpeg") self.cpp_info.components["turbojpeg"].libs = [f"turbojpeg{lib_suffix}"] - - # TODO: to remove in conan v2 - self.cpp_info.names["cmake_find_package"] = "JPEG" - self.cpp_info.names["cmake_find_package_multi"] = "libjpeg-turbo" - self.cpp_info.components["jpeg"].names["cmake_find_package"] = "JPEG" - self.cpp_info.components["jpeg"].names["cmake_find_package_multi"] = f"jpeg{cmake_target_suffix}" - if self.options.get_safe("turbojpeg"): - self.cpp_info.components["turbojpeg"].names["cmake_find_package"] = f"turbojpeg{cmake_target_suffix}" - self.cpp_info.components["turbojpeg"].names["cmake_find_package_multi"] = f"turbojpeg{cmake_target_suffix}" diff --git a/packages/conan/recipes/libjxl/conanfile.py b/packages/conan/recipes/libjxl/conanfile.py index 0ab1c47f..7a05ed29 100644 --- a/packages/conan/recipes/libjxl/conanfile.py +++ b/packages/conan/recipes/libjxl/conanfile.py @@ -66,7 +66,7 @@ def layout(self): self.cpp.package.libdirs = ["lib64"] def requirements(self): - self.requires("brotli/1.1.0") + self.requires("brotli/1.1.0", transitive_libs=True) # ASWF self.requires("highway/1.1.0",transitive_libs=True) # ASWF self.requires("lcms/2.16") if self.options.with_tcmalloc: diff --git a/packages/conan/recipes/libpng/conanfile.py b/packages/conan/recipes/libpng/conanfile.py index bda46ea2..a8a837a6 100644 --- a/packages/conan/recipes/libpng/conanfile.py +++ b/packages/conan/recipes/libpng/conanfile.py @@ -5,17 +5,22 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/libpng/all/conanfile.py from conan import ConanFile +from conan.tools.files import load +import re class SystemLibpngConan(ConanFile): name = "libpng" - version = "1.6.34" # For oiio recipe settings = "os", "arch", "compiler", "build_type" + + def set_version(self): + content = load(self, "/usr/lib64/pkgconfig/libpng.pc") + match = re.search(r"^Version:\s*(.+)$", content, re.MULTILINE) + self.version = match.group(1).strip() def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["png"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["png"] self.cpp_info.set_property("cmake_file_name", "PNG") self.cpp_info.set_property("cmake_target_name", "PNG::PNG") diff --git a/packages/conan/recipes/libsndfile/conanfile.py b/packages/conan/recipes/libsndfile/conanfile.py index 40806ca5..cbdbec60 100644 --- a/packages/conan/recipes/libsndfile/conanfile.py +++ b/packages/conan/recipes/libsndfile/conanfile.py @@ -13,9 +13,8 @@ class SystemLibsndfileConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["sndfile"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["sndfile"] self.cpp_info.set_property("cmake_file_name", "SndFile") self.cpp_info.set_property("cmake_target_name", "SndFile::sndfile") diff --git a/packages/conan/recipes/libtiff/conanfile.py b/packages/conan/recipes/libtiff/conanfile.py index add08f1a..c7cd6de2 100644 --- a/packages/conan/recipes/libtiff/conanfile.py +++ b/packages/conan/recipes/libtiff/conanfile.py @@ -5,17 +5,21 @@ # From: https://github.com/conan-io/conan-center-index/blob/f83ca9df2f14d01f49b186cb279740c295ae09c9/recipes/libtiff/all/conanfile.py from conan import ConanFile +from conan.tools.files import load +import re class SystemLibtiffConan(ConanFile): name = "libtiff" - version = "4.0.9" # for OIIO recipe - settings = "os", "arch", "compiler", "build_type" + + def set_version(self): + content = load(self, "/usr/lib64/pkgconfig/libtiff-4.pc") + match = re.search(r"^Version:\s*(.+)$", content, re.MULTILINE) + self.version = match.group(1).strip() def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["tiff", "tiffxx"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["tiff", "tiffxx"] self.cpp_info.set_property("cmake_find_mode", "both") self.cpp_info.set_property("cmake_file_name", "TIFF") diff --git a/packages/conan/recipes/libxcrypt/conandata.yml b/packages/conan/recipes/libxcrypt/conandata.yml index 8a56db8d..5d36ebc9 100644 --- a/packages/conan/recipes/libxcrypt/conandata.yml +++ b/packages/conan/recipes/libxcrypt/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/libxcrypt/all/conandata.yml sources: + "4.4.38": + url: "https://github.com/besser82/libxcrypt/archive/v4.4.38.tar.gz" + sha256: "9fb45586b2e83727934fbe046a4fef4804017577f1d048f91d56d0d830a5a98e" "4.4.36": url: "https://github.com/besser82/libxcrypt/archive/v4.4.36.tar.gz" sha256: "b979838d5f1f238869d467484793b72b8bca64c4eae696fdbba0a9e0b6c28453" diff --git a/packages/conan/recipes/libxcrypt/test_package/CMakeLists.txt b/packages/conan/recipes/libxcrypt/test_package/CMakeLists.txt index 9bdacb16..b79a417f 100644 --- a/packages/conan/recipes/libxcrypt/test_package/CMakeLists.txt +++ b/packages/conan/recipes/libxcrypt/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/libxcrypt/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/libxcrypt/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(libxcrypt REQUIRED CONFIG) diff --git a/packages/conan/recipes/libxshmfence/conanfile.py b/packages/conan/recipes/libxshmfence/conanfile.py index c6aacb53..6f7b19dc 100644 --- a/packages/conan/recipes/libxshmfence/conanfile.py +++ b/packages/conan/recipes/libxshmfence/conanfile.py @@ -13,6 +13,5 @@ class SystemLibxshmfenceConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["xshmfence"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["xshmfence"] diff --git a/packages/conan/recipes/lz4/conanfile.py b/packages/conan/recipes/lz4/conanfile.py index 866509e8..9cb09832 100644 --- a/packages/conan/recipes/lz4/conanfile.py +++ b/packages/conan/recipes/lz4/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/lz4/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/lz4/all/conanfile.py from conan import ConanFile from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout @@ -12,7 +12,7 @@ import os import textwrap -required_conan_version = ">=1.54.0" +required_conan_version = ">=2.1" class LZ4Conan(ConanFile): @@ -66,6 +66,8 @@ def generate(self): tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0042"] = "NEW" # Honor BUILD_SHARED_LIBS (see https://github.com/conan-io/conan/issues/11840) tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW" + if Version(self.version) < "1.10.0": + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() @property @@ -79,21 +81,6 @@ def build(self): cmake.configure(build_script_folder=self._cmakelists_folder) cmake.build() - def _create_cmake_module_alias_targets(self, module_file, targets): - content = "" - for alias, aliased in targets.items(): - content += textwrap.dedent(f"""\ - if(TARGET {aliased} AND NOT TARGET {alias}) - add_library({alias} INTERFACE IMPORTED) - set_property(TARGET {alias} PROPERTY INTERFACE_LINK_LIBRARIES {aliased}) - endif() - """) - save(self, module_file, content) - - @property - def _module_file_rel_path(self): - return os.path.join("lib", "cmake", f"conan-official-{self.name}-targets.cmake") - def package(self): # ASWF: separate licenses from multiple package installs copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) @@ -105,12 +92,6 @@ def package(self): rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) - # TODO: to remove in conan v2 once legacy generators removed - self._create_cmake_module_alias_targets( - os.path.join(self.package_folder, self._module_file_rel_path), - {self._lz4_target: "lz4::lz4"}, - ) - @property def _lz4_target(self): return f"LZ4::{'lz4_shared' if self.options.shared else 'lz4_static'}" @@ -123,8 +104,3 @@ def package_info(self): self.cpp_info.libs = ["lz4"] if is_msvc(self) and self.options.shared: self.cpp_info.defines.append("LZ4_DLL_IMPORT=1") - - # TODO: to remove in conan v2 once legacy generators removed - self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path] - self.cpp_info.build_modules["cmake_find_package_multi"] = [self._module_file_rel_path] - self.cpp_info.names["pkg_config"] = "liblz4" diff --git a/packages/conan/recipes/lz4/test_package/CMakeLists.txt b/packages/conan/recipes/lz4/test_package/CMakeLists.txt index 2637e814..dde865ff 100644 --- a/packages/conan/recipes/lz4/test_package/CMakeLists.txt +++ b/packages/conan/recipes/lz4/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/lz4/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/lz4/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(lz4 REQUIRED CONFIG) diff --git a/packages/conan/recipes/md4c/conanfile.py b/packages/conan/recipes/md4c/conanfile.py index 890bf412..017f3a34 100644 --- a/packages/conan/recipes/md4c/conanfile.py +++ b/packages/conan/recipes/md4c/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/770675220095fb519ea6e1473df3db264ee655ec/recipes/md4c/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/1729c3c2c3b0e9d058821fa00e8a54154415efc6/recipes/md4c/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration @@ -13,7 +13,7 @@ import os -required_conan_version = ">=1.54.0" +required_conan_version = ">=2" class Md4cConan(ConanFile): @@ -70,6 +70,7 @@ def validate(self): def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) + self._patch_sources() def generate(self): tc = CMakeToolchain(self) @@ -80,6 +81,8 @@ def generate(self): tc.preprocessor_definitions["MD4C_USE_UTF16"] = "1" elif self.options.encoding == "ascii": tc.preprocessor_definitions["MD4C_USE_ASCII"] = "1" + if Version(self.version) < "0.5.0": + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() def _patch_sources(self): @@ -93,7 +96,6 @@ def _patch_sources(self): ) def build(self): - self._patch_sources() cmake = CMake(self) cmake.configure() cmake.build() diff --git a/packages/conan/recipes/md4c/test_package/CMakeLists.txt b/packages/conan/recipes/md4c/test_package/CMakeLists.txt index 8f21c070..91eaa934 100644 --- a/packages/conan/recipes/md4c/test_package/CMakeLists.txt +++ b/packages/conan/recipes/md4c/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/md4c/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/1729c3c2c3b0e9d058821fa00e8a54154415efc6/recipes/md4c/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(md4c CONFIG REQUIRED) diff --git a/packages/conan/recipes/minizip-ng/conandata.yml b/packages/conan/recipes/minizip-ng/conandata.yml index 1a70f39b..7ed98506 100644 --- a/packages/conan/recipes/minizip-ng/conandata.yml +++ b/packages/conan/recipes/minizip-ng/conandata.yml @@ -2,9 +2,12 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/minizip-ng/all/conandata.yml +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/minizip-ng/all/conandata.yml sources: + "4.0.10": + url: "https://github.com/zlib-ng/minizip-ng/archive/4.0.10.tar.gz" + sha256: "c362e35ee973fa7be58cc5e38a4a6c23cc8f7e652555daf4f115a9eb2d3a6be7" "4.0.8": url: "https://github.com/zlib-ng/minizip-ng/archive/4.0.8.tar.gz" sha256: "c3e9ceab2bec26cb72eba1cf46d0e2c7cad5d2fe3adf5df77e17d6bbfea4ec8f" diff --git a/packages/conan/recipes/minizip-ng/conanfile.py b/packages/conan/recipes/minizip-ng/conanfile.py index 62ccdbbc..3a5941fb 100644 --- a/packages/conan/recipes/minizip-ng/conanfile.py +++ b/packages/conan/recipes/minizip-ng/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/minizip-ng/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/minizip-ng/all/conanfile.py from conan import ConanFile from conan.tools.apple import is_apple_os @@ -177,7 +177,7 @@ def package_info(self): self.cpp_info.set_property("pkg_config_name", "minizip") # TODO: back to global scope in conan v2 once cmake_find_package_* generators removed - prefix = "lib" if is_msvc(self) or self._is_clang_cl else "" + prefix = "lib" if Version(self.version) < "4.0.7" and (is_msvc(self) or self._is_clang_cl) else "" suffix = "" if self.options.mz_compatibility else "-ng" self.cpp_info.components["minizip"].libs = [f"{prefix}minizip{suffix}"] if self.options.with_lzma: diff --git a/packages/conan/recipes/mpdecimal/conanfile.py b/packages/conan/recipes/mpdecimal/conanfile.py index a4a5c56a..7644adf6 100644 --- a/packages/conan/recipes/mpdecimal/conanfile.py +++ b/packages/conan/recipes/mpdecimal/conanfile.py @@ -10,9 +10,8 @@ class SystemMpdecimalConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["mpdec"] + self.cpp_info.includedirs = [] + self.cpp_info.systemlibs = ["mpdec"] self.cpp_info.set_property("cmake_file_name", "mpdecimal") self.cpp_info.set_property("cmake_target_name", "mpdecimal::mpdecimal") diff --git a/packages/conan/recipes/nspr/conanfile.py b/packages/conan/recipes/nspr/conanfile.py index de5237d7..999526c0 100644 --- a/packages/conan/recipes/nspr/conanfile.py +++ b/packages/conan/recipes/nspr/conanfile.py @@ -14,7 +14,6 @@ class SystemNsprConan(ConanFile): def package_info(self): self.cpp_info.includedirs = ["/usr/include/nspr4"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["plds4", "plc4", "nspr4"] + self.cpp_info.system_libs = ["plds4", "plc4", "nspr4"] self.cpp_info.system_libs.extend(["dl", "pthread", "rt"]) self.cpp_info.resdirs = ["res"] diff --git a/packages/conan/recipes/nss/conanfile.py b/packages/conan/recipes/nss/conanfile.py index 137c75b7..c294632e 100644 --- a/packages/conan/recipes/nss/conanfile.py +++ b/packages/conan/recipes/nss/conanfile.py @@ -5,13 +5,18 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/nss/all/conanfile.py from conan import ConanFile +from conan.tools.files import load +import re class SystemNSSConan(ConanFile): name = "nss" - version = "3.93" - settings = "os", "arch", "compiler", "build_type" + def set_version(self): + content = load(self, "/usr/lib64/pkgconfig/nss.pc") + match = re.search(r"^Version:\s*(.+)$", content, re.MULTILINE) + self.version = match.group(1).strip() + def requirements(self): self.requires("nspr/4.35") self.requires("sqlite3/3.41.2") @@ -19,32 +24,32 @@ def requirements(self): def package_info(self): self.cpp_info.includedirs = ["/usr/include/nss3"] - self.cpp_info.libdirs = ["/usr/lib64"] def _library_name(lib,vers): return f"{lib}{vers}" - self.cpp_info.components["libnss"].libs.append(_library_name("nss", 3)) + + self.cpp_info.components["libnss"].system_libs.append(_library_name("nss", 3)) self.cpp_info.components["libnss"].requires = ["nssutil", "nspr::nspr"] - self.cpp_info.components["nssutil"].libs = [_library_name("nssutil", 3)] + self.cpp_info.components["nssutil"].system_libs = [_library_name("nssutil", 3)] self.cpp_info.components["nssutil"].requires = ["nspr::nspr"] if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["nssutil"].system_libs = ["pthread"] - self.cpp_info.components["softokn"].libs = [_library_name("softokn", 3)] + self.cpp_info.components["softokn"].system_libs = [_library_name("softokn", 3)] self.cpp_info.components["softokn"].requires = ["sqlite3::sqlite3", "nssutil", "nspr::nspr"] if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["softokn"].system_libs = ["pthread"] - self.cpp_info.components["nssdbm"].libs = [_library_name("nssdbm", 3)] + self.cpp_info.components["nssdbm"].system_libs = [_library_name("nssdbm", 3)] self.cpp_info.components["nssdbm"].requires = ["nspr::nspr", "nssutil"] if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["nssdbm"].system_libs = ["pthread"] - self.cpp_info.components["smime"].libs = [_library_name("smime", 3)] + self.cpp_info.components["smime"].system_libs = [_library_name("smime", 3)] self.cpp_info.components["smime"].requires = ["nspr::nspr", "libnss", "nssutil"] - self.cpp_info.components["ssl"].libs = [_library_name("ssl", 3)] + self.cpp_info.components["ssl"].system_libs = [_library_name("ssl", 3)] self.cpp_info.components["ssl"].requires = ["nspr::nspr", "libnss", "nssutil"] if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["ssl"].system_libs = ["pthread"] diff --git a/packages/conan/recipes/ocio/conanfile.py b/packages/conan/recipes/ocio/conanfile.py index d9d6c7e9..db63ba26 100644 --- a/packages/conan/recipes/ocio/conanfile.py +++ b/packages/conan/recipes/ocio/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/opencolorio/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/opencolorio/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration @@ -59,7 +59,7 @@ def requirements(self): if Version(self.version) < "2.2.0": self.requires("openexr/2.5.7") else: - self.requires("openexr/3.2.3") + self.requires("openexr/3.3.2") self.requires("imath/3.1.9", transitive_libs=True) if Version(self.version) < "2.0.0": diff --git a/packages/conan/recipes/oiio/conandata.yml b/packages/conan/recipes/oiio/conandata.yml index fb0029dc..1104a301 100644 --- a/packages/conan/recipes/oiio/conandata.yml +++ b/packages/conan/recipes/oiio/conandata.yml @@ -5,6 +5,12 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/openimageio/all/conandata.yml sources: + "3.0.8.1": + url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.8.1.tar.gz" + sha256: "1b9b0d27e802243c1aa490b951580d10e8be645459f8080bfa0ed6f213e1082a" + "3.0.7.0": + url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.7.0.tar.gz" + sha256: "2798e398b6ffd836ba7810e8ea510902a4aabc4a373ca0523a3f0d830c5eb103" "3.0.6.1": url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.6.1.tar.gz" sha256: "4d0fb92e4964f79dfaed77ac73f1a7f754c671a9f5ad29c7950c0844916ce5f5" @@ -20,6 +26,9 @@ sources: "3.0.1.0": url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.1.0.tar.gz" sha256: "7f84c2b9c13be74c4a187fefe3844b391374ba329aa63fbbca21fa232e43c87b" + "2.5.19.0": + url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v2.5.19.0.tar.gz" + sha256: "108bb43da6ba7dedf9197886ce5cc45771f1bbf62d88bcab8b080dd549cef03c" "2.5.16.0": url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v2.5.16.0.tar.gz" sha256: "e5438e28d34a5b0a09428ed77ec310edd47c141db1b259364859110847e161e7" @@ -72,6 +81,10 @@ patches: - patch_file: "patches/2.5.17.0-cmake-targets.patch" patch_description: "Ensure project builds correctly with Conan (don't pick up disabled dependencies from the system, fix different spelling of libraries)" patch_type: "conan" + "2.5.19.0": + - patch_file: "patches/2.5.17.0-cmake-targets.patch" + patch_description: "Ensure project builds correctly with Conan (don't pick up disabled dependencies from the system, fix different spelling of libraries)" + patch_type: "conan" "3.0.4.0": - patch_file: "patches/3.0.4.0-cmake-fmt.patch" patch_description: "Deal with generator expression from fmt Conan package" @@ -93,3 +106,10 @@ patches: - patch_file: "patches/3.0.6.1-imath-includes.txt" patch_description: "Missing includes when Imath from Conan package" patch_type: "conan" + "3.0.8.1": + - patch_file: "patches/3.0.8.1-cmake-fmt.patch" + patch_description: "Deal with generator expression from fmt Conan package" + patch_type: "conan" + - patch_file: "patches/3.0.8.1-imath-includes.txt" + patch_description: "Missing includes when Imath from Conan package" + patch_type: "conan" diff --git a/packages/conan/recipes/oiio/conanfile.py b/packages/conan/recipes/oiio/conanfile.py index db1dea21..99083ee6 100644 --- a/packages/conan/recipes/oiio/conanfile.py +++ b/packages/conan/recipes/oiio/conanfile.py @@ -172,7 +172,7 @@ def generate(self): tc.variables["INSTALL_FONTS"] = False tc.variables["INSTALL_CMAKE_HELPER"] = False tc.variables["EMBEDPLUGINS"] = True - tc.variables["USE_PYTHON"] = False + tc.variables["USE_PYTHON"] = True # ASWF: build Python bindings tc.variables["USE_EXTERNAL_PUGIXML"] = True tc.variables["BUILD_MISSING_FMT"] = False diff --git a/packages/conan/recipes/onetbb/all/conandata.yml b/packages/conan/recipes/onetbb/all/conandata.yml index 2d2b49a7..b7bf9ae6 100644 --- a/packages/conan/recipes/onetbb/all/conandata.yml +++ b/packages/conan/recipes/onetbb/all/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/c29c3a06d0c5d4fd98529a34586c4f60ab00f659/recipes/onetbb/all/conandata.yml sources: + "2022.1.0": + url: "https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2022.1.0.tar.gz" + sha256: "ed067603ece0dc832d2881ba5c516625ac2522c665d95f767ef6304e34f961b5" "2022.0.0": url: "https://github.com/oneapi-src/oneTBB/archive/refs/tags/v2022.0.0.tar.gz" sha256: "e8e89c9c345415b17b30a2db3095ba9d47647611662073f7fbf54ad48b7f3c2a" diff --git a/packages/conan/recipes/onetbb/config.yml b/packages/conan/recipes/onetbb/config.yml index 75d87f04..027b665c 100644 --- a/packages/conan/recipes/onetbb/config.yml +++ b/packages/conan/recipes/onetbb/config.yml @@ -5,6 +5,8 @@ # From: https://github.com/conan-io/conan-center-index/blob/d034b32b3106d282c32f0a23314b5c6ba1b0fa69/recipes/onetbb/config.yml versions: + "2022.1.0": + folder: all "2022.0.0": folder: all "2021.13.0": diff --git a/packages/conan/recipes/openal-soft/conanfile.py b/packages/conan/recipes/openal-soft/conanfile.py index b236994b..d436f0fe 100644 --- a/packages/conan/recipes/openal-soft/conanfile.py +++ b/packages/conan/recipes/openal-soft/conanfile.py @@ -14,8 +14,7 @@ class SystemOpenALSoftConan(ConanFile): def package_info(self): self.cpp_info.includedirs = ["/usr/include/AL"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["openal"] + self.cpp_info.system_libs = ["openal"] self.cpp_info.set_property("cmake_find_mode", "both") self.cpp_info.set_property("cmake_file_name", "OpenAL") diff --git a/packages/conan/recipes/openexr/conanfile.py b/packages/conan/recipes/openexr/conanfile.py index 84f708ce..7e1c01ea 100644 --- a/packages/conan/recipes/openexr/conanfile.py +++ b/packages/conan/recipes/openexr/conanfile.py @@ -71,7 +71,7 @@ def layout(self): def requirements(self): self.requires("zlib/[>=1.2.11 <2]") # Note: OpenEXR and Imath are versioned independently. - self.requires(f"imath/{os.environ['ASWF_IMATH_VERSION']}@{self.user}/{self.channel}", transitive_headers=True) + self.requires("imath/3.1.9", transitive_headers=True) if self._with_libdeflate: self.requires("libdeflate/1.19") # ASWF: add explicit dependencies on cpython diff --git a/packages/conan/recipes/openfx/CMakeLists.txt b/packages/conan/recipes/openfx/CMakeLists.txt new file mode 100644 index 00000000..5457a920 --- /dev/null +++ b/packages/conan/recipes/openfx/CMakeLists.txt @@ -0,0 +1,78 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/CMakeLists.txt + +cmake_minimum_required(VERSION 3.12) +project(openfx VERSION 1.4.0 LANGUAGES CXX) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +add_definitions(-D_HAS_AUTO_PTR_ETC) + +# Flags +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWINDOWS -DNOMINMAX -D_WIN32") +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations") + add_definitions(-Dlinux) +endif() + +# Conan +find_package(expat REQUIRED) +find_package(OpenGL REQUIRED) + +# Macros +set(SOURCE_SUBFOLDER ${CMAKE_CURRENT_LIST_DIR}/src) + +# Sources +set(OFX_HEADER_DIR "${SOURCE_SUBFOLDER}/include") +set(OFX_SUPPORT_HEADER_DIR "${SOURCE_SUBFOLDER}/Support/include") +set(OFX_SUPPORT_LIBRARY_DIR "${SOURCE_SUBFOLDER}/Support/Library") +set(OFX_PLUGINS_HEADER_DIR "${SOURCE_SUBFOLDER}/Support/Plugins/include") +set(OFX_HOSTSUPPORT_HEADER_DIR "${SOURCE_SUBFOLDER}/HostSupport/include") +set(OFX_HOSTSUPPORT_LIBRARY_DIR "${SOURCE_SUBFOLDER}/HostSupport/src") + +file(GLOB_RECURSE OFX_HEADER_FILES "${OFX_HEADER_DIR}/*.h") +file(GLOB_RECURSE OFX_SUPPORT_HEADER_FILES "${OFX_SUPPORT_HEADER_DIR}/*.h") +file(GLOB_RECURSE OFX_SUPPORT_LIBRARY_FILES "${OFX_SUPPORT_LIBRARY_DIR}/*.cpp") +file(GLOB_RECURSE OFX_PLUGINS_HEADER_FILES "${OFX_PLUGINS_HEADER_DIR}/*.H") +file(GLOB_RECURSE OFX_HOSTSUPPORT_HEADER_FILES "${OFX_HOSTSUPPORT_HEADER_DIR}/*.h") +file(GLOB_RECURSE OFX_HOSTSUPPORT_LIBRARY_FILES "${OFX_HOSTSUPPORT_LIBRARY_DIR}/*.cpp") + +# Support +add_library(OfxSupport STATIC + ${OFX_HEADER_FILES} + ${OFX_SUPPORT_HEADER_FILES} + ${OFX_SUPPORT_LIBRARY_FILES}) + +target_include_directories(OfxSupport PUBLIC + ${OFX_HEADER_DIR} + ${OFX_SUPPORT_HEADER_DIR}) + +# HostSupport +add_library(OfxHost + ${OFX_HEADER_FILES} + ${OFX_HOSTSUPPORT_HEADER_FILES} + ${OFX_HOSTSUPPORT_LIBRARY_FILES}) + +target_link_libraries(OfxHost PUBLIC expat::expat OpenGL::GL) + +target_include_directories(OfxHost PUBLIC + ${OFX_HEADER_DIR} + ${OFX_HOSTSUPPORT_HEADER_DIR}) + +# Link +set_target_properties(OfxSupport PROPERTIES LINKER_LANGUAGE CXX) +set_target_properties(OfxHost PROPERTIES LINKER_LANGUAGE CXX) + +# Install +install(FILES + ${OFX_HEADER_FILES} + ${OFX_SUPPORT_HEADER_FILES} + ${OFX_PLUGINS_HEADER_FILES} + ${OFX_HOSTSUPPORT_HEADER_FILES} + DESTINATION "include") + +include(GNUInstallDirs) +install(TARGETS OfxSupport OfxHost) diff --git a/packages/conan/recipes/openfx/cmake/OpenFX.cmake b/packages/conan/recipes/openfx/cmake/OpenFX.cmake new file mode 100644 index 00000000..5152ecbe --- /dev/null +++ b/packages/conan/recipes/openfx/cmake/OpenFX.cmake @@ -0,0 +1,22 @@ +# Add a new OFX plugin target +# Arguments: TARGET +function(add_ofx_plugin TARGET) + add_library(${TARGET} SHARED) + set_target_properties(${TARGET} PROPERTIES SUFFIX ".ofx" PREFIX "") + + if(NOT DEFINED OFX_SUPPORT_SYMBOLS_DIR) + if (NOT DEFINED CONAN_LIB_DIRS_OPENFX) + message(FATAL_ERROR "Define OFX_SUPPORT_SYMBOLS_DIR to use add_ofx_plugin().") + endif() + set(OFX_SUPPORT_SYMBOLS_DIR ${CONAN_LIB_DIRS_OPENFX}/symbols) + endif() + + # Add extra flags to the link step of the plugin + if(APPLE) + set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-bundle -fvisibility=hidden -exported_symbols_list,${OFX_SUPPORT_SYMBOLS_DIR}/osx.symbols") + elseif(WIN32) + set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "/def:${OFX_SUPPORT_SYMBOLS_DIR}/windows.symbols") + else() + set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-Wl,-fvisibility=hidden,--version-script=${OFX_SUPPORT_SYMBOLS_DIR}/linux.symbols") + endif() +endfunction() diff --git a/packages/conan/recipes/openfx/conandata.yml b/packages/conan/recipes/openfx/conandata.yml new file mode 100644 index 00000000..1f985157 --- /dev/null +++ b/packages/conan/recipes/openfx/conandata.yml @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/conandata.yml + +sources: + "1.5s": + url: "https://github.com/AcademySoftwareFoundation/openfx/archive/refs/tags/OFX_Release_1.5s.tar.gz" + "1.5": + url: "https://github.com/AcademySoftwareFoundation/openfx/archive/refs/tags/OFX_Release_1.5.tar.gz" + "1.4": + url: "https://github.com/ofxa/openfx/archive/refs/tags/OFX_Release_1_4_TAG.tar.gz" + sha256: "1f2d057b2cff025979f631f092f138020315524d4c0c0dcc2dccdadc2313a62f" diff --git a/packages/conan/recipes/openfx/conanfile.py b/packages/conan/recipes/openfx/conanfile.py new file mode 100644 index 00000000..526d101c --- /dev/null +++ b/packages/conan/recipes/openfx/conanfile.py @@ -0,0 +1,118 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/conanfile.py + +import os + +from conan import ConanFile +from conan.tools.apple import is_apple_os +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import copy, get, rmdir + +required_conan_version = ">=1.53.0" + + +class openfx(ConanFile): + name = "openfx" + description = "OpenFX image processing plug-in standard." + license = "BSD-3-Clause" + url = "https://github.com/conan-io/conan-center-index" + homepage = "http://openeffects.org" + topics = ("image-processing", "standard") + + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + } + + def export_sources(self): + copy(self, "CMakeLists.txt", src=self.recipe_folder, dst=self.export_sources_folder) + copy(self, "*", + src=os.path.join(self.recipe_folder, "cmake"), + dst=os.path.join(self.export_sources_folder, "cmake")) + copy(self, "*", + src=os.path.join(self.recipe_folder, "symbols"), + dst=os.path.join(self.export_sources_folder, "symbols")) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + + def requirements(self): + self.requires("opengl/system") + self.requires("expat/[>=2.6.2 <3]") + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, 11) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + tc.generate() + tc = CMakeDeps(self) + tc.generate() + + def build(self): + cmake = CMake(self) + cmake.configure(build_script_folder=self.source_path.parent) + cmake.build() + + @property + def _build_modules(self): + return [os.path.join("lib", "cmake", "OpenFX.cmake")] + + def package(self): + cmake = CMake(self) + cmake.install() + rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + copy(self, "*.symbols", + src=os.path.join(self.export_sources_folder, "symbols"), + dst=os.path.join(self.package_folder, "lib", "symbols")) + copy(self, "*.cmake", + src=os.path.join(self.export_sources_folder, "cmake"), + dst=os.path.join(self.package_folder, "lib", "cmake")) + copy(self, "LICENSE", + src=os.path.join(self.source_folder, "Support"), + dst=os.path.join(self.package_folder, "licenses")) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "openfx") + self.cpp_info.set_property("cmake_target_name", "openfx::openfx") + self.cpp_info.set_property("cmake_build_modules", self._build_modules) + self.cpp_info.builddirs.append(os.path.join("lib", "cmake")) + + if self.options.shared: + self.cpp_info.libs = ["OfxSupport"] + else: + self.cpp_info.libs = ["OfxHost", "OfxSupport"] + + if self.settings.os in ("Linux", "FreeBSD"): + self.cpp_info.system_libs.extend(["GL"]) + if is_apple_os(self): + self.cpp_info.frameworks = ["CoreFoundation", "OpenGL"] + + # TODO: to remove in conan v2 once cmake_find_package_* generators removed + self.cpp_info.names["cmake_find_package"] = "openfx" + self.cpp_info.names["cmake_find_package_multi"] = "openfx" + self.cpp_info.build_modules["cmake_find_package"] = self._build_modules + self.cpp_info.build_modules["cmake_find_package_multi"] = self._build_modules diff --git a/packages/conan/recipes/openfx/symbols/linux.symbols b/packages/conan/recipes/openfx/symbols/linux.symbols new file mode 100644 index 00000000..f1dc7527 --- /dev/null +++ b/packages/conan/recipes/openfx/symbols/linux.symbols @@ -0,0 +1,7 @@ +OFX_1.0 { + global: + OfxGetNumberOfPlugins; + OfxGetPlugin; + local: + *; +}; diff --git a/packages/conan/recipes/openfx/symbols/os.symbols b/packages/conan/recipes/openfx/symbols/os.symbols new file mode 100644 index 00000000..669ae535 --- /dev/null +++ b/packages/conan/recipes/openfx/symbols/os.symbols @@ -0,0 +1,2 @@ +_OfxGetPlugin +_OfxGetNumberOfPlugins diff --git a/packages/conan/recipes/openfx/symbols/windows.symbols b/packages/conan/recipes/openfx/symbols/windows.symbols new file mode 100644 index 00000000..e6734454 --- /dev/null +++ b/packages/conan/recipes/openfx/symbols/windows.symbols @@ -0,0 +1,3 @@ +EXPORTS + OfxGetPlugin + OfxGetNumberOfPlugins diff --git a/packages/conan/recipes/openfx/test_package/CMakeLists.txt b/packages/conan/recipes/openfx/test_package/CMakeLists.txt new file mode 100644 index 00000000..ad4a1f82 --- /dev/null +++ b/packages/conan/recipes/openfx/test_package/CMakeLists.txt @@ -0,0 +1,26 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ON) +add_definitions(-D_HAS_AUTO_PTR_ETC) + +# Conan +find_package(openfx REQUIRED CONFIG) + +# Flags +if(MSVC) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWINDOWS -DNOMINMAX") +else() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations") +endif() + +# Build +add_executable(test_package invert.cpp) +target_link_libraries(test_package openfx::openfx) diff --git a/packages/conan/recipes/openfx/test_package/conanfile.py b/packages/conan/recipes/openfx/test_package/conanfile.py new file mode 100644 index 00000000..cd738481 --- /dev/null +++ b/packages/conan/recipes/openfx/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(f"{bin_path} --help", env="conanrun") diff --git a/packages/conan/recipes/openfx/test_package/invert.cpp b/packages/conan/recipes/openfx/test_package/invert.cpp new file mode 100644 index 00000000..5c9cc349 --- /dev/null +++ b/packages/conan/recipes/openfx/test_package/invert.cpp @@ -0,0 +1,307 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/test_package/invert.cpp +*/ + +/* +OFX Invert Example plugin, a plugin that illustrates the use of the OFX Support library. + +Copyright (C) 2007 The Open Effects Association Ltd +Author Bruno Nicoletti bruno@thefoundry.co.uk + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + +* Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +* Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation +and/or other materials provided with the distribution. +* Neither the name The Open Effects Association Ltd, nor the names of its +contributors may be used to endorse or promote products derived from this +software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +The Open Effects Association Ltd +1 Wardour St +London W1D 6PA +England + + +*/ + +#ifdef _WINDOWS +#include +#endif + +#include +#include +#include +#include +#include + +// Base class for the RGBA and the Alpha processor +class InvertBase : public OFX::ImageProcessor { +protected : + OFX::Image *_srcImg; +public : + /** @brief no arg ctor */ + InvertBase(OFX::ImageEffect &instance) + : OFX::ImageProcessor(instance) + , _srcImg(0) + { + } + + /** @brief set the src image */ + void setSrcImg(OFX::Image *v) {_srcImg = v;} +}; + +// template to do the RGBA processing +template +class ImageInverter : public InvertBase { +public : + // ctor + ImageInverter(OFX::ImageEffect &instance) + : InvertBase(instance) + {} + + // and do some processing + void multiThreadProcessImages(OfxRectI procWindow) + { + for(int y = procWindow.y1; y < procWindow.y2; y++) { + if(_effect.abort()) break; + + PIX *dstPix = (PIX *) _dstImg->getPixelAddress(procWindow.x1, y); + + for(int x = procWindow.x1; x < procWindow.x2; x++) { + + PIX *srcPix = (PIX *) (_srcImg ? _srcImg->getPixelAddress(x, y) : 0); + + // do we have a source image to scale up + if(srcPix) { + for(int c = 0; c < nComponents; c++) { + dstPix[c] = max - srcPix[c]; + } + } + else { + // no src pixel here, be black and transparent + for(int c = 0; c < nComponents; c++) { + dstPix[c] = 0; + } + } + + // increment the dst pixel + dstPix += nComponents; + } + } + } +}; + +//////////////////////////////////////////////////////////////////////////////// +/** @brief The plugin that does our work */ +class InvertPlugin : public OFX::ImageEffect { +protected : + // do not need to delete these, the ImageEffect is managing them for us + OFX::Clip *dstClip_; + OFX::Clip *srcClip_; + +public : + /** @brief ctor */ + InvertPlugin(OfxImageEffectHandle handle) + : ImageEffect(handle) + , dstClip_(0) + , srcClip_(0) + { + dstClip_ = fetchClip(kOfxImageEffectOutputClipName); + srcClip_ = fetchClip(kOfxImageEffectSimpleSourceClipName); + } + + /* Override the render */ + virtual void render(const OFX::RenderArguments &args); + + /* set up and run a processor */ + void setupAndProcess(InvertBase &, const OFX::RenderArguments &args); +}; + + +//////////////////////////////////////////////////////////////////////////////// +/** @brief render for the filter */ + +//////////////////////////////////////////////////////////////////////////////// +// basic plugin render function, just a skelington to instantiate templates from + + +/* set up and run a processor */ +void +InvertPlugin::setupAndProcess(InvertBase &processor, const OFX::RenderArguments &args) +{ + // get a dst image + std::auto_ptr dst(dstClip_->fetchImage(args.time)); + OFX::BitDepthEnum dstBitDepth = dst->getPixelDepth(); + OFX::PixelComponentEnum dstComponents = dst->getPixelComponents(); + + // fetch main input image + std::auto_ptr src(srcClip_->fetchImage(args.time)); + + // make sure bit depths are sane + if(src.get()) { + OFX::BitDepthEnum srcBitDepth = src->getPixelDepth(); + OFX::PixelComponentEnum srcComponents = src->getPixelComponents(); + + // see if they have the same depths and bytes and all + if(srcBitDepth != dstBitDepth || srcComponents != dstComponents) + throw int(1); // HACK!! need to throw an sensible exception here! + } + + // set the images + processor.setDstImg(dst.get()); + processor.setSrcImg(src.get()); + + // set the render window + processor.setRenderWindow(args.renderWindow); + + // Call the base class process member, this will call the derived templated process code + processor.process(); +} + +// the overridden render function +void +InvertPlugin::render(const OFX::RenderArguments &args) +{ + // instantiate the render code based on the pixel depth of the dst clip + OFX::BitDepthEnum dstBitDepth = dstClip_->getPixelDepth(); + OFX::PixelComponentEnum dstComponents = dstClip_->getPixelComponents(); + + // do the rendering + if(dstComponents == OFX::ePixelComponentRGBA) { + switch(dstBitDepth) { +case OFX::eBitDepthUByte : { + ImageInverter fred(*this); + setupAndProcess(fred, args); + } + break; + +case OFX::eBitDepthUShort : { + ImageInverter fred(*this); + setupAndProcess(fred, args); + } + break; + +case OFX::eBitDepthFloat : { + ImageInverter fred(*this); + setupAndProcess(fred, args); + } + break; +default : + OFX::throwSuiteStatusException(kOfxStatErrUnsupported); + } + } + else { + switch(dstBitDepth) { +case OFX::eBitDepthUByte : { + ImageInverter fred(*this); + setupAndProcess(fred, args); + } + break; + +case OFX::eBitDepthUShort : { + ImageInverter fred(*this); + setupAndProcess(fred, args); + } + break; + +case OFX::eBitDepthFloat : { + ImageInverter fred(*this); + setupAndProcess(fred, args); + } + break; +default : + OFX::throwSuiteStatusException(kOfxStatErrUnsupported); + } + } +} + +mDeclarePluginFactory(InvertExamplePluginFactory, {}, {}); + +using namespace OFX; +void InvertExamplePluginFactory::describe(OFX::ImageEffectDescriptor &desc) +{ + // basic labels + desc.setLabels("Invert", "Invert", "Invert"); + desc.setPluginGrouping("OFX"); + + // add the supported contexts, only filter at the moment + desc.addSupportedContext(eContextFilter); + + // add supported pixel depths + desc.addSupportedBitDepth(eBitDepthUByte); + desc.addSupportedBitDepth(eBitDepthUShort); + desc.addSupportedBitDepth(eBitDepthFloat); + + // set a few flags + desc.setSingleInstance(false); + desc.setHostFrameThreading(false); + desc.setSupportsMultiResolution(true); + desc.setSupportsTiles(true); + desc.setTemporalClipAccess(false); + desc.setRenderTwiceAlways(false); + desc.setSupportsMultipleClipPARs(false); + +} + +void InvertExamplePluginFactory::describeInContext(OFX::ImageEffectDescriptor &desc, OFX::ContextEnum /*context*/) +{ + // Source clip only in the filter context + // create the mandated source clip + ClipDescriptor *srcClip = desc.defineClip(kOfxImageEffectSimpleSourceClipName); + srcClip->addSupportedComponent(ePixelComponentRGBA); + srcClip->addSupportedComponent(ePixelComponentAlpha); + srcClip->setTemporalClipAccess(false); + srcClip->setSupportsTiles(true); + srcClip->setIsMask(false); + + // create the mandated output clip + ClipDescriptor *dstClip = desc.defineClip(kOfxImageEffectOutputClipName); + dstClip->addSupportedComponent(ePixelComponentRGBA); + dstClip->addSupportedComponent(ePixelComponentAlpha); + dstClip->setSupportsTiles(true); + +} + +OFX::ImageEffect* InvertExamplePluginFactory::createInstance(OfxImageEffectHandle handle, OFX::ContextEnum /*context*/) +{ + return new InvertPlugin(handle); +} + +namespace OFX +{ + namespace Plugin + { + void getPluginIDs(OFX::PluginFactoryArray &ids) + { + static InvertExamplePluginFactory p("net.sf.openfx.invertPlugin", 1, 0); + ids.push_back(&p); + } + } +} + +#define SUCCESS 0 +#define FAIL 1 + +int main() +{ + return OfxGetNumberOfPlugins() == 1 ? SUCCESS : FAIL; +} diff --git a/packages/conan/recipes/openjpeg/conanfile.py b/packages/conan/recipes/openjpeg/conanfile.py index 2c36a2b4..364efcd9 100644 --- a/packages/conan/recipes/openjpeg/conanfile.py +++ b/packages/conan/recipes/openjpeg/conanfile.py @@ -5,17 +5,21 @@ # From: https://github.com/conan-io/conan-center-index/blob/f83ca9df2f14d01f49b186cb279740c295ae09c9/recipes/openjpeg/all/conanfile.py from conan import ConanFile +from conan.tools.files import load +import re class SystemOpenjpegConan(ConanFile): name = "openjpeg" - version = "2.4.0" # for OIIO recipe - settings = "os", "arch", "compiler", "build_type" + + def set_version(self): + content = load(self, "/usr/lib64/pkgconfig/libopenjp2.pc") + match = re.search(r"^Version:\s*(.+)$", content, re.MULTILINE) + self.version = match.group(1).strip() def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["openjp2"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["openjp2"] self.cpp_info.set_property("cmake_file_name", "OpenJPEG") self.cpp_info.set_property("cmake_target_name", "openjp2") diff --git a/packages/conan/recipes/openssl/conanfile.py b/packages/conan/recipes/openssl/conanfile.py index 403e21bf..05ec2296 100644 --- a/packages/conan/recipes/openssl/conanfile.py +++ b/packages/conan/recipes/openssl/conanfile.py @@ -16,9 +16,8 @@ class SystemOpenSSLConan(ConanFile): } def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["ssl", "crypto"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["ssl", "crypto"] self.cpp_info.set_property("cmake_file_name", "OpenSSL") self.cpp_info.set_property("cmake_target_name", "OpenSSL::OpenSSL") diff --git a/packages/conan/recipes/opensubdiv/conandata.yml b/packages/conan/recipes/opensubdiv/conandata.yml index 9ca7b618..57d10790 100644 --- a/packages/conan/recipes/opensubdiv/conandata.yml +++ b/packages/conan/recipes/opensubdiv/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/opensubdiv/all/conandata.yml sources: + "3.6.1": + url: "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_6_1.tar.gz" + sha256: "e9d99a480d80e999667643747c76eb0138d36c418fc154fd71b4bd65be103d52" "3.6.0": url: "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/v3_6_0.tar.gz" sha256: "bebfd61ab6657a4f4ff27845fb66a167d00395783bfbd253254d87447ed1d879" @@ -15,6 +18,14 @@ sources: url: "https://github.com/PixarAnimationStudios/OpenSubdiv/archive/refs/tags/v3_4_4.tar.gz" sha256: "20d49f80a2b778ad4d01f091ad88d8c2f91cf6c7363940c6213241ce6f1048fb" patches: + "3.6.1": + - patch_file: "patches/3.6.0-0001-cmake-no-rpath.patch" + patch_description: "CMake: do not populate rpath with absolute paths" + patch_type: "conan" + - patch_file: "patches/cmake-no-versions.diff" + patch_description: "Override TBB and Ptex version requirements" + - patch_file: "patches/cmake-ptex-lib64.diff" + patch_description: "Find Ptex DSO in lib64" "3.6.0": - patch_file: "patches/3.6.0-0002-cmake-no-rpath.patch" patch_description: "CMake: do not populate rpath with absolute paths" diff --git a/packages/conan/recipes/opensubdiv/conanfile.py b/packages/conan/recipes/opensubdiv/conanfile.py index 60ea8e80..938099bd 100644 --- a/packages/conan/recipes/opensubdiv/conanfile.py +++ b/packages/conan/recipes/opensubdiv/conanfile.py @@ -2,12 +2,12 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/opensubdiv/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/opensubdiv/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration from conan.tools.build import check_min_cppstd, valid_min_cppstd -from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout +from conan.tools.cmake import CMake, CMakeDeps,CMakeToolchain, cmake_layout from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, replace_in_file, rm, rmdir from conan.tools.scm import Version import os @@ -40,13 +40,13 @@ class OpenSubdivConan(ConanFile): "shared": False, "fPIC": True, "with_tbb": True, # ASWF - "with_opengl": True, # ASWF + "with_opengl": True, "with_omp": False, "with_cuda": True, # ASWF "with_clew": False, "with_opencl": False, "with_dx": False, - "with_metal": False, + "with_metal": True, } short_paths = True @@ -88,16 +88,31 @@ def layout(self): self.cpp.package.libdirs = ["lib64"] def requirements(self): - if self.options.with_opengl: - self.requires(f"glfw/{os.environ['ASWF_GLFW_VERSION']}@{self.user}/{self.channel}") - self.requires(f"glew/{os.environ['ASWF_GLEW_VERSION']}@{self.user}/{self.channel}") if self.options.with_tbb: # OpenSubdiv < 3.6.0 support only onettbb/2020.x.x # https://github.com/PixarAnimationStudios/OpenSubdiv/pull/1317 if Version(self.version) < "3.6.0": self.requires("onetbb/2020.3.3", transitive_headers=True) else: - self.requires("onetbb/2021.10.0", transitive_headers=True) + self.requires("onetbb/2021.12.0", transitive_headers=True) + if self.options.with_opengl: + self.requires("opengl/system") + self.requires("glfw/3.4") + self.requires(f"glew/{os.environ['ASWF_GLEW_VERSION']}@{self.user}/{self.channel}") + if self.options.get_safe("with_metal"): + self.requires("metal-cpp/14.2") + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + min_version = self._minimum_compilers_version.get(str(self.settings.compiler), False) + if min_version and Version(self.settings.compiler.version) < min_version: + raise ConanInvalidConfiguration( + f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support." + ) + + if self.options.shared and self.settings.os == "Windows": + raise ConanInvalidConfiguration(f"{self.ref} shared not supported on Windows") def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -138,6 +153,9 @@ def generate(self): tc.variables["CMAKE_LIBDIR_BASE"] = "lib64" # ASWF: DSOs in lib64 tc.generate() + tc = CMakeDeps(self) + tc.generate() + def _patch_sources(self): apply_conandata_patches(self) if self.settings.os == "Macos" and not self._osd_gpu_enabled: @@ -180,12 +198,14 @@ def package_info(self): if self._osd_gpu_enabled: self.cpp_info.components["osdgpu"].set_property("cmake_target_name", f"OpenSubdiv::osdgpu{target_suffix}") self.cpp_info.components["osdgpu"].libs = ["osdGPU"] + self.cpp_info.components["osdgpu"].requires = ["osdcpu"] + if self.options.with_opengl: + self.cpp_info.components["osdgpu"].requires.extend(["opengl::opengl", "glfw::glfw"]) + if self.options.get_safe("with_metal"): + self.cpp_info.components["osdgpu"].requires.append("metal-cpp::metal-cpp") dl_required = self.options.with_opengl or self.options.with_opencl if self.settings.os in ["Linux", "FreeBSD"] and dl_required: self.cpp_info.components["osdgpu"].system_libs = ["dl"] - # ASWF: building with_opengl - if self.options.with_opengl: - self.cpp_info.components["osdgpu"].requires = ["glew::glew", "glfw::glfw"] # TODO: to remove in conan v2 self.cpp_info.names["cmake_find_package"] = "OpenSubdiv" diff --git a/packages/conan/recipes/opensubdiv/test_package/CMakeLists.txt b/packages/conan/recipes/opensubdiv/test_package/CMakeLists.txt index 52542bac..f74243fa 100644 --- a/packages/conan/recipes/opensubdiv/test_package/CMakeLists.txt +++ b/packages/conan/recipes/opensubdiv/test_package/CMakeLists.txt @@ -4,7 +4,7 @@ # # From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/opensubdiv/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES CXX) find_package(OpenSubdiv REQUIRED CONFIG) diff --git a/packages/conan/recipes/openvdb/conandata.yml b/packages/conan/recipes/openvdb/conandata.yml new file mode 100644 index 00000000..eadd12f7 --- /dev/null +++ b/packages/conan/recipes/openvdb/conandata.yml @@ -0,0 +1,25 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openvdb/all/conandata.yml + +sources: + "12.0.1": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v12.0.1.tar.gz" + sha256: "a3c8724ecadabaf558b6e1bd6f1d695e93b82a7cfdf144b8551e5253340ddce0" + "12.0.0": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v12.0.0.tar.gz" + sha256: "23ceb5b18a851f45af118f718a9dd3001efaee364e3f623c37ffbdad03b8905f" + "11.0.0": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v11.0.0.tar.gz" + sha256: "6314ff1db057ea90050763e7b7d7ed86d8224fcd42a82cdbb9c515e001b96c74" + "10.1.0": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v10.1.0.tar.gz" + sha256: "2746236e29659a0d35ab90d832f7c7987dd2537587a1a2f9237d9c98afcd5817" + "10.0.1": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v10.0.1.tar.gz" + sha256: "887a3391fbd96b20c77914f4fb3ab4b33d26e5fc479aa036d395def5523c622f" + "9.1.0": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v9.1.0.tar.gz" + sha256: "914ee417b4607c75c95b53bc73a0599de4157c7d6a32e849e80f24e40fb64181" diff --git a/packages/conan/recipes/openvdb/conanfile.py b/packages/conan/recipes/openvdb/conanfile.py new file mode 100644 index 00000000..f81d8121 --- /dev/null +++ b/packages/conan/recipes/openvdb/conanfile.py @@ -0,0 +1,310 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openvdb/all/conanfile.py + +import os +import re + +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.env import VirtualBuildEnv +from conan.tools.files import copy, get, rm, replace_in_file +from conan.tools.microsoft import is_msvc +from conan.tools.scm import Version + +required_conan_version = ">=1.53.0" + + +class OpenVDBConan(ConanFile): + name = "openvdb" + description = ( + "OpenVDB is an open source C++ library comprising a novel hierarchical data" + "structure and a large suite of tools for the efficient storage and " + "manipulation of sparse volumetric data discretized on three-dimensional grids." + ) + license = "MPL-2.0" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/AcademySoftwareFoundation/openvdb" + topics = ("voxel", "voxelizer", "volume-rendering", "fx", "vdb") + + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "build_ax": [True, False], + "simd": [None, "SSE42", "AVX"], + "use_colored_output": [True, False], + "use_delayed_loading": [True, False], + "use_explicit_instantiation": [True, False], + "use_imath_half": [True, False], + "with_blosc": [True, False], + # Deprecated because EXR is only used when building executables, which the recipe does not support + "with_exr": ["deprecated", True, False], + "with_log4cplus": [True, False], + "with_zlib": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + "build_ax": False, + "simd": None, + "use_colored_output": False, + "use_delayed_loading": False, + "use_explicit_instantiation": False, + "use_imath_half": True, + "with_blosc": True, + "with_exr": "deprecated", + "with_log4cplus": False, # Disabled by default because it is not compatible with C++17 + "with_zlib": True, + } + options_description = { + "build_ax": "Build the OpenVDB AX library.", + "simd": ( + "Choose whether to enable SIMD compiler flags or not. " + "Although not required, it is strongly recommended to enable SIMD. AVX implies SSE42." + ), + "use_colored_output": "Always produce ANSI-colored output (GNU/Clang only).", + "use_delayed_loading": "Build the core OpenVDB library with delayed-loading.", + "use_explicit_instantiation": ( + "Use explicit instantiation for all supported classes and methods against a pre-defined " + "list of OpenVDB trees. This makes the core library larger and slower to compile, but speeds up " + "the compilation of all dependent code by bypassing the expensive template instantiation. " + "Disabled by default in ConanCenter to avoid excessive memory usage during compilation." + ), + "use_imath_half": ( + "Use the definition of half-precision floating point types from the Imath library. " + "If False, the embedded definition provided by OpenVDB is used. " + "You may set this to on to force Imath half to be used if you know it to be required." + ), + "with_blosc": "Use Blosc for improved disk compression. Recommended.", + "with_log4cplus": "Use log4cplus for improved OpenVDB Logging.", + "with_zlib": "Use ZLib for disk serialization compression. ZLib can only be disabled if Blosc is also disabled.", + } + + @property + def _min_cppstd(self): + return 17 if Version(self.version) >= "10.0.0" else 14 + + @property + def _compilers_min_version(self): + if Version(self.version) >= "10.0.0": + # https://github.com/AcademySoftwareFoundation/openvdb/blob/v10.0.1/doc/dependencies.txt#L56-L84 + return { + "msvc": "192.8", + "Visual Studio": "16", + "gcc": "9.3.1", + "clang": "5.0", + "apple-clang": "12.0", + "intel-cc": "19", + } + else: + # https://github.com/AcademySoftwareFoundation/openvdb/blob/v9.1.0/doc/dependencies.txt#L56-L84 + return { + "msvc": "191.0", + "Visual Studio": "15", + "gcc": "6.3.1", + "clang": "3.8", + "apple-clang": "10.0", + "intel-cc": "17", + } + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + if is_msvc(self): + # Supported by GCC and Clang only + del self.options.use_colored_output + if Version(self.version) < "10.0.0": + del self.options.use_explicit_instantiation + del self.options.use_delayed_loading + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + # ASWF: DSOs in lib64 + self.cpp.package.libdirs = ["lib64"] + + def package_id(self): + # with_exr is deprecated and has no effect + del self.info.options.with_exr + + def requirements(self): + # https://github.com/AcademySoftwareFoundation/openvdb/blob/v10.0.1/doc/dependencies.txt#L36-L84 + self.requires("boost/1.84.0", transitive_headers=True) + self.requires("onetbb/2021.10.0", transitive_headers=True, transitive_libs=True) + if self.options.use_imath_half: + self.requires("imath/3.1.9", transitive_headers=True, transitive_libs=True) + if self.options.with_zlib: + self.requires("zlib/[>=1.2.11 <2]") + if self.options.with_blosc: + self.requires("c-blosc/1.21.5") + if self.options.with_log4cplus: + # log4cplus 2.x is not supported + self.requires("log4cplus/1.2.2", transitive_headers=True) + + def _check_compiler_version(self): + compiler = str(self.settings.compiler) + minimum_version = self._compilers_min_version.get(compiler, False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.name} requires a {compiler} version greater than {minimum_version}" + ) + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + if self.settings.arch not in ("x86", "x86_64"): + if self.options.simd: + raise ConanInvalidConfiguration("Only intel architectures support SSE4 or AVX.") + self._check_compiler_version() + if self.options.with_exr != "deprecated": + self.output.warning("with_exr option is deprecated, do not use anymore.") + + @property + def _settings_build(self): + return getattr(self, "settings_build", self.settings) + + def build_requirements(self): + if Version(self.version) >= "10.0.0": + self.tool_requires("cmake/[>=3.18 <4]") + if self.options.build_ax: + if self._settings_build.os == "Windows": + self.tool_requires("winflexbison/2.5.25") + else: + self.tool_requires("bison/3.8.2") + self.tool_requires("flex/2.6.4") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + env = VirtualBuildEnv(self) + env.generate() + + tc = CMakeToolchain(self) + tc.variables["Boost_USE_STATIC_LIBS"] = not self.dependencies["boost"].options.shared + tc.variables["OPENVDB_BUILD_AX"] = self.options.build_ax + tc.variables["OPENVDB_BUILD_BINARIES"] = False + tc.variables["OPENVDB_BUILD_CORE"] = True + tc.variables["OPENVDB_BUILD_DOCS"] = False + tc.variables["OPENVDB_BUILD_HOUDINI_ABITESTS"] = False + tc.variables["OPENVDB_BUILD_HOUDINI_PLUGIN"] = False + tc.variables["OPENVDB_BUILD_MAYA_PLUGIN"] = False + tc.variables["OPENVDB_BUILD_NANOVDB"] = False # nanovdb should be packaged separately in CCI + tc.variables["OPENVDB_BUILD_PYTHON_MODULE"] = False + tc.variables["OPENVDB_CORE_SHARED"] = self.options.shared + tc.variables["OPENVDB_CORE_STATIC"] = not self.options.shared + tc.variables["OPENVDB_CXX_STRICT"] = False + tc.variables["OPENVDB_DISABLE_BOOST_IMPLICIT_LINKING"] = True + tc.variables["OPENVDB_ENABLE_RPATH"] = True + tc.variables["OPENVDB_ENABLE_UNINSTALL"] = False + tc.variables["OPENVDB_FUTURE_DEPRECATION"] = True + tc.variables["OPENVDB_INSTALL_CMAKE_MODULES"] = False + tc.variables["OPENVDB_SIMD"] = self.options.simd + tc.variables["OPENVDB_USE_DELAYED_LOADING"] = self.options.get_safe("use_delayed_loading", False) + tc.variables["USE_AX"] = False # used only by Python bindings and the Houdini plugin + tc.variables["USE_BLOSC"] = self.options.with_blosc + tc.variables["USE_COLORED_OUTPUT"] = self.options.get_safe("use_colored_output", False) + tc.variables["USE_EXPLICIT_INSTANTIATION"] = self.options.get_safe("use_explicit_instantiation", False) + tc.variables["USE_EXR"] = False + tc.variables["USE_HOUDINI"] = False + tc.variables["USE_IMATH_HALF"] = self.options.get_safe("use_imath_half", False) + tc.variables["USE_LOG4CPLUS"] = self.options.with_log4cplus + tc.variables["USE_MAYA"] = False + tc.variables["USE_NANOVDB"] = False + tc.variables["USE_PKGCONFIG"] = False + tc.variables["USE_PNG"] = False + tc.variables["USE_STATIC_DEPENDENCIES"] = False + tc.variables["USE_TBB"] = True # Only affects the nanovdb component + tc.variables["USE_ZLIB"] = self.options.with_zlib + tc.generate() + + tc = CMakeDeps(self) + tc.set_property("c-blosc", "cmake_file_name", "Blosc") + tc.set_property("c-blosc", "cmake_target_name", "Blosc::blosc") + tc.set_property("openexr", "cmake_file_name", "IlmBase") + tc.set_property("openexr::ilmbase_half", "cmake_target_name", "IlmBase::Half") + tc.set_property("log4cplus", "cmake_target_name", "Log4cplus::log4cplus") + tc.generate() + + def _patch_sources(self): + # Remove FindXXX files from OpenVDB. Let Conan do the job + rm(self, "Find*.cmake", os.path.join(self.source_folder, "cmake"), recursive=True) + # Relax version checks in find_package(), + # since the config/module files produced by CMakeDeps do not support gt major version checks + cmakelists = self.source_path.joinpath("openvdb", "openvdb", "CMakeLists.txt") + cmakelists.write_text(re.sub(r"\$\{MINIMUM_\S+_VERSION}", "", cmakelists.read_text())) + replace_in_file(self, os.path.join(self.source_folder, "openvdb", "openvdb", "CMakeLists.txt"), + "OPENVDB_FUTURE_DEPRECATION", "FALSE") + + def build(self): + self._patch_sources() + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: licenses separate per package + copy(self, "LICENSE", + dst=os.path.join(self.package_folder, "licenses", self.name), + src=self.source_folder) + cmake = CMake(self) + cmake.install() + + @property + def _public_defines(self): + defines = [] + if self.options.shared: + defines.append("OPENVDB_DLL") + else: + defines.append("OPENVDB_STATICLIB") + if self.settings.os == "Windows": + defines.append("_WIN32") + defines.append("NOMINMAX") + if self.options.with_log4cplus: + defines.append("OPENVDB_USE_LOG4CPLUS") + return defines + + def package_info(self): + self.cpp_info.set_property("cmake_find_mode", "both") + self.cpp_info.set_property("cmake_file_name", "OpenVDB") + self.cpp_info.set_property("cmake_target_name", "OpenVDB::openvdb") + + # TODO: back to global scope in conan v2 once cmake_find_package_* generators removed + main_component = self.cpp_info.components["openvdb-core"] + lib_prefix = "lib" if is_msvc(self) and not self.options.shared else "" + main_component.libs = [lib_prefix + "openvdb"] + main_component.defines = self._public_defines + if self.settings.os in ("Linux", "FreeBSD"): + main_component.system_libs = ["pthread"] + + main_component.requires = [ + "boost::iostreams", + "boost::system", + "onetbb::onetbb", + ] + if self.settings.os == "Windows": + main_component.requires.append("boost::disable_autolinking") + if self.options.with_zlib: + main_component.requires.append("zlib::zlib") + if self.options.with_blosc: + main_component.requires.append("c-blosc::c-blosc") + if self.options.with_log4cplus: + main_component.requires.append("log4cplus::log4cplus") + if self.options.use_imath_half: + main_component.requires.append("imath::imath") + + # TODO: to remove in conan v2 once cmake_find_package_* generators removed + self.cpp_info.names["cmake_find_package"] = "OpenVDB" + self.cpp_info.names["cmake_find_package_multi"] = "OpenVDB" + main_component.names["cmake_find_package"] = "openvdb" + main_component.names["cmake_find_package_multi"] = "openvdb" + main_component.set_property("cmake_target_name", "OpenVDB::openvdb") diff --git a/packages/conan/recipes/openvdb/test_package/CMakeLists.txt b/packages/conan/recipes/openvdb/test_package/CMakeLists.txt new file mode 100644 index 00000000..1caf5a92 --- /dev/null +++ b/packages/conan/recipes/openvdb/test_package/CMakeLists.txt @@ -0,0 +1,18 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openvdb/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package CXX) + +find_package(OpenVDB REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE OpenVDB::openvdb) +if (OpenVDB_VERSION VERSION_GREATER_EQUAL "10.0.0") + target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) +else() + target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_14) +endif() diff --git a/packages/conan/recipes/openvdb/test_package/conanfile.py b/packages/conan/recipes/openvdb/test_package/conanfile.py new file mode 100644 index 00000000..b4acfe18 --- /dev/null +++ b/packages/conan/recipes/openvdb/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openvdb/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/openvdb/test_package/test_package.cpp b/packages/conan/recipes/openvdb/test_package/test_package.cpp new file mode 100644 index 00000000..4c194d1a --- /dev/null +++ b/packages/conan/recipes/openvdb/test_package/test_package.cpp @@ -0,0 +1,20 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openvdb/all/test_package/test_package.cpp +*/ + +#include +#include + +int main() +{ + openvdb::initialize(); + openvdb::FloatGrid::Ptr grid = openvdb::FloatGrid::create(); + openvdb::FloatGrid::Accessor accessor = grid->getAccessor(); + openvdb::Coord xyz(1000, -200000000, 30000000); + accessor.setValue(xyz, 1.0); + std::cout << "Grid" << xyz << " = " << accessor.getValue(xyz) << std::endl; +} diff --git a/packages/conan/recipes/opus/conanfile.py b/packages/conan/recipes/opus/conanfile.py index 3c620e66..5092dc1a 100644 --- a/packages/conan/recipes/opus/conanfile.py +++ b/packages/conan/recipes/opus/conanfile.py @@ -13,11 +13,10 @@ class SystemOpusConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.libdirs = ["/usr/lib64"] self.cpp_info.set_property("cmake_file_name", "Opus") self.cpp_info.set_property("cmake_target_name", "Opus::opus") self.cpp_info.set_property("pkg_config_name", "opus") - self.cpp_info.libs = ["opus"] - self.cpp_info.includedirs.append("/usr/include/opus") + self.cpp_info.includedirs = ["/usr/include/opus"] + self.cpp_info.system_libs = ["opus"] self.cpp_info.system_libs.append("m") diff --git a/packages/conan/recipes/pcre2/conanfile.py b/packages/conan/recipes/pcre2/conanfile.py index fbb773d3..030e5934 100644 --- a/packages/conan/recipes/pcre2/conanfile.py +++ b/packages/conan/recipes/pcre2/conanfile.py @@ -13,13 +13,12 @@ class SystemPCRE2Conan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] + self.cpp_info.includedirs = [] self.cpp_info.set_property("cmake_file_name", "PCRE2") self.cpp_info.components["pcre2-8"].set_property("cmake_target_name", "PCRE2::8BIT") - self.cpp_info.components["pcre2-8"].libs = ["pcre2-8"] + self.cpp_info.components["pcre2-8"].system_libs = ["pcre2-8"] self.cpp_info.components["pcre2-posix"].set_property("cmake_target_name", "PCRE2::POSIX") - self.cpp_info.components["pcre2-posix"].libs = ["pcre2-posix"] + self.cpp_info.components["pcre2-posix"].system_libs = ["pcre2-posix"] diff --git a/packages/conan/recipes/ptex/test_package/CMakeLists.txt b/packages/conan/recipes/ptex/test_package/CMakeLists.txt index a6bf66cf..00c02ffc 100644 --- a/packages/conan/recipes/ptex/test_package/CMakeLists.txt +++ b/packages/conan/recipes/ptex/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/ptex/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/ptex/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES CXX) find_package(ptex REQUIRED CONFIG) diff --git a/packages/conan/recipes/pugixml/conandata.yml b/packages/conan/recipes/pugixml/conandata.yml index 81739184..747cf768 100644 --- a/packages/conan/recipes/pugixml/conandata.yml +++ b/packages/conan/recipes/pugixml/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/f83ca9df2f14d01f49b186cb279740c295ae09c9/recipes/pugixml/all/conandata.yml sources: + "1.15": + url: "https://github.com/zeux/pugixml/releases/download/v1.15/pugixml-1.15.tar.gz" + sha256: "655ade57fa703fb421c2eb9a0113b5064bddb145d415dd1f88c79353d90d511a" "1.14": url: "https://github.com/zeux/pugixml/releases/download/v1.14/pugixml-1.14.tar.gz" sha256: "2f10e276870c64b1db6809050a75e11a897a8d7456c4be5c6b2e35a11168a015" diff --git a/packages/conan/recipes/pugixml/test_package/CMakeLists.txt b/packages/conan/recipes/pugixml/test_package/CMakeLists.txt index ab2523cf..39b017c6 100644 --- a/packages/conan/recipes/pugixml/test_package/CMakeLists.txt +++ b/packages/conan/recipes/pugixml/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/f83ca9df2f14d01f49b186cb279740c295ae09c9/recipes/pugixml/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/pugixml/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES CXX) find_package(pugixml REQUIRED CONFIG) diff --git a/packages/conan/recipes/pulseaudio/conanfile.py b/packages/conan/recipes/pulseaudio/conanfile.py index 2fc90581..89199daa 100644 --- a/packages/conan/recipes/pulseaudio/conanfile.py +++ b/packages/conan/recipes/pulseaudio/conanfile.py @@ -13,10 +13,10 @@ class SystemPulseAudioConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64", "/usr/lib64/pulseaudio"] + self.cpp_info.includedirs = [] + self.cpp_info.libdirs = ["pulseaudio"] - self.cpp_info.components["pulse"].libs = ["pulse", "pulsecommon-14.0"] + self.cpp_info.components["pulse"].system_libs = ["pulse", "pulsecommon-14.0"] - self.cpp_info.components["pulse-simple"].libs = ["pulse-simple"] + self.cpp_info.components["pulse-simple"].system_libs = ["pulse-simple"] self.cpp_info.components["pulse-simple"].requires = ["pulse"] diff --git a/packages/conan/recipes/pybind11/conanfile.py b/packages/conan/recipes/pybind11/conanfile.py index c769fb62..7c7f2045 100644 --- a/packages/conan/recipes/pybind11/conanfile.py +++ b/packages/conan/recipes/pybind11/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/b8bd958a29ef769d74a40471f1ada0426d1f8fff/recipes/pybind11/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/1729c3c2c3b0e9d058821fa00e8a54154415efc6/recipes/pybind11/all/conanfile.py from conan import ConanFile from conan.tools.cmake import CMake, CMakeToolchain @@ -12,7 +12,7 @@ import os -required_conan_version = ">=1.52.0" +required_conan_version = ">=2.1" class PyBind11Conan(ConanFile): @@ -26,9 +26,15 @@ class PyBind11Conan(ConanFile): settings = "os", "arch", "compiler", "build_type" no_copy_source = True + + # ASWF: requirements() and build_requirements() ensure we find our own Python def requirements(self): self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + def build_requirements(self): + # ASWF: "cpython/" isn't working for us + self.tool_requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + def layout(self): basic_layout(self, src_folder="src") # ASWF: We want DSOs in lib64 @@ -47,6 +53,8 @@ def generate(self): # ASWF: Cmake modules in lib64 tc.variables["PYBIND11_CMAKECONFIG_INSTALL_DIR"] = os.path.join("lib64", "cmake", "pybind11") tc.variables["PYBIND11_PYTHON_VERSION"] = os.environ["ASWF_CPYTHON_VERSION"] + if Version(self.version) < "2.11.0": + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() def build(self): diff --git a/packages/conan/recipes/pybind11/test_package/conanfile.py b/packages/conan/recipes/pybind11/test_package/conanfile.py index 57161ba3..2c6fd667 100644 --- a/packages/conan/recipes/pybind11/test_package/conanfile.py +++ b/packages/conan/recipes/pybind11/test_package/conanfile.py @@ -20,6 +20,12 @@ class TestPackageConan(ConanFile): def requirements(self): self.requires(self.tested_reference_str) + # ASWF: requirements() and build_requirements() ensure we find our own Python + self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + + def build_requirements(self): + # ASWF: "cpython/" isn't working for us + self.tool_requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") def generate(self): deps = CMakeDeps(self) diff --git a/packages/conan/recipes/pyside/conandata.yml b/packages/conan/recipes/pyside/conandata.yml index bc5b3087..61a3fd4a 100644 --- a/packages/conan/recipes/pyside/conandata.yml +++ b/packages/conan/recipes/pyside/conandata.yml @@ -14,9 +14,12 @@ sources: "6.5.4": url: "https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.4-src/pyside-setup-opensource-src-6.5.4.tar.xz" sha256: "1bd5e63bede4ac2930579abd09a2803f8a508693d210c77efe7e838c8da360ae" - "6.5.5": - url: "https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.5-src/pyside-setup-opensource-src-6.5.5.tar.xz" - sha256: "915c35d365cfbfcdc24dad4d4882205f8206fc0d3d01c1fba2fd5736a4a64935" + "6.5.6": + url: "https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.5.6-src/pyside-setup-opensource-src-6.5.6.tar.xz" + sha256: "af11a872c7ed75f54cfa088bcbf46bae14bd0d9b1ec23b08168a6fc1cdfa1fc7" + "6.8.3": + url: "https://download.qt.io/official_releases/QtForPython/pyside6/PySide6-6.8.3-src/pyside-setup-everywhere-src-6.8.3.tar.xz" + sha256: "d2c896f7f1a6a7ea4c9f98cfe317272fd139703ddf612b86999f09e48aeef0e6" patches: "5.12.6": # typing-patch.zip from https://codereview.qt-project.org/changes/pyside%2Fpyside-setup~271412/revisions/4/patch?zip diff --git a/packages/conan/recipes/pystring/CMakeLists.txt b/packages/conan/recipes/pystring/CMakeLists.txt index bfbccdca..8ef34cf2 100644 --- a/packages/conan/recipes/pystring/CMakeLists.txt +++ b/packages/conan/recipes/pystring/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/pystring/all/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/pystring/all/CMakeLists.txt -cmake_minimum_required(VERSION 3.4) +cmake_minimum_required(VERSION 3.15) project(pystring LANGUAGES CXX) diff --git a/packages/conan/recipes/pystring/test_package/CMakeLists.txt b/packages/conan/recipes/pystring/test_package/CMakeLists.txt index 3d25d72f..5148141b 100644 --- a/packages/conan/recipes/pystring/test_package/CMakeLists.txt +++ b/packages/conan/recipes/pystring/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/pystring/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/pystring/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES CXX) find_package(pystring REQUIRED CONFIG) diff --git a/packages/conan/recipes/qt/conandata.yml b/packages/conan/recipes/qt/conandata.yml index 309cc674..236e7638 100644 --- a/packages/conan/recipes/qt/conandata.yml +++ b/packages/conan/recipes/qt/conandata.yml @@ -5,6 +5,28 @@ # From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/qt/6.x.x/conandata.yml sources: + "6.8.3": + url: + - "https://download.qt.io/official_releases/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://download.qt.io/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirrors.ukfast.co.uk/sites/qt.io/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirrors.20i.com/pub/qt.io/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://ftp.nluug.nl/languages/qt/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirror.netcologne.de/qtproject/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirrors.dotsrc.org/qtproject/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://ftp.icm.edu.pl/packages/qt/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://ftp.acc.umu.se/mirror/qt.io/qtproject/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://www.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://qt.mirror.constant.com/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirrors.sau.edu.cn/qt/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirrors.cloud.tencent.com/qt/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirror.bjtu.edu.cn/qt/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://mirrors.sjtug.sjtu.edu.cn/qt/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://ftp.jaist.ac.jp/pub/qtproject/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + - "https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/archive/qt/6.8/6.8.3/single/qt-everywhere-src-6.8.3.tar.xz" + sha256: "cdd3a69967208276bb01af7ace7dba0ba53e679f886a4cbe624225c60fb73f2c" "6.7.3": url: - "https://download.qt.io/official_releases/qt/6.7/6.7.3/single/qt-everywhere-src-6.7.3.tar.xz" @@ -50,26 +72,26 @@ sources: - "https://ftp.jaist.ac.jp/pub/qtproject/archive/qt/6.6/6.6.3/single/qt-everywhere-src-6.6.3.tar.xz" - "https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/archive/qt/6.6/6.6.3/single/qt-everywhere-src-6.6.3.tar.xz" sha256: "69d0348fef415da98aa890a34651e9cfb232f1bffcee289b7b4e21386bf36104" - "6.5.5": + "6.5.6": url: - - "https://download.qt.io/official_releases/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://download.qt.io/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirrors.20i.com/pub/qt.io/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirrors.ukfast.co.uk/sites/qt.io/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://ftp.nluug.nl/languages/qt/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirror.netcologne.de/qtproject/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://qt-mirror.dannhauer.de/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://ftp.fau.de/qtproject/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirrors.dotsrc.org/qtproject/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://ftp.acc.umu.se/mirror/qt.io/qtproject/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirror.web4africa.ng/qt/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://qtproject.mirror.liquidtelecom.com/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://qt.mirror.constant.com/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirrors.cloud.tencent.com/qt/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://mirrors.sjtug.sjtu.edu.cn/qt/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://ftp.jaist.ac.jp/pub/qtproject/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - - "https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/archive/qt/6.5/6.5.5/src/single/qt-everywhere-opensource-src-6.5.5.tar.xz" - sha256: "7383009d74c18fbe056ee5790e2377b0fad58bb2b560bb626958acf7b594b45c" + - "https://download.qt.io/official_releases/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://download.qt.io/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirrors.20i.com/pub/qt.io/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirrors.ukfast.co.uk/sites/qt.io/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://ftp.nluug.nl/languages/qt/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirror.netcologne.de/qtproject/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://qt-mirror.dannhauer.de/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://ftp.fau.de/qtproject/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirrors.dotsrc.org/qtproject/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://ftp.acc.umu.se/mirror/qt.io/qtproject/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirror.web4africa.ng/qt/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://qtproject.mirror.liquidtelecom.com/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://qt.mirror.constant.com/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirrors.cloud.tencent.com/qt/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://mirrors.sjtug.sjtu.edu.cn/qt/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://ftp.jaist.ac.jp/pub/qtproject/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + - "https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/archive/qt/6.5/6.5.6/src/single/qt-everywhere-opensource-src-6.5.6.tar.xz" + sha256: "607d5ca0671907592f0a75cec4cc97f3ec68640d396fb2c6d0ad77ca969de30d" "6.5.4": url: - "https://download.qt.io/official_releases/qt/6.5/6.5.4/src/single/qt-everywhere-opensource-src-6.5.4.tar.xz" @@ -111,6 +133,24 @@ sources: - "https://ftp.yz.yamagata-u.ac.jp/pub/qtproject/archive/qt/6.5/6.5.3/single/qt-everywhere-src-6.5.3.tar.xz" sha256: "7cda4d119aad27a3887329cfc285f2aba5da85601212bcb0aea27bd6b7b544cb" patches: + "6.8.3": + # Fixed in 6.8.4: CVE-2025-3512 + - "base_path": "qtbase" + "patch_file": "patches/CVE-2025-3512-qtbase-6.8.diff" + "patch_source": "https://download.qt.io/archive/qt/6.8/CVE-2025-3512-qtbase-6.8.diff" + "patch_description": "CVE-2025-3512 Heap-buffer-overflow issue in QTextMarkdownImporter" + # Fixed in 6.8.2: CVE-2025-4211 + # Fixed in 6.8.3: CVE-2025-5455 + - "base_path": "qtbase" + "patch_file": "patches/CVE-2025-5455-qtbase-6.8.patch" + "patch_source": "https://download.qt.io/archive/qt/6.8/CVE-2025-5455-qtbase-6.8.patch" + "patch_description": "CVE-2025-5455 qDecodeDataUrl() issue in QtCore" + # Fixed in 6.8.5: CVE-2025-5683 + - "base_path": "qtimageformats" + "patch_file": "patches/CVE-2025-5683-qtimageformats-6.8.patch" + "patch_source": "https://download.qt.io/archive/qt/6.8/CVE-2025-5683-qtimageformats-6.8.patch" + "patch_description": "CVE-2025-5683 ICNS image format crash" + # Fixed in 6.8.2: CVE-2025-23050 "6.7.3": - "base_path": "qtwebengine" "patch_description": "Workaround for too long .rps file name" @@ -123,12 +163,66 @@ patches: "patch_file": "patches/c72097e_6.6.0.diff" "patch_source": "https://codereview.qt-project.org/c/yocto/meta-qt5/+/192172" "patch_type": "bugfix" + "6.5.6": + # Fixed in 6.5.5: CVE-2024-25580 + # Fixed in 6.5.6: CVE-2024-30161 + # Fixed in 6.5.6: CVE-2024-33861 + # Fixed in 6.5.6: CVE-2024-36048 + # Fixed in 6.5.7: CVE-2024-39936 + - "base_path": "qtbase" + "patch_file": "patches/CVE-2024-39936-qtbase-6.5.patch" + "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-39936-qtbase-6.5.patch" + "patch_description": "CVE-2024-39936 http2 handling issue" + # Fixed in 6.5.9: CVE-2025-4211 + - "base_path": "qtbase" + "patch_file": "patches/CVE-2025-4211-qtbase-6.5.diff" + "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2025-4211-qtbase-6.5.diff" + "patch_description": "CVE-2025-4211 Improper link resolution on Windows" + # Fixed in 6.5.9: CVE-2025-5455 + - "base_path": "qtbase" + "patch_file": "patches/CVE-2025-5455-qtbase-6.5.patch" + "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2025-5455-qtbase-6.5.patch" + "patch_description": "CVE-2025-5455 qDecodeDataUrl issue in QtCore" + # Fixed in 6.5.10: CVE-2025-5683 + - "base_path": "qtimageformats" + "patch_file": "patches/CVE-2025-5683-qtimageformats-6.5.patch" + "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2025-5683-qtimageformats-6.5.patch" + "patch_description": "CVE-2025-5683 ICNS image format crash" + # Fixed in 6.5.9: CVE-2025-23050 + - "base_path": "qtconnectivity" + "patch_file": "patches/CVE-2025-23050-qtconnectivity-6.5.diff" + "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2025-23050-qtconnectivity-6.5.diff" + "patch_description": "CVE-2025-23050 read past buffer end in QLowEnergyController" + # Fixed in 6.5.9: CVE-2025-30348 + - "base_path": "qtbase" + "patch_file": "patches/CVE-2025-30348-qtbase-6.5.diff" + "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2025-30348-qtbase-6.5.diff" + "patch_description": "CVE-2025-30348 Denial Of Service in QtXML" + - "base_path": "qtwebengine" + "patch_description": "issue with spellcheck_buildflags.h not found" + "patch_file": "patches/spellcheck_buildflags-6.5.6.diff" + - "base_path": "qtwebengine" + "patch_file": "patches/0001-ninja-1.12-build-qtwebengine-6.5.6.diff" + "patch_source": "https://gitweb.gentoo.org/repo/gentoo.git/patch/?id=865b42c15b520af89040fd4a6e6e6c4cd54125c2" + "patch_description": "build failures due to change of build order in Ninja 1.12" + - "base_path": "qtbase" + "patch_description": "ls is a shell script in RHEL" + "patch_file": "patches/qtbase-core-cmake-6.5.6.diff" + - "base_path": "qtbase" + "patch_description": "Recent CMake unhappy with code to find system Harfbuzz" + "patch_file": "patches/qtbase-system-harfbuzz.diff" + - "base_path": "qtwebengine" + "patch_description": "Workaround for too long .rps file name" + "patch_file": "patches/QTBUG-59769-6.5.6.diff" + "patch_type": "bugfix" + "patch_source": "https://codereview.qt-project.org/c/yocto/meta-qt5/+/192172" "6.5.4": - # Fixed in 6.5.4 + # Fixed in 6.5.4: CVE-2023-51714 # - "base_path": "qtbase" # "patch_file": "patches/0001-CVE-2023-51714-qtbase-6.5.diff" # "patch_source": "https://download.qt.io/archive/qt/6.5/0001-CVE-2023-51714-qtbase-6.5.diff" # "patch_description": "CVE-2023-51714 https vulnerability" + # Fixed in 6.5.4: CVE-2023-51714 # - "base_path": "qtbase" # "patch_file": "patches/0002-CVE-2023-51714-qtbase-6.5.diff" # "patch_source": "https://download.qt.io/archive/qt/6.5/0002-CVE-2023-51714-qtbase-6.5.diff" @@ -137,6 +231,7 @@ patches: # - "base_path": "qtbase" # "patch_file": "patches/CVE-2024-39936-qtbase-6.5.patch" # "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-39936-qtbase-6.5.patch" + # Fixed in 6.5.6: CVE-2024-36048 - "base_path": "qtnetworkauth" "patch_file": "patches/CVE-2024-36048-qtnetworkauth-6.5.diff" "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-36048-qtnetworkauth-6.5.diff" @@ -151,6 +246,7 @@ patches: # "patch_file": "patches/CVE-2024-30161-qtbase-6.5.diff" # "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-30161-qtbase-6.5.diff" # "patch_description": "CVE-2024-30161 vulnerability in QNetworkReply" + # Fixed in 6.5.5: CVE-2024-25580 - "base_path": "qtbase" "patch_file": "patches/CVE-2024-25580-qtbase-6.5.diff" "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-25580-qtbase-6.5.diff" @@ -209,7 +305,7 @@ patches: "patch_description": "build failures due to change of build order in Ninja 1.12" - "base_path": "qtbase" "patch_description": "ls is a shell script in RHEL" - "patch_file": "patches/qtbase-core-cmake_6.5.4.diff" + "patch_file": "patches/qtbase-core-cmake-6.5.4.diff" - "base_path": "qtbase" "patch_description": "Recent CMake unhappy with code to find system Harfbuzz" "patch_file": "patches/qtbase-system-harfbuzz.diff" @@ -250,7 +346,7 @@ patches: # "patch_file": "patches/CVE-2024-33861-qtbase-6.5.diff" # "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-33861-qtbase-6.5.diff" # "patch_description": "CVE-2024-33861 vulnerability in QStringConverter" - # Only in 6.5.4, 6.5.5 and 6.6.2 + # Only in 6.5.4, 6.5.6 and 6.6.2 # - "base_path": "qtbase" # "patch_file": "patches/CVE-2024-30161-qtbase-6.5.diff" # "patch_source": "https://download.qt.io/archive/qt/6.5/CVE-2024-30161-qtbase-6.5.diff" diff --git a/packages/conan/recipes/qt/conanfile.py b/packages/conan/recipes/qt/conanfile.py index bf61ba6e..939d90c2 100644 --- a/packages/conan/recipes/qt/conanfile.py +++ b/packages/conan/recipes/qt/conanfile.py @@ -9,6 +9,7 @@ import os import platform import textwrap +import resource # ASWF needed to increase maximum number of open files from conan import ConanFile, conan_version from conan.tools.apple import is_apple_os @@ -748,8 +749,9 @@ def source(self): # use official variable name https://cmake.org/cmake/help/latest/module/FindFontconfig.html replace_in_file(self, os.path.join(self.source_folder, "qtbase", "src", "gui", "configure.cmake"), "FONTCONFIG_FOUND", "Fontconfig_FOUND") + # ASWF: 6.5.6 already has QtAutodetectHelpers.cmake replace_in_file(self, - os.path.join(self.source_folder, "qtbase", "cmake", "QtAutoDetect.cmake" if Version(self.version) < "6.6.2" else "QtAutoDetectHelpers.cmake"), + os.path.join(self.source_folder, "qtbase", "cmake", "QtAutoDetect.cmake" if Version(self.version) < "6.5.6" else "QtAutoDetectHelpers.cmake"), "qt_auto_detect_vcpkg()", "# qt_auto_detect_vcpkg()") @@ -859,6 +861,11 @@ def _xplatform(self): return None def build(self): + # ASWF: increase maximum number of open files to avoid ld failures + # No current way to set this externaly with "docker buildx bake" + soft, hard = resource.getrlimit(resource.RLIMIT_NOFILE) + resource.setrlimit(resource.RLIMIT_NOFILE, (hard, hard)) + if self.settings.os == "Macos": save(self, ".qmake.stash", "") save(self, ".qmake.super", "") diff --git a/packages/conan/recipes/qt/patches/0001-ninja-1.12-build-qtwebengine-6.5.6.diff b/packages/conan/recipes/qt/patches/0001-ninja-1.12-build-qtwebengine-6.5.6.diff new file mode 100644 index 00000000..294bdaf2 --- /dev/null +++ b/packages/conan/recipes/qt/patches/0001-ninja-1.12-build-qtwebengine-6.5.6.diff @@ -0,0 +1,10 @@ +--- src/core/configure/BUILD.root.gn.in.orig 2024-12-29 22:07:43.661647014 -0800 ++++ src/core/configure/BUILD.root.gn.in 2024-12-29 22:08:25.534597628 -0800 +@@ -228,6 +228,7 @@ + source_set("devtools_sources") { + configs += [ ":cpp20_config" ] + deps = [ ++ "//chrome/app:generated_resources", + "//components/zoom", + "//third_party/blink/public/mojom:mojom_platform", + ] diff --git a/packages/conan/recipes/qt/patches/CVE-2024-33861-qtbase-6.5.diff b/packages/conan/recipes/qt/patches/CVE-2024-33861-qtbase-6.5.diff new file mode 100644 index 00000000..b70ba764 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2024-33861-qtbase-6.5.diff @@ -0,0 +1,22 @@ +diff --git a/src/corelib/text/qstringconverter.cpp b/src/corelib/text/qstringconverter.cpp +index 6ca65ba6ad8..043b8f54151 100644 +--- a/src/corelib/text/qstringconverter.cpp ++++ b/src/corelib/text/qstringconverter.cpp +@@ -1966,7 +1966,7 @@ struct QStringConverterICU : QStringConverter + const void *context; + ucnv_getToUCallBack(icu_conv, &action, &context); + if (context != state) +- ucnv_setToUCallBack(icu_conv, action, &state, nullptr, nullptr, &err); ++ ucnv_setToUCallBack(icu_conv, action, state, nullptr, nullptr, &err); + + ucnv_toUnicode(icu_conv, &target, targetLimit, &source, sourceLimit, nullptr, flush, &err); + // We did reserve enough space: +@@ -1999,7 +1999,7 @@ struct QStringConverterICU : QStringConverter + const void *context; + ucnv_getFromUCallBack(icu_conv, &action, &context); + if (context != state) +- ucnv_setFromUCallBack(icu_conv, action, &state, nullptr, nullptr, &err); ++ ucnv_setFromUCallBack(icu_conv, action, state, nullptr, nullptr, &err); + + ucnv_fromUnicode(icu_conv, &target, targetLimit, &source, sourceLimit, nullptr, flush, &err); + // We did reserve enough space: diff --git a/packages/conan/recipes/qt/patches/CVE-2024-39936-qtbase-6.5.patch b/packages/conan/recipes/qt/patches/CVE-2024-39936-qtbase-6.5.patch new file mode 100644 index 00000000..6b66fed1 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2024-39936-qtbase-6.5.patch @@ -0,0 +1,138 @@ +diff --git a/src/network/access/qhttp2protocolhandler.cpp b/src/network/access/qhttp2protocolhandler.cpp +index ec100708600..80819105201 100644 +--- a/src/network/access/qhttp2protocolhandler.cpp ++++ b/src/network/access/qhttp2protocolhandler.cpp +@@ -339,12 +339,12 @@ bool QHttp2ProtocolHandler::sendRequest() + } + } + +- if (!prefaceSent && !sendClientPreface()) +- return false; +- + if (!requests.size()) + return true; + ++ if (!prefaceSent && !sendClientPreface()) ++ return false; ++ + m_channel->state = QHttpNetworkConnectionChannel::WritingState; + // Check what was promised/pushed, maybe we do not have to send a request + // and have a response already? +diff --git a/src/network/access/qhttpnetworkconnectionchannel.cpp b/src/network/access/qhttpnetworkconnectionchannel.cpp +index b9e1ae403cd..3cbe1b16f9e 100644 +--- a/src/network/access/qhttpnetworkconnectionchannel.cpp ++++ b/src/network/access/qhttpnetworkconnectionchannel.cpp +@@ -209,6 +209,10 @@ void QHttpNetworkConnectionChannel::abort() + bool QHttpNetworkConnectionChannel::sendRequest() + { + Q_ASSERT(protocolHandler); ++ if (waitingForPotentialAbort) { ++ needInvokeSendRequest = true; ++ return false; // this return value is unused ++ } + return protocolHandler->sendRequest(); + } + +@@ -221,21 +225,28 @@ bool QHttpNetworkConnectionChannel::sendRequest() + void QHttpNetworkConnectionChannel::sendRequestDelayed() + { + QMetaObject::invokeMethod(this, [this] { +- Q_ASSERT(protocolHandler); + if (reply) +- protocolHandler->sendRequest(); ++ sendRequest(); + }, Qt::ConnectionType::QueuedConnection); + } + + void QHttpNetworkConnectionChannel::_q_receiveReply() + { + Q_ASSERT(protocolHandler); ++ if (waitingForPotentialAbort) { ++ needInvokeReceiveReply = true; ++ return; ++ } + protocolHandler->_q_receiveReply(); + } + + void QHttpNetworkConnectionChannel::_q_readyRead() + { + Q_ASSERT(protocolHandler); ++ if (waitingForPotentialAbort) { ++ needInvokeReadyRead = true; ++ return; ++ } + protocolHandler->_q_readyRead(); + } + +@@ -1241,7 +1252,18 @@ void QHttpNetworkConnectionChannel::_q_encrypted() + // Similar to HTTP/1.1 counterpart below: + const auto &h2Pairs = h2RequestsToSend.values(); // (request, reply) + const auto &pair = h2Pairs.first(); ++ waitingForPotentialAbort = true; + emit pair.second->encrypted(); ++ ++ // We don't send or handle any received data until any effects from ++ // emitting encrypted() have been processed. This is necessary ++ // because the user may have called abort(). We may also abort the ++ // whole connection if the request has been aborted and there is ++ // no more requests to send. ++ QMetaObject::invokeMethod(this, ++ &QHttpNetworkConnectionChannel::checkAndResumeCommunication, ++ Qt::QueuedConnection); ++ + // In case our peer has sent us its settings (window size, max concurrent streams etc.) + // let's give _q_receiveReply a chance to read them first ('invokeMethod', QueuedConnection). + } +@@ -1259,6 +1281,28 @@ void QHttpNetworkConnectionChannel::_q_encrypted() + QMetaObject::invokeMethod(connection, "_q_startNextRequest", Qt::QueuedConnection); + } + ++ ++void QHttpNetworkConnectionChannel::checkAndResumeCommunication() ++{ ++ Q_ASSERT(connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2 ++ || connection->connectionType() == QHttpNetworkConnection::ConnectionTypeHTTP2Direct); ++ ++ // Because HTTP/2 requires that we send a SETTINGS frame as the first thing we do, and respond ++ // to a SETTINGS frame with an ACK, we need to delay any handling until we can ensure that any ++ // effects from emitting encrypted() have been processed. ++ // This function is called after encrypted() was emitted, so check for changes. ++ ++ if (!reply && h2RequestsToSend.isEmpty()) ++ abort(); ++ waitingForPotentialAbort = false; ++ if (needInvokeReadyRead) ++ _q_readyRead(); ++ if (needInvokeReceiveReply) ++ _q_receiveReply(); ++ if (needInvokeSendRequest) ++ sendRequest(); ++} ++ + void QHttpNetworkConnectionChannel::requeueHttp2Requests() + { + QList h2Pairs = h2RequestsToSend.values(); +diff --git a/src/network/access/qhttpnetworkconnectionchannel_p.h b/src/network/access/qhttpnetworkconnectionchannel_p.h +index e38e56df160..76d5baef2e3 100644 +--- a/src/network/access/qhttpnetworkconnectionchannel_p.h ++++ b/src/network/access/qhttpnetworkconnectionchannel_p.h +@@ -73,6 +73,10 @@ public: + QAbstractSocket *socket; + bool ssl; + bool isInitialized; ++ bool waitingForPotentialAbort = false; ++ bool needInvokeReceiveReply = false; ++ bool needInvokeReadyRead = false; ++ bool needInvokeSendRequest = false; + ChannelState state; + QHttpNetworkRequest request; // current request, only used for HTTP + QHttpNetworkReply *reply; // current reply for this request, only used for HTTP +@@ -145,6 +149,8 @@ public: + void closeAndResendCurrentRequest(); + void resendCurrentRequest(); + ++ void checkAndResumeCommunication(); ++ + bool isSocketBusy() const; + bool isSocketWriting() const; + bool isSocketWaiting() const; diff --git a/packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.5.diff b/packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.5.diff new file mode 100644 index 00000000..3e954592 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.5.diff @@ -0,0 +1,221 @@ +From 88c30a23dcff5e7c16a54f93accf743847e22617 Mon Sep 17 00:00:00 2001 +From: Ivan Solovev +Date: Thu, 02 Jan 2025 16:48:49 +0100 +Subject: [PATCH] QLowEnergyControllerPrivateBluez: guard against malformed replies + +The QLowEnergyControllerPrivateBluez::l2cpReadyRead() slot reads the +data from a Bluetooth L2CAP socket and then tries to process it +according to ATT protocol specs. + +However, the code was missing length and sanity checks at some +codepaths in processUnsolicitedReply() and processReply() helper +methods, simply relying on the data to be in the proper format. + +This patch adds some minimal checks to make sure that we do not read +past the end of the received array and do not divide by zero. + +This problem was originally pointed out by Marc Mutz in an unrelated +patch. + +Pick-to: 5.15 +Change-Id: I8dcfe031f70ad61fa3d87dc9d771c3fabc6d0edc +Reviewed-by: Alex Blasche +Reviewed-by: Juha Vuolle +(cherry picked from commit aecbd657c841a2a8c74631ceac96b8ff1f03ab5c) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 53e991671f725c136e9aa824c59ec13934c63fb4) +(cherry picked from commit 465e3f3112a9c158aa6dd2f8b9439ae6c2de336f) +--- + +diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp +index 4a2248c..b4bad61 100644 +--- a/src/bluetooth/qlowenergycontroller_bluez.cpp ++++ b/src/bluetooth/qlowenergycontroller_bluez.cpp +@@ -80,14 +80,15 @@ + return QBluetoothUuid(qtdst); + } + +-static void dumpErrorInformation(const QByteArray &response) ++/* returns false if the format is incorrect */ ++static bool dumpErrorInformation(const QByteArray &response) + { + const char *data = response.constData(); + if (response.size() != 5 + || (static_cast(data[0]) + != QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE)) { + qCWarning(QT_BT_BLUEZ) << QLatin1String("Not a valid error response"); +- return; ++ return false; + } + + QBluezConst::AttCommand lastCommand = static_cast(data[1]); +@@ -142,6 +143,8 @@ + + qCDebug(QT_BT_BLUEZ) << "Error:" << errorCode << "Error description:" << errorString + << "last command:" << lastCommand << "handle:" << handle; ++ ++ return true; + } + + static int getUuidSize(const QBluetoothUuid &uuid) +@@ -919,6 +922,7 @@ + { + Q_ASSERT(charData); + Q_ASSERT(data); ++ Q_ASSERT(elementLength >= 5); + + QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]); + charData->properties = +@@ -927,7 +931,7 @@ + + if (elementLength == 7) // 16 bit uuid + charData->uuid = QBluetoothUuid(bt_get_le16(&data[5])); +- else ++ else if (elementLength == 21) // 128 bit uuid + charData->uuid = convert_uuid128((quint128 *)&data[5]); + + qCDebug(QT_BT_BLUEZ) << "Found handle:" << Qt::hex << attributeHandle +@@ -944,6 +948,7 @@ + { + Q_ASSERT(foundServices); + Q_ASSERT(data); ++ Q_ASSERT(elementLength >= 6); + + QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]); + +@@ -953,9 +958,14 @@ + // data[2] -> included service start handle + // data[4] -> included service end handle + ++ // TODO: Spec v. 5.3, Vol. 3, Part G, 4.5.1 mentions that only ++ // 16-bit UUID can be returned here. If the UUID is 128-bit, ++ // then it is omitted from the response, and should be requested ++ // separately with the ATT_READ_REQ command. ++ + if (elementLength == 8) //16 bit uuid + foundServices->append(QBluetoothUuid(bt_get_le16(&data[6]))); +- else ++ else if (elementLength == 22) // 128 bit uuid + foundServices->append(convert_uuid128((quint128 *) &data[6])); + + qCDebug(QT_BT_BLUEZ) << "Found included service: " << Qt::hex +@@ -964,17 +974,29 @@ + return attributeHandle; + } + ++Q_DECL_COLD_FUNCTION ++static void reportMalformedData(QBluezConst::AttCommand cmd, const QByteArray &response) ++{ ++ qCDebug(QT_BT_BLUEZ, "%s malformed data: %s", qt_getEnumName(cmd), ++ response.toHex().constData()); ++} ++ + void QLowEnergyControllerPrivateBluez::processReply( + const Request &request, const QByteArray &response) + { + Q_Q(QLowEnergyController); + ++ // We already have an isEmpty() check at the only calling site that reads ++ // incoming data, so Q_ASSERT is enough. ++ Q_ASSERT(!response.isEmpty()); ++ + QBluezConst::AttCommand command = static_cast(response.constData()[0]); + + bool isErrorResponse = false; + // if error occurred 2. byte is previous request type + if (command == QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE) { +- dumpErrorInformation(response); ++ if (!dumpErrorInformation(response)) ++ return; + command = static_cast(response.constData()[1]); + isErrorResponse = true; + } +@@ -987,6 +1009,10 @@ + if (isErrorResponse) { + mtuSize = ATT_DEFAULT_LE_MTU; + } else { ++ if (response.size() < 3) { ++ reportMalformedData(command, response); ++ break; ++ } + const char *data = response.constData(); + quint16 mtu = bt_get_le16(&data[1]); + mtuSize = mtu; +@@ -1015,8 +1041,15 @@ + break; + } + ++ // response[1] == elementLength. According to the spec it should be ++ // at least 4 bytes. See Spec v5.3, Vol 3, Part F, 3.4.4.10 ++ if (response.size() < 2 || response[1] < 4) { ++ reportMalformedData(command, response); ++ break; ++ } ++ + QLowEnergyHandle start = 0, end = 0; +- const quint16 elementLength = response.constData()[1]; ++ const quint16 elementLength = response.constData()[1]; // value checked above + const quint16 numElements = (response.size() - 2) / elementLength; + quint16 offset = 2; + const char *data = response.constData(); +@@ -1092,16 +1125,25 @@ + } + + /* packet format: +- * if GATT_CHARACTERISTIC discovery ++ * if GATT_CHARACTERISTIC discovery (Spec 5.3, Vol. 3, Part G, 4.6) + * + * []+ ++ * The minimum elementLength is 7 bytes (uuid is always included) + * +- * if GATT_INCLUDE discovery ++ * if GATT_INCLUDE discovery (Spec 5.3, Vol. 3, Part G, 4.5.1) + * + * []+ ++ * The minimum elementLength is 6 bytes (uuid can be omitted). + * + * The uuid can be 16 or 128 bit. + */ ++ ++ const quint8 minimumElementLength = attributeType == GATT_CHARACTERISTIC ? 7 : 6; ++ if (response.size() < 2 || response[1] < minimumElementLength) { ++ reportMalformedData(command, response); ++ break; ++ } ++ + QLowEnergyHandle lastHandle; + const quint16 elementLength = response.constData()[1]; + const quint16 numElements = (response.size() - 2) / elementLength; +@@ -1298,6 +1340,12 @@ + break; + } + ++ // Spec 5.3, Vol. 3, Part F, 3.4.3.2 ++ if (response.size() < 6) { ++ reportMalformedData(command, response); ++ break; ++ } ++ + const quint8 format = response[1]; + quint16 elementLength; + switch (format) { +@@ -1735,9 +1783,18 @@ + + void QLowEnergyControllerPrivateBluez::processUnsolicitedReply(const QByteArray &payload) + { ++ Q_ASSERT(!payload.isEmpty()); ++ + const char *data = payload.constData(); +- bool isNotification = (static_cast(data[0]) ++ const auto command = static_cast(data[0]); ++ bool isNotification = (command + == QBluezConst::AttCommand::ATT_OP_HANDLE_VAL_NOTIFICATION); ++ ++ if (payload.size() < 3) { ++ reportMalformedData(command, payload); ++ return; ++ } ++ + const QLowEnergyHandle changedHandle = bt_get_le16(&data[1]); + + if (QT_BT_BLUEZ().isDebugEnabled()) { diff --git a/packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.8.diff b/packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.8.diff new file mode 100644 index 00000000..5dc35e60 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-23050-qtconnectivity-6.8.diff @@ -0,0 +1,220 @@ +From 465e3f3112a9c158aa6dd2f8b9439ae6c2de336f Mon Sep 17 00:00:00 2001 +From: Ivan Solovev +Date: Thu, 02 Jan 2025 16:48:49 +0100 +Subject: [PATCH] QLowEnergyControllerPrivateBluez: guard against malformed replies + +The QLowEnergyControllerPrivateBluez::l2cpReadyRead() slot reads the +data from a Bluetooth L2CAP socket and then tries to process it +according to ATT protocol specs. + +However, the code was missing length and sanity checks at some +codepaths in processUnsolicitedReply() and processReply() helper +methods, simply relying on the data to be in the proper format. + +This patch adds some minimal checks to make sure that we do not read +past the end of the received array and do not divide by zero. + +This problem was originally pointed out by Marc Mutz in an unrelated +patch. + +Pick-to: 6.5 5.15 +Change-Id: I8dcfe031f70ad61fa3d87dc9d771c3fabc6d0edc +Reviewed-by: Alex Blasche +Reviewed-by: Juha Vuolle +(cherry picked from commit aecbd657c841a2a8c74631ceac96b8ff1f03ab5c) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 53e991671f725c136e9aa824c59ec13934c63fb4) +--- + +diff --git a/src/bluetooth/qlowenergycontroller_bluez.cpp b/src/bluetooth/qlowenergycontroller_bluez.cpp +index 6f0c985..2bd0cb6 100644 +--- a/src/bluetooth/qlowenergycontroller_bluez.cpp ++++ b/src/bluetooth/qlowenergycontroller_bluez.cpp +@@ -64,14 +64,15 @@ + + const int maxPrepareQueueSize = 1024; + +-static void dumpErrorInformation(const QByteArray &response) ++/* returns false if the format is incorrect */ ++static bool dumpErrorInformation(const QByteArray &response) + { + const char *data = response.constData(); + if (response.size() != 5 + || (static_cast(data[0]) + != QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE)) { + qCWarning(QT_BT_BLUEZ) << QLatin1String("Not a valid error response"); +- return; ++ return false; + } + + QBluezConst::AttCommand lastCommand = static_cast(data[1]); +@@ -126,6 +127,8 @@ + + qCDebug(QT_BT_BLUEZ) << "Error:" << errorCode << "Error description:" << errorString + << "last command:" << lastCommand << "handle:" << handle; ++ ++ return true; + } + + static int getUuidSize(const QBluetoothUuid &uuid) +@@ -903,6 +906,7 @@ + { + Q_ASSERT(charData); + Q_ASSERT(data); ++ Q_ASSERT(elementLength >= 5); + + QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]); + charData->properties = +@@ -912,7 +916,7 @@ + // Bluetooth LE data comes as little endian + if (elementLength == 7) // 16 bit uuid + charData->uuid = QBluetoothUuid(bt_get_le16(&data[5])); +- else ++ else if (elementLength == 21) // 128 bit uuid + charData->uuid = QUuid::fromBytes(&data[5], QSysInfo::LittleEndian); + + qCDebug(QT_BT_BLUEZ) << "Found handle:" << Qt::hex << attributeHandle +@@ -929,6 +933,7 @@ + { + Q_ASSERT(foundServices); + Q_ASSERT(data); ++ Q_ASSERT(elementLength >= 6); + + QLowEnergyHandle attributeHandle = bt_get_le16(&data[0]); + +@@ -938,9 +943,14 @@ + // data[2] -> included service start handle + // data[4] -> included service end handle + ++ // TODO: Spec v. 5.3, Vol. 3, Part G, 4.5.1 mentions that only ++ // 16-bit UUID can be returned here. If the UUID is 128-bit, ++ // then it is omitted from the response, and should be requested ++ // separately with the ATT_READ_REQ command. ++ + if (elementLength == 8) //16 bit uuid + foundServices->append(QBluetoothUuid(bt_get_le16(&data[6]))); +- else ++ else if (elementLength == 22) // 128 bit uuid + foundServices->append(QUuid::fromBytes(&data[6], QSysInfo::LittleEndian)); + + qCDebug(QT_BT_BLUEZ) << "Found included service: " << Qt::hex +@@ -949,17 +959,29 @@ + return attributeHandle; + } + ++Q_DECL_COLD_FUNCTION ++static void reportMalformedData(QBluezConst::AttCommand cmd, const QByteArray &response) ++{ ++ qCDebug(QT_BT_BLUEZ, "%s malformed data: %s", qt_getEnumName(cmd), ++ response.toHex().constData()); ++} ++ + void QLowEnergyControllerPrivateBluez::processReply( + const Request &request, const QByteArray &response) + { + Q_Q(QLowEnergyController); + ++ // We already have an isEmpty() check at the only calling site that reads ++ // incoming data, so Q_ASSERT is enough. ++ Q_ASSERT(!response.isEmpty()); ++ + QBluezConst::AttCommand command = static_cast(response.constData()[0]); + + bool isErrorResponse = false; + // if error occurred 2. byte is previous request type + if (command == QBluezConst::AttCommand::ATT_OP_ERROR_RESPONSE) { +- dumpErrorInformation(response); ++ if (!dumpErrorInformation(response)) ++ return; + command = static_cast(response.constData()[1]); + isErrorResponse = true; + } +@@ -972,6 +994,10 @@ + if (isErrorResponse) { + mtuSize = ATT_DEFAULT_LE_MTU; + } else { ++ if (response.size() < 3) { ++ reportMalformedData(command, response); ++ break; ++ } + const char *data = response.constData(); + quint16 mtu = bt_get_le16(&data[1]); + mtuSize = mtu; +@@ -1000,8 +1026,15 @@ + break; + } + ++ // response[1] == elementLength. According to the spec it should be ++ // at least 4 bytes. See Spec v5.3, Vol 3, Part F, 3.4.4.10 ++ if (response.size() < 2 || response[1] < 4) { ++ reportMalformedData(command, response); ++ break; ++ } ++ + QLowEnergyHandle start = 0, end = 0; +- const quint16 elementLength = response.constData()[1]; ++ const quint16 elementLength = response.constData()[1]; // value checked above + const quint16 numElements = (response.size() - 2) / elementLength; + quint16 offset = 2; + const char *data = response.constData(); +@@ -1077,16 +1110,25 @@ + } + + /* packet format: +- * if GATT_CHARACTERISTIC discovery ++ * if GATT_CHARACTERISTIC discovery (Spec 5.3, Vol. 3, Part G, 4.6) + * + * []+ ++ * The minimum elementLength is 7 bytes (uuid is always included) + * +- * if GATT_INCLUDE discovery ++ * if GATT_INCLUDE discovery (Spec 5.3, Vol. 3, Part G, 4.5.1) + * + * []+ ++ * The minimum elementLength is 6 bytes (uuid can be omitted). + * + * The uuid can be 16 or 128 bit. + */ ++ ++ const quint8 minimumElementLength = attributeType == GATT_CHARACTERISTIC ? 7 : 6; ++ if (response.size() < 2 || response[1] < minimumElementLength) { ++ reportMalformedData(command, response); ++ break; ++ } ++ + QLowEnergyHandle lastHandle; + const quint16 elementLength = response.constData()[1]; + const quint16 numElements = (response.size() - 2) / elementLength; +@@ -1283,6 +1325,12 @@ + break; + } + ++ // Spec 5.3, Vol. 3, Part F, 3.4.3.2 ++ if (response.size() < 6) { ++ reportMalformedData(command, response); ++ break; ++ } ++ + const quint8 format = response[1]; + quint16 elementLength; + switch (format) { +@@ -1720,9 +1768,18 @@ + + void QLowEnergyControllerPrivateBluez::processUnsolicitedReply(const QByteArray &payload) + { ++ Q_ASSERT(!payload.isEmpty()); ++ + const char *data = payload.constData(); +- bool isNotification = (static_cast(data[0]) ++ const auto command = static_cast(data[0]); ++ bool isNotification = (command + == QBluezConst::AttCommand::ATT_OP_HANDLE_VAL_NOTIFICATION); ++ ++ if (payload.size() < 3) { ++ reportMalformedData(command, payload); ++ return; ++ } ++ + const QLowEnergyHandle changedHandle = bt_get_le16(&data[1]); + + if (QT_BT_BLUEZ().isDebugEnabled()) { diff --git a/packages/conan/recipes/qt/patches/CVE-2025-30348-qtbase-6.5.diff b/packages/conan/recipes/qt/patches/CVE-2025-30348-qtbase-6.5.diff new file mode 100644 index 00000000..5e184b18 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-30348-qtbase-6.5.diff @@ -0,0 +1,127 @@ +From 905a5bd421efff6a1d90b6140500d134d32ca745 Mon Sep 17 00:00:00 2001 +From: Christian Ehrlicher +Date: Tue, 06 Aug 2024 22:39:44 +0200 +Subject: [PATCH] XML/QDom: speedup encodeText() + +The code copied the whole string, then replaced parts inline, at +the cost of relocating everything beyond, at each replacement. +Instead, copy character by character (in chunks where possible) +and append replacements as we skip what they replace. + +Manual conflict resolution for 6.5: +- This is a manual cherry-pick. The original change was only + picked to 6.8, but the quadratic behavior is present in Qt 5, too. +- Changed Task-number to Fixes: because this is the real fix; + the QString change, 315210de916d060c044c01e53ff249d676122b1b, + was unrelated to the original QTBUG-127549. + +Pick-to: 5.15 +Fixes: QTBUG-127549 +Change-Id: I368482859ed0c4127f1eec2919183711b5488ada +Reviewed-by: Edward Welbourne +(cherry picked from commit 2ce08e3671b8d18b0284447e5908ce15e6e8f80f) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 225e235cf966a44af23dbe9aaaa2fd20ab6430ee) +Reviewed-by: Fabian Kosmale +--- + +diff --git a/src/xml/dom/qdom.cpp b/src/xml/dom/qdom.cpp +index 7b45237..45cde91 100644 +--- a/src/xml/dom/qdom.cpp ++++ b/src/xml/dom/qdom.cpp +@@ -3612,47 +3612,57 @@ + const bool performAVN = false, + const bool encodeEOLs = false) + { +- QString retval(str); +- int len = retval.size(); +- int i = 0; ++ QString retval; ++ qsizetype start = 0; ++ auto appendToOutput = [&](qsizetype cur, const auto &replacement) ++ { ++ if (start < cur) { ++ retval.reserve(str.size() + replacement.size()); ++ retval.append(QStringView(str).first(cur).sliced(start)); ++ } ++ // Skip over str[cur], replaced by replacement ++ start = cur + 1; ++ retval.append(replacement); ++ }; + +- while (i < len) { +- const QChar ati(retval.at(i)); +- +- if (ati == u'<') { +- retval.replace(i, 1, "<"_L1); +- len += 3; +- i += 4; +- } else if (encodeQuotes && (ati == u'"')) { +- retval.replace(i, 1, """_L1); +- len += 5; +- i += 6; +- } else if (ati == u'&') { +- retval.replace(i, 1, "&"_L1); +- len += 4; +- i += 5; +- } else if (ati == u'>' && i >= 2 && retval[i - 1] == u']' && retval[i - 2] == u']') { +- retval.replace(i, 1, ">"_L1); +- len += 3; +- i += 4; +- } else if (performAVN && +- (ati == QChar(0xA) || +- ati == QChar(0xD) || +- ati == QChar(0x9))) { +- const QString replacement(u"&#x"_s + QString::number(ati.unicode(), 16) + u';'); +- retval.replace(i, 1, replacement); +- i += replacement.size(); +- len += replacement.size() - 1; +- } else if (encodeEOLs && ati == QChar(0xD)) { +- retval.replace(i, 1, " "_L1); // Replace a single 0xD with a ref for 0xD +- len += 4; +- i += 5; +- } else { +- ++i; ++ const qsizetype len = str.size(); ++ for (qsizetype cur = 0; cur < len; ++cur) { ++ switch (str[cur].unicode()) { ++ case u'<': ++ appendToOutput(cur, "<"_L1); ++ break; ++ case u'"': ++ if (encodeQuotes) ++ appendToOutput(cur, """_L1); ++ break; ++ case u'&': ++ appendToOutput(cur, "&"_L1); ++ break; ++ case u'>': ++ if (cur >= 2 && str[cur - 1] == u']' && str[cur - 2] == u']') ++ appendToOutput(cur, ">"_L1); ++ break; ++ case u'\r': ++ if (performAVN || encodeEOLs) ++ appendToOutput(cur, " "_L1); // \r == 0x0d ++ break; ++ case u'\n': ++ if (performAVN) ++ appendToOutput(cur, " "_L1); // \n == 0x0a ++ break; ++ case u'\t': ++ if (performAVN) ++ appendToOutput(cur, " "_L1); // \t == 0x09 ++ break; ++ default: ++ break; + } + } +- +- return retval; ++ if (start > 0) { ++ retval.append(QStringView(str).first(len).sliced(start)); ++ return retval; ++ } ++ return str; + } + + void QDomAttrPrivate::save(QTextStream& s, int, int) const diff --git a/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff b/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff new file mode 100644 index 00000000..99fda02e --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff @@ -0,0 +1,230 @@ +From d29b3721988d64fdd10050918e376ae9fad8117f Mon Sep 17 00:00:00 2001 +From: Shawn Rutledge +Date: Thu, 27 Mar 2025 15:17:21 +0100 +Subject: [PATCH] QTextMarkdownImporter: Fix heap-buffer-overflow + +After finding the end marker `---`, the code expected more characters +beyond: typically at least a trailing newline. But QStringView::sliced() +crashes if asked for a substring that starts at or beyond the end. + +Now it's restructured into a separate splitFrontMatter() function, and +we're stricter, tolerating only `---\n` or `---\r\n` as marker lines. +So the code is easier to prove correct, and we don't need to check +characters between the end of the marker and the end of the line +(to allow inadvertent whitespace, for example). If the markers are +not valid, the Markdown parser will see them as thematic breaks, +as it would have done if we were not extracting the Front Matter +beforehand. + +Amends e10c9b5c0f8f194a79ce12dcf9b6b5cb19976942 and +bffddc6a993c4b6b64922e8d327bdf32e0d4975a + +Credit to OSS-Fuzz which found this as issue 42533775. + +[ChangeLog][QtGui][Text] Fixed a heap buffer overflow in +QTextMarkdownImporter. The first marker for Front Matter +must begin at the first character of a Markdown document, +and both markers must be exactly ---\n or ---\r\n. + +Done-with: Marc Mutz +Fixes: QTBUG-135284 +Change-Id: I66412d21ecc0c4eabde443d70865ed2abad86d89 +Reviewed-by: Marc Mutz +(cherry picked from commit 25986746947798e1a22d0830d3bcb11a55fcd3ae) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit eced22d7250fc7ba4dbafa1694bf149c2259d9ea) +(cherry picked from commit 9e59a924a04606c386b970ee6c9c7819cdd7ae1a) +--- + +diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdownimporter.cpp +index 5f7ef22..137a0bd 100644 +--- a/src/gui/text/qtextmarkdownimporter.cpp ++++ b/src/gui/text/qtextmarkdownimporter.cpp +@@ -28,7 +28,8 @@ + static const QChar qtmi_Newline = u'\n'; + static const QChar qtmi_Space = u' '; + +-static constexpr auto markerString() noexcept { return "---"_L1; } ++static constexpr auto lfMarkerString() noexcept { return "---\n"_L1; } ++static constexpr auto crlfMarkerString() noexcept { return "---r\n"_L1; } + + // TODO maybe eliminate the margins after all views recognize BlockQuoteLevel, CSS can format it, etc. + static const int qtmi_BlockQuoteIndent = +@@ -120,6 +121,47 @@ + { + } + ++/*! \internal ++ Split any Front Matter from the Markdown document \a md. ++ Returns a pair of QStringViews: if \a md begins with qualifying Front Matter ++ (according to the specification at https://jekyllrb.com/docs/front-matter/ ), ++ put it into the \c frontMatter view, omitting both markers; and put the remaining ++ Markdown into \c rest. If no Front Matter is found, return all of \a md in \c rest. ++*/ ++static auto splitFrontMatter(QStringView md) ++{ ++ struct R { ++ QStringView frontMatter, rest; ++ explicit operator bool() const noexcept { return !frontMatter.isEmpty(); } ++ }; ++ ++ const auto NotFound = R{{}, md}; ++ ++ /* Front Matter must start with '---\n' or '---\r\n' on the very first line, ++ and Front Matter must end with another such line. ++ If that is not the case, we return NotFound: then the whole document is ++ to be passed on to the Markdown parser, in which '---\n' is interpreted ++ as a "thematic break" (like
in HTML). */ ++ QLatin1StringView marker; ++ if (md.startsWith(lfMarkerString())) ++ marker = lfMarkerString(); ++ else if (md.startsWith(crlfMarkerString())) ++ marker = crlfMarkerString(); ++ else ++ return NotFound; ++ ++ const auto frontMatterStart = marker.size(); ++ const auto endMarkerPos = md.indexOf(marker, frontMatterStart); ++ ++ if (endMarkerPos < 0 || md[endMarkerPos - 1] != QChar::LineFeed) ++ return NotFound; ++ ++ Q_ASSERT(frontMatterStart < md.size()); ++ Q_ASSERT(endMarkerPos < md.size()); ++ const auto frontMatter = md.sliced(frontMatterStart, endMarkerPos - frontMatterStart); ++ return R{frontMatter, md.sliced(endMarkerPos + marker.size())}; ++} ++ + void QTextMarkdownImporter::import(const QString &markdown) + { + MD_PARSER callbacks = { +@@ -144,21 +186,14 @@ + qCDebug(lcMD) << "default font" << defaultFont << "mono font" << m_monoFont; + QStringView md = markdown; + +- if (m_features.testFlag(QTextMarkdownImporter::FeatureFrontMatter) && md.startsWith(markerString())) { +- qsizetype endMarkerPos = md.indexOf(markerString(), markerString().size() + 1); +- if (endMarkerPos > 4) { +- qsizetype firstLinePos = 4; // first line of yaml +- while (md.at(firstLinePos) == '\n'_L1 || md.at(firstLinePos) == '\r'_L1) +- ++firstLinePos; +- auto frontMatter = md.sliced(firstLinePos, endMarkerPos - firstLinePos); +- firstLinePos = endMarkerPos + 4; // first line of markdown after yaml +- while (md.size() > firstLinePos && (md.at(firstLinePos) == '\n'_L1 || md.at(firstLinePos) == '\r'_L1)) +- ++firstLinePos; +- md = md.sliced(firstLinePos); +- doc->setMetaInformation(QTextDocument::FrontMatter, frontMatter.toString()); +- qCDebug(lcMD) << "extracted FrontMatter: size" << frontMatter.size(); ++ if (m_features.testFlag(QTextMarkdownImporter::FeatureFrontMatter)) { ++ if (const auto split = splitFrontMatter(md)) { ++ doc->setMetaInformation(QTextDocument::FrontMatter, split.frontMatter.toString()); ++ qCDebug(lcMD) << "extracted FrontMatter: size" << split.frontMatter.size(); ++ md = split.rest; + } + } ++ + const auto mdUtf8 = md.toUtf8(); + m_cursor.beginEditBlock(); + md_parse(mdUtf8.constData(), MD_SIZE(mdUtf8.size()), &callbacks, this); +diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed1.md b/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed1.md +new file mode 100644 +index 0000000..8923d75 +--- /dev/null ++++ b/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed1.md +@@ -0,0 +1,3 @@ ++--- ++name: "Pluto"--- ++Pluto may not be a planet. And this document does not contain Front Matter. +diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed2.md b/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed2.md +new file mode 100644 +index 0000000..1c03291 +--- /dev/null ++++ b/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed2.md +@@ -0,0 +1,5 @@ ++--- ++name: "Sloppy" ++--- ++This document has trailing whitespace after its second Front Matter marker. ++Therefore the marker does not qualify, and the document does not have Front Matter. +diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed3.md b/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed3.md +new file mode 100644 +index 0000000..9621704 +--- /dev/null ++++ b/tests/auto/gui/text/qtextmarkdownimporter/data/front-marker-malformed3.md +@@ -0,0 +1,4 @@ ++--- ++name: "Aborted YAML" ++description: "The ending marker does not end with a newline, so it's invalid." ++--- +\ No newline at end of file +diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/oss-fuzz-42533775.md b/tests/auto/gui/text/qtextmarkdownimporter/data/oss-fuzz-42533775.md +new file mode 100644 +index 0000000..04ff53a +--- /dev/null ++++ b/tests/auto/gui/text/qtextmarkdownimporter/data/oss-fuzz-42533775.md +@@ -0,0 +1 @@ ++--- --- +\ No newline at end of file +diff --git a/tests/auto/gui/text/qtextmarkdownimporter/data/yaml-crlf.md b/tests/auto/gui/text/qtextmarkdownimporter/data/yaml-crlf.md +new file mode 100644 +index 0000000..c3e5243 +--- /dev/null ++++ b/tests/auto/gui/text/qtextmarkdownimporter/data/yaml-crlf.md +@@ -0,0 +1,10 @@ ++--- ++name: "Venus" ++discoverer: "Galileo Galilei" ++title: "A description of the planet Venus" ++keywords: ++ - planets ++ - solar system ++ - astronomy ++--- ++*Venus* is the second planet from the Sun, orbiting it every 224.7 Earth days. +diff --git a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp +index d9fe000..1a71b48 100644 +--- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp ++++ b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp +@@ -548,6 +548,7 @@ + QTest::addColumn("warning"); + QTest::newRow("fuzz20450") << "attempted to insert into a list that no longer exists"; + QTest::newRow("fuzz20580") << ""; ++ QTest::newRow("oss-fuzz-42533775") << ""; // caused a heap-buffer-overflow + } + + void tst_QTextMarkdownImporter::pathological() // avoid crashing on crazy input +@@ -644,15 +645,21 @@ + void tst_QTextMarkdownImporter::frontMatter_data() + { + QTest::addColumn("inputFile"); ++ QTest::addColumn("expectedFrontMatterSize"); + QTest::addColumn("expectedBlockCount"); + +- QTest::newRow("yaml + markdown") << QFINDTESTDATA("data/yaml.md") << 1; +- QTest::newRow("yaml only") << QFINDTESTDATA("data/yaml-only.md") << 0; ++ QTest::newRow("yaml + markdown") << QFINDTESTDATA("data/yaml.md") << 140 << 1; ++ QTest::newRow("yaml + markdown with CRLFs") << QFINDTESTDATA("data/yaml-crlf.md") << 140 << 1; ++ QTest::newRow("yaml only") << QFINDTESTDATA("data/yaml-only.md") << 59 << 0; ++ QTest::newRow("malformed 1") << QFINDTESTDATA("data/front-marker-malformed1.md") << 0 << 1; ++ QTest::newRow("malformed 2") << QFINDTESTDATA("data/front-marker-malformed2.md") << 0 << 2; ++ QTest::newRow("malformed 3") << QFINDTESTDATA("data/front-marker-malformed3.md") << 0 << 1; + } + + void tst_QTextMarkdownImporter::frontMatter() + { + QFETCH(QString, inputFile); ++ QFETCH(int, expectedFrontMatterSize); + QFETCH(int, expectedBlockCount); + + QFile f(inputFile); +@@ -672,7 +679,9 @@ + ++blockCount; + } + QCOMPARE(blockCount, expectedBlockCount); // yaml is not part of the markdown text +- QCOMPARE(doc.metaInformation(QTextDocument::FrontMatter), yaml); // without fences ++ if (expectedFrontMatterSize) ++ QCOMPARE(doc.metaInformation(QTextDocument::FrontMatter), yaml); // without fences ++ QCOMPARE(doc.metaInformation(QTextDocument::FrontMatter).size(), expectedFrontMatterSize); + } + + void tst_QTextMarkdownImporter::toRawText_data() diff --git a/packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.5.diff b/packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.5.diff new file mode 100644 index 00000000..dc492754 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.5.diff @@ -0,0 +1,61 @@ +From 59d7eb9bbb4f13cccbd9323fd995a8c108b56e60 Mon Sep 17 00:00:00 2001 +From: Mårten Nordheim +Date: Mon, 17 Mar 2025 14:22:11 +0100 +Subject: [PATCH] QFileSystemEngine/Win: Use GetTempPath2 when available + +Because the documentation for GetTempPath nows says apps should call +GetTempPath2.[0] + +Starting with Windows 11[1], and recently Windows 10[2], +GetTempPath2 was added. The difference being that elevated +processes are returned a different directory. Usually +'C:\Windows\SystemTemp'. + +Currently temporary files of an elevated process may be placed in a +world write-able location. GetTempPath2, by default, but can be +overridden, places it in a directory that's only accessible by SYSTEM +and administrators. + +[0] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppathw#remarks +[1] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppath2w +(Minimum supported client - Windows 11 Build 22000) +[2] https://blogs.windows.com/windows-insider/2025/03/13/releasing-windows-10-build-19045-5674-to-the-release-preview-channel/ +(This update enables system processes to store temporary files ...) + +[ChangeLog][QtCore][Important Behavior Changes] On +Windows, generating temporary directories for processes with elevated +privileges may now return a different path with a stricter +set of permissions. Please consult Microsoft's documentation from when +they made the same change for the .NET framework: +https://support.microsoft.com/en-us/topic/gettemppath-changes-in-windows-february-cumulative-update-preview-4cc631fb-9d97-4118-ab6d-f643cd0a7259 + +Pick-to: 5.15 +Change-Id: I5caf11151fb2f711bbc5599231f140598b3c9d03 +Reviewed-by: Marc Mutz +(cherry picked from commit 69633bcb58e681bac5bff3744e5a2352788dc36c) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 6a684a53b371ec483b27bf243af24819be63f85f) +(cherry picked from commit bbeccc0c22e520f46f0b33e281fa5ac85ac9c727) +--- + +diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp +index a18e1dd..1639a26 100644 +--- a/src/corelib/io/qfilesystemengine_win.cpp ++++ b/src/corelib/io/qfilesystemengine_win.cpp +@@ -1599,7 +1599,15 @@ + { + QString ret; + wchar_t tempPath[MAX_PATH]; +- const DWORD len = GetTempPath(MAX_PATH, tempPath); ++ using GetTempPathPrototype = DWORD (WINAPI *)(DWORD, LPWSTR); ++ // We try to resolve GetTempPath2 and use that, otherwise fall back to GetTempPath: ++ static GetTempPathPrototype getTempPathW = []() { ++ const HMODULE kernel32 = GetModuleHandleW(L"kernel32.dll"); ++ if (auto *func = QFunctionPointer(GetProcAddress(kernel32, "GetTempPath2W"))) ++ return GetTempPathPrototype(func); ++ return GetTempPath; ++ }(); ++ const DWORD len = getTempPathW(MAX_PATH, tempPath); + if (len) { // GetTempPath() can return short names, expand. + wchar_t longTempPath[MAX_PATH]; + const DWORD longLen = GetLongPathName(tempPath, longTempPath, MAX_PATH); diff --git a/packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.8.diff b/packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.8.diff new file mode 100644 index 00000000..9e14802a --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-4211-qtbase-6.8.diff @@ -0,0 +1,60 @@ +From bbeccc0c22e520f46f0b33e281fa5ac85ac9c727 Mon Sep 17 00:00:00 2001 +From: Mårten Nordheim +Date: Mon, 17 Mar 2025 14:22:11 +0100 +Subject: [PATCH] QFileSystemEngine/Win: Use GetTempPath2 when available + +Because the documentation for GetTempPath nows says apps should call +GetTempPath2.[0] + +Starting with Windows 11[1], and recently Windows 10[2], +GetTempPath2 was added. The difference being that elevated +processes are returned a different directory. Usually +'C:\Windows\SystemTemp'. + +Currently temporary files of an elevated process may be placed in a +world write-able location. GetTempPath2, by default, but can be +overridden, places it in a directory that's only accessible by SYSTEM +and administrators. + +[0] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppathw#remarks +[1] https://learn.microsoft.com/en-us/windows/win32/api/fileapi/nf-fileapi-gettemppath2w +(Minimum supported client - Windows 11 Build 22000) +[2] https://blogs.windows.com/windows-insider/2025/03/13/releasing-windows-10-build-19045-5674-to-the-release-preview-channel/ +(This update enables system processes to store temporary files ...) + +[ChangeLog][QtCore][Important Behavior Changes] On +Windows, generating temporary directories for processes with elevated +privileges may now return a different path with a stricter +set of permissions. Please consult Microsoft's documentation from when +they made the same change for the .NET framework: +https://support.microsoft.com/en-us/topic/gettemppath-changes-in-windows-february-cumulative-update-preview-4cc631fb-9d97-4118-ab6d-f643cd0a7259 + +Pick-to: 6.5 5.15 +Change-Id: I5caf11151fb2f711bbc5599231f140598b3c9d03 +Reviewed-by: Marc Mutz +(cherry picked from commit 69633bcb58e681bac5bff3744e5a2352788dc36c) +Reviewed-by: Qt Cherry-pick Bot +(cherry picked from commit 6a684a53b371ec483b27bf243af24819be63f85f) +--- + +diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp +index 8300c3b..6ea1f1b 100644 +--- a/src/corelib/io/qfilesystemengine_win.cpp ++++ b/src/corelib/io/qfilesystemengine_win.cpp +@@ -1635,7 +1635,15 @@ + { + QString ret; + wchar_t tempPath[MAX_PATH]; +- const DWORD len = GetTempPath(MAX_PATH, tempPath); ++ using GetTempPathPrototype = DWORD (WINAPI *)(DWORD, LPWSTR); ++ // We try to resolve GetTempPath2 and use that, otherwise fall back to GetTempPath: ++ static GetTempPathPrototype getTempPathW = []() { ++ const HMODULE kernel32 = GetModuleHandleW(L"kernel32.dll"); ++ if (auto *func = QFunctionPointer(GetProcAddress(kernel32, "GetTempPath2W"))) ++ return GetTempPathPrototype(func); ++ return GetTempPath; ++ }(); ++ const DWORD len = getTempPathW(MAX_PATH, tempPath); + if (len) { // GetTempPath() can return short names, expand. + wchar_t longTempPath[MAX_PATH]; + const DWORD longLen = GetLongPathName(tempPath, longTempPath, MAX_PATH); diff --git a/packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.5.patch b/packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.5.patch new file mode 100644 index 00000000..9adbb41c --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.5.patch @@ -0,0 +1,22 @@ +diff --git a/src/corelib/io/qdataurl.cpp b/src/corelib/io/qdataurl.cpp +index 27fdaf58e69..974aee2539e 100644 +--- a/src/corelib/io/qdataurl.cpp ++++ b/src/corelib/io/qdataurl.cpp +@@ -42,10 +42,11 @@ Q_CORE_EXPORT bool qDecodeDataUrl(const QUrl &uri, QString &mimeType, QByteArray + } + + if (QLatin1StringView{data}.startsWith("charset"_L1, Qt::CaseInsensitive)) { +- qsizetype i = 7; // strlen("charset") +- while (data.at(i) == ' ') +- ++i; +- if (data.at(i) == '=') ++ qsizetype prefixSize = 7; // strlen("charset") ++ QByteArrayView copy(data.constData() + prefixSize, data.size() - prefixSize); ++ while (copy.startsWith(' ')) ++ copy = copy.sliced(1); ++ if (copy.startsWith('=')) + data.prepend("text/plain;"); + } + + + diff --git a/packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.8.patch b/packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.8.patch new file mode 100644 index 00000000..808f41fe --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-5455-qtbase-6.8.patch @@ -0,0 +1,21 @@ +diff --git a/src/corelib/io/qdataurl.cpp b/src/corelib/io/qdataurl.cpp +index 65b934b3f67..c5ecca8fb82 100644 +--- a/src/corelib/io/qdataurl.cpp ++++ b/src/corelib/io/qdataurl.cpp +@@ -47,10 +47,10 @@ Q_CORE_EXPORT bool qDecodeDataUrl(const QUrl &uri, QString &mimeType, QByteArray + QLatin1StringView textPlain; + constexpr auto charset = "charset"_L1; + if (QLatin1StringView{data}.startsWith(charset, Qt::CaseInsensitive)) { +- qsizetype i = charset.size(); +- while (data.at(i) == ' ') +- ++i; +- if (data.at(i) == '=') ++ QByteArrayView copy = data.sliced(charset.size()); ++ while (copy.startsWith(' ')) ++ copy.slice(1); ++ if (copy.startsWith('=')) + textPlain = "text/plain;"_L1; + } + + + diff --git a/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.5.patch b/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.5.patch new file mode 100644 index 00000000..02c04383 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.5.patch @@ -0,0 +1,29 @@ +diff --git a/src/plugins/imageformats/icns/qicnshandler.cpp b/src/plugins/imageformats/icns/qicnshandler.cpp +index 02086cbf26c..207f7cd8393 100644 +--- a/src/plugins/imageformats/icns/qicnshandler.cpp ++++ b/src/plugins/imageformats/icns/qicnshandler.cpp +@@ -323,8 +323,11 @@ static inline bool isPowOf2OrDividesBy16(quint32 u, qreal r) + + static inline bool isBlockHeaderValid(const ICNSBlockHeader &header, quint64 bound = 0) + { +- return header.ostype != 0 && (bound == 0 +- || qBound(quint64(ICNSBlockHeaderSize), quint64(header.length), bound) == header.length); ++ return header.ostype != 0 && ++ (bound == 0 || ++ // qBound can be used but requires checking the limits first ++ // this requires less operations ++ (ICNSBlockHeaderSize <= header.length && header.length <= bound)); + } + + static inline bool isIconCompressed(const ICNSEntry &icon) +@@ -869,7 +872,7 @@ bool QICNSHandler::scanDevice() + return false; + + const qint64 blockDataOffset = device()->pos(); +- if (!isBlockHeaderValid(blockHeader, ICNSBlockHeaderSize + filelength - blockDataOffset)) { ++ if (!isBlockHeaderValid(blockHeader, ICNSBlockHeaderSize - blockDataOffset + filelength)) { + qWarning("QICNSHandler::scanDevice(): Failed, bad header at pos %s. OSType \"%s\", length %u", + QByteArray::number(blockDataOffset).constData(), + nameFromOSType(blockHeader.ostype).constData(), blockHeader.length); + + diff --git a/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch b/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch new file mode 100644 index 00000000..278d6ac3 --- /dev/null +++ b/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch @@ -0,0 +1,28 @@ +diff --git a/src/plugins/imageformats/icns/qicnshandler.cpp b/src/plugins/imageformats/icns/qicnshandler.cpp +index 6cf74b219a1..501394deede 100644 +--- a/src/plugins/imageformats/icns/qicnshandler.cpp ++++ b/src/plugins/imageformats/icns/qicnshandler.cpp +@@ -324,8 +324,11 @@ static inline bool isPowOf2OrDividesBy16(quint32 u, qreal r) + + static inline bool isBlockHeaderValid(const ICNSBlockHeader &header, quint64 bound = 0) + { +- return header.ostype != 0 && (bound == 0 +- || qBound(quint64(ICNSBlockHeaderSize), quint64(header.length), bound) == header.length); ++ return header.ostype != 0 && ++ (bound == 0 || ++ // qBound can be used but requires checking the limits first ++ // this requires less operations ++ (ICNSBlockHeaderSize <= header.length && header.length <= bound)); + } + + static inline bool isIconCompressed(const ICNSEntry &icon) +@@ -870,7 +873,7 @@ bool QICNSHandler::scanDevice() + return false; + + const qint64 blockDataOffset = device()->pos(); +- if (!isBlockHeaderValid(blockHeader, ICNSBlockHeaderSize + filelength - blockDataOffset)) { ++ if (!isBlockHeaderValid(blockHeader, ICNSBlockHeaderSize - blockDataOffset + filelength)) { + qWarning("QICNSHandler::scanDevice(): Failed, bad header at pos %s. OSType \"%s\", length %u", + QByteArray::number(blockDataOffset).constData(), + nameFromOSType(blockHeader.ostype).constData(), blockHeader.length); + diff --git a/packages/conan/recipes/qt/patches/QTBUG-59769-6.5.6.diff b/packages/conan/recipes/qt/patches/QTBUG-59769-6.5.6.diff new file mode 100644 index 00000000..0eb3ecb6 --- /dev/null +++ b/packages/conan/recipes/qt/patches/QTBUG-59769-6.5.6.diff @@ -0,0 +1,30 @@ +diff -u -r a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc b/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc +--- a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc 2023-11-25 10:36:14.535016596 -0800 ++++ b/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc 2023-11-25 10:38:14.942776684 -0800 +@@ -6,6 +6,10 @@ + + #include + ++#include ++#include ++#include ++ + #include "base/strings/string_util.h" + #include "gn/deps_iterator.h" + #include "gn/err.h" +@@ -124,7 +127,15 @@ + // each invocation of the rule gets a different response file. This isn't + // strictly necessary for regular one-shot actions, but it's easier to + // just always define unique_name. ++ ++ // filename too long issue. + std::string rspfile = custom_rule_name; ++ ++ std::hash hash_fn; ++ size_t hash_id = hash_fn(rspfile); ++ ++ rspfile = std::to_string(hash_id); ++ + if (!target_->sources().empty()) + rspfile += ".$unique_name"; + rspfile += ".rsp"; diff --git a/packages/conan/recipes/qt/patches/c72097e-6.5.6.diff b/packages/conan/recipes/qt/patches/c72097e-6.5.6.diff new file mode 100644 index 00000000..968f4abf --- /dev/null +++ b/packages/conan/recipes/qt/patches/c72097e-6.5.6.diff @@ -0,0 +1,42 @@ +From c72097e8790553771daf3231124c3fbe1a438379 Mon Sep 17 00:00:00 2001 +From: Samuli Piippo +Date: Thu, 30 Mar 2017 11:37:24 +0300 +Subject: [PATCH] chromium: workaround for too long .rps file name + +Ninja may fail when the build directory is too long: + +ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_\ +interfaces_info_individual_modules__home_qt_work_build_build-nitrogen\ +6x_tmp_work_cortexa9hf-neon-mx6qdl-poky-linux-gnueabi_qtwebengine_5.9\ +.0_gitAUTOINC_29afdb0a34_049134677a-r0_build_src_toolchain_target__ru\ +le.rsp): Unable to create file. File name too long + +Task-number: QTBUG-59769 +Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1 +--- + src/3rdparty/gn/src/gn/ninja_action_target_writer.cc | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc b/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc +index a5bc6cd..5cefbfe 100644 +--- a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc ++++ b/src/3rdparty/gn/tosrcols/gn/ninja_action_target_writer.cc +@@ -125,9 +125,18 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() { + // strictly necessary for regular one-shot actions, but it's easier to + // just always define unique_name. + std::string rspfile = custom_rule_name; ++ ++ //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end ++ //please note ".$unique_name" is not used at the moment ++ int pos = 0; ++ std::string delimiter("_"); ++ while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos) ++ rspfile = rspfile.substr(0,pos); ++ + if (!target_->sources().empty()) + rspfile += ".$unique_name"; + rspfile += ".rsp"; ++ + out_ << " rspfile = " << rspfile << std::endl; + + // Response file contents. diff --git a/packages/conan/recipes/qt/patches/qtbase-core-cmake_6.5.4.diff b/packages/conan/recipes/qt/patches/qtbase-core-cmake-6.5.4.diff similarity index 100% rename from packages/conan/recipes/qt/patches/qtbase-core-cmake_6.5.4.diff rename to packages/conan/recipes/qt/patches/qtbase-core-cmake-6.5.4.diff diff --git a/packages/conan/recipes/qt/patches/qtbase-core-cmake-6.5.6.diff b/packages/conan/recipes/qt/patches/qtbase-core-cmake-6.5.6.diff new file mode 100644 index 00000000..cb168906 --- /dev/null +++ b/packages/conan/recipes/qt/patches/qtbase-core-cmake-6.5.6.diff @@ -0,0 +1,14 @@ +On RHEL and derivatives /bin/ls is a shell script. + +diff -u -r a/src/corelib/CMakeLists.txt b/src/corelib/CMakeLists.txt +--- a/src/corelib/CMakeLists.txt ++++ b/src/corelib/CMakeLists.txt +@@ -402,7 +402,7 @@ + # Find ELF interpreter and define a macro for that: + if ((LINUX OR HURD) AND NOT CMAKE_CROSSCOMPILING AND BUILD_SHARED_LIBS) + if (NOT DEFINED ELF_INTERPRETER) +- execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C readelf -l /bin/ls ++ execute_process(COMMAND ${CMAKE_COMMAND} -E env LC_ALL=C readelf -l /bin/grep + RESULT_VARIABLE readelf_ok + OUTPUT_VARIABLE readelf_output + ) diff --git a/packages/conan/recipes/qt/patches/spellcheck_buildflags-6.5.6.diff b/packages/conan/recipes/qt/patches/spellcheck_buildflags-6.5.6.diff new file mode 100644 index 00000000..eb6acf48 --- /dev/null +++ b/packages/conan/recipes/qt/patches/spellcheck_buildflags-6.5.6.diff @@ -0,0 +1,10 @@ +--- src/3rdparty/chromium/content/browser/BUILD.gn.orig 2023-02-27 18:57:08.000000000 +0000 ++++ src/3rdparty/chromium/content/browser/BUILD.gn +@@ -45,6 +45,7 @@ jumbo_static_library("devtools_protocol" + + deps = [ + "//base", ++ "//components/spellcheck:buildflags", + "//content/browser/devtools:devtools_background_services_proto", + "//content/browser/devtools:protocol_sources", + "//content/common:buildflags", diff --git a/packages/conan/recipes/qt/qtmodules6.5.6.conf b/packages/conan/recipes/qt/qtmodules6.5.6.conf new file mode 100644 index 00000000..acf8aeac --- /dev/null +++ b/packages/conan/recipes/qt/qtmodules6.5.6.conf @@ -0,0 +1,332 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.5.6 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.5.6 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg qtlanguageserver + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.5.6 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.5.6 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative qtquick3d + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.5.6 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.5.6 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.5.6 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtshadertools qtwebengine + path = qtdoc + url = ../qtdoc.git + branch = 6.5.6 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase qtpositioning + recommends = qtdeclarative + path = qtlocation + url = ../qtlocation.git + branch = 6.5.6 + status = preview +[submodule "qtpositioning"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtpositioning + url = ../qtpositioning.git + branch = 6.5.6 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.5.6 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.5.6 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.5.6 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools + path = qt3d + url = ../qt3d.git + branch = 6.5.6 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.5.6 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.5.6 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.5.6 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.5.6 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.5.6 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtwebchannel qttools qtpositioning + path = qtwebengine + url = ../qtwebengine.git + branch = 6.5.6 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.5.6 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.5.6 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.5.6 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.5.6 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.5.6 + status = addon +[submodule "qtspeech"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtspeech + url = ../qtspeech.git + branch = 6.5.6 + status = addon +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.5.6 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.5.6 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.5.6 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.5.6 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.5.6 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.5.6 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.5.6 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.5.6 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.5.6 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.5.6 + status = addon +[submodule "qtlanguageserver"] + depends = qtbase + path = qtlanguageserver + url = ../qtlanguageserver.git + branch = 6.5.6 + status = preview +[submodule "qthttpserver"] + depends = qtbase + recommends = qtwebsockets + path = qthttpserver + url = ../qthttpserver.git + branch = 6.5.6 + status = preview +[submodule "qtquick3dphysics"] + depends = qtbase qtdeclarative qtquick3d qtshadertools + path = qtquick3dphysics + url = ../qtquick3dphysics.git + branch = 6.5.6 + status = addon +[submodule "qtgrpc"] + depends = qtbase + recommends = qtdeclarative + path = qtgrpc + url = ../qtgrpc.git + branch = 6.5.6 + status = preview +[submodule "qtquickeffectmaker"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquick3d + path = qtquickeffectmaker + url = ../qtquickeffectmaker.git + branch = 6.5.6 + status = addon diff --git a/packages/conan/recipes/qt/qtmodules6.7.3.conf b/packages/conan/recipes/qt/qtmodules6.7.3.conf new file mode 100644 index 00000000..416cfaa7 --- /dev/null +++ b/packages/conan/recipes/qt/qtmodules6.7.3.conf @@ -0,0 +1,338 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.7.3 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.7.3 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg qtlanguageserver + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.7.3 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.7.3 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative qtquick3d + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.7.3 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.7.3 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.7.3 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtshadertools qtwebengine + path = qtdoc + url = ../qtdoc.git + branch = 6.7.3 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase qtpositioning + recommends = qtdeclarative + path = qtlocation + url = ../qtlocation.git + branch = 6.7.3 + status = preview +[submodule "qtpositioning"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtpositioning + url = ../qtpositioning.git + branch = 6.7.3 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.7.3 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.7.3 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.7.3 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools qtmultimedia + path = qt3d + url = ../qt3d.git + branch = 6.7.3 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.7.3 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.7.3 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.7.3 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.7.3 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.7.3 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtwebchannel qttools qtpositioning + path = qtwebengine + url = ../qtwebengine.git + branch = 6.7.3 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.7.3 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.7.3 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.7.3 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.7.3 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.7.3 + status = addon +[submodule "qtspeech"] + depends = qtbase qtmultimedia + recommends = qtdeclarative + path = qtspeech + url = ../qtspeech.git + branch = 6.7.3 + status = addon +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.7.3 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.7.3 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.7.3 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.7.3 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.7.3 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.7.3 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.7.3 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.7.3 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.7.3 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.7.3 + status = addon +[submodule "qtlanguageserver"] + depends = qtbase + path = qtlanguageserver + url = ../qtlanguageserver.git + branch = 6.7.3 + status = preview +[submodule "qthttpserver"] + depends = qtbase + recommends = qtwebsockets + path = qthttpserver + url = ../qthttpserver.git + branch = 6.7.3 + status = preview +[submodule "qtquick3dphysics"] + depends = qtbase qtdeclarative qtquick3d qtshadertools + path = qtquick3dphysics + url = ../qtquick3dphysics.git + branch = 6.7.3 + status = addon +[submodule "qtgrpc"] + depends = qtbase + recommends = qtdeclarative + path = qtgrpc + url = ../qtgrpc.git + branch = 6.7.3 + status = preview +[submodule "qtquickeffectmaker"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquick3d + path = qtquickeffectmaker + url = ../qtquickeffectmaker.git + branch = 6.7.3 + status = addon +[submodule "qtgraphs"] + depends = qtbase qtdeclarative qtquick3d + path = qtgraphs + url = ../qtgraphs.git + branch = 6.7.3 + status = preview diff --git a/packages/conan/recipes/qt/qtmodules6.8.3.conf b/packages/conan/recipes/qt/qtmodules6.8.3.conf new file mode 100644 index 00000000..b2d734d0 --- /dev/null +++ b/packages/conan/recipes/qt/qtmodules6.8.3.conf @@ -0,0 +1,338 @@ +[submodule "qtbase"] + path = qtbase + url = ../qtbase.git + branch = 6.8.3 + status = essential +[submodule "qtsvg"] + depends = qtbase + path = qtsvg + url = ../qtsvg.git + branch = 6.8.3 + status = addon +[submodule "qtdeclarative"] + depends = qtbase + recommends = qtimageformats qtshadertools qtsvg qtlanguageserver + path = qtdeclarative + url = ../qtdeclarative.git + branch = 6.8.3 + status = essential +[submodule "qtactiveqt"] + depends = qtbase + path = qtactiveqt + url = ../qtactiveqt.git + branch = 6.8.3 + status = addon +[submodule "qtmultimedia"] + depends = qtbase qtshadertools + recommends = qtdeclarative qtquick3d + path = qtmultimedia + url = ../qtmultimedia.git + branch = 6.8.3 + status = addon +[submodule "qttools"] + depends = qtbase + recommends = qtdeclarative qtactiveqt + path = qttools + url = ../qttools.git + branch = 6.8.3 + status = essential +[submodule "qtxmlpatterns"] + depends = qtbase + recommends = qtdeclarative + path = qtxmlpatterns + url = ../qtxmlpatterns.git + branch = dev + status = ignore +[submodule "qttranslations"] + depends = qttools + path = qttranslations + url = ../qttranslations.git + branch = 6.8.3 + status = essential + priority = 30 +[submodule "qtdoc"] + depends = qtdeclarative qttools + recommends = qtmultimedia qtshadertools qtwebengine + path = qtdoc + url = ../qtdoc.git + branch = 6.8.3 + status = essential + priority = 40 +[submodule "qtrepotools"] + path = qtrepotools + url = ../qtrepotools.git + branch = master + status = essential + project = - +[submodule "qtqa"] + depends = qtbase + path = qtqa + url = ../qtqa.git + branch = dev + status = essential + priority = 50 +[submodule "qtlocation"] + depends = qtbase qtpositioning + recommends = qtdeclarative + path = qtlocation + url = ../qtlocation.git + branch = 6.8.3 + status = preview +[submodule "qtpositioning"] + depends = qtbase + recommends = qtdeclarative qtserialport + path = qtpositioning + url = ../qtpositioning.git + branch = 6.8.3 + status = addon +[submodule "qtsensors"] + depends = qtbase + recommends = qtdeclarative + path = qtsensors + url = ../qtsensors.git + branch = 6.8.3 + status = addon +[submodule "qtsystems"] + depends = qtbase + recommends = qtdeclarative + path = qtsystems + url = ../qtsystems.git + branch = dev + status = ignore +[submodule "qtfeedback"] + depends = qtdeclarative + recommends = qtmultimedia + path = qtfeedback + url = ../qtfeedback.git + branch = master + status = ignore +[submodule "qtpim"] + depends = qtdeclarative + path = qtpim + url = ../qtpim.git + branch = dev + status = ignore +[submodule "qtconnectivity"] + depends = qtbase + recommends = qtdeclarative + path = qtconnectivity + url = ../qtconnectivity.git + branch = 6.8.3 + status = addon +[submodule "qtwayland"] + depends = qtbase + recommends = qtdeclarative + path = qtwayland + url = ../qtwayland.git + branch = 6.8.3 + status = addon +[submodule "qt3d"] + depends = qtbase + recommends = qtdeclarative qtshadertools qtmultimedia + path = qt3d + url = ../qt3d.git + branch = 6.8.3 + status = addon +[submodule "qtimageformats"] + depends = qtbase + path = qtimageformats + url = ../qtimageformats.git + branch = 6.8.3 + status = addon +[submodule "qtserialbus"] + depends = qtbase + recommends = qtserialport + path = qtserialbus + url = ../qtserialbus.git + branch = 6.8.3 + status = addon +[submodule "qtserialport"] + depends = qtbase + path = qtserialport + url = ../qtserialport.git + branch = 6.8.3 + status = addon +[submodule "qtwebsockets"] + depends = qtbase + recommends = qtdeclarative + path = qtwebsockets + url = ../qtwebsockets.git + branch = 6.8.3 + status = addon +[submodule "qtwebchannel"] + depends = qtbase + recommends = qtdeclarative qtwebsockets + path = qtwebchannel + url = ../qtwebchannel.git + branch = 6.8.3 + status = addon +[submodule "qtwebengine"] + depends = qtdeclarative + recommends = qtwebchannel qttools qtpositioning + path = qtwebengine + url = ../qtwebengine.git + branch = 6.8.3 + status = addon + priority = 10 +[submodule "qtcanvas3d"] + depends = qtdeclarative + path = qtcanvas3d + url = ../qtcanvas3d.git + branch = dev + status = ignore +[submodule "qtwebview"] + depends = qtdeclarative + recommends = qtwebengine + path = qtwebview + url = ../qtwebview.git + branch = 6.8.3 + status = addon +[submodule "qtcharts"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtcharts + url = ../qtcharts.git + branch = 6.8.3 + status = addon +[submodule "qtdatavis3d"] + depends = qtbase + recommends = qtdeclarative qtmultimedia + path = qtdatavis3d + url = ../qtdatavis3d.git + branch = 6.8.3 + status = addon +[submodule "qtvirtualkeyboard"] + depends = qtbase qtdeclarative qtsvg + recommends = qtmultimedia + path = qtvirtualkeyboard + url = ../qtvirtualkeyboard.git + branch = 6.8.3 + status = addon +[submodule "qtgamepad"] + depends = qtbase + recommends = qtdeclarative + path = qtgamepad + url = ../qtgamepad.git + branch = dev + status = ignore +[submodule "qtscxml"] + depends = qtbase qtdeclarative + path = qtscxml + url = ../qtscxml.git + branch = 6.8.3 + status = addon +[submodule "qtspeech"] + depends = qtbase qtmultimedia + recommends = qtdeclarative + path = qtspeech + url = ../qtspeech.git + branch = 6.8.3 + status = addon +[submodule "qtnetworkauth"] + depends = qtbase + path = qtnetworkauth + url = ../qtnetworkauth.git + branch = 6.8.3 + status = addon +[submodule "qtremoteobjects"] + depends = qtbase + recommends = qtdeclarative + path = qtremoteobjects + url = ../qtremoteobjects.git + branch = 6.8.3 + status = addon +[submodule "qtwebglplugin"] + depends = qtbase qtwebsockets + recommends = qtdeclarative + path = qtwebglplugin + url = ../qtwebglplugin.git + branch = dev + status = ignore +[submodule "qtlottie"] + depends = qtbase qtdeclarative + path = qtlottie + url = ../qtlottie.git + branch = 6.8.3 + status = addon +[submodule "qtquicktimeline"] + depends = qtbase qtdeclarative + path = qtquicktimeline + url = ../qtquicktimeline + branch = 6.8.3 + status = addon +[submodule "qtquick3d"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquicktimeline + path = qtquick3d + url = ../qtquick3d.git + branch = 6.8.3 + status = addon +[submodule "qtshadertools"] + depends = qtbase + path = qtshadertools + url = ../qtshadertools.git + branch = 6.8.3 + status = addon +[submodule "qt5compat"] + depends = qtbase qtdeclarative + path = qt5compat + url = ../qt5compat.git + branch = 6.8.3 + status = deprecated +[submodule "qtcoap"] + depends = qtbase + path = qtcoap + url = ../qtcoap.git + branch = 6.8.3 + status = addon +[submodule "qtmqtt"] + depends = qtbase qtdeclarative + path = qtmqtt + url = ../qtmqtt.git + branch = 6.8.3 + status = addon +[submodule "qtopcua"] + depends = qtbase qtdeclarative + path = qtopcua + url = ../qtopcua.git + branch = 6.8.3 + status = addon +[submodule "qtlanguageserver"] + depends = qtbase + path = qtlanguageserver + url = ../qtlanguageserver.git + branch = 6.8.3 + status = preview +[submodule "qthttpserver"] + depends = qtbase + recommends = qtwebsockets + path = qthttpserver + url = ../qthttpserver.git + branch = 6.8.3 + status = preview +[submodule "qtquick3dphysics"] + depends = qtbase qtdeclarative qtquick3d qtshadertools + path = qtquick3dphysics + url = ../qtquick3dphysics.git + branch = 6.8.3 + status = addon +[submodule "qtgrpc"] + depends = qtbase + recommends = qtdeclarative + path = qtgrpc + url = ../qtgrpc.git + branch = 6.8.3 + status = preview +[submodule "qtquickeffectmaker"] + depends = qtbase qtdeclarative qtshadertools + recommends = qtquick3d + path = qtquickeffectmaker + url = ../qtquickeffectmaker.git + branch = 6.8.3 + status = addon +[submodule "qtgraphs"] + depends = qtbase qtdeclarative qtquick3d + path = qtgraphs + url = ../qtgraphs.git + branch = 6.8.3 + status = preview diff --git a/packages/conan/recipes/snappy/conandata.yml b/packages/conan/recipes/snappy/conandata.yml index 4b896a9e..942677e0 100644 --- a/packages/conan/recipes/snappy/conandata.yml +++ b/packages/conan/recipes/snappy/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/snappy/all/conandata.yml sources: + "1.2.2": + url: "https://github.com/google/snappy/archive/1.2.2.tar.gz" + sha256: "90f74bc1fbf78a6c56b3c4a082a05103b3a56bb17bca1a27e052ea11723292dc" "1.2.1": url: "https://github.com/google/snappy/archive/1.2.1.tar.gz" sha256: "736aeb64d86566d2236ddffa2865ee5d7a82d26c9016b36218fcc27ea4f09f86" @@ -24,6 +27,19 @@ sources: url: "https://github.com/google/snappy/archive/1.1.7.tar.gz" sha256: "3dfa02e873ff51a11ee02b9ca391807f0c8ea0529a4924afa645fbf97163f9d4" patches: + "1.2.2": + - patch_file: "patches/1.1.10-0001-fix-inlining-failure.patch" + patch_description: "disable inlining for compilation error" + patch_type: "portability" + - patch_file: "patches/1.1.9-0002-no-Werror.patch" + patch_description: "disable 'warning as error' options" + patch_type: "portability" + - patch_file: "patches/1.2.2-0003-fix-clobber-list-older-llvm.patch" + patch_description: "disable inline asm on apple-clang" + patch_type: "portability" + - patch_file: "patches/1.2.2-0004-rtti-by-default.patch" + patch_description: "remove 'disable rtti'" + patch_type: "conan" "1.2.1": - patch_file: "patches/1.1.10-0001-fix-inlining-failure.patch" patch_description: "disable inlining for compilation error" diff --git a/packages/conan/recipes/snappy/conanfile.py b/packages/conan/recipes/snappy/conanfile.py index 3df352c3..d71b1712 100644 --- a/packages/conan/recipes/snappy/conanfile.py +++ b/packages/conan/recipes/snappy/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/snappy/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/snappy/all/conanfile.py from conan import ConanFile from conan.tools.build import check_min_cppstd, stdcpp_library @@ -11,7 +11,7 @@ from conan.tools.scm import Version import os -required_conan_version = ">=1.54.0" +required_conan_version = ">=2.1" class SnappyConan(ConanFile): @@ -80,6 +80,8 @@ def generate(self): tc.variables["SNAPPY_HAVE_BMI2"] = self.options.with_bmi2 if self.options.with_ssse3 != "auto": tc.variables["SNAPPY_HAVE_SSSE3"] = self.options.with_ssse3 + if Version(self.version) < "1.2.2": # pylint: disable=conan-condition-evals-to-constant + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() def build(self): @@ -108,9 +110,4 @@ def package_info(self): if libcxx: self.cpp_info.components["snappylib"].system_libs.append(libcxx) - # TODO: to remove in conan v2 once cmake_find_package* generators removed - self.cpp_info.names["cmake_find_package"] = "Snappy" - self.cpp_info.names["cmake_find_package_multi"] = "Snappy" - self.cpp_info.components["snappylib"].names["cmake_find_package"] = "snappy" - self.cpp_info.components["snappylib"].names["cmake_find_package_multi"] = "snappy" self.cpp_info.components["snappylib"].set_property("cmake_target_name", "Snappy::snappy") diff --git a/packages/conan/recipes/snappy/patches/1.2.2-0003-fix-clobber-list-older-llvm.patch b/packages/conan/recipes/snappy/patches/1.2.2-0003-fix-clobber-list-older-llvm.patch new file mode 100644 index 00000000..fd1058e5 --- /dev/null +++ b/packages/conan/recipes/snappy/patches/1.2.2-0003-fix-clobber-list-older-llvm.patch @@ -0,0 +1,13 @@ +diff --git a/snappy.cc b/snappy.cc +index 08c2a98..151de55 100644 +--- a/snappy.cc ++++ b/snappy.cc +@@ -1312,7 +1312,7 @@ inline size_t AdvanceToNextTagX86Optimized(const uint8_t** ip_p, size_t* tag) { + size_t literal_len = *tag >> 2; + size_t tag_type = *tag; + bool is_literal; +-#if defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(__x86_64__) ++#if defined(__GCC_ASM_FLAG_OUTPUTS__) && defined(__x86_64__) && ( (!defined(__clang__) && !defined(__APPLE__)) || (!defined(__APPLE__) && defined(__clang__) && (__clang_major__ >= 9)) || (defined(__APPLE__) && defined(__clang__) && (__clang_major__ > 11)) ) + // TODO clang misses the fact that the (c & 3) already correctly + // sets the zero flag. + asm("and $3, %k[tag_type]\n\t" diff --git a/packages/conan/recipes/snappy/patches/1.2.2-0004-rtti-by-default.patch b/packages/conan/recipes/snappy/patches/1.2.2-0004-rtti-by-default.patch new file mode 100644 index 00000000..be54e356 --- /dev/null +++ b/packages/conan/recipes/snappy/patches/1.2.2-0004-rtti-by-default.patch @@ -0,0 +1,26 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 01eb2d7..fb4e6bf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -53,8 +53,8 @@ if(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC") + add_definitions(-D_HAS_EXCEPTIONS=0) + + # Disable RTTI. +- string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-") ++# string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-") + else(MSVC) + # Use -Wall for clang and gcc. + if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall") +@@ -83,8 +83,8 @@ endif() + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions") + + # Disable RTTI. +- string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") ++# string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") ++# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti") + endif(MSVC) + + # BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make diff --git a/packages/conan/recipes/snappy/test_package/test_package.c b/packages/conan/recipes/snappy/test_package/test_package.c index 53ec4db0..4fc4eb83 100644 --- a/packages/conan/recipes/snappy/test_package/test_package.c +++ b/packages/conan/recipes/snappy/test_package/test_package.c @@ -3,7 +3,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From:https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/snappy/all/test_package/test_package.c +# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/snappy/all/test_package/test_package.c */ #include diff --git a/packages/conan/recipes/sqlite3/conanfile.py b/packages/conan/recipes/sqlite3/conanfile.py index bef857be..a2b969e4 100644 --- a/packages/conan/recipes/sqlite3/conanfile.py +++ b/packages/conan/recipes/sqlite3/conanfile.py @@ -21,9 +21,8 @@ class SystemSqlite3Conan(ConanFile): } def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["sqlite3"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["sqlite3"] self.cpp_info.set_property("cmake_file_name", "SQLite3") self.cpp_info.set_property("cmake_target_name", "SQLite::SQLite3") diff --git a/packages/conan/recipes/tcl/conanfile.py b/packages/conan/recipes/tcl/conanfile.py index c5750e6c..1e9ccebc 100644 --- a/packages/conan/recipes/tcl/conanfile.py +++ b/packages/conan/recipes/tcl/conanfile.py @@ -13,9 +13,8 @@ class SystemTclConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["tcl"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["tcl"] self.cpp_info.set_property("cmake_file_name", "TCL") self.cpp_info.set_property("cmake_target_name", "TCL::TCL") diff --git a/packages/conan/recipes/tk/conanfile.py b/packages/conan/recipes/tk/conanfile.py index 94f0c1d1..63bf6de9 100644 --- a/packages/conan/recipes/tk/conanfile.py +++ b/packages/conan/recipes/tk/conanfile.py @@ -18,9 +18,8 @@ def requirements(self): self.requires(f"tcl/{self.version}@{os.environ['ASWF_PKG_ORG']}/{os.environ['ASWF_CONAN_CHANNEL']}", transitive_headers=True, transitive_libs=True) def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["tk"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["tk"] self.cpp_info.requires = ["tcl::tcl"] self.cpp_info.set_property("cmake_file_name", "TK") diff --git a/packages/conan/recipes/tsl-robin-map/conandata.yml b/packages/conan/recipes/tsl-robin-map/conandata.yml index 45347996..ac20c577 100644 --- a/packages/conan/recipes/tsl-robin-map/conandata.yml +++ b/packages/conan/recipes/tsl-robin-map/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/b8bd958a29ef769d74a40471f1ada0426d1f8fff/recipes/tsl-robin-map/all/conandata.yml sources: + "1.4.0": + url: "https://github.com/Tessil/robin-map/archive/v1.4.0.tar.gz" + sha256: "7930dbf9634acfc02686d87f615c0f4f33135948130b8922331c16d90a03250c" "1.3.0": url: "https://github.com/Tessil/robin-map/archive/v1.3.0.tar.gz" sha256: "a8424ad3b0affd4c57ed26f0f3d8a29604f0e1f2ef2089f497f614b1c94c7236" diff --git a/packages/conan/recipes/util-linux-libuuid/conanfile.py b/packages/conan/recipes/util-linux-libuuid/conanfile.py index 36dc7c8d..c46dd278 100644 --- a/packages/conan/recipes/util-linux-libuuid/conanfile.py +++ b/packages/conan/recipes/util-linux-libuuid/conanfile.py @@ -13,9 +13,8 @@ class SystemUtilLinuxLibuuidConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["uuid"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["uuid"] self.cpp_info.set_property("cmake_file_name", "libuuid") self.cpp_info.set_property("cmake_target_name", "libuuid::libuuid") diff --git a/packages/conan/recipes/vulkan-headers/conanfile.py b/packages/conan/recipes/vulkan-headers/conanfile.py index 456e0689..b4cdc5a3 100644 --- a/packages/conan/recipes/vulkan-headers/conanfile.py +++ b/packages/conan/recipes/vulkan-headers/conanfile.py @@ -15,10 +15,9 @@ class SystemVulkanHeadersConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["vulkan"] - self.cpp_info.system_libs = ["dl", "pthread", "m"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["vulkan"] + self.cpp_info.system_libs.extend(["dl", "pthread", "m"]) self.cpp_info.set_property("cmake_file_name", "VulkanHeaders") self.cpp_info.components["vulkanheaders"].set_property("cmake_target_name", "Vulkan::Headers") diff --git a/packages/conan/recipes/vulkan-loader/conanfile.py b/packages/conan/recipes/vulkan-loader/conanfile.py index 64cca5cd..4025a322 100644 --- a/packages/conan/recipes/vulkan-loader/conanfile.py +++ b/packages/conan/recipes/vulkan-loader/conanfile.py @@ -14,9 +14,8 @@ class SystemVulkanLoaderConan(ConanFile): def package_info(self): self.cpp_info.includedirs = ["/usr/include/vulkan"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["vulkan"] - self.cpp_info.system_libs = ["dl", "pthread", "m"] + self.cpp_info.system_libs = ["vulkan"] + self.cpp_info.system_libs.extend(["dl", "pthread", "m"]) self.cpp_info.set_property("cmake_find_mode", "both") self.cpp_info.set_property("cmake_module_file_name", "Vulkan") diff --git a/packages/conan/recipes/xkbcommon/conanfile.py b/packages/conan/recipes/xkbcommon/conanfile.py index 94aea8eb..3c18d11c 100644 --- a/packages/conan/recipes/xkbcommon/conanfile.py +++ b/packages/conan/recipes/xkbcommon/conanfile.py @@ -2,10 +2,11 @@ # SPDX-License-Identifier: MIT from conan import ConanFile +from conan.tools.files import load +import re class SystemXkbcommonConan(ConanFile): name = "xkbcommon" - version = "0.9.1" settings = "os", "arch", "compiler", "build_type" options = { @@ -15,6 +16,11 @@ class SystemXkbcommonConan(ConanFile): "with_x11": True, } + def set_version(self): + content = load(self, "/usr/lib64/pkgconfig/xkbcommon.pc") + match = re.search(r"^Version:\s*(.+)$", content, re.MULTILINE) + self.version = match.group(1).strip() + def requirements(self): # self.requires("xkeyboard-config/system") if self.options.with_x11: @@ -25,16 +31,15 @@ def requirements(self): self.requires("wayland/1.22.0") def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] + self.cpp_info.includedirs = [] self.cpp_info.components["libxkbcommon"].set_property("pkg_config_name", "xkbcommon") - self.cpp_info.components["libxkbcommon"].libs = ["xkbcommon"] + self.cpp_info.components["libxkbcommon"].system_libs = ["xkbcommon"] self.cpp_info.components["libxkbcommon"].resdirs = ["res"] - self.cpp_info.components["libxkbcommon"].includedirs = ["/usr/include"] + self.cpp_info.components["libxkbcommon"].includedirs = [] self.cpp_info.components["libxkbcommon-x11"].set_property("pkg_config_name", "xkbcommon-x11") - self.cpp_info.components["libxkbcommon-x11"].libs = ["xkbcommon-x11"] + self.cpp_info.components["libxkbcommon-x11"].system_libs = ["xkbcommon-x11"] self.cpp_info.components["libxkbcommon-x11"].requires = ["libxkbcommon", "xorg::xcb", "xorg::xcb-xkb"] - self.cpp_info.components["libxkbcommon-x11"].includedirs = ["/usr/include"] + self.cpp_info.components["libxkbcommon-x11"].includedirs = [] diff --git a/packages/conan/recipes/xorg/test_package/CMakeLists.txt b/packages/conan/recipes/xorg/test_package/CMakeLists.txt index 7c2a2733..6c69f76d 100644 --- a/packages/conan/recipes/xorg/test_package/CMakeLists.txt +++ b/packages/conan/recipes/xorg/test_package/CMakeLists.txt @@ -2,12 +2,12 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/4622ac85d1cec8cb7a2fcc8a1796d4b73bff285e/recipes/xorg/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/xorg/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(xorg REQUIRED CONFIG) add_executable(test_package test_package.c) -target_link_libraries(test_package PRIVATE xorg::xorg) \ No newline at end of file +target_link_libraries(test_package PRIVATE xorg::xorg) diff --git a/packages/conan/recipes/xz_utils/conanfile.py b/packages/conan/recipes/xz_utils/conanfile.py index 5e5c07af..5a4342e3 100644 --- a/packages/conan/recipes/xz_utils/conanfile.py +++ b/packages/conan/recipes/xz_utils/conanfile.py @@ -13,9 +13,8 @@ class SystemXZUtilsConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def package_info(self): - self.cpp_info.includedirs = ["/usr/include"] - self.cpp_info.libdirs = ["/usr/lib64"] - self.cpp_info.libs = ["lzma"] + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["lzma"] self.cpp_info.set_property("cmake_file_name", "LibLZMA") self.cpp_info.set_property("cmake_target_name", "LibLZMA::LibLZMA") diff --git a/packages/conan/recipes/yaml-cpp/conanfile.py b/packages/conan/recipes/yaml-cpp/conanfile.py index 1a856db1..ba84ca2e 100644 --- a/packages/conan/recipes/yaml-cpp/conanfile.py +++ b/packages/conan/recipes/yaml-cpp/conanfile.py @@ -2,19 +2,19 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/yaml-cpp/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/yaml-cpp/all/conanfile.py from conan import ConanFile from conan.errors import ConanInvalidConfiguration from conan.tools.build import check_min_cppstd from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout -from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get, rmdir, save +from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get, rmdir from conan.tools.microsoft import is_msvc, is_msvc_static_runtime from conan.tools.scm import Version import os import textwrap -required_conan_version = ">=1.53.0" +required_conan_version = ">=2.1" class YamlCppConan(ConanFile): @@ -69,6 +69,8 @@ def generate(self): tc.variables["YAML_CPP_BUILD_TOOLS"] = False tc.variables["YAML_CPP_INSTALL"] = True tc.variables["YAML_BUILD_SHARED_LIBS"] = self.options.shared + if Version(self.version) <= "0.8.0": # pylint: disable=conan-condition-evals-to-constant + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support if is_msvc(self): tc.variables["YAML_MSVC_SHARED_RT"] = not is_msvc_static_runtime(self) tc.preprocessor_definitions["_NOEXCEPT"] = "noexcept" @@ -91,28 +93,6 @@ def package(self): rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) - # TODO: to remove in conan v2 once cmake_find_package_* generators removed - self._create_cmake_module_alias_targets( - os.path.join(self.package_folder, self._module_file_rel_path), - {"yaml-cpp": "yaml-cpp::yaml-cpp"} - ) - - def _create_cmake_module_alias_targets(self, module_file, targets): - content = "" - for alias, aliased in targets.items(): - content += textwrap.dedent(f"""\ - if(TARGET {aliased} AND NOT TARGET {alias}) - add_library({alias} INTERFACE IMPORTED) - set_property(TARGET {alias} PROPERTY INTERFACE_LINK_LIBRARIES {aliased}) - endif() - """) - save(self, module_file, content) - - @property - def _module_file_rel_path(self): - # ASWF: cmake files in lib64 - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-targets.cmake") - def package_info(self): self.cpp_info.set_property("cmake_file_name", "yaml-cpp") self.cpp_info.set_property("cmake_target_name", "yaml-cpp::yaml-cpp") @@ -129,7 +109,3 @@ def package_info(self): else: if not self.options.shared: self.cpp_info.defines.append("YAML_CPP_STATIC_DEFINE") - - # TODO: to remove in conan v2 once cmake_find_package_* generators removed - self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path] - self.cpp_info.build_modules["cmake_find_package_multi"] = [self._module_file_rel_path] diff --git a/packages/conan/recipes/zlib/conanfile.py b/packages/conan/recipes/zlib/conanfile.py index 9c8d74dd..678e00a9 100644 --- a/packages/conan/recipes/zlib/conanfile.py +++ b/packages/conan/recipes/zlib/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/7abb9ee39e6009e3dbc45043307a1098246d4ad7/recipes/zlib/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/zlib/all/conanfile.py from conan import ConanFile from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout @@ -33,10 +33,6 @@ class ZlibConan(ConanFile): "fPIC": True, } - @property - def _is_mingw(self): - return self.settings.os == "Windows" and self.settings.compiler == "gcc" - def export_sources(self): export_conandata_patches(self) @@ -108,7 +104,10 @@ def package_info(self): self.cpp_info.set_property("cmake_file_name", "ZLIB") self.cpp_info.set_property("cmake_target_name", "ZLIB::ZLIB") self.cpp_info.set_property("pkg_config_name", "zlib") - if self.settings.os == "Windows" and not self._is_mingw: + + if self.settings.os == "Windows" and self.settings.get_safe("compiler.runtime"): + # The recipe patches the CMakeLists.txt to generate different filenames when CMake + # detects MINGW (clang, gcc with compiler.runtime undefined and compiler.libcxx defined) libname = "zdll" if self.options.shared else "zlib" else: libname = "z" diff --git a/packages/conan/recipes/zlib/test_package/CMakeLists.txt b/packages/conan/recipes/zlib/test_package/CMakeLists.txt index 1954217b..867e2095 100644 --- a/packages/conan/recipes/zlib/test_package/CMakeLists.txt +++ b/packages/conan/recipes/zlib/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/7abb9ee39e6009e3dbc45043307a1098246d4ad7/recipes/zlib/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/zlib/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(ZLIB REQUIRED) diff --git a/packages/conan/recipes/zlib/test_package/test_package.c b/packages/conan/recipes/zlib/test_package/test_package.c index b127f628..20196d23 100644 --- a/packages/conan/recipes/zlib/test_package/test_package.c +++ b/packages/conan/recipes/zlib/test_package/test_package.c @@ -3,36 +3,16 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/7abb9ee39e6009e3dbc45043307a1098246d4ad7/recipes/zlib/all/test_package/test_package.c +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/zlib/all/test_package/test_package.c */ #include #include -#include +#include #include int main(void) { - char buffer_in [32] = {"Conan Package Manager"}; - char buffer_out [32] = {0}; - - z_stream defstream; - defstream.zalloc = Z_NULL; - defstream.zfree = Z_NULL; - defstream.opaque = Z_NULL; - defstream.avail_in = (uInt) strlen(buffer_in); - defstream.next_in = (Bytef *) buffer_in; - defstream.avail_out = (uInt) sizeof(buffer_out); - defstream.next_out = (Bytef *) buffer_out; - - deflateInit(&defstream, Z_BEST_COMPRESSION); - deflate(&defstream, Z_FINISH); - deflateEnd(&defstream); - - printf("Compressed size is: %lu\n", strlen(buffer_in)); - printf("Compressed string is: %s\n", buffer_in); - printf("Compressed size is: %lu\n", strlen(buffer_out)); - printf("Compressed string is: %s\n", buffer_out); printf("ZLIB VERSION: %s\n", zlibVersion()); diff --git a/packages/conan/recipes/zstd/conandata.yml b/packages/conan/recipes/zstd/conandata.yml index 4afa5fa6..e66f4d1a 100644 --- a/packages/conan/recipes/zstd/conandata.yml +++ b/packages/conan/recipes/zstd/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/zstd/all/conandata.yml sources: + "1.5.7": + url: "https://github.com/facebook/zstd/releases/download/v1.5.7/zstd-1.5.7.tar.gz" + sha256: "eb33e51f49a15e023950cd7825ca74a4a2b43db8354825ac24fc1b7ee09e6fa3" "1.5.6": url: "https://github.com/facebook/zstd/releases/download/v1.5.6/zstd-1.5.6.tar.gz" sha256: "8c29e06cf42aacc1eafc4077ae2ec6c6fcb96a626157e0593d5e82a34fd403c1" diff --git a/packages/conan/recipes/zstd/conanfile.py b/packages/conan/recipes/zstd/conanfile.py index 697c3f4c..f82a81d5 100644 --- a/packages/conan/recipes/zstd/conanfile.py +++ b/packages/conan/recipes/zstd/conanfile.py @@ -2,15 +2,17 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/zstd/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/3375dfbcae9df4cee7b4eb6323b584fb60a2c8d0/recipes/zstd/all/conanfile.py from conan import ConanFile from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get, replace_in_file, rmdir, rm +from conan.tools.scm import Version + import glob import os -required_conan_version = ">=1.53.0" +required_conan_version = ">=2.1" class ZstdConan(ConanFile): name = "zstd" @@ -62,6 +64,8 @@ def generate(self): tc.variables["ZSTD_BUILD_STATIC"] = not self.options.shared or self.options.build_programs tc.variables["ZSTD_BUILD_SHARED"] = self.options.shared tc.variables["ZSTD_MULTITHREAD_SUPPORT"] = self.options.threading + if Version(self.version) < "1.5.6": + tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() def _patch_sources(self): @@ -103,10 +107,5 @@ def package_info(self): self.cpp_info.components["zstdlib"].system_libs.append("pthread") # TODO: Remove after dropping Conan 1.x from ConanCenterIndex - self.cpp_info.components["zstdlib"].names["cmake_find_package"] = zstd_cmake - self.cpp_info.components["zstdlib"].names["cmake_find_package_multi"] = zstd_cmake self.cpp_info.components["zstdlib"].set_property("cmake_target_name", f"zstd::{zstd_cmake}") self.cpp_info.components["zstdlib"].set_property("pkg_config_name", "libzstd") - if self.options.build_programs: - bindir = os.path.join(self.package_folder, "bin") - self.env_info.PATH.append(bindir) diff --git a/packages/conan/recipes/zstd/test_package/CMakeLists.txt b/packages/conan/recipes/zstd/test_package/CMakeLists.txt index c83d1087..00f7bb62 100644 --- a/packages/conan/recipes/zstd/test_package/CMakeLists.txt +++ b/packages/conan/recipes/zstd/test_package/CMakeLists.txt @@ -2,9 +2,9 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/6aeda9d870a1253535297cb50b01bebfc8c62910/recipes/zstd/all/test_package/CMakeLists.txt +# From: https://github.com/conan-io/conan-center-index/blob/d8323e1d365e32d88042e5070a483fc55a337856/recipes/zstd/all/test_package/CMakeLists.txt -cmake_minimum_required(VERSION 3.1) +cmake_minimum_required(VERSION 3.15) project(test_package LANGUAGES C) find_package(zstd REQUIRED CONFIG) diff --git a/packages/conan/settings/global.conf b/packages/conan/settings/global.conf index d6819585..c2728d39 100644 --- a/packages/conan/settings/global.conf +++ b/packages/conan/settings/global.conf @@ -6,8 +6,8 @@ #[general] #revisions_enabled = 1 -core:default_build_profile = vfx2025 -core:default_profile = vfx2025 +core:default_build_profile = vfx2026 +core:default_profile = vfx2026 core.gzip:compresslevel = 9 tools.system.package_manager:sudo = True core.net.http:timeout = 60 diff --git a/packages/conan/settings/profiles_aswf/ci_common4 b/packages/conan/settings/profiles_aswf/ci_common4 deleted file mode 120000 index 33f90588..00000000 --- a/packages/conan/settings/profiles_aswf/ci_common4 +++ /dev/null @@ -1 +0,0 @@ -../profiles_aswftesting/ci_common4 \ No newline at end of file diff --git a/packages/conan/settings/profiles_aswf/ci_common4 b/packages/conan/settings/profiles_aswf/ci_common4 new file mode 100644 index 00000000..13db25a9 --- /dev/null +++ b/packages/conan/settings/profiles_aswf/ci_common4 @@ -0,0 +1,19 @@ +[settings] +os=Linux +arch=x86_64 +compiler=gcc +compiler.version=11.2 +compiler.libcxx=libstdc++11 +compiler.cppstd=17 +build_type=Release +[options] +# Build everything except Clang as shared libs by default +*:shared=True +clang/*:shared=False +[tool_requires] +[replace_requires] +[replace_tool_requires] +cmake/*: cmake/3.31.7@aswf/ci_common4 +[platform_requires] +[buildenv] +GCC_INSTALL_DIR=/opt/rh/gcc-toolset-11/root/lib/gcc/x86_64-redhat-linux/11 diff --git a/packages/conan/settings/profiles_aswf/ci_common5 b/packages/conan/settings/profiles_aswf/ci_common5 deleted file mode 120000 index 63ca70a5..00000000 --- a/packages/conan/settings/profiles_aswf/ci_common5 +++ /dev/null @@ -1 +0,0 @@ -../profiles_aswftesting/ci_common5 \ No newline at end of file diff --git a/packages/conan/settings/profiles_aswf/ci_common5 b/packages/conan/settings/profiles_aswf/ci_common5 new file mode 100644 index 00000000..752bed55 --- /dev/null +++ b/packages/conan/settings/profiles_aswf/ci_common5 @@ -0,0 +1,19 @@ +[settings] +os=Linux +arch=x86_64 +compiler=gcc +compiler.version=11.2 +compiler.libcxx=libstdc++11 +compiler.cppstd=17 +build_type=Release +[options] +# Build everything except Clang as shared libs by default +*:shared=True +clang/*:shared=False +[tool_requires] +[replace_requires] +[replace_tool_requires] +cmake/*: cmake/3.31.7@aswf/ci_common5 +[platform_requires] +[buildenv] +GCC_INSTALL_DIR=/opt/rh/gcc-toolset-11/root/lib/gcc/x86_64-redhat-linux/11 diff --git a/packages/conan/settings/profiles_aswf/ci_common6 b/packages/conan/settings/profiles_aswf/ci_common6 new file mode 100644 index 00000000..cb8ea0ec --- /dev/null +++ b/packages/conan/settings/profiles_aswf/ci_common6 @@ -0,0 +1,19 @@ +[settings] +os=Linux +arch=x86_64 +compiler=gcc +compiler.version=14.2 +compiler.libcxx=libstdc++11 +compiler.cppstd=20 +build_type=Release +[options] +# Build everything except Clang as shared libs by default +*:shared=True +clang/*:shared=False +[tool_requires] +[replace_requires] +[replace_tool_requires] +cmake/*: cmake/4.0.2@aswf/ci_common6 +[platform_requires] +[buildenv] +GCC_INSTALL_DIR=/opt/rh/gcc-toolset-14/root/lib/gcc/x86_64-redhat-linux/14 diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 46316605..49053356 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -17,12 +17,12 @@ fontconfig/*: fontconfig/system@aswf/vfx2024 freetype/*: freetype/2.13.2@aswf/vfx2024 gdbm/*: gdbm/system@aswf/vfx2024 giflib/*: giflib/5.1.4@aswf/vfx2024 -glew/*: glew/2.1.0@aswf/vfx2024 -glib/*: glib/2.78.3@aswf/vfx2024 +glew/*: glew/2.2.0@aswf/vfx2024 +glib/*: glib/2.56.4@aswf/vfx2024 highway/*: highway/1.2.0@aswf/vfx2024 icu/*: icu/system@aswf/vfx2024 imath/*: imath/3.1.12@aswf/vfx2024 -lcms/*: lcms/2.16@aswf/vfx2024 +lcms/*: lcms/2.17@aswf/vfx2024 libaom-av1/*: libaom-av1/system@aswf/vfx2024 libalsa/*: libalsa/system@aswf/vfx2024 libbacktrace/*: libbacktrace/cci.20210118@aswf/vfx2024 @@ -43,14 +43,14 @@ libvpx/*: libvpx/system@aswf/vfx2024 libwebp/*: libwebp/1.5.0@aswf/vfx2024 libxcrypt/*: libxcrypt/4.4.36@aswf/vfx2024 libxshmfence/*: libxshmfence/system@aswf/vfx2024 +log4cplus/*: log4cplus/2.1.2@aswf/vfx2024 lz4/*: lz4/1.10.0@aswf/vfx2024 md4c/*: md4c/0.4.8@aswf/vfx2024 minizip-ng/*: minizip/4.0.8@aswf/vfx2024 mpdecimal/*: mpdecimal/system@aswf/vfx2024 mpg123/*: mpg123/system@aswf/vfx2024 -nasm/*: nasm/system@aswf/vfx2024 nspr/*: nspr/system@aswf/vfx2024 -nss/*: nss/3.93@aswf/vfx2024 +nss/*: nss/3.101.0@aswf/vfx2024 ocio/*: ocio/2.3.2@aswf/vfx2024 ogg/*: ogg/system@aswf/vfx2024 oiio/*: oiio/2.5.18.0@aswf/vfx2024 @@ -65,6 +65,7 @@ ptex/*: ptex/2.4.2@aswf/vfx2024 pugixml/*: pugixml/1.14@aswf/vfx2024 pulseaudio/*: pulseaudio/system@aswf/vfx2024 pystring/*: pystring/1.1.4@aswf/vfx2024 +snappy/*: snappy/1.1.10@aswf/vfx2024 sqlite3/*: sqlite3/system@aswf/vfx2024 tcl/*: tcl/system@aswf/vfx2024 tk/*: tk/system@aswf/vfx2024 @@ -76,7 +77,7 @@ vulkan-loader/*: vulkan-loader/system@aswf/vfx2024 xkbcommon/*: xkbcommon/0.9.1@aswf/vfx2024 xorg/*: xorg/system@aswf/vfx2024 xorg-proto/*: xorg-proto/system@aswf/vfx2024 -xz_utils/*: xz_utiles/system@aswf/vfx2024 +xz_utils/*: xz_utils/system@aswf/vfx2024 yaml-cpp/*: yaml-cpp/0.8.0@aswf/vfx2024 zlib/*: zlib/1.3.1@aswf/vfx2024 zstd/*: zstd/1.5.6@aswf/vfx2024 @@ -87,8 +88,9 @@ flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system mesno/*: meson/0.58.2@system +nasm/*: nasm/system@aswf/vfx2024 ninja/*: ninja/1.12.1@aswf/ci_common5 -nodesj/*: nodejs/18.20.4@system +nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 6003694b..81b4565c 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -18,11 +18,11 @@ freetype/*: freetype/2.13.2@aswf/vfx2025 gdbm/*: gdbm/system@aswf/vfx2025 giflib/*: giflib/5.1.4@aswf/vfx2025 glew/*: glew/2.2.0@aswf/vfx2025 -glib/*: glib/2.78.3@aswf/vfx2025 +glib/*: glib/2.56.4@aswf/vfx2025 highway/*: highway/1.2.0@aswf/vfx2025 icu/*: icu/system@aswf/vfx2025 imath/*: imath/3.1.12@aswf/vfx2025 -lcms/*: lcms/2.16@aswf/vfx2025 +lcms/*: lcms/2.17@aswf/vfx2025 libalsa/*: libalsa/system@aswf/vfx2025 libaom-av1/*: libaom/system@aswf/vfx2025 libbacktrace/*: libbacktrace/cci.20210118@aswf/vfx2025 @@ -43,20 +43,20 @@ libvpx/*: libvpx/system@aswf/vfx2025 libwebp/*: libwebp/1.5.0@aswf/vfx2025 libxcrypt/*: libxcrypt/4.4.36@aswf/vfx2025 libxshmfence/*: libxshmfence/system@aswf/vfx2025 +log4cplus/*: log4cplus/2.1.2@aswf/vfx2025 lz4/*: lz4/1.10.0@aswf/vfx2025 md4c/*: md4c/0.4.8@aswf/vfx2025 minizip-ng/*: minizip-ng/4.0.8@aswf/vfx2025 mpdecimal/*: mpdecimal/system@aswf/vfx2025 mpg123/*: mpg123/system@aswf/vfx2025 -nasm/*: nasm/system@aswf/vfx2025 nspr/*: nspr/system@aswf/vfx2025 -nss/*: nss/3.93@aswf/vfx2025 +nss/*: nss/3.101.0@aswf/vfx2025 ocio/*: ocio/2.4.2@aswf/vfx2025 -oiio/*: oiio/3.0.6.1@aswf/vfx2025 +oiio/*: oiio/3.0.7.0@aswf/vfx2025 ogg/*: ogg/system@aswf/vfx2025 onetbb/*: onetbb/2021.13.0@aswf/vfx2025 openal-soft/*: openal-soft/system@aswf/vfx2025 -openexr/*: openexr/3.3.3@aswf/vfx2025 +openexr/*: openexr/3.3.4@aswf/vfx2025 opengl/*: opengl/system@aswf/vfx2025 openjpeg/*: openjpeg/2.4.0@aswf/vfx2025 openssl/*: openssl/system@aswf/vfx2025 @@ -66,6 +66,7 @@ ptex/*: ptex/2.4.3@aswf/vfx2025 pugixml/*: pugixml/1.14@aswf/vfx2025 pulseaudio/*: pulseaudio/system@aswr/vfx2025 pystring/*: pystring/1.1.4@aswf/vfx2025 +snappy/*: snappy/1.1.10@aswf/vfx2025 sqlite3/*: sqlite3/system@aswf/vfx2025 tcl/*: tcl/system@aswf/vfx2025 tk/*: tk/system@aswf/vfx2025 @@ -88,6 +89,7 @@ flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system meson/*: meson/0.58.2@system +nasm/*: nasm/system@aswf/vfx2025 ninja/*: ninja/1.12.1@aswf/ci_common5 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 new file mode 100644 index 00000000..d77bb981 --- /dev/null +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -0,0 +1,109 @@ +include(ci_common6) + +[settings] +[options] +# Build everything as shared libs by default +*:shared=True +[tool_requires] +[replace_requires] +boost/*: boost/1.88.0@aswf/vfx2026 +brotli/*: brotli/system@aswf/vfx2026 +bzip2/*: bzip2/1.0.8@aswf/vfx2026 +dbus/*: dbus/system@aswf/vfx2026 +double-conversion/*: double-conversion/system@aswf/vfx2026 +expat/*: expat/2.7.1@aswf/vfx2026 +fmt/*: fmt/11.2.0@aswf/vfx2026 +fontconfig/*: fontconfig/system@aswf/vfx2026 +freetype/*: freetype/2.13.2@aswf/vfx2026 +gdbm/*: gdbm/system@aswf/vfx2026 +giflib/*: giflib/5.2.1@aswf/vfx2026 +glew/*: glew/2.2.0@aswf/vfx2026 +glib/*: glib/2.68.4@aswf/vfx2026 +highway/*: highway/1.2.0@aswf/vfx2026 +icu/*: icu/system@aswf/vfx2026 +imath/*: imath/3.1.12@aswf/vfx2026 +lcms/*: lcms/2.17@aswf/vfx2026 +libalsa/*: libalsa/system@aswf/vfx2026 +libaom-av1/*: libaom/system@aswf/vfx2026 +libbacktrace/*: libbacktrace/cci.20210118@aswf/vfx2026 +libdeflate/*: libdeflate/1.24@aswf/vfx2026 +libdrm/*: libdrm/system@aswf/vfx2026 +libffi/*: libffi/system@aswf/vfx2026 +libiconv/*: libiconv/1.18@aswf/vfx2026 +libjpeg-turbo/*: libjpeg-turbo/3.1.0@aswf/vfx2026 +libjxl/*: libjxl/0.11.1@aswf/vfx2026 +libmp3lame/*: libmp3lame/system@aswf/vfx2026 +libpng/*: libpng/1.6.37@aswf/vfx2026 +libsndfile/*: libsndfile/system@aswf/vfx2026 +libsquish/*: libsquish/system@aswf/vfx2026 +libsvt-av1/*: libsvt-av1/system@aswf/vfx2026 +libtiff/*: libtiff/4.4.0@aswf/vfx2026 +libuhdr/*: libuhdr/1.4.0@aswf/vfx2026 +libvpx/*: libvpx/system@aswf/vfx2026 +libwebp/*: libwebp/1.5.0@aswf/vfx2026 +libxcrypt/*: libxcrypt/4.4.38@aswf/vfx2026 +libxshmfence/*: libxshmfence/system@aswf/vfx2026 +log4cplus/*: log4cplus/2.1.2@aswf/vfx2026 +lz4/*: lz4/1.10.0@aswf/vfx2026 +md4c/*: md4c/0.5.2@aswf/vfx2026 +minizip-ng/*: minizip-ng/4.0.10@aswf/vfx2026 +mpdecimal/*: mpdecimal/system@aswf/vfx2026 +mpg123/*: mpg123/system@aswf/vfx2026 +nspr/*: nspr/system@aswf/vfx2026 +nss/*: nss/3.101.0@aswf/vfx2026 +ocio/*: ocio/2.4.2@aswf/vfx2026 +oiio/*: oiio/3.0.7.0@aswf/vfx2026 +ogg/*: ogg/system@aswf/vfx2026 +onetbb/*: onetbb/2022.1.0@aswf/vfx2026 +openal-soft/*: openal-soft/system@aswf/vfx2026 +openexr/*: openexr/3.3.4@aswf/vfx2026 +opengl/*: opengl/system@aswf/vfx2026 +openjpeg/*: openjpeg/2.4.0@aswf/vfx2026 +openssl/*: openssl/system@aswf/vfx2026 +opus/*: opus/system@aswf/vfx2026 +pcre2/*: pcre2/system@aswf/vfx2026 +ptex/*: ptex/2.4.3@aswf/vfx2026 +pugixml/*: pugixml/1.15@aswf/vfx2026 +pulseaudio/*: pulseaudio/system@aswr/vfx2026 +pystring/*: pystring/1.1.4@aswf/vfx2026 +snappy/*: snappy/1.2.2@aswf/vfx2026 +sqlite3/*: sqlite3/system@aswf/vfx2026 +tcl/*: tcl/system@aswf/vfx2026 +tk/*: tk/system@aswf/vfx2026 +tsl-robin-map/*: tsl-robin-map/1.4.0@aswf/vfx2026 +util-linux-libuuid/*: util-linux-libuuid/system@aswf/vfx2026 +vorbis/*: vorbis/system@aswf/vfx2026 +vulkan-headers/*: vulkan-headers/system@aswf/vfx2026 +vulkan-loader/*: vulkan-loader/system@aswf/vfx2026 +xkbcommon/*: xkbcommon/1.0.3@aswf/vfx2026 +xorg/*: xorg/system@aswf/vfx2026 +xorg-proto/*: xorg-proto/system@aswf/vfx2026 +xz_utils/*: xz_utils/system@aswf/vfx2026 +yaml-cpp/*: yaml-cpp/0.8.0@aswf/vfx2026 +zlib/*: zlib/1.3.1@aswf/vfx2026 +zstd/*: zstd/1.576@aswf/vfx2026 +[replace_tool_requires] +b2/*: b2/5.3.2@aswf/vfx2026 +bison/*: bison/3.7.4@system +flex/*: flex/2.6.4@system +gperf/*: gperf/3.1@system +libtool/*: libtool/2.4.6@system +meson/*: meson/0.63.3@system +nasm/*: nasm/system@aswf/vfx2026 +ninja/*: ninja/1.12.1@aswf/ci_common5 +nodejs/*: nodejs/18.20.6@system +pkgconf/*: pkgconf/1.7.3@system +wayland/*: wayland/1.31.0@system +wayland-protocols/*: wayland-protocols/1.25@system +[platform_requires] +[platform_tool_requires] +bison/3.7.4 +flex/2.6.4 +gperf/3.1 +libtool/2.4.6 +meson/0.63.3 +nodejs/18.20.6 +pkgconf/1.7.3 +wayland/1.21.0 +wayland-protocols/1.31 +[buildenv] diff --git a/packages/conan/settings/profiles_aswftesting/ci_common4 b/packages/conan/settings/profiles_aswftesting/ci_common4 index 11bc5a5d..96264bbb 100644 --- a/packages/conan/settings/profiles_aswftesting/ci_common4 +++ b/packages/conan/settings/profiles_aswftesting/ci_common4 @@ -12,8 +12,8 @@ build_type=Release clang/*:shared=False [tool_requires] [replace_requires] -[replace_tools_requires] -cmake/*: cmake/3.27.9@aswftesting/ci_common4 +[replace_tool_requires] +cmake/*: cmake/3.31.7@aswftesting/ci_common4 [platform_requires] [buildenv] GCC_INSTALL_DIR=/opt/rh/gcc-toolset-11/root/lib/gcc/x86_64-redhat-linux/11 diff --git a/packages/conan/settings/profiles_aswftesting/ci_common6 b/packages/conan/settings/profiles_aswftesting/ci_common6 new file mode 100644 index 00000000..2afda051 --- /dev/null +++ b/packages/conan/settings/profiles_aswftesting/ci_common6 @@ -0,0 +1,19 @@ +[settings] +os=Linux +arch=x86_64 +compiler=gcc +compiler.version=14.2 +compiler.libcxx=libstdc++11 +compiler.cppstd=20 +build_type=Release +[options] +# Build everything except Clang as shared libs by default +*:shared=True +clang/*:shared=False +[tool_requires] +[replace_requires] +[replace_tool_requires] +cmake/*: cmake/4.0.2@aswftesting/ci_common6 +[platform_requires] +[buildenv] +GCC_INSTALL_DIR=/opt/rh/gcc-toolset-14/root/lib/gcc/x86_64-redhat-linux/14 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 259dfcca..951f9282 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -17,12 +17,12 @@ fontconfig/*: fontconfig/system@aswftesting/vfx2024 freetype/*: freetype/2.13.2@aswftesting/vfx2024 gdbm/*: gdbm/system@aswftesting/vfx2024 giflib/*: giflib/5.1.4@aswftesting/vfx2024 -glew/*: glrew/2.1.0@aswftesting/vfx2024 -glib/*: glib/2.78.3@aswftesting/vfx2024 +glew/*: glew/2.2.0@aswftesting/vfx2024 +glib/*: glib/2.56.4@aswftesting/vfx2024 highway/*: highway/1.2.0@aswftesting/vfx2024 icu/*: icu/system@aswftesting/vfx2024 imath/*: imath/3.1.12@aswftesting/vfx2024 -lcms/*: lcms/2.16@aswftesting/vfx2024 +lcms/*: lcms/2.17@aswftesting/vfx2024 libalsa/*: libalsa/system@aswftesting/vfx2024 libaom-av1/*: libaom-av1/system@aswftesting/vfx2024 libbacktrace/*: libbacktrace/cci.20210118@aswftesting/vfx2024 @@ -43,14 +43,14 @@ libuhdr/*: libuhdr/1.4.0@aswftesting/vfx2024 libvpx/*: libvpx/system@aswftesting/vfx2024 libwebp/*: libwebp/1.5.0@aswftesting/vfx2024 libxshmfence/*: libxshmfence/system@aswftesting/vfx2024 +log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2024 lz4/*: lz4/1.10.0@aswftesting/vfx2024 md4c/*: md4c/0.4.8@aswftesting/vfx2024 minizip-ng/*: minizip/4.0.8@aswftesting/vfx2024 mpdecimal/*: mpdecimal/system@aswftesting/vfx2024 mpg123/*: mpg123/system@aswftesting/vfx2024 -nasm/*: nasm/system@aswftesting/vfx2024 nspr/*: nspr/system@aswftesting/vfx2024 -nss/*: nss/3.93@aswftesting/vfx2024 +nss/*: nss/3.101.0@aswftesting/vfx2024 ocio/*: ocio/2.3.2@aswftesting/vfx2024 oiio/*: oiio/2.5.18.0@aswftesting/vfx2024 ogg/*: ogg/system@aswftesting/vfx2024 @@ -65,6 +65,7 @@ ptex/*: ptex/2.4.2@aswftesting/vfx2024 pugixml/*: pugixml/1.14@aswftesting/vfx2024 pulseaudio/*: pulseaudio/system@aswftesting/vfx2024 pystring/*: pystring/1.1.4@aswftesting/vfx2024 +snappy/*: snappy/1.1.10@aswftesting/vfx2024 sqlite3/*: sqlite3/system@aswftesting/vfx2024 tcl/*: tcl/system@aswftesting/vfx2024 tk/*: tk/system@aswftesting/vfx2024 @@ -76,7 +77,7 @@ vulkan-loader/*: vulkan-loader/system@aswftesting/vfx2024 xkbcommon/*: xkbcommon/0.9.1@aswftesting/vfx2024 xorg/*: xorg/system@aswftesting/vfx2024 xorg-proto/*: xorg-proto/system@aswftesting/vfx2024 -xz_utils/*: xz_utiles/system@aswftesting/vfx2024 +xz_utils/*: xz_utils/system@aswftesting/vfx2024 yaml-cpp/*: yaml-cpp/0.8.0@aswftesting/vfx2024 zlib/*: zlib/1.3.1@aswftesting/vfx2024 zstd/*: zstd/1.5.6@aswftesting/vfx2024 @@ -87,8 +88,9 @@ flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system mesno/*: meson/0.58.2@system +nasm/*: nasm/system@aswftesting/vfx2024 ninja/*: ninja/1.12.1@aswftesting/ci_common5 -nodesj/*: nodejs/18.20.4@system +nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 501d6e39..018fdef4 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -18,11 +18,11 @@ freetype/*: freetype/2.13.2@aswftesting/vfx2025 gdbm/*: gdbm/system@aswftesting/vfx2025 giflib/*: giflib/5.1.4@aswftesting/vfx2025 glew/*: glew/2.2.0@aswftesting/vfx2025 -glib/*: glib/2.78.3@aswftesting/vfx2025 +glib/*: glib/2.56.4@aswftesting/vfx2025 highway/*: highway/1.2.0@aswftesting/vfx2025 icu/*: icu/system@aswftesting/vfx2025 imath/*: imath/3.1.12@aswftesting/vfx2025 -lcms/*: lcms/2.16@aswftesting/vfx2025 +lcms/*: lcms/2.17@aswftesting/vfx2025 libalsa/*: libalsa/system@aswftesting/vfx2025 libaom-av1/*: libaom-av1/system@aswftesting/vfx2025 libbacktrace/*: libbacktrace/cci.20210118@aswftesting/vfx2025 @@ -43,20 +43,20 @@ libvpx/*: libvpx/system@aswftesting/vfx2025 libwebp/*: libwebp/1.5.0@aswftesting/vfx2025 libxcrypt/*: libxcrypt/4.4.36@aswftesting/vfx2025 libxshmfence/*: libxshmfence/system@aswftesting/vfx2025 +log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2025 lz4/*: lz4/1.10.0@aswftesting/vfx2025 md4c/*: md4c/0.4.8@aswftesting/vfx2025 minizip-ng/*: minizip-ng/4.0.8@aswftesting/vfx2025 mpdecimal/*: mpdecimal/system@aswftesting/vfx2025 mpg123/*: mpg123/system@aswftesting/vfx2025 -nasm/*: nasm/system@aswftesting/vfx2025 nspr/*: nspr/system@aswftesting/vfx2025 -nss/*: nss/3.93@aswftesting/vfx2025 +nss/*: nss/3.101.0@aswftesting/vfx2025 ocio/*: ocio/2.4.2@aswftesting/vfx2025 -oiio/*: oiio/3.0.6.1@aswftesting/vfx2025 +oiio/*: oiio/3.0.7.0@aswftesting/vfx2025 ogg/*: ogg/system@aswftesting/vfx2025 onetbb/*: onetbb/2021.13.0@aswftesting/vfx2025 openal-soft/*: openal-soft/system@aswftesting/vfx2025 -openexr/*: openexr/3.3.3@aswftesting/vfx2025 +openexr/*: openexr/3.3.4@aswftesting/vfx2025 opengl/*: opengl/system@aswftesting/vfx2025 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2025 openssl/*: openssl/system@aswftesting/vfx2025 @@ -66,6 +66,7 @@ ptex/*: ptex/2.4.3@aswftesting/vfx2025 pugixml/*: pugixml/1.14@aswftesting/vfx2025 pulseaudio/*: pulseaudio/system@aswftesting/vfx2025 pystring/*: pystring/1.1.4@aswftesting/vfx2025 +snappy/*: snappy/1.1.10@aswftesting/vfx2025 sqlite3/*: sqlite3/system@aswftesting/vfx2025 tcl/*: tcl/system@aswftesting/vfx2025 tk/*: tk/system@aswftesting/vfx2025 @@ -88,6 +89,7 @@ flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system meson/*: meson/0.58.2@system +nasm/*: nasm/system@aswftesting/vfx2025 ninja/*: ninja/1.12.1@aswftesting/ci_common5 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 new file mode 100644 index 00000000..031118e4 --- /dev/null +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -0,0 +1,108 @@ +include(ci_common6) + +[settings] +[options] +# Build everything as shared libs by default +*:shared=True +[tool_requires] +[replace_requires] +boost/*: boost/1.88.0@aswftesting/vfx2026 +brotli/*: brotli/system@aswftesting/vfx2026 +bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 +dbus/*: dbus/system@aswftesting/vfx2026 +double-conversion/*: double-conversion/system@aswftesting/vfx2026 +expat/*: expat/2.7.1@aswftesting/vfx2026 +fmt/*: fmt/11.2.0@aswftesting/vfx2026 +fontconfig/*: fontconfig/system@aswftesting/vfx2026 +freetype/*: freetype/2.13.2@aswftesting/vfx2026 +gdbm/*: gdbm/system@aswftesting/vfx2026 +giflib/*: giflib/5.2.1@aswftesting/vfx2026 +glew/*: glew/2.2.0@aswftesting/vfx2026 +glib/*: glib/2.68.4@aswftesting/vfx2026 +highway/*: highway/1.2.0@aswftesting/vfx2026 +icu/*: icu/system@aswftesting/vfx2026 +imath/*: imath/3.1.12@aswftesting/vfx2026 +lcms/*: lcms/2.17@aswftesting/vfx2026 +libalsa/*: libalsa/system@aswftesting/vfx2026 +libaom-av1/*: libaom/system@aswftesting/vfx2026 +libbacktrace/*: libbacktrace/cci.20210118@aswftesting/vfx2026 +libdeflate/*: libdeflate/1.24@aswftesting/vfx2026 +libdrm/*: libdrm/system@aswftesting/vfx2026 +libffi/*: libffi/system@aswftesting/vfx2026 +libiconv/*: libiconv/1.18@aswftesting/vfx2026 +libjpeg-turbo/*: libjpeg-turbo/3.1.0@aswftesting/vfx2026 +libjxl/*: libjxl/0.11.1@aswftesting/vfx2026 +libmp3lame/*: libmp3lame/system@aswftesting/vfx2026 +libpng/*: libpng/1.6.37@aswftesting/vfx2026 +libsndfile/*: libsndfile/system@aswftesting/vfx2026 +libsquish/*: libsquish/system@aswftesting/vfx2026 +libsvt-av1/*: libsvt-av1/system@aswftesting/vfx2026 +libtiff/*: libtiff/4.4.0@aswftesting/vfx2026 +libuhdr/*: libuhdr/1.4.0@aswftesting/vfx2026 +libvpx/*: libvpx/system@aswftesting/vfx2026 +libwebp/*: libwebp/1.5.0@aswftesting/vfx2026 +libxcrypt/*: libxcrypt/4.4.38@aswftesting/vfx2026 +libxshmfence/*: libxshmfence/system@aswftesting/vfx2026 +log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2026 +lz4/*: lz4/1.10.0@aswftesting/vfx2026 +md4c/*: md4c/0.5.2@aswftesting/vfx2026 +minizip-ng/*: minizip-ng/4.0.10aswftesting/vfx2026 +mpdecimal/*: mpdecimal/system@aswftesting/vfx2026 +mpg123/*: mpg123/system@aswftesting/vfx2026 +nspr/*: nspr/system@aswftesting/vfx2026 +nss/*: nss/3.101.0@aswftesting/vfx2026 +ocio/*: ocio/2.4.2@aswftesting/vfx2026 +oiio/*: oiio/3.0.7.0@aswftesting/vfx2026 +ogg/*: ogg/system@aswftesting/vfx2026 +onetbb/*: onetbb/2022.1.0@aswftesting/vfx2026 +openal-soft/*: openal-soft/system@aswftesting/vfx2026 +openexr/*: openexr/3.3.4@aswftesting/vfx2026 +opengl/*: opengl/system@aswftesting/vfx2026 +openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2026 +openssl/*: openssl/system@aswftesting/vfx2026 +opus/*: opus/system@aswftesting/vfx2026 +pcre2/*: pcre2/system@aswftesting/vfx2026 +ptex/*: ptex/2.4.3@aswftesting/vfx2026 +pugixml/*: pugixml/1.15@aswftesting/vfx2026 +pulseaudio/*: pulseaudio/system@aswr/vfx2026 +pystring/*: pystring/1.1.4@aswftesting/vfx2026 +snappy/*: snappy/1.2.2@aswftesting/vfx2026 +sqlite3/*: sqlite3/system@aswftesting/vfx2026 +tcl/*: tcl/system@aswftesting/vfx2026 +tk/*: tk/system@aswftesting/vfx2026 +tsl-robin-map/*: tsl-robin-map/1.4.0@aswftesting/vfx2026 +util-linux-libuuid/*: util-linux-libuuid/system@aswftesting/vfx2026 +vorbis/*: vorbis/system@aswftesting/vfx2026 +vulkan-headers/*: vulkan-headers/system@aswftesting/vfx2026 +vulkan-loader/*: vulkan-loader/system@aswftesting/vfx2026 +xkbcommon/*: xkbcommon/1.0.3@aswftesting/vfx2026 +xorg/*: xorg/system@aswftesting/vfx2026 +xorg-proto/*: xorg-proto/system@aswftesting/vfx2026 +xz_utils/*: xz_utils/system@aswftesting/vfx2026 +yaml-cpp/*: yaml-cpp/0.8.0@aswftesting/vfx2026 +zlib/*: zlib/1.3.1@aswftesting/vfx2026 +zstd/*: zstd/1.5.7@aswftesting/vfx2026 +[replace_tool_requires] +b2/*: b2/5.3.2@aswftesting/vfx2026 +bison/*: bison/3.7.4@system +flex/*: flex/2.6.4@system +gperf/*: gperf/3.1@system +libtool/*: libtool/2.4.6@system +meson/*: meson/0.63.3@system +nasm/*: nasm/system@aswftesting/vfx2026 +ninja/*: ninja/1.12.1@aswf/ci_common5 +nodejs/*: nodejs/18.20.6@system +pkgconf/*: pkgconf/1.7.3@system +wayland/*: wayland/1.21.0@system +wayland-protocols/*: wayland-protocols/1.31@system +[platform_requires] +[platform_tool_requires] +bison/3.7.4 +flex/2.6.4 +gperf/3.1 +libtool/2.4.6 +meson/0.63.3 +nodejs/18.20.6 +pkgconf/1.7.3 +wayland/1.21.0 +wayland-protocols/1.31 diff --git a/packages/vfx1/Dockerfile b/packages/vfx1/Dockerfile index 6084a4fe..9373b4ea 100644 --- a/packages/vfx1/Dockerfile +++ b/packages/vfx1/Dockerfile @@ -19,7 +19,7 @@ ARG ASWF_ONETBB_VERSION ARG ASWF_PYBIND11_VERSION ARG ASWF_ALEMBIC_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_HDF5_VERSION ARG ASWF_OCIO_CONFIGS_VERSION ARG ASWF_OCIO_VERSION @@ -169,7 +169,7 @@ FROM ci-openexr-builder AS ci-openvdb-builder ARG ASWF_OPENVDB_VERSION ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPPUNIT_VERSION ARG ASWF_EXPAT_VERSION ARG ASWF_GLEW_VERSION @@ -178,7 +178,7 @@ ARG ASWF_QT_VERSION ENV ASWF_OPENVDB_VERSION=${ASWF_OPENVDB_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_BLOSC_VERSION=${ASWF_BLOSC_VERSION} +ENV ASWF_C_BLOSC_VERSION=${ASWF_C_BLOSC_VERSION} ENV ASWF_CPPUNIT_VERSION=${ASWF_CPPUNIT_VERSION} ENV ASWF_EXPAT_VERSION=${ASWF_EXPAT_VERSION} ENV ASWF_GLEW_VERSION=${ASWF_GLEW_VERSION} @@ -197,7 +197,7 @@ COPY < . [requires] -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/packages/vfx2/Dockerfile b/packages/vfx2/Dockerfile index 427f4fec..404de043 100644 --- a/packages/vfx2/Dockerfile +++ b/packages/vfx2/Dockerfile @@ -34,7 +34,7 @@ ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION ARG ASWF_ALEMBIC_VERSION -ARG ASWF_BLOSC_VERSION +ARG ASWF_C_BLOSC_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OPENEXR_VERSION @@ -134,8 +134,8 @@ ARG ASWF_QT_VERSION ENV ASWF_QT_VERSION=${ASWF_QT_VERSION} ARG ASWF_PYSIDE_VERSION ENV ASWF_PYSIDE_VERSION=${ASWF_PYSIDE_VERSION} -ARG ASWF_BLOSC_VERSION -ENV ASWF_BLOSC_VERSION=${ASWF_BLOSC_VERSION} +ARG ASWF_C_BLOSC_VERSION +ENV ASWF_C_BLOSC_VERSION=${ASWF_C_BLOSC_VERSION} ARG ASWF_HIGHWAY_VERSION ENV ASWF_HIGHWAY_VERSION=${ASWF_HIGHWAY_VERSION} ARG ASWF_LIBDEFLATE_VERSION @@ -188,7 +188,7 @@ partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -blosc/${ASWF_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/python/aswfdocker/builder.py b/python/aswfdocker/builder.py index 6e7c2b1f..af2b75e9 100644 --- a/python/aswfdocker/builder.py +++ b/python/aswfdocker/builder.py @@ -33,9 +33,8 @@ def __init__( def make_bake_dict( self, - keep_source: bool, - keep_build: bool, build_missing: bool, + no_remote: bool, ) -> typing.Dict[str, dict]: # pylint: disable=too-many-locals root: typing.Dict[str, dict] = {} @@ -110,13 +109,10 @@ def make_bake_dict( + "_VERSION" ), "ASWF_CONAN_HOME": constants.ASWF_CONAN_HOME, - "ASWF_CONAN_KEEP_SOURCE": "--keep-source" - if keep_source - else "", - "ASWF_CONAN_KEEP_BUILD": "--keep-build" if keep_build else "", "ASWF_CONAN_BUILD_MISSING": "--build=missing" if build_missing else "", + "ASWF_CONAN_NO_REMOTE": "--no-remote" if no_remote else "", "ASWF_CONAN_PUSH": "TRUE" if self.push else "", } ) @@ -148,11 +144,10 @@ def make_bake_dict( def make_bake_jsonfile( self, - keep_source: bool, - keep_build: bool, build_missing: bool, + no_remote: bool, ) -> typing.Optional[str]: - d = self.make_bake_dict(keep_source, keep_build, build_missing) + d = self.make_bake_dict(build_missing, no_remote) if not d["group"]["default"]["targets"]: return None groups = "-".join(self.group_info.names) @@ -304,9 +299,8 @@ def build( self, dry_run: bool = False, progress: str = "", - keep_source=False, - keep_build=False, build_missing=False, + no_remote=False, ) -> None: images_and_versions = [] for image, version in self.group_info.iter_images_versions(get_image=True): @@ -322,7 +316,7 @@ def build( if not images_and_versions: return - path = self.make_bake_jsonfile(keep_source, keep_build, build_missing) + path = self.make_bake_jsonfile(build_missing, no_remote) if path: self._run( f"docker buildx bake -f {path} --progress {progress}", dry_run=dry_run diff --git a/python/aswfdocker/cli/aswfdocker.py b/python/aswfdocker/cli/aswfdocker.py index 8ea729b8..6a7ac311 100644 --- a/python/aswfdocker/cli/aswfdocker.py +++ b/python/aswfdocker/cli/aswfdocker.py @@ -7,8 +7,12 @@ import sys import logging import warnings +import re +import subprocess import click +from github import Github, Auth +from github.GithubException import GithubException from aswfdocker import ( builder, @@ -156,13 +160,16 @@ def get_group_info(build_info, ci_image_type, groups, versions, full_name, targe ) @click.option("--use-conan", "-c", is_flag=True, help="Use Conan to build packages") @click.option( - "--keep-source", "-ks", is_flag=True, help="Instruct Conan to keep sources" + "--keep-source", + "-ks", + is_flag=True, + help="[DEPRECATED] This option is no longer relevant with Conan 2.", ) @click.option( "--keep-build", "-kb", is_flag=True, - help="Instruct Conan to keep build - will fail is no previous build available!", + help="[DEPRECATED] This option is no longer relevant with Conan 2.", ) @click.option( "--conan-login", @@ -176,6 +183,12 @@ def get_group_info(build_info, ci_image_type, groups, versions, full_name, targe is_flag=True, help="Instruct Conan to build missing binary packages from source.", ) +@click.option( + "--no-remote", + "-nr", + is_flag=True, + help="Do not use Conan remote, resolve exclusively in the cache", +) @pass_build_info def build( build_info, @@ -188,10 +201,11 @@ def build( dry_run, progress, use_conan, - keep_source, - keep_build, + keep_source, # pylint: disable=unused-argument + keep_build, # pylint: disable=unused-argument conan_login, # pylint: disable=unused-argument build_missing, + no_remote, ): """Builds a ci-package or ci-image Docker image.""" if push == "YES": @@ -210,9 +224,8 @@ def build( b.build( dry_run=dry_run, progress=progress, - keep_source=keep_source, - keep_build=keep_build, build_missing=build_missing, + no_remote=no_remote, ) @@ -503,3 +516,150 @@ def pushoverview( fg="red", ) click.get_current_context().exit(1) + + +@cli.command() +@click.option( + "--recipe", + "-p", + multiple=True, + help="Specific recipe(s) to check. If not provided, checks all recipes.", +) +@click.option( + "--checkwrappers", + is_flag=True, + default=False, + help="Check system wrapper packages (classes starting with 'System').", +) +@click.option( + "--branch", + default="master", + help="GitHub branch to check against (default: master)", +) +@pass_build_info +def conandiff(build_info, recipe, checkwrappers, branch): + """Check for outdated conanfile.py files in packages/conan/recipes directory.""" + from aswfdocker import settings + + # Initialize GitHub client + s = settings.Settings() + if s.github_access_token: + auth = Auth.Token(s.github_access_token) + g = Github(auth=auth) + else: + g = Github() + + github_org = "conan-io" + github_repo = "conan-center-index" + + repo = g.get_repo(f"{github_org}/{github_repo}") + + recipes_dir = os.path.join(build_info.repo_root, "packages", "conan", "recipes") + if not os.path.exists(recipes_dir): + click.secho(f"Error: {recipes_dir} directory not found", fg="red") + return + + # Get list of recipes to check + if recipe: + recipe_dirs = [] + for r in recipe: + recipe_path = os.path.join(recipes_dir, r) + if os.path.exists(recipe_path): + recipe_dirs.append(recipe_path) + else: + click.secho( + f"Warning: Recipe '{r}' not found in {recipes_dir}", fg="yellow" + ) + else: + recipe_dirs = [ + os.path.join(recipes_dir, d) + for d in os.listdir(recipes_dir) + if os.path.isdir(os.path.join(recipes_dir, d)) + ] + + # Sort recipe directories for consistent output + recipe_dirs.sort() + + found_outdated = False + click.secho("Checking conanfile.py files...", fg="blue") + + for recipe_dir in recipe_dirs: + conanfile_path = os.path.join(recipe_dir, "conanfile.py") + if not os.path.exists(conanfile_path): + continue + + with open(conanfile_path, "r") as f: + content = f.read() + + # Skip system wrapper packages unless --checkwrappers is specified + if not checkwrappers and "class System" in content: + continue + + # Extract package name from conanfile.py + package_name = os.path.basename(recipe_dir) + + # Find SHA-1 hashes in URLs + sha_pattern = r"https://github.com/conan-io/conan-center-index/blob/([a-fA-F0-9]{40})/recipes/([^/]+)/all/conanfile\.py" + matches = re.findall(sha_pattern, content) + if not matches: + continue + + old_sha, upstream_package = matches[0] + try: + # Get the commit SHA from the permalink + permalink_commits = list( + repo.get_commits( + path=f"recipes/{upstream_package}/all/conanfile.py", + sha=old_sha, + ) + ) + if not permalink_commits: + continue + permalink_commit = permalink_commits[0] + permalink_sha = permalink_commit.sha + + # Get all commits for this file after the permalink SHA + all_commits = list( + repo.get_commits( + path=f"recipes/{upstream_package}/all/conanfile.py", + sha=branch, + ) + ) + if not all_commits: + continue + + # Filter commits to only those after the permalink SHA + newer_commits = [] + for commit in all_commits: + if commit.sha == permalink_sha: + break + newer_commits.append(commit) + + if newer_commits: + found_outdated = True + click.secho(f"\nFound outdated conanfile.py:", fg="yellow") + click.echo(f"{conanfile_path}:") + click.echo(f" Package: {package_name}") + click.echo(f" Current SHA: {permalink_sha}") + click.echo(f" Found {len(newer_commits)} newer commits:") + for commit in newer_commits: + click.echo(f" Commit: {commit.sha}") + click.echo( + f" Diff URL: https://github.com/{github_org}/{github_repo}/commit/{commit.sha}" + ) + click.echo(f" Timestamp: {commit.commit.author.date}") + if "\n" in commit.commit.message: + click.echo(" Message:") + for line in commit.commit.message.split("\n"): + click.echo(f" {line}") + else: + click.echo(f" Message: {commit.commit.message}") + click.echo() + click.echo() + + except GithubException as e: + click.secho(f"Error checking {conanfile_path}: {str(e)}", fg="red") + continue + + if not found_outdated: + click.secho("\nAll conanfile.py files are up to date!", fg="green") diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index bf36936f..4a5e71ef 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -146,14 +146,14 @@ versions: package_versions: ASWF_DTS_VERSION: "11" ASWF_DTS_PREFIX: "gcc-toolset" - ASWF_CONAN_VERSION: "2.14.0" + ASWF_CONAN_VERSION: "2.16.1" ASWF_CONAN_PYTHON_VERSION: "3.11.11" - ASWF_CUDA_VERSION: "12.6.1" + ASWF_CUDA_VERSION: "12.6.3" ASWF_GLVND_VERSION: "1.7.0" - ASWF_CCACHE_VERSION: "4.8.3" - ASWF_CMAKE_VERSION: "3.27.9" + ASWF_CCACHE_VERSION: "4.9.1" + ASWF_CMAKE_VERSION: "3.31.7" ASWF_NINJA_VERSION: "1.12.1" - ASWF_SONAR_VERSION: "6.2.1.4610" + ASWF_SONAR_VERSION: "7.1.0.4889" ASWF_YQ_VERSION: "4.45.2" ASWF_BASEOS_DISTRO: "rockylinux8" ASWF_BASEOS_IMAGE: "nvidia/cuda" @@ -181,14 +181,14 @@ versions: package_versions: ASWF_DTS_VERSION: "11" ASWF_DTS_PREFIX: "gcc-toolset" - ASWF_CONAN_VERSION: "2.14.0" + ASWF_CONAN_VERSION: "2.16.1" ASWF_CONAN_PYTHON_VERSION: "3.11.11" ASWF_CUDA_VERSION: "12.6.3" ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.9.1" ASWF_CMAKE_VERSION: "3.31.7" ASWF_NINJA_VERSION: "1.12.1" - ASWF_SONAR_VERSION: "6.2.1.4610" + ASWF_SONAR_VERSION: "7.1.0.4889" ASWF_YQ_VERSION: "4.45.2" ASWF_BASEOS_DISTRO: "rockylinux8" ASWF_BASEOS_IMAGE: "nvidia/cuda" @@ -208,7 +208,43 @@ versions: use_major_version_as_tag: true package_versions: ASWF_CLANG_MAJOR_VERSION: "19" - ASWF_CLANG_VERSION: "19.1.1" + ASWF_CLANG_VERSION: "19.1.7" + "6": + major_version: "6" + tags: ["draft"] + ci_common_version: "6" + conan_profile: "ci_common6" + package_versions: + ASWF_DTS_VERSION: "14" + ASWF_DTS_PREFIX: "gcc-toolset" + ASWF_CONAN_VERSION: "2.16.1" + ASWF_CONAN_PYTHON_VERSION: "3.13.3" + ASWF_CUDA_VERSION: "12.9.1" + ASWF_GLVND_VERSION: "1.7.0" + ASWF_CCACHE_VERSION: "4.11.3" + ASWF_CMAKE_VERSION: "4.0.2" + ASWF_NINJA_VERSION: "1.12.1" + ASWF_SONAR_VERSION: "7.1.0.4889" + ASWF_YQ_VERSION: "4.45.4" + ASWF_BASEOS_DISTRO: "rockylinux9" + ASWF_BASEOS_IMAGE: "nvidia/cuda" + "6-clang19": + parent_versions: ["6"] + major_version: "6" + ci_common_version: "6" + use_major_version_as_tag: true + package_versions: + ASWF_CLANG_MAJOR_VERSION: "19" + ASWF_CLANG_VERSION: "19.1.7" + "6-clang20": + parent_versions: ["6"] + major_version: "6" + tags: ["draft"] + ci_common_version: "6" + use_major_version_as_tag: true + package_versions: + ASWF_CLANG_MAJOR_VERSION: "20" + ASWF_CLANG_VERSION: "20.1.7" "2019": parent_versions: ["1", "1-clang7"] major_version: "2019" @@ -216,7 +252,7 @@ versions: conan_profile: "vfx2019" package_versions: ASWF_ALEMBIC_VERSION: "1.7.11" - ASWF_BLOSC_VERSION: "1.5.0" + ASWF_C_BLOSC_VERSION: "1.5.0" ASWF_BOOST_VERSION: "1.66.0" ASWF_CMAKE_VERSION: "3.12.4" ASWF_CPPUNIT_VERSION: "1.14.0" @@ -275,7 +311,7 @@ versions: conan_profile: "vfx2020" package_versions: ASWF_ALEMBIC_VERSION: "1.7.12" - ASWF_BLOSC_VERSION: "1.5.0" + ASWF_C_BLOSC_VERSION: "1.5.0" ASWF_BOOST_VERSION: "1.70.0" ASWF_CMAKE_VERSION: "3.18.4" ASWF_CPPUNIT_VERSION: "1.15.1" @@ -318,7 +354,7 @@ versions: conan_profile: "vfx2021" package_versions: ASWF_ALEMBIC_VERSION: "1.7.16" - ASWF_BLOSC_VERSION: "1.5.0" + ASWF_C_BLOSC_VERSION: "1.5.0" ASWF_BOOST_VERSION: "1.73.0" ASWF_CMAKE_VERSION: "3.19.3" ASWF_CPPUNIT_VERSION: "1.15.1" @@ -364,7 +400,7 @@ versions: conan_profile: "vfx2022" package_versions: ASWF_ALEMBIC_VERSION: "1.8.2" - ASWF_BLOSC_VERSION: "1.17.0" + ASWF_C_BLOSC_VERSION: "1.17.0" ASWF_BOOST_VERSION: "1.76.0" ASWF_CMAKE_VERSION: "3.22.0" ASWF_CPPUNIT_VERSION: "1.15.1" @@ -423,7 +459,7 @@ versions: conan_profile: "vfx2023" package_versions: ASWF_ALEMBIC_VERSION: "1.8.5" - ASWF_BLOSC_VERSION: "1.17.0" + ASWF_C_BLOSC_VERSION: "1.17.0" ASWF_BOOST_VERSION: "1.80.0" ASWF_CMAKE_VERSION: "3.27.2" ASWF_CPPUNIT_VERSION: "1.15.1" @@ -477,7 +513,7 @@ versions: ASWF_FONTCONFIG_VERSION: "system" ASWF_GDBM_VERSION: "system" ASWF_GIFLIB_VERSION: "5.1.4" - ASWF_GLIB_VERSION: "2.78.3" + ASWF_GLIB_VERSION: "2.56.4" ASWF_ICU_VERSION: "system" ASWF_LIBALSA_VERSION: "system" ASWF_LIBAOM_AV1_VERSION: "system" @@ -495,7 +531,7 @@ versions: ASWF_MPG123_VERSION: "system" ASWF_NASM_VERSION: "system" ASWF_NSPR_VERSION: "system" - ASWF_NSS_VERSION: "3.93" + ASWF_NSS_VERSION: "3.93.0" ASWF_OGG_VERSION: "system" ASWF_OPENAL_SOFT_VERSION: "system" ASWF_OPENGL_VERSION: "system" @@ -517,18 +553,18 @@ versions: ASWF_XZ_UTILS_VERSION: "system" # Packages not specified by VFX Platform ASWF_B2_VERSION: "5.2.1" - ASWF_BLOSC_VERSION: "1.21.5" + ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" ASWF_CPPUNIT_VERSION: "1.15.1" ASWF_EXPAT_VERSION: "2.6.4" ASWF_FMT_VERSION: "11.1.4" ASWF_FREETYPE_VERSION: "2.13.2" - ASWF_GLEW_VERSION: "2.1.0" - ASWF_GLFW_VERSION: "3.3.8" - ASWF_GTEST_VERSION: "1.14.0" + ASWF_GLEW_VERSION: "2.2.0" + ASWF_GLFW_VERSION: "3.4" + ASWF_GTEST_VERSION: "1.15.2" ASWF_HDF5_VERSION: "1.8.23" ASWF_HIGHWAY_VERSION: "1.2.0" - ASWF_LCMS_VERSION: "2.16" + ASWF_LCMS_VERSION: "2.17" ASWF_LIBBACKTRACE_VERSION: "cci.20210118" ASWF_LIBDEFLATE_VERSION: "1.23" ASWF_LIBICONV_VERSION: "1.17" @@ -537,14 +573,13 @@ versions: ASWF_LIBUHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.36" - ASWF_LOG4CPLUS_VERSION: "2.1.1" + ASWF_LOG4CPLUS_VERSION: "2.1.2" ASWF_LZ4_VERSION: "1.10.0" ASWF_MD4C_VERSION: "0.4.8" - ASWF_MINIZIP_NG_VERSION: "4.0.8" - ASWF_OPENSUBDIV_VERSION: "3.6.0" + ASWF_MINIZIP_NG_VERSION: "4.0.10" ASWF_PARTIO_VERSION: "1.19.0" ASWF_PUGIXML_VERSION: "1.14" - ASWF_PYBIND11_VERSION: "2.12.0" + ASWF_PYBIND11_VERSION: "2.13.6" ASWF_PYSTRING_VERSION: "1.1.4" ASWF_SNAPPY_VERSION: "1.1.10" ASWF_TSL_ROBIN_MAP_VERSION: "1.3.0" @@ -555,13 +590,14 @@ versions: # Packages specified by VFX Platform ASWF_ALEMBIC_VERSION: "1.8.6" ASWF_BOOST_VERSION: "1.82.0" - ASWF_CPYTHON_VERSION: "3.11.11" + ASWF_CPYTHON_VERSION: "3.11.13" ASWF_NUMPY_VERSION: "1.24.3" + ASWF_OPENSUBDIV_VERSION: "3.6.1" ASWF_PTEX_VERSION: "2.4.2" - ASWF_PYSIDE_VERSION: "6.5.4" + ASWF_PYSIDE_VERSION: "6.5.6" ASWF_PYSIDE_CLANG_VERSION: "16.0.6" ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.11" - ASWF_QT_VERSION: "6.5.4" + ASWF_QT_VERSION: "6.5.6" ASWF_ONETBB_VERSION: "2020_u3" ASWF_VFXPLATFORM_VERSION: "2024" ASWF_CXX_STANDARD: "17" @@ -570,8 +606,9 @@ versions: ASWF_MATERIALX_VERSION: "1.39.2" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.3.2" - ASWF_OIIO_VERSION: "2.5.18.0" + ASWF_OIIO_VERSION: "2.5.19.0" ASWF_OPENEXR_VERSION: "3.2.4" + ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" ASWF_OPENVDB_VERSION: "11.0.0" ASWF_OSL_VERSION: "1.13.11.0" @@ -599,7 +636,7 @@ versions: ASWF_FONTCONFIG_VERSION: "system" ASWF_GDBM_VERSION: "system" ASWF_GIFLIB_VERSION: "5.1.4" - ASWF_GLIB_VERSION: "2.78.3" + ASWF_GLIB_VERSION: "2.56.4" ASWF_ICU_VERSION: "system" ASWF_LIBALSA_VERSION: "system" ASWF_LIBAOM_AV1_VERSION: "system" @@ -617,7 +654,7 @@ versions: ASWF_MPG123_VERSION: "system" ASWF_NASM_VERSION: "system" ASWF_NSPR_VERSION: "system" - ASWF_NSS_VERSION: "3.93" + ASWF_NSS_VERSION: "3.93.0" ASWF_OGG_VERSION: "system" ASWF_OPENAL_SOFT_VERSION: "system" ASWF_OPENGL_VERSION: "system" @@ -639,7 +676,7 @@ versions: ASWF_XZ_UTILS_VERSION: "system" # Packages not specified by VFX Platform ASWF_B2_VERSION: "5.2.1" - ASWF_BLOSC_VERSION: "1.21.6" + ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" ASWF_CPPUNIT_VERSION: "1.15.1" ASWF_EXPAT_VERSION: "2.6.4" @@ -650,7 +687,7 @@ versions: ASWF_GTEST_VERSION: "1.15.2" ASWF_HDF5_VERSION: "1.8.23" ASWF_HIGHWAY_VERSION: "1.2.0" - ASWF_LCMS_VERSION: "2.16" + ASWF_LCMS_VERSION: "2.17" ASWF_LIBBACKTRACE_VERSION: "cci.20210118" ASWF_LIBDEFLATE_VERSION: "1.23" ASWF_LIBICONV_VERSION: "1.17" @@ -662,8 +699,7 @@ versions: ASWF_LOG4CPLUS_VERSION: "2.1.2" ASWF_LZ4_VERSION: "1.10.0" ASWF_MD4C_VERSION: "0.4.8" - ASWF_MINIZIP_NG_VERSION: "4.0.8" - ASWF_OPENSUBDIV_VERSION: "3.6.0" + ASWF_MINIZIP_NG_VERSION: "4.0.10" ASWF_PARTIO_VERSION: "1.19.0" ASWF_PUGIXML_VERSION: "1.14" ASWF_PYBIND11_VERSION: "2.13.6" @@ -677,14 +713,15 @@ versions: # Packages specified by VFX Platform ASWF_ALEMBIC_VERSION: "1.8.8" ASWF_BOOST_VERSION: "1.85.0" - ASWF_CPYTHON_VERSION: "3.11.11" + ASWF_CPYTHON_VERSION: "3.11.13" ASWF_NUMPY_VERSION: "1.26.4" ASWF_ONETBB_VERSION: "2021.13.0" + ASWF_OPENSUBDIV_VERSION: "3.6.1" ASWF_PTEX_VERSION: "2.4.3" - ASWF_PYSIDE_VERSION: "6.5.4" + ASWF_PYSIDE_VERSION: "6.5.6" ASWF_PYSIDE_CLANG_VERSION: "18.1.8" ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.11" - ASWF_QT_VERSION: "6.5.4" + ASWF_QT_VERSION: "6.5.6" ASWF_VFXPLATFORM_VERSION: "2025" ASWF_CXX_STANDARD: "17" # ASWF packages @@ -692,11 +729,12 @@ versions: ASWF_MATERIALX_VERSION: "1.39.3" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" - ASWF_OIIO_VERSION: "3.0.6.1" - ASWF_OPENEXR_VERSION: "3.3.3" + ASWF_OIIO_VERSION: "3.0.8.1" + ASWF_OPENEXR_VERSION: "3.3.4" + ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" ASWF_OPENVDB_VERSION: "12.0.0" - ASWF_OSL_VERSION: "1.14.5.1" + ASWF_OSL_VERSION: "1.14.6.0" ASWF_OTIO_VERSION: "0.17.0" "2025-clang18": parent_versions: ["5", "5-clang18", "2025"] @@ -708,6 +746,130 @@ versions: tags: ["latest"] use_major_version_as_tag: true ci_common_version: "5" + "2026": + parent_versions: ["6", "6-clang19"] + major_version: "2026" + tags: ["draft"] + ci_common_version: "6" + conan_profile: "vfx2026" + package_versions: + # Conan wrapper packages for system components + ASWF_BROTLI_VERSION: "system" + ASWF_DBUS_VERSION: "system" + ASWF_DOUBLE_CONVERSION_VERSION: "system" + ASWF_FONTCONFIG_VERSION: "system" + ASWF_GDBM_VERSION: "system" + ASWF_GIFLIB_VERSION: "5.2.1" + ASWF_GLIB_VERSION: "2.68.4" + ASWF_ICU_VERSION: "system" + ASWF_LIBALSA_VERSION: "system" + ASWF_LIBAOM_AV1_VERSION: "system" + ASWF_LIBDRM_VERSION: "system" + ASWF_LIBFFI_VERSION: "system" + ASWF_LIBMP3LAME_VERSION: "system" + ASWF_LIBPNG_VERSION: "1.6.37" + ASWF_LIBSNDFILE_VERSION: "system" + ASWF_LIBSQUISH_VERSION: "system" + ASWF_LIBSVTAV1_VERSION: "system" + ASWF_LIBTIFF_VERSION: "4.4.0" + ASWF_LIBVPX_VERSION: "system" + ASWF_LIBXSHMFENCE_VERSION: "system" + ASWF_MPDECIMAL_VERSION: "system" + ASWF_MPG123_VERSION: "system" + ASWF_NASM_VERSION: "system" + ASWF_NSPR_VERSION: "system" + ASWF_NSS_VERSION: "3.101.0" + ASWF_OGG_VERSION: "system" + ASWF_OPENAL_SOFT_VERSION: "system" + ASWF_OPENGL_VERSION: "system" + ASWF_OPENJPEG_VERSION: "2.4.0" + ASWF_OPENSSL_VERSION: "system" + ASWF_OPUS_VERSION: "system" + ASWF_PCRE2_VERSION: "system" + ASWF_PULSEAUDIO_VERSION: "system" + ASWF_SQLITE3_VERSION: "system" + ASWF_TCL_VERSION: "system" + ASWF_TK_VERSION: "system" + ASWF_UTIL_LINUX_LIBUUID_VERSION: "system" + ASWF_VORBIS_VERSION: "system" + ASWF_VULKAN_HEADERS_VERSION: "system" + ASWF_VULKAN_LOADER_VERSION: "system" + ASWF_XKBCOMMON_VERSION: "1.0.3" + ASWF_XORG_VERSION: "system" + ASWF_XORG_PROTO_VERSION: "system" + ASWF_XZ_UTILS_VERSION: "system" + # Packages not specified by VFX Platform + ASWF_B2_VERSION: "5.3.2" + ASWF_C_BLOSC_VERSION: "1.21.6" + ASWF_BZIP2_VERSION: "1.0.8" + ASWF_CPPUNIT_VERSION: "1.15.1" + ASWF_EXPAT_VERSION: "2.7.1" + ASWF_FMT_VERSION: "11.2.0" + ASWF_FREETYPE_VERSION: "2.13.2" + ASWF_GLEW_VERSION: "2.2.0" + ASWF_GLFW_VERSION: "3.4" + ASWF_GTEST_VERSION: "1.17.0" + ASWF_HDF5_VERSION: "1.8.23" + ASWF_HIGHWAY_VERSION: "1.2.0" + ASWF_LCMS_VERSION: "2.17" + ASWF_LIBBACKTRACE_VERSION: "cci.20210118" + ASWF_LIBDEFLATE_VERSION: "1.24" + ASWF_LIBICONV_VERSION: "1.18" + ASWF_LIBJPEG_TURBO_VERSION: "3.1.0" + ASWF_LIBJXL_VERSION: "0.11.1" + ASWF_LIBUHDR_VERSION: "1.4.0" + ASWF_LIBWEBP_VERSION: "1.5.0" + ASWF_LIBXCRYPT_VERSION: "4.4.38" + ASWF_LOG4CPLUS_VERSION: "2.1.2" + ASWF_LZ4_VERSION: "1.10.0" + ASWF_MD4C_VERSION: "0.5.2" + ASWF_MINIZIP_NG_VERSION: "4.0.10" + ASWF_PARTIO_VERSION: "1.19.0" + ASWF_PUGIXML_VERSION: "1.15" + ASWF_PYBIND11_VERSION: "2.13.6" + ASWF_PYSTRING_VERSION: "1.1.4" + ASWF_SNAPPY_VERSION: "1.2.2" + ASWF_TSL_ROBIN_MAP_VERSION: "1.4.0" + ASWF_USD_VERSION: "25.05.01" + ASWF_YAML_CPP_VERSION: "0.8.0" + ASWF_ZLIB_VERSION: "1.3.1" + ASWF_ZSTD_VERSION: "1.5.7" + # Packages specified by VFX Platform + ASWF_ALEMBIC_VERSION: "1.8.8" + ASWF_BOOST_VERSION: "1.88.0" + ASWF_CPYTHON_VERSION: "3.13.3" + ASWF_NUMPY_VERSION: "1.26.4" + ASWF_ONETBB_VERSION: "2022.1.0" + ASWF_OPENSUBDIV_VERSION: "3.6.1" + ASWF_PTEX_VERSION: "2.4.3" + ASWF_PYSIDE_VERSION: "6.8.3" + ASWF_PYSIDE_CLANG_VERSION: "19.1.7" + ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.13" + ASWF_QT_VERSION: "6.8.3" + ASWF_VFXPLATFORM_VERSION: "2026" + ASWF_CXX_STANDARD: "20" + # ASWF packages + ASWF_IMATH_VERSION: "3.1.12" + ASWF_MATERIALX_VERSION: "1.39.3" + ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" + ASWF_OCIO_VERSION: "2.4.2" + ASWF_OIIO_VERSION: "3.0.8.1" + ASWF_OPENEXR_VERSION: "3.3.4" + ASWF_OPENFX_VERSION: "1.5s" + ASWF_OPENRV_VERSION: "2.1.0" + ASWF_OPENVDB_VERSION: "12.0.1" + ASWF_OSL_VERSION: "1.14.6.0" + ASWF_OTIO_VERSION: "0.17.0" + "2026-clang19": + parent_versions: ["6", "6-clang19", "2026"] + major_version: "2026" + ci_common_version: "6" + "2026-clang20": + parent_versions: ["6", "6-clang20", "2026"] + major_version: "2026" + tags: ["latest"] + use_major_version_as_tag: true + ci_common_version: "6" ci-packages: clang: @@ -723,432 +885,535 @@ ci-packages: - "2-clang14.0" - "3-clang14.2" - "3-clang15.2" - - "4-clang16.2" - - "4-clang17.2" - - "5-clang18.1" - - "5-clang19.1" + - "4-clang16.3" + - "4-clang17.3" + - "5-clang18.2" + - "5-clang19.2" + - "6-clang19.0" + - "6-clang20.0" ninja: - "1.3" - "2.2" - "3.2" - - "4.2" - - "5.1" + - "4.3" + - "5.2" + - "6.0" cmake: - "1.3" - "2.2" - "3.2" - - "4.2" - - "5.1" + - "4.3" + - "5.2" + - "6.0" cpython: - "2019.2" - "2020.2" - "2021.2" - "2022.3" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" pybind11: - "2019.0" - "2020.0" - "2021.0" - "2022.3" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" b2: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libbacktrace: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" boost: - "2019.2" - "2020.2" - "2021.2" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" cppunit: - "2019.2" - "2020.2" - "2021.1" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" glew: - "2019.2" - "2020.2" - "2021.2" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" glfw: - "2019.2" - "2020.2" - "2021.2" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" log4cplus: - "2019.2" - "2020.2" - "2021.1" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" gtest: - "2019.0" - "2020.0" - "2021.0" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" qt: - "2019.2" - "2020.2" - "2021.2" - "2022.0" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" pyside: - "2019.2" - "2020.2" - "2021.2" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" - blosc: + - "2024.3" + - "2025.2" + - "2026.0" + c-blosc: - "2019.2" - "2020.2" - "2021.1" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" imath: - "2019.0" - "2020.0" - "2021.0" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openexr: - "2019.2" - "2020.2" - "2021.3" - "2022.3" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" + openfx: + - "2024.3" + - "2025.2" + - "2026.0" alembic: - "2019.2" - "2020.2" - "2021.2" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" ocio: - "2019.2" - "2020.2" - "2021.4" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" oiio: - "2019.2" - "2020.2" - "2021.4" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" opensubdiv: - "2019.2" - "2020.2" - "2021.2" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" ptex: - "2019.2" - "2020.2" - "2021.1" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openrv: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openvdb: - "2019.2" - "2020.2" - "2021.3" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" usd: - "2019.3" - "2020.2" - "2021.5" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" partio: - "2019.1" - "2020.1" - "2021.2" - "2022.2" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" osl: - "2019.1" - "2020.1" - "2021.3" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" otio: - "2019.1" - "2020.1" - "2021.3" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" materialx: - "2019.0" - "2020.0" - "2021.0" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" expat: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" md4c: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" brotli: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" dbus: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" double-conversion: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" bzip2: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" fmt: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" fontconfig: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" freetype: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" gdbm: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" giflib: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" glib: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" highway: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" icu: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" lcms: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libalsa: - - "2024.0" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libaom-av1: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libdeflate: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libdrm: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libffi: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libiconv: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libjpeg-turbo: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libjxl: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libmp3lame: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libpng: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libsndfile: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libsquish: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libsvtav1: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libtiff: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libuhdr: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libvpx: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libwebp: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libxcrypt: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" libxshmfence: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" lz4: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" minizip-ng: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" mpdecimal: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" mpg123: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" nasm: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" nspr: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" nss: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" ogg: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" onetbb: - "2019.2" - "2020.2" - "2021.2" - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openal-soft: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" opengl: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openjpeg: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openssl: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" opus: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" pcre2: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" pugixml: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" pulseaudio: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" pystring: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" snappy: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" sqlite3: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" tcl: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" tk: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" tsl-robin-map: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" util-linux-libuuid: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" vorbis: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" vulkan-headers: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" vulkan-loader: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" xkbcommon: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" xorg: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" xorg-proto: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" xz_utils: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" yaml-cpp: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" zlib: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" zstd: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" ci-images: common: @@ -1164,77 +1429,93 @@ ci-images: - "2-clang14.0" - "3-clang14.2" - "3-clang15.2" - - "4-clang16.2" - - "4-clang17.2" - - "5-clang18.1" - - "5-clang19.1" + - "4-clang16.3" + - "4-clang17.3" + - "5-clang18.2" + - "5-clang19.2" + - "6-clang19.0" + - "6-clang20.0" base: - "2019.9" - "2020.9" - "2021.6" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" baseqt: - "2019.2" - "2020.2" - "2021.3" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openexr: - "2019.8" - "2020.8" - "2021.5" - "2022.3" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" + openfx: + - "2024.3" + - "2025.2" + - "2026.0" ocio: - "2019.9" - "2020.8" - "2021.6" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" oiio: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" opencue: - "2019.10" - "2020.10" - "2021.7" - "2022.3" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" usd: - "2019.9" - "2020.8" - "2021.6" - "2022.4" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" otio: - "2019.3" - "2020.3" - "2021.5" - "2022.3" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" materialx: - "2022.1" - "2023.2" - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" openrv: - - "2024.2" - - "2025.1" + - "2024.3" + - "2025.2" + - "2026.0" osl: - "2019-clang6.5" - "2019-clang7.5" @@ -1251,10 +1532,12 @@ ci-images: - "2022-clang14.1" - "2023-clang14.2" - "2023-clang15.2" - - "2024-clang16.2" - - "2024-clang17.2" - - "2025-clang18.1" - - "2025-clang19.1" + - "2024-clang16.3" + - "2024-clang17.3" + - "2025-clang18.2" + - "2025-clang19.2" + - "2026-clang19.0" + - "2026-clang20.0" openvdb: - "2019-clang6.8" - "2019-clang7.8" @@ -1269,10 +1552,12 @@ ci-images: - "2022-clang14.2" - "2023-clang14.2" - "2023-clang15.2" - - "2024-clang16.2" - - "2024-clang17.2" - - "2025-clang18.1" - - "2025-clang19.1" + - "2024-clang16.3" + - "2024-clang17.3" + - "2025-clang18.2" + - "2025-clang19.2" + - "2026-clang19.0" + - "2026-clang20.0" vfxall: - "2019-clang6.12" - "2019-clang7.12" @@ -1287,10 +1572,12 @@ ci-images: - "2022-clang14.3" - "2023-clang14.2" - "2023-clang15.2" - - "2024-clang16.2" - - "2024-clang17.2" - - "2025-clang18.1" - - "2025-clang19.1" + - "2024-clang16.3" + - "2024-clang17.3" + - "2025-clang18.2" + - "2025-clang19.2" + - "2026-clang19.0" + - "2026-clang20.0" groups: package: @@ -1340,7 +1627,7 @@ groups: - zlib - zstd base1-2: - - blosc + - c-blosc - cpython - freetype - glew @@ -1393,6 +1680,7 @@ groups: vfx1-2: - libjxl - openexr + - openfx vfx1-3: - alembic - ocio @@ -1419,6 +1707,7 @@ groups: vfx1: - opencue - openexr + - openfx vfx2: - ocio - oiio @@ -1445,7 +1734,7 @@ package_data: conan_only: - alembic - b2 - - blosc + - c-blosc - boost - brotli - bzip2 @@ -1506,10 +1795,12 @@ conan_only: - onetbb - openal-soft - openexr + - openfx - opengl - openjpeg - openssl - opensubdiv + - openvdb - opus - partio - pcre2 diff --git a/python/aswfdocker/tests/test_builder.py b/python/aswfdocker/tests/test_builder.py index 4d7a04da..c25602d1 100644 --- a/python/aswfdocker/tests/test_builder.py +++ b/python/aswfdocker/tests/test_builder.py @@ -19,38 +19,41 @@ class TestBuilder(unittest.TestCase): def setUp(self): self.maxDiff = None self.build_info = aswfinfo.ASWFInfo( - repo_uri="notauri", source_branch="testing", aswf_version="2019.123" + repo_uri="notauri", source_branch="testing", aswf_version="2024.123" ) - def test_package_openvdb_2019_dict(self): + def test_package_usd_2024_dict(self): b = builder.Builder( self.build_info, groupinfo.GroupInfo( - names=["vfx1"], - versions=["2019"], + names=["vfx2"], + versions=["2024"], type_=constants.ImageType.PACKAGE, targets=[], ), ) - openvdb_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "openvdb") + usd_version = list( + filter( + lambda package: package.startswith("2024"), + index.Index().iter_versions(constants.ImageType.PACKAGE, "usd"), + ) )[0] - baked = b.make_bake_dict(False, False, False) + baked = b.make_bake_dict(False, False) self.assertEqual( - baked["target"]["ci-package-openvdb-2019"]["tags"], + baked["target"]["ci-package-usd-2024"]["tags"], [ - f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-openvdb:2019", - f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-openvdb:{openvdb_version}", - f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-openvdb:2019-6.2.1", + f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-usd:2024", + f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-usd:{usd_version}", + f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-usd:2024-24.08", ], ) self.assertEqual( - baked["target"]["ci-package-openvdb-2019"]["args"]["ASWF_VERSION"], - openvdb_version, + baked["target"]["ci-package-usd-2024"]["args"]["ASWF_VERSION"], + usd_version, ) self.assertEqual( - baked["target"]["ci-package-openvdb-2019"]["dockerfile"], - "packages/vfx1/Dockerfile", + baked["target"]["ci-package-usd-2024"]["dockerfile"], + "packages/vfx2/Dockerfile", ) def test_package_osl_2019_dict_conan(self): @@ -66,7 +69,7 @@ def test_package_osl_2019_dict_conan(self): osl_version = list( index.Index().iter_versions(constants.ImageType.PACKAGE, "osl") )[0] - baked = b.make_bake_dict(False, False, False) + baked = b.make_bake_dict(False, False) self.assertIn( "ASWF_OSL_VERSION", baked["target"]["ci-package-osl-2019"]["args"] ) @@ -100,7 +103,7 @@ def test_image_base_2019_dict(self): base_version = list( index.Index().iter_versions(constants.ImageType.IMAGE, "base") )[0] - baked = b.make_bake_dict(False, False, False) + baked = b.make_bake_dict(False, False) self.assertEqual( baked["target"]["ci-base-2019"]["tags"], [ @@ -126,7 +129,7 @@ def test_image_base_2019clang_dict(self): index.Index().iter_versions(constants.ImageType.IMAGE, "openvdb") )[3] self.assertEqual( - b.make_bake_dict(False, False, False), + b.make_bake_dict(False, False), { "group": {"default": {"targets": ["ci-openvdb-2019-clang9"]}}, "target": { @@ -135,7 +138,7 @@ def test_image_base_2019clang_dict(self): "ASWF_ALEMBIC_VERSION": "1.7.11", "ASWF_BASEOS_DISTRO": "centos7", "ASWF_BASEOS_IMAGE": "nvidia/cudagl", - "ASWF_BLOSC_VERSION": "1.5.0", + "ASWF_C_BLOSC_VERSION": "1.5.0", "ASWF_BOOST_VERSION": "1.66.0", "ASWF_CCACHE_VERSION": "4.0", "ASWF_CLANG_MAJOR_VERSION": "9", @@ -217,7 +220,7 @@ def test_image_base_2019_2020_dict(self): index.Index().iter_versions(constants.ImageType.IMAGE, "base") ) self.assertEqual( - b.make_bake_dict(False, False, False), + b.make_bake_dict(False, False), { "group": {"default": {"targets": ["ci-base-2019", "ci-base-2020"]}}, "target": { @@ -228,7 +231,7 @@ def test_image_base_2019_2020_dict(self): "ASWF_ALEMBIC_VERSION": "1.7.12", "ASWF_BASEOS_DISTRO": "centos7", "ASWF_BASEOS_IMAGE": "nvidia/cudagl", - "ASWF_BLOSC_VERSION": "1.5.0", + "ASWF_C_BLOSC_VERSION": "1.5.0", "ASWF_BOOST_VERSION": "1.70.0", "ASWF_CCACHE_VERSION": "4.0", "ASWF_CLANG_MAJOR_VERSION": "7", @@ -297,7 +300,7 @@ def test_image_base_2019_2020_dict(self): "ASWF_ALEMBIC_VERSION": "1.7.11", "ASWF_BASEOS_DISTRO": "centos7", "ASWF_BASEOS_IMAGE": "nvidia/cudagl", - "ASWF_BLOSC_VERSION": "1.5.0", + "ASWF_C_BLOSC_VERSION": "1.5.0", "ASWF_BOOST_VERSION": "1.66.0", "ASWF_CCACHE_VERSION": "4.0", "ASWF_CLANG_MAJOR_VERSION": "7", @@ -383,15 +386,15 @@ def test_builder_cli(self): "--ci-image-type", "PACKAGE", "--version", - "2019", + "2024", "--target", - "openvdb", + "usd", "--dry-run", ], ) self.assertFalse(result.exception) bake_path = os.path.join( - tempfile.gettempdir(), "docker-bake-PACKAGE-vfx1-2019.json" + tempfile.gettempdir(), "docker-bake-PACKAGE-vfx2-2024.json" ) cmd = f"docker buildx bake -f {bake_path} --progress auto" self.assertEqual( @@ -463,17 +466,17 @@ def test_builderlist_cli(self): "--ci-image-type", "PACKAGE", "--version", - "2019", + "2024", "--version", - "2020", + "2025", "--target", - "openvdb", + "usd", "--dry-run", ], ) self.assertFalse(result.exception) bake_path = os.path.join( - tempfile.gettempdir(), "docker-bake-PACKAGE-vfx1-2019-2020.json" + tempfile.gettempdir(), "docker-bake-PACKAGE-vfx2-2024-2025.json" ) cmd = f"docker buildx bake -f {bake_path} --progress auto" self.assertEqual( @@ -552,7 +555,7 @@ def test_builder_cli_allversions(self): "docker-bake-IMAGE-common-1-clang10-1-clang6-1-clang7-1" "-clang8-1-clang9-2-clang10-2-clang11-2-clang12-2-clang13-2" "-clang14-3-clang14-3-clang15-4-clang16-4-clang17" - "-5-clang18-5-clang19.json", + "-5-clang18-5-clang19-6-clang19-6-clang20.json", ) cmd = f"docker buildx bake -f {bake_path} --progress auto" self.assertEqual( diff --git a/python/aswfdocker/tests/test_migrater.py b/python/aswfdocker/tests/test_migrater.py index 3fb5668e..bdddb47b 100644 --- a/python/aswfdocker/tests/test_migrater.py +++ b/python/aswfdocker/tests/test_migrater.py @@ -23,29 +23,29 @@ def test_migrate_nofilter(self): def test_migrate_pkgfilter(self): m = migrater.Migrater("src", "dst") - m.gather("openexr", "") - self.assertEqual(len(m.migration_list), 7) + m.gather("usd", "") + self.assertEqual(len(m.migration_list), 8) def test_migrate_versionfilter(self): m = migrater.Migrater("src", "dst") - m.gather("openexr", "2019") + m.gather("usd", "2019") current_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "openexr") + index.Index().iter_versions(constants.ImageType.PACKAGE, "usd") )[0] self.assertEqual(len(m.migration_list), 1) minfo = m.migration_list[0] - self.assertEqual(minfo.image, "ci-package-openexr") + self.assertEqual(minfo.image, "ci-package-usd") oexr_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "openexr") + index.Index().iter_versions(constants.ImageType.PACKAGE, "usd") )[0] self.assertEqual(minfo.version, oexr_version) self.assertEqual( minfo.source, - f"{constants.DOCKER_REGISTRY}/src/ci-package-openexr:{current_version}", + f"{constants.DOCKER_REGISTRY}/src/ci-package-usd:{current_version}", ) self.assertEqual( minfo.destination, - f"{constants.DOCKER_REGISTRY}/dst/ci-package-openexr:{current_version}", + f"{constants.DOCKER_REGISTRY}/dst/ci-package-usd:{current_version}", ) m.migrate(dry_run=True) @@ -53,13 +53,13 @@ def test_migrate_versionfilter(self): self.assertEqual( m.cmds, [ - f"docker pull {reg}/src/ci-package-openexr:{current_version}", - f"docker tag {reg}/src/ci-package-openexr:{current_version} " - f"{reg}/dst/ci-package-openexr:{current_version}", - f"docker push {reg}/dst/ci-package-openexr:{current_version}", - f"docker tag {reg}/dst/ci-package-openexr:{current_version} " - f"{reg}/dst/ci-package-openexr:2019", - f"docker push {reg}/dst/ci-package-openexr:2019", + f"docker pull {reg}/src/ci-package-usd:{current_version}", + f"docker tag {reg}/src/ci-package-usd:{current_version} " + f"{reg}/dst/ci-package-usd:{current_version}", + f"docker push {reg}/dst/ci-package-usd:{current_version}", + f"docker tag {reg}/dst/ci-package-usd:{current_version} " + f"{reg}/dst/ci-package-usd:2019", + f"docker push {reg}/dst/ci-package-usd:2019", ], ) @@ -83,7 +83,7 @@ def test_migrate_cli(self): "--to", "dst", "--package", - "openexr", + "usd", "--version", "2019", "--dry-run", @@ -92,17 +92,17 @@ def test_migrate_cli(self): ) self.assertEqual(result.exit_code, 0) current_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "openexr") + index.Index().iter_versions(constants.ImageType.PACKAGE, "usd") )[0] reg = constants.DOCKER_REGISTRY self.assertEqual( result.output, f"Are you sure you want to migrate the following 1 packages?\n" - f"{reg}/src/ci-package-openexr:{current_version} -> " - f"{reg}/dst/ci-package-openexr:{current_version}\n" + f"{reg}/src/ci-package-usd:{current_version} -> " + f"{reg}/dst/ci-package-usd:{current_version}\n" f" [y/N]: y\n" f"INFO:aswfdocker.migrater:Migrating " - f"{reg}/src/ci-package-openexr:{current_version} -> " - f"{reg}/dst/ci-package-openexr:{current_version}\n" + f"{reg}/src/ci-package-usd:{current_version} -> " + f"{reg}/dst/ci-package-usd:{current_version}\n" f"Migration done.\n", ) diff --git a/scripts/common/install_cudadevel.sh b/scripts/common/install_cudadevel.sh index 159ac9da..695d76d4 100755 --- a/scripts/common/install_cudadevel.sh +++ b/scripts/common/install_cudadevel.sh @@ -19,16 +19,19 @@ # This script is based on the Dockerfile which layers the -devel image on top of the -runtime image: # https://gitlab.com/nvidia/container-images/cuda/-/raw/master/dist/12.6.3/rockylinux8/devel/Dockerfile # +# For CUDA 12.9.1 and Rocky Linux 9: +# https://gitlab.com/nvidia/container-images/cuda/-/raw/master/dist/12.9.1/rockylinux9/devel/Dockerfile +# # Versions will need to be updated when a new version of CUDA is selected. # NV_CUDA_LIB_VERSION="${ASWF_CUDA_VERSION}-1" IFS='.' read -r CUDA_MAJOR CUDA_MINOR CUDA_PATCH <<< "${ASWF_CUDA_VERSION}" -declare -A NV_NVPROF_VERSION=( [12.6.1]=12.6.68-1 [12.6.3]=12.6.80-1 ) +declare -A NV_NVPROF_VERSION=( [12.6.1]=12.6.68-1 [12.6.3]=12.6.80-1 [12.9.1]=12.9.79-1 ) NV_NVPROF_DEV_PACKAGE=cuda-nvprof-${CUDA_MAJOR}-${CUDA_MINOR}-${NV_NVPROF_VERSION[$ASWF_CUDA_VERSION]} -declare -A NV_NVML_DEV_VERSION=( [12.6.1]=12.6.68-1 [12.6.3]=12.6.77-1 ) +declare -A NV_NVML_DEV_VERSION=( [12.6.1]=12.6.68-1 [12.6.3]=12.6.77-1 [12.9.1]=12.9.79-1 ) NV_NVML_DEV_PACKAGE=cuda-nvml-devel-${CUDA_MAJOR}-${CUDA_MINOR}-${NV_NVML_DEV_VERSION[$ASWF_CUDA_VERSION]} -declare -A NV_LIBNCCL_DEV_PACKAGE_VERSION=( [12.6.1]=2.22.3-1 [12.6.3]=2.23.4-1 ) +declare -A NV_LIBNCCL_DEV_PACKAGE_VERSION=( [12.6.1]=2.22.3-1 [12.6.3]=2.23.4-1 [12.9.1]=2.27.3-1 ) NV_LIBNCCL_DEV_PACKAGE=libnccl-devel-${NV_LIBNCCL_DEV_PACKAGE_VERSION[$ASWF_CUDA_VERSION]}+cuda${CUDA_MAJOR}.${CUDA_MINOR} # Query and filter the list of packages we want to install from the cuda-libraries-devel meta package diff --git a/scripts/common/install_dev_ccache.sh b/scripts/common/install_dev_ccache.sh index 2f513985..f3e4934f 100755 --- a/scripts/common/install_dev_ccache.sh +++ b/scripts/common/install_dev_ccache.sh @@ -4,7 +4,7 @@ set -ex -export DEV_CCACHE_VERSION=4.8.3 +export DEV_CCACHE_VERSION=$ASWF_CCACHE_VERSION mkdir ccache cd ccache diff --git a/scripts/common/install_dev_cmake.sh b/scripts/common/install_dev_cmake.sh index d4f1b422..d9ef5555 100755 --- a/scripts/common/install_dev_cmake.sh +++ b/scripts/common/install_dev_cmake.sh @@ -6,7 +6,7 @@ set -ex mkdir -p /opt/aswfbuilder -export DEV_CMAKE_VERSION=3.31.6 +export DEV_CMAKE_VERSION=$ASWF_CMAKE_VERSION if [ ! -f "$DOWNLOADS_DIR/cmake-${DEV_CMAKE_VERSION}-Linux-x86_64.sh" ]; then curl --location "https://github.com/Kitware/CMake/releases/download/v${DEV_CMAKE_VERSION}/cmake-${DEV_CMAKE_VERSION}-Linux-x86_64.sh" -o "$DOWNLOADS_DIR/cmake-${DEV_CMAKE_VERSION}-Linux-x86_64.sh" diff --git a/scripts/common/install_pippackages.sh b/scripts/common/install_pippackages.sh index d2138c5a..33c3fc91 100755 --- a/scripts/common/install_pippackages.sh +++ b/scripts/common/install_pippackages.sh @@ -7,9 +7,9 @@ set -ex BASEOS_MAJORVERSION=$(sed -n 's/^.* release \([0-9]*\)\..*$/\1/p' /etc/redhat-release) if [ "$BASEOS_MAJORVERSION" -gt "7" ]; then - python -m ensurepip --upgrade + python3 -m ensurepip --upgrade - # There is a package called python3-html5lib through yum/dnf but it install it + # There is a package called python3-html5lib through yum/dnf but it installs # for the system Python - which is not the same one that it used by downstream projects. - python -m pip install html5lib + python3 -m pip install html5lib fi \ No newline at end of file diff --git a/scripts/common/install_yumpackages.sh b/scripts/common/install_yumpackages.sh index cd888215..8810b98d 100755 --- a/scripts/common/install_yumpackages.sh +++ b/scripts/common/install_yumpackages.sh @@ -4,18 +4,36 @@ set -ex -# Rocky 8 needs PowerTools and Devel repos enabled for some of these packages + +GAMIN_RPM="gamin" +MESA_VULKAN_DEVEL_RPM="mesa-vulkan-devel" +XORG_X11_XKB_UTILS_RPM="xorg-x11-xkb-utils xorg-x11-xkb-utils-devel" +LIBXVMC_DEVEL_RPM="libXvMC-devel" BASEOS_MAJORVERSION=$(sed -n 's/^.* release \([0-9]*\)\..*$/\1/p' /etc/redhat-release) if [ "$BASEOS_MAJORVERSION" -gt "7" ]; then dnf -y install 'dnf-command(config-manager)' - dnf config-manager --set-enabled powertools - # libbluray-devel is in EPEL 9, we may no longer need devel repo then - # same for yasm-devel and libdc1393-devel - dnf config-manager --set-enabled devel - # Rocky 8 base image doesn't have a system Python (3), install and make default - dnf -y install python3 - alternatives --set python /usr/bin/python3 + if [ "$BASEOS_MAJORVERSION" -eq "8" ]; then + # Rocky 8 needs PowerTools and Devel repos enabled for some of these packages + dnf config-manager --set-enabled powertools + # libbluray-devel is in EPEL 9, we may no longer need devel repo then + # same for yasm-devel and libdc1393-devel + dnf config-manager --set-enabled devel + # Rocky 8 base image doesn't have a system Python (3), install and make default + dnf -y install python3 + alternatives --set python /usr/bin/python3 + else + # Rocky 9 needs CRB repo enabled for some of these packages + dnf config-manager --set-enabled crb + # Some packages are gone or renamed in EL 9 + GAMIN_RPM="" + MESA_VULKAN_DEVEL_RPM="mesa-vulkan-drivers" + # In Rocky 9 xkbcomp-devel is in the devel repo which we don't want, all it provides is a single + # pkgconfig file we don't need. + XORG_X11_XKB_UTILS_RPM="setxkbmap xkbcomp" + LIBXVMC_DEVEL_RPM="" + fi + dnf makecache fi yum install --setopt=tsflags=nodocs -y \ @@ -34,6 +52,7 @@ yum install --setopt=tsflags=nodocs -y \ cups-devel \ dbus \ dbus-devel \ + dbus-tools \ doxygen \ expat-devel \ file \ @@ -45,8 +64,7 @@ yum install --setopt=tsflags=nodocs -y \ freeglut-devel \ freetype \ freetype-devel \ - frei0r-devel \ - gamin \ + ${GAMIN_RPM} \ gdbm-devel \ giflib-devel \ glib2-devel \ @@ -63,7 +81,6 @@ yum install --setopt=tsflags=nodocs -y \ harfbuzz-devel \ java-1.8.0-openjdk \ libaio-devel \ - libbluray-devel \ libcap-devel \ libcdio-paranoia-devel \ libcurl-devel \ @@ -85,6 +102,7 @@ yum install --setopt=tsflags=nodocs -y \ libtheora-devel \ libtiff \ libtiff-devel \ + libuuid-devel \ libv4l \ libv4l-devel \ libvdpau-devel \ @@ -132,7 +150,7 @@ yum install --setopt=tsflags=nodocs -y \ libxslt-devel \ libXtst-devel \ libXv-devel \ - libXvMC-devel \ + ${LIBXVMC_DEVEL_RPM} \ libXxf86vm-devel \ lz4-devel \ make \ @@ -142,7 +160,7 @@ yum install --setopt=tsflags=nodocs -y \ mesa-libGLU-devel \ mesa-libGLw-devel \ mesa-libOSMesa-devel \ - mesa-vulkan-devel \ + ${MESA_VULKAN_DEVEL_RPM} \ mpdecimal-devel \ mpg123-devel \ motif \ @@ -195,8 +213,7 @@ yum install --setopt=tsflags=nodocs -y \ xorg-x11-proto-devel \ xorg-x11-server-Xvfb \ xorg-x11-util-macros \ - xorg-x11-xkb-utils \ - xorg-x11-xkb-utils-devel \ + ${XORG_X11_XKB_UTILS_RPM} \ xorg-x11-xtrans-devel \ xz-devel \ zlib-devel \ @@ -225,13 +242,15 @@ fi yum install -y epel-release -# Additional packages that are not found initially +# Additional packages, some moved to EPEL 9 yum install -y \ alsa-lib \ alsa-lib-devel \ audiofile-devel \ + frei0r-devel \ lame-devel \ libaom-devel \ + libbluray-devel \ libcaca-devel \ libdc1394-devel \ libdeflate-devel \ @@ -259,6 +278,15 @@ if [ "$BASEOS_MAJORVERSION" -gt "7" ]; then # double-conversion, perl-IPC-Cmd, perl-Digest-SHA, python 3.9 # An unknown dependency is pulling Python 3.11.5, might as well # have the devel package as well + + # On EL 9 Python 3.9 is the default and perl-FindBin is no longer in + # the perl-interpreter package, but instead in its own. + if [ "$BASEOS_MAJORVERSION" -eq "8" ]; then + PYTHON39_RPM="python39 python39-devel" + else + PERL_FIND_BIN_RPM="perl-FindBin" + fi + dnf -y install \ git \ wayland-devel \ @@ -266,28 +294,21 @@ if [ "$BASEOS_MAJORVERSION" -gt "7" ]; then python3-importlib-metadata \ brotli brotli-devel \ double-conversion double-conversion-devel \ + ${PERL_FIND_BIN_RPM} \ perl-IPC-Cmd \ perl-Digest-SHA \ perl-open \ - python39 \ - python39-devel \ + ${PYTHON39_RPM} \ python3.11 \ python3.11-devel \ python3.11-setuptools dnf -y module install nodejs:18 - # If we really wanted libdb4 / libdb4-devel - # dnf -y install - # https://pkgs.dyn.su/el8/base/x86_64/libdb4-4.8.30-30.el8.x86_64.rpm - # https://pkgs.dyn.su/el8/base/x86_64/libdb4-devel-4.8.30-30.el8.x86_64.rpm - # If we really wanted openjpeg / openjpeg-libs / openjpeg-devel - # dnf -y install - # https://pkgs.dyn.su/el8/base/x86_64/openjpeg-1.5.2-1.el8.x86_64.rpm - # https://pkgs.dyn.su/el8/base/x86_64/openjpeg-libs-1.5.2-1.el8.x86_64.rpm - # https://pkgs.dyn.su/el8/base/x86_64/openjpeg-devel-1.5.2-1.el8.x86_64.rpm - # Make Python 3.11 the default Python - alternatives --set python /usr/bin/python3 - alternatives --set python3 /usr/bin/python3.11 + # Make Python 3.11 the default Python. Can't change default system python on EL 9. + if [ "$BASEOS_MAJORVERSION" -eq "8" ]; then + alternatives --set python /usr/bin/python3 + alternatives --set python3 /usr/bin/python3.11 + fi else yum install -y \ libdb4-devel \ diff --git a/scripts/vfx/build_otio.sh b/scripts/vfx/build_otio.sh index 45cb6884..38a6c647 100755 --- a/scripts/vfx/build_otio.sh +++ b/scripts/vfx/build_otio.sh @@ -4,7 +4,7 @@ set -ex -git clone https://github.com/PixarAnimationStudios/OpenTimelineIO.git +git clone https://github.com/AcademySoftwareFoundation/OpenTimelineIO.git cd OpenTimelineIO if [ "$ASWF_OTIO_VERSION" != "latest" ]; then From 85cb72684242fa7e3d348f869f024eeb34cb25fa Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Sun, 13 Jul 2025 01:01:27 -0700 Subject: [PATCH 02/14] Most packages now build except qt / pyside and dependants Signed-off-by: Jean-Francois Panisset --- .github/workflows/docker-builds.yml | 14 -------- ci-usd/Dockerfile | 20 ++++++------ ci-usd/README.md | 32 +++++++++---------- ci-usd/image.yaml | 6 ++-- ci-vfxall/Dockerfile | 5 +++ ci-vfxall/README.md | 6 ++++ ci-vfxall/image.yaml | 1 + packages/conan/recipes/boost/conanfile.py | 11 +++++-- packages/conan/recipes/cpython/conanfile.py | 5 +++ packages/conan/recipes/oiio/conandata.yml | 4 +-- packages/conan/recipes/openexr/conandata.yml | 3 ++ .../conan/recipes/opensubdiv/conandata.yml | 4 +-- .../conan/recipes/opensubdiv/conanfile.py | 5 ++- .../patches/3.6.1-0001-cmake-no-versions.diff | 22 +++++++++++++ packages/conan/recipes/openvdb/conanfile.py | 2 +- packages/conan/settings/profiles_aswf/vfx2024 | 2 +- packages/conan/settings/profiles_aswf/vfx2025 | 2 +- .../settings/profiles_aswftesting/vfx2024 | 2 +- .../settings/profiles_aswftesting/vfx2025 | 2 +- .../settings/profiles_aswftesting/vfx2026 | 2 +- python/aswfdocker/data/versions.yaml | 9 +++--- 21 files changed, 96 insertions(+), 63 deletions(-) create mode 100644 packages/conan/recipes/opensubdiv/patches/3.6.1-0001-cmake-no-versions.diff diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml index 416c0f0d..913a6912 100644 --- a/.github/workflows/docker-builds.yml +++ b/.github/workflows/docker-builds.yml @@ -292,20 +292,6 @@ jobs: --build-missing \ --push NO - - name: Build vfx1 level 5 non-Conan packages - run: | - set -ex - pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ - --verbose \ - build \ - --ci-image-type PACKAGE \ - --group vfx1 \ - --version ${{ matrix.version_noclang }} \ - --build-missing \ - --push NO - - name: Build vfx2 level 1 Conan packages run: | set -ex diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile index 57b58e89..fc7f0412 100644 --- a/ci-usd/Dockerfile +++ b/ci-usd/Dockerfile @@ -51,14 +51,14 @@ ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION ARG ASWF_LIBUHDR_VERSION +ARG ASWF_OPENSUBDIV_VERSION +ARG ASWF_PARTIO_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION ARG ASWF_ALEMBIC_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OIIO_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PARTIO_VERSION ARG ASWF_MATERIALX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_HDF5_VERSION @@ -118,14 +118,14 @@ ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION ARG ASWF_LIBUHDR_VERSION +ARG ASWF_OPENSUBDIV_VERSION +ARG ASWF_PARTIO_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION ARG ASWF_ALEMBIC_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OIIO_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PARTIO_VERSION ARG ASWF_MATERIALX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_HDF5_VERSION @@ -183,14 +183,14 @@ LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" +LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" +LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" LABEL io.aswf.docker.versions.alembic="$ASWF_ALEMBIC_VERSION" LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" -LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" -LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" LABEL io.aswf.docker.versions.materialx="$ASWF_MATERIALX_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.hdf5="$ASWF_HDF5_VERSION" @@ -244,14 +244,14 @@ ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION +ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION +ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION ENV ASWF_ALEMBIC_VERSION=$ASWF_ALEMBIC_VERSION ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION -ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION -ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION ENV ASWF_MATERIALX_VERSION=$ASWF_MATERIALX_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION @@ -310,14 +310,14 @@ highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} alembic/${ASWF_ALEMBIC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF diff --git a/ci-usd/README.md b/ci-usd/README.md index de4f52fa..a402a4d8 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -33,13 +33,13 @@ Contains: * qt-5.12.6 * pyside-5.12.6 * imath-2.3.0 +* opensubdiv-3_3_3 +* partio-1.10.1 * ptex-2.1.33 * openexr-2.3.0 * alembic-1.7.11 * ocio-1.1.0 * oiio-2.0.8 -* opensubdiv-3_3_3 -* partio-1.10.1 * numpy-1.14 * hdf5-1.8.21 * vfxplatform-2019 @@ -59,13 +59,13 @@ Contains: * qt-5.12.6 * pyside-5.12.6 * imath-2.4.0 +* opensubdiv-3_4_3 +* partio-1.10.1 * ptex-2.3.2 * openexr-2.4.0 * alembic-1.7.12 * ocio-1.1.1 * oiio-2.1.13.0 -* opensubdiv-3_4_3 -* partio-1.10.1 * numpy-1.16 * hdf5-1.8.21 * vfxplatform-2020 @@ -85,13 +85,13 @@ Contains: * qt-5.15.2 * pyside-5.15.2 * imath-2.5.5 +* opensubdiv-3_4_3 +* partio-1.14.0 * ptex-2.3.2 * openexr-2.5.5 * alembic-1.7.16 * ocio-2.0.1 * oiio-2.2.14.0 -* opensubdiv-3_4_3 -* partio-1.14.0 * numpy-1.19 * hdf5-1.8.21 * vfxplatform-2021 @@ -111,13 +111,13 @@ Contains: * qt-5.15.2 * pyside-5.15.2 * imath-3.1.5 +* opensubdiv-3_4_4 +* partio-1.14.0 * ptex-2.4.0 * openexr-3.1.5 * alembic-1.8.2 * ocio-2.1.1 * oiio-2.4.5.0 -* opensubdiv-3_4_4 -* partio-1.14.0 * materialx-1.38.5 * numpy-1.20 * hdf5-1.8.21 @@ -138,13 +138,13 @@ Contains: * qt-5.15.9 * pyside-5.15.9 * imath-3.1.9 +* opensubdiv-3_5_0 +* partio-1.17.1 * ptex-2.4.2 * openexr-3.1.11 * alembic-1.8.5 * ocio-2.2.1 * oiio-2.4.13.0 -* opensubdiv-3_5_0 -* partio-1.17.1 * materialx-1.38.7 * numpy-1.23.5 * hdf5-1.8.23 @@ -185,14 +185,14 @@ Contains: * imath-3.1.12 * lcms-2.17 * libuhdr-1.4.0 +* opensubdiv-3.6.1 +* partio-1.19.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 * alembic-1.8.6 * ocio-2.3.2 * oiio-2.5.19.0 -* opensubdiv-3.6.1 -* partio-1.19.0 * materialx-1.39.2 * numpy-1.24.3 * hdf5-1.8.23 @@ -233,14 +233,14 @@ Contains: * imath-3.1.12 * lcms-2.17 * libuhdr-1.4.0 +* opensubdiv-3.6.1 +* partio-1.19.0 * ptex-2.4.3 * libjxl-0.11.1 * openexr-3.3.4 * alembic-1.8.8 * ocio-2.4.2 * oiio-3.0.8.1 -* opensubdiv-3.6.1 -* partio-1.19.0 * materialx-1.39.3 * numpy-1.26.4 * hdf5-1.8.23 @@ -281,14 +281,14 @@ Contains: * imath-3.1.12 * lcms-2.17 * libuhdr-1.4.0 +* opensubdiv-3.6.1 +* partio-1.19.0 * ptex-2.4.3 * libjxl-0.11.1 * openexr-3.3.4 * alembic-1.8.8 * ocio-2.4.2 * oiio-3.0.8.1 -* opensubdiv-3.6.1 -* partio-1.19.0 * materialx-1.39.3 * numpy-1.26.4 * hdf5-1.8.23 diff --git a/ci-usd/image.yaml b/ci-usd/image.yaml index 00b3710b..3d5c9980 100644 --- a/ci-usd/image.yaml +++ b/ci-usd/image.yaml @@ -41,15 +41,15 @@ packages: - imath - lcms - libuhdr + - opensubdiv + - partio - ptex - libjxl # vfx1-2 packages - openexr - alembic # vfx1-3 packages - ocio - oiio # vfx1-4 packages - - opensubdiv # vfx2-1 packages - - partio - - materialx + - materialx # vfx2-1 packages implicit_packages: - numpy - hdf5 diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index dd352577..6e27ad24 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -56,6 +56,7 @@ ARG ASWF_OPENEXR_VERSION ARG ASWF_ALEMBIC_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION +ARG ASWF_OPENFX_VERSION ARG ASWF_OPENSUBDIV_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_OPENVDB_VERSION @@ -130,6 +131,7 @@ ARG ASWF_OPENEXR_VERSION ARG ASWF_ALEMBIC_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION +ARG ASWF_OPENFX_VERSION ARG ASWF_OPENSUBDIV_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_OPENVDB_VERSION @@ -198,6 +200,7 @@ LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" LABEL io.aswf.docker.versions.alembic="$ASWF_ALEMBIC_VERSION" LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" +LABEL io.aswf.docker.versions.openfx="$ASWF_OPENFX_VERSION" LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" @@ -263,6 +266,7 @@ ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION ENV ASWF_ALEMBIC_VERSION=$ASWF_ALEMBIC_VERSION ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION +ENV ASWF_OPENFX_VERSION=$ASWF_OPENFX_VERSION ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION @@ -336,6 +340,7 @@ openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} alembic/${ASWF_ALEMBIC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openfx/${ASWF_OPENFX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 03bfff55..93c0711a 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -442,6 +442,7 @@ Contains: * alembic-1.8.6 * oiio-2.5.19.0 * ocio-2.3.2 +* openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.2 * openvdb-11.0.0 @@ -495,6 +496,7 @@ Contains: * alembic-1.8.6 * oiio-2.5.19.0 * ocio-2.3.2 +* openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.2 * openvdb-11.0.0 @@ -548,6 +550,7 @@ Contains: * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 +* openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.0 @@ -601,6 +604,7 @@ Contains: * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 +* openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.0 @@ -654,6 +658,7 @@ Contains: * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 +* openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.1 @@ -707,6 +712,7 @@ Contains: * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 +* openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.1 diff --git a/ci-vfxall/image.yaml b/ci-vfxall/image.yaml index e0f020cf..152c9518 100644 --- a/ci-vfxall/image.yaml +++ b/ci-vfxall/image.yaml @@ -45,6 +45,7 @@ packages: - alembic - oiio - ocio + - openfx - opensubdiv - ptex - openvdb diff --git a/packages/conan/recipes/boost/conanfile.py b/packages/conan/recipes/boost/conanfile.py index fd76f0f0..abb8d225 100644 --- a/packages/conan/recipes/boost/conanfile.py +++ b/packages/conan/recipes/boost/conanfile.py @@ -901,7 +901,7 @@ def _run_python_script(self, script): command = f'"{self._python_executable}" -c "{script}"' self.output.info(f"running {command}") try: - self.run(command, output, scope="run") + self.run(command, output, env="conanrun") # ASWF: use conanrun environment to find libpython except ConanException: self.output.info("(failed)") return None @@ -1780,6 +1780,10 @@ def _option_to_conan_requirement(name): }.get(name, name) def package_info(self): + # ASWF: consumers need to set LD_LIBRARY_PATH to find DSOs + if self.options.get_safe("shared"): + self.runenv_info.append_path("LD_LIBRARY_PATH", self.package_folder + "/lib64") + self.env_info.BOOST_ROOT = self.package_folder self.cpp_info.set_property("cmake_file_name", "Boost") @@ -2099,7 +2103,10 @@ def filter_transform_module_libraries(names): self.cpp_info.components["stacktrace"].defines.append("BOOST_STACKTRACE_GNU_SOURCE_NOT_REQUIRED") if not self.options.without_python: - pyversion = Version(self._python_version) + # ASWF: a consumer of this package can call package_info() before generate(), + # we already figured out the python version with _detect_python_version() + # pyversion = Version(self._python_version) + pyversion = Version(self.options.python_version) # ASWF: Python package is called cpython self.cpp_info.components[f"python{pyversion.major}{pyversion.minor}"].requires = ["cpython::cpython"] if not self._shared: diff --git a/packages/conan/recipes/cpython/conanfile.py b/packages/conan/recipes/cpython/conanfile.py index 2d8c8517..481a0f1a 100644 --- a/packages/conan/recipes/cpython/conanfile.py +++ b/packages/conan/recipes/cpython/conanfile.py @@ -956,6 +956,11 @@ def package_info(self): bindir = os.path.join(self.package_folder, "bin") self.runenv_info.append_path("PATH", bindir) self.buildenv_info.append_path("PATH", bindir) + # ASWF: find libpython + libdir = os.path.join(self.package_folder, "lib64") + self.output.info(f"Appending LD_LIBRARY_PATH environment variable: {libdir}") + self.runenv_info.append_path("LD_LIBRARY_PATH", libdir) + self.buildenv_info.append_path("LD_LIBRARY_PATH", libdir) # TODO remove once Conan 1.x is no longer supported self.output.info(f"Appending PATH environment variable: {bindir}") diff --git a/packages/conan/recipes/oiio/conandata.yml b/packages/conan/recipes/oiio/conandata.yml index 1104a301..2216ef8d 100644 --- a/packages/conan/recipes/oiio/conandata.yml +++ b/packages/conan/recipes/oiio/conandata.yml @@ -107,9 +107,9 @@ patches: patch_description: "Missing includes when Imath from Conan package" patch_type: "conan" "3.0.8.1": - - patch_file: "patches/3.0.8.1-cmake-fmt.patch" + - patch_file: "patches/3.0.6.1-cmake-fmt.patch" patch_description: "Deal with generator expression from fmt Conan package" patch_type: "conan" - - patch_file: "patches/3.0.8.1-imath-includes.txt" + - patch_file: "patches/3.0.6.1-imath-includes.txt" patch_description: "Missing includes when Imath from Conan package" patch_type: "conan" diff --git a/packages/conan/recipes/openexr/conandata.yml b/packages/conan/recipes/openexr/conandata.yml index 58366fa1..b848b01d 100644 --- a/packages/conan/recipes/openexr/conandata.yml +++ b/packages/conan/recipes/openexr/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/cceee569179c10fa56d1fd9c3582f3371944ba59/recipes/openexr/3.x/conandata.yml sources: + "3.3.4": + url: "https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.3.4/openexr-3.3.4.tar.gz" + sha256: "73a6d83edcc68333afb95e133f6e12012073815a854bc41abc1a01c1db5f124c" "3.3.3": url: "https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.3.3/openexr-3.3.3.tar.gz" sha256: "d819b9f76cbe63cc6b7476267659900f00aab79b636a83f0ecac2be669ca97b5" diff --git a/packages/conan/recipes/opensubdiv/conandata.yml b/packages/conan/recipes/opensubdiv/conandata.yml index 57d10790..519bc463 100644 --- a/packages/conan/recipes/opensubdiv/conandata.yml +++ b/packages/conan/recipes/opensubdiv/conandata.yml @@ -19,10 +19,10 @@ sources: sha256: "20d49f80a2b778ad4d01f091ad88d8c2f91cf6c7363940c6213241ce6f1048fb" patches: "3.6.1": - - patch_file: "patches/3.6.0-0001-cmake-no-rpath.patch" + - patch_file: "patches/3.6.0-0002-cmake-no-rpath.patch" patch_description: "CMake: do not populate rpath with absolute paths" patch_type: "conan" - - patch_file: "patches/cmake-no-versions.diff" + - patch_file: "patches/3.6.1-0001-cmake-no-versions.diff" patch_description: "Override TBB and Ptex version requirements" - patch_file: "patches/cmake-ptex-lib64.diff" patch_description: "Find Ptex DSO in lib64" diff --git a/packages/conan/recipes/opensubdiv/conanfile.py b/packages/conan/recipes/opensubdiv/conanfile.py index 938099bd..3bbf492e 100644 --- a/packages/conan/recipes/opensubdiv/conanfile.py +++ b/packages/conan/recipes/opensubdiv/conanfile.py @@ -94,11 +94,10 @@ def requirements(self): if Version(self.version) < "3.6.0": self.requires("onetbb/2020.3.3", transitive_headers=True) else: - self.requires("onetbb/2021.12.0", transitive_headers=True) + self.requires("onetbb/2021.12.0", transitive_headers=True, transitive_libs=True) if self.options.with_opengl: self.requires("opengl/system") self.requires("glfw/3.4") - self.requires(f"glew/{os.environ['ASWF_GLEW_VERSION']}@{self.user}/{self.channel}") if self.options.get_safe("with_metal"): self.requires("metal-cpp/14.2") @@ -171,7 +170,7 @@ def build(self): # ASWF: https://github.com/PixarAnimationStudios/OpenSubdiv/issues/1313 # CUDA build fails with high parallelism, limit to 16 threads # seems to help - cmake.build(cli_args=["--parallel","4"]) + cmake.build(cli_args=["--parallel","1"]) def package(self): # ASWF: license files in package subdir diff --git a/packages/conan/recipes/opensubdiv/patches/3.6.1-0001-cmake-no-versions.diff b/packages/conan/recipes/opensubdiv/patches/3.6.1-0001-cmake-no-versions.diff new file mode 100644 index 00000000..406aeea5 --- /dev/null +++ b/packages/conan/recipes/opensubdiv/patches/3.6.1-0001-cmake-no-versions.diff @@ -0,0 +1,22 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8620cf3d..a6832314 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -366,7 +366,7 @@ if(NOT NO_OMP) + find_package(OpenMP) + endif() + if(NOT NO_TBB) +- find_package(TBB 2018 COMPONENTS tbb) ++ find_package(TBB COMPONENTS tbb) + endif() + if (NOT NO_OPENGL) + find_package(OpenGL) +@@ -389,7 +389,7 @@ if(NOT NO_GLFW AND NOT NO_OPENGL AND NOT ANDROID AND NOT IOS) + find_package(GLFW 3.0.0) + endif() + if(NOT NO_PTEX) +- find_package(PTex 2.0) ++ find_package(PTex) + find_package(ZLIB 1.2) + endif() + if(APPLE AND NOT NO_METAL) diff --git a/packages/conan/recipes/openvdb/conanfile.py b/packages/conan/recipes/openvdb/conanfile.py index f81d8121..fdb8a20a 100644 --- a/packages/conan/recipes/openvdb/conanfile.py +++ b/packages/conan/recipes/openvdb/conanfile.py @@ -51,7 +51,7 @@ class OpenVDBConan(ConanFile): default_options = { "shared": False, "fPIC": True, - "build_ax": False, + "build_ax": False, # ASWF: enable AX for OpenVDB "simd": None, "use_colored_output": False, "use_delayed_loading": False, diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 49053356..51982bac 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -46,7 +46,7 @@ libxshmfence/*: libxshmfence/system@aswf/vfx2024 log4cplus/*: log4cplus/2.1.2@aswf/vfx2024 lz4/*: lz4/1.10.0@aswf/vfx2024 md4c/*: md4c/0.4.8@aswf/vfx2024 -minizip-ng/*: minizip/4.0.8@aswf/vfx2024 +minizip-ng/*: minizip/4.0.10@aswf/vfx2024 mpdecimal/*: mpdecimal/system@aswf/vfx2024 mpg123/*: mpg123/system@aswf/vfx2024 nspr/*: nspr/system@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 81b4565c..14c3bb08 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -46,7 +46,7 @@ libxshmfence/*: libxshmfence/system@aswf/vfx2025 log4cplus/*: log4cplus/2.1.2@aswf/vfx2025 lz4/*: lz4/1.10.0@aswf/vfx2025 md4c/*: md4c/0.4.8@aswf/vfx2025 -minizip-ng/*: minizip-ng/4.0.8@aswf/vfx2025 +minizip-ng/*: minizip-ng/4.0.10@aswf/vfx2025 mpdecimal/*: mpdecimal/system@aswf/vfx2025 mpg123/*: mpg123/system@aswf/vfx2025 nspr/*: nspr/system@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 951f9282..dba8ca3e 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -46,7 +46,7 @@ libxshmfence/*: libxshmfence/system@aswftesting/vfx2024 log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2024 lz4/*: lz4/1.10.0@aswftesting/vfx2024 md4c/*: md4c/0.4.8@aswftesting/vfx2024 -minizip-ng/*: minizip/4.0.8@aswftesting/vfx2024 +minizip-ng/*: minizip/4.0.10@aswftesting/vfx2024 mpdecimal/*: mpdecimal/system@aswftesting/vfx2024 mpg123/*: mpg123/system@aswftesting/vfx2024 nspr/*: nspr/system@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 018fdef4..df7bc9ba 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -46,7 +46,7 @@ libxshmfence/*: libxshmfence/system@aswftesting/vfx2025 log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2025 lz4/*: lz4/1.10.0@aswftesting/vfx2025 md4c/*: md4c/0.4.8@aswftesting/vfx2025 -minizip-ng/*: minizip-ng/4.0.8@aswftesting/vfx2025 +minizip-ng/*: minizip-ng/4.0.10@aswftesting/vfx2025 mpdecimal/*: mpdecimal/system@aswftesting/vfx2025 mpg123/*: mpg123/system@aswftesting/vfx2025 nspr/*: nspr/system@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 031118e4..8327c079 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -46,7 +46,7 @@ libxshmfence/*: libxshmfence/system@aswftesting/vfx2026 log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2026 lz4/*: lz4/1.10.0@aswftesting/vfx2026 md4c/*: md4c/0.5.2@aswftesting/vfx2026 -minizip-ng/*: minizip-ng/4.0.10aswftesting/vfx2026 +minizip-ng/*: minizip-ng/4.0.10@aswftesting/vfx2026 mpdecimal/*: mpdecimal/system@aswftesting/vfx2026 mpg123/*: mpg123/system@aswftesting/vfx2026 nspr/*: nspr/system@aswftesting/vfx2026 diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 4a5e71ef..15879554 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -1676,21 +1676,20 @@ groups: - imath - lcms - libuhdr + - openfx + - opensubdiv + - partio - ptex vfx1-2: - libjxl - openexr - - openfx vfx1-3: - alembic - ocio + - openvdb vfx1-4: - oiio - vfx1: - - openvdb vfx2-1: - - opensubdiv - - partio - materialx vfx2: - osl From fe2cdd3fc44c80b3d9f78c93fe35812a8d025ae5 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Mon, 14 Jul 2025 22:10:35 -0700 Subject: [PATCH 03/14] Progress on Qt 6.8.3 More of Qt 6.8.3 builds: - workaround for missing Ninja dependencies, - build with g++20 to allow for 128 bit ints All dependencies for rawtoaces now included: - libraw - eigen - ceres-solver - nlohmann_json - jasper Next step is actual rawtoaces Conan package Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 9 +- ci-common/README.md | 12 +- ci-oiio/Dockerfile | 10 + ci-oiio/README.md | 6 + ci-oiio/image.yaml | 2 + ci-rawtoaces/Dockerfile | 157 +++++++++++ ci-rawtoaces/README.md | 68 +++++ ci-rawtoaces/image.yaml | 23 ++ ci-vfxall/Dockerfile | 10 + ci-vfxall/README.md | 12 + ci-vfxall/image.yaml | 2 + packages/conan/recipes/boost/conandata.yml | 16 +- .../conan/recipes/ceres-solver/conandata.yml | 49 ++++ .../conan/recipes/ceres-solver/conanfile.py | 248 ++++++++++++++++++ .../1.14.0-0001-find-libraries-conan.patch | 148 +++++++++++ .../patches/1.14.0-0002-fix-msvc-c++17.patch | 36 +++ .../2.0.0-0001-find-libraries-conan.patch | 82 ++++++ .../patches/2.0.0-0002-fix-mingw-build.patch | 12 + .../2.1.0-0001-find-libraries-conan.patch | 54 ++++ .../patches/2.1.0-0002-fix-mingw-build.patch | 12 + .../2.2.0-0001-find-libraries-conan.patch | 54 ++++ .../patches/2.2.0-0002-fix-mingw-build.patch | 12 + .../ceres-solver/test_package/CMakeLists.txt | 13 + .../ceres-solver/test_package/conanfile.py | 32 +++ .../ceres-solver/test_package/test_package.c | 196 ++++++++++++++ packages/conan/recipes/eigen/conandata.yml | 38 +++ packages/conan/recipes/eigen/conanfile.py | 88 +++++++ ...assert-exception-upstream-issue-2011.patch | 46 ++++ .../patches/0002-cmake-minimum-required.patch | 10 + .../patches/3.4.0-0001-vec-reduce-half.patch | 48 ++++ .../recipes/eigen/test_package/CMakeLists.txt | 13 + .../recipes/eigen/test_package/conanfile.py | 31 +++ .../eigen/test_package/test_package.cpp | 24 ++ packages/conan/recipes/jasper/conandata.yml | 51 ++++ packages/conan/recipes/jasper/conanfile.py | 151 +++++++++++ .../patches/4.0.0-0001-skip-rpath.patch | 22 ++ .../4.0.0-0003-deterministic-libname.patch | 11 + .../patches/4.1.1-0001-skip-rpath.patch | 31 +++ .../4.1.1-0003-deterministic-libname.patch | 13 + .../4.2.0-0003-deterministic-libname.patch | 13 + .../jasper/test_package/CMakeLists.txt | 27 ++ .../recipes/jasper/test_package/conanfile.py | 33 +++ .../jasper/test_package/test_package.c | 51 ++++ packages/conan/recipes/libraw/CMakeLists.txt | 83 ++++++ packages/conan/recipes/libraw/conandata.yml | 19 ++ packages/conan/recipes/libraw/conanfile.py | 144 ++++++++++ .../libraw/test_package/CMakeLists.txt | 14 + .../recipes/libraw/test_package/conanfile.py | 32 +++ .../libraw/test_package/test_package.cpp | 16 ++ packages/conan/recipes/ninja/conandata.yml | 42 +-- packages/conan/recipes/ninja/conanfile.py | 50 ++-- .../conan/recipes/nlohmann_json/conandata.yml | 64 +++++ .../conan/recipes/nlohmann_json/conanfile.py | 60 +++++ .../nlohmann_json/test_package/CMakeLists.txt | 14 + .../nlohmann_json/test_package/conanfile.py | 32 +++ .../test_package/test_package.cpp | 38 +++ packages/conan/recipes/oiio/conanfile.py | 2 +- packages/conan/recipes/qt/conandata.yml | 12 +- packages/conan/recipes/qt/conanfile.py | 145 ++++------ .../qt/patches/CVE-2025-3512-qtbase-6.8.diff | 26 +- .../CVE-2025-5683-qtimageformats-6.8.patch | 4 +- .../recipes/qt/patches/c72097e_6.8.3.diff | 42 +++ .../recipes/qt/patches/ee87cbe_6.8.3.diff | 37 +++ packages/conan/recipes/qt/qtmodules6.8.3.conf | 10 +- packages/conan/settings/profiles_aswf/vfx2024 | 7 +- packages/conan/settings/profiles_aswf/vfx2025 | 7 +- packages/conan/settings/profiles_aswf/vfx2026 | 10 +- .../settings/profiles_aswftesting/vfx2024 | 7 +- .../settings/profiles_aswftesting/vfx2025 | 7 +- .../settings/profiles_aswftesting/vfx2026 | 10 +- python/aswfdocker/data/versions.yaml | 66 ++++- 71 files changed, 2796 insertions(+), 180 deletions(-) create mode 100644 ci-rawtoaces/Dockerfile create mode 100644 ci-rawtoaces/README.md create mode 100644 ci-rawtoaces/image.yaml create mode 100644 packages/conan/recipes/ceres-solver/conandata.yml create mode 100644 packages/conan/recipes/ceres-solver/conanfile.py create mode 100644 packages/conan/recipes/ceres-solver/patches/1.14.0-0001-find-libraries-conan.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/1.14.0-0002-fix-msvc-c++17.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/2.0.0-0001-find-libraries-conan.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/2.0.0-0002-fix-mingw-build.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/2.1.0-0001-find-libraries-conan.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/2.1.0-0002-fix-mingw-build.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/2.2.0-0001-find-libraries-conan.patch create mode 100644 packages/conan/recipes/ceres-solver/patches/2.2.0-0002-fix-mingw-build.patch create mode 100644 packages/conan/recipes/ceres-solver/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/ceres-solver/test_package/conanfile.py create mode 100644 packages/conan/recipes/ceres-solver/test_package/test_package.c create mode 100644 packages/conan/recipes/eigen/conandata.yml create mode 100644 packages/conan/recipes/eigen/conanfile.py create mode 100644 packages/conan/recipes/eigen/patches/0001-assert-exception-upstream-issue-2011.patch create mode 100644 packages/conan/recipes/eigen/patches/0002-cmake-minimum-required.patch create mode 100644 packages/conan/recipes/eigen/patches/3.4.0-0001-vec-reduce-half.patch create mode 100644 packages/conan/recipes/eigen/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/eigen/test_package/conanfile.py create mode 100644 packages/conan/recipes/eigen/test_package/test_package.cpp create mode 100644 packages/conan/recipes/jasper/conandata.yml create mode 100644 packages/conan/recipes/jasper/conanfile.py create mode 100644 packages/conan/recipes/jasper/patches/4.0.0-0001-skip-rpath.patch create mode 100644 packages/conan/recipes/jasper/patches/4.0.0-0003-deterministic-libname.patch create mode 100644 packages/conan/recipes/jasper/patches/4.1.1-0001-skip-rpath.patch create mode 100644 packages/conan/recipes/jasper/patches/4.1.1-0003-deterministic-libname.patch create mode 100644 packages/conan/recipes/jasper/patches/4.2.0-0003-deterministic-libname.patch create mode 100644 packages/conan/recipes/jasper/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/jasper/test_package/conanfile.py create mode 100644 packages/conan/recipes/jasper/test_package/test_package.c create mode 100644 packages/conan/recipes/libraw/CMakeLists.txt create mode 100644 packages/conan/recipes/libraw/conandata.yml create mode 100644 packages/conan/recipes/libraw/conanfile.py create mode 100644 packages/conan/recipes/libraw/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/libraw/test_package/conanfile.py create mode 100644 packages/conan/recipes/libraw/test_package/test_package.cpp create mode 100644 packages/conan/recipes/nlohmann_json/conandata.yml create mode 100644 packages/conan/recipes/nlohmann_json/conanfile.py create mode 100644 packages/conan/recipes/nlohmann_json/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/nlohmann_json/test_package/conanfile.py create mode 100644 packages/conan/recipes/nlohmann_json/test_package/test_package.cpp create mode 100644 packages/conan/recipes/qt/patches/c72097e_6.8.3.diff create mode 100644 packages/conan/recipes/qt/patches/ee87cbe_6.8.3.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index 07845596..237f0670 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -11,6 +11,7 @@ All notable changes to this project will be documented in this file. - CUDA 12.6.3 (was 12.6.1) - ccache 4.9.1 (was 4.8.3) - CMake 3.31.7 (was 3.27.9) + - Ninja 1.13.1 (was 1.12.1) - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) - Blosc 1.21.6 (was 1.21.5) - GLEW 2.2.0 (was 2.1.0) @@ -28,6 +29,7 @@ All notable changes to this project will be documented in this file. - 2025.2 - updated versions - Conan 2.16.1 (was 2.14.0) + - Ninja 1.13.1 (was 1.12.1) - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) - LLVM 19.1.7 (was 19.1.1) - lcmd 2.17 (was 2.16) @@ -41,9 +43,12 @@ All notable changes to this project will be documented in this file. - OSL 1.14.6.0 (was 1.14.5.1) - 2026.0 - pre-release for testing purposes, does not yet include late releasing ASWF packages in final 2026 release (OOCIO, OpenEXR, OpenVDB) - - see `ci_common6` and `2026` sections of versions.yaml for full list of package versions -- new build images for OpenFX + - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions +- new Conan package and build images for OpenFX +- new Conan package and build images for rawtoaces + - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen - OpenVDB now built as a Conan package +- OpenImageIO builds with libraw support, Python bindings - system wrapper Conan packages - improved wrapper packages no longer declare include directories and libraries they don't include - query container OS for installed system package version instead of hard coding (pkgconfig / rpm) diff --git a/ci-common/README.md b/ci-common/README.md index 123c2c2e..67f9a94b 100644 --- a/ci-common/README.md +++ b/ci-common/README.md @@ -166,7 +166,7 @@ Contains: Contains: * clang-16.0.6 * cmake-3.31.7 -* ninja-1.12.1 +* ninja-1.13.1 * cuda-12.6.3 * glvnd-1.7.0 * ccache-4.9.1 @@ -180,7 +180,7 @@ Contains: Contains: * clang-17.0.6 * cmake-3.31.7 -* ninja-1.12.1 +* ninja-1.13.1 * cuda-12.6.3 * glvnd-1.7.0 * ccache-4.9.1 @@ -194,7 +194,7 @@ Contains: Contains: * clang-18.1.8 * cmake-3.31.7 -* ninja-1.12.1 +* ninja-1.13.1 * cuda-12.6.3 * glvnd-1.7.0 * ccache-4.9.1 @@ -208,7 +208,7 @@ Contains: Contains: * clang-19.1.7 * cmake-3.31.7 -* ninja-1.12.1 +* ninja-1.13.1 * cuda-12.6.3 * glvnd-1.7.0 * ccache-4.9.1 @@ -222,7 +222,7 @@ Contains: Contains: * clang-19.1.7 * cmake-4.0.2 -* ninja-1.12.1 +* ninja-1.13.1 * cuda-12.9.1 * glvnd-1.7.0 * ccache-4.11.3 @@ -236,7 +236,7 @@ Contains: Contains: * clang-20.1.7 * cmake-4.0.2 -* ninja-1.12.1 +* ninja-1.13.1 * cuda-12.9.1 * glvnd-1.7.0 * ccache-4.11.3 diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 80a8d39e..2eee51f5 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -49,10 +49,12 @@ ARG ASWF_MD4C_VERSION ARG ASWF_QT_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION +ARG ASWF_JASPER_VERSION ARG ASWF_LCMS_VERSION ARG ASWF_LIBUHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION +ARG ASWF_LIBRAW_VERSION ARG ASWF_OPENEXR_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OPENVDB_VERSION @@ -111,10 +113,12 @@ ARG ASWF_MD4C_VERSION ARG ASWF_QT_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION +ARG ASWF_JASPER_VERSION ARG ASWF_LCMS_VERSION ARG ASWF_LIBUHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION +ARG ASWF_LIBRAW_VERSION ARG ASWF_OPENEXR_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OPENVDB_VERSION @@ -171,10 +175,12 @@ LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" +LABEL io.aswf.docker.versions.jasper="$ASWF_JASPER_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" +LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" @@ -227,10 +233,12 @@ ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION ENV ASWF_QT_VERSION=$ASWF_QT_VERSION ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION +ENV ASWF_JASPER_VERSION=$ASWF_JASPER_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION +ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION @@ -288,10 +296,12 @@ md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +jasper/${ASWF_JASPER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-oiio/README.md b/ci-oiio/README.md index f50e2972..0206d50d 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -51,10 +51,12 @@ Contains: * qt-6.5.6 * highway-1.2.0 * imath-3.1.12 +* jasper-4.2.5 * lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 +* libraw-0.21.4 * openexr-3.2.4 * ocio-2.3.2 * openvdb-11.0.0 @@ -94,10 +96,12 @@ Contains: * qt-6.5.6 * highway-1.2.0 * imath-3.1.12 +* jasper-4.2.5 * lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 +* libraw-0.21.4 * openexr-3.3.4 * ocio-2.4.2 * openvdb-12.0.0 @@ -137,10 +141,12 @@ Contains: * qt-6.8.3 * highway-1.2.0 * imath-3.1.12 +* jasper-4.2.5 * lcms-2.17 * libuhdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 +* libraw-0.21.4 * openexr-3.3.4 * ocio-2.4.2 * openvdb-12.0.1 diff --git a/ci-oiio/image.yaml b/ci-oiio/image.yaml index d5ce2166..eb75ca4a 100644 --- a/ci-oiio/image.yaml +++ b/ci-oiio/image.yaml @@ -39,10 +39,12 @@ packages: - qt # base2-2 packages - highway # vfx1-1 packages - imath + - jasper - lcms - libuhdr - ptex - libjxl # vfx1-2 packages + - libraw - openexr - ocio # vfx1-3 packages - openvdb # vfx1 non Conan packages diff --git a/ci-rawtoaces/Dockerfile b/ci-rawtoaces/Dockerfile new file mode 100644 index 00000000..3c2bc391 --- /dev/null +++ b/ci-rawtoaces/Dockerfile @@ -0,0 +1,157 @@ +# syntax=docker/dockerfile:1.10 +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +# !!! This file is automatically generated from a template and the `image.yaml` file in the same folder !!! + +ARG ASWF_ORG +ARG ASWF_PKG_ORG +ARG CI_COMMON_VERSION +ARG ASWF_CLANG_MAJOR_VERSION +ARG ASWF_PYSIDE_CLANG_VERSION +ARG ASWF_CONAN_CHANNEL + +ARG ASWF_VFXPLATFORM_VERSION + + +ARG ASWF_BOOST_VERSION +ARG ASWF_CERES_SOLVER_VERSION +ARG ASWF_IMATH_VERSION +ARG ASWF_LIBRAW_VERSION +ARG ASWF_OIIO_VERSION +ARG ASWF_EIGEN_VERSION +ARG ASWF_JASPER_VERSION +ARG ASWF_LIBJPEG_TURBO_VERSION +ARG ASWF_LIBPNG_VERSION +ARG ASWF_LIBTIFF_VERSION +ARG ASWF_LIBWEBP_VERSION +ARG ASWF_NLOHMANN_JSON_VERSION +ARG ASWF_NUMPY_VERSION +ARG ASWF_VFXPLATFORM_VERSION + + + + +# Comment out this block to use Conan packages +FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-rawtoaces + + +ARG ASWF_ORG +ARG ASWF_CONAN_HOME +ARG ASWF_PKG_ORG +ARG ASWF_VERSION +ARG CI_COMMON_VERSION +ARG ASWF_PYSIDE_CLANG_VERSION +ARG ASWF_CONAN_CHANNEL + + + +ARG ASWF_BOOST_VERSION +ARG ASWF_CERES_SOLVER_VERSION +ARG ASWF_IMATH_VERSION +ARG ASWF_LIBRAW_VERSION +ARG ASWF_OIIO_VERSION +ARG ASWF_EIGEN_VERSION +ARG ASWF_JASPER_VERSION +ARG ASWF_LIBJPEG_TURBO_VERSION +ARG ASWF_LIBPNG_VERSION +ARG ASWF_LIBTIFF_VERSION +ARG ASWF_LIBWEBP_VERSION +ARG ASWF_NLOHMANN_JSON_VERSION +ARG ASWF_NUMPY_VERSION +ARG ASWF_VFXPLATFORM_VERSION + + +LABEL org.opencontainers.image.name="$ASWF_ORG/ci-rawtoaces" +LABEL org.opencontainers.image.title="rawtoaces CI Docker Image" +LABEL org.opencontainers.image.description="Contains: Python and other rawtoaces upstream dependencies\ +Warning: this image does *not* contain rawtoaces itself as it is used to *build* rawtoaces!" +LABEL org.opencontainers.image.url="http://aswf.io/" +LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-rawtoaces/Dockerfile" +LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" +LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group" +LABEL org.opencontainers.image.version="${ASWF_VERSION}" + + +LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" + + +LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" +LABEL io.aswf.docker.versions.ceres-solver="$ASWF_CERES_SOLVER_VERSION" +LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" +LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" +LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" +LABEL io.aswf.docker.versions.eigen="$ASWF_EIGEN_VERSION" +LABEL io.aswf.docker.versions.jasper="$ASWF_JASPER_VERSION" +LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" +LABEL io.aswf.docker.versions.libpng="$ASWF_LIBPNG_VERSION" +LABEL io.aswf.docker.versions.libtiff="$ASWF_LIBTIFF_VERSION" +LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" +LABEL io.aswf.docker.versions.nlohmann_json="$ASWF_NLOHMANN_JSON_VERSION" +LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" +LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" + + +ENV ASWF_ORG=${ASWF_ORG} +ENV ASWF_VERSION=${ASWF_VERSION} +ENV ASWF_INSTALL_PREFIX=/usr/local +ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + + + +ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} + + +ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION +ENV ASWF_CERES_SOLVER_VERSION=$ASWF_CERES_SOLVER_VERSION +ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION +ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION +ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION +ENV ASWF_EIGEN_VERSION=$ASWF_EIGEN_VERSION +ENV ASWF_JASPER_VERSION=$ASWF_JASPER_VERSION +ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION +ENV ASWF_LIBPNG_VERSION=$ASWF_LIBPNG_VERSION +ENV ASWF_LIBTIFF_VERSION=$ASWF_LIBTIFF_VERSION +ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION +ENV ASWF_NLOHMANN_JSON_VERSION=$ASWF_NLOHMANN_JSON_VERSION +ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION +ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION + + +COPY ci-rawtoaces/README.md ci-rawtoaces/image.yaml /usr/local/aswf/ + + + +COPY scripts/common/install_conanpackages.sh /tmp/ + +ARG ASWF_PYTHON_MAJOR_MINOR_VERSION +ENV ASWF_PYTHON_MAJOR_MINOR_VERSION=${ASWF_PYTHON_MAJOR_MINOR_VERSION} + +# conan-only packages +COPY < . +[requires] +boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +ceres-solver/${ASWF_CERES_SOLVER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +eigen/${ASWF_EIGEN_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +jasper/${ASWF_JASPER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libpng/${ASWF_LIBPNG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libtiff/${ASWF_LIBTIFF_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +nlohmann_json/${ASWF_NLOHMANN_JSON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +EOF + +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 + + +RUN --mount=type=cache,target=/opt/conan_home/d \ + --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + + diff --git a/ci-rawtoaces/README.md b/ci-rawtoaces/README.md new file mode 100644 index 00000000..7197a521 --- /dev/null +++ b/ci-rawtoaces/README.md @@ -0,0 +1,68 @@ + + +# Academy Software Foundation Docker Image + +See [aswf.io](https://aswf.io) and [aswf-docker](https://github.com/AcademySoftwareFoundation/aswf-docker) +for further information, and participate in the discussion on the +[ASWF Slack #wg-ci channel](https://academysoftwarefdn.slack.com/archives/C0169RX7MMK). + +## rawtoaces CI Docker Image + +Contains: Python and other rawtoaces upstream dependencies +Warning: this image does *not* contain rawtoaces itself as it is used to *build* rawtoaces! + +[Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-rawtoaces/Dockerfile) + +## [aswf/ci-rawtoaces:2024.3](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2024.3) + +Contains: +* boost-1.82.0 +* imath-3.1.12 +* libraw-0.21.4 +* oiio-2.5.19.0 +* eigen-3.4.0 +* jasper-4.2.5 +* libpng-1.6.34 +* libtiff-4.0.9 +* libwebp-1.5.0 +* nlohmann_json-3.12.0 +* numpy-1.24.3 +* vfxplatform-2024 + +## [aswf/ci-rawtoaces:2025.2](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2025.2) + +Contains: +* boost-1.85.0 +* imath-3.1.12 +* libraw-0.21.4 +* oiio-3.0.8.1 +* eigen-3.4.0 +* jasper-4.2.5 +* libpng-1.6.34 +* libtiff-4.0.9 +* libwebp-1.5.0 +* nlohmann_json-3.12.0 +* numpy-1.26.4 +* vfxplatform-2025 + +## [aswf/ci-rawtoaces:2026.0](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2026.0) + +Contains: +* boost-1.88.0 +* imath-3.1.12 +* libraw-0.21.4 +* oiio-3.0.8.1 +* eigen-3.4.0 +* jasper-4.2.5 +* libpng-1.6.37 +* libtiff-4.4.0 +* libwebp-1.5.0 +* nlohmann_json-3.12.0 +* numpy-1.26.4 +* vfxplatform-2026 + diff --git a/ci-rawtoaces/image.yaml b/ci-rawtoaces/image.yaml new file mode 100644 index 00000000..5bca3f50 --- /dev/null +++ b/ci-rawtoaces/image.yaml @@ -0,0 +1,23 @@ +name: "rawtoaces" +title: "rawtoaces CI Docker Image" +description: | + Contains: Python and other rawtoaces upstream dependencies + Warning: this image does *not* contain rawtoaces itself as it is used to *build* rawtoaces! +packages: + - boost + - ceres-solver + - imath + - libraw + - oiio + - eigen + - jasper + - libjpeg-turbo + - libpng + - libtiff + - libwebp + - nlohmann_json +implicit_packages: + - numpy + - vfxplatform +docker_from: ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} +docker_package_version: $ASWF_VFXPLATFORM_VERSION diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index 6e27ad24..228aa0ec 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -38,6 +38,8 @@ ARG ASWF_GLIB_VERSION ARG ASWF_LIBALSA_VERSION ARG ASWF_LIBDRM_VERSION ARG ASWF_LIBJPEG_TURBO_VERSION +ARG ASWF_LIBJXL_VERSION +ARG ASWF_LIBRAW_VERSION ARG ASWF_LIBSNDFILE_VERSION ARG ASWF_LIBTIFF_VERSION ARG ASWF_LIBWEBP_VERSION @@ -113,6 +115,8 @@ ARG ASWF_GLIB_VERSION ARG ASWF_LIBALSA_VERSION ARG ASWF_LIBDRM_VERSION ARG ASWF_LIBJPEG_TURBO_VERSION +ARG ASWF_LIBJXL_VERSION +ARG ASWF_LIBRAW_VERSION ARG ASWF_LIBSNDFILE_VERSION ARG ASWF_LIBTIFF_VERSION ARG ASWF_LIBWEBP_VERSION @@ -182,6 +186,8 @@ LABEL io.aswf.docker.versions.glib="$ASWF_GLIB_VERSION" LABEL io.aswf.docker.versions.libalsa="$ASWF_LIBALSA_VERSION" LABEL io.aswf.docker.versions.libdrm="$ASWF_LIBDRM_VERSION" LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" +LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" +LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" LABEL io.aswf.docker.versions.libsndfile="$ASWF_LIBSNDFILE_VERSION" LABEL io.aswf.docker.versions.libtiff="$ASWF_LIBTIFF_VERSION" LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" @@ -248,6 +254,8 @@ ENV ASWF_GLIB_VERSION=$ASWF_GLIB_VERSION ENV ASWF_LIBALSA_VERSION=$ASWF_LIBALSA_VERSION ENV ASWF_LIBDRM_VERSION=$ASWF_LIBDRM_VERSION ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION +ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION +ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION ENV ASWF_LIBSNDFILE_VERSION=$ASWF_LIBSNDFILE_VERSION ENV ASWF_LIBTIFF_VERSION=$ASWF_LIBTIFF_VERSION ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION @@ -322,6 +330,8 @@ glib/${ASWF_GLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libalsa/${ASWF_LIBALSA_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libdrm/${ASWF_LIBDRM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libsndfile/${ASWF_LIBSNDFILE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libtiff/${ASWF_LIBTIFF_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 93c0711a..53940610 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -425,6 +425,8 @@ Contains: * glib-2.56.4 * libalsa-system * libdrm-system +* libjxl-0.11.1 +* libraw-0.21.4 * libsndfile-system * libtiff-4.0.9 * libwebp-1.5.0 @@ -479,6 +481,8 @@ Contains: * glib-2.56.4 * libalsa-system * libdrm-system +* libjxl-0.11.1 +* libraw-0.21.4 * libsndfile-system * libtiff-4.0.9 * libwebp-1.5.0 @@ -533,6 +537,8 @@ Contains: * glib-2.56.4 * libalsa-system * libdrm-system +* libjxl-0.11.1 +* libraw-0.21.4 * libsndfile-system * libtiff-4.0.9 * libwebp-1.5.0 @@ -587,6 +593,8 @@ Contains: * glib-2.56.4 * libalsa-system * libdrm-system +* libjxl-0.11.1 +* libraw-0.21.4 * libsndfile-system * libtiff-4.0.9 * libwebp-1.5.0 @@ -641,6 +649,8 @@ Contains: * glib-2.68.4 * libalsa-system * libdrm-system +* libjxl-0.11.1 +* libraw-0.21.4 * libsndfile-system * libtiff-4.4.0 * libwebp-1.5.0 @@ -695,6 +705,8 @@ Contains: * glib-2.68.4 * libalsa-system * libdrm-system +* libjxl-0.11.1 +* libraw-0.21.4 * libsndfile-system * libtiff-4.4.0 * libwebp-1.5.0 diff --git a/ci-vfxall/image.yaml b/ci-vfxall/image.yaml index 152c9518..5c07cdb5 100644 --- a/ci-vfxall/image.yaml +++ b/ci-vfxall/image.yaml @@ -27,6 +27,8 @@ packages: - libalsa - libdrm - libjpeg-turbo + - libjxl + - libraw - libsndfile - libtiff - libwebp diff --git a/packages/conan/recipes/boost/conandata.yml b/packages/conan/recipes/boost/conandata.yml index 13e25552..fb24d85c 100644 --- a/packages/conan/recipes/boost/conandata.yml +++ b/packages/conan/recipes/boost/conandata.yml @@ -18,22 +18,22 @@ sources: url: "https://archives.boost.io/release/1.85.0/source/boost_1_85_0.tar.bz2" sha256: "7009fe1faa1697476bdc7027703a2badb84e849b7b0baad5086b087b971f8617" "1.82.0": - url: "https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2" + url: "https://archives.boost.io/release/1.82.0/source/boost_1_82_0.tar.bz2" sha256: "a6e1ab9b0860e6a2881dd7b21fe9f737a095e5f33a3a874afc6a345228597ee6" "1.80.0": - url: "https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2" + url: "https://archives.boost.io/release/1.80.0/source/boost_1_80_0.tar.bz2" sha256: "1e19565d82e43bc59209a168f5ac899d3ba471d55c7610c677d4ccf2c9c500c0" "1.76.0": - url: "https://boostorg.jfrog.io/artifactory/main/release/1.76.0/source/boost_1_76_0.tar.bz2" + url: "https://archives.boost.io/release/1.76.0/source/boost_1_76_0.tar.bz2" sha256: "f0397ba6e982c4450f27bf32a2a83292aba035b827a5623a14636ea583318c41" "1.73.0": - url: "https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.bz2" + url: "https://archives.boost.io/release/1.73.0/source/boost_1_73_0.tar.bz2" sha256: "4eb3b8d442b426dc35346235c8733b5ae35ba431690e38c6a8263dce9fcbb402" "1.70.0": - url: "https://boostorg.jfrog.io/artifactory/main/release/1.70.0/source/boost_1_70_0.tar.bz2" + url: "https://archives.boost.io/release/1.70.0/source/boost_1_70_0.tar.bz2" sha256: "430ae8354789de4fd19ee52f3b1f739e1fba576f0aded0897c3c2bc00fb38778" "1.66.0": - url: "https://boostorg.jfrog.io/artifactory/main/release/1.66.0/source/boost_1_66_0.tar.bz2" + url: "https://archives.boost.io/release/1.66.0/source/boost_1_66_0.tar.bz2" sha256: "5721818253e6a0989583192f96782c4a98eb6204965316df9f5ad75819225ca9" patches: "1.88.0": @@ -60,3 +60,7 @@ patches: patch_description: "Fix aliasing violation in boost::container" patch_type: "official" patch_source: "https://github.com/boostorg/container/commit/20ad12f20e661978e90dc7f36d8ab8ac05e5a5a9" + "1.82.0": + - patch_file: "patches/1.82.0-locale-iconv-library-option.patch" + patch_description: "Optional flag to specify iconv from either libc of libiconv" + patch_type: "conan" diff --git a/packages/conan/recipes/ceres-solver/conandata.yml b/packages/conan/recipes/ceres-solver/conandata.yml new file mode 100644 index 00000000..137406e5 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/conandata.yml @@ -0,0 +1,49 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/ceres-solver/all/conandata.yml + +sources: + "2.2.0": + url: "http://ceres-solver.org/ceres-solver-2.2.0.tar.gz" + sha256: "48b2302a7986ece172898477c3bcd6deb8fb5cf19b3327bc49969aad4cede82d" + "2.1.0": + url: "http://ceres-solver.org/ceres-solver-2.1.0.tar.gz" + sha256: "f7d74eecde0aed75bfc51ec48c91d01fe16a6bf16bce1987a7073286701e2fc6" + "2.0.0": + url: "http://ceres-solver.org/ceres-solver-2.0.0.tar.gz" + sha256: "10298a1d75ca884aa0507d1abb0e0f04800a92871cd400d4c361b56a777a7603" + "1.14.0": + url: "http://ceres-solver.org/ceres-solver-1.14.0.tar.gz" + sha256: "4744005fc3b902fed886ea418df70690caa8e2ff6b5a90f3dd88a3d291ef8e8e" +patches: + "2.2.0": + - patch_file: "patches/2.2.0-0001-find-libraries-conan.patch" + patch_description: "Robust dependencies handling" + patch_type: "conan" + - patch_file: "patches/2.2.0-0002-fix-mingw-build.patch" + patch_description: "Fix MinGW build" + patch_type: "portability" + "2.1.0": + - patch_file: "patches/2.1.0-0001-find-libraries-conan.patch" + patch_description: "Robust dependencies handling" + patch_type: "conan" + - patch_file: "patches/2.1.0-0002-fix-mingw-build.patch" + patch_description: "Fix MinGW build" + patch_type: "portability" + "2.0.0": + - patch_file: "patches/2.0.0-0001-find-libraries-conan.patch" + patch_description: "Robust dependencies handling" + patch_type: "conan" + - patch_file: "patches/2.0.0-0002-fix-mingw-build.patch" + patch_description: "Fix MinGW build" + patch_type: "portability" + "1.14.0": + - patch_file: "patches/1.14.0-0001-find-libraries-conan.patch" + patch_description: "Robust dependencies handling" + patch_type: "conan" + - patch_file: "patches/1.14.0-0002-fix-msvc-c++17.patch" + patch_description: "Fix compilation with C++17 standard and above" + patch_type: "portability" + patch_source: "https://github.com/ceres-solver/ceres-solver/commit/1e8e9452d0a7dfaf5697b544810798a58e35443e" diff --git a/packages/conan/recipes/ceres-solver/conanfile.py b/packages/conan/recipes/ceres-solver/conanfile.py new file mode 100644 index 00000000..f77e2b51 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/conanfile.py @@ -0,0 +1,248 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/ceres-solver/all/conanfile.py + +import os +import textwrap + +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.apple import is_apple_os +from conan.tools.build import check_min_cppstd, stdcpp_library +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir, save +from conan.tools.microsoft import is_msvc, is_msvc_static_runtime +from conan.tools.scm import Version + +required_conan_version = ">=1.54.0" + + +class CeressolverConan(ConanFile): + name = "ceres-solver" + license = "BSD-3-Clause" + url = "https://github.com/conan-io/conan-center-index" + homepage = "http://ceres-solver.org/" + description = ( + "Ceres Solver is an open source C++ library for modeling " + "and solving large, complicated optimization problems" + ) + topics = ("optimization", "non-linear least squares") + + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "use_glog": [True, False], #TODO Set to true once gflags with nothreads=False binaries are available. Using MINILOG has a big performance drawback. + "use_gflags": [True, False, "deprecated"], + "use_custom_blas": [True, False], + "use_eigen_sparse": [True, False], + "use_TBB": [True, False], + "use_CXX11_threads": [True, False], + "use_CXX11": [True, False], + "use_schur_specializations": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + "use_glog": False, + "use_gflags": "deprecated", + "use_custom_blas": True, + "use_eigen_sparse": True, + "use_TBB": False, + "use_CXX11_threads": False, + "use_CXX11": False, + "use_schur_specializations": True, + } + + @property + def _min_cppstd(self): + if Version(self.version) >= "2.2.0": + return "17" + if Version(self.version) >= "2.0.0": + return "14" + return "98" + + @property + def _compilers_minimum_version(self): + return { + "14": { + "apple-clang": "5", + "clang": "5", + "gcc": "5", + "msvc": "190", + "Visual Studio": "14", + }, + "17": { + "apple-clang": "10", + "clang": "7", + "gcc": "8", + "msvc": "191", + "Visual Studio": "15", + }, + }.get(self._min_cppstd, {}) + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + if Version(self.version) >= "2.0": + del self.options.use_TBB + del self.options.use_CXX11_threads + del self.options.use_CXX11 + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + if self.options.use_gflags != "deprecated": + self.output.warning("use_gflags option is deprecated") + + def layout(self): + cmake_layout(self, src_folder="src") + # ASWF: we want DSOs in lib64 + self.cpp.package.libdirs = ["lib64"] + + def requirements(self): + self.requires("eigen/3.4.0", transitive_headers=True) + if self.options.use_glog: + self.requires("glog/0.6.0", transitive_headers=True, transitive_libs=True) + if self.options.get_safe("use_TBB"): + self.requires("onetbb/2020.3") + + def package_id(self): + del self.info.options.use_gflags + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + + minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support.", + ) + + def build_requirements(self): + if Version(self.version) >= "2.2.0": + self.tool_requires("cmake/[>=3.16 <4]") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + tc.variables["MINIGLOG"] = not self.options.use_glog + tc.variables["GFLAGS"] = False # useless for the lib itself, gflags is not a direct dependency + tc.variables["SUITESPARSE"] = False + tc.variables["LAPACK"] = False + tc.variables["SCHUR_SPECIALIZATIONS"] = self.options.use_schur_specializations + tc.variables["CUSTOM_BLAS"] = self.options.use_custom_blas + tc.variables["EIGENSPARSE"] = self.options.use_eigen_sparse + tc.variables["BUILD_TESTING"] = False + tc.variables["BUILD_DOCUMENTATION"] = False + tc.variables["BUILD_EXAMPLES"] = False + tc.variables["BUILD_BENCHMARKS"] = False + + ceres_version = Version(self.version) + if ceres_version >= "2.2.0": + tc.variables["USE_CUDA"] = False + elif ceres_version >= "2.1.0": + tc.variables["CUDA"] = False + if ceres_version >= "2.2.0": + tc.variables["EIGENMETIS"] = False + if ceres_version >= "2.0.0": + tc.variables["PROVIDE_UNINSTALL_TARGET"] = False + if is_apple_os(self): + tc.variables["ACCELERATESPARSE"] = True + if ceres_version < "2.2.0": + tc.variables["CXSPARSE"] = False + if is_msvc(self): + tc.variables["MSVC_USE_STATIC_CRT"] = is_msvc_static_runtime(self) + if ceres_version < "2.1.0": + tc.variables["LIB_SUFFIX"] = "" + if ceres_version < "2.0.0": + tc.variables["CXX11"] = self.options.use_CXX11 + tc.variables["OPENMP"] = False + tc.variables["TBB"] = self.options.use_TBB + tc.variables["CXX11_THREADS"] = self.options.use_CXX11_threads + # IOS_DEPLOYMENT_TARGET variable was added to iOS.cmake file in 1.12.0 version + if self.settings.os == "iOS": + tc.variables["IOS_DEPLOYMENT_TARGET"] = self.settings.os.version + tc.generate() + + CMakeDeps(self).generate() + + def build(self): + apply_conandata_patches(self) + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: license files in package specific directory + copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + cmake = CMake(self) + cmake.install() + # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) # ASWF: keep cmake files in lib64 + rmdir(self, os.path.join(self.package_folder, "CMake")) + self._create_cmake_module_variables(os.path.join(self.package_folder, self._module_variables_file_rel_path)) + + def _create_cmake_module_variables(self, module_file): + # Define several variables of upstream CMake config file which are not + # defined out of the box by CMakeDeps. + # See https://github.com/ceres-solver/ceres-solver/blob/master/cmake/CeresConfig.cmake.in + content = textwrap.dedent(f"""\ + set(CERES_FOUND TRUE) + set(CERES_VERSION {self.version}) + if(NOT DEFINED CERES_LIBRARIES) + set(CERES_LIBRARIES Ceres::ceres) + endif() + """) + save(self, module_file, content) + + @property + def _module_variables_file_rel_path(self): + return os.path.join("lib64", "cmake", f"conan-official-{self.name}-variables.cmake") # ASWF: cmake files in lib64 + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "Ceres") + self.cpp_info.set_property("cmake_target_name", "Ceres::ceres") + # see https://github.com/ceres-solver/ceres-solver/blob/2.2.0/cmake/CeresConfig.cmake.in#L334-L340 + self.cpp_info.set_property("cmake_target_aliases", ["ceres"]) + self.cpp_info.set_property("cmake_build_modules", [self._module_variables_file_rel_path]) + + libsuffix = "" + if self.settings.build_type == "Debug": + libsuffix = "-debug" + # TODO: back to global scope in conan v2 once cmake_find_package* generators removed + self.cpp_info.components["ceres"].libs = [f"ceres{libsuffix}"] + self.cpp_info.components["ceres"].includedirs.append(os.path.join("include", "ceres")) + if not self.options.use_glog: + self.cpp_info.components["ceres"].includedirs.append(os.path.join("include", "ceres", "internal", "miniglog")) + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.components["ceres"].system_libs.append("m") + if self.options.get_safe("use_CXX11_threads", True): + self.cpp_info.components["ceres"].system_libs.append("pthread") + elif is_apple_os(self): + if Version(self.version) >= "2": + self.cpp_info.components["ceres"].frameworks.append("Accelerate") + self.cpp_info.components["ceres"].requires = ["eigen::eigen"] + if self.options.use_glog: + self.cpp_info.components["ceres"].requires.append("glog::glog") + if self.options.get_safe("use_TBB"): + self.cpp_info.components["ceres"].requires.append("onetbb::onetbb") + if not self.options.shared: + libcxx = stdcpp_library(self) + if libcxx: + self.cpp_info.components["ceres"].system_libs.append(libcxx) + + # TODO: to remove in conan v2 once cmake_find_package* generators removed + self.cpp_info.names["cmake_find_package"] = "Ceres" + self.cpp_info.names["cmake_find_package_multi"] = "Ceres" + self.cpp_info.components["ceres"].build_modules["cmake_find_package"] = [self._module_variables_file_rel_path] + self.cpp_info.components["ceres"].build_modules["cmake_find_package_multi"] = [self._module_variables_file_rel_path] + self.cpp_info.components["ceres"].set_property("cmake_target_name", "Ceres::ceres") diff --git a/packages/conan/recipes/ceres-solver/patches/1.14.0-0001-find-libraries-conan.patch b/packages/conan/recipes/ceres-solver/patches/1.14.0-0001-find-libraries-conan.patch new file mode 100644 index 00000000..6518cb4c --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/1.14.0-0001-find-libraries-conan.patch @@ -0,0 +1,148 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -209,40 +209,40 @@ endif (IOS) + unset(CERES_COMPILE_OPTIONS) + + # Eigen. +-find_package(Eigen REQUIRED) +-if (EIGEN_FOUND) +- message("-- Found Eigen version ${EIGEN_VERSION}: ${EIGEN_INCLUDE_DIRS}") +- if (EIGEN_VERSION VERSION_LESS 3.1.0) ++find_package(Eigen3 REQUIRED CONFIG) ++if (1) ++ message("-- Found Eigen version ${Eigen3_VERSION}: ${Eigen3_INCLUDE_DIRS}") ++ if (Eigen3_VERSION VERSION_LESS 3.1.0) + message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.1.0 in order " + "that Eigen/SparseCore be available, detected version of Eigen is: " +- "${EIGEN_VERSION}") +- endif (EIGEN_VERSION VERSION_LESS 3.1.0) ++ "${Eigen3_VERSION}") ++ endif () + + if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND +- EIGEN_VERSION VERSION_LESS 3.3.4) ++ Eigen3_VERSION VERSION_LESS 3.3.4) + # As per issue #289: https://github.com/ceres-solver/ceres-solver/issues/289 + # the bundle_adjustment_test will fail for Eigen < 3.3.4 on aarch64. + message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.3.4 on aarch64. " +- "Detected version of Eigen is: ${EIGEN_VERSION}.") ++ "Detected version of Eigen is: ${Eigen3_VERSION}.") + endif() + + if (EIGENSPARSE) + message("-- Enabling use of Eigen as a sparse linear algebra library.") + list(APPEND CERES_COMPILE_OPTIONS CERES_USE_EIGEN_SPARSE) +- if (EIGEN_VERSION VERSION_LESS 3.2.2) ++ if (Eigen3_VERSION VERSION_LESS 3.2.2) + message(" WARNING:") + message("") +- message(" Your version of Eigen (${EIGEN_VERSION}) is older than ") ++ message(" Your version of Eigen (${Eigen3_VERSION}) is older than ") + message(" version 3.2.2. The performance of SPARSE_NORMAL_CHOLESKY ") + message(" and SPARSE_SCHUR linear solvers will suffer.") +- endif (EIGEN_VERSION VERSION_LESS 3.2.2) ++ endif () + else (EIGENSPARSE) + message("-- Disabling use of Eigen as a sparse linear algebra library.") + message(" This does not affect the covariance estimation algorithm ") + message(" which can still use the EIGEN_SPARSE_QR algorithm.") + add_definitions(-DEIGEN_MPL2_ONLY) + endif (EIGENSPARSE) +-endif (EIGEN_FOUND) ++endif () + + if (LAPACK) + find_package(LAPACK QUIET) +@@ -376,13 +376,14 @@ else (MINIGLOG) + unset(MINIGLOG_MAX_LOG_LEVEL CACHE) + # Don't search with REQUIRED so that configuration continues if not found and + # we can output an error messages explaining MINIGLOG option. +- find_package(Glog) +- if (NOT GLOG_FOUND) ++ find_package(glog REQUIRED CONFIG) ++ if (0) + message(FATAL_ERROR "Can't find Google Log (glog). Please set either: " + "glog_DIR (newer CMake built versions of glog) or GLOG_INCLUDE_DIR & " + "GLOG_LIBRARY or enable MINIGLOG option to use minimal glog " + "implementation.") +- endif(NOT GLOG_FOUND) ++ endif() ++ if(0) + # By default, assume gflags was found, updating the message if it was not. + set(GLOG_GFLAGS_DEPENDENCY_MESSAGE + " Assuming glog was built with gflags support as gflags was found. " +@@ -395,7 +396,8 @@ else (MINIGLOG) + "Otherwise, Ceres may fail to link due to missing gflags symbols.") + endif(NOT GFLAGS_FOUND) + message("-- Found Google Log (glog)." ${GLOG_GFLAGS_DEPENDENCY_MESSAGE}) +-endif (MINIGLOG) ++ endif() ++endif () + + if (NOT SCHUR_SPECIALIZATIONS) + list(APPEND CERES_COMPILE_OPTIONS CERES_RESTRICT_SCHUR_SPECIALIZATION) +@@ -526,7 +528,7 @@ if (CXX11 AND (TBB OR CXX11_THREADS)) + endif() + + if (CXX11 AND TBB) +- find_package(TBB QUIET) ++ find_package(TBB REQUIRED CONFIG) + if (TBB_FOUND) + message("-- Building with TBB (version: ${TBB_VERSION}).") + list(APPEND CERES_COMPILE_OPTIONS CERES_USE_TBB) +--- a/internal/ceres/CMakeLists.txt ++++ b/internal/ceres/CMakeLists.txt +@@ -152,9 +152,10 @@ else (SCHUR_SPECIALIZATIONS) + endif (SCHUR_SPECIALIZATIONS) + + # Build the list of dependencies for Ceres based on the current configuration. +-if (NOT MINIGLOG AND GLOG_FOUND) +- list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES}) +- if (GFLAGS_FOUND) ++list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES Eigen3::Eigen) ++if (NOT MINIGLOG) ++ list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES glog::glog) ++ if (0) + # If glog & gflags are both found, we assume that glog was built with + # gflags, as it is awkward to perform a try_compile() to verify this + # when gflags is an imported target (as it is in newer versions). +@@ -162,7 +163,7 @@ if (NOT MINIGLOG AND GLOG_FOUND) + # gflags, it is thus a public dependency for Ceres in this case. + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GFLAGS_LIBRARIES}) + endif() +-endif (NOT MINIGLOG AND GLOG_FOUND) ++endif () + + if (SUITESPARSE AND SUITESPARSE_FOUND) + # Define version information for use in Solver::FullReport. +@@ -191,7 +192,7 @@ if (OPENMP_FOUND) + endif (OPENMP_FOUND) + + if (TBB_FOUND) +- list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${TBB_LIBRARIES}) ++ list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES TBB::tbb) + if (NOT MSVC) + list(APPEND CERES_LIBRARY_PRIVATE_DEPENDENCIES ${CMAKE_THREAD_LIBS_INIT}) + endif (NOT MSVC) +@@ -241,8 +242,8 @@ if (BUILD_SHARED_LIBS) + # When building a shared library, mark all external libraries as + # PRIVATE so they don't show up as a dependency. + target_link_libraries(ceres +- LINK_PUBLIC ${CERES_LIBRARY_PUBLIC_DEPENDENCIES} +- LINK_PRIVATE ${CERES_LIBRARY_PRIVATE_DEPENDENCIES}) ++ PUBLIC ${CERES_LIBRARY_PUBLIC_DEPENDENCIES} ++ PRIVATE ${CERES_LIBRARY_PRIVATE_DEPENDENCIES}) + else (BUILD_SHARED_LIBS) + # When building a static library, all external libraries are + # PUBLIC(default) since the user needs to link to them. +@@ -250,7 +251,9 @@ else (BUILD_SHARED_LIBS) + set(CERES_LIBRARY_DEPENDENCIES + ${CERES_LIBRARY_PUBLIC_DEPENDENCIES} + ${CERES_LIBRARY_PRIVATE_DEPENDENCIES}) +- target_link_libraries(ceres ${CERES_LIBRARY_DEPENDENCIES}) ++ target_link_libraries(ceres ++ PUBLIC ${CERES_LIBRARY_PUBLIC_DEPENDENCIES} ++ PRIVATE ${CERES_LIBRARY_PRIVATE_DEPENDENCIES}) + endif (BUILD_SHARED_LIBS) + + install(TARGETS ceres diff --git a/packages/conan/recipes/ceres-solver/patches/1.14.0-0002-fix-msvc-c++17.patch b/packages/conan/recipes/ceres-solver/patches/1.14.0-0002-fix-msvc-c++17.patch new file mode 100644 index 00000000..f7fb700a --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/1.14.0-0002-fix-msvc-c++17.patch @@ -0,0 +1,36 @@ +Based on upstream commit 1e8e9452d0a7dfaf5697b544810798a58e35443e. +Fixes conan-io/conan-center-index#2678 + +From 1e8e9452d0a7dfaf5697b544810798a58e35443e Mon Sep 17 00:00:00 2001 +From: Norbert Wenzel +Date: Tue, 22 May 2018 16:45:46 +0200 +Subject: [PATCH] Remove chunk shuffle in multithreaded SchurEliminator + +std::random_shuffle() is deprecated since C++14 and was removed in +C++17. At least MSVC with C++17 fails to compile this code, I assume +other compilers fail as well. + +In a Github discussion (#373) Sameer Agarwal states this line can +likely be dropped and asks for a PR/CL. + +https://github.com/ceres-solver/ceres-solver/issues/373 + +Change-Id: I78e04f36cba398769b8f90916edbdaf33884e7e1 +--- + internal/ceres/schur_eliminator_impl.h | 3 --- + 1 file changed, 3 deletions(-) + +diff --git a/internal/ceres/schur_eliminator_impl.h b/internal/ceres/schur_eliminator_impl.h +index 203dcc9ef..06d0983b9 100644 +--- a/internal/ceres/schur_eliminator_impl.h ++++ b/internal/ceres/schur_eliminator_impl.h +@@ -154,9 +154,6 @@ void SchurEliminator::Init( + const Chunk& chunk = chunks_.back(); + + uneliminated_row_begins_ = chunk.start + chunk.size; +- if (num_threads_ > 1) { +- random_shuffle(chunks_.begin(), chunks_.end()); +- } + + buffer_.reset(new double[buffer_size_ * num_threads_]); + diff --git a/packages/conan/recipes/ceres-solver/patches/2.0.0-0001-find-libraries-conan.patch b/packages/conan/recipes/ceres-solver/patches/2.0.0-0001-find-libraries-conan.patch new file mode 100644 index 00000000..01e9ab93 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/2.0.0-0001-find-libraries-conan.patch @@ -0,0 +1,82 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -239,14 +239,14 @@ message("-- Building with C++${CMAKE_CXX_STANDARD}") + # Eigen. + # Eigen delivers Eigen3Config.cmake since v3.3.3 + find_package(Eigen3 3.3 REQUIRED) +-if (EIGEN3_FOUND) +- message("-- Found Eigen version ${EIGEN3_VERSION_STRING}: ${EIGEN3_INCLUDE_DIRS}") ++if (1) ++ message("-- Found Eigen version ${Eigen3_VERSION}: ${Eigen3_INCLUDE_DIRS}") + if (CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64.*|AARCH64.*)" AND +- EIGEN3_VERSION_STRING VERSION_LESS 3.3.4) ++ Eigen3_VERSION VERSION_LESS 3.3.4) + # As per issue #289: https://github.com/ceres-solver/ceres-solver/issues/289 + # the bundle_adjustment_test will fail for Eigen < 3.3.4 on aarch64. + message(FATAL_ERROR "-- Ceres requires Eigen version >= 3.3.4 on aarch64. " +- "Detected version of Eigen is: ${EIGEN3_VERSION_STRING}.") ++ "Detected version of Eigen is: ${Eigen3_VERSION}.") + endif() + + if (EIGENSPARSE) +@@ -258,7 +258,7 @@ if (EIGEN3_FOUND) + message(" which can still use the EIGEN_SPARSE_QR algorithm.") + add_definitions(-DEIGEN_MPL2_ONLY) + endif (EIGENSPARSE) +-endif (EIGEN3_FOUND) ++endif () + + if (LAPACK) + find_package(LAPACK QUIET) +@@ -427,13 +427,14 @@ else (MINIGLOG) + unset(MINIGLOG_MAX_LOG_LEVEL CACHE) + # Don't search with REQUIRED so that configuration continues if not found and + # we can output an error messages explaining MINIGLOG option. +- find_package(Glog) +- if (NOT GLOG_FOUND) ++ find_package(glog REQUIRED CONFIG) ++ if (0) + message(FATAL_ERROR "Can't find Google Log (glog). Please set either: " + "glog_DIR (newer CMake built versions of glog) or GLOG_INCLUDE_DIR & " + "GLOG_LIBRARY or enable MINIGLOG option to use minimal glog " + "implementation.") +- endif(NOT GLOG_FOUND) ++ endif() ++ if(0) + # By default, assume gflags was found, updating the message if it was not. + set(GLOG_GFLAGS_DEPENDENCY_MESSAGE + " Assuming glog was built with gflags support as gflags was found. " +@@ -446,7 +447,8 @@ else (MINIGLOG) + "Otherwise, Ceres may fail to link due to missing gflags symbols.") + endif(NOT gflags_FOUND) + message("-- Found Google Log (glog)." ${GLOG_GFLAGS_DEPENDENCY_MESSAGE}) +-endif (MINIGLOG) ++ endif() ++endif () + + if (NOT SCHUR_SPECIALIZATIONS) + list(APPEND CERES_COMPILE_OPTIONS CERES_RESTRICT_SCHUR_SPECIALIZATION) +--- a/internal/ceres/CMakeLists.txt ++++ b/internal/ceres/CMakeLists.txt +@@ -174,9 +174,9 @@ endif (SCHUR_SPECIALIZATIONS) + find_package(Threads QUIET) + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES Threads::Threads) + +-if (NOT MINIGLOG AND GLOG_FOUND) +- list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES}) +- if (gflags_FOUND) ++if (NOT MINIGLOG) ++ list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES glog::glog) ++ if (0) + # If glog & gflags are both found, we assume that glog was built with + # gflags, as it is awkward to perform a try_compile() to verify this + # when gflags is an imported target (as it is in newer versions). +@@ -184,7 +184,7 @@ if (NOT MINIGLOG AND GLOG_FOUND) + # gflags, it is thus a public dependency for Ceres in this case. + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES gflags) + endif() +-endif (NOT MINIGLOG AND GLOG_FOUND) ++endif () + + if (SUITESPARSE AND SUITESPARSE_FOUND) + # Define version information for use in Solver::FullReport. diff --git a/packages/conan/recipes/ceres-solver/patches/2.0.0-0002-fix-mingw-build.patch b/packages/conan/recipes/ceres-solver/patches/2.0.0-0002-fix-mingw-build.patch new file mode 100644 index 00000000..2978c914 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/2.0.0-0002-fix-mingw-build.patch @@ -0,0 +1,12 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -514,6 +514,9 @@ if (MINGW) + "to a MinGW bug: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556") + string(REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + update_cache_variable(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") ++ # Add the equivalent of /bigobj for MSVC for MinGW to fix 'too many sections' ++ # compile errors due to extensive use of templates. ++ add_compile_options(-Wa,-mbig-obj) + endif (MINGW) + + # After the tweaks for the compile settings, disable some warnings on MSVC. diff --git a/packages/conan/recipes/ceres-solver/patches/2.1.0-0001-find-libraries-conan.patch b/packages/conan/recipes/ceres-solver/patches/2.1.0-0001-find-libraries-conan.patch new file mode 100644 index 00000000..e37860d5 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/2.1.0-0001-find-libraries-conan.patch @@ -0,0 +1,54 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -405,13 +405,14 @@ else (MINIGLOG) + unset(MINIGLOG_MAX_LOG_LEVEL CACHE) + # Don't search with REQUIRED so that configuration continues if not found and + # we can output an error messages explaining MINIGLOG option. +- find_package(Glog) +- if (NOT GLOG_FOUND) ++ find_package(glog REQUIRED CONFIG) ++ if (0) + message(FATAL_ERROR "Can't find Google Log (glog). Please set either: " + "glog_DIR (newer CMake built versions of glog) or GLOG_INCLUDE_DIR & " + "GLOG_LIBRARY or enable MINIGLOG option to use minimal glog " + "implementation.") +- endif(NOT GLOG_FOUND) ++ endif() ++ if(0) + # By default, assume gflags was found, updating the message if it was not. + set(GLOG_GFLAGS_DEPENDENCY_MESSAGE + " Assuming glog was built with gflags support as gflags was found. " +@@ -424,7 +425,8 @@ else (MINIGLOG) + "Otherwise, Ceres may fail to link due to missing gflags symbols.") + endif(NOT gflags_FOUND) + message("-- Found Google Log (glog)." ${GLOG_GFLAGS_DEPENDENCY_MESSAGE}) +-endif (MINIGLOG) ++ endif() ++endif () + + if (NOT SCHUR_SPECIALIZATIONS) + list(APPEND CERES_COMPILE_OPTIONS CERES_RESTRICT_SCHUR_SPECIALIZATION) +--- a/internal/ceres/CMakeLists.txt ++++ b/internal/ceres/CMakeLists.txt +@@ -101,9 +101,9 @@ endif() + find_package(Threads QUIET) + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES Threads::Threads) + +-if (NOT MINIGLOG AND GLOG_FOUND) +- list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES}) +- if (gflags_FOUND) ++if (NOT MINIGLOG) ++ list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES glog::glog) ++ if (0) + # If glog & gflags are both found, we assume that glog was built with + # gflags, as it is awkward to perform a try_compile() to verify this + # when gflags is an imported target (as it is in newer versions). +@@ -111,7 +111,7 @@ if (NOT MINIGLOG AND GLOG_FOUND) + # gflags, it is thus a public dependency for Ceres in this case. + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES gflags) + endif() +-endif (NOT MINIGLOG AND GLOG_FOUND) ++endif () + + if (SUITESPARSE AND SuiteSparse_FOUND) + # Define version information for use in Solver::FullReport. diff --git a/packages/conan/recipes/ceres-solver/patches/2.1.0-0002-fix-mingw-build.patch b/packages/conan/recipes/ceres-solver/patches/2.1.0-0002-fix-mingw-build.patch new file mode 100644 index 00000000..0fb8a2b8 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/2.1.0-0002-fix-mingw-build.patch @@ -0,0 +1,12 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -488,6 +488,9 @@ if (MINGW) + "to a MinGW bug: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556") + string(REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + update_cache_variable(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") ++ # Add the equivalent of /bigobj for MSVC for MinGW to fix 'too many sections' ++ # compile errors due to extensive use of templates. ++ add_compile_options(-Wa,-mbig-obj) + endif (MINGW) + + # After the tweaks for the compile settings, disable some warnings on MSVC. diff --git a/packages/conan/recipes/ceres-solver/patches/2.2.0-0001-find-libraries-conan.patch b/packages/conan/recipes/ceres-solver/patches/2.2.0-0001-find-libraries-conan.patch new file mode 100644 index 00000000..aabc47a8 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/2.2.0-0001-find-libraries-conan.patch @@ -0,0 +1,54 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -433,13 +433,14 @@ else (MINIGLOG) + unset(MINIGLOG_MAX_LOG_LEVEL CACHE) + # Don't search with REQUIRED so that configuration continues if not found and + # we can output an error messages explaining MINIGLOG option. +- find_package(Glog) +- if (NOT GLOG_FOUND) ++ find_package(glog REQUIRED CONFIG) ++ if (0) + message(FATAL_ERROR "Can't find Google Log (glog). Please set either: " + "glog_DIR (newer CMake built versions of glog) or GLOG_INCLUDE_DIR & " + "GLOG_LIBRARY or enable MINIGLOG option to use minimal glog " + "implementation.") +- endif(NOT GLOG_FOUND) ++ endif() ++ if(0) + # By default, assume gflags was found, updating the message if it was not. + set(GLOG_GFLAGS_DEPENDENCY_MESSAGE + " Assuming glog was built with gflags support as gflags was found. " +@@ -452,7 +453,8 @@ else (MINIGLOG) + "Otherwise, Ceres may fail to link due to missing gflags symbols.") + endif(NOT gflags_FOUND) + message("-- Found Google Log (glog)." ${GLOG_GFLAGS_DEPENDENCY_MESSAGE}) +-endif (MINIGLOG) ++ endif() ++endif () + + if (NOT SCHUR_SPECIALIZATIONS) + list(APPEND CERES_COMPILE_OPTIONS CERES_RESTRICT_SCHUR_SPECIALIZATION) +--- a/internal/ceres/CMakeLists.txt ++++ b/internal/ceres/CMakeLists.txt +@@ -85,9 +85,9 @@ endif (SCHUR_SPECIALIZATIONS) + set_source_files_properties(${CERES_INTERNAL_SCHUR_FILES} PROPERTIES + SKIP_UNITY_BUILD_INCLUSION ON) + +-if (NOT MINIGLOG AND GLOG_FOUND) +- list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES ${GLOG_LIBRARIES}) +- if (gflags_FOUND) ++if (NOT MINIGLOG) ++ list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES glog::glog) ++ if (0) + # If glog & gflags are both found, we assume that glog was built with + # gflags, as it is awkward to perform a try_compile() to verify this + # when gflags is an imported target (as it is in newer versions). +@@ -95,7 +95,7 @@ if (NOT MINIGLOG AND GLOG_FOUND) + # gflags, it is thus a public dependency for Ceres in this case. + list(APPEND CERES_LIBRARY_PUBLIC_DEPENDENCIES gflags) + endif() +-endif (NOT MINIGLOG AND GLOG_FOUND) ++endif () + + if (SUITESPARSE AND SuiteSparse_FOUND) + # Define version information for use in Solver::FullReport. diff --git a/packages/conan/recipes/ceres-solver/patches/2.2.0-0002-fix-mingw-build.patch b/packages/conan/recipes/ceres-solver/patches/2.2.0-0002-fix-mingw-build.patch new file mode 100644 index 00000000..2978c914 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/patches/2.2.0-0002-fix-mingw-build.patch @@ -0,0 +1,12 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -514,6 +514,9 @@ if (MINGW) + "to a MinGW bug: http://eigen.tuxfamily.org/bz/show_bug.cgi?id=556") + string(REPLACE "-O3" "-O2" CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") + update_cache_variable(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE}") ++ # Add the equivalent of /bigobj for MSVC for MinGW to fix 'too many sections' ++ # compile errors due to extensive use of templates. ++ add_compile_options(-Wa,-mbig-obj) + endif (MINGW) + + # After the tweaks for the compile settings, disable some warnings on MSVC. diff --git a/packages/conan/recipes/ceres-solver/test_package/CMakeLists.txt b/packages/conan/recipes/ceres-solver/test_package/CMakeLists.txt new file mode 100644 index 00000000..2d05cadf --- /dev/null +++ b/packages/conan/recipes/ceres-solver/test_package/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/ceres-solver/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES C) + +find_package(Ceres REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.c) +target_link_libraries(${PROJECT_NAME} PRIVATE Ceres::ceres) diff --git a/packages/conan/recipes/ceres-solver/test_package/conanfile.py b/packages/conan/recipes/ceres-solver/test_package/conanfile.py new file mode 100644 index 00000000..c76b4b90 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/ceres-solver/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import CMake, cmake_layout +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/ceres-solver/test_package/test_package.c b/packages/conan/recipes/ceres-solver/test_package/test_package.c new file mode 100644 index 00000000..746f1584 --- /dev/null +++ b/packages/conan/recipes/ceres-solver/test_package/test_package.c @@ -0,0 +1,196 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/master/recipes/ceres-solver/all/test_package/test_package.c +*/ + +/* Ceres Solver - A fast non-linear least squares minimizer + * Copyright 2015 Google Inc. All rights reserved. + * http://ceres-solver.org/ + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * - Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * - Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * - Neither the name of Google Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + * + * Author: mierle@gmail.com (Keir Mierle) + * + * This is a port of curve_fitting.cc to the minimal C API for Ceres. + */ + +#include "ceres/c_api.h" + +#include +#include +#include // For NULL + +/* Data generated using the following octave code. + * + * randn('seed', 23497); + * m = 0.3; + * c = 0.1; + * x=[0:0.075:5]; + * y = exp(m * x + c); + * noise = randn(size(x)) * 0.2; + * y_observed = y + noise; + * data = [x', y_observed']; + * + */ + +int num_observations = 67; +double data[] = { + 0.000000e+00, 1.133898e+00, + 7.500000e-02, 1.334902e+00, + 1.500000e-01, 1.213546e+00, + 2.250000e-01, 1.252016e+00, + 3.000000e-01, 1.392265e+00, + 3.750000e-01, 1.314458e+00, + 4.500000e-01, 1.472541e+00, + 5.250000e-01, 1.536218e+00, + 6.000000e-01, 1.355679e+00, + 6.750000e-01, 1.463566e+00, + 7.500000e-01, 1.490201e+00, + 8.250000e-01, 1.658699e+00, + 9.000000e-01, 1.067574e+00, + 9.750000e-01, 1.464629e+00, + 1.050000e+00, 1.402653e+00, + 1.125000e+00, 1.713141e+00, + 1.200000e+00, 1.527021e+00, + 1.275000e+00, 1.702632e+00, + 1.350000e+00, 1.423899e+00, + 1.425000e+00, 1.543078e+00, + 1.500000e+00, 1.664015e+00, + 1.575000e+00, 1.732484e+00, + 1.650000e+00, 1.543296e+00, + 1.725000e+00, 1.959523e+00, + 1.800000e+00, 1.685132e+00, + 1.875000e+00, 1.951791e+00, + 1.950000e+00, 2.095346e+00, + 2.025000e+00, 2.361460e+00, + 2.100000e+00, 2.169119e+00, + 2.175000e+00, 2.061745e+00, + 2.250000e+00, 2.178641e+00, + 2.325000e+00, 2.104346e+00, + 2.400000e+00, 2.584470e+00, + 2.475000e+00, 1.914158e+00, + 2.550000e+00, 2.368375e+00, + 2.625000e+00, 2.686125e+00, + 2.700000e+00, 2.712395e+00, + 2.775000e+00, 2.499511e+00, + 2.850000e+00, 2.558897e+00, + 2.925000e+00, 2.309154e+00, + 3.000000e+00, 2.869503e+00, + 3.075000e+00, 3.116645e+00, + 3.150000e+00, 3.094907e+00, + 3.225000e+00, 2.471759e+00, + 3.300000e+00, 3.017131e+00, + 3.375000e+00, 3.232381e+00, + 3.450000e+00, 2.944596e+00, + 3.525000e+00, 3.385343e+00, + 3.600000e+00, 3.199826e+00, + 3.675000e+00, 3.423039e+00, + 3.750000e+00, 3.621552e+00, + 3.825000e+00, 3.559255e+00, + 3.900000e+00, 3.530713e+00, + 3.975000e+00, 3.561766e+00, + 4.050000e+00, 3.544574e+00, + 4.125000e+00, 3.867945e+00, + 4.200000e+00, 4.049776e+00, + 4.275000e+00, 3.885601e+00, + 4.350000e+00, 4.110505e+00, + 4.425000e+00, 4.345320e+00, + 4.500000e+00, 4.161241e+00, + 4.575000e+00, 4.363407e+00, + 4.650000e+00, 4.161576e+00, + 4.725000e+00, 4.619728e+00, + 4.800000e+00, 4.737410e+00, + 4.875000e+00, 4.727863e+00, + 4.950000e+00, 4.669206e+00, +}; + +/* This is the equivalent of a use-defined CostFunction in the C++ Ceres API. + * This is passed as a callback to the Ceres C API, which internally converts + * the callback into a CostFunction. */ +int exponential_residual(void* user_data, + double** parameters, + double* residuals, + double** jacobians) { + double* measurement = (double*) user_data; + double x = measurement[0]; + double y = measurement[1]; + double m = parameters[0][0]; + double c = parameters[1][0]; + + residuals[0] = y - exp(m * x + c); + if (jacobians == NULL) { + return 1; + } + if (jacobians[0] != NULL) { + jacobians[0][0] = - x * exp(m * x + c); /* dr/dm */ + } + if (jacobians[1] != NULL) { + jacobians[1][0] = - exp(m * x + c); /* dr/dc */ + } + return 1; +} + +int main(int argc, char** argv) { + /* Note: Typically it is better to compact m and c into one block, + * but in this case use separate blocks to illustrate the use of + * multiple parameter blocks. */ + double m = 0.0; + double c = 0.0; + + double *parameter_pointers[] = { &m, &c }; + int parameter_sizes[] = { 1, 1 }; + int i; + + ceres_problem_t* problem; + + /* Ceres has some internal stuff that needs to get initialized. */ + ceres_init(); + + problem = ceres_create_problem(); + + /* Add all the residuals. */ + for (i = 0; i < num_observations; ++i) { + ceres_problem_add_residual_block( + problem, + exponential_residual, /* Cost function */ + &data[2 * i], /* Points to the (x,y) measurement */ + NULL, /* No loss function */ + NULL, /* No loss function user data */ + 1, /* Number of residuals */ + 2, /* Number of parameter blocks */ + parameter_sizes, + parameter_pointers); + } + + ceres_solve(problem); + ceres_free_problem(problem); + + printf("Initial m: 0.0, c: 0.0\n"); + printf("Final m: %g, c: %g\n", m, c); + return 0; +} diff --git a/packages/conan/recipes/eigen/conandata.yml b/packages/conan/recipes/eigen/conandata.yml new file mode 100644 index 00000000..00e1f169 --- /dev/null +++ b/packages/conan/recipes/eigen/conandata.yml @@ -0,0 +1,38 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/eigen/all/conandata.yml + +sources: + "3.4.0": + url: "https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.bz2" + sha256: "b4c198460eba6f28d34894e3a5710998818515104d6e74e5cc331ce31e46e626" + "3.3.9": + url: "https://gitlab.com/libeigen/eigen/-/archive/3.3.9/eigen-3.3.9.tar.bz2" + sha256: "0fa5cafe78f66d2b501b43016858070d52ba47bd9b1016b0165a7b8e04675677" + "3.3.8": + url: "https://gitlab.com/libeigen/eigen/-/archive/3.3.8/eigen-3.3.8.tar.bz2" + sha256: "0215c6593c4ee9f1f7f28238c4e8995584ebf3b556e9dbf933d84feb98d5b9ef" + "3.3.7": + url: "https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.bz2" + sha256: "685adf14bd8e9c015b78097c1dc22f2f01343756f196acdc76a678e1ae352e11" +patches: + "3.4.0": + - patch_file: "patches/3.4.0-0001-vec-reduce-half.patch" + patch_description: "Fix vectorized reductions compilation errors for Eigen::half" + patch_type: "bugfix" + patch_source: "https://gitlab.com/libeigen/eigen/-/commit/b0fe14213ec4c8615de485fe4c2bcd4bab0cbd19.patch" + "3.3.9": + - patch_file: "patches/0002-cmake-minimum-required.patch" + patch_description: "CMake: Move cmake_minimum_required() before project()" + patch_type: "conan" + "3.3.8": + - patch_file: "patches/0001-assert-exception-upstream-issue-2011.patch" + - patch_file: "patches/0002-cmake-minimum-required.patch" + patch_description: "CMake: Move cmake_minimum_required() before project()" + patch_type: "conan" + "3.3.7": + - patch_file: "patches/0002-cmake-minimum-required.patch" + patch_description: "CMake: Move cmake_minimum_required() before project()" + patch_type: "conan" diff --git a/packages/conan/recipes/eigen/conanfile.py b/packages/conan/recipes/eigen/conanfile.py new file mode 100644 index 00000000..bc8c4d5a --- /dev/null +++ b/packages/conan/recipes/eigen/conanfile.py @@ -0,0 +1,88 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/eigen/all/conanfile.py + +from conan import ConanFile +from conan.tools.cmake import CMake, cmake_layout, CMakeToolchain +from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, rmdir +import os + +required_conan_version = ">=1.52.0" + + +class EigenConan(ConanFile): + name = "eigen" + url = "https://github.com/conan-io/conan-center-index" + homepage = "http://eigen.tuxfamily.org" + description = "Eigen is a C++ template library for linear algebra: matrices, vectors," \ + " numerical solvers, and related algorithms." + topics = ("algebra", "linear-algebra", "matrix", "vector", "numerical", "header-only") + package_type = "header-library" + license = ("MPL-2.0", "LGPL-3.0-or-later") # Taking into account the default value of MPL2_only option + + settings = "os", "arch", "compiler", "build_type" + options = { + "MPL2_only": [True, False], + } + default_options = { + "MPL2_only": False, + } + + def export_sources(self): + export_conandata_patches(self) + + def configure(self): + self.license = "MPL-2.0" if self.options.MPL2_only else ("MPL-2.0", "LGPL-3.0-or-later") + + def layout(self): + cmake_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def source(self): + get(self, **self.conan_data["sources"][self.version], + destination=self.source_folder, strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + tc.cache_variables["BUILD_TESTING"] = not self.conf.get("tools.build:skip_test", default=True, check_type=bool) + tc.cache_variables["EIGEN_TEST_NOQT"] = True + tc.generate() + + def build(self): + apply_conandata_patches(self) + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + cmake = CMake(self) + cmake.install() + + # ASWF: license files in package specific directories + copy(self, "COPYING.*", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) + rmdir(self, os.path.join(self.package_folder, "share")) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "Eigen3") + self.cpp_info.set_property("cmake_target_name", "Eigen3::Eigen") + self.cpp_info.set_property("pkg_config_name", "eigen3") + # TODO: back to global scope once cmake_find_package* generators removed + self.cpp_info.components["eigen3"].bindirs = [] + self.cpp_info.components["eigen3"].libdirs = [] + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.components["eigen3"].system_libs = ["m"] + if self.options.MPL2_only: + self.cpp_info.components["eigen3"].defines = ["EIGEN_MPL2_ONLY"] + + # TODO: to remove in conan v2 once cmake_find_package* & pkg_config generators removed + self.cpp_info.names["cmake_find_package"] = "Eigen3" + self.cpp_info.names["cmake_find_package_multi"] = "Eigen3" + self.cpp_info.names["pkg_config"] = "eigen3" + self.cpp_info.components["eigen3"].names["cmake_find_package"] = "Eigen" + self.cpp_info.components["eigen3"].names["cmake_find_package_multi"] = "Eigen" + self.cpp_info.components["eigen3"].set_property("cmake_target_name", "Eigen3::Eigen") + self.cpp_info.components["eigen3"].includedirs = [os.path.join("include", "eigen3")] diff --git a/packages/conan/recipes/eigen/patches/0001-assert-exception-upstream-issue-2011.patch b/packages/conan/recipes/eigen/patches/0001-assert-exception-upstream-issue-2011.patch new file mode 100644 index 00000000..91ba0d61 --- /dev/null +++ b/packages/conan/recipes/eigen/patches/0001-assert-exception-upstream-issue-2011.patch @@ -0,0 +1,46 @@ +diff --git a/Eigen/src/Core/products/Parallelizer.h b/Eigen/src/Core/products/Parallelizer.h +index 67b2442b53a114af3c08829af4344acc6be7a42f..a3cc05b77bbd19466e7f969d37ec18085ba3d36c 100644 +--- a/Eigen/src/Core/products/Parallelizer.h ++++ b/Eigen/src/Core/products/Parallelizer.h +@@ -132,8 +132,7 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, + + ei_declare_aligned_stack_constructed_variable(GemmParallelInfo,info,threads,0); + +- int errorCount = 0; +- #pragma omp parallel num_threads(threads) reduction(+: errorCount) ++ #pragma omp parallel num_threads(threads) + { + Index i = omp_get_thread_num(); + // Note that the actual number of threads might be lower than the number of request ones. +@@ -152,14 +151,11 @@ void parallelize_gemm(const Functor& func, Index rows, Index cols, Index depth, + info[i].lhs_start = r0; + info[i].lhs_length = actualBlockRows; + +- EIGEN_TRY { +- if(transpose) func(c0, actualBlockCols, 0, rows, info); +- else func(0, rows, c0, actualBlockCols, info); +- } EIGEN_CATCH(...) { +- ++errorCount; +- } ++ if(transpose) ++ func(c0, actualBlockCols, 0, rows, info); ++ else ++ func(0, rows, c0, actualBlockCols, info); + } +- if (errorCount) EIGEN_THROW_X(Eigen::eigen_assert_exception()); + #endif + } + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 0747aa6cb65a40a47fdee2685a2798f93c481ea0..b0257778082143ce27fc847cf163e845fa2afd1e 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -163,7 +163,7 @@ ei_add_test(constructor) + ei_add_test(linearstructure) + ei_add_test(integer_types) + ei_add_test(unalignedcount) +-if(NOT EIGEN_TEST_NO_EXCEPTIONS) ++if(NOT EIGEN_TEST_NO_EXCEPTIONS AND NOT EIGEN_TEST_OPENMP) + ei_add_test(exceptions) + endif() + ei_add_test(redux) diff --git a/packages/conan/recipes/eigen/patches/0002-cmake-minimum-required.patch b/packages/conan/recipes/eigen/patches/0002-cmake-minimum-required.patch new file mode 100644 index 00000000..ed2fc38f --- /dev/null +++ b/packages/conan/recipes/eigen/patches/0002-cmake-minimum-required.patch @@ -0,0 +1,10 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,6 @@ ++cmake_minimum_required(VERSION 2.8.5) + project(Eigen3) + +-cmake_minimum_required(VERSION 2.8.5) + + # guard against in-source builds + diff --git a/packages/conan/recipes/eigen/patches/3.4.0-0001-vec-reduce-half.patch b/packages/conan/recipes/eigen/patches/3.4.0-0001-vec-reduce-half.patch new file mode 100644 index 00000000..34be4758 --- /dev/null +++ b/packages/conan/recipes/eigen/patches/3.4.0-0001-vec-reduce-half.patch @@ -0,0 +1,48 @@ +From b0fe14213ec4c8615de485fe4c2bcd4bab0cbd19 Mon Sep 17 00:00:00 2001 +From: Alex Druinsky +Date: Wed, 20 Oct 2021 16:03:12 -0700 +Subject: [PATCH] Fix vectorized reductions for Eigen::half + +Fixes compiler errors in expressions that look like + + Eigen::Matrix::Random().maxCoeff() + +The error comes from the code that creates the initial value for +vectorized reductions. The fix is to specify the scalar type of the +reduction's initial value. + +The cahnge is necessary for Eigen::half because unlike other types, +Eigen::half scalars cannot be implicitly created from integers. + + +(cherry picked from commit d0e3791b1a0e2db9edd5f1d1befdb2ac5a40efe0) +--- + Eigen/src/Core/PartialReduxEvaluator.h | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/Eigen/src/Core/PartialReduxEvaluator.h b/Eigen/src/Core/PartialReduxEvaluator.h +index 29abf35b99..17c06f0783 100644 +--- a/Eigen/src/Core/PartialReduxEvaluator.h ++++ b/Eigen/src/Core/PartialReduxEvaluator.h +@@ -54,12 +54,17 @@ struct packetwise_redux_traits + /* Value to be returned when size==0 , by default let's return 0 */ + template + EIGEN_DEVICE_FUNC +-PacketType packetwise_redux_empty_value(const Func& ) { return pset1(0); } ++PacketType packetwise_redux_empty_value(const Func& ) { ++ const typename unpacket_traits::type zero(0); ++ return pset1(zero); ++} + + /* For products the default is 1 */ + template + EIGEN_DEVICE_FUNC +-PacketType packetwise_redux_empty_value(const scalar_product_op& ) { return pset1(1); } ++PacketType packetwise_redux_empty_value(const scalar_product_op& ) { ++ return pset1(Scalar(1)); ++} + + /* Perform the actual reduction */ + template +#include +#include + + +int main(void) +{ + int const N = 5; + Eigen::MatrixXi A(N, N); + A.setRandom(); + + std::cout << "A =\n" << A << "\n\n" + << "A(2..3,:) =\n" << A.middleRows(2, 2) << "\n"; + + return 0; +} diff --git a/packages/conan/recipes/jasper/conandata.yml b/packages/conan/recipes/jasper/conandata.yml new file mode 100644 index 00000000..949f5eb6 --- /dev/null +++ b/packages/conan/recipes/jasper/conandata.yml @@ -0,0 +1,51 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/jasper/all/conandata.yml + +sources: + "4.2.5": + url: "https://github.com/jasper-software/jasper/releases/download/version-4.2.5/jasper-4.2.5.tar.gz" + sha256: "6e49075b47204a9879600f85628a248cdb19abc1bb74d0b7a2177bcdb87c95eb" + "4.2.4": + url: "https://github.com/jasper-software/jasper/releases/download/version-4.2.4/jasper-4.2.4.tar.gz" + sha256: "6a597613d8d84c500b5b83bf0eec06cd3707c23d19957f70354ac2394c9914e7" + "4.2.0": + url: "https://github.com/jasper-software/jasper/releases/download/version-4.2.0/jasper-4.2.0.tar.gz" + sha256: "69f0b08a0cc281a06eaf7feed510736854bbff9af89ab1d01b77382ad57ec957" + "4.1.2": + url: "https://github.com/jasper-software/jasper/releases/download/version-4.1.2/jasper-4.1.2.tar.gz" + sha256: "22392e439b87c79aaf8689ec79a286a7147e811c4bee34edf3d0b239798d672b" + "4.0.0": + url: "https://github.com/jasper-software/jasper/releases/download/version-4.0.0/jasper-4.0.0.tar.gz" + sha256: "39514e1b53a5333fcff817e19565371f016ea536c36fd2d13a9c4d8da8f0be0c" +patches: + "4.2.5": + - patch_file: "patches/4.2.0-0003-deterministic-libname.patch" + patch_description: "No generator dependent libname" + patch_type: "conan" + "4.2.4": + - patch_file: "patches/4.2.0-0003-deterministic-libname.patch" + patch_description: "No generator dependent libname" + patch_type: "conan" + "4.2.0": + - patch_file: "patches/4.2.0-0003-deterministic-libname.patch" + patch_description: "No generator dependent libname" + patch_type: "conan" + "4.1.2": + - patch_file: "patches/4.1.1-0001-skip-rpath.patch" + patch_description: "Do not enforce rpath configuration" + patch_source: "https://github.com/jasper-software/jasper/pull/347" + patch_type: "conan" + - patch_file: "patches/4.1.1-0003-deterministic-libname.patch" + patch_description: "No generator dependent libname" + patch_type: "conan" + "4.0.0": + - patch_file: "patches/4.0.0-0001-skip-rpath.patch" + patch_description: "Do not enforce rpath configuration" + patch_source: "https://github.com/jasper-software/jasper/pull/347" + patch_type: "conan" + - patch_file: "patches/4.0.0-0003-deterministic-libname.patch" + patch_description: "No generator dependent libname" + patch_type: "conan" diff --git a/packages/conan/recipes/jasper/conanfile.py b/packages/conan/recipes/jasper/conanfile.py new file mode 100644 index 00000000..7c72e5b0 --- /dev/null +++ b/packages/conan/recipes/jasper/conanfile.py @@ -0,0 +1,151 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/jasper/all/conanfile.py + +from conan import ConanFile +from conan.tools.build import cross_building +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.env import VirtualBuildEnv +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rm, rmdir, save +from conan.tools.scm import Version +import os +import textwrap + +required_conan_version = ">=1.53.0" + + +class JasperConan(ConanFile): + name = "jasper" + description = "JasPer Image Processing/Coding Tool Kit" + license = "JasPer-2.0" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://jasper-software.github.io/jasper" + topics = ("toolkit", "coding", "jpeg", "images") + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "with_libjpeg": [False, "libjpeg", "libjpeg-turbo", "mozjpeg"], + } + default_options = { + "shared": False, + "fPIC": True, + "with_libjpeg": "libjpeg-turbo", # ASWF: match OIIO default + } + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + self.settings.rm_safe("compiler.cppstd") + self.settings.rm_safe("compiler.libcxx") + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + + def requirements(self): + if self.options.with_libjpeg == "libjpeg": + self.requires("libjpeg/9e") + elif self.options.with_libjpeg == "libjpeg-turbo": + self.requires("libjpeg-turbo/3.0.2", transitive_libs=True) # ASWF: force DSO to be found + elif self.options.with_libjpeg == "mozjpeg": + self.requires("mozjpeg/4.1.5") + + def build_requirements(self): + if Version(self.version) >= "4.1.1": + self.tool_requires("cmake/[>=3.20 <4]") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + VirtualBuildEnv(self).generate() + + tc = CMakeToolchain(self) + tc.variables["JAS_ENABLE_PIC"] = self.options.get_safe("fPIC", True) + tc.variables["JAS_ENABLE_DOC"] = False + tc.variables["JAS_ENABLE_LATEX"] = False + tc.variables["JAS_ENABLE_PROGRAMS"] = False + tc.variables["JAS_ENABLE_SHARED"] = self.options.shared + tc.variables["JAS_LIBJPEG_REQUIRED"] = "REQUIRED" + tc.variables["JAS_ENABLE_LIBJPEG"] = bool(self.options.with_libjpeg) + tc.variables["JAS_HAVE_JPEGLIB_H"] = True + tc.variables["JAS_ENABLE_LIBHEIF"] = False + tc.variables["JAS_ENABLE_OPENGL"] = False + if cross_building(self): + tc.cache_variables["JAS_CROSSCOMPILING"] = True + tc.cache_variables["JAS_STDC_VERSION"] = "199901L" + if Version(self.version) >= "4.2.0": + tc.variables["JAS_PACKAGING"] = True + tc.generate() + + cmakedeps = CMakeDeps(self) + cmakedeps.generate() + + def build(self): + apply_conandata_patches(self) + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: license files in package specific directory + copy(self, "LICENSE*", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + copy(self, "COPYRIGHT*", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + cmake = CMake(self) + cmake.install() + rmdir(self, os.path.join(self.package_folder, "share")) + rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) # ASWF: lib64 + if self.settings.os == "Windows": + for dll_prefix in ["concrt", "msvcp", "vcruntime"]: + rm(self, f"{dll_prefix}*.dll", os.path.join(self.package_folder, "bin")) + self._create_cmake_module_variables(os.path.join(self.package_folder, self._module_file_rel_path)) + + # FIXME: Missing CMake alias variables. See https://github.com/conan-io/conan/issues/7691 + def _create_cmake_module_variables(self, module_file): + content = textwrap.dedent(f"""\ + set(JASPER_FOUND TRUE) + if(DEFINED Jasper_INCLUDE_DIR) + set(JASPER_INCLUDE_DIR ${{Jasper_INCLUDE_DIR}}) + endif() + if(DEFINED Jasper_LIBRARIES) + set(JASPER_LIBRARIES ${{Jasper_LIBRARIES}}) + endif() + set(JASPER_VERSION_STRING "{self.version}") + """) + save(self, module_file, content) + + @property + def _module_file_rel_path(self): + return os.path.join("lib64", "cmake", f"conan-official-{self.name}-variables.cmake") # ASWF: cmake in lib64 + + def package_info(self): + self.cpp_info.set_property("cmake_find_mode", "both") + self.cpp_info.set_property("cmake_file_name", "Jasper") + self.cpp_info.set_property("cmake_target_name", "Jasper::Jasper") + self.cpp_info.set_property("cmake_build_modules", [self._module_file_rel_path]) + self.cpp_info.set_property("pkg_config_name", "jasper") + self.cpp_info.libs = ["jasper"] + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.system_libs.extend(["m", "pthread"]) + self.cpp_info.requires = [] + if self.options.with_libjpeg == "libjpeg": + self.cpp_info.requires.append("libjpeg::libjpeg") + elif self.options.with_libjpeg == "libjpeg-turbo": + self.cpp_info.requires.append("libjpeg-turbo::jpeg") + elif self.options.with_libjpeg == "mozjpeg": + self.cpp_info.requires.append("mozjpeg::libjpeg") + + # TODO: to remove in conan v2 + self.cpp_info.names["cmake_find_package"] = "Jasper" + self.cpp_info.names["cmake_find_package_multi"] = "Jasper" + self.cpp_info.build_modules["cmake_find_package"] = [self._module_file_rel_path] diff --git a/packages/conan/recipes/jasper/patches/4.0.0-0001-skip-rpath.patch b/packages/conan/recipes/jasper/patches/4.0.0-0001-skip-rpath.patch new file mode 100644 index 00000000..587e0eda --- /dev/null +++ b/packages/conan/recipes/jasper/patches/4.0.0-0001-skip-rpath.patch @@ -0,0 +1,22 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -793,19 +793,15 @@ if(JAS_ENABLE_SHARED) + # (but later on when installing) + set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + + # add the automatically determined parts of the RPATH + # which point to directories outside the build tree to the install RPATH +- set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE) + + # The RPATH to be used when installing, but only if it's not a + # system directory + list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) + if(isSystemDir EQUAL -1) +- set(CMAKE_INSTALL_RPATH +- "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + endif() + endif() + diff --git a/packages/conan/recipes/jasper/patches/4.0.0-0003-deterministic-libname.patch b/packages/conan/recipes/jasper/patches/4.0.0-0003-deterministic-libname.patch new file mode 100644 index 00000000..d2b29d21 --- /dev/null +++ b/packages/conan/recipes/jasper/patches/4.0.0-0003-deterministic-libname.patch @@ -0,0 +1,11 @@ +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -262,7 +262,7 @@ endif() + # If a multiconfiguration generator is used, ensure that various output + # files are not placed in subdirectories (such as Debug and Release) + # as this will cause the CTest test suite to fail. +-if(JAS_MULTICONFIGURATION_GENERATOR) ++if(0) + if(CMAKE_CONFIGURATION_TYPES) + set(CMAKE_DEBUG_POSTFIX d) + endif() diff --git a/packages/conan/recipes/jasper/patches/4.1.1-0001-skip-rpath.patch b/packages/conan/recipes/jasper/patches/4.1.1-0001-skip-rpath.patch new file mode 100644 index 00000000..69c4f828 --- /dev/null +++ b/packages/conan/recipes/jasper/patches/4.1.1-0001-skip-rpath.patch @@ -0,0 +1,31 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index ba6f117..6b79a94 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -800,13 +800,13 @@ + + if(JAS_ENABLE_SHARED) + # use, i.e. don't skip the full RPATH for the build tree +- set(CMAKE_SKIP_BUILD_RPATH FALSE) ++# set(CMAKE_SKIP_BUILD_RPATH FALSE) + + # when building, don't use the install RPATH already + # (but later on when installing) + set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE) + +- set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") ++# set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib") + + # add the automatically determined parts of the RPATH + # which point to directories outside the build tree to the install RPATH +@@ -817,8 +817,8 @@ + list(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES + "${CMAKE_INSTALL_PREFIX}/lib" isSystemDir) + if(isSystemDir EQUAL -1) +- set(CMAKE_INSTALL_RPATH +- "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") ++# set(CMAKE_INSTALL_RPATH ++# "${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}") + endif() + endif() + diff --git a/packages/conan/recipes/jasper/patches/4.1.1-0003-deterministic-libname.patch b/packages/conan/recipes/jasper/patches/4.1.1-0003-deterministic-libname.patch new file mode 100644 index 00000000..88f2faa6 --- /dev/null +++ b/packages/conan/recipes/jasper/patches/4.1.1-0003-deterministic-libname.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 86eb065..9c2da51 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -276,7 +276,7 @@ endif() + # If a multiconfiguration generator is used, ensure that various output + # files are not placed in subdirectories (such as Debug and Release) + # as this will cause the CTest test suite to fail. +-if(JAS_MULTICONFIGURATION_GENERATOR) ++if(0) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY .) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY .) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY .) diff --git a/packages/conan/recipes/jasper/patches/4.2.0-0003-deterministic-libname.patch b/packages/conan/recipes/jasper/patches/4.2.0-0003-deterministic-libname.patch new file mode 100644 index 00000000..ed1edf42 --- /dev/null +++ b/packages/conan/recipes/jasper/patches/4.2.0-0003-deterministic-libname.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c6925e4..8392edf 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -274,7 +274,7 @@ message("JAS_MULTICONFIGURATION_GENERATOR ${JAS_MULTICONFIGURATION_GENERATOR}") + # If a multiconfiguration generator is used, ensure that various output + # files are not placed in subdirectories (such as Debug and Release) + # as this will cause the CTest test suite to fail. +-if(JAS_MULTICONFIGURATION_GENERATOR) ++if(0) + set(CMAKE_RUNTIME_OUTPUT_DIRECTORY .) + set(CMAKE_LIBRARY_OUTPUT_DIRECTORY .) + set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY .) diff --git a/packages/conan/recipes/jasper/test_package/CMakeLists.txt b/packages/conan/recipes/jasper/test_package/CMakeLists.txt new file mode 100644 index 00000000..b63354d6 --- /dev/null +++ b/packages/conan/recipes/jasper/test_package/CMakeLists.txt @@ -0,0 +1,27 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/jasper/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES C) + +find_package(Jasper REQUIRED) + +set(_custom_vars + JASPER_FOUND + JASPER_INCLUDE_DIR + JASPER_LIBRARIES + JASPER_VERSION_STRING +) +foreach(_custom_var ${_custom_vars}) +if(DEFINED ${_custom_var}) + message(STATUS "${_custom_var}: ${${_custom_var}}") +else() + message(FATAL_ERROR "${_custom_var} not defined") +endif() +endforeach() + +add_executable(${PROJECT_NAME} test_package.c) +target_link_libraries(${PROJECT_NAME} PRIVATE Jasper::Jasper) diff --git a/packages/conan/recipes/jasper/test_package/conanfile.py b/packages/conan/recipes/jasper/test_package/conanfile.py new file mode 100644 index 00000000..84c779b0 --- /dev/null +++ b/packages/conan/recipes/jasper/test_package/conanfile.py @@ -0,0 +1,33 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/jasper/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") + diff --git a/packages/conan/recipes/jasper/test_package/test_package.c b/packages/conan/recipes/jasper/test_package/test_package.c new file mode 100644 index 00000000..8e07a2b9 --- /dev/null +++ b/packages/conan/recipes/jasper/test_package/test_package.c @@ -0,0 +1,51 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/jasper/all/test_package/test_package.c +*/ + +#include + +#include + +int main(int argc, char **argv) +{ + int i; + jas_tmr_t tmr; + jas_tmr_t dummytmr; + double t; + int numiters; + + numiters = 2; + + jas_tmr_start(&tmr); + for (i = numiters; i > 0; --i) { + jas_tmr_start(&dummytmr); + } + jas_tmr_stop(&tmr); + t = jas_tmr_get(&tmr); + t /= numiters; + printf("jas_tmr_start %.3f us\n", t * 1e6); + + jas_tmr_start(&tmr); + for (i = numiters; i > 0; --i) { + jas_tmr_stop(&dummytmr); + } + jas_tmr_stop(&tmr); + t = jas_tmr_get(&tmr); + t /= numiters; + printf("jas_tmr_stop %.3f us\n", t * 1e6); + + t = 0; + for (i = numiters; i > 0; --i) { + jas_tmr_start(&tmr); + jas_tmr_stop(&tmr); + t += jas_tmr_get(&tmr); + } + t /= numiters; + printf("zero time %.3f us\n", t * 1e6); + + return 0; +} diff --git a/packages/conan/recipes/libraw/CMakeLists.txt b/packages/conan/recipes/libraw/CMakeLists.txt new file mode 100644 index 00000000..f6b105c0 --- /dev/null +++ b/packages/conan/recipes/libraw/CMakeLists.txt @@ -0,0 +1,83 @@ +cmake_minimum_required(VERSION 3.8) +project(LibRaw LANGUAGES CXX) + +option(LIBRAW_BUILD_THREAD_SAFE "Build raw_r library with -pthread enabled" OFF) +option(LIBRAW_WITH_JPEG "Build with libjpeg" ON) +option(LIBRAW_WITH_LCMS "Build with LCMS" ON) +option(LIBRAW_WITH_JASPER "Build with Jasper" ON) + +if(RAW_LIB_VERSION_STRING VERSION_LESS 0.21) + set(libraw_LIB_SRCS ${LIBRAW_SRC_DIR}/internal/dcraw_common.cpp + ${LIBRAW_SRC_DIR}/internal/dcraw_fileio.cpp + ${LIBRAW_SRC_DIR}/internal/demosaic_packs.cpp + ${LIBRAW_SRC_DIR}/src/libraw_cxx.cpp + ${LIBRAW_SRC_DIR}/src/libraw_c_api.cpp + ${LIBRAW_SRC_DIR}/src/libraw_datastream.cpp + ) +else() + file(GLOB_RECURSE libraw_LIB_SRCS CONFIGURE_DEPENDS "${LIBRAW_SRC_DIR}/src/*.cpp") + + # Exclude placeholder (stub) implementations + file(GLOB_RECURSE exclude_libraw_LIB_SRCS CONFIGURE_DEPENDS "${LIBRAW_SRC_DIR}/src/*_ph.cpp") + list(REMOVE_ITEM libraw_LIB_SRCS ${exclude_libraw_LIB_SRCS}) +endif() + +if(LIBRAW_WITH_JPEG) + find_package(JPEG REQUIRED) +endif() +if(LIBRAW_WITH_LCMS) + find_package(lcms REQUIRED CONFIG) +endif() +if(LIBRAW_WITH_JASPER) + find_package(Jasper REQUIRED) +endif() + +add_library(raw ${libraw_LIB_SRCS}) +target_compile_features(raw PUBLIC cxx_std_11) +target_include_directories(raw PUBLIC "${LIBRAW_SRC_DIR}") +if(WIN32) + target_link_libraries(raw PUBLIC ws2_32) + if(BUILD_SHARED_LIBS) + target_compile_definitions(raw PUBLIC LIBRAW_BUILDLIB) + else() + target_compile_definitions(raw PUBLIC LIBRAW_NODLL) + endif() +endif() +if(MSVC) + target_compile_options(raw PUBLIC /wd4018 /wd4101 /wd4244 /wd4251 /wd4267 /wd4996) +endif() +if(LIBRAW_WITH_JPEG) + target_compile_definitions(raw PUBLIC USE_JPEG USE_JPEG8) + target_link_libraries(raw PUBLIC JPEG::JPEG) +endif () +if (LIBRAW_WITH_LCMS) + target_compile_definitions(raw PUBLIC USE_LCMS2) + target_link_libraries(raw PUBLIC lcms::lcms) +endif () +if (LIBRAW_WITH_JASPER) + target_compile_definitions(raw PUBLIC USE_JASPER) + target_link_libraries(raw PUBLIC Jasper::Jasper) +endif () + +include(GNUInstallDirs) +if(LIBRAW_BUILD_THREAD_SAFE) + add_library(raw_r ${libraw_LIB_SRCS}) + target_link_libraries(raw_r INTERFACE raw) + target_compile_options(raw_r PRIVATE -pthread) + target_link_options(raw_r PRIVATE -pthread) + target_include_directories(raw_r PUBLIC "${LIBRAW_SRC_DIR}") + install( + TARGETS raw_r + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + ) +endif() + +install(DIRECTORY "${LIBRAW_SRC_DIR}/libraw" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install( + TARGETS raw + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} +) diff --git a/packages/conan/recipes/libraw/conandata.yml b/packages/conan/recipes/libraw/conandata.yml new file mode 100644 index 00000000..39e20693 --- /dev/null +++ b/packages/conan/recipes/libraw/conandata.yml @@ -0,0 +1,19 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/libraw/all/conandata.yml + +sources: + "0.21.4": + url: "https://github.com/LibRaw/LibRaw/archive/0.21.4.tar.gz" + sha256: "8baeb5253c746441fadad62e9c5c43ff4e414e41b0c45d6dcabccb542b2dff4b" + "0.21.3": + url: "https://github.com/LibRaw/LibRaw/archive/0.21.3.tar.gz" + sha256: "dc3d8b54e333d9d5441336049db255d14b27f19bd326a306cf5aea866806780a" + "0.21.2": + url: "https://github.com/LibRaw/LibRaw/archive/0.21.2.tar.gz" + sha256: "7ac056e0d9e814d808f6973a950bbf45e71b53283eed07a7ea87117a6c0ced96" + "0.20.2": + url: "https://github.com/LibRaw/LibRaw/archive/0.20.2.tar.gz" + sha256: "02df7d403b34602b769bb38e5bf7d4258e075eeefbe980b6832e6e1491989d60" diff --git a/packages/conan/recipes/libraw/conanfile.py b/packages/conan/recipes/libraw/conanfile.py new file mode 100644 index 00000000..b29f2675 --- /dev/null +++ b/packages/conan/recipes/libraw/conanfile.py @@ -0,0 +1,144 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/libraw/all/conanfile.py + +import os + +from conan import ConanFile +from conan.tools.build import check_min_cppstd, stdcpp_library +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import copy, get +from conan.tools.microsoft import is_msvc + +required_conan_version = ">=1.53.0" + +class LibRawConan(ConanFile): + name = "libraw" + description = "LibRaw is a library for reading RAW files obtained from digital photo cameras (CRW/CR2, NEF, RAF, DNG, and others)." + license = "CDDL-1.0", "LGPL-2.1-only" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://www.libraw.org/" + topics = ("image", "photography", "raw") + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "build_thread_safe": [True, False], + "with_jpeg": [False, "libjpeg", "libjpeg-turbo", "mozjpeg"], + "with_lcms": [True, False], + "with_jasper": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + "build_thread_safe": False, + "with_jpeg": "libjpeg-turbo", # ASWF: match oiio default + "with_lcms": True, + "with_jasper": True, + } + exports_sources = ["CMakeLists.txt"] + + @property + def _min_cppstd(self): + return 11 + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + if is_msvc(self): + del self.options.build_thread_safe + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + # ASWF: we want DSOs in lib64 + self.cpp.package.libdirs = ["lib64"] + + def requirements(self): + # TODO: RawSpeed dependency (-DUSE_RAWSPEED) + # TODO: DNG SDK dependency (-DUSE_DNGSDK) + if self.options.with_jpeg == "libjpeg": + self.requires("libjpeg/9e") + elif self.options.with_jpeg == "libjpeg-turbo": + self.requires("libjpeg-turbo/3.0.0", transitive_libs=True) # ASWF: force DSO to be found + elif self.options.with_jpeg == "mozjpeg": + self.requires("mozjpeg/4.1.3") + if self.options.with_lcms: + self.requires("lcms/2.16") + if self.options.with_jasper: + self.requires("jasper/4.0.0") + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, self._min_cppstd) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + tc.variables["RAW_LIB_VERSION_STRING"] = self.version + tc.variables["LIBRAW_SRC_DIR"] = self.source_folder.replace("\\", "/") + tc.variables["LIBRAW_BUILD_THREAD_SAFE"] = self.options.get_safe("build_thread_safe", False) + tc.variables["LIBRAW_WITH_JPEG"] = bool(self.options.with_jpeg) + tc.variables["LIBRAW_WITH_LCMS"] = self.options.with_lcms + tc.variables["LIBRAW_WITH_JASPER"] = self.options.with_jasper + tc.generate() + + deps = CMakeDeps(self) + deps.generate() + + def build(self): + cmake = CMake(self) + cmake.configure(build_script_folder=os.path.join(self.source_folder, os.pardir)) + cmake.build() + + def package(self): + # ASWF: separate licenses from multiple package installs + copy(self, pattern="LICENSE*", dst=os.path.join(self.package_folder, "licenses", self.name), src=self.source_folder) + copy(self, pattern="COPYRIGHT", dst=os.path.join(self.package_folder, "licenses", self.name), src=self.source_folder) + cmake = CMake(self) + cmake.install() + + def package_info(self): + self.cpp_info.components["libraw_"].set_property("pkg_config_name", "libraw") + self.cpp_info.components["libraw_"].libs = ["raw"] + self.cpp_info.components["libraw_"].includedirs.append(os.path.join("include", "libraw")) + + if self.settings.os == "Windows": + self.cpp_info.components["libraw_"].system_libs.append("ws2_32") + if not self.options.shared: + self.cpp_info.components["libraw_"].defines.append("LIBRAW_NODLL") + + requires = [] + if self.options.with_jpeg == "libjpeg": + requires.append("libjpeg::libjpeg") + elif self.options.with_jpeg == "libjpeg-turbo": + requires.append("libjpeg-turbo::jpeg") + elif self.options.with_jpeg == "mozjpeg": + requires.append("mozjpeg::libjpeg") + if self.options.with_lcms: + requires.append("lcms::lcms") + if self.options.with_jasper: + requires.append("jasper::jasper") + self.cpp_info.components["libraw_"].requires = requires + + if self.options.get_safe("build_thread_safe"): + self.cpp_info.components["libraw_r"].set_property("pkg_config_name", "libraw_r") + self.cpp_info.components["libraw_r"].libs = ["raw_r"] + self.cpp_info.components["libraw_r"].includedirs.append(os.path.join("include", "libraw")) + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.components["libraw_r"].system_libs.append("pthread") + self.cpp_info.components["libraw_r"].requires = requires + + if not self.options.shared and stdcpp_library(self): + self.cpp_info.components["libraw_"].system_libs.append(stdcpp_library(self)) + if self.options.get_safe("build_thread_safe"): + self.cpp_info.components["libraw_r"].system_libs.append(stdcpp_library(self)) + diff --git a/packages/conan/recipes/libraw/test_package/CMakeLists.txt b/packages/conan/recipes/libraw/test_package/CMakeLists.txt new file mode 100644 index 00000000..efbf7e99 --- /dev/null +++ b/packages/conan/recipes/libraw/test_package/CMakeLists.txt @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/libraw/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(libraw REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE libraw::libraw) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) diff --git a/packages/conan/recipes/libraw/test_package/conanfile.py b/packages/conan/recipes/libraw/test_package/conanfile.py new file mode 100644 index 00000000..0e3599d4 --- /dev/null +++ b/packages/conan/recipes/libraw/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/libraw/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/libraw/test_package/test_package.cpp b/packages/conan/recipes/libraw/test_package/test_package.cpp new file mode 100644 index 00000000..141d1b16 --- /dev/null +++ b/packages/conan/recipes/libraw/test_package/test_package.cpp @@ -0,0 +1,16 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/libraw/all/test_package/test_package.cpp +*/ + +#include +#include + +int main() +{ + std::cout << libraw_version() << "\n"; + return 0; +} diff --git a/packages/conan/recipes/ninja/conandata.yml b/packages/conan/recipes/ninja/conandata.yml index bdbe6802..e88b978b 100644 --- a/packages/conan/recipes/ninja/conandata.yml +++ b/packages/conan/recipes/ninja/conandata.yml @@ -1,22 +1,34 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/ninja/all/conandata.yml + sources: - "1.10.0": - url: "https://github.com/ninja-build/ninja/archive/v1.10.0.tar.gz" - sha256: "3810318b08489435f8efc19c05525e80a993af5a55baa0dfeae0465a9d45f99f" - "1.10.1": - url: "https://github.com/ninja-build/ninja/archive/v1.10.1.tar.gz" - sha256: "a6b6f7ac360d4aabd54e299cc1d8fa7b234cd81b9401693da21221c62569a23e" - "1.10.2": - url: "https://github.com/ninja-build/ninja/archive/v1.10.2.tar.gz" - sha256: "ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed" - "1.11.0": - url: "https://github.com/ninja-build/ninja/archive/v1.11.0.tar.gz" - sha256: "3c6ba2e66400fe3f1ae83deb4b235faf3137ec20bd5b08c29bfc368db143e4c6" - "1.11.1": - url: "https://github.com/ninja-build/ninja/archive/v1.11.1.tar.gz" - sha256: "31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea" + "1.13.1": + url: "https://github.com/ninja-build/ninja/archive/v1.13.1.tar.gz" + sha256: "f0055ad0369bf2e372955ba55128d000cfcc21777057806015b45e4accbebf23" + "1.13.0": + url: "https://github.com/ninja-build/ninja/archive/v1.13.0.tar.gz" + sha256: "f08641d00099a9e40d44ec0146f841c472ae58b7e6dd517bee3945cfd923cedf" "1.12.1": url: "https://github.com/ninja-build/ninja/archive/v1.12.1.tar.gz" sha256: "821bdff48a3f683bc4bb3b6f0b5fe7b2d647cf65d52aeb63328c91a6c6df285a" + "1.11.1": + url: "https://github.com/ninja-build/ninja/archive/v1.11.1.tar.gz" + sha256: "31747ae633213f1eda3842686f83c2aa1412e0f5691d1c14dbbcc67fe7400cea" + "1.11.0": + url: "https://github.com/ninja-build/ninja/archive/v1.11.0.tar.gz" + sha256: "3c6ba2e66400fe3f1ae83deb4b235faf3137ec20bd5b08c29bfc368db143e4c6" + "1.10.2": + url: "https://github.com/ninja-build/ninja/archive/v1.10.2.tar.gz" + sha256: "ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed" + "1.10.1": + url: "https://github.com/ninja-build/ninja/archive/v1.10.1.tar.gz" + sha256: "a6b6f7ac360d4aabd54e299cc1d8fa7b234cd81b9401693da21221c62569a23e" + "1.10.0": + url: "https://github.com/ninja-build/ninja/archive/v1.10.0.tar.gz" + sha256: "3810318b08489435f8efc19c05525e80a993af5a55baa0dfeae0465a9d45f99f" patches: "1.10.0": - base_path: source_subfolder diff --git a/packages/conan/recipes/ninja/conanfile.py b/packages/conan/recipes/ninja/conanfile.py index f4418fca..49062813 100644 --- a/packages/conan/recipes/ninja/conanfile.py +++ b/packages/conan/recipes/ninja/conanfile.py @@ -1,36 +1,27 @@ # Copyright (c) Contributors to the conan-center-index Project. All rights reserved. # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/ninja/all/conanfile.py -from conan import ConanFile -from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout -from conan.tools.files import ( - apply_conandata_patches, - collect_libs, - copy, - export_conandata_patches, - get, - rmdir, -) -from conan.tools.microsoft import is_msvc +from conan import ConanFile, conan_version +from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout +from conan.tools.files import copy, get, replace_in_file from conan.tools.scm import Version import os +required_conan_version = ">=1.52.0" + class NinjaConan(ConanFile): name = "ninja" package_type = "application" description = "Ninja is a small build system with a focus on speed" license = "Apache-2.0" - url = "https://github.com/AcademySoftwareFoundation/aswf-docker" + url = "https://github.com/conan-io/conan-center-index" homepage = "https://github.com/ninja-build/ninja" topics = ("ninja", "build") - settings = ( - "os", - "arch", - "compiler", - "build_type", - ) + settings = "os", "arch", "compiler", "build_type" def layout(self): cmake_layout(self, src_folder="src") @@ -42,15 +33,16 @@ def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) cmakelists = os.path.join(self.source_folder, "CMakeLists.txt") + #prevent re2c (which is optional and not needed) from being used + replace_in_file(self, cmakelists, "if(RE2C)", "if(FALSE)") + def generate(self): tc = CMakeToolchain(self) - tc.variables["BUILD_TESTING"] = "OFF" + tc.variables["BUILD_TESTING"] = False if self.settings.os == "Linux" and "libstdc++" in self.settings.compiler.libcxx: # Link C++ library statically on Linux so that it can run on systems # with an older C++ runtime - tc.cache_variables[ - "CMAKE_EXE_LINKER_FLAGS" - ] = "-static-libstdc++ -static-libgcc" + tc.cache_variables["CMAKE_EXE_LINKER_FLAGS"] = "-static-libstdc++ -static-libgcc" tc.generate() def build(self): @@ -59,17 +51,15 @@ def build(self): cmake.build() def package(self): - copy( - self, - "COPYING", - src=self.source_folder, - dst=os.path.join(self.package_folder, "licenses", self.name), - ) + # ASWF: license files in per package folder + copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() def package_info(self): self.cpp_info.includedirs = [] self.cpp_info.libdirs = [] - self.env_info.PATH.append(os.path.join(self.package_folder, "bin")) - self.env_info.CONAN_CMAKE_GENERATOR = "Ninja" + # TODO: to remove in conan v2 + if Version(conan_version).major < 2: + self.env_info.PATH.append(os.path.join(self.package_folder, "bin")) + self.env_info.CONAN_CMAKE_GENERATOR = "Ninja" diff --git a/packages/conan/recipes/nlohmann_json/conandata.yml b/packages/conan/recipes/nlohmann_json/conandata.yml new file mode 100644 index 00000000..1d36ee36 --- /dev/null +++ b/packages/conan/recipes/nlohmann_json/conandata.yml @@ -0,0 +1,64 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/nlohmann_json/all/conandata.yml + +sources: + "3.12.0": + url: "https://github.com/nlohmann/json/archive/v3.12.0.tar.gz" + sha256: "4b92eb0c06d10683f7447ce9406cb97cd4b453be18d7279320f7b2f025c10187" + "3.11.3": + url: "https://github.com/nlohmann/json/archive/v3.11.3.tar.gz" + sha256: "0d8ef5af7f9794e3263480193c491549b2ba6cc74bb018906202ada498a79406" + "3.11.2": + url: "https://github.com/nlohmann/json/archive/v3.11.2.tar.gz" + sha256: "d69f9deb6a75e2580465c6c4c5111b89c4dc2fa94e3a85fcd2ffcd9a143d9273" + "3.11.1": + url: "https://github.com/nlohmann/json/archive/v3.11.1.tar.gz" + sha256: "598becb62ee0e01cf32795073c8ae09b6e95335cd43a4417b785d93ce105b0d0" + "3.11.0": + url: "https://github.com/nlohmann/json/archive/v3.11.0.tar.gz" + sha256: "e0c4fbd03c0bb7e99b40791e0276be61e5f531106e1486e8f0d771a7ed6d754a" + "3.10.5": + url: "https://github.com/nlohmann/json/archive/v3.10.5.tar.gz" + sha256: "5daca6ca216495edf89d167f808d1d03c4a4d929cef7da5e10f135ae1540c7e4" + "3.10.4": + url: "https://github.com/nlohmann/json/archive/v3.10.4.tar.gz" + sha256: "1155fd1a83049767360e9a120c43c578145db3204d2b309eba49fbbedd0f4ed3" + "3.10.3": + url: "https://github.com/nlohmann/json/archive/v3.10.3.tar.gz" + sha256: "e0d7c1b120cac47fa7f14a41d10a5d390f67d423d8e97b9d6834887285d6873c" + "3.10.2": + sha256: 081ed0f9f89805c2d96335c3acfa993b39a0a5b4b4cef7edb68dd2210a13458c + url: https://github.com/nlohmann/json/archive/v3.10.2.tar.gz + "3.10.0": + sha256: eb8b07806efa5f95b349766ccc7a8ec2348f3b2ee9975ad879259a371aea8084 + url: https://github.com/nlohmann/json/archive/v3.10.0.tar.gz + "3.9.1": + sha256: 4cf0df69731494668bdd6460ed8cb269b68de9c19ad8c27abc24cd72605b2d5b + url: https://github.com/nlohmann/json/archive/v3.9.1.tar.gz + "3.9.0": + sha256: 9943db11eeaa5b23e58a88fbc26c453faccef7b546e55063ad00e7caaaf76d0b + url: https://github.com/nlohmann/json/archive/v3.9.0.tar.gz + "3.8.0": + sha256: 7d0edf65f2ac7390af5e5a0b323b31202a6c11d744a74b588dc30f5a8c9865ba + url: https://github.com/nlohmann/json/archive/v3.8.0.tar.gz + "3.7.3": + sha256: 249548F4867417D66AE46B338DFE0A2805F3323E81C9E9B83C89F3ADBFDE6F31 + url: https://github.com/nlohmann/json/archive/v3.7.3.tar.gz + "3.7.0": + sha256: D51A3A8D3EFBB1139D7608E28782EA9EFEA7E7933157E8FF8184901EFD8EE760 + url: https://github.com/nlohmann/json/archive/v3.7.0.tar.gz + "3.5.0": + sha256: E0B1FC6CC6CA05706CCE99118A87ACA5248BD9DB3113E703023D23F044995C1D + url: https://github.com/nlohmann/json/archive/v3.5.0.tar.gz + "3.4.0": + sha256: C377963A95989270C943D522BFEFE7B889EF5ED0E1E15D535FD6F6F16ED70732 + url: https://github.com/nlohmann/json/archive/v3.4.0.tar.gz + "3.2.0": + sha256: 2de558ff3b3b32eebfb51cf2ceb835a0fa5170e6b8712b02be9c2c07fcfe52a1 + url: https://github.com/nlohmann/json/archive/v3.2.0.tar.gz + "3.1.1": + sha256: 9f3549824af3ca7e9707a2503959886362801fb4926b869789d6929098a79e47 + url: https://github.com/nlohmann/json/archive/v3.1.1.tar.gz diff --git a/packages/conan/recipes/nlohmann_json/conanfile.py b/packages/conan/recipes/nlohmann_json/conanfile.py new file mode 100644 index 00000000..104ab7cb --- /dev/null +++ b/packages/conan/recipes/nlohmann_json/conanfile.py @@ -0,0 +1,60 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/nlohmann_json/all/conanfile.py + +from conan import ConanFile +from conan.tools.build import check_min_cppstd +from conan.tools.files import copy, get +from conan.tools.layout import basic_layout +import os + +required_conan_version = ">=1.50.0" + + +class NlohmannJsonConan(ConanFile): + name = "nlohmann_json" + homepage = "https://github.com/nlohmann/json" + description = "JSON for Modern C++ parser and generator." + topics = "json", "header-only" + url = "https://github.com/conan-io/conan-center-index" + license = "MIT" + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + no_copy_source = True + + @property + def _minimum_cpp_standard(self): + return 11 + + def layout(self): + basic_layout(self, src_folder="src") + + def package_id(self): + self.info.clear() + + def validate(self): + if self.settings.compiler.cppstd: + check_min_cppstd(self, self._minimum_cpp_standard) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + pass + + def build(self): + pass + + def package(self): + # ASWF: license file in package specific directories + copy(self, "LICENSE*", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) + copy(self, "*", os.path.join(self.source_folder, "include"), os.path.join(self.package_folder, "include")) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "nlohmann_json") + self.cpp_info.set_property("cmake_target_name", "nlohmann_json::nlohmann_json") + self.cpp_info.set_property("pkg_config_name", "nlohmann_json") + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] \ No newline at end of file diff --git a/packages/conan/recipes/nlohmann_json/test_package/CMakeLists.txt b/packages/conan/recipes/nlohmann_json/test_package/CMakeLists.txt new file mode 100644 index 00000000..73202037 --- /dev/null +++ b/packages/conan/recipes/nlohmann_json/test_package/CMakeLists.txt @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/nlohmann_json/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(nlohmann_json REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE nlohmann_json::nlohmann_json) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) diff --git a/packages/conan/recipes/nlohmann_json/test_package/conanfile.py b/packages/conan/recipes/nlohmann_json/test_package/conanfile.py new file mode 100644 index 00000000..f5768760 --- /dev/null +++ b/packages/conan/recipes/nlohmann_json/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/nlohmann_json/all/test_package/conanfile.py + +import os + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import CMake, cmake_layout + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + self.run(os.path.join(self.cpp.build.bindirs[0], "test_package"), env="conanrun") diff --git a/packages/conan/recipes/nlohmann_json/test_package/test_package.cpp b/packages/conan/recipes/nlohmann_json/test_package/test_package.cpp new file mode 100644 index 00000000..bfd068ad --- /dev/null +++ b/packages/conan/recipes/nlohmann_json/test_package/test_package.cpp @@ -0,0 +1,38 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5f19361f49bc31a349b383c1f95c7f79627f728a/recipes/nlohmann_json/all/test_package/test_package.cpp +*/ + +#include + +#include + +using json = nlohmann::json; + +int main() { + const json data = { + {"pi", 3.141}, + {"happy", true}, + {"name", "Niels"}, + {"nothing", nullptr}, + {"answer", { + {"everything", 42} + }}, + {"list", {1, 0, 2}}, + {"object", { + {"currency", "USD"}, + {"value", 42.99} + }} + }; + +#if JSON_USE_IMPLICIT_CONVERSIONS + float f = data["pi"]; +#else + auto f = data["pi"].get(); +#endif + std::cout << data.dump(4) << "\n"; + return 0; +} \ No newline at end of file diff --git a/packages/conan/recipes/oiio/conanfile.py b/packages/conan/recipes/oiio/conanfile.py index 99083ee6..81a4c08c 100644 --- a/packages/conan/recipes/oiio/conanfile.py +++ b/packages/conan/recipes/oiio/conanfile.py @@ -66,7 +66,7 @@ class OpenImageIOConan(ConanFile): "with_ffmpeg": False, # ASWF: disable until we resolve dependencies "with_giflib": True, "with_libheif": False,# ASWF: disable until we resolve dependencies - "with_raw": False, # libraw is available under CDDL-1.0 or LGPL-2.1, for this reason it is disabled by default + "with_raw": True, # libraw is available under CDDL-1.0 or LGPL-2.1, for this reason it is disabled by default ASWF: enable for rawtoaces "with_openjpeg": True, "with_openvdb": False, # FIXME: broken on M1 "with_ptex": True, diff --git a/packages/conan/recipes/qt/conandata.yml b/packages/conan/recipes/qt/conandata.yml index 236e7638..c6c7c8b9 100644 --- a/packages/conan/recipes/qt/conandata.yml +++ b/packages/conan/recipes/qt/conandata.yml @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/qt/6.x.x/conandata.yml +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/qt/6.x.x/conandata.yml sources: "6.8.3": @@ -151,6 +151,16 @@ patches: "patch_source": "https://download.qt.io/archive/qt/6.8/CVE-2025-5683-qtimageformats-6.8.patch" "patch_description": "CVE-2025-5683 ICNS image format crash" # Fixed in 6.8.2: CVE-2025-23050 + - "base_path": "qtwebengine" + "patch_description": "Workaround for too long .rps file name" + "patch_file": "patches/c72097e_6.8.3.diff" + "patch_source": "https://codereview.qt-project.org/c/yocto/meta-qt5/+/192172" + "patch_type": "bugfix" + - "base_path": "qtwebengine/src/3rdparty" + "patch_description": "Missing dependencies are added to resolve the dependencies issues when compiling chrome driver." + "patch_file": "patches/ee87cbe_6.8.3.diff" + "patch_source": "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=ee87cbeb738a7f1108e38afc75f5b35b5085fe90" + "patch_type": "bugfix" "6.7.3": - "base_path": "qtwebengine" "patch_description": "Workaround for too long .rps file name" diff --git a/packages/conan/recipes/qt/conanfile.py b/packages/conan/recipes/qt/conanfile.py index 939d90c2..278f4a83 100644 --- a/packages/conan/recipes/qt/conanfile.py +++ b/packages/conan/recipes/qt/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/2a3cb93885141024c1b405a01a79fb3abc239b12/recipes/qt/6.x.x/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/5aa8fda35e023ceeaefb5a670ae9c0c3ca4fdf25/recipes/qt/6.x.x/conanfile.py import configparser import glob @@ -11,7 +11,7 @@ import textwrap import resource # ASWF needed to increase maximum number of open files -from conan import ConanFile, conan_version +from conan import ConanFile from conan.tools.apple import is_apple_os from conan.tools.build import cross_building, check_min_cppstd, default_cppstd from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout @@ -22,8 +22,7 @@ from conan.tools.scm import Version from conan.errors import ConanException, ConanInvalidConfiguration -required_conan_version = ">=1.55.0" - +required_conan_version = ">=2.0" class QtConan(ConanFile): _submodules = ["qtsvg", "qtdeclarative", "qttools", "qttranslations", "qtdoc", @@ -138,15 +137,12 @@ class QtConan(ConanFile): _submodules_tree = None - @property - def _settings_build(self): - return getattr(self, "settings_build", self.settings) - @property def _get_module_tree(self): if self._submodules_tree: return self._submodules_tree config = configparser.ConfigParser() + # the reference https://code.qt.io/cgit/qt/qt5.git/tree/.gitmodules?h={self.version} config.read(os.path.join(self.recipe_folder, f"qtmodules{self.version}.conf")) self._submodules_tree = {} assert config.sections(), f"no qtmodules.conf file for version {self.version}" @@ -192,24 +188,9 @@ def config_options(self): for submodule in self._submodules: if submodule not in self._get_module_tree: - self._debug_output(f"Qt6: Removing {submodule} option as it is not in the module tree for this version, or is marked as obsolete or ignore") + self.output.debug(f"Qt6: Removing {submodule} option as it is not in the module tree for this version, or is marked as obsolete or ignore") self.options.rm_safe(submodule) - @property - def _minimum_compilers_version(self): - # Qt6 requires C++17 - return { - "Visual Studio": "16", - "msvc": "192", - "gcc": "8", - "clang": "9", - "apple-clang": "12" if Version(self.version) >= "6.5.0" else "11" - } - - def _debug_output(self, message): - if Version(conan_version) >= "2": - self.output.debug(message) - def configure(self): # ASWF: Define the submodules we need for ASWF build and PySide in particular @@ -256,7 +237,7 @@ def configure(self): self.output.warning(f"qt6: {module} requested because {status}_modules=True" f" but it has been explicitly disabled with {module}=False") - self.output.info(f"qt6: requested modules {list(requested_modules)}") + self.output.debug(f"qt6: requested modules {list(requested_modules)}") required_modules = {} for module in requested_modules: @@ -266,7 +247,7 @@ def configure(self): required_but_disabled = [m for m in required_modules.keys() if self.options.get_safe(m) == False] if required_modules: - self._debug_output(f"qt6: required_modules modules {list(required_modules.keys())}") + self.output.debug(f"qt6: required_modules modules {list(required_modules.keys())}") if required_but_disabled: required_by = set() for m in required_but_disabled: @@ -297,34 +278,41 @@ def configure(self): for status in self._module_statuses: # These are convenience only, should not affect package_id option_name = f"{status}_modules" - self._debug_output(f"qt6 removing convenience option: {option_name}," + self.output.debug(f"qt6 removing convenience option: {option_name}," f" see individual module options") self.options.rm_safe(option_name) for option in self.options.items(): - self._debug_output(f"qt6 option: {option}") + self.output.debug(f"qt6 option: {option}") - def validate(self): - if os.getenv('CONAN_CENTER_BUILD_SERVICE') is not None: - if self.info.settings.compiler == "gcc" and Version(self.info.settings.compiler.version) >= "11" or \ - self.info.settings.compiler == "clang" and Version(self.info.settings.compiler.version) >= "12": - raise ConanInvalidConfiguration("qt is not supported on gcc11 and clang >= 12 on C3I until conan-io/conan-center-index#13472 is fixed") + def validate_build(self): + check_min_cppstd(self, 17) - # C++ minimum standard required - if self.settings.compiler.get_safe("cppstd"): + def validate(self): + skip_ci_reason = self.conf.get("user.conancenter:skip_ci_build", check_type=str) + if skip_ci_reason: + # Currently failing on CI for gcc11, see conan-io/conan-center-index#13472 + raise ConanInvalidConfiguration(skip_ci_reason) + + if self.settings_target is None: + # Raise when consumed in the host context, but allow comaptible when + # in the build context check_min_cppstd(self, 17) - minimum_version = self._minimum_compilers_version.get(str(self.settings.compiler), False) - if not minimum_version: - self.output.warning("C++17 support required. Your compiler is unknown. Assuming it supports C++17.") - elif Version(self.settings.compiler.version) < minimum_version: - raise ConanInvalidConfiguration("C++17 support required, which your compiler does not support.") - if Version(self.version) >= "6.4.0" and self.settings.compiler == "apple-clang" and Version(self.settings.compiler.version) < "12": + if self.settings.compiler == "apple-clang" and Version(self.settings.compiler.version) < "12": raise ConanInvalidConfiguration("apple-clang >= 12 required by qt >= 6.4.0") - if Version(self.version) >= "6.6.1" and self.settings.compiler == "apple-clang" and Version(self.settings.compiler.version) < "13.1": + if Version(self.version) >= "6.6.1" and self.settings.compiler == "apple-clang" and Version(self.settings.compiler.version) < "13": + # note: assuming that by now, any xcode 13 is updated to the latest 13.4.1 raise ConanInvalidConfiguration("apple-clang >= 13.1 is required by qt >= 6.6.1 cf QTBUG-119490") + if Version(self.version) >= "6.8.3": + if self.settings.compiler == "msvc" and Version(self.settings.compiler.version) < "193": + raise ConanInvalidConfiguration("Visual Studio 2022 (MSVC 1930 or newer) is required by qt >= 6.8.3") + + if self.settings.compiler == "apple-clang" and Version(self.settings.compiler.version) < "15": + raise ConanInvalidConfiguration("apple-clang >= 14 is required by qt >= 6.8.3") + if self.options.get_safe("qtwebengine"): if not self.options.shared: raise ConanInvalidConfiguration("Static builds of Qt WebEngine are not supported") @@ -365,9 +353,6 @@ def validate(self): if self.options.get_safe("qtwayland", False) and not self.dependencies.direct_host["xkbcommon"].options.with_wayland: raise ConanInvalidConfiguration("The 'with_wayland' option for the 'xkbcommon' package must be enabled when the 'qtwayland' option is enabled") - if cross_building(self): - raise ConanInvalidConfiguration("cross compiling qt 6 is not yet supported. Contributions are welcome") - if self.options.with_sqlite3 and not self.dependencies["sqlite3"].options.enable_column_metadata: raise ConanInvalidConfiguration("sqlite3 option enable_column_metadata must be enabled for qt") @@ -458,21 +443,19 @@ def requirements(self): if self.settings.os in ['Linux', 'FreeBSD'] and self.options.with_gssapi: self.requires("krb5/1.18.3") # conan-io/conan-center-index#4102 if self.options.get_safe("with_md4c", False): - self.requires("md4c/0.4.8",transitive_libs=True) # ASWF otherwise does not link + self.requires("md4c/0.4.8", transitive_libs=True) # ASWF otherwise does not link def build_requirements(self): self.tool_requires("cmake/[>=3.21.1 <4]") self.tool_requires("ninja/[>=1.12 <2]") if not self.conf.get("tools.gnu:pkg_config", check_type=str): self.tool_requires("pkgconf/[>=2.2 <3]") - if self.settings.os == "Windows": - self.tool_requires('strawberryperl/5.32.1.1') if self.options.get_safe("qtwebengine"): self.tool_requires("nodejs/18.15.0") self.tool_requires("gperf/3.1") # gperf, bison, flex, python >= 2.7.5 & < 3 - if self._settings_build.os == "Windows": + if self.settings_build.os == "Windows": self.tool_requires("winflexbison/2.5.25") else: self.tool_requires("bison/3.8.2") @@ -525,7 +508,7 @@ def generate(self): env.unset("VCPKG_ROOT") env.prepend_path("PKG_CONFIG_PATH", self.generators_folder) env.vars(self).save_script("conanbuildenv_pkg_config_path") - if self._settings_build.os == "Macos": + if self.settings_build.os == "Macos": # On macOS, SIP resets DYLD_LIBRARY_PATH injected by VirtualBuildEnv & VirtualRunEnv dyld_library_path = "$DYLD_LIBRARY_PATH" dyld_library_path_build = vbe.vars().get("DYLD_LIBRARY_PATH") @@ -575,8 +558,8 @@ def generate(self): # tc.variables["QT_FEATURE_openssl_linked"] = "ON" # TODO: Remove after fixing https://github.com/conan-io/conan/issues/12012 - if is_msvc(self): - tc.cache_variables["CMAKE_TRY_COMPILE_CONFIGURATION"] = str(self.settings.build_type) + # Required for qt_config_compile_test() calls against CMakeDeps targets to work correctly. + tc.cache_variables["CMAKE_TRY_COMPILE_CONFIGURATION"] = str(self.settings.build_type) if self.options.with_dbus: tc.variables["INPUT_dbus"] = "linked" @@ -671,14 +654,17 @@ def generate(self): if self.options.cross_compile: tc.variables["QT_QMAKE_DEVICE_OPTIONS"] = f"CROSS_COMPILE={self.options.cross_compile}" if cross_building(self): - tc.variables["QT_HOST_PATH"] = self.dependencies.direct_build["qt"].package_folder + # Mainly to locate Qt6HostInfoConfig.cmake + tc.cache_variables["QT_HOST_PATH"] = self.dependencies.direct_build["qt"].package_folder + # Stand-in for Qt6CoreTools - which is loaded for the executable targets + tc.cache_variables["CMAKE_PROJECT_Qt_INCLUDE"] = os.path.join(self.dependencies.direct_build["qt"].package_folder, self._cmake_executables_file) + # Ensure tools for host are always built + tc.cache_variables["QT_FORCE_BUILD_TOOLS"] = True tc.variables["FEATURE_pkg_config"] = "ON" if self.settings.compiler == "gcc" and self.settings.build_type == "Debug" and not self.options.shared: tc.variables["BUILD_WITH_PCH"] = "OFF" # disabling PCH to save disk space - if self.settings.os == "Windows": - tc.variables["HOST_PERL"] = self.dependencies.build["strawberryperl"].conf_info.get("user.strawberryperl:perl", check_type=str) #"set(QT_EXTRA_INCLUDEPATHS ${CONAN_INCLUDE_DIRS})\n" #"set(QT_EXTRA_DEFINES ${CONAN_DEFINES})\n" #"set(QT_EXTRA_LIBDIRS ${CONAN_LIB_DIRS})\n" @@ -689,10 +675,9 @@ def generate(self): 11: "FEATURE_cxx11", 14: "FEATURE_cxx14", 17: "FEATURE_cxx17", - 20: "FEATURE_cxx20" + 20: "FEATURE_cxx20", + 23: "FEATURE_cxx2b" } - if Version(self.version) >= "6.5.0": - cpp_std_map[23] = "FEATURE_cxx2b" for std, feature in cpp_std_map.items(): tc.variables[feature] = "ON" if int(current_cpp_std) >= std else "OFF" @@ -716,8 +701,6 @@ def package_id(self): self.info.settings.compiler.runtime = "MT/MTd" elif self.info.settings.compiler == "msvc": self.info.settings.compiler.runtime_type = "Release/Debug" - if self.info.settings.os == "Android": - del self.info.options.android_sdk def source(self): destination = self.source_folder @@ -745,9 +728,6 @@ def source(self): replace_in_file(self, os.path.join(self.source_folder, "qtbase", "configure.cmake"), "set_property(TARGET ZLIB::ZLIB PROPERTY IMPORTED_GLOBAL TRUE)", "") - if Version(self.version) <= "6.4.0": - # use official variable name https://cmake.org/cmake/help/latest/module/FindFontconfig.html - replace_in_file(self, os.path.join(self.source_folder, "qtbase", "src", "gui", "configure.cmake"), "FONTCONFIG_FOUND", "Fontconfig_FOUND") # ASWF: 6.5.6 already has QtAutodetectHelpers.cmake replace_in_file(self, @@ -902,11 +882,11 @@ def package(self): rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) # ASWF: We want to be able to easily consume Conan packages using CMake outside of Conan itself # for mask in ["Find*.cmake", "*Config.cmake", "*-config.cmake"]: - # rm(self, mask, self.package_folder, recursive=True) + # rm(self, mask, self.package_folder, recursive=True, excludes="Qt6HostInfoConfig.cmake") rm(self, "*.la*", os.path.join(self.package_folder, "lib64"), recursive=True) rm(self, "*.pdb*", self.package_folder, recursive=True) rm(self, "ensure_pro_file.cmake", self.package_folder, recursive=True) - os.remove(os.path.join(self.package_folder, "libexec" if Version(self.version) >= "6.5.0" and self.settings.os != "Windows" else "bin", "qt-cmake-private-install.cmake")) + os.remove(os.path.join(self.package_folder, "libexec" if self.settings.os != "Windows" else "bin", "qt-cmake-private-install.cmake")) # ASWF: cmake modules in lib64 for m in os.listdir(os.path.join(self.package_folder, "lib64", "cmake")): @@ -919,7 +899,8 @@ def package(self): continue # ASWF: don't remove cmake modules - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake", m)) + # if m != "Qt6HostInfo": + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake", m)) extension = "" if self.settings.os == "Windows": @@ -931,14 +912,14 @@ def package(self): filecontents += f"set(QT_VERSION_PATCH {ver.patch})\n" if self.settings.os == "Macos": filecontents += 'set(__qt_internal_cmake_apple_support_files_path "${CMAKE_CURRENT_LIST_DIR}/../../../lib/cmake/Qt6/macos")\n' - targets = ["moc", "rcc", "tracegen", "cmake_automoc_parser", "qlalr", "qmake"] + targets = ["moc", "qlalr", "rcc", "tracegen", "cmake_automoc_parser", "qmake", "qtpaths", "syncqt", "tracepointgen"] if self.options.with_dbus: targets.extend(["qdbuscpp2xml", "qdbusxml2cpp"]) if self.options.gui: targets.append("qvkgen") if self.options.widgets: targets.append("uic") - if self._settings_build.os == "Macos" and self.settings.os != "iOS": + if self.settings_build.os == "Macos" and self.settings.os != "iOS": targets.extend(["macdeployqt"]) if self.settings.os == "Windows": targets.extend(["windeployqt"]) @@ -1038,9 +1019,6 @@ def package_info(self): self.cpp_info.set_property("cmake_file_name", "Qt6") self.cpp_info.set_property("pkg_config_name", "qt6") - self.cpp_info.names["cmake_find_package"] = "Qt6" - self.cpp_info.names["cmake_find_package_multi"] = "Qt6" - # consumers will need the QT_PLUGIN_PATH defined in runenv self.runenv_info.define("QT_PLUGIN_PATH", os.path.join(self.package_folder, "plugins")) self.buildenv_info.define("QT_PLUGIN_PATH", os.path.join(self.package_folder, "plugins")) @@ -1052,8 +1030,6 @@ def _add_build_module(component, module): if component not in build_modules: build_modules[component] = [] build_modules[component].append(module) - self.cpp_info.components[component].build_modules["cmake_find_package"].append(module) - self.cpp_info.components[component].build_modules["cmake_find_package_multi"].append(module) libsuffix = "" if self.settings.build_type == "Debug": @@ -1078,8 +1054,6 @@ def _create_module(module, requires, has_include_dir=True): assert componentname not in self.cpp_info.components, f"Module {module} already present in self.cpp_info.components" self.cpp_info.components[componentname].set_property("cmake_target_name", f"Qt6::{module}") self.cpp_info.components[componentname].set_property("pkg_config_name", f"Qt6{module}") - self.cpp_info.components[componentname].names["cmake_find_package"] = module - self.cpp_info.components[componentname].names["cmake_find_package_multi"] = module if module.endswith("Private"): libname = module[:-7] else: @@ -1096,8 +1070,6 @@ def _create_plugin(pluginname, libname, plugintype, requires): componentname = f"qt{pluginname}" assert componentname not in self.cpp_info.components, f"Plugin {pluginname} already present in self.cpp_info.components" self.cpp_info.components[componentname].set_property("cmake_target_name", f"Qt6::{pluginname}") - self.cpp_info.components[componentname].names["cmake_find_package"] = pluginname - self.cpp_info.components[componentname].names["cmake_find_package_multi"] = pluginname if not self.options.shared: self.cpp_info.components[componentname].libs = [libname + libsuffix] self.cpp_info.components[componentname].libdirs = [os.path.join("plugins", plugintype)] @@ -1139,8 +1111,6 @@ def _create_plugin(pluginname, libname, plugintype, requires): self.cpp_info.components["qtCore"].system_libs.append("synchronization") self.cpp_info.components["qtCore"].system_libs.append("runtimeobject") self.cpp_info.components["qtPlatform"].set_property("cmake_target_name", "Qt6::Platform") - self.cpp_info.components["qtPlatform"].names["cmake_find_package"] = "Platform" - self.cpp_info.components["qtPlatform"].names["cmake_find_package_multi"] = "Platform" self.cpp_info.components["qtPlatform"].includedirs = [os.path.join("mkspecs", self._xplatform())] if self.options.with_dbus: _create_module("DBus", ["dbus::dbus"]) @@ -1239,7 +1209,10 @@ def _create_plugin(pluginname, libname, plugintype, requires): self.cpp_info.components["QCocoaIntegrationPlugin"].frameworks = [ "AppKit", "Carbon", "CoreServices", "CoreVideo", "IOKit", "IOSurface", "Metal", "QuartzCore" ] - elif self.settings.os in ["iOS", "tvOS"]: + if self.settings.os in ["Macos", "iOS"]: + # https://github.com/qt/qtbase/blob/v6.5.3/src/gui/CMakeLists.txt#L963 + self.cpp_info.components["qtGui"].frameworks.append("Metal") + if self.settings.os in ["iOS", "tvOS"]: _create_plugin("QIOSIntegrationPlugin", "qios", "platforms", []) # https://github.com/qt/qtbase/blob/v6.6.1/src/plugins/platforms/ios/CMakeLists.txt#L32-L37 self.cpp_info.components["QIOSIntegrationPlugin"].frameworks = [ @@ -1317,8 +1290,6 @@ def _create_plugin(pluginname, libname, plugintype, requires): _add_build_module("qtQml", self._cmake_qt6_private_file("Qml")) _create_module("QmlModels", ["Qml"]) self.cpp_info.components["qtQmlImportScanner"].set_property("cmake_target_name", "Qt6::QmlImportScanner") - self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package"] = "QmlImportScanner" # this is an alias for Qml and there to integrate with existing consumers - self.cpp_info.components["qtQmlImportScanner"].names["cmake_find_package_multi"] = "QmlImportScanner" self.cpp_info.components["qtQmlImportScanner"].requires = _get_corrected_reqs(["Qml"]) if qt_quick_enabled: _create_module("Quick", ["Gui", "Qml", "QmlModels"]) @@ -1331,8 +1302,6 @@ def _create_plugin(pluginname, libname, plugintype, requires): if self.options.qttools and self.options.gui and self.options.widgets: self.cpp_info.components["qtLinguistTools"].set_property("cmake_target_name", "Qt6::LinguistTools") - self.cpp_info.components["qtLinguistTools"].names["cmake_find_package"] = "LinguistTools" - self.cpp_info.components["qtLinguistTools"].names["cmake_find_package_multi"] = "LinguistTools" _create_module("UiPlugin", ["Gui", "Widgets"]) self.cpp_info.components["qtUiPlugin"].libs = [] # this is a collection of abstract classes, so this is header-only self.cpp_info.components["qtUiPlugin"].libdirs = [] @@ -1510,21 +1479,15 @@ def _create_plugin(pluginname, libname, plugintype, requires): if self.settings.os in ["Windows", "iOS"]: if self.settings.os == "Windows": self.cpp_info.components["qtEntryPointImplementation"].set_property("cmake_target_name", "Qt6::EntryPointImplementation") - self.cpp_info.components["qtEntryPointImplementation"].names["cmake_find_package"] = "EntryPointImplementation" - self.cpp_info.components["qtEntryPointImplementation"].names["cmake_find_package_multi"] = "EntryPointImplementation" self.cpp_info.components["qtEntryPointImplementation"].libs = [f"Qt6EntryPoint{libsuffix}"] self.cpp_info.components["qtEntryPointImplementation"].system_libs = ["shell32"] if self.settings.compiler == "gcc": self.cpp_info.components["qtEntryPointMinGW32"].set_property("cmake_target_name", "Qt6::EntryPointMinGW32") - self.cpp_info.components["qtEntryPointMinGW32"].names["cmake_find_package"] = "EntryPointMinGW32" - self.cpp_info.components["qtEntryPointMinGW32"].names["cmake_find_package_multi"] = "EntryPointMinGW32" self.cpp_info.components["qtEntryPointMinGW32"].system_libs = ["mingw32"] self.cpp_info.components["qtEntryPointMinGW32"].requires = ["qtEntryPointImplementation"] self.cpp_info.components["qtEntryPointPrivate"].set_property("cmake_target_name", "Qt6::EntryPointPrivate") - self.cpp_info.components["qtEntryPointPrivate"].names["cmake_find_package"] = "EntryPointPrivate" - self.cpp_info.components["qtEntryPointPrivate"].names["cmake_find_package_multi"] = "EntryPointPrivate" if self.settings.os == "Windows": if self.settings.compiler == "gcc": self.cpp_info.components["qtEntryPointPrivate"].defines.append("QT_NEEDS_QMAIN") @@ -1668,3 +1631,5 @@ def _add_build_modules_for_component(component): _add_build_modules_for_component(c) self.cpp_info.set_property("cmake_build_modules", build_modules_list) + + self.conf_info.define("user.qt:tools_directory", os.path.join(self.package_folder, "bin" if self.settings.os == "Windows" else "libexec")) diff --git a/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff b/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff index 99fda02e..ed85ce82 100644 --- a/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff +++ b/packages/conan/recipes/qt/patches/CVE-2025-3512-qtbase-6.8.diff @@ -40,7 +40,7 @@ diff --git a/src/gui/text/qtextmarkdownimporter.cpp b/src/gui/text/qtextmarkdown index 5f7ef22..137a0bd 100644 --- a/src/gui/text/qtextmarkdownimporter.cpp +++ b/src/gui/text/qtextmarkdownimporter.cpp -@@ -28,7 +28,8 @@ +@@ -27,7 +27,8 @@ static const QChar qtmi_Newline = u'\n'; static const QChar qtmi_Space = u' '; @@ -50,7 +50,7 @@ index 5f7ef22..137a0bd 100644 // TODO maybe eliminate the margins after all views recognize BlockQuoteLevel, CSS can format it, etc. static const int qtmi_BlockQuoteIndent = -@@ -120,6 +121,47 @@ +@@ -119,6 +120,47 @@ { } @@ -98,7 +98,7 @@ index 5f7ef22..137a0bd 100644 void QTextMarkdownImporter::import(const QString &markdown) { MD_PARSER callbacks = { -@@ -144,21 +186,14 @@ +@@ -143,21 +185,14 @@ qCDebug(lcMD) << "default font" << defaultFont << "mono font" << m_monoFont; QStringView md = markdown; @@ -171,16 +171,16 @@ index 0000000..c3e5243 --- /dev/null +++ b/tests/auto/gui/text/qtextmarkdownimporter/data/yaml-crlf.md @@ -0,0 +1,10 @@ -+--- -+name: "Venus" -+discoverer: "Galileo Galilei" -+title: "A description of the planet Venus" -+keywords: -+ - planets -+ - solar system -+ - astronomy -+--- -+*Venus* is the second planet from the Sun, orbiting it every 224.7 Earth days. ++--- ++name: "Venus" ++discoverer: "Galileo Galilei" ++title: "A description of the planet Venus" ++keywords: ++ - planets ++ - solar system ++ - astronomy ++--- ++*Venus* is the second planet from the Sun, orbiting it every 224.7 Earth days. diff --git a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp b/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp index d9fe000..1a71b48 100644 --- a/tests/auto/gui/text/qtextmarkdownimporter/tst_qtextmarkdownimporter.cpp diff --git a/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch b/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch index 278d6ac3..a4667761 100644 --- a/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch +++ b/packages/conan/recipes/qt/patches/CVE-2025-5683-qtimageformats-6.8.patch @@ -2,7 +2,7 @@ diff --git a/src/plugins/imageformats/icns/qicnshandler.cpp b/src/plugins/imagef index 6cf74b219a1..501394deede 100644 --- a/src/plugins/imageformats/icns/qicnshandler.cpp +++ b/src/plugins/imageformats/icns/qicnshandler.cpp -@@ -324,8 +324,11 @@ static inline bool isPowOf2OrDividesBy16(quint32 u, qreal r) +@@ -323,8 +323,11 @@ static inline bool isPowOf2OrDividesBy16(quint32 u, qreal r) static inline bool isBlockHeaderValid(const ICNSBlockHeader &header, quint64 bound = 0) { @@ -16,7 +16,7 @@ index 6cf74b219a1..501394deede 100644 } static inline bool isIconCompressed(const ICNSEntry &icon) -@@ -870,7 +873,7 @@ bool QICNSHandler::scanDevice() +@@ -869,7 +872,7 @@ bool QICNSHandler::scanDevice() return false; const qint64 blockDataOffset = device()->pos(); diff --git a/packages/conan/recipes/qt/patches/c72097e_6.8.3.diff b/packages/conan/recipes/qt/patches/c72097e_6.8.3.diff new file mode 100644 index 00000000..8585b252 --- /dev/null +++ b/packages/conan/recipes/qt/patches/c72097e_6.8.3.diff @@ -0,0 +1,42 @@ +From c72097e8790553771daf3231124c3fbe1a438379 Mon Sep 17 00:00:00 2001 +From: Samuli Piippo +Date: Thu, 30 Mar 2017 11:37:24 +0300 +Subject: [PATCH] chromium: workaround for too long .rps file name + +Ninja may fail when the build directory is too long: + +ninja: error: WriteFile(__third_party_WebKit_Source_bindings_modules_\ +interfaces_info_individual_modules__home_qt_work_build_build-nitrogen\ +6x_tmp_work_cortexa9hf-neon-mx6qdl-poky-linux-gnueabi_qtwebengine_5.9\ +.0_gitAUTOINC_29afdb0a34_049134677a-r0_build_src_toolchain_target__ru\ +le.rsp): Unable to create file. File name too long + +Task-number: QTBUG-59769 +Change-Id: I73c5e64ae5174412be2a675e35b0b6047f2bf4c1 +--- + src/3rdparty/gn/src/gn/ninja_action_target_writer.cc | 9 +++++++++ + 1 file changed, 9 insertions(+) + +diff --git a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc b/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc +index a5bc6cd..5cefbfe 100644 +--- a/src/3rdparty/gn/src/gn/ninja_action_target_writer.cc ++++ b/src/3rdparty/gn/tosrcols/gn/ninja_action_target_writer.cc +@@ -151,6 +151,14 @@ std::string NinjaActionTargetWriter::WriteRuleDefinition() { + // strictly necessary for regular one-shot actions, but it's easier to + // just always define unique_name. + std::string rspfile = custom_rule_name; ++ ++ //quick workaround if filename length > 255 - ".rsp", just cut the dirs starting from the end ++ //please note ".$unique_name" is not used at the moment ++ std::size_t pos = 0; ++ std::string delimiter("_"); ++ while (rspfile.length() > 250 && (pos = rspfile.find_last_of(delimiter)) != std::string::npos) ++ rspfile = rspfile.substr(0,pos); ++ + if (!target_->sources().empty()) + rspfile += ".$unique_name"; + rspfile += ".rsp"; ++ + out_ << " rspfile = " << rspfile << std::endl; + + // Response file contents. diff --git a/packages/conan/recipes/qt/patches/ee87cbe_6.8.3.diff b/packages/conan/recipes/qt/patches/ee87cbe_6.8.3.diff new file mode 100644 index 00000000..5107b4aa --- /dev/null +++ b/packages/conan/recipes/qt/patches/ee87cbe_6.8.3.diff @@ -0,0 +1,37 @@ +From ee87cbeb738a7f1108e38afc75f5b35b5085fe90 Mon Sep 17 00:00:00 2001 +From: Anu Aliyas +Date: Mon, 7 Apr 2025 16:19:51 +0200 +Subject: [fixup] Add missing dependencies to avoid compilation errors +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Missing dependencies are added to resolve the dependencies issues when +compiling chrome driver. + +Task-number: QTBUG-135451 +Change-Id: Ic38b5c52f64e81f4bf3279ce1e107d3430e415fd +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/637889 +Reviewed-by: Michael Brüning +(cherry picked from commit 006f192b9ea0acad06da0fbe0690110fad617744) +Reviewed-on: https://codereview.qt-project.org/c/qt/qtwebengine-chromium/+/647479 +Reviewed-by: Anu Aliyas +--- + chromium/chrome/test/chromedriver/BUILD.gn | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/chromium/chrome/test/chromedriver/BUILD.gn b/chromium/chrome/test/chromedriver/BUILD.gn +index 812445d934f..97cd46140d0 100644 +--- a/chromium/chrome/test/chromedriver/BUILD.gn ++++ b/chromium/chrome/test/chromedriver/BUILD.gn +@@ -455,6 +455,10 @@ if (is_linux && !is_qtwebengine) { + output_name = "webenginedriver" + deps -= [ "//net/traffic_annotation:test_support" ] + ++ if (is_linux || is_mac) { ++ deps += [ "//ui/gl:buildflags" ] ++ } ++ + if (is_linux) { + sources += [ + "//content/public/common/content_switches.cc", diff --git a/packages/conan/recipes/qt/qtmodules6.8.3.conf b/packages/conan/recipes/qt/qtmodules6.8.3.conf index b2d734d0..011980ae 100644 --- a/packages/conan/recipes/qt/qtmodules6.8.3.conf +++ b/packages/conan/recipes/qt/qtmodules6.8.3.conf @@ -68,7 +68,7 @@ depends = qtbase path = qtqa url = ../qtqa.git - branch = dev + branch = 6.8.3 status = essential priority = 50 [submodule "qtlocation"] @@ -132,7 +132,7 @@ path = qt3d url = ../qt3d.git branch = 6.8.3 - status = addon + status = deprecated [submodule "qtimageformats"] depends = qtbase path = qtimageformats @@ -309,7 +309,7 @@ path = qthttpserver url = ../qthttpserver.git branch = 6.8.3 - status = preview + status = addon [submodule "qtquick3dphysics"] depends = qtbase qtdeclarative qtquick3d qtshadertools path = qtquick3dphysics @@ -322,7 +322,7 @@ path = qtgrpc url = ../qtgrpc.git branch = 6.8.3 - status = preview + status = addon [submodule "qtquickeffectmaker"] depends = qtbase qtdeclarative qtshadertools recommends = qtquick3d @@ -335,4 +335,4 @@ path = qtgraphs url = ../qtgraphs.git branch = 6.8.3 - status = preview + status = addon diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 51982bac..eb9f8bd6 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -9,8 +9,10 @@ include(ci_common4) boost/*: boost/1.82.0@aswf/vfx2024 brotli/*: brotli/system@aswf/vfx2024 bzip2/*: bzip2/1.0.8@aswf/vfx2024 +ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2024 dbus/*: dbus/system@aswf/vfx2024 double-conversion/*: double-conversion/system@aswf/vfx2024 +eigen/*: eigen/3.4.0@aswf/vfx2024 expat/*: expat/2.6.4@aswf/vfx2024 fmt/*: fmt/11.1.4@aswf/vfx2024 fontconfig/*: fontconfig/system@aswf/vfx2024 @@ -22,6 +24,7 @@ glib/*: glib/2.56.4@aswf/vfx2024 highway/*: highway/1.2.0@aswf/vfx2024 icu/*: icu/system@aswf/vfx2024 imath/*: imath/3.1.12@aswf/vfx2024 +jasper/*: jasper/4.2.5@aswf/vfx2024 lcms/*: lcms/2.17@aswf/vfx2024 libaom-av1/*: libaom-av1/system@aswf/vfx2024 libalsa/*: libalsa/system@aswf/vfx2024 @@ -34,6 +37,7 @@ libjpeg-turbo/*: libjpeg-turbo/3.0.4@aswf/vfx2024 libjxl/*: libjxl/0.11.1@aswf/vfx2024 libmp3lame/*: libmp3lame/system@aswf/vfx2024 libpng/*: libpng/1.6.34@aswf/vfx2024 +libraw/*: libraw/0.21.4@aswf/vfx2024 libsndfile/*: libsndfile/system@aswf/vfx2024 libsquish/*: libsquish/system@aswf/vfx2024 libsvtav1/*: libsvtav1/system@aswf/vfx2024 @@ -49,6 +53,7 @@ md4c/*: md4c/0.4.8@aswf/vfx2024 minizip-ng/*: minizip/4.0.10@aswf/vfx2024 mpdecimal/*: mpdecimal/system@aswf/vfx2024 mpg123/*: mpg123/system@aswf/vfx2024 +nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2024 nspr/*: nspr/system@aswf/vfx2024 nss/*: nss/3.101.0@aswf/vfx2024 ocio/*: ocio/2.3.2@aswf/vfx2024 @@ -89,7 +94,7 @@ gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system mesno/*: meson/0.58.2@system nasm/*: nasm/system@aswf/vfx2024 -ninja/*: ninja/1.12.1@aswf/ci_common5 +ninja/*: ninja/1.13.1@aswf/ci_common5 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 14c3bb08..fe21871a 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -9,8 +9,10 @@ include(ci_common5) boost/*: boost/1.85.0@aswf/vfx2025 brotli/*: brotli/system@aswf/vfx2025 bzip2/*: bzip2/1.0.8@aswf/vfx2025 +ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2025 dbus/*: dbus/system@aswf/vfx2025 double-conversion/*: double-conversion/system@aswf/vfx2025 +eigen/*: eigen/3.4.0@aswf/vfx2025 expat/*: expat/2.6.4@aswf/vfx2025 fmt/*: fmt/11.1.4@aswf/vfx2025 fontconfig/*: fontconfig/system@aswf/vfx2025 @@ -22,6 +24,7 @@ glib/*: glib/2.56.4@aswf/vfx2025 highway/*: highway/1.2.0@aswf/vfx2025 icu/*: icu/system@aswf/vfx2025 imath/*: imath/3.1.12@aswf/vfx2025 +jasper/*: jasper/4.2.5@aswf/vfx2025 lcms/*: lcms/2.17@aswf/vfx2025 libalsa/*: libalsa/system@aswf/vfx2025 libaom-av1/*: libaom/system@aswf/vfx2025 @@ -34,6 +37,7 @@ libjpeg-turbo/*: libjpeg-turbo/3.0.4@aswf/vfx2025 libjxl/*: libjxl/0.11.1@aswf/vfx2025 libmp3lame/*: libmp3lame/system@aswf/vfx2025 libpng/*: libpng/1.6.34@aswf/vfx2025 +libraw/*: libraw/0.21.4@aswf/vfx2025 libsndfile/*: libsndfile/system@aswf/vfx2025 libsquish/*: libsquish/system@aswf/vfx2025 libsvt-av1/*: libsvt-av1/system@aswf/vfx2025 @@ -49,6 +53,7 @@ md4c/*: md4c/0.4.8@aswf/vfx2025 minizip-ng/*: minizip-ng/4.0.10@aswf/vfx2025 mpdecimal/*: mpdecimal/system@aswf/vfx2025 mpg123/*: mpg123/system@aswf/vfx2025 +nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2025 nspr/*: nspr/system@aswf/vfx2025 nss/*: nss/3.101.0@aswf/vfx2025 ocio/*: ocio/2.4.2@aswf/vfx2025 @@ -90,7 +95,7 @@ gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system meson/*: meson/0.58.2@system nasm/*: nasm/system@aswf/vfx2025 -ninja/*: ninja/1.12.1@aswf/ci_common5 +ninja/*: ninja/1.13.1@aswf/ci_common5 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index d77bb981..40fc27fc 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -1,6 +1,8 @@ include(ci_common6) [settings] +# Qt 6.6 and newer must be compiled with -std=gnu20++ to support 128 bit integers +qt/*:compiler.cppstd=gnu20 [options] # Build everything as shared libs by default *:shared=True @@ -9,8 +11,10 @@ include(ci_common6) boost/*: boost/1.88.0@aswf/vfx2026 brotli/*: brotli/system@aswf/vfx2026 bzip2/*: bzip2/1.0.8@aswf/vfx2026 +ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2026 dbus/*: dbus/system@aswf/vfx2026 double-conversion/*: double-conversion/system@aswf/vfx2026 +eigen/*: eigen/3.4.0@aswf/vfx2026 expat/*: expat/2.7.1@aswf/vfx2026 fmt/*: fmt/11.2.0@aswf/vfx2026 fontconfig/*: fontconfig/system@aswf/vfx2026 @@ -22,6 +26,7 @@ glib/*: glib/2.68.4@aswf/vfx2026 highway/*: highway/1.2.0@aswf/vfx2026 icu/*: icu/system@aswf/vfx2026 imath/*: imath/3.1.12@aswf/vfx2026 +jasper/*: jasper/4.2.5@aswf/vfx2026 lcms/*: lcms/2.17@aswf/vfx2026 libalsa/*: libalsa/system@aswf/vfx2026 libaom-av1/*: libaom/system@aswf/vfx2026 @@ -34,6 +39,7 @@ libjpeg-turbo/*: libjpeg-turbo/3.1.0@aswf/vfx2026 libjxl/*: libjxl/0.11.1@aswf/vfx2026 libmp3lame/*: libmp3lame/system@aswf/vfx2026 libpng/*: libpng/1.6.37@aswf/vfx2026 +libraw/*: libraw/0.21.4@aswf/vfx2026 libsndfile/*: libsndfile/system@aswf/vfx2026 libsquish/*: libsquish/system@aswf/vfx2026 libsvt-av1/*: libsvt-av1/system@aswf/vfx2026 @@ -49,6 +55,7 @@ md4c/*: md4c/0.5.2@aswf/vfx2026 minizip-ng/*: minizip-ng/4.0.10@aswf/vfx2026 mpdecimal/*: mpdecimal/system@aswf/vfx2026 mpg123/*: mpg123/system@aswf/vfx2026 +nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2026 nspr/*: nspr/system@aswf/vfx2026 nss/*: nss/3.101.0@aswf/vfx2026 ocio/*: ocio/2.4.2@aswf/vfx2026 @@ -66,6 +73,7 @@ ptex/*: ptex/2.4.3@aswf/vfx2026 pugixml/*: pugixml/1.15@aswf/vfx2026 pulseaudio/*: pulseaudio/system@aswr/vfx2026 pystring/*: pystring/1.1.4@aswf/vfx2026 +qt/*: qt/6.8.3@aswf/vfx2026 snappy/*: snappy/1.2.2@aswf/vfx2026 sqlite3/*: sqlite3/system@aswf/vfx2026 tcl/*: tcl/system@aswf/vfx2026 @@ -90,7 +98,7 @@ gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system meson/*: meson/0.63.3@system nasm/*: nasm/system@aswf/vfx2026 -ninja/*: ninja/1.12.1@aswf/ci_common5 +ninja/*: ninja/1.13.1@aswf/ci_common6 nodejs/*: nodejs/18.20.6@system pkgconf/*: pkgconf/1.7.3@system wayland/*: wayland/1.31.0@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index dba8ca3e..b675e297 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -10,7 +10,9 @@ boost/*: boost/1.82.0@aswftesting/vfx2024 brotli/*: brotli/system@aswftesting/vfx2024 bzip2/*: bzip2/1.0.8@aswftesting/vfx2024 dbus/*: dbus/system@aswftesting/vfx2024 +ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2024 double-conversion/*: double-conversion/system@aswftesting/vfx2024 +eigen/*: eigen/3.4.0@aswftesting/vfx2024 expat/*: expat/2.6.4@aswftesting/vfx2024 fmt/*: fmt/11.1.4@aswftesting/vfx2024 fontconfig/*: fontconfig/system@aswftesting/vfx2024 @@ -22,6 +24,7 @@ glib/*: glib/2.56.4@aswftesting/vfx2024 highway/*: highway/1.2.0@aswftesting/vfx2024 icu/*: icu/system@aswftesting/vfx2024 imath/*: imath/3.1.12@aswftesting/vfx2024 +jasper/*: jasper/4.2.5@aswftesting/vfx2024 lcms/*: lcms/2.17@aswftesting/vfx2024 libalsa/*: libalsa/system@aswftesting/vfx2024 libaom-av1/*: libaom-av1/system@aswftesting/vfx2024 @@ -34,6 +37,7 @@ libjpeg-turbo/*: libjpeg-turbo/3.0.4@aswftesting/vfx2024 libjxl/*: libjxl/0.11.1@aswftesting/vfx2024 libmp3lame/*: libmp3lame/system@aswftesting/vfx2024 libpng/*: libpng/1.6.34@aswftesting/vfx2024 +libraw/*: libraw/0.21.4@aswftesting/vfx2024 libsndfile/*: libsndfile/system@aswftesting/vfx2024 libsquish/*: libsquish/system@aswftesting/vfx2024 libsvtav1/*: libsvtav1/system@aswftesting/vfx2024 @@ -49,6 +53,7 @@ md4c/*: md4c/0.4.8@aswftesting/vfx2024 minizip-ng/*: minizip/4.0.10@aswftesting/vfx2024 mpdecimal/*: mpdecimal/system@aswftesting/vfx2024 mpg123/*: mpg123/system@aswftesting/vfx2024 +nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2024 nspr/*: nspr/system@aswftesting/vfx2024 nss/*: nss/3.101.0@aswftesting/vfx2024 ocio/*: ocio/2.3.2@aswftesting/vfx2024 @@ -89,7 +94,7 @@ gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system mesno/*: meson/0.58.2@system nasm/*: nasm/system@aswftesting/vfx2024 -ninja/*: ninja/1.12.1@aswftesting/ci_common5 +ninja/*: ninja/1.13.1@aswftesting/ci_common5 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index df7bc9ba..283361e3 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -9,8 +9,10 @@ include(ci_common5) boost/*: boost/1.85.0@aswftesting/vfx2025 brotli/*: brotli/system@aswftesting/vfx2025 bzip2/*: bzip2/1.0.8@aswftesting/vfx2025 +ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2025 dbus/*: dbus/system@aswftesting/vfx2025 double-conversion/*: double-conversion/system@aswftesting/vfx2025 +eigen/*: eigen/3.4.0@aswftesting/vfx2025 expat/*: expat/2.6.4@aswftesting/vfx2025 fmt/*: fmt/11.1.4@aswftesting/vfx2025 fontconfig/*: fontconfig/system@aswftesting/vfx2025 @@ -22,6 +24,7 @@ glib/*: glib/2.56.4@aswftesting/vfx2025 highway/*: highway/1.2.0@aswftesting/vfx2025 icu/*: icu/system@aswftesting/vfx2025 imath/*: imath/3.1.12@aswftesting/vfx2025 +jasper/*: jasper/4.2.5@aswftesting/vfx2025 lcms/*: lcms/2.17@aswftesting/vfx2025 libalsa/*: libalsa/system@aswftesting/vfx2025 libaom-av1/*: libaom-av1/system@aswftesting/vfx2025 @@ -34,6 +37,7 @@ libjpeg-turbo/*: libjpeg-turbo/3.0.4@aswftesting/vfx2025 libjxl/*: libjxl/0.11.1@aswftesting/vfx2025 libmp3lame/*: libmp3lame/system@aswftesting/vfx2025 libpng/*: libpng/1.6.34@aswftesting/vfx2025 +libraw/*: libraw/0.21.4@aswftesting/vfx2025 libsndfile/*: libsndfile/system@aswftesting/vfx2025 libsquish/*: libsquish/system@aswftesting/vfx2025 libsvtav1/*: libsvtav1/system@aswftesting/vfx2025 @@ -49,6 +53,7 @@ md4c/*: md4c/0.4.8@aswftesting/vfx2025 minizip-ng/*: minizip-ng/4.0.10@aswftesting/vfx2025 mpdecimal/*: mpdecimal/system@aswftesting/vfx2025 mpg123/*: mpg123/system@aswftesting/vfx2025 +nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2025 nspr/*: nspr/system@aswftesting/vfx2025 nss/*: nss/3.101.0@aswftesting/vfx2025 ocio/*: ocio/2.4.2@aswftesting/vfx2025 @@ -90,7 +95,7 @@ gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system meson/*: meson/0.58.2@system nasm/*: nasm/system@aswftesting/vfx2025 -ninja/*: ninja/1.12.1@aswftesting/ci_common5 +ninja/*: ninja/1.13.1@aswftesting/ci_common5 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 8327c079..0466206d 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -1,6 +1,8 @@ include(ci_common6) [settings] +# Qt 6.6 and newer must be compiled with -std=gnu20++ to support 128 bit integers +qt/*:compiler.cppstd=gnu20 [options] # Build everything as shared libs by default *:shared=True @@ -9,8 +11,10 @@ include(ci_common6) boost/*: boost/1.88.0@aswftesting/vfx2026 brotli/*: brotli/system@aswftesting/vfx2026 bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 +ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2026 dbus/*: dbus/system@aswftesting/vfx2026 double-conversion/*: double-conversion/system@aswftesting/vfx2026 +eigen/*: eigen/3.4.0@aswftesting/vfx2026 expat/*: expat/2.7.1@aswftesting/vfx2026 fmt/*: fmt/11.2.0@aswftesting/vfx2026 fontconfig/*: fontconfig/system@aswftesting/vfx2026 @@ -22,6 +26,7 @@ glib/*: glib/2.68.4@aswftesting/vfx2026 highway/*: highway/1.2.0@aswftesting/vfx2026 icu/*: icu/system@aswftesting/vfx2026 imath/*: imath/3.1.12@aswftesting/vfx2026 +jasper/*: jasper/4.2.5@aswftesting/vfx2026 lcms/*: lcms/2.17@aswftesting/vfx2026 libalsa/*: libalsa/system@aswftesting/vfx2026 libaom-av1/*: libaom/system@aswftesting/vfx2026 @@ -34,6 +39,7 @@ libjpeg-turbo/*: libjpeg-turbo/3.1.0@aswftesting/vfx2026 libjxl/*: libjxl/0.11.1@aswftesting/vfx2026 libmp3lame/*: libmp3lame/system@aswftesting/vfx2026 libpng/*: libpng/1.6.37@aswftesting/vfx2026 +libraw/*: libraw/0.21.4@aswftesting/vfx2026 libsndfile/*: libsndfile/system@aswftesting/vfx2026 libsquish/*: libsquish/system@aswftesting/vfx2026 libsvt-av1/*: libsvt-av1/system@aswftesting/vfx2026 @@ -49,6 +55,7 @@ md4c/*: md4c/0.5.2@aswftesting/vfx2026 minizip-ng/*: minizip-ng/4.0.10@aswftesting/vfx2026 mpdecimal/*: mpdecimal/system@aswftesting/vfx2026 mpg123/*: mpg123/system@aswftesting/vfx2026 +nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2026 nspr/*: nspr/system@aswftesting/vfx2026 nss/*: nss/3.101.0@aswftesting/vfx2026 ocio/*: ocio/2.4.2@aswftesting/vfx2026 @@ -66,6 +73,7 @@ ptex/*: ptex/2.4.3@aswftesting/vfx2026 pugixml/*: pugixml/1.15@aswftesting/vfx2026 pulseaudio/*: pulseaudio/system@aswr/vfx2026 pystring/*: pystring/1.1.4@aswftesting/vfx2026 +qt/*: qt/6.8.3@aswftesting/vfx2026 snappy/*: snappy/1.2.2@aswftesting/vfx2026 sqlite3/*: sqlite3/system@aswftesting/vfx2026 tcl/*: tcl/system@aswftesting/vfx2026 @@ -90,7 +98,7 @@ gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system meson/*: meson/0.63.3@system nasm/*: nasm/system@aswftesting/vfx2026 -ninja/*: ninja/1.12.1@aswf/ci_common5 +ninja/*: ninja/1.13.1@aswftesting/ci_common6 nodejs/*: nodejs/18.20.6@system pkgconf/*: pkgconf/1.7.3@system wayland/*: wayland/1.21.0@system diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 15879554..d6682283 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -152,7 +152,7 @@ versions: ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.9.1" ASWF_CMAKE_VERSION: "3.31.7" - ASWF_NINJA_VERSION: "1.12.1" + ASWF_NINJA_VERSION: "1.13.1" ASWF_SONAR_VERSION: "7.1.0.4889" ASWF_YQ_VERSION: "4.45.2" ASWF_BASEOS_DISTRO: "rockylinux8" @@ -187,7 +187,7 @@ versions: ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.9.1" ASWF_CMAKE_VERSION: "3.31.7" - ASWF_NINJA_VERSION: "1.12.1" + ASWF_NINJA_VERSION: "1.13.1" ASWF_SONAR_VERSION: "7.1.0.4889" ASWF_YQ_VERSION: "4.45.2" ASWF_BASEOS_DISTRO: "rockylinux8" @@ -223,7 +223,7 @@ versions: ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.11.3" ASWF_CMAKE_VERSION: "4.0.2" - ASWF_NINJA_VERSION: "1.12.1" + ASWF_NINJA_VERSION: "1.13.1" ASWF_SONAR_VERSION: "7.1.0.4889" ASWF_YQ_VERSION: "4.45.4" ASWF_BASEOS_DISTRO: "rockylinux9" @@ -555,7 +555,9 @@ versions: ASWF_B2_VERSION: "5.2.1" ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" + ASWF_CERES_SOLVER_VERSION: "2.2.0" ASWF_CPPUNIT_VERSION: "1.15.1" + ASWF_EIGEN_VERSION: "3.4.0" ASWF_EXPAT_VERSION: "2.6.4" ASWF_FMT_VERSION: "11.1.4" ASWF_FREETYPE_VERSION: "2.13.2" @@ -564,12 +566,14 @@ versions: ASWF_GTEST_VERSION: "1.15.2" ASWF_HDF5_VERSION: "1.8.23" ASWF_HIGHWAY_VERSION: "1.2.0" + ASWF_JASPER_VERSION: "4.2.5" ASWF_LCMS_VERSION: "2.17" ASWF_LIBBACKTRACE_VERSION: "cci.20210118" ASWF_LIBDEFLATE_VERSION: "1.23" ASWF_LIBICONV_VERSION: "1.17" ASWF_LIBJPEG_TURBO_VERSION: "3.0.4" ASWF_LIBJXL_VERSION: "0.11.1" + ASWF_LIBRAW_VERSION: "0.21.4" ASWF_LIBUHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.36" @@ -577,6 +581,7 @@ versions: ASWF_LZ4_VERSION: "1.10.0" ASWF_MD4C_VERSION: "0.4.8" ASWF_MINIZIP_NG_VERSION: "4.0.10" + ASWF_NLOHMANN_JSON_VERSION: "3.12.0" ASWF_PARTIO_VERSION: "1.19.0" ASWF_PUGIXML_VERSION: "1.14" ASWF_PYBIND11_VERSION: "2.13.6" @@ -613,6 +618,7 @@ versions: ASWF_OPENVDB_VERSION: "11.0.0" ASWF_OSL_VERSION: "1.13.11.0" ASWF_OTIO_VERSION: "0.17.0" + ASWF_RAWTOACES_VERSION: "1.0.0" "2024-clang16": parent_versions: ["4", "4-clang16", "2024"] major_version: "2024" @@ -678,7 +684,9 @@ versions: ASWF_B2_VERSION: "5.2.1" ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" + ASWF_CERES_SOLVER_VERSION: "2.2.0" ASWF_CPPUNIT_VERSION: "1.15.1" + ASWF_EIGEN_VERSION: "3.4.0" ASWF_EXPAT_VERSION: "2.6.4" ASWF_FMT_VERSION: "11.1.4" ASWF_FREETYPE_VERSION: "2.13.2" @@ -687,12 +695,14 @@ versions: ASWF_GTEST_VERSION: "1.15.2" ASWF_HDF5_VERSION: "1.8.23" ASWF_HIGHWAY_VERSION: "1.2.0" + ASWF_JASPER_VERSION: "4.2.5" ASWF_LCMS_VERSION: "2.17" ASWF_LIBBACKTRACE_VERSION: "cci.20210118" ASWF_LIBDEFLATE_VERSION: "1.23" ASWF_LIBICONV_VERSION: "1.17" ASWF_LIBJPEG_TURBO_VERSION: "3.0.4" ASWF_LIBJXL_VERSION: "0.11.1" + ASWF_LIBRAW_VERSION: "0.21.4" ASWF_LIBUHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.36" @@ -700,6 +710,7 @@ versions: ASWF_LZ4_VERSION: "1.10.0" ASWF_MD4C_VERSION: "0.4.8" ASWF_MINIZIP_NG_VERSION: "4.0.10" + ASWF_NLOHMANN_JSON_VERSION: "3.12.0" ASWF_PARTIO_VERSION: "1.19.0" ASWF_PUGIXML_VERSION: "1.14" ASWF_PYBIND11_VERSION: "2.13.6" @@ -736,6 +747,7 @@ versions: ASWF_OPENVDB_VERSION: "12.0.0" ASWF_OSL_VERSION: "1.14.6.0" ASWF_OTIO_VERSION: "0.17.0" + ASWF_RAWTOACES_VERSION: "1.0.0" "2025-clang18": parent_versions: ["5", "5-clang18", "2025"] major_version: "2025" @@ -802,7 +814,9 @@ versions: ASWF_B2_VERSION: "5.3.2" ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" + ASWF_CERES_SOLVER_VERSION: "2.2.0" ASWF_CPPUNIT_VERSION: "1.15.1" + ASWF_EIGEN_VERSION: "3.4.0" ASWF_EXPAT_VERSION: "2.7.1" ASWF_FMT_VERSION: "11.2.0" ASWF_FREETYPE_VERSION: "2.13.2" @@ -811,12 +825,14 @@ versions: ASWF_GTEST_VERSION: "1.17.0" ASWF_HDF5_VERSION: "1.8.23" ASWF_HIGHWAY_VERSION: "1.2.0" + ASWF_JASPER_VERSION: "4.2.5" ASWF_LCMS_VERSION: "2.17" ASWF_LIBBACKTRACE_VERSION: "cci.20210118" ASWF_LIBDEFLATE_VERSION: "1.24" ASWF_LIBICONV_VERSION: "1.18" ASWF_LIBJPEG_TURBO_VERSION: "3.1.0" ASWF_LIBJXL_VERSION: "0.11.1" + ASWF_LIBRAW_VERSION: "0.21.4" ASWF_LIBUHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.38" @@ -824,6 +840,7 @@ versions: ASWF_LZ4_VERSION: "1.10.0" ASWF_MD4C_VERSION: "0.5.2" ASWF_MINIZIP_NG_VERSION: "4.0.10" + ASWF_NLOHMANN_JSON_VERSION: "3.12.0" ASWF_PARTIO_VERSION: "1.19.0" ASWF_PUGIXML_VERSION: "1.15" ASWF_PYBIND11_VERSION: "2.13.6" @@ -860,6 +877,7 @@ versions: ASWF_OPENVDB_VERSION: "12.0.1" ASWF_OSL_VERSION: "1.14.6.0" ASWF_OTIO_VERSION: "0.17.0" + ASWF_RAWTOACES_VERSION: "1.0.0" "2026-clang19": parent_versions: ["6", "6-clang19", "2026"] major_version: "2026" @@ -1128,6 +1146,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + rawtoaces: + - "2024.3" + - "2025.2" + - "2026.0" materialx: - "2019.0" - "2020.0" @@ -1161,6 +1183,14 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + ceres-solver: + - "2024.3" + - "2025.2" + - "2026.0" + eigen: + - "2024.3" + - "2025.2" + - "2026.0" fmt: - "2024.3" - "2025.2" @@ -1193,6 +1223,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + jasper: + - "2024.3" + - "2025.2" + - "2026.0" lcms: - "2024.3" - "2025.2" @@ -1237,6 +1271,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + libraw: + - "2024.3" + - "2025.2" + - "2026.0" libsndfile: - "2024.3" - "2025.2" @@ -1293,6 +1331,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + nlohmann_json: + - "2024.3" + - "2025.2" + - "2026.0" nspr: - "2024.3" - "2025.2" @@ -1488,6 +1530,10 @@ ci-images: - "2024.3" - "2025.2" - "2026.0" + rawtoaces: + - "2024.3" + - "2025.2" + - "2026.0" usd: - "2019.9" - "2020.8" @@ -1609,6 +1655,7 @@ groups: - b2 - bzip2 - cppunit + - eigen - expat - fmt - gtest @@ -1617,6 +1664,7 @@ groups: - libiconv - libxcrypt - lz4 + - nlohmann_json - onetbb - pugixml - pystring @@ -1628,6 +1676,7 @@ groups: - zstd base1-2: - c-blosc + - ceres-solver - cpython - freetype - glew @@ -1674,6 +1723,7 @@ groups: vfx1-1: - highway - imath + - jasper - lcms - libuhdr - openfx @@ -1682,6 +1732,7 @@ groups: - ptex vfx1-2: - libjxl + - libraw - openexr vfx1-3: - alembic @@ -1689,6 +1740,8 @@ groups: - openvdb vfx1-4: - oiio + vfx1-5: + - rawtoaces vfx2-1: - materialx vfx2: @@ -1713,6 +1766,7 @@ groups: - otio - materialx - usd + - rawtoaces vfx3: - osl - openvdb @@ -1737,12 +1791,14 @@ conan_only: - boost - brotli - bzip2 + - ceres-solver - clang - cmake - cppunit - cpython - dbus - double-conversion + - eigen - expat - fmt - fontconfig @@ -1756,6 +1812,7 @@ conan_only: - highway - icu - imath + - jasper - lcms - libalsa - libaom-av1 @@ -1768,6 +1825,7 @@ conan_only: - libjxl - libmp3lame - libpng + - libraw - libsndfile - libsquish - libsvtav1 @@ -1786,6 +1844,7 @@ conan_only: - mpg123 - nasm - ninja + - nlohmann_json - nspr - nss - ocio @@ -1810,6 +1869,7 @@ conan_only: - pyside - pystring - qt + - rawtoaces - snappy - sqlite3 - tcl From c5e6da1e208696ce83d3962e124359d0345b5c37 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Mon, 14 Jul 2025 23:37:35 -0700 Subject: [PATCH 04/14] Fix obsolete Dockerfile syntax Signed-off-by: Jean-Francois Panisset --- ci-common/Dockerfile | 9 +++------ ci-common/image.yaml | 9 +++------ 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/ci-common/Dockerfile b/ci-common/Dockerfile index f2036a9d..66e0afd5 100644 --- a/ci-common/Dockerfile +++ b/ci-common/Dockerfile @@ -123,12 +123,9 @@ ARG ASWF_BASEOS_DISTRO ENV ASWF_BASEOS_DISTRO=${ASWF_BASEOS_DISTRO} RUN /tmp/install_opengl.sh -ENV NVIDIA_VISIBLE_DEVICES \ - ${NVIDIA_VISIBLE_DEVICES:-all} -ENV NVIDIA_DRIVER_CAPABILITIES \ - ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics -ENV PKG_CONFIG_PATH \ - /usr/local/lib/pkgconfig +ENV NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES:-all} +ENV NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics +ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig COPY scripts/common/install_optix.sh /tmp/ diff --git a/ci-common/image.yaml b/ci-common/image.yaml index 2f563740..8091a469 100644 --- a/ci-common/image.yaml +++ b/ci-common/image.yaml @@ -33,12 +33,9 @@ docker_commands: | ENV ASWF_BASEOS_DISTRO=${ASWF_BASEOS_DISTRO} RUN /tmp/install_opengl.sh - ENV NVIDIA_VISIBLE_DEVICES \ - ${NVIDIA_VISIBLE_DEVICES:-all} - ENV NVIDIA_DRIVER_CAPABILITIES \ - ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics - ENV PKG_CONFIG_PATH \ - /usr/local/lib/pkgconfig + ENV NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES:-all} + ENV NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics + ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig COPY scripts/common/install_optix.sh /tmp/ From 4f22f8c515cf481afb939d453d232b8a20bb5809 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Tue, 15 Jul 2025 00:03:38 -0700 Subject: [PATCH 05/14] Turn off docker warning about default arguments Our Dockerfiles are autogenerated and always called from aswfdocker wth arguments. Signed-off-by: Jean-Francois Panisset --- ci-base/Dockerfile | 1 + ci-baseqt/Dockerfile | 1 + ci-common/Dockerfile | 1 + ci-materialx/Dockerfile | 1 + ci-ocio/Dockerfile | 1 + ci-oiio/Dockerfile | 1 + ci-opencue/Dockerfile | 1 + ci-openexr/Dockerfile | 1 + ci-openfx/Dockerfile | 1 + ci-openrv/Dockerfile | 1 + ci-openvdb/Dockerfile | 1 + ci-osl/Dockerfile | 1 + ci-otio/Dockerfile | 1 + ci-rawtoaces/Dockerfile | 1 + ci-usd/Dockerfile | 1 + ci-vfxall/Dockerfile | 1 + packages/common/Dockerfile | 1 + python/aswfdocker/data/ci-image-dockerfile.jinja2 | 1 + 18 files changed, 18 insertions(+) diff --git a/ci-base/Dockerfile b/ci-base/Dockerfile index 73ba178a..c0da918f 100644 --- a/ci-base/Dockerfile +++ b/ci-base/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-baseqt/Dockerfile b/ci-baseqt/Dockerfile index 19be0f9e..20ff35b9 100644 --- a/ci-baseqt/Dockerfile +++ b/ci-baseqt/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-common/Dockerfile b/ci-common/Dockerfile index 66e0afd5..1352e777 100644 --- a/ci-common/Dockerfile +++ b/ci-common/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-materialx/Dockerfile b/ci-materialx/Dockerfile index 4e52a32f..393b2816 100644 --- a/ci-materialx/Dockerfile +++ b/ci-materialx/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-ocio/Dockerfile b/ci-ocio/Dockerfile index bc12cdd8..4c3b3ffc 100644 --- a/ci-ocio/Dockerfile +++ b/ci-ocio/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 2eee51f5..26f67584 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-opencue/Dockerfile b/ci-opencue/Dockerfile index 906f0b13..7ce43015 100644 --- a/ci-opencue/Dockerfile +++ b/ci-opencue/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-openexr/Dockerfile b/ci-openexr/Dockerfile index aaf09ab2..9a830dba 100644 --- a/ci-openexr/Dockerfile +++ b/ci-openexr/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-openfx/Dockerfile b/ci-openfx/Dockerfile index c7f8e7d4..bd807335 100644 --- a/ci-openfx/Dockerfile +++ b/ci-openfx/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-openrv/Dockerfile b/ci-openrv/Dockerfile index 36097357..1fe92667 100644 --- a/ci-openrv/Dockerfile +++ b/ci-openrv/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-openvdb/Dockerfile b/ci-openvdb/Dockerfile index 813a1b67..8dd038c9 100644 --- a/ci-openvdb/Dockerfile +++ b/ci-openvdb/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-osl/Dockerfile b/ci-osl/Dockerfile index 81b124e4..5e68db36 100644 --- a/ci-osl/Dockerfile +++ b/ci-osl/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-otio/Dockerfile b/ci-otio/Dockerfile index 38a13128..c8bea7a7 100644 --- a/ci-otio/Dockerfile +++ b/ci-otio/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-rawtoaces/Dockerfile b/ci-rawtoaces/Dockerfile index 3c2bc391..913a8080 100644 --- a/ci-rawtoaces/Dockerfile +++ b/ci-rawtoaces/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile index fc7f0412..634105d7 100644 --- a/ci-usd/Dockerfile +++ b/ci-usd/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index 228aa0ec..d268899c 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/packages/common/Dockerfile b/packages/common/Dockerfile index df7e8f36..0e154aa9 100644 --- a/packages/common/Dockerfile +++ b/packages/common/Dockerfile @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 diff --git a/python/aswfdocker/data/ci-image-dockerfile.jinja2 b/python/aswfdocker/data/ci-image-dockerfile.jinja2 index 555bc11f..409cd28d 100644 --- a/python/aswfdocker/data/ci-image-dockerfile.jinja2 +++ b/python/aswfdocker/data/ci-image-dockerfile.jinja2 @@ -1,4 +1,5 @@ # syntax=docker/dockerfile:1.10 +# check=skip=InvalidDefaultArgInFrom # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 From 90ee64c8e0063f0660ae70a352ccfb344e4af78e Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Tue, 15 Jul 2025 00:08:55 -0700 Subject: [PATCH 06/14] More Dockerfile warning removals Signed-off-by: Jean-Francois Panisset --- packages/common/Dockerfile | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/packages/common/Dockerfile b/packages/common/Dockerfile index 0e154aa9..4ce39f1b 100644 --- a/packages/common/Dockerfile +++ b/packages/common/Dockerfile @@ -55,12 +55,9 @@ ARG ASWF_BASEOS_DISTRO ENV ASWF_BASEOS_DISTRO=${ASWF_BASEOS_DISTRO} RUN /tmp/install_opengl.sh -ENV NVIDIA_VISIBLE_DEVICES \ - ${NVIDIA_VISIBLE_DEVICES:-all} -ENV NVIDIA_DRIVER_CAPABILITIES \ - ${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics -ENV PKG_CONFIG_PATH \ - /usr/local/lib/pkgconfig +ENV NVIDIA_VISIBLE_DEVICES=${NVIDIA_VISIBLE_DEVICES:-all} +ENV NVIDIA_DRIVER_CAPABILITIES=${NVIDIA_DRIVER_CAPABILITIES:+$NVIDIA_DRIVER_CAPABILITIES,}graphics +ENV PKG_CONFIG_PATH=/usr/local/lib/pkgconfig COPY scripts/common/install_optix.sh /tmp/ From 86b4419c9c52bf69af0dbf33a9a16502fc83b692 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Wed, 16 Jul 2025 20:21:17 -0700 Subject: [PATCH 07/14] Qt and PySide 6.8.3 now compile Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 2 ++ packages/conan/recipes/nss/conanfile.py | 4 ++- packages/conan/recipes/pyside/conandata.yml | 18 +++++++++++++ packages/conan/recipes/pyside/conanfile.py | 2 +- .../pyside/patches/clang_in_lib64-6.5.6.diff | 13 +++++++++ .../pyside/patches/clang_in_lib64-6.8.3.diff | 27 +++++++++++++++++++ .../patches/libpython_in_lib64-6.8.3.diff | 22 +++++++++++++++ .../pyside/patches/pyside_in_lib64-6.8.3.diff | 13 +++++++++ .../patches/shiboken_in_lib64-6.8.3.diff | 13 +++++++++ 9 files changed, 112 insertions(+), 2 deletions(-) create mode 100644 packages/conan/recipes/pyside/patches/clang_in_lib64-6.5.6.diff create mode 100644 packages/conan/recipes/pyside/patches/clang_in_lib64-6.8.3.diff create mode 100644 packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff create mode 100644 packages/conan/recipes/pyside/patches/pyside_in_lib64-6.8.3.diff create mode 100644 packages/conan/recipes/pyside/patches/shiboken_in_lib64-6.8.3.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index 237f0670..64ebfd92 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -26,6 +26,7 @@ All notable changes to this project will be documented in this file. - Qt 6.5.6 (was 6.5.4) - OIIO 2.5.19.0 (was 2.5.18.0) - OpenFX 1.5s + - PySide 6.5.6 (was 6.5.4) - 2025.2 - updated versions - Conan 2.16.1 (was 2.14.0) @@ -41,6 +42,7 @@ All notable changes to this project will be documented in this file. - OpenEXR 3.3.4 (was 3.3.3) - OpenFX 1.5s - OSL 1.14.6.0 (was 1.14.5.1) + - PySide 6.5.6 (was 6.5.4) - 2026.0 - pre-release for testing purposes, does not yet include late releasing ASWF packages in final 2026 release (OOCIO, OpenEXR, OpenVDB) - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions diff --git a/packages/conan/recipes/nss/conanfile.py b/packages/conan/recipes/nss/conanfile.py index c294632e..91c2824a 100644 --- a/packages/conan/recipes/nss/conanfile.py +++ b/packages/conan/recipes/nss/conanfile.py @@ -28,7 +28,9 @@ def package_info(self): def _library_name(lib,vers): return f"{lib}{vers}" - self.cpp_info.components["libnss"].system_libs.append(_library_name("nss", 3)) + # ASWF: Qt is the only consummer of this package, and otherwise it doesn't seem + # to add libnssutil3 + self.cpp_info.components["libnss"].system_libs.extend([_library_name("nss", 3), _library_name("nssutil",3)]) self.cpp_info.components["libnss"].requires = ["nssutil", "nspr::nspr"] self.cpp_info.components["nssutil"].system_libs = [_library_name("nssutil", 3)] diff --git a/packages/conan/recipes/pyside/conandata.yml b/packages/conan/recipes/pyside/conandata.yml index 61a3fd4a..f7063d44 100644 --- a/packages/conan/recipes/pyside/conandata.yml +++ b/packages/conan/recipes/pyside/conandata.yml @@ -44,3 +44,21 @@ patches: base_path: "pyside_src" - patch_file: "patches/pyside_pysidesignal.diff" base_path: "pyside_src" + "6.5.6": + - patch_file: "patches/clang_in_lib64-6.5.6.diff" + base_path: "pyside_src" + - patch_file: "patches/pyside_in_lib64.diff" + base_path: "pyside_src" + - patch_file: "patches/shiboken_in_lib64.diff" + base_path: "pyside_src" + - patch_file: "patches/libpython_in_lib64.diff" + base_path: "pyside_src" + "6.8.3": + - patch_file: "patches/clang_in_lib64-6.8.3.diff" + base_path: "pyside_src" + - patch_file: "patches/pyside_in_lib64-6.8.3.diff" + base_path: "pyside_src" + - patch_file: "patches/shiboken_in_lib64-6.8.3.diff" + base_path: "pyside_src" + - patch_file: "patches/libpython_in_lib64-6.8.3.diff" + base_path: "pyside_src" diff --git a/packages/conan/recipes/pyside/conanfile.py b/packages/conan/recipes/pyside/conanfile.py index c55ba6fc..4aa76a14 100644 --- a/packages/conan/recipes/pyside/conanfile.py +++ b/packages/conan/recipes/pyside/conanfile.py @@ -135,7 +135,7 @@ def _buildCommand(self, pythonBinPath, srcDir, qmakePath): # index_url = "https://an_artifactory_url/artifactory/api/pypi/PyPI_Virtual/simple" index_url = "https://pypi.org/simple" self.run( - f"{pythonBinPath} -m pip install -qq wheel==0.34.2 packaging --index-url {index_url}" + f"{pythonBinPath} -m pip install -qq wheel==0.34.2 packaging setuptools --index-url {index_url}" ) args = [ diff --git a/packages/conan/recipes/pyside/patches/clang_in_lib64-6.5.6.diff b/packages/conan/recipes/pyside/patches/clang_in_lib64-6.5.6.diff new file mode 100644 index 00000000..96781466 --- /dev/null +++ b/packages/conan/recipes/pyside/patches/clang_in_lib64-6.5.6.diff @@ -0,0 +1,13 @@ +diff --git a/sources/shiboken6/ApiExtractor/clangparser/compilerSupport.cpp b/sources/shiboken6/ApiExtractor/clangparser/compilerSupport.cpp +index 996968f..a072dfd 100644 +--- a/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp ++++ b/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp +@@ -267,7 +267,7 @@ + { + for (const char *envVar : {"LLVM_INSTALL_DIR", "CLANG_INSTALL_DIR"}) { + if (qEnvironmentVariableIsSet(envVar)) { +- const QString path = QFile::decodeName(qgetenv(envVar)) + u"/lib"_s; ++ const QString path = QFile::decodeName(qgetenv(envVar)) + u"/lib64"_s; + if (QFileInfo::exists(path)) + return path; + qWarning("%s: %s as pointed to by %s does not exist.", __FUNCTION__, qPrintable(path), envVar); diff --git a/packages/conan/recipes/pyside/patches/clang_in_lib64-6.8.3.diff b/packages/conan/recipes/pyside/patches/clang_in_lib64-6.8.3.diff new file mode 100644 index 00000000..5132d8fe --- /dev/null +++ b/packages/conan/recipes/pyside/patches/clang_in_lib64-6.8.3.diff @@ -0,0 +1,27 @@ +diff --git a/sources/shiboken6/ApiExtractor/clangparser/compilerSupport.cpp b/sources/shiboken6/ApiExtractor/clangparser/compilerSupport.cpp +index 996968f..a072dfd 100644 +--- a/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp ++++ b/sources/shiboken6/ApiExtractor/clangparser/compilersupport.cpp +@@ -272,7 +272,7 @@ + { + for (const char *envVar : {"LLVM_INSTALL_DIR", "CLANG_INSTALL_DIR"}) { + if (qEnvironmentVariableIsSet(envVar)) { +- const QString path = QFile::decodeName(qgetenv(envVar)) + u"/lib"_s; ++ const QString path = QFile::decodeName(qgetenv(envVar)) + u"/lib64"_s; + if (QFileInfo::exists(path)) + return path; + qCWarning(lcShiboken, "%s: %s as pointed to by %s does not exist.", + +diff --git a/sources/shiboken6/cmake/ShibokenHelpers.cmake b/sources/shiboken6/cmake/ShibokenHelpers.cmake +index 996968f..a072dfd 100644 +--- a/sources/shiboken6/cmake/ShibokenHelpers.cmake ++++ b/sources/shiboken6/cmake/ShibokenHelpers.cmake +@@ -873,7 +873,7 @@ + set(libclang_directory_suffix "bin") + set(libclang_suffix ".dll") + else() +- set(libclang_directory_suffix "lib") ++ set(libclang_directory_suffix "lib64") + if(CMAKE_HOST_APPLE) + set(libclang_suffix ".dylib") + else() diff --git a/packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff b/packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff new file mode 100644 index 00000000..ea2a5d77 --- /dev/null +++ b/packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff @@ -0,0 +1,22 @@ +--- a/build_scripts/build_info_collector.py ++++ b/build_scripts/build_info_collector.py +@@ -66,7 +66,7 @@ + py_include_dir): + """Helper for finding the Python library on UNIX""" + if py_libdir is None or not Path(py_libdir).exists(): +- py_libdir = Path(py_prefix) / "lib" ++ py_libdir = Path(py_prefix) / "lib64" + if py_include_dir is None or not Path(py_include_dir).exists(): + directory = f"include/python{py_version}" + py_include_dir = Path(py_prefix) / directory +@@ -203,6 +203,10 @@ + else: + py_scripts_dir = py_prefix / "bin" + self.py_scripts_dir = py_scripts_dir ++ # ASWF: with a non relocatable Python Conan package, sysconfig ++ # returns a path to the Python package inside the build folder ++ directory = f"include/python{py_version}" ++ py_include_dir = py_prefix / directory + else: + # We don't look for an interpreter when cross-compiling. + py_executable = None diff --git a/packages/conan/recipes/pyside/patches/pyside_in_lib64-6.8.3.diff b/packages/conan/recipes/pyside/patches/pyside_in_lib64-6.8.3.diff new file mode 100644 index 00000000..b007489c --- /dev/null +++ b/packages/conan/recipes/pyside/patches/pyside_in_lib64-6.8.3.diff @@ -0,0 +1,13 @@ +diff --git a/sources/pysides6/cmake/PySideSetup.cmake b/sources/pyside6/cmake/PySideSetup.cmake +index 996968f..a072dfd 100644 +--- a/sources/pyside6/cmake/PySideSetup.cmake ++++ b/sources/pyside6/cmake/PySideSetup.cmake +@@ -103,7 +103,7 @@ + + option(BUILD_TESTS "Build tests." TRUE) + option(ENABLE_VERSION_SUFFIX "Used to use current version in suffix to generated files. This is used to allow multiples versions installed simultaneous." FALSE) +-set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) ++set(LIB_SUFFIX "64" CACHE STRING "Define suffix of directory name (32/64)" ) + set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE) + if(CMAKE_HOST_APPLE) + set(ALTERNATIVE_QT_INCLUDE_DIR "" CACHE PATH "Deprecated. CMake now finds the proper include dir itself.") diff --git a/packages/conan/recipes/pyside/patches/shiboken_in_lib64-6.8.3.diff b/packages/conan/recipes/pyside/patches/shiboken_in_lib64-6.8.3.diff new file mode 100644 index 00000000..2c6569c0 --- /dev/null +++ b/packages/conan/recipes/pyside/patches/shiboken_in_lib64-6.8.3.diff @@ -0,0 +1,13 @@ +diff --git a/sources/shiboken6/cmake/ShibokenSetup.cmake b/sources/shiboken6/cmake/ShibokenSetup.cmake +index 996968f..a072dfd 100644 +--- a/sources/shiboken6/cmake/ShibokenSetup.cmake ++++ b/sources/shiboken6/cmake/ShibokenSetup.cmake +@@ -90,7 +90,7 @@ + set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + +-set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) ++set(LIB_SUFFIX "64" CACHE STRING "Define suffix of directory name (32/64)" ) + set(LIB_INSTALL_DIR "lib${LIB_SUFFIX}" CACHE PATH "The subdirectory relative to the install \ + prefix where libraries will be installed (default is /lib${LIB_SUFFIX})" FORCE) + set(BIN_INSTALL_DIR "bin" CACHE PATH "The subdirectory relative to the install prefix where \ From 28fe163483a6de98bd41e8b3aa43abcc385baf6e Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Fri, 18 Jul 2025 00:16:03 -0700 Subject: [PATCH 08/14] rawtoaces Conan recipe and build container - add dependent package aces_container - onetbb: DSOs in lib64 - OpenImageIO: start of support for building iv GUI tool Signed-off-by: Jean-Francois Panisset --- .github/workflows/docker-builds.yml | 15 +++ CHANGELOG.md | 2 +- ci-rawtoaces/Dockerfile | 5 + ci-rawtoaces/README.md | 3 + ci-rawtoaces/image.yaml | 1 + ci-vfxall/Dockerfile | 5 + ci-vfxall/README.md | 6 ++ ci-vfxall/image.yaml | 1 + .../recipes/aces_container/conandata.yml | 14 +++ .../conan/recipes/aces_container/conanfile.py | 79 ++++++++++++++++ .../patches/cmake_4_compat.diff | 13 +++ packages/conan/recipes/libraw/conanfile.py | 6 +- packages/conan/recipes/oiio/conanfile.py | 7 +- .../conan/recipes/onetbb/all/conanfile.py | 8 +- .../conan/recipes/rawtoaces/conandata.yml | 14 +++ packages/conan/recipes/rawtoaces/conanfile.py | 92 +++++++++++++++++++ .../patches/cmake_libraw_target.diff | 39 ++++++++ packages/conan/settings/profiles_aswf/vfx2024 | 1 + packages/conan/settings/profiles_aswf/vfx2025 | 1 + packages/conan/settings/profiles_aswf/vfx2026 | 3 +- .../settings/profiles_aswftesting/vfx2024 | 1 + .../settings/profiles_aswftesting/vfx2025 | 1 + .../settings/profiles_aswftesting/vfx2026 | 3 +- python/aswfdocker/data/versions.yaml | 17 +++- 24 files changed, 324 insertions(+), 13 deletions(-) create mode 100644 packages/conan/recipes/aces_container/conandata.yml create mode 100644 packages/conan/recipes/aces_container/conanfile.py create mode 100644 packages/conan/recipes/aces_container/patches/cmake_4_compat.diff create mode 100644 packages/conan/recipes/rawtoaces/conandata.yml create mode 100644 packages/conan/recipes/rawtoaces/conanfile.py create mode 100644 packages/conan/recipes/rawtoaces/patches/cmake_libraw_target.diff diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml index 913a6912..d8fc2006 100644 --- a/.github/workflows/docker-builds.yml +++ b/.github/workflows/docker-builds.yml @@ -292,6 +292,21 @@ jobs: --build-missing \ --push NO + - name: Build vfx1 level 5 Conan packages + run: | + set -ex + pipenv run aswfdocker \ + --repo-uri $GITHUB_REPOSITORY \ + --source-branch $GITHUB_REF \ + --verbose \ + build \ + --ci-image-type PACKAGE \ + --group vfx1-5 \ + --version ${{ matrix.version_noclang }} \ + --use-conan \ + --build-missing \ + --push NO + - name: Build vfx2 level 1 Conan packages run: | set -ex diff --git a/CHANGELOG.md b/CHANGELOG.md index 64ebfd92..31523b4f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -48,7 +48,7 @@ All notable changes to this project will be documented in this file. - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions - new Conan package and build images for OpenFX - new Conan package and build images for rawtoaces - - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen + - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen , aces_container - OpenVDB now built as a Conan package - OpenImageIO builds with libraw support, Python bindings - system wrapper Conan packages diff --git a/ci-rawtoaces/Dockerfile b/ci-rawtoaces/Dockerfile index 913a8080..9110306d 100644 --- a/ci-rawtoaces/Dockerfile +++ b/ci-rawtoaces/Dockerfile @@ -27,6 +27,7 @@ ARG ASWF_LIBPNG_VERSION ARG ASWF_LIBTIFF_VERSION ARG ASWF_LIBWEBP_VERSION ARG ASWF_NLOHMANN_JSON_VERSION +ARG ASWF_ACES_CONTAINER_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -59,6 +60,7 @@ ARG ASWF_LIBPNG_VERSION ARG ASWF_LIBTIFF_VERSION ARG ASWF_LIBWEBP_VERSION ARG ASWF_NLOHMANN_JSON_VERSION +ARG ASWF_ACES_CONTAINER_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -89,6 +91,7 @@ LABEL io.aswf.docker.versions.libpng="$ASWF_LIBPNG_VERSION" LABEL io.aswf.docker.versions.libtiff="$ASWF_LIBTIFF_VERSION" LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" LABEL io.aswf.docker.versions.nlohmann_json="$ASWF_NLOHMANN_JSON_VERSION" +LABEL io.aswf.docker.versions.aces_container="$ASWF_ACES_CONTAINER_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -115,6 +118,7 @@ ENV ASWF_LIBPNG_VERSION=$ASWF_LIBPNG_VERSION ENV ASWF_LIBTIFF_VERSION=$ASWF_LIBTIFF_VERSION ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION ENV ASWF_NLOHMANN_JSON_VERSION=$ASWF_NLOHMANN_JSON_VERSION +ENV ASWF_ACES_CONTAINER_VERSION=$ASWF_ACES_CONTAINER_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -146,6 +150,7 @@ libpng/${ASWF_LIBPNG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libtiff/${ASWF_LIBTIFF_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} nlohmann_json/${ASWF_NLOHMANN_JSON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +aces_container/${ASWF_ACES_CONTAINER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 diff --git a/ci-rawtoaces/README.md b/ci-rawtoaces/README.md index 7197a521..b132139c 100644 --- a/ci-rawtoaces/README.md +++ b/ci-rawtoaces/README.md @@ -31,6 +31,7 @@ Contains: * libtiff-4.0.9 * libwebp-1.5.0 * nlohmann_json-3.12.0 +* aces_container-1.0.2 * numpy-1.24.3 * vfxplatform-2024 @@ -47,6 +48,7 @@ Contains: * libtiff-4.0.9 * libwebp-1.5.0 * nlohmann_json-3.12.0 +* aces_container-1.0.2 * numpy-1.26.4 * vfxplatform-2025 @@ -63,6 +65,7 @@ Contains: * libtiff-4.4.0 * libwebp-1.5.0 * nlohmann_json-3.12.0 +* aces_container-1.0.2 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-rawtoaces/image.yaml b/ci-rawtoaces/image.yaml index 5bca3f50..d26a5687 100644 --- a/ci-rawtoaces/image.yaml +++ b/ci-rawtoaces/image.yaml @@ -16,6 +16,7 @@ packages: - libtiff - libwebp - nlohmann_json + - aces_container implicit_packages: - numpy - vfxplatform diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index d268899c..22753bf6 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -68,6 +68,7 @@ ARG ASWF_USD_VERSION ARG ASWF_PARTIO_VERSION ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION +ARG ASWF_RAWTOACES_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_HDF5_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -145,6 +146,7 @@ ARG ASWF_USD_VERSION ARG ASWF_PARTIO_VERSION ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION +ARG ASWF_RAWTOACES_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_HDF5_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -216,6 +218,7 @@ LABEL io.aswf.docker.versions.usd="$ASWF_USD_VERSION" LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" LABEL io.aswf.docker.versions.osl="$ASWF_OSL_VERSION" LABEL io.aswf.docker.versions.otio="$ASWF_OTIO_VERSION" +LABEL io.aswf.docker.versions.rawtoaces="$ASWF_RAWTOACES_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.hdf5="$ASWF_HDF5_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -284,6 +287,7 @@ ENV ASWF_USD_VERSION=$ASWF_USD_VERSION ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION ENV ASWF_OSL_VERSION=$ASWF_OSL_VERSION ENV ASWF_OTIO_VERSION=$ASWF_OTIO_VERSION +ENV ASWF_RAWTOACES_VERSION=$ASWF_RAWTOACES_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -360,6 +364,7 @@ materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # osl/${ASWF_OSL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # otio/${ASWF_OTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +rawtoaces/${ASWF_RAWTOACES_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 53940610..34aa9bed 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -453,6 +453,7 @@ Contains: * partio-1.19.0 * osl-1.13.11.0 * otio-0.17.0 +* rawtoaces-vfx2026.0 * numpy-1.24.3 * hdf5-1.8.23 * vfxplatform-2024 @@ -509,6 +510,7 @@ Contains: * partio-1.19.0 * osl-1.13.11.0 * otio-0.17.0 +* rawtoaces-vfx2026.0 * numpy-1.24.3 * hdf5-1.8.23 * vfxplatform-2024 @@ -565,6 +567,7 @@ Contains: * partio-1.19.0 * osl-1.14.6.0 * otio-0.17.0 +* rawtoaces-vfx2026.0 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2025 @@ -621,6 +624,7 @@ Contains: * partio-1.19.0 * osl-1.14.6.0 * otio-0.17.0 +* rawtoaces-vfx2026.0 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2025 @@ -677,6 +681,7 @@ Contains: * partio-1.19.0 * osl-1.14.6.0 * otio-0.17.0 +* rawtoaces-vfx2026.0 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2026 @@ -733,6 +738,7 @@ Contains: * partio-1.19.0 * osl-1.14.6.0 * otio-0.17.0 +* rawtoaces-vfx2026.0 * numpy-1.26.4 * hdf5-1.8.23 * vfxplatform-2026 diff --git a/ci-vfxall/image.yaml b/ci-vfxall/image.yaml index 5c07cdb5..172faea8 100644 --- a/ci-vfxall/image.yaml +++ b/ci-vfxall/image.yaml @@ -56,6 +56,7 @@ packages: - partio - osl - otio + - rawtoaces implicit_packages: - numpy - hdf5 diff --git a/packages/conan/recipes/aces_container/conandata.yml b/packages/conan/recipes/aces_container/conandata.yml new file mode 100644 index 00000000..e8970fa4 --- /dev/null +++ b/packages/conan/recipes/aces_container/conandata.yml @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# + +sources: + "1.0.2": + url: "https://github.com/ampas/aces_container/archive/refs/tags/v1.0.2.tar.gz" + sha256: "cbbba395d2425251263e4ae05c4829319a3e399a0aee70df2eb9efb6a8afdbae" +patches: + "1.0.2": + - patch_file: "patches/cmake_4_compat.diff" + patch_description: "Allow building with CMake 4" + patch_type: "conan" diff --git a/packages/conan/recipes/aces_container/conanfile.py b/packages/conan/recipes/aces_container/conanfile.py new file mode 100644 index 00000000..8bd0abc2 --- /dev/null +++ b/packages/conan/recipes/aces_container/conanfile.py @@ -0,0 +1,79 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# + +from conan import ConanFile +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir +from conan.tools.scm import Version +import os + +required_conan_version = ">=2" + + +class ACESContainerConan(ConanFile): + name = "aces_container" + license = "AMPAS ACES Container" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://acescentral.com/" + description = "Reference Implementation of SMPTE ST2065-4." + topics = ("aces", "image", "picture") + + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + } + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + # ASWF: DSOs in lib64 + self.cpp.package.libdirs = ["lib64"] + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + tc.variables["INSTALL_LIB_DIR"] = "lib64" + tc.variables["INSTALL_CMAKE_DIR"] = os.path.join("lib64", "cmake", "AcesContainer") + tc.generate() + deps = CMakeDeps(self) + deps.generate() + + def build(self): + apply_conandata_patches(self) + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: separate license files per package + copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + cmake = CMake(self) + cmake.install() + # aces_container CMakeLists.txt hard codes lib/pkgconfig + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "AcesContainer") + self.cpp_info.set_property("cmake_target_name", "AcesContainer::AcesContainer") + self.cpp_info.libs = ["AcesContainer"] diff --git a/packages/conan/recipes/aces_container/patches/cmake_4_compat.diff b/packages/conan/recipes/aces_container/patches/cmake_4_compat.diff new file mode 100644 index 00000000..9a9be88d --- /dev/null +++ b/packages/conan/recipes/aces_container/patches/cmake_4_compat.diff @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index b230b9e..35dfdca 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -44,7 +44,7 @@ + # IMPLEMENTATION, OR APPLICATIONS THEREOF, HELD BY PARTIES OTHER THAN + # A.M.P.A.S., WHETHER DISCLOSED OR UNDISCLOSED. + +-cmake_minimum_required (VERSION 2.6) ++cmake_minimum_required (VERSION 3.5) + project (AcesContainer) + + include (GenerateExportHeader) diff --git a/packages/conan/recipes/libraw/conanfile.py b/packages/conan/recipes/libraw/conanfile.py index b29f2675..6cfd77a5 100644 --- a/packages/conan/recipes/libraw/conanfile.py +++ b/packages/conan/recipes/libraw/conanfile.py @@ -34,7 +34,7 @@ class LibRawConan(ConanFile): default_options = { "shared": False, "fPIC": True, - "build_thread_safe": False, + "build_thread_safe": True, # ASWF: oiio will use this "with_jpeg": "libjpeg-turbo", # ASWF: match oiio default "with_lcms": True, "with_jasper": True, @@ -107,6 +107,10 @@ def package(self): cmake.install() def package_info(self): + # ASWF: generate CMake config files + self.cpp_info.set_property("cmake_file_name", "libraw") + self.cpp_info.set_property("cmake_target_name", "libraw::libraw") + self.cpp_info.components["libraw_"].set_property("pkg_config_name", "libraw") self.cpp_info.components["libraw_"].libs = ["raw"] self.cpp_info.components["libraw_"].includedirs.append(os.path.join("include", "libraw")) diff --git a/packages/conan/recipes/oiio/conanfile.py b/packages/conan/recipes/oiio/conanfile.py index 81a4c08c..df763084 100644 --- a/packages/conan/recipes/oiio/conanfile.py +++ b/packages/conan/recipes/oiio/conanfile.py @@ -51,6 +51,7 @@ class OpenImageIOConan(ConanFile): "with_libwebp": [True, False], "with_libjxl": [True, False], "with_libuhdr": [True, False], + "with_iv": [True, False], } default_options = { "shared": False, @@ -61,7 +62,7 @@ class OpenImageIOConan(ConanFile): "with_hdf5": False, # ASWF: disable until we resolve dependencies "with_opencolorio": True, "with_opencv": False, - "with_tbb": False, + "with_tbb": True, # ASWF: exercise dependency "with_dicom": False, # Heavy dependency, disabled by default "with_ffmpeg": False, # ASWF: disable until we resolve dependencies "with_giflib": True, @@ -73,6 +74,7 @@ class OpenImageIOConan(ConanFile): "with_libwebp": True, "with_libjxl": True, "with_libuhdr": True, + "with_iv": False, # ASWF: enable once we figure out why configure doesn't find Qt or OpenGL } def export_sources(self): @@ -143,6 +145,9 @@ def requirements(self): self.requires("libuhdr/1.4.0") # TODO: R3DSDK dependency # TODO: Nuke dependency + if self.options.with_iv: + self.requires("opengl/system") + self.requires("qt/6.8.3") def validate(self): if self.settings.compiler.cppstd: diff --git a/packages/conan/recipes/onetbb/all/conanfile.py b/packages/conan/recipes/onetbb/all/conanfile.py index 40759085..43058e29 100644 --- a/packages/conan/recipes/onetbb/all/conanfile.py +++ b/packages/conan/recipes/onetbb/all/conanfile.py @@ -146,7 +146,7 @@ def generate(self): "libhwloc.dylib" if self.settings.os == "Macos" else "libhwloc.so") toolchain.variables[f"CMAKE_HWLOC_{self._tbbbind_hwloc_version}_LIBRARY_PATH"] = \ - os.path.join(hwloc_package_folder, "lib", hwloc_lib_name).replace("\\", "/") + os.path.join(hwloc_package_folder, "lib64", hwloc_lib_name).replace("\\", "/") # ASWF: DSOs in lib64 toolchain.variables[f"CMAKE_HWLOC_{self._tbbbind_hwloc_version}_INCLUDE_PATH"] = \ os.path.join(hwloc_package_folder, "include").replace("\\", "/") if self.settings.os == "Windows": @@ -195,7 +195,7 @@ def lib_name(name): tbb.set_property("cmake_target_name", "TBB::tbb") if self.options.get_safe("build_apple_frameworks"): - tbb.frameworkdirs.append(os.path.join(self.package_folder, "lib")) + tbb.frameworkdirs.append(os.path.join(self.package_folder, "lib64")) # ASWF: DSOs in lib64 tbb.frameworks.append("tbb") else: tbb.libs = [lib_name("tbb")] @@ -221,7 +221,7 @@ def lib_name(name): tbbmalloc.set_property("cmake_target_name", "TBB::tbbmalloc") if self.options.get_safe("build_apple_frameworks"): - tbbmalloc.frameworkdirs.append(os.path.join(self.package_folder, "lib")) + tbbmalloc.frameworkdirs.append(os.path.join(self.package_folder, "lib64")) # ASWF: DSOs in lib64 tbbmalloc.frameworks.append("tbbmalloc") else: tbbmalloc.libs = [lib_name("tbbmalloc")] @@ -236,7 +236,7 @@ def lib_name(name): tbbproxy.set_property("cmake_target_name", "TBB::tbbmalloc_proxy") if self.options.get_safe("build_apple_frameworks"): - tbbproxy.frameworkdirs.append(os.path.join(self.package_folder, "lib")) + tbbproxy.frameworkdirs.append(os.path.join(self.package_folder, "lib64")) # ASWF: DSOs in lib64 tbbproxy.frameworks.append("tbbmalloc_proxy") else: tbbproxy.libs = [lib_name("tbbmalloc_proxy")] diff --git a/packages/conan/recipes/rawtoaces/conandata.yml b/packages/conan/recipes/rawtoaces/conandata.yml new file mode 100644 index 00000000..db8134ad --- /dev/null +++ b/packages/conan/recipes/rawtoaces/conandata.yml @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# + +sources: + "vfx2026.0": + url: "https://github.com/AcademySoftwareFoundation/rawtoaces/archive/refs/tags/vfx2026.0.tar.gz" + sha256: "292fdf087dd5543f2de08fb85378f62489436a3146c657b80a0f52ca227680c7" +patches: + "vfx2026.0": + - patch_file: "patches/cmake_libraw_target.diff" + patch_description: "libraw Cmake target from Conan Center Index recipe" + patch_type: "conan" diff --git a/packages/conan/recipes/rawtoaces/conanfile.py b/packages/conan/recipes/rawtoaces/conanfile.py new file mode 100644 index 00000000..cf9fc24b --- /dev/null +++ b/packages/conan/recipes/rawtoaces/conanfile.py @@ -0,0 +1,92 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# + +from conan import ConanFile +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir +from conan.tools.scm import Version +import os + +required_conan_version = ">=2" + + +class RawtoacesConan(ConanFile): + name = "rawtoaces" + license = "Apache-2.0" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/AcademySoftwareFoundation/rawtoaces" + description = "rawtoaces converts digital camera RAW files to ACES container files." + topics = ("image", "photography", "raw") + + package_type = "application" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + } + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + # ASWF: DSOs in lib64 + self.cpp.package.libdirs = ["lib64"] + + def requirements(self): + # Conan environment overrides + self.requires("ceres-solver/2.2.0") + self.requires("imath/3.1.12") + self.requires("libraw/0.21.4") + self.requires("boost/1.88.0") + self.requires("aces_container/1.0.2") + # At next version the requirements below are added + self.requires("oiio/3.0.7.0") + self.requires("nlohmann_json/3.12.0") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + tc.variables["INSTALL_LIB_DIR"] = "lib64" + tc.variables["INSTALL_CMAKE_DIR"] = os.path.join("lib64", "cmake", "RAWTOACES") + # Dont point rpath to internal Conan directories + tc.cache_variables["CMAKE_INSTALL_RPATH_USE_LINK_PATH"] = False + tc.cache_variables["CMAKE_INSTALL_RPATH"] = "" + tc.cache_variables["CMAKE_SKIP_RPATH"] = True + tc.generate() + deps = CMakeDeps(self) + deps.generate() + + def build(self): + apply_conandata_patches(self) + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: separate license files per package + copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + cmake = CMake(self) + cmake.install() + rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + + def package_info(self): + pass + diff --git a/packages/conan/recipes/rawtoaces/patches/cmake_libraw_target.diff b/packages/conan/recipes/rawtoaces/patches/cmake_libraw_target.diff new file mode 100644 index 00000000..903df826 --- /dev/null +++ b/packages/conan/recipes/rawtoaces/patches/cmake_libraw_target.diff @@ -0,0 +1,39 @@ +diff -ur a/CMakeLists.txt b/CMakeLists.txt +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -122,7 +122,7 @@ + ) + + if ( LIBRAW_CONFIG_FOUND ) +- target_link_libraries ( rawtoaces PUBLIC libraw::raw ) ++ target_link_libraries ( rawtoaces PUBLIC libraw::libraw ) + else () + target_link_directories(rawtoaces PUBLIC ${libraw_LIBRARY_DIRS} ) + target_link_libraries(rawtoaces PUBLIC ${libraw_LIBRARIES} ${libraw_LDFLAGS_OTHER} ) +diff -ur a/src/rawtoaces_idt/CMakeLists.txt b/src/rawtoaces_idt/CMakeLists.txt +--- a/src/rawtoaces_idt/CMakeLists.txt ++++ b/src/rawtoaces_idt/CMakeLists.txt +@@ -42,4 +42,4 @@ + DESTINATION include/rawtoaces + ) + +-install( TARGETS ${RAWTOACESIDTLIB} DESTINATION lib ) ++install( TARGETS ${RAWTOACESIDTLIB} DESTINATION ${INSTALL_LIB_DIR} ) +diff -ur a/src/rawtoaces_util/CMakeLists.txt b/src/rawtoaces_util/CMakeLists.txt +--- a/src/rawtoaces_util/CMakeLists.txt ++++ b/src/rawtoaces_util/CMakeLists.txt +@@ -25,7 +25,7 @@ + ) + + if ( LIBRAW_CONFIG_FOUND ) +- target_link_libraries ( ${RAWTOACESLIB} PUBLIC libraw::raw ) ++ target_link_libraries ( ${RAWTOACESLIB} PUBLIC libraw::libraw ) + else () + target_link_directories(${RAWTOACESLIB} PUBLIC ${libraw_LIBRARY_DIRS} ) + target_link_libraries(${RAWTOACESLIB} PUBLIC ${libraw_LIBRARIES} ${libraw_LDFLAGS_OTHER} ) +@@ -41,4 +41,4 @@ + DESTINATION include/rawtoaces + ) + +-install( TARGETS ${RAWTOACESLIB} DESTINATION lib ) ++install( TARGETS ${RAWTOACESLIB} DESTINATION ${INSTALL_LIB_DIR} ) diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index eb9f8bd6..5d9bb644 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -6,6 +6,7 @@ include(ci_common4) *:shared=True [tool_requires] [replace_requires] +aces_container/*: aces_container/1.0.2@aswf/vfx2024 boost/*: boost/1.82.0@aswf/vfx2024 brotli/*: brotli/system@aswf/vfx2024 bzip2/*: bzip2/1.0.8@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index fe21871a..c61fe282 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -6,6 +6,7 @@ include(ci_common5) *:shared=True [tool_requires] [replace_requires] +aces_container/*: aces_container/1.0.2@aswf/vfx2025 boost/*: boost/1.85.0@aswf/vfx2025 brotli/*: brotli/system@aswf/vfx2025 bzip2/*: bzip2/1.0.8@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index 40fc27fc..a3231d47 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -8,6 +8,7 @@ qt/*:compiler.cppstd=gnu20 *:shared=True [tool_requires] [replace_requires] +aces_container/*: aces_container/1.0.2@aswf/vfx2026 boost/*: boost/1.88.0@aswf/vfx2026 brotli/*: brotli/system@aswf/vfx2026 bzip2/*: bzip2/1.0.8@aswf/vfx2026 @@ -59,7 +60,7 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2026 nspr/*: nspr/system@aswf/vfx2026 nss/*: nss/3.101.0@aswf/vfx2026 ocio/*: ocio/2.4.2@aswf/vfx2026 -oiio/*: oiio/3.0.7.0@aswf/vfx2026 +oiio/*: oiio/3.0.8.1@aswf/vfx2026 ogg/*: ogg/system@aswf/vfx2026 onetbb/*: onetbb/2022.1.0@aswf/vfx2026 openal-soft/*: openal-soft/system@aswf/vfx2026 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index b675e297..dfa06682 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -6,6 +6,7 @@ include(ci_common4) *:shared=True [tool_requires] [replace_requires] +aces_container/*: aces_container/1.0.2@aswftesting/vfx2024 boost/*: boost/1.82.0@aswftesting/vfx2024 brotli/*: brotli/system@aswftesting/vfx2024 bzip2/*: bzip2/1.0.8@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 283361e3..b243e935 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -6,6 +6,7 @@ include(ci_common5) *:shared=True [tool_requires] [replace_requires] +aces_container/*: aces_container/1.0.2@aswftesting/vfx2025 boost/*: boost/1.85.0@aswftesting/vfx2025 brotli/*: brotli/system@aswftesting/vfx2025 bzip2/*: bzip2/1.0.8@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 0466206d..03967562 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -8,6 +8,7 @@ qt/*:compiler.cppstd=gnu20 *:shared=True [tool_requires] [replace_requires] +aces_container/*: aces_container/1.0.2@aswftesting/vfx2026 boost/*: boost/1.88.0@aswftesting/vfx2026 brotli/*: brotli/system@aswftesting/vfx2026 bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 @@ -59,7 +60,7 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2026 nspr/*: nspr/system@aswftesting/vfx2026 nss/*: nss/3.101.0@aswftesting/vfx2026 ocio/*: ocio/2.4.2@aswftesting/vfx2026 -oiio/*: oiio/3.0.7.0@aswftesting/vfx2026 +oiio/*: oiio/3.0.8.1@aswftesting/vfx2026 ogg/*: ogg/system@aswftesting/vfx2026 onetbb/*: onetbb/2022.1.0@aswftesting/vfx2026 openal-soft/*: openal-soft/system@aswftesting/vfx2026 diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index d6682283..fedc30a6 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -552,6 +552,7 @@ versions: ASWF_XORG_PROTO_VERSION: "system" ASWF_XZ_UTILS_VERSION: "system" # Packages not specified by VFX Platform + ASWF_ACES_CONTAINER_VERSION: "1.0.2" ASWF_B2_VERSION: "5.2.1" ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" @@ -618,7 +619,7 @@ versions: ASWF_OPENVDB_VERSION: "11.0.0" ASWF_OSL_VERSION: "1.13.11.0" ASWF_OTIO_VERSION: "0.17.0" - ASWF_RAWTOACES_VERSION: "1.0.0" + ASWF_RAWTOACES_VERSION: "vfx2026.0" "2024-clang16": parent_versions: ["4", "4-clang16", "2024"] major_version: "2024" @@ -681,6 +682,7 @@ versions: ASWF_XORG_PROTO_VERSION: "system" ASWF_XZ_UTILS_VERSION: "system" # Packages not specified by VFX Platform + ASWF_ACES_CONTAINER_VERSION: "1.0.2" ASWF_B2_VERSION: "5.2.1" ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" @@ -747,7 +749,7 @@ versions: ASWF_OPENVDB_VERSION: "12.0.0" ASWF_OSL_VERSION: "1.14.6.0" ASWF_OTIO_VERSION: "0.17.0" - ASWF_RAWTOACES_VERSION: "1.0.0" + ASWF_RAWTOACES_VERSION: "vfx2026.0" "2025-clang18": parent_versions: ["5", "5-clang18", "2025"] major_version: "2025" @@ -811,6 +813,7 @@ versions: ASWF_XORG_PROTO_VERSION: "system" ASWF_XZ_UTILS_VERSION: "system" # Packages not specified by VFX Platform + ASWF_ACES_CONTAINER_VERSION: "1.0.2" ASWF_B2_VERSION: "5.3.2" ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" @@ -877,7 +880,7 @@ versions: ASWF_OPENVDB_VERSION: "12.0.1" ASWF_OSL_VERSION: "1.14.6.0" ASWF_OTIO_VERSION: "0.17.0" - ASWF_RAWTOACES_VERSION: "1.0.0" + ASWF_RAWTOACES_VERSION: "vfx2026.0" "2026-clang19": parent_versions: ["6", "6-clang19", "2026"] major_version: "2026" @@ -1179,6 +1182,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + aces_container: + - "2024.3" + - "2025.2" + - "2026.0" bzip2: - "2024.3" - "2025.2" @@ -1720,7 +1727,8 @@ groups: - mpg123 - ogg - vorbis - vfx1-1: + vfx1-1: + - aces_container - highway - imath - jasper @@ -1785,6 +1793,7 @@ package_data: - ASWF_CONAN_PYTHON_VERSION conan_only: + - aces_container - alembic - b2 - c-blosc From 33c8a8c2588e05746a33b851f369b7dc688d89ea Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Sat, 19 Jul 2025 17:56:39 -0700 Subject: [PATCH 09/14] HDF5 support in Alembic Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 13 +- ci-oiio/Dockerfile | 5 + ci-oiio/README.md | 3 + ci-oiio/image.yaml | 3 +- ci-usd/README.md | 8 +- ci-vfxall/README.md | 16 +- packages/conan/recipes/alembic/conanfile.py | 18 +- .../recipes/alembic/test_package/conanfile.py | 3 +- packages/conan/recipes/hdf5/conandata.yml | 100 ++++++ packages/conan/recipes/hdf5/conanfile.py | 323 ++++++++++++++++++ .../patches/conanize-link-szip-1.10.5+.patch | 37 ++ .../patches/conanize-link-szip-1.12.2+.patch | 46 +++ .../patches/conanize-link-szip-1.14.0+.patch | 45 +++ .../patches/conanize-link-szip-1.8.21.patch | 37 ++ ...-missing-function-prototypes-1.10.5+.patch | 34 ++ ...x-missing-function-prototypes-1.10.6.patch | 24 ++ .../mingw-cmake-size-type-checks-1.10.5.patch | 29 ++ .../mingw-cmake-size-type-checks-1.8.21.patch | 29 ++ .../hdf5/patches/mingw-fix-prefix-lib.patch | 11 + .../hdf5/patches/mingw-unused-ellipses.patch | 16 + .../recipes/hdf5/test_package/CMakeLists.txt | 34 ++ .../recipes/hdf5/test_package/conanfile.py | 41 +++ .../recipes/hdf5/test_package/test_package.c | 58 ++++ .../hdf5/test_package/test_package.cpp | 17 + .../recipes/hdf5/test_package/test_parallel.c | 107 ++++++ packages/conan/recipes/imath/conanfile.py | 8 +- packages/conan/settings/profiles_aswf/vfx2024 | 3 + packages/conan/settings/profiles_aswf/vfx2025 | 3 + packages/conan/settings/profiles_aswf/vfx2026 | 3 + .../settings/profiles_aswftesting/vfx2024 | 3 + .../settings/profiles_aswftesting/vfx2025 | 3 + .../settings/profiles_aswftesting/vfx2026 | 3 + python/aswfdocker/data/versions.yaml | 14 +- 33 files changed, 1060 insertions(+), 37 deletions(-) create mode 100644 packages/conan/recipes/hdf5/conandata.yml create mode 100644 packages/conan/recipes/hdf5/conanfile.py create mode 100644 packages/conan/recipes/hdf5/patches/conanize-link-szip-1.10.5+.patch create mode 100644 packages/conan/recipes/hdf5/patches/conanize-link-szip-1.12.2+.patch create mode 100644 packages/conan/recipes/hdf5/patches/conanize-link-szip-1.14.0+.patch create mode 100644 packages/conan/recipes/hdf5/patches/conanize-link-szip-1.8.21.patch create mode 100644 packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.5+.patch create mode 100644 packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.6.patch create mode 100644 packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.10.5.patch create mode 100644 packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.8.21.patch create mode 100644 packages/conan/recipes/hdf5/patches/mingw-fix-prefix-lib.patch create mode 100644 packages/conan/recipes/hdf5/patches/mingw-unused-ellipses.patch create mode 100644 packages/conan/recipes/hdf5/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/hdf5/test_package/conanfile.py create mode 100644 packages/conan/recipes/hdf5/test_package/test_package.c create mode 100644 packages/conan/recipes/hdf5/test_package/test_package.cpp create mode 100644 packages/conan/recipes/hdf5/test_package/test_parallel.c diff --git a/CHANGELOG.md b/CHANGELOG.md index 31523b4f..bc356f16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,11 +13,13 @@ All notable changes to this project will be documented in this file. - CMake 3.31.7 (was 3.27.9) - Ninja 1.13.1 (was 1.12.1) - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) + - Alembic 1.8.8 (was 1.8.6) - Blosc 1.21.6 (was 1.21.5) - GLEW 2.2.0 (was 2.1.0) - GLFW 3.4 (was 3.3.8) - gtest 1.15.2 (was 1.14.0) - - lcmd 2.17 (was 2.16) + - hdf5 1.14.6 + - lcms 2.17 (was 2.16) - log4cplus 2.1.2 (was 2.1.1) - minizip-ng 4.0.10 (was 4.0.8) - pybind11 2.13.6 (was 2.12.0) @@ -33,7 +35,8 @@ All notable changes to this project will be documented in this file. - Ninja 1.13.1 (was 1.12.1) - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) - LLVM 19.1.7 (was 19.1.1) - - lcmd 2.17 (was 2.16) + - hdf5 1.14.6 + - lcms 2.17 (was 2.16) - minizip-ng 4.0.10 (was 4.0.8) - opensubdiv 3.6.1 (was 3.6.0) - python 3.11.13 (was 3.11.11) @@ -46,11 +49,13 @@ All notable changes to this project will be documented in this file. - 2026.0 - pre-release for testing purposes, does not yet include late releasing ASWF packages in final 2026 release (OOCIO, OpenEXR, OpenVDB) - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions +- to minimize local changes against upstream Conan recipes and avoid spending time fighting build systems which hard code `lib` as the destination directory, all changes related to landing DSOs and support files in `lib64` are reverted - new Conan package and build images for OpenFX - new Conan package and build images for rawtoaces - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen , aces_container -- OpenVDB now built as a Conan package -- OpenImageIO builds with libraw support, Python bindings +- Alembic now [built with hdf5 dependency](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/254) +- OpenVDB now [built as a Conan package](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/231) +- OpenImageIO builds with plibraw support](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/264), [Python bindings](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/272) - system wrapper Conan packages - improved wrapper packages no longer declare include directories and libraries they don't include - query container OS for installed system package version instead of hard coding (pkgconfig / rpm) diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 26f67584..41f693ab 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -48,6 +48,7 @@ ARG ASWF_LIBJPEG_TURBO_VERSION ARG ASWF_LIBWEBP_VERSION ARG ASWF_MD4C_VERSION ARG ASWF_QT_VERSION +ARG ASWF_HDF5_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_JASPER_VERSION @@ -112,6 +113,7 @@ ARG ASWF_LIBJPEG_TURBO_VERSION ARG ASWF_LIBWEBP_VERSION ARG ASWF_MD4C_VERSION ARG ASWF_QT_VERSION +ARG ASWF_HDF5_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_JASPER_VERSION @@ -174,6 +176,7 @@ LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" +LABEL io.aswf.docker.versions.hdf5="$ASWF_HDF5_VERSION" LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.jasper="$ASWF_JASPER_VERSION" @@ -232,6 +235,7 @@ ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION ENV ASWF_QT_VERSION=$ASWF_QT_VERSION +ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_JASPER_VERSION=$ASWF_JASPER_VERSION @@ -295,6 +299,7 @@ libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +hdf5/${ASWF_HDF5_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} jasper/${ASWF_JASPER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-oiio/README.md b/ci-oiio/README.md index 0206d50d..eb3c58c3 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -49,6 +49,7 @@ Contains: * libwebp-1.5.0 * md4c-0.4.8 * qt-6.5.6 +* hdf5-1.14.6 * highway-1.2.0 * imath-3.1.12 * jasper-4.2.5 @@ -94,6 +95,7 @@ Contains: * libwebp-1.5.0 * md4c-0.4.8 * qt-6.5.6 +* hdf5-1.14.6 * highway-1.2.0 * imath-3.1.12 * jasper-4.2.5 @@ -139,6 +141,7 @@ Contains: * libwebp-1.5.0 * md4c-0.5.2 * qt-6.8.3 +* hdf5-1.14.6 * highway-1.2.0 * imath-3.1.12 * jasper-4.2.5 diff --git a/ci-oiio/image.yaml b/ci-oiio/image.yaml index eb75ca4a..e8e1815e 100644 --- a/ci-oiio/image.yaml +++ b/ci-oiio/image.yaml @@ -37,7 +37,8 @@ packages: - libwebp - md4c - qt # base2-2 packages - - highway # vfx1-1 packages + - hdf5 # vfx1-1 packages + - highway - imath - jasper - lcms diff --git a/ci-usd/README.md b/ci-usd/README.md index a402a4d8..769aba9e 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -190,12 +190,12 @@ Contains: * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 -* alembic-1.8.6 +* alembic-1.8.8 * ocio-2.3.2 * oiio-2.5.19.0 * materialx-1.39.2 * numpy-1.24.3 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2024 ## [aswf/ci-usd:2025.2](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2025.2) @@ -243,7 +243,7 @@ Contains: * oiio-3.0.8.1 * materialx-1.39.3 * numpy-1.26.4 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2025 ## [aswf/ci-usd:2026.0](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2026.0) @@ -291,6 +291,6 @@ Contains: * oiio-3.0.8.1 * materialx-1.39.3 * numpy-1.26.4 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2026 diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 34aa9bed..cb9bb17e 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -441,7 +441,7 @@ Contains: * pyside-6.5.6 * imath-3.1.12 * openexr-3.2.4 -* alembic-1.8.6 +* alembic-1.8.8 * oiio-2.5.19.0 * ocio-2.3.2 * openfx-1.5s @@ -455,7 +455,7 @@ Contains: * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.24.3 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2024 ## [aswf/ci-vfxall:2024-clang17.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang17.3) @@ -498,7 +498,7 @@ Contains: * pyside-6.5.6 * imath-3.1.12 * openexr-3.2.4 -* alembic-1.8.6 +* alembic-1.8.8 * oiio-2.5.19.0 * ocio-2.3.2 * openfx-1.5s @@ -512,7 +512,7 @@ Contains: * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.24.3 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2024 ## [aswf/ci-vfxall:2025-clang18.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang18.2) @@ -569,7 +569,7 @@ Contains: * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2025 ## [aswf/ci-vfxall:2025-clang19.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang19.2) @@ -626,7 +626,7 @@ Contains: * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2025 ## [aswf/ci-vfxall:2026-clang19.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2026-clang19.0) @@ -683,7 +683,7 @@ Contains: * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2026 ## [aswf/ci-vfxall:2026-clang20.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2026-clang20.0) @@ -740,6 +740,6 @@ Contains: * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 -* hdf5-1.8.23 +* hdf5-1.14.6 * vfxplatform-2026 diff --git a/packages/conan/recipes/alembic/conanfile.py b/packages/conan/recipes/alembic/conanfile.py index 21666595..8d245005 100644 --- a/packages/conan/recipes/alembic/conanfile.py +++ b/packages/conan/recipes/alembic/conanfile.py @@ -32,7 +32,7 @@ class AlembicConan(ConanFile): default_options = { "shared": False, "fPIC": True, - "with_hdf5": False, + "with_hdf5": True, # ASWF: exercise HDF5 support } def export_sources(self): @@ -52,10 +52,12 @@ def layout(self): self.cpp.package.libdirs = ["lib64"] def requirements(self): - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") - self.requires(f"boost/{os.environ['ASWF_BOOST_VERSION']}@{self.user}/{self.channel}") - self.requires(f"imath/{os.environ['ASWF_IMATH_VERSION']}@{self.user}/{self.channel}", transitive_headers = True, transitive_libs = True) - self.requires(f"openexr/{os.environ['ASWF_OPENEXR_VERSION']}@{self.user}/{self.channel}") + # ASWF: explicit dependencies, specific versions in Conan environment + self.requires(f"cpython/3.13.3") + self.requires(f"boost/1.88.0") + # ASWF: imath half.h is part of Alembic API + self.requires(f"imath/3.1.12", transitive_headers = True, transitive_libs = True) + self.requires(f"openexr/3.3.4") if self.options.with_hdf5: self.requires("hdf5/1.14.3") @@ -108,12 +110,6 @@ def package_info(self): if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.system_libs.extend(["m", "pthread"]) - # ASWF add explicit package requirements - self.cpp_info.requires.append("cpython::cpython") - self.cpp_info.requires.append("boost::boost") - self.cpp_info.requires.append("imath::imath") - self.cpp_info.requires.append("openexr::openexr") - # TODO: to remove in conan v2 once cmake_find_package* generators removed self.cpp_info.names["cmake_find_package"] = "Alembic" self.cpp_info.names["cmake_find_package_multi"] = "Alembic" diff --git a/packages/conan/recipes/alembic/test_package/conanfile.py b/packages/conan/recipes/alembic/test_package/conanfile.py index e8a02447..cf7cd1b7 100644 --- a/packages/conan/recipes/alembic/test_package/conanfile.py +++ b/packages/conan/recipes/alembic/test_package/conanfile.py @@ -24,7 +24,8 @@ def requirements(self): def build(self): cmake = CMake(self) cmake.configure() - cmake.build(cli_args=["--verbose"]) + cmake.configure() + cmake.build() def test(self): if can_run(self): diff --git a/packages/conan/recipes/hdf5/conandata.yml b/packages/conan/recipes/hdf5/conandata.yml new file mode 100644 index 00000000..fd8d9315 --- /dev/null +++ b/packages/conan/recipes/hdf5/conandata.yml @@ -0,0 +1,100 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/conandata.yml + +sources: + "1.14.6": + url: "https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5_1.14.6.tar.gz" + sha256: "09ee1c671a87401a5201c06106650f62badeea5a3b3941e9b1e2e1e08317357f" + "1.14.5": + url: "https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5_1.14.5.tar.gz" + sha256: "c83996dc79080a34e7b5244a1d5ea076abfd642ec12d7c25388e2fdd81d26350" + "1.14.4.3": + url: "https://github.com/HDFGroup/hdf5/archive/refs/tags/hdf5_1.14.4.3.tar.gz" + sha256: "690c1db7ba0fed4ffac61709236675ffd99d95d191e8920ee79c58d7e7ea3361" + "1.14.3": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_14_3/hdf5-1_14_3.tar.gz" + sha256: "df5ee33c74d5efb59738075ef96f4201588e1f1eeb233f047ac7fd1072dee1f6" + "1.14.2": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_14_2.tar.gz" + sha256: "83eaee3f9d1790bb4b29368bf1a648ece763097a4122c80a81076e8fb1e890e6" + "1.14.1": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_14_1.tar.gz" + sha256: "1f710f3846d9c3ef9a4c57ef252ee0570f0af4e028fd6ccc360a48b7b16c347d" + "1.14.0": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_14_0.tar.gz" + sha256: "0f2ec13c1bf6e9f506fd03681c83a476d722e7479cad9ce6f8585a26c317d0ad" + "1.13.1": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_13_1.tar.gz" + sha256: "92552458f35c7e58128ce1bfc2831abf901cc142ea0fdd2b056311e4452db7bf" + "1.12.2": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_12_2.tar.gz" + sha256: "1ca14cadff7bc4b61826eee591da1a330f44c107db66c9510ee95df3b2bc5f78" + "1.12.0": + # Need 1.12.0 for NetCDF 4.7.4 with byteranges=True + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_12_0.tar.gz" + sha256: "c64ffec2539ae6b6041f97952a40b0893c3c0df4d5b1c0177fb8aba567808158" + "1.10.6": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_10_6.tar.gz" + sha256: "e524b374b1c6f14f1aa87595c0761608c861fe7838549dab84639ae564ff48e8" + "1.10.5": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_10_5.tar.gz" + sha256: "22a4a48f94b013e9fd482c0bb0251de02ff9963787a107c5dde26a3f903b3b90" + "1.8.21": + url: "https://github.com/HDFGroup/hdf5/archive/hdf5-1_8_21.tar.gz" + sha256: "753520e34a576a64809b8e02d9c015d6126f7974f678c7417a60492d835a88f4" +patches: + "1.14.0": + - patch_file: "patches/conanize-link-szip-1.14.0+.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + "1.13.1": + - patch_file: "patches/conanize-link-szip-1.12.2+.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + "1.12.2": + - patch_file: "patches/conanize-link-szip-1.12.2+.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + "1.12.0": + - patch_file: "patches/conanize-link-szip-1.10.5+.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + "1.10.6": + - patch_file: "patches/fix-missing-function-prototypes-1.10.5+.patch" + patch_type: "conan" + patch_description: "Fix missing function prototypes" + - patch_file: "patches/fix-missing-function-prototypes-1.10.6.patch" + patch_type: "conan" + patch_description: "Fix missing function prototypes" + - patch_file: "patches/conanize-link-szip-1.10.5+.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + "1.10.5": + - patch_file: "patches/fix-missing-function-prototypes-1.10.5+.patch" + patch_type: "conan" + patch_description: "Fix missing function prototypes" + - patch_file: "patches/conanize-link-szip-1.10.5+.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + - patch_file: "patches/mingw-cmake-size-type-checks-1.10.5.patch" + patch_type: "conan" + patch_description: "mingw cmake size type checks" + - patch_file: "patches/mingw-fix-prefix-lib.patch" + patch_type: "conan" + patch_description: "mingw fix prefix lib" + - patch_file: "patches/mingw-unused-ellipses.patch" + patch_type: "conan" + patch_description: "mingw unused ellipses" + "1.8.21": + - patch_file: "patches/conanize-link-szip-1.8.21.patch" + patch_type: "conan" + patch_description: "Fixup target_link_libraries() targets for szip and zlib" + - patch_file: "patches/mingw-cmake-size-type-checks-1.8.21.patch" + patch_type: "conan" + patch_description: "mingw cmake size type checks" + - patch_file: "patches/mingw-fix-prefix-lib.patch" + patch_type: "conan" + patch_description: "mingw fix prefix lib" diff --git a/packages/conan/recipes/hdf5/conanfile.py b/packages/conan/recipes/hdf5/conanfile.py new file mode 100644 index 00000000..a85976e4 --- /dev/null +++ b/packages/conan/recipes/hdf5/conanfile.py @@ -0,0 +1,323 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/conanfile.py + +import glob +import os +import textwrap + +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import cross_building, check_min_cppstd, valid_min_cppstd +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, replace_in_file, rm, rmdir, save +from conan.tools.scm import Version + +required_conan_version = ">=1.54.0" + + +class Hdf5Conan(ConanFile): + name = "hdf5" + description = "HDF5 is a data model, library, and file format for storing and managing data." + license = "BSD-3-Clause" + topics = "hdf", "data" + homepage = "https://www.hdfgroup.org/solutions/hdf5/" + url = "https://github.com/conan-io/conan-center-index" + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "enable_cxx": [True, False], + "hl": [True, False], + "threadsafe": [True, False], + "with_zlib": [True, False], + "with_zlibng": [True, False], + "szip_support": [None, "with_libaec", "with_szip"], + "szip_encoding": [True, False], + "parallel": [True, False], + "enable_unsupported": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + "enable_cxx": True, + "hl": True, + "threadsafe": False, + "with_zlib": True, + "with_zlibng": False, + "szip_support": None, + "szip_encoding": False, + "parallel": False, + "enable_unsupported": False + } + + @property + def _min_cppstd(self): + if Version(self.version) < "1.14.0": + return "98" + return "11" + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + if not self.options.enable_cxx: + self.settings.rm_safe("compiler.cppstd") + self.settings.rm_safe("compiler.libcxx") + if (not self.options.enable_unsupported and (self.options.enable_cxx or self.options.hl))\ + or (self.settings.os == "Windows" and not self.options.shared): + del self.options.threadsafe + if not bool(self.options.szip_support): + del self.options.szip_encoding + + def layout(self): + cmake_layout(self, src_folder="src") + + def requirements(self): + if self.options.with_zlib: + self.requires("zlib/[>=1.2.11 <2]") + if self.options.with_zlibng: + self.requires("zlib-ng/2.2.2") + if self.options.szip_support == "with_libaec": + self.requires("libaec/1.0.6") + elif self.options.szip_support == "with_szip": + self.requires("szip/2.1.1") + if self.options.parallel: + self.requires("openmpi/4.1.0") + + def validate(self): + if self.options.parallel and not self.options.enable_unsupported: + if self.options.enable_cxx: + raise ConanInvalidConfiguration("Parallel and C++ options are mutually exclusive, forcefully allow with enable_unsupported=True") + if self.options.get_safe("threadsafe", False): + raise ConanInvalidConfiguration("Parallel and Threadsafe options are mutually exclusive, forcefully allow with enable_unsupported=True") + if self.options.szip_support == "with_szip" and \ + self.options.szip_encoding and \ + not self.dependencies["szip"].options.enable_encoding: + raise ConanInvalidConfiguration("encoding must be enabled in szip dependency (szip:enable_encoding=True)") + if self.options.with_zlib and self.options.get_safe("with_zlibng"): + raise ConanInvalidConfiguration("with_zlib and with_zlibng cannot be enabled at the same time") + if self.options.get_safe("with_zlibng") and Version(self.version) < "1.14.5": + raise ConanInvalidConfiguration("with_zlibng=True is incompatible with versions prior to v1.14.5") + if self.settings.get_safe("compiler.cppstd"): + check_min_cppstd(self, self._min_cppstd) + + def validate_build(self): + if cross_building(self) and Version(self.version) < "1.14.4.3": + # While building it runs some executables like H5detect + raise ConanInvalidConfiguration("Current recipe doesn't support cross-building (yet)") + + def build_requirements(self): + if Version(self.version) >= "1.14.0": + self.tool_requires("cmake/[>=3.18 <4]") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def _inject_stdlib_flag(self, tc): + if self.settings.os in ["Linux", "FreeBSD"] and self.settings.compiler == "clang": + cpp_stdlib = f" -stdlib={self.settings.compiler.libcxx}".rstrip("1") # strip 11 from stdlibc++11 + tc.variables["CMAKE_CXX_FLAGS"] = tc.variables.get("CMAKE_CXX_FLAGS", "") + cpp_stdlib + return tc + + def generate(self): + cmakedeps = CMakeDeps(self) + cmakedeps.generate() + + tc = CMakeToolchain(self) + if not valid_min_cppstd(self, self._min_cppstd): + tc.variables["CMAKE_CXX_STANDARD"] = self._min_cppstd + if self.settings.get_safe("compiler.libcxx"): + tc = self._inject_stdlib_flag(tc) + if self.options.szip_support == "with_libaec": + tc.variables["USE_LIBAEC"] = True + tc.variables["HDF5_EXTERNALLY_CONFIGURED"] = True + tc.variables["HDF5_EXTERNAL_LIB_PREFIX"] = "" + tc.variables["HDF5_USE_FOLDERS"] = False + tc.variables["HDF5_NO_PACKAGES"] = True + tc.variables["ALLOW_UNSUPPORTED"] = False + if Version(self.version) >= "1.10.6": + tc.variables["ONLY_SHARED_LIBS"] = self.options.shared + tc.variables["BUILD_STATIC_LIBS"] = not self.options.shared + tc.variables["BUILD_STATIC_EXECS"] = False + tc.variables["HDF5_ENABLE_COVERAGE"] = False + tc.variables["HDF5_ENABLE_USING_MEMCHECKER"] = False + if Version(self.version) >= "1.10.0": + tc.variables["HDF5_MEMORY_ALLOC_SANITY_CHECK"] = False + if Version(self.version) >= "1.10.5": + tc.variables["HDF5_ENABLE_PREADWRITE"] = True + tc.variables["HDF5_ENABLE_DEPRECATED_SYMBOLS"] = True + tc.variables["HDF5_BUILD_GENERATORS"] = False + tc.variables["HDF5_ENABLE_TRACE"] = False + if self.settings.build_type == "Debug": + tc.variables["HDF5_ENABLE_INSTRUMENT"] = False # Option? + tc.variables["HDF5_ENABLE_PARALLEL"] = self.options.parallel + tc.variables["HDF5_ENABLE_Z_LIB_SUPPORT"] = self.options.with_zlib + tc.variables["HDF5_ENABLE_SZIP_SUPPORT"] = bool(self.options.szip_support) + tc.variables["HDF5_ENABLE_SZIP_ENCODING"] = self.options.get_safe("szip_encoding", False) + tc.variables["HDF5_USE_ZLIB_NG"] = self.options.get_safe("with_zlibng", False) + tc.variables["HDF5_PACKAGE_EXTLIBS"] = False + tc.variables["HDF5_ENABLE_THREADSAFE"] = self.options.get_safe("threadsafe", False) + tc.variables["HDF5_ENABLE_DEBUG_APIS"] = False # Option? + tc.variables["BUILD_TESTING"] = False + + tc.variables["HDF5_INSTALL_INCLUDE_DIR"] = "include/hdf5" + + tc.variables["HDF5_BUILD_TOOLS"] = False + tc.variables["HDF5_BUILD_EXAMPLES"] = False + tc.variables["HDF5_BUILD_HL_LIB"] = self.options.hl + tc.variables["HDF5_BUILD_FORTRAN"] = False + tc.variables["HDF5_BUILD_CPP_LIB"] = self.options.enable_cxx + if Version(self.version) >= "1.10.0": + tc.variables["HDF5_BUILD_JAVA"] = False + tc.variables["ALLOW_UNSUPPORTED"] = self.options.enable_unsupported + tc.generate() + + def build(self): + apply_conandata_patches(self) + # Do not force PIC + replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"), + "set (CMAKE_POSITION_INDEPENDENT_CODE ON)", "") + cmake = CMake(self) + cmake.configure() + cmake.build() + + def _components(self): + hdf5_requirements = [] + if self.options.with_zlib: + hdf5_requirements.append("zlib::zlib") + if self.options.szip_support == "with_libaec": + hdf5_requirements.append("libaec::libaec") + elif self.options.szip_support == "with_szip": + hdf5_requirements.append("szip::szip") + if self.options.parallel: + hdf5_requirements.append("openmpi::openmpi") + + return { + "hdf5_c": {"component": "C", "alias_target": "hdf5", "requirements": hdf5_requirements}, + "hdf5_hl": {"component": "HL", "alias_target": "hdf5_hl", "requirements": ["hdf5_c"]}, + "hdf5_cpp": {"component": "CXX", "alias_target": "hdf5_cpp", "requirements": ["hdf5_c"]}, + "hdf5_hl_cpp": {"component": "HL_CXX", "alias_target": "hdf5_hl_cpp", "requirements": ["hdf5_c", "hdf5_cpp", "hdf5_hl"]}, + } + + def _create_cmake_module_alias_targets(self, module_file, targets): + content = "" + for alias, aliased in targets.items(): + content += textwrap.dedent(f"""\ + if(TARGET {aliased} AND NOT TARGET {alias}) + add_library({alias} INTERFACE IMPORTED) + set_property(TARGET {alias} PROPERTY INTERFACE_LINK_LIBRARIES {aliased}) + endif() + """) + + # add the additional hdf5_hl_cxx target when both CXX and HL components are specified + content += textwrap.dedent("""\ + if(TARGET HDF5::HL AND TARGET HDF5::CXX AND NOT TARGET hdf5::hdf5_hl_cpp) + add_library(hdf5::hdf5_hl_cpp INTERFACE IMPORTED) + set_property(TARGET hdf5::hdf5_hl_cpp PROPERTY INTERFACE_LINK_LIBRARIES HDF5::HL_CXX) + endif() + """) + save(self, module_file, content) + + def _create_cmake_module_variables(self, module_file, is_parallel): + content = "set(HDF5_IS_PARALLEL {})".format("ON" if is_parallel else "OFF") + save(self, module_file, content) + + @property + def _module_targets_file_rel_path(self): + return os.path.join("lib", "cmake", + f"conan-official-{self.name}-targets.cmake") + + @property + def _module_variables_file_rel_path(self): + return os.path.join("lib", "cmake", + f"conan-official-{self.name}-variables.cmake") + + def package(self): + # ASWF: license file in packace subdir + copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + + cmake = CMake(self) + cmake.install() + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + rm(self, "libhdf5.settings", os.path.join(self.package_folder, "lib")) + rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) + + # remove extra libs... building 1.8.21 as shared also outputs static libs on Linux. + if self.options.shared: + for lib in glob.glob(os.path.join(self.package_folder, "lib", "*.a")): + if not lib.endswith(".dll.a"): + os.remove(lib) + + # Mimic the official CMake FindHDF5 targets. HDF5::HDF5 refers to the global target as per conan, + # but component targets have a lower case namespace prefix. hdf5::hdf5 refers to the C library only + components = self._components() + self._create_cmake_module_alias_targets( + os.path.join(self.package_folder, self._module_targets_file_rel_path), + {f"hdf5::{component['alias_target']}": f"HDF5::{component['component']}" for component in components.values()} + ) + self._create_cmake_module_variables( + os.path.join(self.package_folder, self._module_variables_file_rel_path), + self.options.get_safe("parallel", False) + ) + + def package_info(self): + def add_component(component_name, component, alias_target, requirements): + def _config_libname(lib): + if self.settings.os == "Windows" and self.settings.compiler != "gcc" and not self.options.shared: + lib = "lib" + lib + if self.settings.build_type == "Debug": + debug_postfix = "_D" if self.settings.os == "Windows" else "_debug" + return lib + debug_postfix + # See config/cmake_ext_mod/HDFMacros.cmake + return lib + + self.cpp_info.components[component_name].set_property("cmake_target_name", f"hdf5::{alias_target}") + self.cpp_info.components[component_name].set_property("pkg_config_name", alias_target) + self.cpp_info.components[component_name].libs = [_config_libname(alias_target)] + self.cpp_info.components[component_name].requires = requirements + self.cpp_info.components[component_name].includedirs.append(os.path.join("include", "hdf5")) + + # TODO: to remove in conan v2 once cmake_find_package_* generators removed + # self.cpp_info.components[component_name].names["cmake_find_package"] = component + # self.cpp_info.components[component_name].names["cmake_find_package_multi"] = component + # self.cpp_info.components[component_name].build_modules["cmake_find_package"] = [self._module_targets_file_rel_path, self._module_variables_file_rel_path] + # self.cpp_info.components[component_name].build_modules["cmake_find_package_multi"] = [self._module_targets_file_rel_path, self._module_variables_file_rel_path] + + self.cpp_info.set_property("cmake_find_mode", "both") + self.cpp_info.set_property("cmake_file_name", "HDF5") + self.cpp_info.set_property("cmake_target_name", "HDF5::HDF5") + self.cpp_info.set_property("pkg_config_name", "hdf5-all-do-not-use") # to avoid conflict with hdf5_c component + self.cpp_info.set_property("cmake_build_modules", [self._module_variables_file_rel_path]) + + components = self._components() + add_component("hdf5_c", **components["hdf5_c"]) + self.cpp_info.components["hdf5_c"].includedirs.append(os.path.join("include", "hdf5")) + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.components["hdf5_c"].system_libs.extend(["dl", "m"]) + if self.options.get_safe("threadsafe"): + self.cpp_info.components["hdf5_c"].system_libs.append("pthread") + elif self.settings.os == "Windows": + self.cpp_info.components["hdf5_c"].system_libs.append("Shlwapi") + + if self.options.shared: + self.cpp_info.components["hdf5_c"].defines.append("H5_BUILT_AS_DYNAMIC_LIB") + if self.options.get_safe("enable_cxx"): + add_component("hdf5_cpp", **components["hdf5_cpp"]) + if self.options.get_safe("hl"): + add_component("hdf5_hl", **components["hdf5_hl"]) + if self.options.get_safe("enable_cxx"): + add_component("hdf5_hl_cpp", **components["hdf5_hl_cpp"]) + + # TODO: to remove in conan v2 once cmake_find_package_* generators removed + # self.cpp_info.names["cmake_find_package"] = "HDF5" + # self.cpp_info.names["cmake_find_package_multi"] = "HDF5" \ No newline at end of file diff --git a/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.10.5+.patch b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.10.5+.patch new file mode 100644 index 00000000..d81778f1 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.10.5+.patch @@ -0,0 +1,37 @@ +--- a/CMakeFilters.cmake ++++ b/CMakeFilters.cmake +@@ -52,10 +52,10 @@ + find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT ZLIB_FOUND) + find_package (ZLIB) # Legacy find +- if (ZLIB_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) +- set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${ZLIB_LIBRARIES}) +- endif () ++ endif () ++ if (ZLIB_FOUND) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) ++ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${ZLIB_LIBRARIES}) + endif () + endif () + if (ZLIB_FOUND) +@@ -102,10 +102,15 @@ + if (NOT SZIP_USE_EXTERNAL) + find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT SZIP_FOUND) +- find_package (SZIP) # Legacy find +- if (SZIP_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) +- set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${SZIP_LIBRARIES}) ++ find_package (szip CONFIG REQUIRED) ++ endif () ++ if (SZIP_FOUND) ++ if (TARGET szip-shared) ++ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} szip-shared) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-shared) ++ else () ++ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} szip-static) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-static) + endif () + endif () + endif () diff --git a/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.12.2+.patch b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.12.2+.patch new file mode 100644 index 00000000..1cdae1d2 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.12.2+.patch @@ -0,0 +1,46 @@ +diff --git a/CMakeFilters.cmake b/CMakeFilters.cmake +index 725390b31b..085b18051e 100644 +--- a/CMakeFilters.cmake ++++ b/CMakeFilters.cmake +@@ -63,9 +62,9 @@ + find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT ZLIB_FOUND) + find_package (ZLIB) # Legacy find +- if (ZLIB_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) +- endif () ++ endif () ++ if (ZLIB_FOUND) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) + endif () + endif () + if (ZLIB_FOUND) +@@ -113,19 +112,21 @@ + if (NOT SZIP_USE_EXTERNAL) + set(SZIP_FOUND FALSE) + if (USE_LIBAEC) +- set(libaec_USE_STATIC_LIBS ${USE_LIBAEC_STATIC}) +- find_package (libaec 1.0.5 CONFIG) +- if (SZIP_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) +- endif () ++ find_package (libaec CONFIG REQUIRED) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} libaec::libaec) ++ set (SZIP_FOUND TRUE) + endif () + + if (NOT SZIP_FOUND) + find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT SZIP_FOUND) + find_package (SZIP) # Legacy find +- if (SZIP_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) ++ endif () ++ if (SZIP_FOUND) ++ if (TARGET szip-shared) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-shared) ++ else () ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-static) + endif () + endif () + endif () diff --git a/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.14.0+.patch b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.14.0+.patch new file mode 100644 index 00000000..b7c286ec --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.14.0+.patch @@ -0,0 +1,45 @@ +diff -u a/CMakeFilters.cmake b/CMakeFilters.cmake +--- a/CMakeFilters.cmake 2023-01-04 22:29:45.875695757 +0100 ++++ b/CMakeFilters.cmake 2023-01-04 22:37:15.356762199 +0100 +@@ -59,9 +59,9 @@ + find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT ZLIB_FOUND) + find_package (ZLIB) # Legacy find +- if (ZLIB_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) +- endif () ++ endif() ++ if (ZLIB_FOUND) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) + endif () + endif () + if (ZLIB_FOUND) +@@ -105,20 +105,20 @@ + if (NOT SZIP_USE_EXTERNAL) + set(SZIP_FOUND FALSE) + if (USE_LIBAEC) +- set(libaec_USE_STATIC_LIBS ${USE_LIBAEC_STATIC}) +- find_package (libaec 1.0.5 CONFIG) +- if (SZIP_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) +- endif () ++ find_package (libaec CONFIG REQUIRED) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) ++ set (SZIP_FOUND TRUE) + endif () + + if (NOT SZIP_FOUND) + find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT SZIP_FOUND) + find_package (SZIP) # Legacy find +- if (SZIP_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) +- endif () ++ endif() ++ if (TARGET szip-shared) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-shared) ++ else () ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-static) + endif () + endif () + endif () diff --git a/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.8.21.patch b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.8.21.patch new file mode 100644 index 00000000..44cd1137 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/conanize-link-szip-1.8.21.patch @@ -0,0 +1,37 @@ +--- a/CMakeFilters.cmake ++++ b/CMakeFilters.cmake +@@ -44,10 +44,10 @@ + find_package (ZLIB NAMES ${ZLIB_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT ZLIB_FOUND) + find_package (ZLIB) # Legacy find +- if (ZLIB_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) +- set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${ZLIB_LIBRARIES}) +- endif () ++ endif () ++ if (ZLIB_FOUND) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${ZLIB_LIBRARIES}) ++ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${ZLIB_LIBRARIES}) + endif () + endif () + if (ZLIB_FOUND) +@@ -94,10 +94,15 @@ + if (NOT SZIP_USE_EXTERNAL) + find_package (SZIP NAMES ${SZIP_PACKAGE_NAME}${HDF_PACKAGE_EXT} COMPONENTS static shared) + if (NOT SZIP_FOUND) +- find_package (SZIP) # Legacy find +- if (SZIP_FOUND) +- set (LINK_COMP_LIBS ${LINK_COMP_LIBS} ${SZIP_LIBRARIES}) +- set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} ${SZIP_LIBRARIES}) ++ find_package (szip CONFIG REQUIRED) ++ endif () ++ if (SZIP_FOUND) ++ if (TARGET szip-shared) ++ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} szip-shared) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-shared) ++ else () ++ set (LINK_COMP_SHARED_LIBS ${LINK_COMP_SHARED_LIBS} szip-static) ++ set (LINK_COMP_LIBS ${LINK_COMP_LIBS} szip-static) + endif () + endif () + endif () diff --git a/packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.5+.patch b/packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.5+.patch new file mode 100644 index 00000000..5ef02437 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.5+.patch @@ -0,0 +1,34 @@ +diff --git a/src/H5Fsuper.c b/src/H5Fsuper.c +index 9339b3df6c..052c296ac1 100644 +--- a/src/H5Fsuper.c ++++ b/src/H5Fsuper.c +@@ -54,6 +54,7 @@ + /********************/ + static herr_t H5F__super_ext_create(H5F_t *f, H5O_loc_t *ext_ptr); + static herr_t H5F__update_super_ext_driver_msg(H5F_t *f); ++herr_t H5O__fsinfo_set_version(H5F_t *f, H5O_fsinfo_t *fsinfo); + + + /*********************/ +diff --git a/src/H5Odeprec.c b/src/H5Odeprec.c +index 33ed787440..b8e1af55ce 100644 +--- a/src/H5Odeprec.c ++++ b/src/H5Odeprec.c +@@ -54,6 +54,17 @@ + /********************/ + /* Local Prototypes */ + /********************/ ++herr_t ++H5CX_set_apl(hid_t *, const H5P_libclass_t *, ++ hid_t ++#ifndef H5_HAVE_PARALLEL ++H5_ATTR_UNUSED ++#endif /* H5_HAVE_PARALLEL */ ++, hbool_t ++#ifndef H5_HAVE_PARALLEL ++ H5_ATTR_UNUSED ++#endif /* H5_HAVE_PARALLEL */ ++); + + + /*********************/ diff --git a/packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.6.patch b/packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.6.patch new file mode 100644 index 00000000..e709d0b0 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/fix-missing-function-prototypes-1.10.6.patch @@ -0,0 +1,24 @@ +diff --git a/src/H5Oint.c b/src/H5Oint.c +index 543637c127..c8a6131a34 100644 +--- a/src/H5Oint.c ++++ b/src/H5Oint.c +@@ -82,6 +82,7 @@ static herr_t H5O__free_visit_visited(void *item, void *key, + static herr_t H5O__visit_cb(hid_t group, const char *name, const H5L_info_t *linfo, + void *_udata); + static const H5O_obj_class_t *H5O__obj_class_real(const H5O_t *oh); ++H5_DLL herr_t H5CX_get_ohdr_flags(uint8_t *ohdr_flags); + + + /*********************/ +diff --git a/src/H5Rint.c b/src/H5Rint.c +index 159bccac34..b48d2a706d 100644 +--- a/src/H5Rint.c ++++ b/src/H5Rint.c +@@ -46,6 +46,7 @@ + /********************/ + /* Local Prototypes */ + /********************/ ++H5_DLL herr_t H5CX_set_libver_bounds(H5F_t *f); + + /*********************/ + /* Package Variables */ diff --git a/packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.10.5.patch b/packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.10.5.patch new file mode 100644 index 00000000..ed647a71 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.10.5.patch @@ -0,0 +1,29 @@ +--- a/config/cmake_ext_mod/ConfigureChecks.cmake ++++ b/config/cmake_ext_mod/ConfigureChecks.cmake +@@ -405,7 +405,7 @@ if (NOT APPLE) + if (NOT ${HDF_PREFIX}_SIZEOF_SSIZE_T) + set (${HDF_PREFIX}_SIZEOF_SSIZE_T 0) + endif () +- if (NOT WINDOWS) ++ if (MINGW OR NOT WINDOWS) + HDF_CHECK_TYPE_SIZE (ptrdiff_t ${HDF_PREFIX}_SIZEOF_PTRDIFF_T) + endif () + endif () +@@ -429,7 +429,7 @@ else () + HDF_CHECK_TYPE_SIZE (_Bool ${HDF_PREFIX}_SIZEOF_BOOL) + endif () + +-if (NOT WINDOWS) ++if (MINGW OR NOT WINDOWS) + #----------------------------------------------------------------------------- + # Check if the dev_t type is a scalar type + #----------------------------------------------------------------------------- +@@ -558,7 +558,7 @@ endif () + #----------------------------------------------------------------------------- + # Check a bunch of other functions + #----------------------------------------------------------------------------- +-if (NOT WINDOWS) ++if (MINGW OR NOT WINDOWS) + foreach (test + HAVE_ATTRIBUTE + HAVE_C99_FUNC diff --git a/packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.8.21.patch b/packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.8.21.patch new file mode 100644 index 00000000..0c74663b --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/mingw-cmake-size-type-checks-1.8.21.patch @@ -0,0 +1,29 @@ +--- a/config/cmake_ext_mod/ConfigureChecks.cmake ++++ b/config/cmake_ext_mod/ConfigureChecks.cmake +@@ -420,7 +420,7 @@ if (NOT APPLE) + if (NOT ${HDF_PREFIX}_SIZEOF_SSIZE_T) + set (${HDF_PREFIX}_SIZEOF_SSIZE_T 0) + endif () +- if (NOT WINDOWS) ++ if (MINGW OR NOT WINDOWS) + HDF_CHECK_TYPE_SIZE (ptrdiff_t ${HDF_PREFIX}_SIZEOF_PTRDIFF_T) + endif () + endif () +@@ -444,7 +444,7 @@ else () + HDF_CHECK_TYPE_SIZE (_Bool ${HDF_PREFIX}_SIZEOF_BOOL) + endif () + +-if (NOT WINDOWS) ++if (MINGW OR NOT WINDOWS) + #----------------------------------------------------------------------------- + # Check if the dev_t type is a scalar type + #----------------------------------------------------------------------------- +@@ -571,7 +571,7 @@ endif () + #----------------------------------------------------------------------------- + # Check a bunch of other functions + #----------------------------------------------------------------------------- +-if (NOT WINDOWS) ++if (MINGW OR NOT WINDOWS) + foreach (test + HAVE_ATTRIBUTE + HAVE_C99_FUNC diff --git a/packages/conan/recipes/hdf5/patches/mingw-fix-prefix-lib.patch b/packages/conan/recipes/hdf5/patches/mingw-fix-prefix-lib.patch new file mode 100644 index 00000000..abb6a0eb --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/mingw-fix-prefix-lib.patch @@ -0,0 +1,11 @@ +--- a/config/cmake_ext_mod/HDFMacros.cmake ++++ b/config/cmake_ext_mod/HDFMacros.cmake +@@ -117,7 +117,7 @@ macro (HDF_SET_LIB_OPTIONS libtarget libname libtype) + set (LIB_RELEASE_NAME "${libname}") + set (LIB_DEBUG_NAME "${libname}${LIB_DEBUG_SUFFIX}") + else () +- if (WIN32) ++ if (WIN32 AND NOT MINGW) + set (LIB_RELEASE_NAME "lib${libname}") + set (LIB_DEBUG_NAME "lib${libname}${LIB_DEBUG_SUFFIX}") + else () diff --git a/packages/conan/recipes/hdf5/patches/mingw-unused-ellipses.patch b/packages/conan/recipes/hdf5/patches/mingw-unused-ellipses.patch new file mode 100644 index 00000000..52926db5 --- /dev/null +++ b/packages/conan/recipes/hdf5/patches/mingw-unused-ellipses.patch @@ -0,0 +1,16 @@ +--- a/src/H5win32defs.h ++++ b/src/H5win32defs.h +@@ -54,7 +54,12 @@ typedef __int64 h5_stat_size_t; + * Also note that the variadic macro is using a VC++ extension + * where the comma is dropped if nothing is passed to the ellipsis. + */ +-#define HDopen(S,F,...) _open(S, F | _O_BINARY, __VA_ARGS__) ++#ifdef H5_HAVE_MINGW ++ /* GCC/MINGW uses a different extension to handle unused ellipses */ ++ #define HDopen(S,F,...) _open(S, F | _O_BINARY, ##__VA_ARGS__) ++#else ++ #define HDopen(S,F,...) _open(S, F | _O_BINARY, __VA_ARGS__) ++#endif + #define HDread(F,M,Z) _read(F,M,Z) + #define HDrmdir(S) _rmdir(S) + #define HDsetvbuf(F,S,M,Z) setvbuf(F,S,M,(Z>1?Z:2)) diff --git a/packages/conan/recipes/hdf5/test_package/CMakeLists.txt b/packages/conan/recipes/hdf5/test_package/CMakeLists.txt new file mode 100644 index 00000000..6130cbbb --- /dev/null +++ b/packages/conan/recipes/hdf5/test_package/CMakeLists.txt @@ -0,0 +1,34 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.8) +project(test_package LANGUAGES C CXX) + +set(HDF5_COMPONENTS C) +if (HDF5_HL) + list(APPEND HDF5_COMPONENTS HL) +endif() +if (HDF5_CXX) + list(APPEND HDF5_COMPONENTS CXX) +endif() +find_package(HDF5 COMPONENTS ${HDF5_COMPONENTS}) + +add_executable(${PROJECT_NAME} test_package.c) +if(HDF5_CXX) + target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) +endif() + +if (TARGET hdf5::hdf5_cpp) + target_compile_definitions(${PROJECT_NAME} PRIVATE CONAN_HDF5_CXX) + target_sources(${PROJECT_NAME} PRIVATE test_package.cpp) + target_link_libraries(${PROJECT_NAME} PRIVATE hdf5::hdf5_cpp) +elseif (HDF5_IS_PARALLEL) + target_compile_definitions(${PROJECT_NAME} PRIVATE CONAN_HDF5_PARALLEL) + target_sources(${PROJECT_NAME} PRIVATE test_parallel.c) + target_link_libraries(${PROJECT_NAME} PRIVATE hdf5::hdf5) +else() + target_link_libraries(${PROJECT_NAME} PRIVATE hdf5::hdf5) +endif() diff --git a/packages/conan/recipes/hdf5/test_package/conanfile.py b/packages/conan/recipes/hdf5/test_package/conanfile.py new file mode 100644 index 00000000..05d4f713 --- /dev/null +++ b/packages/conan/recipes/hdf5/test_package/conanfile.py @@ -0,0 +1,41 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/test_package/conanfile.py + +import os + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def generate(self): + tc = CMakeToolchain(self) + tc.variables.update({ + "HDF5_CXX": self.dependencies["hdf5"].options.enable_cxx, + "HDF5_HL": self.dependencies["hdf5"].options.hl, + }) + tc.generate() + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/hdf5/test_package/test_package.c b/packages/conan/recipes/hdf5/test_package/test_package.c new file mode 100644 index 00000000..a1f819e3 --- /dev/null +++ b/packages/conan/recipes/hdf5/test_package/test_package.c @@ -0,0 +1,58 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/test_package/test_package.c +*/ + +#include "hdf5.h" +#define FILE "dset.h5" + +extern void test_cxx_api(); +extern void test_parallel(); + +void test_c_api() +{ + + hid_t file_id, dataset_id, dataspace_id; /* identifiers */ + hsize_t dims[2]; + herr_t status; + + /* Create a new file using default properties. */ + file_id = H5Fcreate(FILE, H5F_ACC_TRUNC, H5P_DEFAULT, H5P_DEFAULT); + + /* Create the data space for the dataset. */ + dims[0] = 4; + dims[1] = 6; + dataspace_id = H5Screate_simple(2, dims, NULL); + + /* Create the dataset. */ + dataset_id = + H5Dcreate2(file_id, "/dset", H5T_STD_I32BE, dataspace_id, H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + + /* End access to the dataset and release resources used by it. */ + status = H5Dclose(dataset_id); + + /* Terminate access to the data space. */ + status = H5Sclose(dataspace_id); + + /* Close the file. */ + status = H5Fclose(file_id); +} + +int main(int argc, char **argv) +{ + printf("Testing C API\n"); + test_c_api(); + #ifdef CONAN_HDF5_CXX + printf("Testing C++ API\n"); + test_cxx_api(); + #endif + #ifdef CONAN_HDF5_PARALLEL + printf("Testing HDF5 Parallel\n"); + test_parallel(argc, argv); + #endif + + return 0; +} diff --git a/packages/conan/recipes/hdf5/test_package/test_package.cpp b/packages/conan/recipes/hdf5/test_package/test_package.cpp new file mode 100644 index 00000000..5ac76351 --- /dev/null +++ b/packages/conan/recipes/hdf5/test_package/test_package.cpp @@ -0,0 +1,17 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/test_package/test_package.cpp +*/ + +#include + +extern "C" void test_cxx_api() +{ + hsize_t dimensions[] = {4, 6}; + H5::H5File file("dataset.h5", H5F_ACC_TRUNC); + H5::DataSpace dataspace(2, dimensions); + H5::DataSet dataset = file.createDataSet("dataset", H5::PredType::STD_I32BE, dataspace); +} diff --git a/packages/conan/recipes/hdf5/test_package/test_parallel.c b/packages/conan/recipes/hdf5/test_package/test_parallel.c new file mode 100644 index 00000000..54a33b24 --- /dev/null +++ b/packages/conan/recipes/hdf5/test_package/test_parallel.c @@ -0,0 +1,107 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/5b17b876f2b6899f3cc8dbfb2282b361cd18a48a/recipes/hdf5/all/test_package/test_parallel.c +*/ + +/* + * This example writes data to the HDF5 file. + * Number of processes is assumed to be 1 or multiples of 2 (up to 8) + */ + +#include "hdf5.h" +#include "stdlib.h" + +#define H5FILE_NAME "SDS.h5" +#define DATASETNAME "IntArray" +#define NX 8 /* dataset dimensions */ +#define NY 5 +#define RANK 2 + +int test_parallel(int argc, char **argv) +{ + /* + * HDF5 APIs definitions + */ + hid_t file_id, dset_id; /* file and dataset identifiers */ + hid_t filespace; /* file and memory dataspace identifiers */ + hsize_t dimsf[] = {NX, NY}; /* dataset dimensions */ + int *data; /* pointer to data buffer to write */ + hid_t plist_id; /* property list identifier */ + int i; + herr_t status; + + /* + * MPI variables + */ + int mpi_size, mpi_rank; + MPI_Comm comm = MPI_COMM_WORLD; + MPI_Info info = MPI_INFO_NULL; + + /* + * Initialize MPI + */ + MPI_Init(&argc, &argv); + MPI_Comm_size(comm, &mpi_size); + MPI_Comm_rank(comm, &mpi_rank); + + /* + * Initialize data buffer + */ + data = (int *) malloc(sizeof(int)*dimsf[0]*dimsf[1]); + for (i=0; i < dimsf[0]*dimsf[1]; i++) { + data[i] = i; + } + /* + * Set up file access property list with parallel I/O access + */ + plist_id = H5Pcreate(H5P_FILE_ACCESS); + H5Pset_fapl_mpio(plist_id, comm, info); + + /* + * Create a new file collectively and release property list identifier. + */ + file_id = H5Fcreate(H5FILE_NAME, H5F_ACC_TRUNC, H5P_DEFAULT, plist_id); + H5Pclose(plist_id); + + + /* + * Create the dataspace for the dataset. + */ + filespace = H5Screate_simple(RANK, dimsf, NULL); + + /* + * Create the dataset with default properties and close filespace. + */ + dset_id = H5Dcreate(file_id, DATASETNAME, H5T_NATIVE_INT, filespace, + H5P_DEFAULT, H5P_DEFAULT, H5P_DEFAULT); + /* + * Create property list for collective dataset write. + */ + plist_id = H5Pcreate(H5P_DATASET_XFER); + H5Pset_dxpl_mpio(plist_id, H5FD_MPIO_COLLECTIVE); + + /* + * To write dataset independently use + * + * H5Pset_dxpl_mpio(plist_id, H5FD_MPIO_INDEPENDENT); + */ + + status = H5Dwrite(dset_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, + plist_id, data); + free(data); + + /* + * Close/release resources. + */ + H5Dclose(dset_id); + H5Sclose(filespace); + H5Pclose(plist_id); + H5Fclose(file_id); + + MPI_Finalize(); + + return 0; +} diff --git a/packages/conan/recipes/imath/conanfile.py b/packages/conan/recipes/imath/conanfile.py index ab6a91e9..624ec4b2 100644 --- a/packages/conan/recipes/imath/conanfile.py +++ b/packages/conan/recipes/imath/conanfile.py @@ -60,10 +60,10 @@ def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) def requirements(self): - # ASWF: explicit requirements - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") - self.requires(f"boost/{os.environ['ASWF_BOOST_VERSION']}@{self.user}/{self.channel}") - self.requires(f"pybind11/{os.environ['ASWF_PYBIND11_VERSION']}@{self.user}/{self.channel}") + # ASWF: explicit requirements, specific versions in Conan environment + self.requires(f"cpython/3.13.3") + self.requires(f"boost/1.88.0") + self.requires(f"pybind11/2.11.1") def generate(self): tc = CMakeToolchain(self) diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 5d9bb644..55be6e4d 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -7,10 +7,12 @@ include(ci_common4) [tool_requires] [replace_requires] aces_container/*: aces_container/1.0.2@aswf/vfx2024 +alembic/*: alembic/1.8.8@aswf/vfx2024 boost/*: boost/1.82.0@aswf/vfx2024 brotli/*: brotli/system@aswf/vfx2024 bzip2/*: bzip2/1.0.8@aswf/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2024 +cpython/*: cpython/3.11.13@aswf/vfx2024 dbus/*: dbus/system@aswf/vfx2024 double-conversion/*: double-conversion/system@aswf/vfx2024 eigen/*: eigen/3.4.0@aswf/vfx2024 @@ -22,6 +24,7 @@ gdbm/*: gdbm/system@aswf/vfx2024 giflib/*: giflib/5.1.4@aswf/vfx2024 glew/*: glew/2.2.0@aswf/vfx2024 glib/*: glib/2.56.4@aswf/vfx2024 +hdf5/*: hdf5/1.14.6@aswf/vfx2024 highway/*: highway/1.2.0@aswf/vfx2024 icu/*: icu/system@aswf/vfx2024 imath/*: imath/3.1.12@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index c61fe282..18316c44 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -7,10 +7,12 @@ include(ci_common5) [tool_requires] [replace_requires] aces_container/*: aces_container/1.0.2@aswf/vfx2025 +alembic/*: alembic/1.8.8@aswf/vfx2025 boost/*: boost/1.85.0@aswf/vfx2025 brotli/*: brotli/system@aswf/vfx2025 bzip2/*: bzip2/1.0.8@aswf/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2025 +cpython/*: cpython/3.11.13@aswf/vfx2025 dbus/*: dbus/system@aswf/vfx2025 double-conversion/*: double-conversion/system@aswf/vfx2025 eigen/*: eigen/3.4.0@aswf/vfx2025 @@ -22,6 +24,7 @@ gdbm/*: gdbm/system@aswf/vfx2025 giflib/*: giflib/5.1.4@aswf/vfx2025 glew/*: glew/2.2.0@aswf/vfx2025 glib/*: glib/2.56.4@aswf/vfx2025 +hdf5/*: hdf5/1.14.6@aswf/vfx2025 highway/*: highway/1.2.0@aswf/vfx2025 icu/*: icu/system@aswf/vfx2025 imath/*: imath/3.1.12@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index a3231d47..d90c54d9 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -9,10 +9,12 @@ qt/*:compiler.cppstd=gnu20 [tool_requires] [replace_requires] aces_container/*: aces_container/1.0.2@aswf/vfx2026 +alembic/*: alembic/1.8.8@aswf/vfx2026 boost/*: boost/1.88.0@aswf/vfx2026 brotli/*: brotli/system@aswf/vfx2026 bzip2/*: bzip2/1.0.8@aswf/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2026 +cpython/*: cpython/3.13.3@aswf/vfx2026 dbus/*: dbus/system@aswf/vfx2026 double-conversion/*: double-conversion/system@aswf/vfx2026 eigen/*: eigen/3.4.0@aswf/vfx2026 @@ -24,6 +26,7 @@ gdbm/*: gdbm/system@aswf/vfx2026 giflib/*: giflib/5.2.1@aswf/vfx2026 glew/*: glew/2.2.0@aswf/vfx2026 glib/*: glib/2.68.4@aswf/vfx2026 +hdf5/*: hdf5/1.14.6@aswf/vfx2026 highway/*: highway/1.2.0@aswf/vfx2026 icu/*: icu/system@aswf/vfx2026 imath/*: imath/3.1.12@aswf/vfx2026 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index dfa06682..64d5af3d 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -7,11 +7,13 @@ include(ci_common4) [tool_requires] [replace_requires] aces_container/*: aces_container/1.0.2@aswftesting/vfx2024 +alembic/*: alembic/1.8.8@aswftesting/vfx2024 boost/*: boost/1.82.0@aswftesting/vfx2024 brotli/*: brotli/system@aswftesting/vfx2024 bzip2/*: bzip2/1.0.8@aswftesting/vfx2024 dbus/*: dbus/system@aswftesting/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2024 +cpython/*: cpython/3.11.13@aswftesting/vfx2024 double-conversion/*: double-conversion/system@aswftesting/vfx2024 eigen/*: eigen/3.4.0@aswftesting/vfx2024 expat/*: expat/2.6.4@aswftesting/vfx2024 @@ -22,6 +24,7 @@ gdbm/*: gdbm/system@aswftesting/vfx2024 giflib/*: giflib/5.1.4@aswftesting/vfx2024 glew/*: glew/2.2.0@aswftesting/vfx2024 glib/*: glib/2.56.4@aswftesting/vfx2024 +hdf5/*: hdf5/1.14.6@aswftesting/vfx2024 highway/*: highway/1.2.0@aswftesting/vfx2024 icu/*: icu/system@aswftesting/vfx2024 imath/*: imath/3.1.12@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index b243e935..36569a0d 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -7,10 +7,12 @@ include(ci_common5) [tool_requires] [replace_requires] aces_container/*: aces_container/1.0.2@aswftesting/vfx2025 +alembic/*: alembic/1.8.8@aswftesting/vfx2025 boost/*: boost/1.85.0@aswftesting/vfx2025 brotli/*: brotli/system@aswftesting/vfx2025 bzip2/*: bzip2/1.0.8@aswftesting/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2025 +cpython/*: cpython/3.11.13@aswftesting/vfx2025 dbus/*: dbus/system@aswftesting/vfx2025 double-conversion/*: double-conversion/system@aswftesting/vfx2025 eigen/*: eigen/3.4.0@aswftesting/vfx2025 @@ -22,6 +24,7 @@ gdbm/*: gdbm/system@aswftesting/vfx2025 giflib/*: giflib/5.1.4@aswftesting/vfx2025 glew/*: glew/2.2.0@aswftesting/vfx2025 glib/*: glib/2.56.4@aswftesting/vfx2025 +hdf5/*: hdf5/1.14.6@aswftesting/vfx2025 highway/*: highway/1.2.0@aswftesting/vfx2025 icu/*: icu/system@aswftesting/vfx2025 imath/*: imath/3.1.12@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 03967562..875bb8cb 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -9,10 +9,12 @@ qt/*:compiler.cppstd=gnu20 [tool_requires] [replace_requires] aces_container/*: aces_container/1.0.2@aswftesting/vfx2026 +alembic/*: alembic/1.8.8@aswftesting/vfx2026 boost/*: boost/1.88.0@aswftesting/vfx2026 brotli/*: brotli/system@aswftesting/vfx2026 bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2026 +cpython/*: cpython/3.13.3@aswftesting/vfx2026 dbus/*: dbus/system@aswftesting/vfx2026 double-conversion/*: double-conversion/system@aswftesting/vfx2026 eigen/*: eigen/3.4.0@aswftesting/vfx2026 @@ -24,6 +26,7 @@ gdbm/*: gdbm/system@aswftesting/vfx2026 giflib/*: giflib/5.2.1@aswftesting/vfx2026 glew/*: glew/2.2.0@aswftesting/vfx2026 glib/*: glib/2.68.4@aswftesting/vfx2026 +hdf5/*: hdf5/1.14.6@aswftesting/vfx2026 highway/*: highway/1.2.0@aswftesting/vfx2026 icu/*: icu/system@aswftesting/vfx2026 imath/*: imath/3.1.12@aswftesting/vfx2026 diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index fedc30a6..b82f694e 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -565,7 +565,7 @@ versions: ASWF_GLEW_VERSION: "2.2.0" ASWF_GLFW_VERSION: "3.4" ASWF_GTEST_VERSION: "1.15.2" - ASWF_HDF5_VERSION: "1.8.23" + ASWF_HDF5_VERSION: "1.14.6" ASWF_HIGHWAY_VERSION: "1.2.0" ASWF_JASPER_VERSION: "4.2.5" ASWF_LCMS_VERSION: "2.17" @@ -594,7 +594,7 @@ versions: ASWF_ZLIB_VERSION: "1.3.1" ASWF_ZSTD_VERSION: "1.5.6" # Packages specified by VFX Platform - ASWF_ALEMBIC_VERSION: "1.8.6" + ASWF_ALEMBIC_VERSION: "1.8.8" ASWF_BOOST_VERSION: "1.82.0" ASWF_CPYTHON_VERSION: "3.11.13" ASWF_NUMPY_VERSION: "1.24.3" @@ -695,7 +695,7 @@ versions: ASWF_GLEW_VERSION: "2.2.0" ASWF_GLFW_VERSION: "3.4" ASWF_GTEST_VERSION: "1.15.2" - ASWF_HDF5_VERSION: "1.8.23" + ASWF_HDF5_VERSION: "1.14.6" ASWF_HIGHWAY_VERSION: "1.2.0" ASWF_JASPER_VERSION: "4.2.5" ASWF_LCMS_VERSION: "2.17" @@ -826,7 +826,7 @@ versions: ASWF_GLEW_VERSION: "2.2.0" ASWF_GLFW_VERSION: "3.4" ASWF_GTEST_VERSION: "1.17.0" - ASWF_HDF5_VERSION: "1.8.23" + ASWF_HDF5_VERSION: "1.14.6" ASWF_HIGHWAY_VERSION: "1.2.0" ASWF_JASPER_VERSION: "4.2.5" ASWF_LCMS_VERSION: "2.17" @@ -1222,6 +1222,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + hdf5: + - "2024.3" + - "2025.2" + - "2026.0" highway: - "2024.3" - "2025.2" @@ -1729,6 +1733,7 @@ groups: - vorbis vfx1-1: - aces_container + - hdf5 - highway - imath - jasper @@ -1818,6 +1823,7 @@ conan_only: - glfw - glib - gtest + - hdf5 - highway - icu - imath From 0f11de76c29e82e8c73cdfdb37664d47d878f3fc Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Sat, 26 Jul 2025 16:36:15 -0700 Subject: [PATCH 10/14] lib64 is no more Maintaining diffs and patches for Conan recipes to try to land DSOs in "lib64" was proving too burdensome, go back to default "lib" New libultrahdr recipe from Conan Center Index replaces our own. Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 9 +- CONTRIBUTING.md | 28 ++--- ci-common/README.md | 12 +- ci-materialx/Dockerfile | 10 +- ci-materialx/README.md | 10 +- ci-materialx/image.yaml | 2 +- ci-ocio/README.md | 4 +- ci-oiio/Dockerfile | 10 +- ci-oiio/README.md | 10 +- ci-oiio/image.yaml | 2 +- ci-openvdb/Dockerfile | 10 +- ci-openvdb/README.md | 20 ++-- ci-openvdb/image.yaml | 2 +- ci-osl/Dockerfile | 10 +- ci-osl/README.md | 20 ++-- ci-osl/image.yaml | 2 +- ci-usd/Dockerfile | 10 +- ci-usd/README.md | 10 +- ci-usd/image.yaml | 2 +- ci-vfxall/README.md | 8 +- .../conan/recipes/aces_container/conanfile.py | 6 +- packages/conan/recipes/alembic/conanfile.py | 4 +- packages/conan/recipes/boost/conanfile.py | 19 ++- packages/conan/recipes/bzip2/conanfile.py | 5 +- packages/conan/recipes/c-blosc/conanfile.py | 5 +- .../conan/recipes/ceres-solver/conanfile.py | 6 +- packages/conan/recipes/clang/conanfile.py | 21 ++-- packages/conan/recipes/cmake/conanfile.py | 2 - packages/conan/recipes/cppunit/conanfile.py | 5 +- packages/conan/recipes/cpython/conanfile.py | 23 ++-- packages/conan/recipes/expat/conanfile.py | 6 +- packages/conan/recipes/fmt/conanfile.py | 9 +- packages/conan/recipes/freetype/conanfile.py | 13 +-- packages/conan/recipes/glew/conanfile.py | 17 +-- packages/conan/recipes/glfw/conanfile.py | 12 +- packages/conan/recipes/gtest/conanfile.py | 8 +- packages/conan/recipes/highway/conanfile.py | 7 +- packages/conan/recipes/imath/conanfile.py | 9 +- packages/conan/recipes/jasper/conanfile.py | 4 +- packages/conan/recipes/lcms/conanfile.py | 5 +- .../conan/recipes/libbacktrace/conanfile.py | 5 +- .../conan/recipes/libdeflate/conanfile.py | 7 +- packages/conan/recipes/libiconv/conanfile.py | 5 +- .../conan/recipes/libjpeg-turbo/conanfile.py | 7 +- packages/conan/recipes/libjxl/conanfile.py | 9 +- packages/conan/recipes/libraw/conanfile.py | 3 - packages/conan/recipes/libuhdr/conanfile.py | 72 ------------ .../{libuhdr => libultrahdr}/conandata.yml | 8 +- .../conan/recipes/libultrahdr/conanfile.py | 109 ++++++++++++++++++ .../patches/1.4.0_cmake-portability.patch | 44 +++++++ .../libultrahdr/test_package/CMakeLists.txt | 13 +++ .../libultrahdr/test_package/conanfile.py | 32 +++++ .../libultrahdr/test_package/test_package.cpp | 20 ++++ packages/conan/recipes/libwebp/conanfile.py | 8 +- packages/conan/recipes/libxcrypt/conanfile.py | 6 +- packages/conan/recipes/log4cplus/conanfile.py | 6 +- packages/conan/recipes/lz4/conanfile.py | 7 +- packages/conan/recipes/materialx/conanfile.py | 22 ++-- packages/conan/recipes/md4c/conanfile.py | 7 +- .../conan/recipes/minizip-ng/conanfile.py | 7 +- packages/conan/recipes/ocio/conanfile.py | 14 +-- packages/conan/recipes/oiio/conandata.yml | 7 +- packages/conan/recipes/oiio/conanfile.py | 32 ++--- .../oiio/patches/3.0.8.1-raw-jp2k-cmake.patch | 48 ++++++++ .../patches/3.0.8.1-utils-includes-libs.patch | 57 +++++++++ .../conan/recipes/onetbb/2020.x/conanfile.py | 11 +- .../conan/recipes/onetbb/all/conanfile.py | 15 +-- packages/conan/recipes/openexr/conandata.yml | 3 + packages/conan/recipes/openexr/conanfile.py | 15 +-- packages/conan/recipes/openjpeg/conanfile.py | 6 +- .../conan/recipes/opensubdiv/conandata.yml | 4 - .../conan/recipes/opensubdiv/conanfile.py | 10 +- packages/conan/recipes/openvdb/conanfile.py | 9 +- packages/conan/recipes/partio/conanfile.py | 7 +- packages/conan/recipes/ptex/conanfile.py | 5 +- packages/conan/recipes/pugixml/conanfile.py | 7 +- packages/conan/recipes/pybind11/conanfile.py | 32 +++-- packages/conan/recipes/pyside/conandata.yml | 24 +--- packages/conan/recipes/pyside/conanfile.py | 34 +++--- ...-6.8.3.diff => libpython_conan-6.8.3.diff} | 9 -- ...hon_in_lib64.diff => libpython_conan.diff} | 9 -- packages/conan/recipes/pystring/conanfile.py | 2 - packages/conan/recipes/qt/conanfile.py | 64 ++++------ packages/conan/recipes/rawtoaces/conanfile.py | 6 +- packages/conan/recipes/snappy/conanfile.py | 5 +- packages/conan/recipes/tk/conanfile.py | 3 +- .../conan/recipes/tsl-robin-map/conanfile.py | 2 - packages/conan/recipes/yaml-cpp/conanfile.py | 7 +- packages/conan/recipes/zlib/conanfile.py | 4 +- packages/conan/recipes/zstd/conanfile.py | 11 +- packages/conan/settings/profiles_aswf/vfx2024 | 3 +- packages/conan/settings/profiles_aswf/vfx2025 | 5 +- packages/conan/settings/profiles_aswf/vfx2026 | 5 +- .../settings/profiles_aswftesting/vfx2024 | 3 +- .../settings/profiles_aswftesting/vfx2025 | 5 +- .../settings/profiles_aswftesting/vfx2026 | 5 +- packages/vfx2/Dockerfile | 8 +- python/aswfdocker/data/versions.yaml | 22 ++-- 98 files changed, 674 insertions(+), 618 deletions(-) delete mode 100644 packages/conan/recipes/libuhdr/conanfile.py rename packages/conan/recipes/{libuhdr => libultrahdr}/conandata.yml (73%) create mode 100644 packages/conan/recipes/libultrahdr/conanfile.py create mode 100644 packages/conan/recipes/libultrahdr/patches/1.4.0_cmake-portability.patch create mode 100644 packages/conan/recipes/libultrahdr/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/libultrahdr/test_package/conanfile.py create mode 100644 packages/conan/recipes/libultrahdr/test_package/test_package.cpp create mode 100644 packages/conan/recipes/oiio/patches/3.0.8.1-raw-jp2k-cmake.patch create mode 100644 packages/conan/recipes/oiio/patches/3.0.8.1-utils-includes-libs.patch rename packages/conan/recipes/pyside/patches/{libpython_in_lib64-6.8.3.diff => libpython_conan-6.8.3.diff} (57%) rename packages/conan/recipes/pyside/patches/{libpython_in_lib64.diff => libpython_conan.diff} (57%) diff --git a/CHANGELOG.md b/CHANGELOG.md index bc356f16..5fb199fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,7 @@ All notable changes to this project will be documented in this file. - 2024.3 release - using Conan 2 recipes - updated versions - - Conan 2.16.1 (was 1.x) + - Conan 2.18.1 (was 1.x) - CUDA 12.6.3 (was 12.6.1) - ccache 4.9.1 (was 4.8.3) - CMake 3.31.7 (was 3.27.9) @@ -31,7 +31,7 @@ All notable changes to this project will be documented in this file. - PySide 6.5.6 (was 6.5.4) - 2025.2 - updated versions - - Conan 2.16.1 (was 2.14.0) + - Conan 2.18.1 (was 2.14.0) - Ninja 1.13.1 (was 1.12.1) - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) - LLVM 19.1.7 (was 19.1.1) @@ -42,7 +42,7 @@ All notable changes to this project will be documented in this file. - python 3.11.13 (was 3.11.11) - Qt 6.5.6 (was 6.5.4) - OIIO 3.0.8.1 (was 3.0.6.1) - - OpenEXR 3.3.4 (was 3.3.3) + - OpenEXR 3.3.5 (was 3.3.3) - OpenFX 1.5s - OSL 1.14.6.0 (was 1.14.5.1) - PySide 6.5.6 (was 6.5.4) @@ -55,10 +55,11 @@ All notable changes to this project will be documented in this file. - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen , aces_container - Alembic now [built with hdf5 dependency](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/254) - OpenVDB now [built as a Conan package](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/231) -- OpenImageIO builds with plibraw support](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/264), [Python bindings](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/272) +- OpenImageIO builds with libraw support](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/264), [Python bindings](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/272) and OpenJPEG/JPEG2000 support - system wrapper Conan packages - improved wrapper packages no longer declare include directories and libraries they don't include - query container OS for installed system package version instead of hard coding (pkgconfig / rpm) +- libuhdr Conan package renamed to libultrahdr and updated to match new Conan Center Index package - aswfdocker utility gets "conandiff" option to show upstream changes to vendored Conan Center Index recipes to help with keeping recipes up to date - merge upstream recipe changes, in particular changes for CMake 4 compatibility diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7178d322..779d884c 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -306,14 +306,6 @@ you are basing hyour local copy on. # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/opencolorio/all/conanfile.py ``` -- adding a line to the `layout()` method to adhere to the Enterprise Linux convention of storing 64 bit libraries in the `lib64` directory rather than Conan's default `lib`: -``` - def layout(self): - cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] -``` - - adding a `self.name` level to the `copy()` in the `package()` method: when Conan packages are "installed" in the CI build images, they are all flattened together into `/usr/local/` and without this change the license files for all the packages end up in the same directory and can overwrite each other: ``` def package(self): @@ -321,14 +313,13 @@ you are basing hyour local copy on. copy(self, "LICENSE.md", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) ``` -- update the calls to `rmdir()` in the `package()` method to point to `lib64`, and -comment out the call that removes the `cmake` directory: we want to be able to use +- comment out the call that removes the `cmake` directory: we want to be able to use these Conan packages outside the context of Conan, and thus want to retain the generated `.cmake` files: ``` - # ASWF: keep cmake files, delete pkgconfig files in lib64 - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # ASWF: keep cmake files, delete pkgconfig files + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) ``` To help minimize changes to the standard Conan recipes, Conan `profiles` are used to @@ -454,7 +445,7 @@ where the `b` directory contains the output of the build and the `p` directory w ``` $ ls /var/lib/docker/overlay2/ltu9ddgwws6cblhemncn9uzaj/diff/b/qted742db53b77e/p -bin conaninfo.txt conanmanifest.txt doc include lib64 libexec licenses metatypes mkspecs modules phrasebooks plugins qml resources translations +bin conaninfo.txt conanmanifest.txt doc include lib libexec licenses metatypes mkspecs modules phrasebooks plugins qml resources translations ``` Be careful when trying to modify this cache directory directly, as it is managed by @@ -517,6 +508,15 @@ aswfdocker --verbose build -t PACKAGE --group vfx --version 2019 --target usd -- aswfdocker --verbose build -t IMAGE --group vfx --version 2019 --target vfxall --push YES ``` +If you are building on system with multiple cores, you may want to set the environment variable: + +``` +DOCKER_BUILDKIT=1 +``` + +before running `aswfdocker build`, as that will allow Docker BuildKit to run multiple builds in parallel. This is mostly useful when building smaller larger groups of smaller packages: when building individual large packages like Qt or Clang/LLVM, +CMake will run parallel compiles. `DOCKER_BUILDKIT=1` is set when building on GitHub Actions. + ### Migrate `aswfdocker migrate` can migrate images between Docker organizations, should only be used on package images diff --git a/ci-common/README.md b/ci-common/README.md index 67f9a94b..e94dcfc1 100644 --- a/ci-common/README.md +++ b/ci-common/README.md @@ -172,7 +172,7 @@ Contains: * ccache-4.9.1 * dts-11 * sonar-7.1.0.4889 -* conan-2.16.1 +* conan-2.18.1 * yq-4.45.2 ## [aswf/ci-common:4-clang17.3](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=4-clang17.3) @@ -186,7 +186,7 @@ Contains: * ccache-4.9.1 * dts-11 * sonar-7.1.0.4889 -* conan-2.16.1 +* conan-2.18.1 * yq-4.45.2 ## [aswf/ci-common:5-clang18.2](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=5-clang18.2) @@ -200,7 +200,7 @@ Contains: * ccache-4.9.1 * dts-11 * sonar-7.1.0.4889 -* conan-2.16.1 +* conan-2.18.1 * yq-4.45.2 ## [aswf/ci-common:5-clang19.2](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=5-clang19.2) @@ -214,7 +214,7 @@ Contains: * ccache-4.9.1 * dts-11 * sonar-7.1.0.4889 -* conan-2.16.1 +* conan-2.18.1 * yq-4.45.2 ## [aswf/ci-common:6-clang19.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=6-clang19.0) @@ -228,7 +228,7 @@ Contains: * ccache-4.11.3 * dts-14 * sonar-7.1.0.4889 -* conan-2.16.1 +* conan-2.18.1 * yq-4.45.4 ## [aswf/ci-common:6-clang20.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=6-clang20.0) @@ -242,6 +242,6 @@ Contains: * ccache-4.11.3 * dts-14 * sonar-7.1.0.4889 -* conan-2.16.1 +* conan-2.18.1 * yq-4.45.4 diff --git a/ci-materialx/Dockerfile b/ci-materialx/Dockerfile index 393b2816..95345d16 100644 --- a/ci-materialx/Dockerfile +++ b/ci-materialx/Dockerfile @@ -51,7 +51,7 @@ ARG ASWF_QT_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION @@ -113,7 +113,7 @@ ARG ASWF_QT_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION @@ -173,7 +173,7 @@ LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" +LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" @@ -229,7 +229,7 @@ ENV ASWF_QT_VERSION=$ASWF_QT_VERSION ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION +ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION @@ -290,7 +290,7 @@ qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-materialx/README.md b/ci-materialx/README.md index 5e7ad922..2f5e28a5 100644 --- a/ci-materialx/README.md +++ b/ci-materialx/README.md @@ -94,7 +94,7 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 @@ -137,10 +137,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * numpy-1.26.4 @@ -180,10 +180,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * numpy-1.26.4 diff --git a/ci-materialx/image.yaml b/ci-materialx/image.yaml index 6c74acc2..155a5f66 100644 --- a/ci-materialx/image.yaml +++ b/ci-materialx/image.yaml @@ -40,7 +40,7 @@ packages: - highway # vfx1-1 packages - imath - lcms - - libuhdr + - libultrahdr - ptex - libjxl # vfx1-2 packages - openexr diff --git a/ci-ocio/README.md b/ci-ocio/README.md index a3f19033..ebb3262a 100644 --- a/ci-ocio/README.md +++ b/ci-ocio/README.md @@ -167,7 +167,7 @@ Contains: * pybind11-2.13.6 * imath-3.1.12 * lcms-2.17 -* openexr-3.3.4 +* openexr-3.3.5 * numpy-1.26.4 * vfxplatform-2025 @@ -201,7 +201,7 @@ Contains: * pybind11-2.13.6 * imath-3.1.12 * lcms-2.17 -* openexr-3.3.4 +* openexr-3.3.5 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 41f693ab..3375b04b 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -53,7 +53,7 @@ ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_JASPER_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_LIBRAW_VERSION @@ -118,7 +118,7 @@ ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_JASPER_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_LIBRAW_VERSION @@ -181,7 +181,7 @@ LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.jasper="$ASWF_JASPER_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" +LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" @@ -240,7 +240,7 @@ ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_JASPER_VERSION=$ASWF_JASPER_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION +ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION @@ -304,7 +304,7 @@ highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} jasper/${ASWF_JASPER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-oiio/README.md b/ci-oiio/README.md index eb3c58c3..c2146424 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -54,7 +54,7 @@ Contains: * imath-3.1.12 * jasper-4.2.5 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * libraw-0.21.4 @@ -100,11 +100,11 @@ Contains: * imath-3.1.12 * jasper-4.2.5 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 * libraw-0.21.4 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * openvdb-12.0.0 * numpy-1.26.4 @@ -146,11 +146,11 @@ Contains: * imath-3.1.12 * jasper-4.2.5 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 * libraw-0.21.4 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * openvdb-12.0.1 * numpy-1.26.4 diff --git a/ci-oiio/image.yaml b/ci-oiio/image.yaml index e8e1815e..56b31e5a 100644 --- a/ci-oiio/image.yaml +++ b/ci-oiio/image.yaml @@ -42,7 +42,7 @@ packages: - imath - jasper - lcms - - libuhdr + - libultrahdr - ptex - libjxl # vfx1-2 packages - libraw diff --git a/ci-openvdb/Dockerfile b/ci-openvdb/Dockerfile index 8dd038c9..c68bd96d 100644 --- a/ci-openvdb/Dockerfile +++ b/ci-openvdb/Dockerfile @@ -52,7 +52,7 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION @@ -116,7 +116,7 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION @@ -178,7 +178,7 @@ LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" +LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" @@ -236,7 +236,7 @@ ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION +ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION @@ -299,7 +299,7 @@ pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-openvdb/README.md b/ci-openvdb/README.md index 14a802c9..09a2b0f3 100644 --- a/ci-openvdb/README.md +++ b/ci-openvdb/README.md @@ -352,7 +352,7 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 @@ -397,7 +397,7 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 @@ -442,10 +442,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * partio-1.19.0 @@ -487,10 +487,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * partio-1.19.0 @@ -532,10 +532,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * partio-1.19.0 @@ -577,10 +577,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * partio-1.19.0 diff --git a/ci-openvdb/image.yaml b/ci-openvdb/image.yaml index 2d29a2e0..1f1cead2 100644 --- a/ci-openvdb/image.yaml +++ b/ci-openvdb/image.yaml @@ -41,7 +41,7 @@ packages: - highway # vfx1-1 packages - imath - lcms - - libuhdr + - libultrahdr - ptex - libjxl # vfx1-2 packages - openexr diff --git a/ci-osl/Dockerfile b/ci-osl/Dockerfile index 5e68db36..4561678f 100644 --- a/ci-osl/Dockerfile +++ b/ci-osl/Dockerfile @@ -52,7 +52,7 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION @@ -117,7 +117,7 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_LIBJXL_VERSION ARG ASWF_OPENEXR_VERSION @@ -180,7 +180,7 @@ LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" +LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" @@ -239,7 +239,7 @@ ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION +ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION @@ -303,7 +303,7 @@ pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-osl/README.md b/ci-osl/README.md index 144d0b57..0b01a0de 100644 --- a/ci-osl/README.md +++ b/ci-osl/README.md @@ -413,7 +413,7 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 @@ -459,7 +459,7 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.2 * libjxl-0.11.1 * openexr-3.2.4 @@ -505,10 +505,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * openvdb-12.0.0 @@ -551,10 +551,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * openvdb-12.0.0 @@ -597,10 +597,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * openvdb-12.0.1 @@ -643,10 +643,10 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * ocio-2.4.2 * oiio-3.0.8.1 * openvdb-12.0.1 diff --git a/ci-osl/image.yaml b/ci-osl/image.yaml index 8d6906bd..d92ca711 100644 --- a/ci-osl/image.yaml +++ b/ci-osl/image.yaml @@ -41,7 +41,7 @@ packages: - highway # vfx1-1 packages - imath - lcms - - libuhdr + - libultrahdr - ptex - libjxl # vfx1-2 packages - openexr diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile index 634105d7..d6d9d837 100644 --- a/ci-usd/Dockerfile +++ b/ci-usd/Dockerfile @@ -51,7 +51,7 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_OPENSUBDIV_VERSION ARG ASWF_PARTIO_VERSION ARG ASWF_PTEX_VERSION @@ -118,7 +118,7 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_HIGHWAY_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_LCMS_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_OPENSUBDIV_VERSION ARG ASWF_PARTIO_VERSION ARG ASWF_PTEX_VERSION @@ -183,7 +183,7 @@ LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libuhdr="$ASWF_LIBUHDR_VERSION" +LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" @@ -244,7 +244,7 @@ ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBUHDR_VERSION=$ASWF_LIBUHDR_VERSION +ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION @@ -310,7 +310,7 @@ pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-usd/README.md b/ci-usd/README.md index 769aba9e..dc4b2cd6 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -184,7 +184,7 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * opensubdiv-3.6.1 * partio-1.19.0 * ptex-2.4.2 @@ -232,12 +232,12 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * opensubdiv-3.6.1 * partio-1.19.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * alembic-1.8.8 * ocio-2.4.2 * oiio-3.0.8.1 @@ -280,12 +280,12 @@ Contains: * highway-1.2.0 * imath-3.1.12 * lcms-2.17 -* libuhdr-1.4.0 +* libultrahdr-1.4.0 * opensubdiv-3.6.1 * partio-1.19.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.4 +* openexr-3.3.5 * alembic-1.8.8 * ocio-2.4.2 * oiio-3.0.8.1 diff --git a/ci-usd/image.yaml b/ci-usd/image.yaml index 3d5c9980..90dd5532 100644 --- a/ci-usd/image.yaml +++ b/ci-usd/image.yaml @@ -40,7 +40,7 @@ packages: - highway # vfx1-1 packages - imath - lcms - - libuhdr + - libultrahdr - opensubdiv - partio - ptex diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index cb9bb17e..a3493195 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -554,7 +554,7 @@ Contains: * qt-6.5.6 * pyside-6.5.6 * imath-3.1.12 -* openexr-3.3.4 +* openexr-3.3.5 * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 @@ -611,7 +611,7 @@ Contains: * qt-6.5.6 * pyside-6.5.6 * imath-3.1.12 -* openexr-3.3.4 +* openexr-3.3.5 * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 @@ -668,7 +668,7 @@ Contains: * qt-6.8.3 * pyside-6.8.3 * imath-3.1.12 -* openexr-3.3.4 +* openexr-3.3.5 * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 @@ -725,7 +725,7 @@ Contains: * qt-6.8.3 * pyside-6.8.3 * imath-3.1.12 -* openexr-3.3.4 +* openexr-3.3.5 * alembic-1.8.8 * oiio-3.0.8.1 * ocio-2.4.2 diff --git a/packages/conan/recipes/aces_container/conanfile.py b/packages/conan/recipes/aces_container/conanfile.py index 8bd0abc2..06ca78ed 100644 --- a/packages/conan/recipes/aces_container/conanfile.py +++ b/packages/conan/recipes/aces_container/conanfile.py @@ -45,16 +45,14 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) def generate(self): tc = CMakeToolchain(self) - tc.variables["INSTALL_LIB_DIR"] = "lib64" - tc.variables["INSTALL_CMAKE_DIR"] = os.path.join("lib64", "cmake", "AcesContainer") + tc.variables["INSTALL_LIB_DIR"] = "lib4" + tc.variables["INSTALL_CMAKE_DIR"] = os.path.join("lib", "cmake", "AcesContainer") tc.generate() deps = CMakeDeps(self) deps.generate() diff --git a/packages/conan/recipes/alembic/conanfile.py b/packages/conan/recipes/alembic/conanfile.py index 8d245005..060ac15e 100644 --- a/packages/conan/recipes/alembic/conanfile.py +++ b/packages/conan/recipes/alembic/conanfile.py @@ -48,8 +48,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): # ASWF: explicit dependencies, specific versions in Conan environment @@ -101,7 +99,7 @@ def package(self): copy(self, "LICENSE.txt", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): self.cpp_info.set_property("cmake_file_name", "Alembic") diff --git a/packages/conan/recipes/boost/conanfile.py b/packages/conan/recipes/boost/conanfile.py index abb8d225..e0375a03 100644 --- a/packages/conan/recipes/boost/conanfile.py +++ b/packages/conan/recipes/boost/conanfile.py @@ -686,8 +686,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] @property def _cxx11_boost_libraries(self): @@ -842,9 +840,9 @@ def requirements(self): if self._with_iconv: self.requires("libiconv/1.17") - # ASWF: make sure to pick up our own Python + # ASWF: make sure to pick up our own Python, Conan profile provides real versions if not self.options.without_python: - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}", transitive_headers=True, transitive_libs=True) + self.requires("cpython/[>=3.0.0]", transitive_headers=True, transitive_libs=True) def package_id(self): del self.info.options.i18n_backend @@ -1204,7 +1202,7 @@ def build(self): # To show the libraries *1 # self.run("%s --show-libraries" % b2_exe) # ASWF: LD_LIBRARY_PATH for Python run by b2 - py_lib = os.path.join(self.dependencies["cpython"].package_folder, "lib64") + py_lib = os.path.join(self.dependencies["cpython"].package_folder, "lib") os.environ["LD_LIBRARY_PATH"] = os.pathsep.join([py_lib,os.environ.get("LD_LIBRARY_PATH")]) self.run(full_command) @@ -1491,7 +1489,7 @@ def add_defines(library): flags.extend([ "install", f"--prefix={self.package_folder}", - f"--libdir={self.package_folder}/lib64", # ASWF Override default lib + f"--libdir={self.package_folder}/lib", f"-j{build_jobs(self)}", "--abbreviate-paths", f"-d{self.options.debug_level}", @@ -1725,8 +1723,7 @@ def package(self): # copy to source with the good lib name # ASWF: license files in separate subdirs copy(self, "LICENSE_1_0.txt", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) - # ASWF: keep cmake files - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files if self.options.header_only: copy(self, "*", src=os.path.join(self.source_folder, "boost"), dst=os.path.join(self.package_folder, "include", "boost")) @@ -1759,13 +1756,13 @@ def _create_emscripten_libs(self): # Boost Build doesn't create the libraries, but it gets close, # leaving .bc files where the libraries would be. staged_libs = os.path.join( - self.package_folder, "lib64" # ASWF DSOs in lib64 + self.package_folder, "lib" ) if not os.path.exists(staged_libs): self.output.warning(f"Lib folder doesn't exist, can't collect libraries: {staged_libs}") return for bc_file in os.listdir(staged_libs): - if bc_file.startswith("lib64") and bc_file.endswith(".bc"): + if bc_file.startswith("lib") and bc_file.endswith(".bc"): a_file = bc_file[:-3] + ".a" cmd = f"emar q {os.path.join(staged_libs, a_file)} {os.path.join(staged_libs, bc_file)}" self.output.info(cmd) @@ -1782,7 +1779,7 @@ def _option_to_conan_requirement(name): def package_info(self): # ASWF: consumers need to set LD_LIBRARY_PATH to find DSOs if self.options.get_safe("shared"): - self.runenv_info.append_path("LD_LIBRARY_PATH", self.package_folder + "/lib64") + self.runenv_info.append_path("LD_LIBRARY_PATH", self.package_folder + "/lib") self.env_info.BOOST_ROOT = self.package_folder diff --git a/packages/conan/recipes/bzip2/conanfile.py b/packages/conan/recipes/bzip2/conanfile.py index 08990899..8c933e2a 100644 --- a/packages/conan/recipes/bzip2/conanfile.py +++ b/packages/conan/recipes/bzip2/conanfile.py @@ -51,8 +51,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -99,8 +97,7 @@ def _create_cmake_module_variables(self, module_file): @property def _module_file_rel_path(self): - # ASWF: cmake modules in lib64 - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-variables.cmake") + return os.path.join("lib", "cmake", f"conan-official-{self.name}-variables.cmake") def package_info(self): self.cpp_info.set_property("cmake_find_mode", "both") diff --git a/packages/conan/recipes/c-blosc/conanfile.py b/packages/conan/recipes/c-blosc/conanfile.py index 5435bb8b..128e2979 100644 --- a/packages/conan/recipes/c-blosc/conanfile.py +++ b/packages/conan/recipes/c-blosc/conanfile.py @@ -60,8 +60,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.with_lz4: @@ -126,8 +124,7 @@ def package(self): copy(self, license_file, src=os.path.join(self.source_folder, "LICENSES"), dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: pkgconfig in lib64 - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): self.cpp_info.set_property("pkg_config_name", "blosc") diff --git a/packages/conan/recipes/ceres-solver/conanfile.py b/packages/conan/recipes/ceres-solver/conanfile.py index f77e2b51..6fb890b0 100644 --- a/packages/conan/recipes/ceres-solver/conanfile.py +++ b/packages/conan/recipes/ceres-solver/conanfile.py @@ -103,8 +103,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("eigen/3.4.0", transitive_headers=True) @@ -187,7 +185,7 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) # ASWF: keep cmake files in lib64 + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rmdir(self, os.path.join(self.package_folder, "CMake")) self._create_cmake_module_variables(os.path.join(self.package_folder, self._module_variables_file_rel_path)) @@ -206,7 +204,7 @@ def _create_cmake_module_variables(self, module_file): @property def _module_variables_file_rel_path(self): - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-variables.cmake") # ASWF: cmake files in lib64 + return os.path.join("lib", "cmake", f"conan-official-{self.name}-variables.cmake") def package_info(self): self.cpp_info.set_property("cmake_file_name", "Ceres") diff --git a/packages/conan/recipes/clang/conanfile.py b/packages/conan/recipes/clang/conanfile.py index c2ff9ece..90e448af 100644 --- a/packages/conan/recipes/clang/conanfile.py +++ b/packages/conan/recipes/clang/conanfile.py @@ -244,8 +244,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.with_ffi: @@ -262,7 +260,8 @@ def requirements(self): self.requires("zstd/1.5.6") def build_requirements(self): - self.tool_requires(f"ninja/{os.environ['ASWF_NINJA_VERSION']}@{self.user}/ci_common{os.environ['CI_COMMON_VERSION']}") + # Conan profile provides real versions + self.tool_requires("ninja/[>=1.0.0]") self.tool_requires("cmake/[>=3.20 <4]") # required by LLVM 19 def validate(self): @@ -409,12 +408,6 @@ def generate(self): tc.variables["CMAKE_BUILD_RPATH"] = ";".join(libdirs_host) tc.cache_variables.update(cmake_variables) - - # Libraries go to lib64 - tc.variables["LLVM_LIBDIR_SUFFIX"] = "64" - tc.generate() - - tc = CMakeDeps(self) tc.generate() deps = CMakeDeps(self) @@ -461,7 +454,7 @@ def _llvm_source_folder_path(self): return PurePosixPath(self.source_folder) / "llvm-main" def _llvm_build_info(self): - cmake_config = Path(self._package_folder_path / "lib64" / "cmake" / "llvm" / "LLVMConfig.cmake").read_text("utf-8") # ASWF: cmake modules in lib64 + cmake_config = Path(self._package_folder_path / "lib" / "cmake" / "llvm" / "LLVMConfig.cmake").read_text("utf-8") components = components_from_dotfile(load(self, self._graphviz_file)) return { @@ -471,7 +464,7 @@ def _llvm_build_info(self): @property def _cmake_module_path(self): - return PurePosixPath("lib64") / "cmake" / "llvm" #ASWF: cmake modules in lib64 + return PurePosixPath("lib") / "cmake" / "llvm" @property def _build_info_file(self): @@ -528,11 +521,11 @@ def package(self): build_info = self._write_build_info() - cmake_folder = self._package_folder_path / "lib64" / "cmake" / "llvm" + cmake_folder = self._package_folder_path / "lib" / "cmake" / "llvm" # rm(self, "LLVMConfig.cmake", cmake_folder) # rm(self, "LLVMExports*", cmake_folder) # rm(self, "Find*", cmake_folder) - rm(self, "*.pdb", self._package_folder_path / "lib64") + rm(self, "*.pdb", self._package_folder_path / "lib") rm(self, "*.pdb", self._package_folder_path / "bin") # need to rename this as Conan will flag it, but it's not actually a Config file and is needed by # downstream packages @@ -541,7 +534,7 @@ def package(self): replace_in_file(self, (cmake_folder / "LLVMConfig.cmake").as_posix(), "LLVM-Config", "LLVM-ConfigInternal") rmdir(self, self._package_folder_path / "share") if self.options.shared: - rm(self, "*.a", self._package_folder_path / "lib64") # ASWF + rm(self, "*.a", self._package_folder_path / "lib") self._create_cmake_build_module( build_info, diff --git a/packages/conan/recipes/cmake/conanfile.py b/packages/conan/recipes/cmake/conanfile.py index d01c35ae..fce25729 100644 --- a/packages/conan/recipes/cmake/conanfile.py +++ b/packages/conan/recipes/cmake/conanfile.py @@ -84,8 +84,6 @@ def layout(self): basic_layout(self, src_folder="src") else: cmake_layout(self, src_folder="src") - # ASWF: We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], diff --git a/packages/conan/recipes/cppunit/conanfile.py b/packages/conan/recipes/cppunit/conanfile.py index 53bfde2d..228e0220 100644 --- a/packages/conan/recipes/cppunit/conanfile.py +++ b/packages/conan/recipes/cppunit/conanfile.py @@ -52,8 +52,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def build_requirements(self): if self._settings_build.os == "Windows": @@ -117,8 +115,7 @@ def package(self): rename(self, os.path.join(self.package_folder, "lib", "cppunit.dll.lib"), os.path.join(self.package_folder, "lib", "cppunit.lib")) rm(self, "*.la", os.path.join(self.package_folder, "lib")) - # ASWF: lib64 on RHEL derived distro - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) fix_apple_shared_install_name(self) diff --git a/packages/conan/recipes/cpython/conanfile.py b/packages/conan/recipes/cpython/conanfile.py index 481a0f1a..62222daf 100644 --- a/packages/conan/recipes/cpython/conanfile.py +++ b/packages/conan/recipes/cpython/conanfile.py @@ -110,8 +110,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def build_requirements(self): if Version(self.version) >= "3.11" and not is_msvc(self) and not self.conf.get("tools.gnu:pkg_config", check_type=str): @@ -224,8 +222,6 @@ def _generate_autotools(self): # ASWF: our openssl wrapper can still get in the way, force /usr # "--with-openssl={}".format(self.dependencies["openssl"].package_folder), "--with-openssl=/usr", - "--with-platlibdir=lib64", # ASWF use lib64 on RHEL distros - "--libdir=${prefix}/lib64", # ASWF use lib64 on RHEL distros ] if Version(self.version) < "3.12": tc.configure_args.append("--with-system-ffi") @@ -330,7 +326,7 @@ def _patch_setup_py(self): replace_in_file(self, setup_py, "openssl_libs = ", f"openssl_libs = {openssl.libs + zlib.libs} #") - + if Version(self.version) < "3.11": replace_in_file(self, setup_py, "if (MACOS and self.detect_tkinter_darwin())", "if (False)") @@ -711,8 +707,7 @@ def _cmake_module_path(self): # Usually CMake modules are packaged with the latter. return os.path.join(self._msvc_install_subprefix, "libs", "cmake") else: - # ASWF: lib64 on RHEL derived distro - return os.path.join("lib64", "cmake") + return os.path.join("lib", "cmake") def _write_cmake_findpython_wrapper_file(self): template = textwrap.dedent(""" @@ -773,8 +768,7 @@ def package(self): # FIXME: See https://github.com/python/cpython/issues/109796, this workaround is mentioned there autotools.make(target="sharedinstall", args=["DESTDIR="]) autotools.install(args=["DESTDIR="]) - # ASWF: lib64 on RHEL derived distro - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) # Rewrite shebangs of python scripts @@ -807,11 +801,10 @@ def package(self): os.symlink(f"python{self._version_suffix}", self._cpython_symlink) # ASWF: bundle numpy - # ASWF: how do you convince pip to write to lib64 instead of lib? py_version = Version(self.version) py_exe = os.path.join(self.package_folder, "bin", f"python{py_version.major}.{py_version.minor}") - py_lib = os.path.join(self.package_folder, "lib64") - py_home = os.path.join(self.package_folder, "lib64", f"python{py_version.major}.{py_version.minor}") + py_lib = os.path.join(self.package_folder, "lib") + py_home = os.path.join(self.package_folder, "lib", f"python{py_version.major}.{py_version.minor}") env = Environment() env.define("PYTHONPATH", py_home) env.prepend("LD_LIBRARY_PATH", py_lib, separator=os.pathsep) @@ -876,9 +869,7 @@ def package_info(self): self.cpp_info.components["python"].includedirs.append( os.path.join("include", f"python{self._version_suffix}{self._abi_suffix}") ) - # ASWF: lib64 on RHEL derived distro - # libdir = "lib" - libdir = "lib64" + libdir = "lib" if self.options.shared: self.cpp_info.components["python"].defines.append("Py_ENABLE_SHARED") else: @@ -957,7 +948,7 @@ def package_info(self): self.runenv_info.append_path("PATH", bindir) self.buildenv_info.append_path("PATH", bindir) # ASWF: find libpython - libdir = os.path.join(self.package_folder, "lib64") + libdir = os.path.join(self.package_folder, "lib") self.output.info(f"Appending LD_LIBRARY_PATH environment variable: {libdir}") self.runenv_info.append_path("LD_LIBRARY_PATH", libdir) self.buildenv_info.append_path("LD_LIBRARY_PATH", libdir) diff --git a/packages/conan/recipes/expat/conanfile.py b/packages/conan/recipes/expat/conanfile.py index 893899ef..eec5f672 100644 --- a/packages/conan/recipes/expat/conanfile.py +++ b/packages/conan/recipes/expat/conanfile.py @@ -57,8 +57,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -92,8 +90,8 @@ def package(self): ) cmake = CMake(self) cmake.install() - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rmdir(self, os.path.join(self.package_folder, "share")) def package_info(self): diff --git a/packages/conan/recipes/fmt/conanfile.py b/packages/conan/recipes/fmt/conanfile.py index e92fadac..537af1b8 100644 --- a/packages/conan/recipes/fmt/conanfile.py +++ b/packages/conan/recipes/fmt/conanfile.py @@ -77,8 +77,6 @@ def layout(self): basic_layout(self, src_folder="src") else: cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): if self.info.options.header_only: @@ -99,7 +97,7 @@ def generate(self): tc.cache_variables["FMT_DOC"] = False tc.cache_variables["FMT_TEST"] = False tc.cache_variables["FMT_INSTALL"] = True - tc.cache_variables["FMT_LIB_DIR"] = "lib64" # ASWF: libraries in lib64 + tc.cache_variables["FMT_LIB_DIR"] = "lib" if self._has_with_os_api_option: tc.cache_variables["FMT_OS"] = bool(self.options.with_os_api) if self._has_with_unicode_option: @@ -124,9 +122,8 @@ def package(self): else: cmake = CMake(self) cmake.install() - # ASWF: libraries in lib64, keep cmake - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "res")) rmdir(self, os.path.join(self.package_folder, "share")) diff --git a/packages/conan/recipes/freetype/conanfile.py b/packages/conan/recipes/freetype/conanfile.py index b497c195..09ea9b39 100644 --- a/packages/conan/recipes/freetype/conanfile.py +++ b/packages/conan/recipes/freetype/conanfile.py @@ -58,8 +58,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.with_png: @@ -189,9 +187,8 @@ def package(self): copy(self, "GPLv2.TXT", doc_folder, license_folder) copy(self, "LICENSE.TXT", doc_folder, license_folder) - # ASWF: libraries in lib64, keep cmake files - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) self._create_cmake_module_variables( os.path.join(self.package_folder, self._module_vars_rel_path) ) @@ -226,13 +223,11 @@ def _create_cmake_module_alias_targets(self, module_file, targets): @property def _module_vars_rel_path(self): - # ASWF: cmake files in lib64 - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-variables.cmake") + return os.path.join("lib", "cmake", f"conan-official-{self.name}-variables.cmake") @property def _module_target_rel_path(self): - # ASWF: cmake files in lib64 - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-targets.cmake") + return os.path.join("lib", "cmake", f"conan-official-{self.name}-targets.cmake") @staticmethod def _chmod_plus_x(filename): diff --git a/packages/conan/recipes/glew/conanfile.py b/packages/conan/recipes/glew/conanfile.py index 097c97f6..9df23182 100644 --- a/packages/conan/recipes/glew/conanfile.py +++ b/packages/conan/recipes/glew/conanfile.py @@ -63,8 +63,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("opengl/system") @@ -95,11 +93,9 @@ def package(self): cmake = CMake(self) cmake.install() - # ASWF: libraries and cmake modules in lib64 - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # ASWF: Keep CMake files to package can be consumed outside Conan - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rm(self, "*.pdb", os.path.join(self.package_folder, "lib64")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rm(self, "*.pdb", os.path.join(self.package_folder, "lib")) def package_info(self): glewlib_target_name = "glew" if self.options.shared else "glew_s" @@ -125,9 +121,4 @@ def package_info(self): if self.options.with_glu == "mesa-glu": self.cpp_info.components["glewlib"].requires.append("mesa-glu::mesa-glu") else: - self.cpp_info.components["glewlib"].requires.append("glu::glu") - - # ASWF: is this stil needed? - self.env_info.CMAKE_PREFIX_PATH.append( - os.path.join(self.package_folder, "lib64", "cmake") - ) + self.cpp_info.components["glewlib"].requires.append("glu::glu") \ No newline at end of file diff --git a/packages/conan/recipes/glfw/conanfile.py b/packages/conan/recipes/glfw/conanfile.py index eaf0c256..28fe5e83 100644 --- a/packages/conan/recipes/glfw/conanfile.py +++ b/packages/conan/recipes/glfw/conanfile.py @@ -74,8 +74,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): # libs=False because glfw does not link to opengl, it @@ -193,9 +191,8 @@ def package(self): copy(self, "LICENSE*", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # We do not want to delete these, package can be consumed outside Conan - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) self._create_cmake_module_alias_targets( os.path.join(self.package_folder, self._module_file_rel_path), {"glfw": "glfw::glfw"} @@ -214,7 +211,7 @@ def _create_cmake_module_alias_targets(self, module_file, targets): @property def _module_file_rel_path(self): - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-targets.cmake") + return os.path.join("lib", "cmake", f"conan-official-{self.name}-targets.cmake") def package_info(self): self.cpp_info.set_property("cmake_file_name", "glfw3") @@ -272,6 +269,3 @@ def package_info(self): self.cpp_info.requires.append("xorg::x11") if self.options.get_safe("with_wayland"): self.cpp_info.requires.extend(["wayland::wayland", "xkbcommon::xkbcommon"]) - - # ASWF: is this still required> - self.env_info.CMAKE_PREFIX_PATH.append(os.path.join(self.package_folder, "lib64", "cmake")) diff --git a/packages/conan/recipes/gtest/conanfile.py b/packages/conan/recipes/gtest/conanfile.py index 1a2de169..403a4312 100644 --- a/packages/conan/recipes/gtest/conanfile.py +++ b/packages/conan/recipes/gtest/conanfile.py @@ -88,8 +88,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): del self.info.options.no_main # Only used to expose more targets @@ -153,10 +151,8 @@ def package(self): copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: lib64 on RHEL derived distro - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # ASWF: keep cmake files for non-Conan clients - # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rm(self, "*.pdb", os.path.join(self.package_folder, "lib")) @property diff --git a/packages/conan/recipes/highway/conanfile.py b/packages/conan/recipes/highway/conanfile.py index f525eb30..da1517e2 100644 --- a/packages/conan/recipes/highway/conanfile.py +++ b/packages/conan/recipes/highway/conanfile.py @@ -66,8 +66,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if self.settings.compiler.get_safe("cppstd"): @@ -108,9 +106,8 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: libraries in lib64, keep cmake files - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files def package_info(self): self.cpp_info.components["hwy"].set_property("pkg_config_name", "libhwy") diff --git a/packages/conan/recipes/imath/conanfile.py b/packages/conan/recipes/imath/conanfile.py index 624ec4b2..11fe55a7 100644 --- a/packages/conan/recipes/imath/conanfile.py +++ b/packages/conan/recipes/imath/conanfile.py @@ -49,8 +49,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if self.settings.compiler.get_safe("cppstd"): @@ -91,10 +89,9 @@ def package(self): copy(self, "LICENSE.md", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: cmake modules in lib64, leave them for non-Conan builds - # rmdir(self, os.path.join(self.package_folder, "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + # rmdir(self, os.path.join(self.package_folder, "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files def package_info(self): # ASWF: Imath will use pybind11 soon, requires boost diff --git a/packages/conan/recipes/jasper/conanfile.py b/packages/conan/recipes/jasper/conanfile.py index 7c72e5b0..0d850247 100644 --- a/packages/conan/recipes/jasper/conanfile.py +++ b/packages/conan/recipes/jasper/conanfile.py @@ -104,7 +104,7 @@ def package(self): cmake = CMake(self) cmake.install() rmdir(self, os.path.join(self.package_folder, "share")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) # ASWF: lib64 + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) if self.settings.os == "Windows": for dll_prefix in ["concrt", "msvcp", "vcruntime"]: rm(self, f"{dll_prefix}*.dll", os.path.join(self.package_folder, "bin")) @@ -126,7 +126,7 @@ def _create_cmake_module_variables(self, module_file): @property def _module_file_rel_path(self): - return os.path.join("lib64", "cmake", f"conan-official-{self.name}-variables.cmake") # ASWF: cmake in lib64 + return os.path.join("lib", "cmake", f"conan-official-{self.name}-variables.cmake") def package_info(self): self.cpp_info.set_property("cmake_find_mode", "both") diff --git a/packages/conan/recipes/lcms/conanfile.py b/packages/conan/recipes/lcms/conanfile.py index aa053d04..101b61fc 100644 --- a/packages/conan/recipes/lcms/conanfile.py +++ b/packages/conan/recipes/lcms/conanfile.py @@ -50,8 +50,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def build_requirements(self): self.tool_requires("meson/1.2.1") @@ -85,8 +83,7 @@ def package(self): meson = Meson(self) meson.install() rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) - # ASWF: package info in lib64 - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) fix_apple_shared_install_name(self) fix_msvc_libname(self) diff --git a/packages/conan/recipes/libbacktrace/conanfile.py b/packages/conan/recipes/libbacktrace/conanfile.py index 90d22f00..e8fc495a 100644 --- a/packages/conan/recipes/libbacktrace/conanfile.py +++ b/packages/conan/recipes/libbacktrace/conanfile.py @@ -54,8 +54,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): check_min_vs(self, "180") @@ -106,8 +104,7 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses",self.name)) autotools = Autotools(self) autotools.install() - # ASWF: libraries and modules in lib64 - lib_folder = os.path.join(self.package_folder, "lib64") + lib_folder = os.path.join(self.package_folder, "lib") rm(self, "*.la", lib_folder) fix_apple_shared_install_name(self) if is_msvc(self): diff --git a/packages/conan/recipes/libdeflate/conanfile.py b/packages/conan/recipes/libdeflate/conanfile.py index b13ede84..15cf9764 100644 --- a/packages/conan/recipes/libdeflate/conanfile.py +++ b/packages/conan/recipes/libdeflate/conanfile.py @@ -42,8 +42,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -66,9 +64,8 @@ def package(self): copy(self, "COPYING", self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: keep cmake files in lib64 - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): self.cpp_info.set_property("cmake_file_name", "libdeflate") diff --git a/packages/conan/recipes/libiconv/conanfile.py b/packages/conan/recipes/libiconv/conanfile.py index b5d81989..2e33db88 100644 --- a/packages/conan/recipes/libiconv/conanfile.py +++ b/packages/conan/recipes/libiconv/conanfile.py @@ -74,8 +74,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def build_requirements(self): if self.settings_build.os == "Windows": @@ -138,8 +136,7 @@ def package(self): copy(self, "COPYING.LIB", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) autotools = Autotools(self) autotools.install() - # ASWF: libraries in lib64 - rm(self, "*.la", os.path.join(self.package_folder, "lib64")) + rm(self, "*.la", os.path.join(self.package_folder, "lib")) rmdir(self, os.path.join(self.package_folder, "share")) fix_apple_shared_install_name(self) if (is_msvc(self) or self._is_clang_cl) and self.options.shared: diff --git a/packages/conan/recipes/libjpeg-turbo/conanfile.py b/packages/conan/recipes/libjpeg-turbo/conanfile.py index 96694cc5..bfbe582c 100644 --- a/packages/conan/recipes/libjpeg-turbo/conanfile.py +++ b/packages/conan/recipes/libjpeg-turbo/conanfile.py @@ -79,8 +79,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if self.options.get_safe("enable12bit") and (self.options.libjpeg7_compatibility or self.options.libjpeg8_compatibility): @@ -156,9 +154,8 @@ def package(self): cmake.install() # remove unneeded directories rmdir(self, os.path.join(self.package_folder, "share")) - # ASWF: keep cmake files for non-Conan clients - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rmdir(self, os.path.join(self.package_folder, "doc")) # remove binaries and pdb files for pattern_to_remove in ["cjpeg*", "djpeg*", "jpegtran*", "tjbench*", "wrjpgcom*", "rdjpgcom*", "*.pdb"]: diff --git a/packages/conan/recipes/libjxl/conanfile.py b/packages/conan/recipes/libjxl/conanfile.py index 7a05ed29..84cb6c35 100644 --- a/packages/conan/recipes/libjxl/conanfile.py +++ b/packages/conan/recipes/libjxl/conanfile.py @@ -62,8 +62,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("brotli/1.1.0", transitive_libs=True) # ASWF @@ -170,11 +168,10 @@ def package(self): cmake.install() # ASWF: separate licenses from multiple package installs copy(self, "LICENSE", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) - # ASWF: libraries in lib64 - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) if self.options.shared: - rm(self, "*.a", os.path.join(self.package_folder, "lib64")) - rm(self, "*-static.lib", os.path.join(self.package_folder, "lib64")) + rm(self, "*.a", os.path.join(self.package_folder, "lib")) + rm(self, "*-static.lib", os.path.join(self.package_folder, "lib")) def _lib_name(self, name): if Version(self.version) < "0.9" and not self.options.shared and self.settings.os == "Windows": diff --git a/packages/conan/recipes/libraw/conanfile.py b/packages/conan/recipes/libraw/conanfile.py index 6cfd77a5..244fb88b 100644 --- a/packages/conan/recipes/libraw/conanfile.py +++ b/packages/conan/recipes/libraw/conanfile.py @@ -57,8 +57,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): # TODO: RawSpeed dependency (-DUSE_RAWSPEED) @@ -145,4 +143,3 @@ def package_info(self): self.cpp_info.components["libraw_"].system_libs.append(stdcpp_library(self)) if self.options.get_safe("build_thread_safe"): self.cpp_info.components["libraw_r"].system_libs.append(stdcpp_library(self)) - diff --git a/packages/conan/recipes/libuhdr/conanfile.py b/packages/conan/recipes/libuhdr/conanfile.py deleted file mode 100644 index a4d111bc..00000000 --- a/packages/conan/recipes/libuhdr/conanfile.py +++ /dev/null @@ -1,72 +0,0 @@ -# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: MIT - -from conan import ConanFile -from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout -from conan.tools.files import copy, get, rmdir -import glob -import os - -required_conan_version = ">=2.0" - -class LibuhdrConan(ConanFile): - name = "libuhdr" - license = "Apache-2.0" - url = "https://github.com/google/libultrahdr" - homepage = "https://github.com/google/libultrahdr" - description = "libuhdr is an image compression library that uses gain map technology to store and distribute HDR images." - topics = ("hdr", "image compression", "gain map", "high dynamic range") - - settings = "os", "compiler", "build_type", "arch" - options = { - "shared": [True, False], - "fPIC": [True, False], - } - default_options = { - "shared": False, - "fPIC": True, - } - - def config_options(self): - if self.settings.os == "Windows": - del self.options.fPIC - - def layout(self): - cmake_layout(self) - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] - - def source(self): - get(self, **self.conan_data["sources"][self.version], strip_root=True) - - def generate(self): - tc = CMakeToolchain(self) - tc.generate() - deps = CMakeDeps(self) - deps.generate() - - def build(self): - cmake = CMake(self) - cmake.configure() - cmake.build() - - def package(self): - cmake = CMake(self) - cmake.install() - # Copy license file if it is not copied by CMake install - copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses", self.name), src=self.source_folder, keep_path=False) - # Keep cmake files for non-Conan clients - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - - # Clean up static lib if building dynamic - if self.options.shared: - for lib in glob.glob(os.path.join(self.package_folder, "lib64", "*.a")): - if not lib.endswith(".dll.a"): - os.remove(lib) - - def package_info(self): - self.cpp_info.libs = ["uhdr"] - self.cpp_info.set_property("cmake_find_mode", "both") - self.cpp_info.set_property("cmake_file_name", "LIBUHDR") - self.cpp_info.set_property("cmake_target_name", "LIBUHDR::LIBUHDR") diff --git a/packages/conan/recipes/libuhdr/conandata.yml b/packages/conan/recipes/libultrahdr/conandata.yml similarity index 73% rename from packages/conan/recipes/libuhdr/conandata.yml rename to packages/conan/recipes/libultrahdr/conandata.yml index 5d7eba1c..f41f702d 100644 --- a/packages/conan/recipes/libuhdr/conandata.yml +++ b/packages/conan/recipes/libultrahdr/conandata.yml @@ -1,6 +1,8 @@ # Copyright (c) Contributors to the conan-center-index Project. All rights reserved. # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/b9c8a5391082c2940205ec80a619ec01b157fb59/recipes/libultrahdr/all/conandata.yml sources: "1.4.0": @@ -21,4 +23,8 @@ sources: "1.0.0": url: "https://github.com/google/libultrahdr/archive/refs/tags/v1.0.0.tar.gz" sha256: "d5558cd419c8d46bdc958064cb97f963d1ea793866414c025906ec15033512ed" - +patches: + "1.4.0": + - patch_file: "patches/1.4.0_cmake-portability.patch" + patch_description: "Ensure project builds correctly with Conan (Ensure correct finding & linkin of dependencies and prevent some forced overriden settings provided by the Conan CMake toolchain)" + patch_type: "conan" diff --git a/packages/conan/recipes/libultrahdr/conanfile.py b/packages/conan/recipes/libultrahdr/conanfile.py new file mode 100644 index 00000000..857e438d --- /dev/null +++ b/packages/conan/recipes/libultrahdr/conanfile.py @@ -0,0 +1,109 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/b9c8a5391082c2940205ec80a619ec01b157fb59/recipes/libultrahdr/all/conanfile.py + +from conan import ConanFile +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeToolchain, CMakeDeps, cmake_layout +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rmdir + +import os + +required_conan_version = ">=2.0.0" + +class LibultrahdrConan(ConanFile): + name = "libultrahdr" + description = "libultrahdr is an image format for storing SDR and HDR versions of an image for android." + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/google/libultrahdr" + package_type = "library" + license = "Apache-2.0" + topics = ("ultrahdr", "graphics", "image") + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "with_jpeg": ["libjpeg", "libjpeg-turbo", "mozjpeg"], + } + default_options = { + "shared": False, + "fPIC": True, + "with_jpeg": "libjpeg-turbo", # ASWF: match OIIO default + } + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + + def requirements(self): + if self.options.with_jpeg == "libjpeg": + self.requires("libjpeg/9e") + elif self.options.with_jpeg == "libjpeg-turbo": + self.requires("libjpeg-turbo/3.0.0") + elif self.options.with_jpeg == "mozjpeg": + self.requires("mozjpeg/4.1.3") + + def build_requirements(self): + # The project requires cmake 3.15 but the use of CMAKE_REQUIRE_FIND_PACKAGE_JPEG below + # requires 3.22. + self.tool_requires("cmake/[>=3.22 <5]") + + def validate(self): + check_min_cppstd(self, 17) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + apply_conandata_patches(self) + + def generate(self): + tc = CMakeToolchain(self) + + # Force-disable fallback to internal dependency builder if no deps found + tc.cache_variables["UHDR_BUILD_DEPS"] = False + tc.cache_variables['UHDR_BUILD_EXAMPLES'] = False + tc.cache_variables["CMAKE_REQUIRE_FIND_PACKAGE_JPEG"] = True + + tc.generate() + deps = CMakeDeps(self) + if self.options.with_jpeg: + deps.set_property(self.options.with_jpeg, "cmake_file_name", "JPEG") + deps.set_property(self.options.with_jpeg, "cmake_target_name", "JPEG::JPEG") + deps.generate() + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + cmake = CMake(self) + cmake.install() + + # ASWF: license file in package subdir + copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + + def package_info(self): + self.cpp_info.libs = ['uhdr'] + + if self.options.with_jpeg == "libjpeg": + self.cpp_info.requires = ["libjpeg::libjpeg"] + elif self.options.with_jpeg == "libjpeg-turbo": + self.cpp_info.requires = ["libjpeg-turbo::jpeg"] + elif self.options.with_jpeg == "mozjpeg": + self.cpp_info.requires = ["mozjpeg::libjpeg"] + + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.system_libs = ["pthread"] diff --git a/packages/conan/recipes/libultrahdr/patches/1.4.0_cmake-portability.patch b/packages/conan/recipes/libultrahdr/patches/1.4.0_cmake-portability.patch new file mode 100644 index 00000000..80fc6935 --- /dev/null +++ b/packages/conan/recipes/libultrahdr/patches/1.4.0_cmake-portability.patch @@ -0,0 +1,44 @@ +diff --git CMakeLists.txt CMakeLists.txt +index 69a249b..9fb78be 100644 +--- CMakeLists.txt ++++ CMakeLists.txt +@@ -19,7 +19,7 @@ cmake_minimum_required(VERSION 3.15) + # CMP0091: MSVC runtime library flags are selected by an abstraction. + # New in CMake 3.15. https://cmake.org/cmake/help/latest/policy/CMP0091.html + if(POLICY CMP0091) +- cmake_policy(SET CMP0091 OLD) ++ cmake_policy(SET CMP0091 NEW) + endif() + + set(UHDR_MAJOR_VERSION 1) +@@ -144,7 +144,7 @@ if(UHDR_BUILD_BENCHMARK AND EMSCRIPTEN) + endif() + + # side effects +-if(CMAKE_CROSSCOMPILING AND UHDR_ENABLE_INSTALL) ++if(FALSE) + set(UHDR_ENABLE_INSTALL FALSE) # disable install and uninstall targets during cross compilation. + message(STATUS "Install and uninstall targets - Disabled") + endif() +@@ -171,9 +171,9 @@ endif() + ########################################################### + # Compile flags + ########################################################### +-set(CMAKE_CXX_STANDARD 17) +-set(CMAKE_CXX_STANDARD_REQUIRED ON) +-set(CMAKE_CXX_EXTENSIONS OFF) ++# set(CMAKE_CXX_STANDARD 17) ++# set(CMAKE_CXX_STANDARD_REQUIRED ON) ++# set(CMAKE_CXX_EXTENSIONS OFF) + if(BUILD_SHARED_LIBS) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(CMAKE_CXX_VISIBILITY_PRESET hidden) +@@ -796,7 +796,7 @@ if(UHDR_BUILD_JAVA) + endif() + + if(UHDR_ENABLE_INSTALL) +- if(NOT(MSVC OR XCODE)) ++ if(TRUE) + include(GNUInstallDirs) + + # pkg-config: libuhdr.pc diff --git a/packages/conan/recipes/libultrahdr/test_package/CMakeLists.txt b/packages/conan/recipes/libultrahdr/test_package/CMakeLists.txt new file mode 100644 index 00000000..2a7c16be --- /dev/null +++ b/packages/conan/recipes/libultrahdr/test_package/CMakeLists.txt @@ -0,0 +1,13 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/b9c8a5391082c2940205ec80a619ec01b157fb59/recipes/libultrahdr/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(libultrahdr REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE libultrahdr::libultrahdr) diff --git a/packages/conan/recipes/libultrahdr/test_package/conanfile.py b/packages/conan/recipes/libultrahdr/test_package/conanfile.py new file mode 100644 index 00000000..c3a519f7 --- /dev/null +++ b/packages/conan/recipes/libultrahdr/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/b9c8a5391082c2940205ec80a619ec01b157fb59/recipes/libultrahdr/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/libultrahdr/test_package/test_package.cpp b/packages/conan/recipes/libultrahdr/test_package/test_package.cpp new file mode 100644 index 00000000..ab44591f --- /dev/null +++ b/packages/conan/recipes/libultrahdr/test_package/test_package.cpp @@ -0,0 +1,20 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/b9c8a5391082c2940205ec80a619ec01b157fb59/recipes/libultrahdr/all/test_package/test_package.cpp +*/ + +#include +#include + +int main() +{ + uhdr_codec_private_t* decoder = uhdr_create_decoder(); + std::cout << "Creating new decoder " << decoder << "\n"; + std::cout << "Releasing decoder " << "\n"; + uhdr_release_decoder(decoder); + + return 0; +} diff --git a/packages/conan/recipes/libwebp/conanfile.py b/packages/conan/recipes/libwebp/conanfile.py index d50a7bd6..97594022 100644 --- a/packages/conan/recipes/libwebp/conanfile.py +++ b/packages/conan/recipes/libwebp/conanfile.py @@ -53,8 +53,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -100,9 +98,9 @@ def package(self): cmake.install() # ASWF: separate licenses from multiple package installs copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # ASWF: libwebp lands CMake files in in share/WebP/cmake, we patch CMakeFiles.txt to land in lib64/cmake/WebP - # rmdir(self, os.path.join(self.package_folder, lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # ASWF: libwebp lands CMake files in in share/WebP/cmake, we patch CMakeFiles.txt to land in lib/cmake/WebP + # rmdir(self, os.path.join(self.package_folder, lib", "cmake")) def package_info(self): self.cpp_info.set_property("cmake_find_mode", "both") # ASWF: want cmake files to consume outside Conan diff --git a/packages/conan/recipes/libxcrypt/conanfile.py b/packages/conan/recipes/libxcrypt/conanfile.py index 1673c6a2..f2e0abfd 100644 --- a/packages/conan/recipes/libxcrypt/conanfile.py +++ b/packages/conan/recipes/libxcrypt/conanfile.py @@ -51,8 +51,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if is_msvc(self): @@ -95,8 +93,8 @@ def package(self): autotools = Autotools(self) # TODO: replace by autotools.install() once https://github.com/conan-io/conan/issues/12153 fixed autotools.install(args=[f"DESTDIR={unix_path(self, self.package_folder)}"]) - rm(self, "*.la", os.path.join(self.package_folder, "lib64")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rm(self, "*.la", os.path.join(self.package_folder, "lib")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) fix_apple_shared_install_name(self) diff --git a/packages/conan/recipes/log4cplus/conanfile.py b/packages/conan/recipes/log4cplus/conanfile.py index 99c666bd..de629d17 100644 --- a/packages/conan/recipes/log4cplus/conanfile.py +++ b/packages/conan/recipes/log4cplus/conanfile.py @@ -63,8 +63,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.with_iconv: @@ -111,9 +109,9 @@ def package(self): copy(self, pattern="LICENSE", dst=os.path.join(self.package_folder, "licenses", self.name), src=self.source_folder) cmake = CMake(self) cmake.install() - #rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + #rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) if Version(self.version) >= "2.1.0": - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) def package_info(self): diff --git a/packages/conan/recipes/lz4/conanfile.py b/packages/conan/recipes/lz4/conanfile.py index 9cb09832..86a7b62d 100644 --- a/packages/conan/recipes/lz4/conanfile.py +++ b/packages/conan/recipes/lz4/conanfile.py @@ -48,8 +48,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], @@ -86,10 +84,9 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: keep cmake files for non-Conan clients # if Version(self.version) >= "1.9.4": - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) @property diff --git a/packages/conan/recipes/materialx/conanfile.py b/packages/conan/recipes/materialx/conanfile.py index 95a19084..b6dd5c97 100644 --- a/packages/conan/recipes/materialx/conanfile.py +++ b/packages/conan/recipes/materialx/conanfile.py @@ -69,15 +69,13 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.with_openimageio: - self.requires(f"oiio/{os.environ['ASWF_OIIO_VERSION']}@{self.user}/{self.channel}") # ASWF: oiio backwards compatibility - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + self.requires("oiio/[>=1.0.0.0]") + self.requires("cpython/[>=3.0.0]") # Comment out to use vendored pybind11 - self.requires(f"pybind11/{os.environ['ASWF_PYBIND11_VERSION']}@{self.user}/{self.channel}") + self.requires("pybind11/[>=2.0.0]") if self.settings.os in ["Linux", "FreeBSD"]: self.requires("xorg/system") self.requires("opengl/system") @@ -103,10 +101,9 @@ def generate(self): tc.variables["MATERIALX_BUILD_TESTS"] = False tc.variables["MATERIALX_TEST_RENDER"] = False tc.variables["MATERIALX_BUILD_PYTHON"] = "ON" - tc.variables["MATERIALX_PYTHON_VERSION"] = os.environ["ASWF_CPYTHON_VERSION"] + tc.variables["MATERIALX_PYTHON_VERSION"] = self.dependencies["cpython"].version tc.variables["MATERIALX_BUILD_SHARED_LIBS"] = self.options.shared tc.variables["MATERIALX_BUILD_GEN_MSL"] = self.options.build_gen_msl and is_apple_os - tc.variables["MATERIALX_INSTALL_LIB_PATH"] = "lib64" # ASWF: otherwise end up in lib tc.variables["MATERIALX_INSTALL_STDLIB_PATH"] = os.path.join("share","MaterialX") # ASWF: otherwise end up in python # TODO: Remove when Conan 1 support is dropped if not self.settings.compiler.cppstd: @@ -140,15 +137,13 @@ def package(self): rmdir(self, os.path.join(self.package_folder, "resources")) rmdir(self, os.path.join(self.package_folder, "libraries")) - # ASWF: keep CMake modules - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rm(self, "README.md", self.package_folder) rm(self, "CHANGELOG.md", self.package_folder) rm(self, "THIRD-PARTY.md", self.package_folder) rm(self, "LICENSE", self.package_folder) - # ASWF: libraries in lib64 - rm(self, "*.la", os.path.join(self.package_folder, "lib64")) - rm(self, "*.pdb", os.path.join(self.package_folder, "lib64")) + rm(self, "*.la", os.path.join(self.package_folder, "lib")) + rm(self, "*.pdb", os.path.join(self.package_folder, "lib")) rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) def package_info(self): @@ -226,6 +221,3 @@ def package_info(self): self.cpp_info.includedirs.extend(["include/compat/osx"]) else: self.cpp_info.includedirs.extend(["include/compat/ios"]) - - # ASWF FIXME still need this? - self.env_info.CMAKE_PREFIX_PATH.append(os.path.join(self.package_folder, "lib64", "cmake")) diff --git a/packages/conan/recipes/md4c/conanfile.py b/packages/conan/recipes/md4c/conanfile.py index 017f3a34..bbae2823 100644 --- a/packages/conan/recipes/md4c/conanfile.py +++ b/packages/conan/recipes/md4c/conanfile.py @@ -61,8 +61,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if self.settings.os != "Windows" and self.options.encoding == "utf-16": @@ -105,9 +103,8 @@ def package(self): copy(self, pattern="LICENSE.md", dst=os.path.join(self.package_folder, "licenses", self.name), src=self.source_folder) cmake = CMake(self) cmake.install() - # ASWF: keep cmake modules in lib64 - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) def package_info(self): diff --git a/packages/conan/recipes/minizip-ng/conanfile.py b/packages/conan/recipes/minizip-ng/conanfile.py index 3a5941fb..ea90b670 100644 --- a/packages/conan/recipes/minizip-ng/conanfile.py +++ b/packages/conan/recipes/minizip-ng/conanfile.py @@ -82,8 +82,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.get_safe("with_zlib"): @@ -162,9 +160,8 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: cmake files in lib64, keep for non-Conan use - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): self.cpp_info.set_property("cmake_file_name", "minizip-ng") diff --git a/packages/conan/recipes/ocio/conanfile.py b/packages/conan/recipes/ocio/conanfile.py index db63ba26..7b97f671 100644 --- a/packages/conan/recipes/ocio/conanfile.py +++ b/packages/conan/recipes/ocio/conanfile.py @@ -51,8 +51,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("expat/[>=2.6.2 <3]") @@ -174,16 +172,14 @@ def package(self): cm.install() if not self.options.shared: - # ASWF: libraries in lib64 copy(self, "*", - src=os.path.join(self.package_folder, "lib64", "static"), - dst=os.path.join(self.package_folder, "lib64")) - rmdir(self, os.path.join(self.package_folder, "lib64", "static")) + src=os.path.join(self.package_folder, "lib", "static"), + dst=os.path.join(self.package_folder, "lib")) + rmdir(self, os.path.join(self.package_folder, "lib", "static")) rmdir(self, os.path.join(self.package_folder, "cmake")) - # ASWF: cmake files in lib64, keep for outside conan use - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rmdir(self, os.path.join(self.package_folder, "share")) # nop for 2.x rm(self, "OpenColorIOConfig*.cmake", self.package_folder) diff --git a/packages/conan/recipes/oiio/conandata.yml b/packages/conan/recipes/oiio/conandata.yml index 2216ef8d..b59a64d2 100644 --- a/packages/conan/recipes/oiio/conandata.yml +++ b/packages/conan/recipes/oiio/conandata.yml @@ -110,6 +110,9 @@ patches: - patch_file: "patches/3.0.6.1-cmake-fmt.patch" patch_description: "Deal with generator expression from fmt Conan package" patch_type: "conan" - - patch_file: "patches/3.0.6.1-imath-includes.txt" - patch_description: "Missing includes when Imath from Conan package" + - patch_file: "patches/3.0.8.1-utils-includes-libs.patch" + patch_description: "Missing includes and libs for binaries" + patch_type: "conan" + - patch_file: "patches/3.0.8.1-raw-jp2k-cmake.patch" + patch_description: "Find local builds of LibRaw, OpenJPEG" patch_type: "conan" diff --git a/packages/conan/recipes/oiio/conanfile.py b/packages/conan/recipes/oiio/conanfile.py index df763084..0184aadf 100644 --- a/packages/conan/recipes/oiio/conanfile.py +++ b/packages/conan/recipes/oiio/conanfile.py @@ -50,8 +50,9 @@ class OpenImageIOConan(ConanFile): "with_ptex": [True, False], "with_libwebp": [True, False], "with_libjxl": [True, False], - "with_libuhdr": [True, False], + "with_libultrahdr": [True, False], "with_iv": [True, False], + "with_python": [True, False], } default_options = { "shared": False, @@ -59,7 +60,7 @@ class OpenImageIOConan(ConanFile): "with_libjpeg": "libjpeg-turbo", # ASWF: EL distros default to -turbo "with_libpng": True, "with_freetype": True, - "with_hdf5": False, # ASWF: disable until we resolve dependencies + "with_hdf5": True, "with_opencolorio": True, "with_opencv": False, "with_tbb": True, # ASWF: exercise dependency @@ -73,8 +74,9 @@ class OpenImageIOConan(ConanFile): "with_ptex": True, "with_libwebp": True, "with_libjxl": True, - "with_libuhdr": True, + "with_libultrahdr": True, "with_iv": False, # ASWF: enable once we figure out why configure doesn't find Qt or OpenGL + "with_python": True, # ASWF: build Python bindings } def export_sources(self): @@ -106,6 +108,7 @@ def requirements(self): self.requires("fmt/10.2.1", transitive_headers=True) else: self.requires("fmt/9.1.0", transitive_headers=True) + self.requires("pybind11/[>=2.0.0]") # ASWF: OIIO now uses pybind11 # Optional libraries if self.options.with_libpng: @@ -141,13 +144,15 @@ def requirements(self): self.requires("libwebp/1.3.2") if self.options.with_libjxl: self.requires("libjxl/0.11.1") - if self.options.with_libuhdr: - self.requires("libuhdr/1.4.0") + if self.options.with_libultrahdr: + self.requires("libultrahdr/1.4.0") # TODO: R3DSDK dependency # TODO: Nuke dependency if self.options.with_iv: self.requires("opengl/system") self.requires("qt/6.8.3") + if self.options.with_python: # ASWF: build Python bindings + self.requires("cpython/[>=3.0.0") def validate(self): if self.settings.compiler.cppstd: @@ -159,8 +164,6 @@ def validate(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -231,9 +234,9 @@ def package(self): if self.settings.os == "Windows": for vc_file in ("concrt", "msvcp", "vcruntime"): rm(self, f"{vc_file}*.dll", os.path.join(self.package_folder, "bin")) - # ASWF: cmake files in lib64, keep for outside conan use - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # ASWF: keep cmake for outside conan use + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) @staticmethod def _conan_comp(name): @@ -288,6 +291,7 @@ def package_info(self): "fmt::fmt", "imath::imath", "openexr::openexr", + "pybind11::pybind11", ] if self.options.with_libjpeg == "libjpeg": @@ -324,10 +328,12 @@ def package_info(self): self.cpp_info.components["OpenImageIO"].requires.append("ptex::ptex") if self.options.with_libwebp: self.cpp_info.components["OpenImageIO"].requires.append("libwebp::libwebp") - if self.options.with_libjxl: + if self.options.with_libjxl: # ASWF: enable JPEG XL self.cpp_info.components["OpenImageIO"].requires.append("libjxl::libjxl") - if self.options.with_libuhdr: - self.cpp_info.components["OpenImageIO"].requires.append("libuhdr::libuhdr") + if self.options.with_libultrahdr: # ASWF: enable libultrahdr + self.cpp_info.components["OpenImageIO"].requires.append("libultrahdr::libultrahdr") + if self.options.with_python: # ASWF: build Python bindings + self.cpp_info.components["OpenImageIO"].requires.append("cpython::cpython") if self.settings.os in ["Linux", "FreeBSD"]: self.cpp_info.components["OpenImageIO"].system_libs.extend(["dl", "m", "pthread"]) diff --git a/packages/conan/recipes/oiio/patches/3.0.8.1-raw-jp2k-cmake.patch b/packages/conan/recipes/oiio/patches/3.0.8.1-raw-jp2k-cmake.patch new file mode 100644 index 00000000..a792d55d --- /dev/null +++ b/packages/conan/recipes/oiio/patches/3.0.8.1-raw-jp2k-cmake.patch @@ -0,0 +1,48 @@ +diff --git src/raw.imageio/CMakeLists.txt src/raw.imageio/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/raw.imageio/CMakeLists.txt ++++ src/raw.imageio/CMakeLists.txt +@@ -2,10 +2,10 @@ + # SPDX-License-Identifier: Apache-2.0 + # https://github.com/AcademySoftwareFoundation/OpenImageIO + +-if (LIBRAW_FOUND) ++if (LIBRAW_FOUND OR LibRaw_FOUND) + add_oiio_plugin (rawinput.cpp + INCLUDE_DIRS ${LibRaw_INCLUDE_DIR} +- LINK_LIBRARIES ${LibRaw_r_LIBRARIES} ++ LINK_LIBRARIES "libraw::libraw_r" + COMPILE_OPTIONS ${LibRaw_r_DEFINITIONS} + DEFINITIONS "USE_LIBRAW=1") + else () +diff --git src/raw.jpeg2000/CMakeLists.txt src/raw.jpeg2000/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/jpeg2000.imageio/CMakeLists.txt ++++ src/jpeg2000.imageio/CMakeLists.txt +@@ -2,10 +2,10 @@ + # SPDX-License-Identifier: Apache-2.0 + # https://github.com/AcademySoftwareFoundation/OpenImageIO + +-if (OPENJPEG_FOUND) ++if (OPENJPEG_FOUND OR OpenJPEG_FOUND) + add_oiio_plugin (jpeg2000input.cpp jpeg2000output.cpp +- INCLUDE_DIRS ${OPENJPEG_INCLUDES} +- LINK_LIBRARIES ${OPENJPEG_LIBRARIES} ++ INCLUDE_DIRS ${OpenJPEG_INCLUDE_DIR} ++ LINK_LIBRARIES ${OpenJPEG_LIBRARIES} + DEFINITIONS "USE_OPENJPEG") + else() + message (WARNING "Jpeg-2000 plugin will not be built") +diff --git src/cmake/modules/FindLibRaw.cmake src/cmake/FindLibRaw.cmake +index d99dd79ac..bfda2778a 100644 +--- src/cmake/modules/FindLibRaw.cmake ++++ src/cmake/modules/FindLibRaw.cmake +@@ -38,7 +38,7 @@ + ${PC_LIBRAW_LIBRARY_DIRS} + ) + +-find_library(LibRaw_r_LIBRARIES NAMES raw_r ++find_library(LibRaw_r_LIBRARIES NAMES raw_r libraw_r + HINTS + ${LIBRAW_LIBDIR_HINT} + ${PC_LIBRAW_R_LIBDIR} diff --git a/packages/conan/recipes/oiio/patches/3.0.8.1-utils-includes-libs.patch b/packages/conan/recipes/oiio/patches/3.0.8.1-utils-includes-libs.patch new file mode 100644 index 00000000..fd55a50f --- /dev/null +++ b/packages/conan/recipes/oiio/patches/3.0.8.1-utils-includes-libs.patch @@ -0,0 +1,57 @@ +diff --git src/iconvert/CMakeLists.txt src/iconvert/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/iconvert/CMakeLists.txt ++++ src/iconvert/CMakeLists.txt +@@ -2,4 +2,5 @@ + # SPDX-License-Identifier: Apache-2.0 + # https://github.com/AcademySoftwareFoundation/OpenImageIO + +-fancy_add_executable (LINK_LIBRARIES OpenImageIO) +\ No newline at end of file ++fancy_add_executable (INCLUDE_DIRS ${Imath_INCLUDE_DIR} ++ LINK_LIBRARIES OpenImageIO) +diff --git src/idiff/CMakeLists.txt src/idiff/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/idiff/CMakeLists.txt ++++ src/idiff/CMakeLists.txt +@@ -2,4 +2,5 @@ + # SPDX-License-Identifier: Apache-2.0 + # https://github.com/AcademySoftwareFoundation/OpenImageIO + +-fancy_add_executable (LINK_LIBRARIES OpenImageIO) +\ No newline at end of file ++fancy_add_executable (INCLUDE_DIRS ${Imath_INCLUDE_DIR} ++ LINK_LIBRARIES OpenImageIO) +diff --git src/iinfo/CMakeLists.txt src/iinfo/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/iinfo/CMakeLists.txt ++++ src/iinfo/CMakeLists.txt +@@ -2,4 +2,5 @@ + # SPDX-License-Identifier: Apache-2.0 + # https://github.com/AcademySoftwareFoundation/OpenImageIO + +-fancy_add_executable (LINK_LIBRARIES OpenImageIO) ++fancy_add_executable (INCLUDE_DIRS ${Imath_INCLUDE_DIR} ++ LINK_LIBRARIES OpenImageIO) +diff --git src/maketx/CMakeLists.txt src/maketx/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/maketx/CMakeLists.txt ++++ src/maketx/CMakeLists.txt +@@ -2,4 +2,5 @@ + # SPDX-License-Identifier: Apache-2.0 + # https://github.com/AcademySoftwareFoundation/OpenImageIO + +-fancy_add_executable (LINK_LIBRARIES OpenImageIO) ++fancy_add_executable (INCLUDE_DIRS ${Imath_INCLUDE_DIR} ++ LINK_LIBRARIES OpenImageIO) +diff --git src/testtex/CMakeLists.txt src/testtex/CMakeLists.txt +index d99dd79ac..bfda2778a 100644 +--- src/testtex/CMakeLists.txt ++++ src/testtex/CMakeLists.txt +@@ -9,5 +9,5 @@ + set (ENABLE_INSTALL_testtex OFF PARENT_SCOPE) + + fancy_add_executable (NAME testtex +- INCLUDE_DIRS ${ROBINMAP_INCLUDES} ++ INCLUDE_DIRS ${ROBINMAP_INCLUDES} ${Imath_INCLUDE_DIR} + LINK_LIBRARIES OpenImageIO ) diff --git a/packages/conan/recipes/onetbb/2020.x/conanfile.py b/packages/conan/recipes/onetbb/2020.x/conanfile.py index 2f8de95c..2ee3ef38 100644 --- a/packages/conan/recipes/onetbb/2020.x/conanfile.py +++ b/packages/conan/recipes/onetbb/2020.x/conanfile.py @@ -78,8 +78,6 @@ def configure(self): def layout(self): basic_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): del self.info.options.tbbmalloc @@ -243,7 +241,7 @@ def package(self): build_type = "debug" if self.settings.build_type == "Debug" else "release" for extension in ["lib", "a", "dylib"]: copy(self, f"*{build_type}*.{extension}", - dst=os.path.join(self.package_folder, "lib64"), # ASWF: DSOs in lib64 + dst=os.path.join(self.package_folder, "lib"), src=build_folder, keep_path=False) copy(self, f"*{build_type}*.dll", dst=os.path.join(self.package_folder, "bin"), @@ -258,18 +256,17 @@ def package(self): if self.settings.os in ["Linux", "FreeBSD"] and self.options.shared: extension = "so" copy(self, f"*{build_type}*.{extension}.*", - dst=os.path.join(self.package_folder, "lib64"), # ASWF: DSOs in lib64 + dst=os.path.join(self.package_folder, "lib"), src=build_folder, keep_path=False) # Create libtbb.so.2 -> libtbb.so, etc symlinks - with chdir(self, os.path.join(self.package_folder, "lib64")): # ASWF: DSOs in lib64 + with chdir(self, os.path.join(self.package_folder, "lib")): for fname in os.listdir("."): fname_without_version = fname.split(f".{extension}", 1)[0] + f".{extension}" self.run(f'ln -s "{fname}" "{fname_without_version}"') - # ASWF: cmake files for non-Conan clients copy(self, pattern="*.cmake", - dst=os.path.join(self.package_folder, "lib64", "cmake"), + dst=os.path.join(self.package_folder, "lib", "cmake"), src=os.path.join(self.source_folder, "cmake")) def package_info(self): diff --git a/packages/conan/recipes/onetbb/all/conanfile.py b/packages/conan/recipes/onetbb/all/conanfile.py index 43058e29..07a2e32b 100644 --- a/packages/conan/recipes/onetbb/all/conanfile.py +++ b/packages/conan/recipes/onetbb/all/conanfile.py @@ -103,8 +103,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self._tbbbind_build: @@ -146,7 +144,7 @@ def generate(self): "libhwloc.dylib" if self.settings.os == "Macos" else "libhwloc.so") toolchain.variables[f"CMAKE_HWLOC_{self._tbbbind_hwloc_version}_LIBRARY_PATH"] = \ - os.path.join(hwloc_package_folder, "lib64", hwloc_lib_name).replace("\\", "/") # ASWF: DSOs in lib64 + os.path.join(hwloc_package_folder, "lib", hwloc_lib_name).replace("\\", "/") toolchain.variables[f"CMAKE_HWLOC_{self._tbbbind_hwloc_version}_INCLUDE_PATH"] = \ os.path.join(hwloc_package_folder, "include").replace("\\", "/") if self.settings.os == "Windows": @@ -174,9 +172,8 @@ def package(self): cmake.install() # ASWF: separate license files per package copy(self, "LICENSE.txt", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) - # ASWF: cmake in lib64, keep for outside Conan use - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) @@ -195,7 +192,7 @@ def lib_name(name): tbb.set_property("cmake_target_name", "TBB::tbb") if self.options.get_safe("build_apple_frameworks"): - tbb.frameworkdirs.append(os.path.join(self.package_folder, "lib64")) # ASWF: DSOs in lib64 + tbb.frameworkdirs.append(os.path.join(self.package_folder, "lib")) tbb.frameworks.append("tbb") else: tbb.libs = [lib_name("tbb")] @@ -221,7 +218,7 @@ def lib_name(name): tbbmalloc.set_property("cmake_target_name", "TBB::tbbmalloc") if self.options.get_safe("build_apple_frameworks"): - tbbmalloc.frameworkdirs.append(os.path.join(self.package_folder, "lib64")) # ASWF: DSOs in lib64 + tbbmalloc.frameworkdirs.append(os.path.join(self.package_folder, "lib")) tbbmalloc.frameworks.append("tbbmalloc") else: tbbmalloc.libs = [lib_name("tbbmalloc")] @@ -236,7 +233,7 @@ def lib_name(name): tbbproxy.set_property("cmake_target_name", "TBB::tbbmalloc_proxy") if self.options.get_safe("build_apple_frameworks"): - tbbproxy.frameworkdirs.append(os.path.join(self.package_folder, "lib64")) # ASWF: DSOs in lib64 + tbbproxy.frameworkdirs.append(os.path.join(self.package_folder, "lib")) tbbproxy.frameworks.append("tbbmalloc_proxy") else: tbbproxy.libs = [lib_name("tbbmalloc_proxy")] diff --git a/packages/conan/recipes/openexr/conandata.yml b/packages/conan/recipes/openexr/conandata.yml index b848b01d..7baa2f9e 100644 --- a/packages/conan/recipes/openexr/conandata.yml +++ b/packages/conan/recipes/openexr/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/cceee569179c10fa56d1fd9c3582f3371944ba59/recipes/openexr/3.x/conandata.yml sources: + "3.3.5": + url: "https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.3.5/openexr-3.3.5.tar.gz" + sha256: "8f9241f0e9d6b7aec7e9509cf2a9224416b9cd9d41740deab3827b1f2d01c662" "3.3.4": url: "https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.3.4/openexr-3.3.4.tar.gz" sha256: "73a6d83edcc68333afb95e133f6e12012073815a854bc41abc1a01c1db5f124c" diff --git a/packages/conan/recipes/openexr/conanfile.py b/packages/conan/recipes/openexr/conanfile.py index 7e1c01ea..7960034d 100644 --- a/packages/conan/recipes/openexr/conanfile.py +++ b/packages/conan/recipes/openexr/conanfile.py @@ -65,8 +65,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("zlib/[>=1.2.11 <2]") @@ -74,8 +72,8 @@ def requirements(self): self.requires("imath/3.1.9", transitive_headers=True) if self._with_libdeflate: self.requires("libdeflate/1.19") - # ASWF: add explicit dependencies on cpython - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + # ASWF: add explicit dependencies on cpython, Conan profile provides real versions + self.requires("cpython/[>=3.0.0]") def validate(self): if self.settings.compiler.get_safe("cppstd"): @@ -125,9 +123,8 @@ def package(self): cmake = CMake(self) cmake.install() rmdir(self, os.path.join(self.package_folder, "share")) - # ASWF: modules in lib64, keep cmake for non-Conan clients - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files @staticmethod def _conan_comp(name): @@ -214,7 +211,3 @@ def package_info(self): # ASWF: add explicit dependencies to cpython self.cpp_info.requires.append("cpython::python") - # ASWF: FIXME do we still need this? - # pymajorminor = self.deps_user_info["python"].python_interp - # self.env_info.PYTHONPATH.append(os.path.join(self.package_folder, "lib64", pymajorminor, "site-packages")) - # self.env_info.CMAKE_PREFIX_PATH.append(os.path.join(self.package_folder, "lib64", "cmake")) diff --git a/packages/conan/recipes/openjpeg/conanfile.py b/packages/conan/recipes/openjpeg/conanfile.py index 364efcd9..b32fb526 100644 --- a/packages/conan/recipes/openjpeg/conanfile.py +++ b/packages/conan/recipes/openjpeg/conanfile.py @@ -7,6 +7,7 @@ from conan import ConanFile from conan.tools.files import load import re +from packaging.version import Version class SystemOpenjpegConan(ConanFile): name = "openjpeg" @@ -18,8 +19,9 @@ def set_version(self): self.version = match.group(1).strip() def package_info(self): - self.cpp_info.includedirs = [] + v = Version(self.version) + self.cpp_info.includedirs = [f"/usr/include/openjpeg-{v.major}.{v.minor}"] self.cpp_info.system_libs = ["openjp2"] self.cpp_info.set_property("cmake_file_name", "OpenJPEG") - self.cpp_info.set_property("cmake_target_name", "openjp2") + self.cpp_info.set_property("cmake_target_name", "openjpeg::openjpeg") diff --git a/packages/conan/recipes/opensubdiv/conandata.yml b/packages/conan/recipes/opensubdiv/conandata.yml index 519bc463..7defb4ac 100644 --- a/packages/conan/recipes/opensubdiv/conandata.yml +++ b/packages/conan/recipes/opensubdiv/conandata.yml @@ -24,16 +24,12 @@ patches: patch_type: "conan" - patch_file: "patches/3.6.1-0001-cmake-no-versions.diff" patch_description: "Override TBB and Ptex version requirements" - - patch_file: "patches/cmake-ptex-lib64.diff" - patch_description: "Find Ptex DSO in lib64" "3.6.0": - patch_file: "patches/3.6.0-0002-cmake-no-rpath.patch" patch_description: "CMake: do not populate rpath with absolute paths" patch_type: "conan" - patch_file: "patches/cmake-no-versions.diff" patch_description: "Override TBB and Ptex version requirements" - - patch_file: "patches/cmake-ptex-lib64.diff" - patch_description: "Find Ptex DSO in lib64" "3.5.0": - patch_file: "patches/3.4.4-0002-cmake-no-rpath.patch" patch_description: "CMake: do not populate rpath with absolute paths" diff --git a/packages/conan/recipes/opensubdiv/conanfile.py b/packages/conan/recipes/opensubdiv/conanfile.py index 3bbf492e..e020993d 100644 --- a/packages/conan/recipes/opensubdiv/conanfile.py +++ b/packages/conan/recipes/opensubdiv/conanfile.py @@ -84,8 +84,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): if self.options.with_tbb: @@ -149,7 +147,6 @@ def generate(self): tc.variables["NO_TESTS"] = True tc.variables["NO_GLTESTS"] = True tc.variables["NO_MACOS_FRAMEWORK"] = True - tc.variables["CMAKE_LIBDIR_BASE"] = "lib64" # ASWF: DSOs in lib64 tc.generate() tc = CMakeDeps(self) @@ -177,12 +174,11 @@ def package(self): copy(self, "LICENSE.txt", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) if self.options.shared: - # ASWF: libraries in lib64 # ASWF: OpenSubDiv cmake set up for both static and dynamic, downstream consummers unhappy - # if static libs are missing - # rm(self, "*.a", os.path.join(self.package_folder, "lib64")) + # when static libs are missing + # rm(self, "*.a", os.path.join(self.package_folder, "lib")) pass def package_info(self): diff --git a/packages/conan/recipes/openvdb/conanfile.py b/packages/conan/recipes/openvdb/conanfile.py index fdb8a20a..b9d39698 100644 --- a/packages/conan/recipes/openvdb/conanfile.py +++ b/packages/conan/recipes/openvdb/conanfile.py @@ -51,7 +51,7 @@ class OpenVDBConan(ConanFile): default_options = { "shared": False, "fPIC": True, - "build_ax": False, # ASWF: enable AX for OpenVDB + "build_ax": False, # ASWF: need to figure out clang/llvm dependency to enable AX "simd": None, "use_colored_output": False, "use_delayed_loading": False, @@ -129,8 +129,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): # with_exr is deprecated and has no effect @@ -150,6 +148,11 @@ def requirements(self): # log4cplus 2.x is not supported self.requires("log4cplus/1.2.2", transitive_headers=True) + def build_requirements(self): + # ASWF: need clang / llvm to build AX, FIXME need better way to determine llvm version + if self.options.build_ax: + self.tool_requires(f"clang/{os.environ['ASWF_PYSIDE_CLANG_VERSION']}@{self.user}/ci_common{os.environ['CI_COMMON_VERSION']}") + def _check_compiler_version(self): compiler = str(self.settings.compiler) minimum_version = self._compilers_min_version.get(compiler, False) diff --git a/packages/conan/recipes/partio/conanfile.py b/packages/conan/recipes/partio/conanfile.py index 76496de8..73525316 100644 --- a/packages/conan/recipes/partio/conanfile.py +++ b/packages/conan/recipes/partio/conanfile.py @@ -39,11 +39,10 @@ def export_sources(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + # Conan profile provides real versions + self.requires("cpython/[>=3.0.0]") self.requires("zlib/[>=1.2.11 <2]") def source(self): @@ -69,7 +68,7 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): self.cpp_info.set_property("cmake_find_mode", "both") diff --git a/packages/conan/recipes/ptex/conanfile.py b/packages/conan/recipes/ptex/conanfile.py index 68dcd07a..76debc33 100644 --- a/packages/conan/recipes/ptex/conanfile.py +++ b/packages/conan/recipes/ptex/conanfile.py @@ -47,8 +47,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("zlib/[>=1.2.11 <2]") @@ -83,8 +81,7 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: modules in lib64 - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): cmake_target = "Ptex_dynamic" if self.options.shared else "Ptex_static" diff --git a/packages/conan/recipes/pugixml/conanfile.py b/packages/conan/recipes/pugixml/conanfile.py index b996ddfe..20b37d99 100644 --- a/packages/conan/recipes/pugixml/conanfile.py +++ b/packages/conan/recipes/pugixml/conanfile.py @@ -55,8 +55,6 @@ def layout(self): basic_layout(self, src_folder="src") else: cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): if self.info.options.header_only: @@ -101,9 +99,8 @@ def package(self): else: cmake = CMake(self) cmake.install() - # ASWF: cmake files in lib64, keep for non-Conan use - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): self.cpp_info.set_property("cmake_file_name", "pugixml") diff --git a/packages/conan/recipes/pybind11/conanfile.py b/packages/conan/recipes/pybind11/conanfile.py index 7c7f2045..fa37d0f9 100644 --- a/packages/conan/recipes/pybind11/conanfile.py +++ b/packages/conan/recipes/pybind11/conanfile.py @@ -27,18 +27,15 @@ class PyBind11Conan(ConanFile): no_copy_source = True - # ASWF: requirements() and build_requirements() ensure we find our own Python + # ASWF: requirements() and build_requirements() ensure we find our own Python, Conan env provides the real version def requirements(self): - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + self.requires(f"cpython/[>=3.0.0]") def build_requirements(self): - # ASWF: "cpython/" isn't working for us - self.tool_requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") + self.tool_requires(f"cpython/[>=3.0.0]") def layout(self): basic_layout(self, src_folder="src") - # ASWF: We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): self.info.clear() @@ -50,9 +47,8 @@ def generate(self): tc = CMakeToolchain(self) tc.variables["PYBIND11_INSTALL"] = True tc.variables["PYBIND11_TEST"] = False - # ASWF: Cmake modules in lib64 - tc.variables["PYBIND11_CMAKECONFIG_INSTALL_DIR"] = os.path.join("lib64", "cmake", "pybind11") - tc.variables["PYBIND11_PYTHON_VERSION"] = os.environ["ASWF_CPYTHON_VERSION"] + tc.variables["PYBIND11_CMAKECONFIG_INSTALL_DIR"] = os.path.join("lib", "cmake", "pybind11") + tc.variables["PYBIND11_PYTHON_VERSION"] = str(self.dependencies["cpython"]) if Version(self.version) < "2.11.0": tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() @@ -69,28 +65,26 @@ def package(self): cmake.install() # ASWF: don't remove cmake files for standalone cmake use # for filename in ["pybind11Targets.cmake", "pybind11Config.cmake", "pybind11ConfigVersion.cmake"]: - # rm(self, filename, os.path.join(self.package_folder, "lib64", "cmake", "pybind11")) + # rm(self, filename, os.path.join(self.package_folder, "lib", "cmake", "pybind11")) rmdir(self, os.path.join(self.package_folder, "share")) # ASWF: stash unmodified copy of pybind11Common.cmake for builds outside Conan - rename(self, src=os.path.join(self.package_folder, "lib64", "cmake", "pybind11", "pybind11Common.cmake"), - dst=os.path.join(self.package_folder, "lib64", "cmake", "pybind11", "pybind11Common.cmake_NO_CONAN")) + rename(self, src=os.path.join(self.package_folder, "lib", "cmake", "pybind11", "pybind11Common.cmake"), + dst=os.path.join(self.package_folder, "lib", "cmake", "pybind11", "pybind11Common.cmake_NO_CONAN")) copy(self, "pybind11Common.cmake", src=os.path.join(self.source_folder, "tools"), - dst=os.path.join(self.package_folder, "lib64", "cmake", "pybind11"), overwrite_equal = True, keep_path=False) + dst=os.path.join(self.package_folder, "lib", "cmake", "pybind11"), overwrite_equal = True, keep_path=False) checked_target = "lto" if self.version < Version("2.11.0") else "pybind11" - # ASWF: CMake modules in lib64/cmake - replace_in_file(self, os.path.join(self.package_folder, "lib64", "cmake", "pybind11", "pybind11Common.cmake"), + replace_in_file(self, os.path.join(self.package_folder, "lib", "cmake", "pybind11", "pybind11Common.cmake"), f"if(TARGET pybind11::{checked_target})", "if(FALSE)") - replace_in_file(self, os.path.join(self.package_folder, "lib64", "cmake", "pybind11", "pybind11Common.cmake"), + replace_in_file(self, os.path.join(self.package_folder, "lib", "cmake", "pybind11", "pybind11Common.cmake"), "add_library(", "# add_library(") def package_info(self): - # ASWF: CMake modules in lib64/cmake - cmake_base_path = os.path.join("lib64", "cmake", "pybind11") + cmake_base_path = os.path.join("lib", "cmake", "pybind11") self.cpp_info.set_property("cmake_target_name", "pybind11_all_do_not_use") self.cpp_info.components["headers"].includedirs = ["include"] self.cpp_info.components["pybind11_"].set_property("cmake_target_name", "pybind11::pybind11") @@ -109,4 +103,4 @@ def package_info(self): self.cpp_info.components["python2_no_register"].requires = ["pybind11_"] # ASWF FIXME: do we need this? - self.env_info.CMAKE_PREFIX_PATH.append(os.path.join(self.package_folder, "lib64", "cmake")) + self.env_info.CMAKE_PREFIX_PATH.append(os.path.join(self.package_folder, "lib", "cmake")) \ No newline at end of file diff --git a/packages/conan/recipes/pyside/conandata.yml b/packages/conan/recipes/pyside/conandata.yml index f7063d44..c3fc5405 100644 --- a/packages/conan/recipes/pyside/conandata.yml +++ b/packages/conan/recipes/pyside/conandata.yml @@ -34,31 +34,13 @@ patches: "6.5.4": - patch_file: "patches/shiboken_sbkcontainer.diff" base_path: "pyside_src" - - patch_file: "patches/clang_in_lib64.diff" - base_path: "pyside_src" - - patch_file: "patches/pyside_in_lib64.diff" - base_path: "pyside_src" - - patch_file: "patches/shiboken_in_lib64.diff" - base_path: "pyside_src" - - patch_file: "patches/libpython_in_lib64.diff" + - patch_file: "patches/libpython_conan.diff" base_path: "pyside_src" - patch_file: "patches/pyside_pysidesignal.diff" base_path: "pyside_src" "6.5.6": - - patch_file: "patches/clang_in_lib64-6.5.6.diff" - base_path: "pyside_src" - - patch_file: "patches/pyside_in_lib64.diff" - base_path: "pyside_src" - - patch_file: "patches/shiboken_in_lib64.diff" - base_path: "pyside_src" - - patch_file: "patches/libpython_in_lib64.diff" + - patch_file: "patches/libpython_conan.diff" base_path: "pyside_src" "6.8.3": - - patch_file: "patches/clang_in_lib64-6.8.3.diff" - base_path: "pyside_src" - - patch_file: "patches/pyside_in_lib64-6.8.3.diff" - base_path: "pyside_src" - - patch_file: "patches/shiboken_in_lib64-6.8.3.diff" - base_path: "pyside_src" - - patch_file: "patches/libpython_in_lib64-6.8.3.diff" + - patch_file: "patches/libpython_conan-6.8.3.diff" base_path: "pyside_src" diff --git a/packages/conan/recipes/pyside/conanfile.py b/packages/conan/recipes/pyside/conanfile.py index 4aa76a14..bf23c313 100644 --- a/packages/conan/recipes/pyside/conanfile.py +++ b/packages/conan/recipes/pyside/conanfile.py @@ -46,16 +46,16 @@ def _useOpenGLBackend(self): return self.options.GLBackend == "OpenGL" def requirements(self): - self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}") - self.requires(f"qt/{os.environ['ASWF_QT_VERSION']}@{self.user}/{self.channel}") + # Conan profile provides real versions + self.requires("cpython/[>=3.0.0]") + self.requires("qt/[>=5.0.0]") self.requires(f"clang/{os.environ['ASWF_PYSIDE_CLANG_VERSION']}@{self.user}/ci_common{os.environ['CI_COMMON_VERSION']}") - self.requires(f"md4c/{os.environ['ASWF_MD4C_VERSION']}@{self.user}/{self.channel}") - self.requires(f"freetype/{os.environ['ASWF_FREETYPE_VERSION']}@{self.user}/{self.channel}") # Avoid Qt picking up older system freetype libs + self.requires("md4c/[>=0.0.0]") + self.requires("freetype/[>=2.0.0]") + self.requires("libjpeg-turbo/[>=1.0.0]") def build_requirements(self): - self.tool_requires( - f"ninja/{os.environ['ASWF_NINJA_VERSION']}@{self.user}/ci_common{os.environ['CI_COMMON_VERSION']}" - ) + self.tool_requires("ninja/[>=1.0.0]") # Assume already installed # if self.settings.os == "Linux": @@ -179,11 +179,13 @@ def _buildLinux(self, srcDir): env = Environment() env.define("LLVM_INSTALL_DIR", llvmInfo.package_folder) env.define("LD_LIBRARY_PATH", pythonInfo.cpp_info.libdirs[0]) - # Something in Qt depends on md4c and freetype. This should be fixed in Qt package. + # Something in Qt depends on md4c, freetype and libjpeg-turbo. This should be fixed in Qt package. md4cInfo = self.dependencies["md4c"] env.append("LD_LIBRARY_PATH", md4cInfo.cpp_info.libdirs[0],separator=':') freetypeInfo = self.dependencies["freetype"] env.append("LD_LIBRARY_PATH", freetypeInfo.cpp_info.libdirs[0],separator=':') + libjpegTurboInfo = self.dependencies["libjpeg-turbo"] + env.append("LD_LIBRARY_PATH", libjpegTurboInfo.cpp_info.libdirs[0],separator=':') env.define("CMAKE_PREFIX_PATH", f"{qtInfo.package_folder}:{llvmInfo.package_folder}") env.define("CPATH", f"/opt/rh/gcc-toolset-{os.environ['ASWF_DTS_VERSION']}/root/usr/lib/gcc/x86_64-redhat-linux/{os.environ['ASWF_DTS_VERSION']}/include") env_vars = env.vars(self) @@ -199,11 +201,11 @@ def _buildLinux(self, srcDir): # Copy the shared libraries shiboken needs to be able to run into the package for lib in ("Core", "Gui", "Network", "OpenGL", "Widgets", "Xml"): for f in glob.glob( - os.path.join(qtInfo.package_folder, "lib64", f"libQt6{lib}.so*") + os.path.join(qtInfo.package_folder, "lib", f"libQt6{lib}.so*") ): shutil.copy(f, installBinDir, follow_symlinks=False) for f in glob.glob( - os.path.join(llvmInfo.package_folder, "lib64", "libclang.so*") + os.path.join(llvmInfo.package_folder, "lib", "libclang.so*") ): shutil.copy(f, installBinDir, follow_symlinks=False) @@ -319,11 +321,11 @@ def _configure_package_mac(self): self.copy( src=os.path.join(self.dependencies["qt"].cpp_info.lib_paths[0], framework), pattern="*", - dst=f"lib64/{framework}", + dst=f"lib/{framework}", ) self.copy( - src=os.path.join(self.dependencies["clang"].package_folder, "lib64"), + src=os.path.join(self.dependencies["clang"].package_folder, "lib"), pattern="libclang.dylib", dst="bin", ) @@ -336,13 +338,13 @@ def _getFilesByExt(searchDir, ext): files.append(fullFilePath) return files - libDir = os.path.join(self.package_folder, "lib64") + libDir = os.path.join(self.package_folder, "lib") libs = _getFilesByExt(libDir, ".dylib") # self._set_r_paths(libs, '@loader_path/../bin') v = Version(self.dependencies["cpython"].ref.version) sitePkgDir = os.path.join( - self.package_folder, f"lib64/python{v.major}.{v.minor}/site-packages" + self.package_folder, f"lib/python{v.major}.{v.minor}/site-packages" ) libDir = os.path.join(self.package_folder, sitePkgDir, "shiboken") @@ -375,9 +377,9 @@ def package_info(self): v = Version(self.dependencies["cpython"].ref.version) if self.settings.os == "Windows": self.user_info.site_package = os.path.join( - self.package_folder, "lib64/site-packages" + self.package_folder, "lib/site-packages" ) else: self.user_info.site_package = os.path.join( - self.package_folder, f"lib64/python{v.major}.{v.minor}/site-packages" + self.package_folder, f"lib/python{v.major}.{v.minor}/site-packages" ) diff --git a/packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff b/packages/conan/recipes/pyside/patches/libpython_conan-6.8.3.diff similarity index 57% rename from packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff rename to packages/conan/recipes/pyside/patches/libpython_conan-6.8.3.diff index ea2a5d77..fa382358 100644 --- a/packages/conan/recipes/pyside/patches/libpython_in_lib64-6.8.3.diff +++ b/packages/conan/recipes/pyside/patches/libpython_conan-6.8.3.diff @@ -1,14 +1,5 @@ --- a/build_scripts/build_info_collector.py +++ b/build_scripts/build_info_collector.py -@@ -66,7 +66,7 @@ - py_include_dir): - """Helper for finding the Python library on UNIX""" - if py_libdir is None or not Path(py_libdir).exists(): -- py_libdir = Path(py_prefix) / "lib" -+ py_libdir = Path(py_prefix) / "lib64" - if py_include_dir is None or not Path(py_include_dir).exists(): - directory = f"include/python{py_version}" - py_include_dir = Path(py_prefix) / directory @@ -203,6 +203,10 @@ else: py_scripts_dir = py_prefix / "bin" diff --git a/packages/conan/recipes/pyside/patches/libpython_in_lib64.diff b/packages/conan/recipes/pyside/patches/libpython_conan.diff similarity index 57% rename from packages/conan/recipes/pyside/patches/libpython_in_lib64.diff rename to packages/conan/recipes/pyside/patches/libpython_conan.diff index 6c7eb2a3..bc203920 100644 --- a/packages/conan/recipes/pyside/patches/libpython_in_lib64.diff +++ b/packages/conan/recipes/pyside/patches/libpython_conan.diff @@ -1,14 +1,5 @@ --- a/build_scripts/build_info_collector.py +++ b/build_scripts/build_info_collector.py -@@ -65,7 +65,7 @@ - py_include_dir): - """Helper for finding the Python library on UNIX""" - if py_libdir is None or not Path(py_libdir).exists(): -- py_libdir = Path(py_prefix) / "lib" -+ py_libdir = Path(py_prefix) / "lib64" - if py_include_dir is None or not Path(py_include_dir).exists(): - directory = f"include/python{py_version}" - py_include_dir = Path(py_prefix) / directory @@ -202,6 +202,10 @@ else: py_scripts_dir = py_prefix / "bin" diff --git a/packages/conan/recipes/pystring/conanfile.py b/packages/conan/recipes/pystring/conanfile.py index 483df90c..75c8e6c2 100644 --- a/packages/conan/recipes/pystring/conanfile.py +++ b/packages/conan/recipes/pystring/conanfile.py @@ -43,8 +43,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) diff --git a/packages/conan/recipes/qt/conanfile.py b/packages/conan/recipes/qt/conanfile.py index 278f4a83..45188e93 100644 --- a/packages/conan/recipes/qt/conanfile.py +++ b/packages/conan/recipes/qt/conanfile.py @@ -361,9 +361,6 @@ def validate(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.build.libdirs = ["lib64"] - self.cpp.package.libdirs = ["lib64"] def requirements(self): self.requires("zlib/[>=1.2.11 <2]") @@ -394,7 +391,7 @@ def requirements(self): self.requires("harfbuzz/8.3.0") if self.options.get_safe("with_libjpeg", False) and not self.options.multiconfiguration: if self.options.with_libjpeg == "libjpeg-turbo": - self.requires("libjpeg-turbo/[>=3.0 <3.1]") + self.requires("libjpeg-turbo/[>=3.0 <3.1]", transitive_libs=True) # ASWF: clients don't link otherwise else: self.requires("libjpeg/9e") if self.options.get_safe("with_libpng", False) and not self.options.multiconfiguration: @@ -685,9 +682,6 @@ def generate(self): tc.variables["QT_USE_VCPKG"] = False tc.cache_variables["QT_USE_VCPKG"] = False - # ASWF: qt cmake configuration doesn't follow layout(), force DSOs in lib64 - tc.variables["INSTALL_LIBDIR"] = "lib64" - tc.generate() def package_id(self): @@ -855,17 +849,14 @@ def build(self): @property def _cmake_executables_file(self): - # ASWF: cmake modules in lib64 - return os.path.join("lib64", "cmake", "Qt6Core", "conan_qt_executables_variables.cmake") + return os.path.join("lib", "cmake", "Qt6Core", "conan_qt_executables_variables.cmake") @property def _cmake_entry_point_file(self): - # ASWF: cmake modules in lib64 - return os.path.join("lib64", "cmake", "Qt6Core", "conan_qt_entry_point.cmake") + return os.path.join("lib", "cmake", "Qt6Core", "conan_qt_entry_point.cmake") def _cmake_qt6_private_file(self, module): - # ASWF: cmake modules in lib64 - return os.path.join("lib64", "cmake", f"Qt6{module}", f"conan_qt_qt6_{module.lower()}private.cmake") + return os.path.join("lib", "cmake", f"Qt6{module}", f"conan_qt_qt6_{module.lower()}private.cmake") def package(self): if self.settings.os == "Macos": @@ -878,24 +869,21 @@ def package(self): for module in self._get_module_tree: if module != "qtbase" and not self.options.get_safe(module): rmdir(self, os.path.join(self.package_folder, "licenses", module)) - # ASWF: pkgconfig modules in lib64 - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) - # ASWF: We want to be able to easily consume Conan packages using CMake outside of Conan itself + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) # for mask in ["Find*.cmake", "*Config.cmake", "*-config.cmake"]: - # rm(self, mask, self.package_folder, recursive=True, excludes="Qt6HostInfoConfig.cmake") - rm(self, "*.la*", os.path.join(self.package_folder, "lib64"), recursive=True) + # rm(self, mask, self.package_folder, recursive=True, excludes="Qt6HostInfoConfig.cmake") # ASWF: keep cmake files + rm(self, "*.la*", os.path.join(self.package_folder, "lib"), recursive=True) rm(self, "*.pdb*", self.package_folder, recursive=True) rm(self, "ensure_pro_file.cmake", self.package_folder, recursive=True) os.remove(os.path.join(self.package_folder, "libexec" if self.settings.os != "Windows" else "bin", "qt-cmake-private-install.cmake")) - # ASWF: cmake modules in lib64 - for m in os.listdir(os.path.join(self.package_folder, "lib64", "cmake")): - if os.path.isfile(os.path.join(self.package_folder, "lib64", "cmake", m, f"{m}Macros.cmake")): + for m in os.listdir(os.path.join(self.package_folder, "lib", "cmake")): + if os.path.isfile(os.path.join(self.package_folder, "lib", "cmake", m, f"{m}Macros.cmake")): continue - if glob.glob(os.path.join(self.package_folder, "lib64", "cmake", m, "QtPublic*Helpers.cmake")): + if glob.glob(os.path.join(self.package_folder, "lib", "cmake", m, "QtPublic*Helpers.cmake")): continue if m.endswith("Tools"): - if os.path.isfile(os.path.join(self.package_folder, "lib64", "cmake", m, f"{m[:-5]}Macros.cmake")): + if os.path.isfile(os.path.join(self.package_folder, "lib", "cmake", m, f"{m[:-5]}Macros.cmake")): continue # ASWF: don't remove cmake modules @@ -939,7 +927,7 @@ def package(self): for target in targets: exe_path = None for path_ in [f"bin/{target}{extension}", - f"lib64/{target}{extension}", # ASWF: DSOs in lib64 + f"lib/{target}{extension}", f"libexec/{target}{extension}"]: if os.path.isfile(os.path.join(self.package_folder, path_)): exe_path = path_ @@ -993,8 +981,7 @@ def _create_private_module(module, dependencies): if self.options.qtdeclarative: _create_private_module("Qml", ["CorePrivate", "Qml"]) - # ASWF: cmake modules in lib64 - save(self, os.path.join(self.package_folder, "lib64", "cmake", "Qt6Qml", "conan_qt_qt6_policies.cmake"), textwrap.dedent("""\ + save(self, os.path.join(self.package_folder, "lib", "cmake", "Qt6Qml", "conan_qt_qt6_policies.cmake"), textwrap.dedent("""\ set(QT_KNOWN_POLICY_QTP0001 TRUE) """)) if self.options.gui and self.options.qtshadertools: @@ -1573,37 +1560,31 @@ def _create_plugin(pluginname, libname, plugintype, requires): if self.settings.os in ["Windows", "iOS"]: _add_build_module("qtCore", self._cmake_entry_point_file) - # ASWF: cmake modules in lib64 - for m in os.listdir(os.path.join("lib64", "cmake")): + for m in os.listdir(os.path.join("lib", "cmake")): component_name = m.replace("Qt6", "qt") if component_name == "qt": component_name = "qtCore" if component_name in self.cpp_info.components: - # ASWF: cmake modules in lib64 - module = os.path.join("lib64", "cmake", m, f"{m}Macros.cmake") + module = os.path.join("lib", "cmake", m, f"{m}Macros.cmake") if os.path.isfile(module): _add_build_module(component_name, module) - # ASWF: cmake modules in lib64 - module = os.path.join("lib64", "cmake", m, f"{m}ConfigExtras.cmake") + module = os.path.join("lib", "cmake", m, f"{m}ConfigExtras.cmake") if os.path.isfile(module): _add_build_module(component_name, module) - # ASWF: cmake modules in lib64 - for helper_modules in glob.glob(os.path.join(self.package_folder, "lib64", "cmake", m, "QtPublic*Helpers.cmake")): + for helper_modules in glob.glob(os.path.join(self.package_folder, "lib", "cmake", m, "QtPublic*Helpers.cmake")): _add_build_module(component_name, helper_modules) - self.cpp_info.components[component_name].builddirs.append(os.path.join("lib64", "cmake", m)) + self.cpp_info.components[component_name].builddirs.append(os.path.join("lib", "cmake", m)) elif component_name.endswith("Tools") and component_name[:-5] in self.cpp_info.components: - # ASFW: cmake modules in lib64 - module = os.path.join("lib64", "cmake", f"{m}", f"{m[:-5]}Macros.cmake") + module = os.path.join("lib", "cmake", f"{m}", f"{m[:-5]}Macros.cmake") if os.path.isfile(module): _add_build_module(component_name[:-5], module) - self.cpp_info.components[component_name[:-5]].builddirs.append(os.path.join("lib64", "cmake", m)) + self.cpp_info.components[component_name[:-5]].builddirs.append(os.path.join("lib", "cmake", m)) - # ASWF: DSOs in lib64 - objects_dirs = glob.glob(os.path.join(self.package_folder, "lib64", "objects-*/")) + objects_dirs = glob.glob(os.path.join(self.package_folder, "lib", "objects-*/")) for object_dir in objects_dirs: for m in os.listdir(object_dir): component = "qt" + m[:m.find("_")] @@ -1617,8 +1598,7 @@ def _create_plugin(pluginname, libname, plugintype, requires): build_modules_list = [] if self.options.qtdeclarative: - # ASWF: cmake modules in lib64 - build_modules_list.append(os.path.join(self.package_folder, "lib64", "cmake", "Qt6Qml", "conan_qt_qt6_policies.cmake")) + build_modules_list.append(os.path.join(self.package_folder, "lib", "cmake", "Qt6Qml", "conan_qt_qt6_policies.cmake")) def _add_build_modules_for_component(component): for req in self.cpp_info.components[component].requires: diff --git a/packages/conan/recipes/rawtoaces/conanfile.py b/packages/conan/recipes/rawtoaces/conanfile.py index cf9fc24b..8a2b993b 100644 --- a/packages/conan/recipes/rawtoaces/conanfile.py +++ b/packages/conan/recipes/rawtoaces/conanfile.py @@ -45,8 +45,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def requirements(self): # Conan environment overrides @@ -64,8 +62,6 @@ def source(self): def generate(self): tc = CMakeToolchain(self) - tc.variables["INSTALL_LIB_DIR"] = "lib64" - tc.variables["INSTALL_CMAKE_DIR"] = os.path.join("lib64", "cmake", "RAWTOACES") # Dont point rpath to internal Conan directories tc.cache_variables["CMAKE_INSTALL_RPATH_USE_LINK_PATH"] = False tc.cache_variables["CMAKE_INSTALL_RPATH"] = "" @@ -85,7 +81,7 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) def package_info(self): pass diff --git a/packages/conan/recipes/snappy/conanfile.py b/packages/conan/recipes/snappy/conanfile.py index d71b1712..45faced6 100644 --- a/packages/conan/recipes/snappy/conanfile.py +++ b/packages/conan/recipes/snappy/conanfile.py @@ -53,8 +53,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: we want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if self.settings.compiler.get_safe("cppstd"): @@ -95,8 +93,7 @@ def package(self): copy(self, "COPYING", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: keep cmake files for non-Conan clients - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files def package_info(self): self.cpp_info.set_property("cmake_file_name", "Snappy") diff --git a/packages/conan/recipes/tk/conanfile.py b/packages/conan/recipes/tk/conanfile.py index 63bf6de9..370d6a41 100644 --- a/packages/conan/recipes/tk/conanfile.py +++ b/packages/conan/recipes/tk/conanfile.py @@ -15,7 +15,8 @@ class SystemTkConan(ConanFile): settings = "os", "arch", "compiler", "build_type" def requirements(self): - self.requires(f"tcl/{self.version}@{os.environ['ASWF_PKG_ORG']}/{os.environ['ASWF_CONAN_CHANNEL']}", transitive_headers=True, transitive_libs=True) + # Conan profile provides real versions + self.requires("tcl/[>=1.0.0]", transitive_headers=True, transitive_libs=True) def package_info(self): self.cpp_info.includedirs = [] diff --git a/packages/conan/recipes/tsl-robin-map/conanfile.py b/packages/conan/recipes/tsl-robin-map/conanfile.py index 9107c8e4..ef600738 100644 --- a/packages/conan/recipes/tsl-robin-map/conanfile.py +++ b/packages/conan/recipes/tsl-robin-map/conanfile.py @@ -26,8 +26,6 @@ class TslRobinMapConan(ConanFile): def layout(self): basic_layout(self, src_folder="src") - # ASWF: We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def package_id(self): self.info.clear() diff --git a/packages/conan/recipes/yaml-cpp/conanfile.py b/packages/conan/recipes/yaml-cpp/conanfile.py index ba84ca2e..fc1bbdcc 100644 --- a/packages/conan/recipes/yaml-cpp/conanfile.py +++ b/packages/conan/recipes/yaml-cpp/conanfile.py @@ -48,8 +48,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def validate(self): if self.settings.compiler.get_safe("cppstd"): @@ -87,10 +85,9 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # ASWF: cmake files in lib64, keep for non-Conan use - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files rmdir(self, os.path.join(self.package_folder, "CMake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) def package_info(self): diff --git a/packages/conan/recipes/zlib/conanfile.py b/packages/conan/recipes/zlib/conanfile.py index 678e00a9..4c4dda76 100644 --- a/packages/conan/recipes/zlib/conanfile.py +++ b/packages/conan/recipes/zlib/conanfile.py @@ -48,8 +48,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # ASWF: DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], @@ -62,7 +60,7 @@ def generate(self): tc.variables["SKIP_INSTALL_HEADERS"] = False tc.variables["SKIP_INSTALL_FILES"] = True # Correct for misuse of "${CMAKE_INSTALL_PREFIX}/" in CMakeLists.txt - tc.variables["INSTALL_LIB_DIR"] = "lib64" + tc.variables["INSTALL_LIB_DIR"] = "lib" tc.variables["INSTALL_INC_DIR"] = "include" tc.variables["ZLIB_BUILD_EXAMPLES"] = False tc.generate() diff --git a/packages/conan/recipes/zstd/conanfile.py b/packages/conan/recipes/zstd/conanfile.py index f82a81d5..e0374bf9 100644 --- a/packages/conan/recipes/zstd/conanfile.py +++ b/packages/conan/recipes/zstd/conanfile.py @@ -52,8 +52,6 @@ def configure(self): def layout(self): cmake_layout(self, src_folder="src") - # We want DSOs in lib64 - self.cpp.package.libdirs = ["lib64"] def source(self): get(self, **self.conan_data["sources"][self.version], strip_root=True) @@ -84,16 +82,15 @@ def package(self): copy(self, "LICENSE", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) cmake = CMake(self) cmake.install() - # rmdir(self, os.path.join(self.package_folder, "lib64", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib64", "pkgconfig")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) rmdir(self, os.path.join(self.package_folder, "share")) if self.options.shared and self.options.build_programs: # If we build programs we have to build static libs (see logic in generate()), # but if shared is True, we only want shared lib in package folder. - rm(self, "*_static.*", os.path.join(self.package_folder, "lib64")) - # ASWF: also clean up static libs in lib64 - for lib in glob.glob(os.path.join(self.package_folder, "lib64", "*.a")): + rm(self, "*_static.*", os.path.join(self.package_folder, "lib")) + for lib in glob.glob(os.path.join(self.package_folder, "lib", "*.a")): if not lib.endswith(".dll.a"): os.remove(lib) diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 55be6e4d..37377b63 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -46,7 +46,7 @@ libsndfile/*: libsndfile/system@aswf/vfx2024 libsquish/*: libsquish/system@aswf/vfx2024 libsvtav1/*: libsvtav1/system@aswf/vfx2024 libtiff/*: libtiff/4.0.9@aswf/vfx2024 -libuhdr/*: libuhdr/1.4.0@aswf/vfx2024 +libultrahdr/*: libultrahdr/1.4.0@aswf/vfx2024 libvpx/*: libvpx/system@aswf/vfx2024 libwebp/*: libwebp/1.5.0@aswf/vfx2024 libxcrypt/*: libxcrypt/4.4.36@aswf/vfx2024 @@ -93,6 +93,7 @@ zstd/*: zstd/1.5.6@aswf/vfx2024 [replace_tool_requires] b2/*: b2/5.2.1@aswf/vfx2024 bison/*: bison/3.0.4@system +cpython/*: cpython/3.11.13@aswf/vfx2024 flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 18316c44..58f4fd13 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -46,7 +46,7 @@ libsndfile/*: libsndfile/system@aswf/vfx2025 libsquish/*: libsquish/system@aswf/vfx2025 libsvt-av1/*: libsvt-av1/system@aswf/vfx2025 libtiff/*: libtiff/4.0.9@aswf/vfx2025 -libuhdr/*: libuhdr/1.4.0@aswf/vfx2025 +libultrahdr/*: libultrahdr/1.4.0@aswf/vfx2025 libvpx/*: libvpx/system@aswf/vfx2025 libwebp/*: libwebp/1.5.0@aswf/vfx2025 libxcrypt/*: libxcrypt/4.4.36@aswf/vfx2025 @@ -65,7 +65,7 @@ oiio/*: oiio/3.0.7.0@aswf/vfx2025 ogg/*: ogg/system@aswf/vfx2025 onetbb/*: onetbb/2021.13.0@aswf/vfx2025 openal-soft/*: openal-soft/system@aswf/vfx2025 -openexr/*: openexr/3.3.4@aswf/vfx2025 +openexr/*: openexr/3.3.5@aswf/vfx2025 opengl/*: opengl/system@aswf/vfx2025 openjpeg/*: openjpeg/2.4.0@aswf/vfx2025 openssl/*: openssl/system@aswf/vfx2025 @@ -94,6 +94,7 @@ zstd/*: zstd/1.5.6@aswf/vfx2025 [replace_tool_requires] b2/*: b2/5.2.1@aswf/vfx2025 bison/*: bison/3.0.4@system +cpython/*: cpython/3.11.13@aswf/vfx2025 flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index d90c54d9..2a76472b 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -48,7 +48,7 @@ libsndfile/*: libsndfile/system@aswf/vfx2026 libsquish/*: libsquish/system@aswf/vfx2026 libsvt-av1/*: libsvt-av1/system@aswf/vfx2026 libtiff/*: libtiff/4.4.0@aswf/vfx2026 -libuhdr/*: libuhdr/1.4.0@aswf/vfx2026 +libultrahdr/*: libultrahdr/1.4.0@aswf/vfx2026 libvpx/*: libvpx/system@aswf/vfx2026 libwebp/*: libwebp/1.5.0@aswf/vfx2026 libxcrypt/*: libxcrypt/4.4.38@aswf/vfx2026 @@ -67,7 +67,7 @@ oiio/*: oiio/3.0.8.1@aswf/vfx2026 ogg/*: ogg/system@aswf/vfx2026 onetbb/*: onetbb/2022.1.0@aswf/vfx2026 openal-soft/*: openal-soft/system@aswf/vfx2026 -openexr/*: openexr/3.3.4@aswf/vfx2026 +openexr/*: openexr/3.3.5@aswf/vfx2026 opengl/*: opengl/system@aswf/vfx2026 openjpeg/*: openjpeg/2.4.0@aswf/vfx2026 openssl/*: openssl/system@aswf/vfx2026 @@ -97,6 +97,7 @@ zstd/*: zstd/1.576@aswf/vfx2026 [replace_tool_requires] b2/*: b2/5.3.2@aswf/vfx2026 bison/*: bison/3.7.4@system +cpython/*: cpython/3.13.3@aswf/vfx2026 flex/*: flex/2.6.4@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 64d5af3d..91263a2c 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -47,7 +47,7 @@ libsquish/*: libsquish/system@aswftesting/vfx2024 libsvtav1/*: libsvtav1/system@aswftesting/vfx2024 libtiff/*: libtiff/4.0.9@aswftesting/vfx2024 libxcrypt/*: libxcrypt/4.4.36@aswftesting/vfx2024 -libuhdr/*: libuhdr/1.4.0@aswftesting/vfx2024 +libultrahdr/*: libultrahdr/1.4.0@aswftesting/vfx2024 libvpx/*: libvpx/system@aswftesting/vfx2024 libwebp/*: libwebp/1.5.0@aswftesting/vfx2024 libxshmfence/*: libxshmfence/system@aswftesting/vfx2024 @@ -93,6 +93,7 @@ zstd/*: zstd/1.5.6@aswftesting/vfx2024 [replace_tool_requires] b2/*: b2/5.2.1@aswftesting/vfx2024 bison/*: bison/3.0.4@system +cpython/*: cpython/3.11.13@aswftesting/vfx2024 flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 36569a0d..d8146399 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -46,7 +46,7 @@ libsndfile/*: libsndfile/system@aswftesting/vfx2025 libsquish/*: libsquish/system@aswftesting/vfx2025 libsvtav1/*: libsvtav1/system@aswftesting/vfx2025 libtiff/*: libtiff/4.0.9@aswftesting/vfx2025 -libuhdr/*: libuhdr/1.4.0@aswftesting/vfx2025 +libultrahdr/*: libultrahdr/1.4.0@aswftesting/vfx2025 libvpx/*: libvpx/system@aswftesting/vfx2025 libwebp/*: libwebp/1.5.0@aswftesting/vfx2025 libxcrypt/*: libxcrypt/4.4.36@aswftesting/vfx2025 @@ -65,7 +65,7 @@ oiio/*: oiio/3.0.7.0@aswftesting/vfx2025 ogg/*: ogg/system@aswftesting/vfx2025 onetbb/*: onetbb/2021.13.0@aswftesting/vfx2025 openal-soft/*: openal-soft/system@aswftesting/vfx2025 -openexr/*: openexr/3.3.4@aswftesting/vfx2025 +openexr/*: openexr/3.3.5@aswftesting/vfx2025 opengl/*: opengl/system@aswftesting/vfx2025 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2025 openssl/*: openssl/system@aswftesting/vfx2025 @@ -94,6 +94,7 @@ zstd/*: zstd/1.5.6@aswftesting/vfx2025 [replace_tool_requires] b2/*: b2/5.2.1@aswftesting/vfx2025 bison/*: bison/3.0.4@system +cpython/*: cpython/3.11.13@aswftesting/vfx2025 flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 875bb8cb..129c122e 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -48,7 +48,7 @@ libsndfile/*: libsndfile/system@aswftesting/vfx2026 libsquish/*: libsquish/system@aswftesting/vfx2026 libsvt-av1/*: libsvt-av1/system@aswftesting/vfx2026 libtiff/*: libtiff/4.4.0@aswftesting/vfx2026 -libuhdr/*: libuhdr/1.4.0@aswftesting/vfx2026 +libultrahdr/*: libultrahdr/1.4.0@aswftesting/vfx2026 libvpx/*: libvpx/system@aswftesting/vfx2026 libwebp/*: libwebp/1.5.0@aswftesting/vfx2026 libxcrypt/*: libxcrypt/4.4.38@aswftesting/vfx2026 @@ -67,7 +67,7 @@ oiio/*: oiio/3.0.8.1@aswftesting/vfx2026 ogg/*: ogg/system@aswftesting/vfx2026 onetbb/*: onetbb/2022.1.0@aswftesting/vfx2026 openal-soft/*: openal-soft/system@aswftesting/vfx2026 -openexr/*: openexr/3.3.4@aswftesting/vfx2026 +openexr/*: openexr/3.3.5@aswftesting/vfx2026 opengl/*: opengl/system@aswftesting/vfx2026 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2026 openssl/*: openssl/system@aswftesting/vfx2026 @@ -97,6 +97,7 @@ zstd/*: zstd/1.5.7@aswftesting/vfx2026 [replace_tool_requires] b2/*: b2/5.3.2@aswftesting/vfx2026 bison/*: bison/3.7.4@system +cpython/*: cpython/3.13.3@aswftesting/vfx2026 flex/*: flex/2.6.4@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system diff --git a/packages/vfx2/Dockerfile b/packages/vfx2/Dockerfile index 404de043..e8fdc8bc 100644 --- a/packages/vfx2/Dockerfile +++ b/packages/vfx2/Dockerfile @@ -21,7 +21,7 @@ ARG ASWF_PYBIND11_VERSION ARG ASWF_LIBICONV_VERSION ARG ASWF_LIBJPEG_TURBO_VERSION ARG ASWF_LIBJXL_VERSION -ARG ASWF_LIBUHDR_VERSION +ARG ASWF_LIBULTRAHDR_VERSION ARG ASWF_LIBWEBP_VERSION ARG ASWF_MD4C_VERSION ARG ASWF_MINIZIP_NG_VERSION @@ -146,8 +146,8 @@ ARG ASWF_LIBJPEG_TURBO_VERSION ENV ASWF_LIBJPEG_TURBO_VERSION=${ASWF_LIBJPEG_TURBO_VERSION} ARG ASWF_LIBJXL_VERSION ENV ASWF_LIBJXL_VERSION=${ASWF_LIBJXL_VERSION} -ARG ASWF_LIBUHDR_VERSION -ENV ASWF_LIBUHDR_VERSION=${ASWF_LIBUHDR_VERSION} +ARG ASWF_LIBULTRAHDR_VERSION +ENV ASWF_LIBULTRAHDR_VERSION=${ASWF_LIBULTRAHDR_VERSION} ARG ASWF_LIBWEBP_VERSION ENV ASWF_LIBWEBP_VERSION=${ASWF_LIBWEBP_VERSION} ARG ASWF_PUGIXML_VERSION @@ -194,7 +194,7 @@ libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libuhdr/${ASWF_LIBUHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index b82f694e..9276c641 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -146,7 +146,7 @@ versions: package_versions: ASWF_DTS_VERSION: "11" ASWF_DTS_PREFIX: "gcc-toolset" - ASWF_CONAN_VERSION: "2.16.1" + ASWF_CONAN_VERSION: "2.18.1" ASWF_CONAN_PYTHON_VERSION: "3.11.11" ASWF_CUDA_VERSION: "12.6.3" ASWF_GLVND_VERSION: "1.7.0" @@ -181,7 +181,7 @@ versions: package_versions: ASWF_DTS_VERSION: "11" ASWF_DTS_PREFIX: "gcc-toolset" - ASWF_CONAN_VERSION: "2.16.1" + ASWF_CONAN_VERSION: "2.18.1" ASWF_CONAN_PYTHON_VERSION: "3.11.11" ASWF_CUDA_VERSION: "12.6.3" ASWF_GLVND_VERSION: "1.7.0" @@ -217,7 +217,7 @@ versions: package_versions: ASWF_DTS_VERSION: "14" ASWF_DTS_PREFIX: "gcc-toolset" - ASWF_CONAN_VERSION: "2.16.1" + ASWF_CONAN_VERSION: "2.18.1" ASWF_CONAN_PYTHON_VERSION: "3.13.3" ASWF_CUDA_VERSION: "12.9.1" ASWF_GLVND_VERSION: "1.7.0" @@ -575,7 +575,7 @@ versions: ASWF_LIBJPEG_TURBO_VERSION: "3.0.4" ASWF_LIBJXL_VERSION: "0.11.1" ASWF_LIBRAW_VERSION: "0.21.4" - ASWF_LIBUHDR_VERSION: "1.4.0" + ASWF_LIBULTRAHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.36" ASWF_LOG4CPLUS_VERSION: "2.1.2" @@ -705,7 +705,7 @@ versions: ASWF_LIBJPEG_TURBO_VERSION: "3.0.4" ASWF_LIBJXL_VERSION: "0.11.1" ASWF_LIBRAW_VERSION: "0.21.4" - ASWF_LIBUHDR_VERSION: "1.4.0" + ASWF_LIBULTRAHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.36" ASWF_LOG4CPLUS_VERSION: "2.1.2" @@ -743,7 +743,7 @@ versions: ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" ASWF_OIIO_VERSION: "3.0.8.1" - ASWF_OPENEXR_VERSION: "3.3.4" + ASWF_OPENEXR_VERSION: "3.3.5" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" ASWF_OPENVDB_VERSION: "12.0.0" @@ -836,7 +836,7 @@ versions: ASWF_LIBJPEG_TURBO_VERSION: "3.1.0" ASWF_LIBJXL_VERSION: "0.11.1" ASWF_LIBRAW_VERSION: "0.21.4" - ASWF_LIBUHDR_VERSION: "1.4.0" + ASWF_LIBULTRAHDR_VERSION: "1.4.0" ASWF_LIBWEBP_VERSION: "1.5.0" ASWF_LIBXCRYPT_VERSION: "4.4.38" ASWF_LOG4CPLUS_VERSION: "2.1.2" @@ -874,7 +874,7 @@ versions: ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" ASWF_OIIO_VERSION: "3.0.8.1" - ASWF_OPENEXR_VERSION: "3.3.4" + ASWF_OPENEXR_VERSION: "3.3.5" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" ASWF_OPENVDB_VERSION: "12.0.1" @@ -1302,7 +1302,7 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" - libuhdr: + libultrahdr: - "2024.3" - "2025.2" - "2026.0" @@ -1738,7 +1738,7 @@ groups: - imath - jasper - lcms - - libuhdr + - libultrahdr - openfx - opensubdiv - partio @@ -1845,7 +1845,7 @@ conan_only: - libsquish - libsvtav1 - libtiff - - libuhdr + - libultrahdr - libvpx - libwebp - libxcrypt From 22e17a71172a95ae742431413a7160fa659a0123 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Sun, 27 Jul 2025 23:51:07 -0700 Subject: [PATCH 11/14] OSL builds with OptiX, improve Conan package instalation - OSL now builds with OptiX, includes patch for C++20 - install_conanpackages.sh uses full_deploy generator to install all transitive dependencies Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 6 + ci-base/Dockerfile | 2 +- ci-baseqt/Dockerfile | 2 +- ci-common/Dockerfile | 10 +- ci-common/README.md | 18 + ci-common/image.yaml | 5 +- ci-materialx/Dockerfile | 217 +------ ci-materialx/README.md | 146 +---- ci-materialx/image.yaml | 43 +- ci-ocio/Dockerfile | 167 +----- ci-ocio/README.md | 147 +---- ci-ocio/image.yaml | 33 +- ci-oiio/Dockerfile | 232 +------- ci-oiio/README.md | 123 +--- ci-oiio/image.yaml | 46 +- ci-opencue/Dockerfile | 2 +- ci-openexr/Dockerfile | 37 +- ci-openexr/README.md | 41 +- ci-openexr/image.yaml | 7 +- ci-openfx/Dockerfile | 12 +- ci-openfx/README.md | 6 +- ci-openfx/image.yaml | 2 +- ci-openrv/Dockerfile | 2 +- ci-openvdb/Dockerfile | 227 +------- ci-openvdb/README.md | 474 +--------------- ci-openvdb/image.yaml | 45 +- ci-osl/Dockerfile | 245 ++------ ci-osl/README.md | 528 ++++-------------- ci-osl/image.yaml | 49 +- ci-otio/Dockerfile | 2 +- ci-rawtoaces/Dockerfile | 72 +-- ci-rawtoaces/README.md | 36 +- ci-rawtoaces/image.yaml | 14 +- ci-usd/Dockerfile | 2 +- ci-vfxall/Dockerfile | 2 +- ci-vfxall/README.md | 4 +- packages/common/Dockerfile | 9 +- .../conan/recipes/aces_container/conanfile.py | 1 - packages/conan/recipes/materialx/conanfile.py | 2 +- packages/conan/settings/profiles_aswf/vfx2024 | 2 + packages/conan/settings/profiles_aswf/vfx2025 | 2 + packages/conan/settings/profiles_aswf/vfx2026 | 4 +- .../settings/profiles_aswftesting/vfx2024 | 2 + .../settings/profiles_aswftesting/vfx2025 | 2 + .../settings/profiles_aswftesting/vfx2026 | 2 + packages/vfx2/Dockerfile | 28 +- .../data/ci-image-dockerfile.jinja2 | 4 +- python/aswfdocker/data/versions.yaml | 8 +- python/aswfdocker/tests/test_builder.py | 3 + scripts/common/install_conanpackages.sh | 69 ++- scripts/vfx/build_osl.sh | 104 +++- 51 files changed, 487 insertions(+), 2761 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5fb199fa..30ce3c0c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ All notable changes to this project will be documented in this file. # 2025-07-XX +These releases no longer build / install libraries in `/usr/local/lib64`, they revert back to the default +`/usr/local/lib` supported by most packages and Conan recipes. This should hopefully be transparent to +consumers of these new images. + - 2024.3 release - using Conan 2 recipes - updated versions @@ -46,6 +50,7 @@ All notable changes to this project will be documented in this file. - OpenFX 1.5s - OSL 1.14.6.0 (was 1.14.5.1) - PySide 6.5.6 (was 6.5.4) + - USD 25.05.01 (was 25.05) - 2026.0 - pre-release for testing purposes, does not yet include late releasing ASWF packages in final 2026 release (OOCIO, OpenEXR, OpenVDB) - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions @@ -64,6 +69,7 @@ All notable changes to this project will be documented in this file. with keeping recipes up to date - merge upstream recipe changes, in particular changes for CMake 4 compatibility - `--keep_source` and `--keep_build` command line options are obsolete, no longer relevant with Conan 2 +- install_conanpackages.sh script update to use the Conan full_deploy generator which can deploy all transitive dependencies for a package in one call, mimizing the need to include dependencies in the image.yaml sources for the ci-foo containers # 2025-05-04 diff --git a/ci-base/Dockerfile b/ci-base/Dockerfile index c0da918f..c9994504 100644 --- a/ci-base/Dockerfile +++ b/ci-base/Dockerfile @@ -237,6 +237,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} base diff --git a/ci-baseqt/Dockerfile b/ci-baseqt/Dockerfile index 20ff35b9..7e20bed9 100644 --- a/ci-baseqt/Dockerfile +++ b/ci-baseqt/Dockerfile @@ -262,6 +262,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} baseqt diff --git a/ci-common/Dockerfile b/ci-common/Dockerfile index 1352e777..b49d5830 100644 --- a/ci-common/Dockerfile +++ b/ci-common/Dockerfile @@ -17,6 +17,7 @@ ARG ASWF_CLANG_VERSION ARG ASWF_CMAKE_VERSION ARG ASWF_NINJA_VERSION ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_GLVND_VERSION ARG ASWF_CCACHE_VERSION ARG ASWF_DTS_VERSION @@ -51,6 +52,7 @@ ARG ASWF_CLANG_VERSION ARG ASWF_CMAKE_VERSION ARG ASWF_NINJA_VERSION ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_GLVND_VERSION ARG ASWF_CCACHE_VERSION ARG ASWF_DTS_VERSION @@ -75,6 +77,7 @@ LABEL io.aswf.docker.versions.clang="$ASWF_CLANG_VERSION" LABEL io.aswf.docker.versions.cmake="$ASWF_CMAKE_VERSION" LABEL io.aswf.docker.versions.ninja="$ASWF_NINJA_VERSION" LABEL io.aswf.docker.versions.cuda="$ASWF_CUDA_VERSION" +LABEL io.aswf.docker.versions.optix="$ASWF_OPTIX_VERSION" LABEL io.aswf.docker.versions.glvnd="$ASWF_GLVND_VERSION" LABEL io.aswf.docker.versions.ccache="$ASWF_CCACHE_VERSION" LABEL io.aswf.docker.versions.dts="$ASWF_DTS_VERSION" @@ -97,6 +100,7 @@ ENV ASWF_CLANG_VERSION=$ASWF_CLANG_VERSION ENV ASWF_CMAKE_VERSION=$ASWF_CMAKE_VERSION ENV ASWF_NINJA_VERSION=$ASWF_NINJA_VERSION ENV ASWF_CUDA_VERSION=$ASWF_CUDA_VERSION +ENV ASWF_OPTIX_VERSION=$ASWF_OPTIX_VERSION ENV ASWF_GLVND_VERSION=$ASWF_GLVND_VERSION ENV ASWF_CCACHE_VERSION=$ASWF_CCACHE_VERSION ENV ASWF_DTS_VERSION=$ASWF_DTS_VERSION @@ -139,8 +143,8 @@ RUN /tmp/install_yq.sh RUN mkdir /opt/aswf WORKDIR /opt/aswf -ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/opt/rh/httpd24/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:/usr/local/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin/:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin \ +ENV LD_LIBRARY_PATH=/usr/local/lib:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ + PATH=/usr/local/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin/:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin \ PERL5LIB=/opt/rh/rh-git218/root/usr/share/perl5/vendor_perl \ MANPATH=/opt/rh/rh-git218/root/usr/share/man @@ -193,6 +197,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local ci_common${CI_COMMON_VERSION} + /tmp/install_conanpackages.sh /usr/local ci_common${CI_COMMON_VERSION} common diff --git a/ci-common/README.md b/ci-common/README.md index e94dcfc1..a3d1c4f3 100644 --- a/ci-common/README.md +++ b/ci-common/README.md @@ -23,6 +23,7 @@ Contains: * clang-6.0.1 * ninja-1.10.1 * cuda-10.2 +* optix-7.1.0 * glvnd-1.2.0 * ccache-4.0 * dts-6 @@ -35,6 +36,7 @@ Contains: * clang-7.1.0 * ninja-1.10.1 * cuda-10.2 +* optix-7.1.0 * glvnd-1.2.0 * ccache-4.0 * dts-6 @@ -47,6 +49,7 @@ Contains: * clang-8.0.1 * ninja-1.10.1 * cuda-10.2 +* optix-7.1.0 * glvnd-1.2.0 * ccache-4.0 * dts-6 @@ -59,6 +62,7 @@ Contains: * clang-9.0.1 * ninja-1.10.1 * cuda-10.2 +* optix-7.1.0 * glvnd-1.2.0 * ccache-4.0 * dts-6 @@ -71,6 +75,7 @@ Contains: * clang-10.0.1 * ninja-1.10.1 * cuda-10.2 +* optix-7.1.0 * glvnd-1.2.0 * ccache-4.0 * dts-6 @@ -83,6 +88,7 @@ Contains: * clang-10.0.1 * ninja-1.11.0 * cuda-11.4.0 +* optix-7.2.0 * glvnd-1.2.0 * ccache-4.0 * dts-9 @@ -95,6 +101,7 @@ Contains: * clang-11.1.0 * ninja-1.11.0 * cuda-11.4.0 +* optix-7.2.0 * glvnd-1.2.0 * ccache-4.0 * dts-9 @@ -107,6 +114,7 @@ Contains: * clang-12.0.1 * ninja-1.11.0 * cuda-11.4.0 +* optix-7.2.0 * glvnd-1.2.0 * ccache-4.0 * dts-9 @@ -119,6 +127,7 @@ Contains: * clang-13.0.1 * ninja-1.11.0 * cuda-11.4.0 +* optix-7.2.0 * glvnd-1.2.0 * ccache-4.0 * dts-9 @@ -131,6 +140,7 @@ Contains: * clang-14.0.0 * ninja-1.11.0 * cuda-11.4.0 +* optix-7.2.0 * glvnd-1.2.0 * ccache-4.0 * dts-9 @@ -143,6 +153,7 @@ Contains: * clang-14.0.6 * ninja-1.11.1 * cuda-11.8.0 +* optix-7.7.0 * glvnd-1.6.0 * ccache-4.7.4 * dts-11 @@ -155,6 +166,7 @@ Contains: * clang-15.0.7 * ninja-1.11.1 * cuda-11.8.0 +* optix-7.7.0 * glvnd-1.6.0 * ccache-4.7.4 * dts-11 @@ -168,6 +180,7 @@ Contains: * cmake-3.31.7 * ninja-1.13.1 * cuda-12.6.3 +* optix-8.0.0 * glvnd-1.7.0 * ccache-4.9.1 * dts-11 @@ -182,6 +195,7 @@ Contains: * cmake-3.31.7 * ninja-1.13.1 * cuda-12.6.3 +* optix-8.0.0 * glvnd-1.7.0 * ccache-4.9.1 * dts-11 @@ -196,6 +210,7 @@ Contains: * cmake-3.31.7 * ninja-1.13.1 * cuda-12.6.3 +* optix-8.0.0 * glvnd-1.7.0 * ccache-4.9.1 * dts-11 @@ -210,6 +225,7 @@ Contains: * cmake-3.31.7 * ninja-1.13.1 * cuda-12.6.3 +* optix-8.0.0 * glvnd-1.7.0 * ccache-4.9.1 * dts-11 @@ -224,6 +240,7 @@ Contains: * cmake-4.0.2 * ninja-1.13.1 * cuda-12.9.1 +* optix-8.0.0 * glvnd-1.7.0 * ccache-4.11.3 * dts-14 @@ -238,6 +255,7 @@ Contains: * cmake-4.0.2 * ninja-1.13.1 * cuda-12.9.1 +* optix-8.0.0 * glvnd-1.7.0 * ccache-4.11.3 * dts-14 diff --git a/ci-common/image.yaml b/ci-common/image.yaml index 8091a469..f9f1964f 100644 --- a/ci-common/image.yaml +++ b/ci-common/image.yaml @@ -8,6 +8,7 @@ packages: - ninja implicit_packages: - cuda + - optix - glvnd - ccache - dts @@ -48,8 +49,8 @@ docker_commands: | RUN mkdir /opt/aswf WORKDIR /opt/aswf - ENV LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/opt/rh/httpd24/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ - PATH=/opt/rh/rh-git218/root/usr/bin:/usr/local/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin/:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin \ + ENV LD_LIBRARY_PATH=/usr/local/lib:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ + PATH=/usr/local/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin/:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin \ PERL5LIB=/opt/rh/rh-git218/root/usr/share/perl5/vendor_perl \ MANPATH=/opt/rh/rh-git218/root/usr/share/man diff --git a/ci-materialx/Dockerfile b/ci-materialx/Dockerfile index 95345d16..c79e8f3e 100644 --- a/ci-materialx/Dockerfile +++ b/ci-materialx/Dockerfile @@ -15,48 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION +ARG ASWF_MATERIALX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -77,48 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION +ARG ASWF_MATERIALX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -137,48 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.b2="$ASWF_B2_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" -LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.libiconv="$ASWF_LIBICONV_VERSION" -LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" -LABEL io.aswf.docker.versions.pystring="$ASWF_PYSTRING_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" -LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" -LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" -LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.minizip-ng="$ASWF_MINIZIP_NG_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" -LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" -LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" -LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" -LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" -LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" -LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" -LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" +LABEL io.aswf.docker.versions.materialx="$ASWF_MATERIALX_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -193,48 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_B2_VERSION=$ASWF_B2_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION -ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_LIBICONV_VERSION=$ASWF_LIBICONV_VERSION -ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION -ENV ASWF_PYSTRING_VERSION=$ASWF_PYSTRING_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION -ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION -ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION -ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_MINIZIP_NG_VERSION=$ASWF_MINIZIP_NG_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_QT_VERSION=$ASWF_QT_VERSION -ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION -ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION -ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION -ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION -ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION -ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION -ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION +ENV ASWF_MATERIALX_VERSION=$ASWF_MATERIALX_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -254,48 +90,7 @@ COPY < . [requires] -b2/${ASWF_B2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pystring/${ASWF_PYSTRING_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -303,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} materialx diff --git a/ci-materialx/README.md b/ci-materialx/README.md index 2f5e28a5..915a3707 100644 --- a/ci-materialx/README.md +++ b/ci-materialx/README.md @@ -21,171 +21,35 @@ Warning: this image does *not* contain MaterialX itself as it is used to *build* ## [aswf/ci-materialx:2022.1](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2022.1) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 -* oiio-2.4.5.0 +* materialx-1.38.5 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-materialx:2023.2](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2023.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* qt-5.15.9 -* imath-3.1.9 -* ptex-2.4.2 -* openexr-3.1.11 -* ocio-2.2.1 -* oiio-2.4.13.0 +* materialx-1.38.7 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-materialx:2024.3](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2024.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* openexr-3.2.4 -* ocio-2.3.2 -* oiio-2.5.19.0 +* materialx-1.39.2 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-materialx:2025.2](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2025.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 -* oiio-3.0.8.1 +* materialx-1.39.3 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-materialx:2026.0](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2026.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 -* oiio-3.0.8.1 +* materialx-1.39.3 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-materialx/image.yaml b/ci-materialx/image.yaml index 155a5f66..37750c5b 100644 --- a/ci-materialx/image.yaml +++ b/ci-materialx/image.yaml @@ -4,48 +4,7 @@ description: | Contains: Python, Boost and other MaterialX upstream dependencies Warning: this image does *not* contain MaterialX itself as it is used to *build* MaterialX! packages: - - b2 # base1-1 packages - - bzip2 - - cppunit - - expat - - fmt - - gtest - - libbacktrace - - libdeflate - - libiconv - - libxcrypt - - lz4 - - pugixml - - pystring - - snappy - - onetbb - - tsl-robin-map - - yaml-cpp - - zlib - - zstd - - c-blosc # base1-2 packages - - cpython - - freetype - - gdbm - - glew - - glfw - - log4cplus - - minizip-ng - - boost # base1-3 packages - - pybind11 - - libjpeg-turbo # base2-1 packages - - libwebp - - md4c - - qt # base2-2 packages - - highway # vfx1-1 packages - - imath - - lcms - - libultrahdr - - ptex - - libjxl # vfx1-2 packages - - openexr - - ocio # vfx1-3 packages - - oiio + - materialx implicit_packages: - numpy - vfxplatform diff --git a/ci-ocio/Dockerfile b/ci-ocio/Dockerfile index 4c3b3ffc..19bda436 100644 --- a/ci-ocio/Dockerfile +++ b/ci-ocio/Dockerfile @@ -15,38 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_OPENEXR_VERSION +ARG ASWF_OCIO_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -67,38 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_OPENEXR_VERSION +ARG ASWF_OCIO_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -117,38 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.b2="$ASWF_B2_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" -LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.libiconv="$ASWF_LIBICONV_VERSION" -LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" -LABEL io.aswf.docker.versions.pystring="$ASWF_PYSTRING_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" -LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" -LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" -LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.minizip-ng="$ASWF_MINIZIP_NG_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" +LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -163,38 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_B2_VERSION=$ASWF_B2_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION -ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_LIBICONV_VERSION=$ASWF_LIBICONV_VERSION -ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION -ENV ASWF_PYSTRING_VERSION=$ASWF_PYSTRING_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION -ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION -ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION -ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_MINIZIP_NG_VERSION=$ASWF_MINIZIP_NG_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION +ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -214,38 +90,7 @@ COPY < . [requires] -b2/${ASWF_B2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pystring/${ASWF_PYSTRING_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -253,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} ocio diff --git a/ci-ocio/README.md b/ci-ocio/README.md index ebb3262a..acfcf384 100644 --- a/ci-ocio/README.md +++ b/ci-ocio/README.md @@ -21,187 +21,56 @@ Warning: this image does *not* contain OpenColorIO itself as it is used to *buil ## [aswf/ci-ocio:2019.9](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2019.9) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 -* cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* imath-2.3.0 -* openexr-2.3.0 +* ocio-1.1.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-ocio:2020.8](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2020.8) Contains: -* cppunit-1.15.1 -* gtest-1.10.0 -* onetbb-2019_u6 -* cpython-3.7.3 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.70.0 -* pybind11-2.4.3 -* imath-2.4.0 -* openexr-2.4.0 +* ocio-1.1.1 * numpy-1.16 * vfxplatform-2020 ## [aswf/ci-ocio:2021.6](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2021.6) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u2 -* cpython-3.7.9 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.73.0 -* pybind11-2.6.2 -* imath-2.5.5 -* openexr-2.5.5 +* ocio-2.0.1 * numpy-1.19 * vfxplatform-2021 ## [aswf/ci-ocio:2022.4](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2022.4) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* imath-3.1.5 -* openexr-3.1.5 +* ocio-2.1.1 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-ocio:2023.2](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2023.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* imath-3.1.9 -* openexr-3.1.11 +* ocio-2.2.1 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-ocio:2024.3](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2024.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* imath-3.1.12 -* lcms-2.17 -* openexr-3.2.4 +* ocio-2.3.2 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-ocio:2025.2](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2025.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* imath-3.1.12 -* lcms-2.17 -* openexr-3.3.5 +* ocio-2.4.2 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-ocio:2026.0](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2026.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* imath-3.1.12 -* lcms-2.17 -* openexr-3.3.5 +* ocio-2.4.2 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-ocio/image.yaml b/ci-ocio/image.yaml index 3be12823..d69ee2ec 100644 --- a/ci-ocio/image.yaml +++ b/ci-ocio/image.yaml @@ -4,38 +4,7 @@ description: | Contains: Python, TBB, Boost and other OpenColorIO upstream dependencies Warning: this image does *not* contain OpenColorIO itself as it is used to *build* OpenColorIO! packages: - - b2 # base1-1 packages - - bzip2 - - cppunit - - expat - - fmt - - gtest - - libbacktrace - - libdeflate - - libiconv - - libxcrypt - - lz4 - - pugixml - - pystring - - snappy - - onetbb - - tsl-robin-map - - yaml-cpp - - zlib - - zstd - - c-blosc # base1-2 packages - - cpython - - freetype - - gdbm - - glew - - glfw - - log4cplus - - minizip-ng - - boost # base1-3 packages - - pybind11 - - imath # vfx1-1 packages - - lcms - - openexr # vfx1-2 packages + - ocio # all dependencies will be installed except ocio itself implicit_packages: - numpy - vfxplatform diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 3375b04b..e527bdcf 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -15,51 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_HDF5_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_JASPER_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_LIBRAW_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OPENVDB_VERSION +ARG ASWF_OIIO_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -80,51 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_HDF5_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_JASPER_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_LIBRAW_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OPENVDB_VERSION +ARG ASWF_OIIO_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -143,51 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.b2="$ASWF_B2_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" -LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.libiconv="$ASWF_LIBICONV_VERSION" -LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" -LABEL io.aswf.docker.versions.pystring="$ASWF_PYSTRING_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" -LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" -LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" -LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.minizip-ng="$ASWF_MINIZIP_NG_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" -LABEL io.aswf.docker.versions.hdf5="$ASWF_HDF5_VERSION" -LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" -LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.jasper="$ASWF_JASPER_VERSION" -LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" -LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" -LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" -LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" -LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" -LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" -LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" +LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -202,51 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_B2_VERSION=$ASWF_B2_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION -ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_LIBICONV_VERSION=$ASWF_LIBICONV_VERSION -ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION -ENV ASWF_PYSTRING_VERSION=$ASWF_PYSTRING_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION -ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION -ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION -ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_MINIZIP_NG_VERSION=$ASWF_MINIZIP_NG_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_QT_VERSION=$ASWF_QT_VERSION -ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION -ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION -ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_JASPER_VERSION=$ASWF_JASPER_VERSION -ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION -ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION -ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION -ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION -ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION -ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION -ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION +ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -266,51 +90,7 @@ COPY < . [requires] -b2/${ASWF_B2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pystring/${ASWF_PYSTRING_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -hdf5/${ASWF_HDF5_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -jasper/${ASWF_JASPER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -318,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} oiio diff --git a/ci-oiio/README.md b/ci-oiio/README.md index c2146424..2d1aa292 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -21,138 +21,21 @@ Warning: this image does *not* contain OpenImageIO itself as it is used to *buil ## [aswf/ci-oiio:2024.3](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2024.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* hdf5-1.14.6 -* highway-1.2.0 -* imath-3.1.12 -* jasper-4.2.5 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* libraw-0.21.4 -* openexr-3.2.4 -* ocio-2.3.2 -* openvdb-11.0.0 +* oiio-2.5.19.0 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-oiio:2025.2](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2025.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* hdf5-1.14.6 -* highway-1.2.0 -* imath-3.1.12 -* jasper-4.2.5 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* libraw-0.21.4 -* openexr-3.3.5 -* ocio-2.4.2 -* openvdb-12.0.0 +* oiio-3.0.8.1 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-oiio:2026.0](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2026.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* hdf5-1.14.6 -* highway-1.2.0 -* imath-3.1.12 -* jasper-4.2.5 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* libraw-0.21.4 -* openexr-3.3.5 -* ocio-2.4.2 -* openvdb-12.0.1 +* oiio-3.0.8.1 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-oiio/image.yaml b/ci-oiio/image.yaml index 56b31e5a..f725dd28 100644 --- a/ci-oiio/image.yaml +++ b/ci-oiio/image.yaml @@ -4,51 +4,7 @@ description: | Contains: Python, OpenEXR, Partio and other OpenImageIO upstream dependencies Warning: this image does *not* contain OpenImageIO itself as it is used to *build* OpenImageIO! packages: - - b2 # base1-1 packages - - bzip2 - - cppunit - - expat - - fmt - - gtest - - libbacktrace - - libdeflate - - libiconv - - libxcrypt - - lz4 - - pugixml - - pystring - - snappy - - onetbb - - tsl-robin-map - - yaml-cpp - - zlib - - zstd - - c-blosc # base1-2 packages - - cpython - - freetype - - gdbm - - glew - - glfw - - log4cplus - - minizip-ng - - boost # base1-3 packages - - pybind11 - - libjpeg-turbo # base2-1 packages - - libwebp - - md4c - - qt # base2-2 packages - - hdf5 # vfx1-1 packages - - highway - - imath - - jasper - - lcms - - libultrahdr - - ptex - - libjxl # vfx1-2 packages - - libraw - - openexr - - ocio # vfx1-3 packages - - openvdb # vfx1 non Conan packages + - oiio # all dependencies will be installed except oiio itself implicit_packages: - numpy - vfxplatform diff --git a/ci-opencue/Dockerfile b/ci-opencue/Dockerfile index 7ce43015..1178f39b 100644 --- a/ci-opencue/Dockerfile +++ b/ci-opencue/Dockerfile @@ -104,6 +104,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} opencue diff --git a/ci-openexr/Dockerfile b/ci-openexr/Dockerfile index 9a830dba..7c9aa1a6 100644 --- a/ci-openexr/Dockerfile +++ b/ci-openexr/Dockerfile @@ -15,12 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_PYBIND11_VERSION +ARG ASWF_OPENEXR_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -41,12 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_BOOST_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_PYBIND11_VERSION +ARG ASWF_OPENEXR_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -65,12 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" +LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -85,12 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION +ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -110,12 +90,7 @@ COPY < . [requires] -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -123,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} openexr diff --git a/ci-openexr/README.md b/ci-openexr/README.md index 7ed46ba2..48fd3b43 100644 --- a/ci-openexr/README.md +++ b/ci-openexr/README.md @@ -21,81 +21,56 @@ Warning: this image does *not* contain OpenEXR itself as it is used to *build* O ## [aswf/ci-openexr:2019.8](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2019.8) Contains: -* boost-1.66.0 -* cpython-2.7.15 -* pybind11-2.4.3 +* openexr-2.3.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-openexr:2020.8](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2020.8) Contains: -* boost-1.70.0 -* cpython-3.7.3 -* pybind11-2.4.3 +* openexr-2.4.0 * numpy-1.16 * vfxplatform-2020 ## [aswf/ci-openexr:2021.5](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2021.5) Contains: -* boost-1.73.0 -* cpython-3.7.9 -* pybind11-2.6.2 +* openexr-2.5.5 * numpy-1.19 * vfxplatform-2021 ## [aswf/ci-openexr:2022.3](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2022.3) Contains: -* boost-1.76.0 -* cpython-3.9.15 -* pybind11-2.8.1 +* openexr-3.1.5 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-openexr:2023.2](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2023.2) Contains: -* boost-1.80.0 -* cpython-3.10.11 -* pybind11-2.9.2 +* openexr-3.1.11 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-openexr:2024.3](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2024.3) Contains: -* boost-1.82.0 -* bzip2-1.0.8 -* cpython-3.11.13 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* pybind11-2.13.6 +* openexr-3.2.4 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-openexr:2025.2](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2025.2) Contains: -* boost-1.85.0 -* bzip2-1.0.8 -* cpython-3.11.13 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* pybind11-2.13.6 +* openexr-3.3.5 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-openexr:2026.0](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2026.0) Contains: -* boost-1.88.0 -* bzip2-1.0.8 -* cpython-3.13.3 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* pybind11-2.13.6 +* openexr-3.3.5 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-openexr/image.yaml b/ci-openexr/image.yaml index 0569193d..e887353c 100644 --- a/ci-openexr/image.yaml +++ b/ci-openexr/image.yaml @@ -4,12 +4,7 @@ description: | Contains: Python and other OpenEXR upstream dependencies Warning: this image does *not* contain OpenEXR itself as it is used to *build* OpenEXR! packages: - - boost # boost and dependencies - - bzip2 - - cpython - - libbacktrace - - libdeflate # other dependencies - - pybind11 + - openexr # all dependencies will be installed except openexr itself implicit_packages: - numpy - vfxplatform diff --git a/ci-openfx/Dockerfile b/ci-openfx/Dockerfile index bd807335..a7a6c536 100644 --- a/ci-openfx/Dockerfile +++ b/ci-openfx/Dockerfile @@ -15,7 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_EXPAT_VERSION +ARG ASWF_OPENFX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -36,7 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_EXPAT_VERSION +ARG ASWF_OPENFX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -55,7 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" +LABEL io.aswf.docker.versions.openfx="$ASWF_OPENFX_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -70,7 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION +ENV ASWF_OPENFX_VERSION=$ASWF_OPENFX_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -90,7 +90,7 @@ COPY < . [requires] -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openfx/${ASWF_OPENFX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -98,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} openfx diff --git a/ci-openfx/README.md b/ci-openfx/README.md index a8a53846..205720e4 100644 --- a/ci-openfx/README.md +++ b/ci-openfx/README.md @@ -21,21 +21,21 @@ Warning: this image does *not* contain OpenFX itself as it is used to *build* Op ## [aswf/ci-openfx:2024.3](https://hub.docker.com/r/aswf/ci-openfx/tags?page=1&name=2024.3) Contains: -* expat-2.6.4 +* openfx-1.5s * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-openfx:2025.2](https://hub.docker.com/r/aswf/ci-openfx/tags?page=1&name=2025.2) Contains: -* expat-2.6.4 +* openfx-1.5s * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-openfx:2026.0](https://hub.docker.com/r/aswf/ci-openfx/tags?page=1&name=2026.0) Contains: -* expat-2.7.1 +* openfx-1.5s * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-openfx/image.yaml b/ci-openfx/image.yaml index 5298adde..ca1e1182 100644 --- a/ci-openfx/image.yaml +++ b/ci-openfx/image.yaml @@ -4,7 +4,7 @@ description: | Contains: Python and other OpenFX upstream dependencies Warning: this image does *not* contain OpenFX itself as it is used to *build* OpenFX! packages: - - expat + - openfx # all dependencies will be installed except openfx itself implicit_packages: - numpy - vfxplatform diff --git a/ci-openrv/Dockerfile b/ci-openrv/Dockerfile index 1fe92667..f7286c25 100644 --- a/ci-openrv/Dockerfile +++ b/ci-openrv/Dockerfile @@ -108,7 +108,7 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} openrv # Workaround: Reinstall Qt to a temporary location to prevent conflicts with PySide during OpenRV builds. diff --git a/ci-openvdb/Dockerfile b/ci-openvdb/Dockerfile index c68bd96d..07f01e42 100644 --- a/ci-openvdb/Dockerfile +++ b/ci-openvdb/Dockerfile @@ -15,50 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_PARTIO_VERSION +ARG ASWF_OPENVDB_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -79,50 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_PARTIO_VERSION +ARG ASWF_OPENVDB_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -141,50 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.b2="$ASWF_B2_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" -LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.libiconv="$ASWF_LIBICONV_VERSION" -LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" -LABEL io.aswf.docker.versions.pystring="$ASWF_PYSTRING_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" -LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" -LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" -LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.minizip-ng="$ASWF_MINIZIP_NG_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" -LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" -LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" -LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" -LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" -LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" -LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" -LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" -LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" -LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" +LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -199,50 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_B2_VERSION=$ASWF_B2_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION -ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_LIBICONV_VERSION=$ASWF_LIBICONV_VERSION -ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION -ENV ASWF_PYSTRING_VERSION=$ASWF_PYSTRING_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION -ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION -ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION -ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_MINIZIP_NG_VERSION=$ASWF_MINIZIP_NG_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_QT_VERSION=$ASWF_QT_VERSION -ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION -ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION -ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION -ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION -ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION -ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION -ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION -ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION -ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION +ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -262,50 +90,7 @@ COPY < . [requires] -b2/${ASWF_B2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pystring/${ASWF_PYSTRING_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -313,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} openvdb diff --git a/ci-openvdb/README.md b/ci-openvdb/README.md index 09a2b0f3..6ea0a568 100644 --- a/ci-openvdb/README.md +++ b/ci-openvdb/README.md @@ -21,569 +21,133 @@ Warning: this image does *not* contain OpenVDB itself as it is used to *build* O ## [aswf/ci-openvdb:2019-clang6.8](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2019-clang6.8) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 -* cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 -* oiio-2.0.8 -* partio-1.10.1 +* openvdb-6.2.1 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-openvdb:2019-clang7.8](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2019-clang7.8) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 -* cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 -* oiio-2.0.8 -* partio-1.10.1 +* openvdb-6.2.1 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-openvdb:2019-clang8.8](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2019-clang8.8) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 -* cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 -* oiio-2.0.8 -* partio-1.10.1 +* openvdb-6.2.1 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-openvdb:2019-clang9.8](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2019-clang9.8) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 -* cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 -* oiio-2.0.8 -* partio-1.10.1 +* openvdb-6.2.1 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-openvdb:2020-clang7.8](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2020-clang7.8) Contains: -* cppunit-1.15.1 -* gtest-1.10.0 -* onetbb-2019_u6 -* cpython-3.7.3 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.70.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.4.0 -* ptex-2.3.2 -* openexr-2.4.0 -* ocio-1.1.1 -* oiio-2.1.13.0 -* partio-1.10.1 +* openvdb-7.1.0 * numpy-1.16 * vfxplatform-2020 ## [aswf/ci-openvdb:2021-clang10.6](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2021-clang10.6) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u2 -* cpython-3.7.9 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.73.0 -* pybind11-2.6.2 -* qt-5.15.2 -* pyside-5.15.2 -* imath-2.5.5 -* ptex-2.3.2 -* openexr-2.5.5 -* ocio-2.0.1 -* oiio-2.2.14.0 -* partio-1.14.0 +* openvdb-8.0.1 * numpy-1.19 * vfxplatform-2021 ## [aswf/ci-openvdb:2022-clang10.12](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang10.12) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 -* imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 -* oiio-2.4.5.0 -* partio-1.14.0 +* openvdb-9.1.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-openvdb:2022-clang11.12](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang11.12) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 -* imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 -* oiio-2.4.5.0 -* partio-1.14.0 +* openvdb-9.1.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-openvdb:2022-clang12.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang12.3) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 -* imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 -* oiio-2.4.5.0 -* partio-1.14.0 +* openvdb-9.1.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-openvdb:2022-clang13.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang13.3) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 -* imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 -* oiio-2.4.5.0 -* partio-1.14.0 +* openvdb-9.1.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-openvdb:2022-clang14.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang14.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 -* imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 -* oiio-2.4.5.0 -* partio-1.14.0 +* openvdb-9.1.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-openvdb:2023-clang14.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2023-clang14.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* qt-5.15.9 -* pyside-5.15.9 -* imath-3.1.9 -* ptex-2.4.2 -* openexr-3.1.11 -* ocio-2.2.1 -* oiio-2.4.13.0 -* partio-1.17.1 +* openvdb-10.0.1 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-openvdb:2023-clang15.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2023-clang15.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 -* cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* qt-5.15.9 -* pyside-5.15.9 -* imath-3.1.9 -* ptex-2.4.2 -* openexr-3.1.11 -* ocio-2.2.1 -* oiio-2.4.13.0 -* partio-1.17.1 +* openvdb-10.0.1 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-openvdb:2024-clang16.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2024-clang16.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* openexr-3.2.4 -* ocio-2.3.2 -* oiio-2.5.19.0 -* partio-1.19.0 +* openvdb-11.0.0 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-openvdb:2024-clang17.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2024-clang17.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* openexr-3.2.4 -* ocio-2.3.2 -* oiio-2.5.19.0 -* partio-1.19.0 +* openvdb-11.0.0 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-openvdb:2025-clang18.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang18.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 -* oiio-3.0.8.1 -* partio-1.19.0 +* openvdb-12.0.0 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-openvdb:2025-clang19.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang19.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 -* oiio-3.0.8.1 -* partio-1.19.0 +* openvdb-12.0.0 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-openvdb:2026-clang19.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang19.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* pyside-6.8.3 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 -* oiio-3.0.8.1 -* partio-1.19.0 +* openvdb-12.0.1 * numpy-1.26.4 * vfxplatform-2026 ## [aswf/ci-openvdb:2026-clang20.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang20.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* pyside-6.8.3 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 -* oiio-3.0.8.1 -* partio-1.19.0 +* openvdb-12.0.1 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-openvdb/image.yaml b/ci-openvdb/image.yaml index 1f1cead2..3303fb8b 100644 --- a/ci-openvdb/image.yaml +++ b/ci-openvdb/image.yaml @@ -4,50 +4,7 @@ description: | Contains: Python, Boost, TBB and other OpenVDB upstream dependencies Warning: this image does *not* contain OpenVDB itself as it is used to *build* OpenVDB! packages: - - b2 # base1-1 packages - - bzip2 - - cppunit - - expat - - fmt - - gtest - - libbacktrace - - libdeflate - - libiconv - - libxcrypt - - lz4 - - pugixml - - pystring - - snappy - - onetbb - - tsl-robin-map - - yaml-cpp - - zlib - - zstd - - c-blosc # base1-2 packages - - cpython - - freetype - - gdbm - - glew - - glfw - - log4cplus - - minizip-ng - - boost # base1-3 packages - - pybind11 - - libjpeg-turbo # base2-1 packages - - libwebp - - md4c - - qt # base2-2 packages - - pyside # base2-3 packages - - highway # vfx1-1 packages - - imath - - lcms - - libultrahdr - - ptex - - libjxl # vfx1-2 packages - - openexr - - ocio # vfx1-3 packages - - oiio # vfx1-4 packages - - partio # vfx2-1 packages + - openvdb # all dependencies will be installed except openvdb itself implicit_packages: - numpy - vfxplatform diff --git a/ci-osl/Dockerfile b/ci-osl/Dockerfile index 4561678f..20eaff57 100644 --- a/ci-osl/Dockerfile +++ b/ci-osl/Dockerfile @@ -15,51 +15,18 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_HIGHWAY_VERSION +ARG ASWF_FMT_VERSION ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION ARG ASWF_OIIO_VERSION -ARG ASWF_OPENVDB_VERSION ARG ASWF_PARTIO_VERSION +ARG ASWF_PUGIXML_VERSION +ARG ASWF_PYBIND11_VERSION +ARG ASWF_QT_VERSION +ARG ASWF_TSL_ROBIN_MAP_VERSION +ARG ASWF_ZLIB_VERSION +ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -80,51 +47,18 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GDBM_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_HIGHWAY_VERSION +ARG ASWF_FMT_VERSION ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OCIO_VERSION ARG ASWF_OIIO_VERSION -ARG ASWF_OPENVDB_VERSION ARG ASWF_PARTIO_VERSION +ARG ASWF_PUGIXML_VERSION +ARG ASWF_PYBIND11_VERSION +ARG ASWF_QT_VERSION +ARG ASWF_TSL_ROBIN_MAP_VERSION +ARG ASWF_ZLIB_VERSION +ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -143,51 +77,18 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.b2="$ASWF_B2_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" -LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.libiconv="$ASWF_LIBICONV_VERSION" -LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" -LABEL io.aswf.docker.versions.pystring="$ASWF_PYSTRING_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" -LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" -LABEL io.aswf.docker.versions.gdbm="$ASWF_GDBM_VERSION" -LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.minizip-ng="$ASWF_MINIZIP_NG_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" -LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" -LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" +LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" -LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" -LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" -LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" -LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" -LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" +LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" +LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" +LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" +LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" +LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" +LABEL io.aswf.docker.versions.cuda="$ASWF_CUDA_VERSION" +LABEL io.aswf.docker.versions.optix="$ASWF_OPTIX_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -202,51 +103,18 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_B2_VERSION=$ASWF_B2_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION -ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_LIBICONV_VERSION=$ASWF_LIBICONV_VERSION -ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION -ENV ASWF_PYSTRING_VERSION=$ASWF_PYSTRING_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION -ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION -ENV ASWF_GDBM_VERSION=$ASWF_GDBM_VERSION -ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_MINIZIP_NG_VERSION=$ASWF_MINIZIP_NG_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_QT_VERSION=$ASWF_QT_VERSION -ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION -ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION +ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION -ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION -ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION -ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION -ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION -ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION +ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION +ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION +ENV ASWF_QT_VERSION=$ASWF_QT_VERSION +ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION +ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION +ENV ASWF_CUDA_VERSION=$ASWF_CUDA_VERSION +ENV ASWF_OPTIX_VERSION=$ASWF_OPTIX_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -266,51 +134,16 @@ COPY < . [requires] -b2/${ASWF_B2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pystring/${ASWF_PYSTRING_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gdbm/${ASWF_GDBM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -318,6 +151,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} osl diff --git a/ci-osl/README.md b/ci-osl/README.md index 0b01a0de..07a48a67 100644 --- a/ci-osl/README.md +++ b/ci-osl/README.md @@ -21,636 +21,312 @@ Warning: this image does *not* contain OpenShadingLanguage itself as it is used ## [aswf/ci-osl:2019-clang6.5](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2019-clang6.5) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 * cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 * imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 * oiio-2.0.8 -* openvdb-6.2.1 * partio-1.10.1 +* pybind11-2.4.3 +* qt-5.12.6 +* cuda-10.2 +* optix-7.1.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-osl:2019-clang7.5](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2019-clang7.5) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 * cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 * imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 * oiio-2.0.8 -* openvdb-6.2.1 * partio-1.10.1 +* pybind11-2.4.3 +* qt-5.12.6 +* cuda-10.2 +* optix-7.1.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-osl:2019-clang8.5](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2019-clang8.5) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 * cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 * imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 * oiio-2.0.8 -* openvdb-6.2.1 * partio-1.10.1 +* pybind11-2.4.3 +* qt-5.12.6 +* cuda-10.2 +* optix-7.1.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-osl:2019-clang9.5](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2019-clang9.5) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 * cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 * imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 * oiio-2.0.8 -* openvdb-6.2.1 * partio-1.10.1 +* pybind11-2.4.3 +* qt-5.12.6 +* cuda-10.2 +* optix-7.1.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-osl:2019-clang10.5](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2019-clang10.5) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 * cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 * imath-2.3.0 -* ptex-2.1.33 -* openexr-2.3.0 -* ocio-1.1.0 * oiio-2.0.8 -* openvdb-6.2.1 * partio-1.10.1 +* pybind11-2.4.3 +* qt-5.12.6 +* cuda-10.2 +* optix-7.1.0 * numpy-1.14 * vfxplatform-2019 ## [aswf/ci-osl:2020-clang7.5](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2020-clang7.5) Contains: -* cppunit-1.15.1 -* gtest-1.10.0 -* onetbb-2019_u6 * cpython-3.7.3 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.70.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 * imath-2.4.0 -* ptex-2.3.2 -* openexr-2.4.0 -* ocio-1.1.1 * oiio-2.1.13.0 -* openvdb-7.1.0 * partio-1.10.1 +* pybind11-2.4.3 +* qt-5.12.6 +* cuda-10.2 +* optix-7.1.0 * numpy-1.16 * vfxplatform-2020 ## [aswf/ci-osl:2021-clang10.7](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2021-clang10.7) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u2 * cpython-3.7.9 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.73.0 -* pybind11-2.6.2 -* qt-5.15.2 -* pyside-5.15.2 * imath-2.5.5 -* ptex-2.3.2 -* openexr-2.5.5 -* ocio-2.0.1 * oiio-2.2.14.0 -* openvdb-8.0.1 * partio-1.14.0 +* pybind11-2.6.2 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.19 * vfxplatform-2021 ## [aswf/ci-osl:2021-clang11.7](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2021-clang11.7) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u2 * cpython-3.7.9 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.73.0 -* pybind11-2.6.2 -* qt-5.15.2 -* pyside-5.15.2 * imath-2.5.5 -* ptex-2.3.2 -* openexr-2.5.5 -* ocio-2.0.1 * oiio-2.2.14.0 -* openvdb-8.0.1 * partio-1.14.0 +* pybind11-2.6.2 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.19 * vfxplatform-2021 ## [aswf/ci-osl:2022-clang10.11](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang10.11) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 * imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 * oiio-2.4.5.0 -* openvdb-9.1.0 * partio-1.14.0 +* pybind11-2.8.1 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-osl:2022-clang11.11](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang11.11) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 * imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 * oiio-2.4.5.0 -* openvdb-9.1.0 * partio-1.14.0 +* pybind11-2.8.1 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-osl:2022-clang12.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang12.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 * imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 * oiio-2.4.5.0 -* openvdb-9.1.0 * partio-1.14.0 +* pybind11-2.8.1 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-osl:2022-clang13.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang13.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 * imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 * oiio-2.4.5.0 -* openvdb-9.1.0 * partio-1.14.0 +* pybind11-2.8.1 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-osl:2022-clang14.1](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang14.1) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 * imath-3.1.5 -* ptex-2.4.0 -* openexr-3.1.5 -* ocio-2.1.1 * oiio-2.4.5.0 -* openvdb-9.1.0 * partio-1.14.0 +* pybind11-2.8.1 +* qt-5.15.2 +* cuda-11.4.0 +* optix-7.2.0 * numpy-1.20 * vfxplatform-2022 ## [aswf/ci-osl:2023-clang14.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2023-clang14.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* qt-5.15.9 -* pyside-5.15.9 * imath-3.1.9 -* ptex-2.4.2 -* openexr-3.1.11 -* ocio-2.2.1 * oiio-2.4.13.0 -* openvdb-10.0.1 * partio-1.17.1 +* pybind11-2.9.2 +* qt-5.15.9 +* cuda-11.8.0 +* optix-7.7.0 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-osl:2023-clang15.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2023-clang15.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u3 * cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* qt-5.15.9 -* pyside-5.15.9 * imath-3.1.9 -* ptex-2.4.2 -* openexr-3.1.11 -* ocio-2.2.1 * oiio-2.4.13.0 -* openvdb-10.0.1 * partio-1.17.1 +* pybind11-2.9.2 +* qt-5.15.9 +* cuda-11.8.0 +* optix-7.7.0 * numpy-1.23.5 * vfxplatform-2023 ## [aswf/ci-osl:2024-clang16.3](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2024-clang16.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 * cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 +* fmt-11.1.4 * imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* openexr-3.2.4 -* ocio-2.3.2 * oiio-2.5.19.0 -* openvdb-11.0.0 * partio-1.19.0 +* pugixml-1.14 +* pybind11-2.13.6 +* qt-6.5.6 +* zlib-1.3.1 +* cuda-12.6.3 +* optix-8.0.0 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-osl:2024-clang17.3](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2024-clang17.3) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 * cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 +* fmt-11.1.4 * imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* openexr-3.2.4 -* ocio-2.3.2 * oiio-2.5.19.0 -* openvdb-11.0.0 * partio-1.19.0 +* pugixml-1.14 +* pybind11-2.13.6 +* qt-6.5.6 +* zlib-1.3.1 +* cuda-12.6.3 +* optix-8.0.0 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-osl:2025-clang18.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2025-clang18.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 * cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 +* fmt-11.1.4 * imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 * oiio-3.0.8.1 -* openvdb-12.0.0 * partio-1.19.0 +* pugixml-1.14 +* pybind11-2.13.6 +* qt-6.5.6 +* zlib-1.3.1 +* cuda-12.6.3 +* optix-8.0.0 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-osl:2025-clang19.2](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2025-clang19.2) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.1.4 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 * cpython-3.11.13 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 +* fmt-11.1.4 * imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 * oiio-3.0.8.1 -* openvdb-12.0.0 * partio-1.19.0 +* pugixml-1.14 +* pybind11-2.13.6 +* qt-6.5.6 +* zlib-1.3.1 +* cuda-12.6.3 +* optix-8.0.0 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-osl:2026-clang19.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2026-clang19.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 * cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* pyside-6.8.3 -* highway-1.2.0 +* fmt-11.2.0 * imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 * oiio-3.0.8.1 -* openvdb-12.0.1 * partio-1.19.0 +* pugixml-1.15 +* pybind11-2.13.6 +* qt-6.8.3 +* zlib-1.3.1 +* cuda-12.9.1 +* optix-8.0.0 * numpy-1.26.4 * vfxplatform-2026 ## [aswf/ci-osl:2026-clang20.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2026-clang20.0) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 * cpython-3.13.3 -* freetype-2.13.2 -* gdbm-system -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* pyside-6.8.3 -* highway-1.2.0 +* fmt-11.2.0 * imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.5 -* ocio-2.4.2 * oiio-3.0.8.1 -* openvdb-12.0.1 * partio-1.19.0 +* pugixml-1.15 +* pybind11-2.13.6 +* qt-6.8.3 +* zlib-1.3.1 +* cuda-12.9.1 +* optix-8.0.0 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-osl/image.yaml b/ci-osl/image.yaml index d92ca711..039ebfdb 100644 --- a/ci-osl/image.yaml +++ b/ci-osl/image.yaml @@ -4,52 +4,19 @@ description: | Contains: Python, Boost, Qt, OpenEXR, OpenImageIO, Partio and other OpenShadingLanguage upstream dependencies Warning: this image does *not* contain OpenShadingLanguage itself as it is used to *build* OpenShadingLanguage! packages: - - b2 # base1-1 packages - - bzip2 - - cppunit - - expat + - cpython - fmt - - gtest - - libbacktrace - - libdeflate - - libiconv - - libxcrypt - - lz4 + - imath + - oiio + - partio - pugixml - - pystring - - snappy - - onetbb + - pybind11 + - qt - tsl-robin-map - - yaml-cpp - zlib - - zstd - - c-blosc # base1-2 packages - - cpython - - freetype - - gdbm - - glew - - glfw - - log4cplus - - minizip-ng - - boost # base1-3 packages - - pybind11 - - libjpeg-turbo # base2-1 packages - - libwebp - - md4c - - qt # base2-2 packages - - pyside # base2-3 packages - - highway # vfx1-1 packages - - imath - - lcms - - libultrahdr - - ptex - - libjxl # vfx1-2 packages - - openexr - - ocio # vfx1-3 packages - - oiio # vfx1-4 packages - - openvdb # vfx1 non Conan packages - - partio # vfx2-1 packages implicit_packages: + - cuda + - optix - numpy - vfxplatform docker_from: ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} diff --git a/ci-otio/Dockerfile b/ci-otio/Dockerfile index c8bea7a7..6564e516 100644 --- a/ci-otio/Dockerfile +++ b/ci-otio/Dockerfile @@ -263,7 +263,7 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} otio RUN sudo pip3 install flake8 tox urllib3 diff --git a/ci-rawtoaces/Dockerfile b/ci-rawtoaces/Dockerfile index 9110306d..5a28c15f 100644 --- a/ci-rawtoaces/Dockerfile +++ b/ci-rawtoaces/Dockerfile @@ -15,19 +15,7 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_CERES_SOLVER_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LIBRAW_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_EIGEN_VERSION -ARG ASWF_JASPER_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBPNG_VERSION -ARG ASWF_LIBTIFF_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_NLOHMANN_JSON_VERSION -ARG ASWF_ACES_CONTAINER_VERSION +ARG ASWF_RAWTOACES_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -48,19 +36,7 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_BOOST_VERSION -ARG ASWF_CERES_SOLVER_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LIBRAW_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_EIGEN_VERSION -ARG ASWF_JASPER_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBPNG_VERSION -ARG ASWF_LIBTIFF_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_NLOHMANN_JSON_VERSION -ARG ASWF_ACES_CONTAINER_VERSION +ARG ASWF_RAWTOACES_VERSION ARG ASWF_NUMPY_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -79,19 +55,7 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.ceres-solver="$ASWF_CERES_SOLVER_VERSION" -LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" -LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" -LABEL io.aswf.docker.versions.eigen="$ASWF_EIGEN_VERSION" -LABEL io.aswf.docker.versions.jasper="$ASWF_JASPER_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libpng="$ASWF_LIBPNG_VERSION" -LABEL io.aswf.docker.versions.libtiff="$ASWF_LIBTIFF_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.nlohmann_json="$ASWF_NLOHMANN_JSON_VERSION" -LABEL io.aswf.docker.versions.aces_container="$ASWF_ACES_CONTAINER_VERSION" +LABEL io.aswf.docker.versions.rawtoaces="$ASWF_RAWTOACES_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -106,19 +70,7 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_CERES_SOLVER_VERSION=$ASWF_CERES_SOLVER_VERSION -ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION -ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION -ENV ASWF_EIGEN_VERSION=$ASWF_EIGEN_VERSION -ENV ASWF_JASPER_VERSION=$ASWF_JASPER_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBPNG_VERSION=$ASWF_LIBPNG_VERSION -ENV ASWF_LIBTIFF_VERSION=$ASWF_LIBTIFF_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_NLOHMANN_JSON_VERSION=$ASWF_NLOHMANN_JSON_VERSION -ENV ASWF_ACES_CONTAINER_VERSION=$ASWF_ACES_CONTAINER_VERSION +ENV ASWF_RAWTOACES_VERSION=$ASWF_RAWTOACES_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -138,19 +90,7 @@ COPY < . [requires] -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ceres-solver/${ASWF_CERES_SOLVER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -eigen/${ASWF_EIGEN_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -jasper/${ASWF_JASPER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libpng/${ASWF_LIBPNG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libtiff/${ASWF_LIBTIFF_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -nlohmann_json/${ASWF_NLOHMANN_JSON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -aces_container/${ASWF_ACES_CONTAINER_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +rawtoaces/${ASWF_RAWTOACES_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -158,6 +98,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} rawtoaces diff --git a/ci-rawtoaces/README.md b/ci-rawtoaces/README.md index b132139c..da6db208 100644 --- a/ci-rawtoaces/README.md +++ b/ci-rawtoaces/README.md @@ -21,51 +21,21 @@ Warning: this image does *not* contain rawtoaces itself as it is used to *build* ## [aswf/ci-rawtoaces:2024.3](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2024.3) Contains: -* boost-1.82.0 -* imath-3.1.12 -* libraw-0.21.4 -* oiio-2.5.19.0 -* eigen-3.4.0 -* jasper-4.2.5 -* libpng-1.6.34 -* libtiff-4.0.9 -* libwebp-1.5.0 -* nlohmann_json-3.12.0 -* aces_container-1.0.2 +* rawtoaces-vfx2026.0 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-rawtoaces:2025.2](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2025.2) Contains: -* boost-1.85.0 -* imath-3.1.12 -* libraw-0.21.4 -* oiio-3.0.8.1 -* eigen-3.4.0 -* jasper-4.2.5 -* libpng-1.6.34 -* libtiff-4.0.9 -* libwebp-1.5.0 -* nlohmann_json-3.12.0 -* aces_container-1.0.2 +* rawtoaces-vfx2026.0 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-rawtoaces:2026.0](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2026.0) Contains: -* boost-1.88.0 -* imath-3.1.12 -* libraw-0.21.4 -* oiio-3.0.8.1 -* eigen-3.4.0 -* jasper-4.2.5 -* libpng-1.6.37 -* libtiff-4.4.0 -* libwebp-1.5.0 -* nlohmann_json-3.12.0 -* aces_container-1.0.2 +* rawtoaces-vfx2026.0 * numpy-1.26.4 * vfxplatform-2026 diff --git a/ci-rawtoaces/image.yaml b/ci-rawtoaces/image.yaml index d26a5687..d4d0704e 100644 --- a/ci-rawtoaces/image.yaml +++ b/ci-rawtoaces/image.yaml @@ -4,19 +4,7 @@ description: | Contains: Python and other rawtoaces upstream dependencies Warning: this image does *not* contain rawtoaces itself as it is used to *build* rawtoaces! packages: - - boost - - ceres-solver - - imath - - libraw - - oiio - - eigen - - jasper - - libjpeg-turbo - - libpng - - libtiff - - libwebp - - nlohmann_json - - aces_container + - rawtoaces # all dependencies will be installed except rawtoaces itself implicit_packages: - numpy - vfxplatform diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile index d6d9d837..1ca58993 100644 --- a/ci-usd/Dockerfile +++ b/ci-usd/Dockerfile @@ -327,7 +327,7 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} usd RUN sudo pip3 install jinja2 PyOpenGL diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index 22753bf6..dc1b78ea 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -372,6 +372,6 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} vfxall diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index a3493195..42b0cd9c 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -563,7 +563,7 @@ Contains: * ptex-2.4.3 * openvdb-12.0.0 * materialx-1.39.3 -* usd-25.05 +* usd-25.05.01 * partio-1.19.0 * osl-1.14.6.0 * otio-0.17.0 @@ -620,7 +620,7 @@ Contains: * ptex-2.4.3 * openvdb-12.0.0 * materialx-1.39.3 -* usd-25.05 +* usd-25.05.01 * partio-1.19.0 * osl-1.14.6.0 * otio-0.17.0 diff --git a/packages/common/Dockerfile b/packages/common/Dockerfile index 4ce39f1b..e11a1bcb 100644 --- a/packages/common/Dockerfile +++ b/packages/common/Dockerfile @@ -12,6 +12,7 @@ ARG ASWF_CONAN_PYTHON_VERSION ARG CI_COMMON_VERSION ARG ASWF_CLANG_VERSION ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_DTS_VERSION ARG ASWF_DTS_PREFIX ARG ASWF_NINJA_VERSION @@ -26,6 +27,8 @@ ARG CI_COMMON_VERSION ENV CI_COMMON_VERSION=${CI_COMMON_VERSION} ARG ASWF_CUDA_VERSION ENV ASWF_CUDA_VERSION=${ASWF_CUDA_VERSION} +ARG ASWF_OPTIX_VERSION +ENV ASWF_OPTIX_VERSION=${ASWF_OPTIX_VERSION} ARG ASWF_GLVND_VERSION ENV ASWF_GLVND_VERSION=${ASWF_GLVND_VERSION} ARG ASWF_DTS_VERSION @@ -77,7 +80,7 @@ COPY ../scripts/common/install_dev_ccache.sh \ ENV DOWNLOADS_DIR=/tmp/downloads \ CCACHE_DIR=/tmp/ccache \ ASWF_INSTALL_PREFIX=/usr/local \ - LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ + LD_LIBRARY_PATH=/usr/local/lib:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/lib:${LD_LIBRARY_PATH} \ PATH=/opt/aswfbuilder/bin:/usr/local/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr/bin/:/usr/local/sbin:/usr/sbin:/usr/bin:/sbin:/bin RUN --mount=type=cache,sharing=private,target=/tmp/downloads \ @@ -115,6 +118,10 @@ ARG ASWF_CONAN_PYTHON_VERSION ARG ASWF_CONAN_BUILD_MISSING ARG ASWF_CONAN_NO_REMOTE ARG ASWF_CONAN_PUSH +ARG ASWF_CUDA_VERSION +ENV ASWF_CUDA_VERSION=${ASWF_CUDA_VERSION} +ARG ASWF_OPTIX_VERSION +ENV ASWF_OPTIX_VERSION=${ASWF_OPTIX_VERSION} ARG ASWF_DTS_VERSION ENV ASWF_DTS_VERSION=${ASWF_DTS_VERSION} ARG ASWF_DTS_PREFIX diff --git a/packages/conan/recipes/aces_container/conanfile.py b/packages/conan/recipes/aces_container/conanfile.py index 06ca78ed..4222f1d7 100644 --- a/packages/conan/recipes/aces_container/conanfile.py +++ b/packages/conan/recipes/aces_container/conanfile.py @@ -51,7 +51,6 @@ def source(self): def generate(self): tc = CMakeToolchain(self) - tc.variables["INSTALL_LIB_DIR"] = "lib4" tc.variables["INSTALL_CMAKE_DIR"] = os.path.join("lib", "cmake", "AcesContainer") tc.generate() deps = CMakeDeps(self) diff --git a/packages/conan/recipes/materialx/conanfile.py b/packages/conan/recipes/materialx/conanfile.py index b6dd5c97..32b98f96 100644 --- a/packages/conan/recipes/materialx/conanfile.py +++ b/packages/conan/recipes/materialx/conanfile.py @@ -101,7 +101,7 @@ def generate(self): tc.variables["MATERIALX_BUILD_TESTS"] = False tc.variables["MATERIALX_TEST_RENDER"] = False tc.variables["MATERIALX_BUILD_PYTHON"] = "ON" - tc.variables["MATERIALX_PYTHON_VERSION"] = self.dependencies["cpython"].version + tc.variables["MATERIALX_PYTHON_VERSION"] = self.dependencies["cpython"].ref.version tc.variables["MATERIALX_BUILD_SHARED_LIBS"] = self.options.shared tc.variables["MATERIALX_BUILD_GEN_MSL"] = self.options.build_gen_msl and is_apple_os tc.variables["MATERIALX_INSTALL_STDLIB_PATH"] = os.path.join("share","MaterialX") # ASWF: otherwise end up in python diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 37377b63..d5591140 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -11,6 +11,7 @@ alembic/*: alembic/1.8.8@aswf/vfx2024 boost/*: boost/1.82.0@aswf/vfx2024 brotli/*: brotli/system@aswf/vfx2024 bzip2/*: bzip2/1.0.8@aswf/vfx2024 +c-blosc/*: c-blosc/1.21.6@aswf/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2024 cpython/*: cpython/3.11.13@aswf/vfx2024 dbus/*: dbus/system@aswf/vfx2024 @@ -73,6 +74,7 @@ pcre2/*: pcre2/system@aswf/vfx2024 ptex/*: ptex/2.4.2@aswf/vfx2024 pugixml/*: pugixml/1.14@aswf/vfx2024 pulseaudio/*: pulseaudio/system@aswf/vfx2024 +pybind11/*: pybind11/2.13.6@aswf/vfx2024 pystring/*: pystring/1.1.4@aswf/vfx2024 snappy/*: snappy/1.1.10@aswf/vfx2024 sqlite3/*: sqlite3/system@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 58f4fd13..186d09e2 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -11,6 +11,7 @@ alembic/*: alembic/1.8.8@aswf/vfx2025 boost/*: boost/1.85.0@aswf/vfx2025 brotli/*: brotli/system@aswf/vfx2025 bzip2/*: bzip2/1.0.8@aswf/vfx2025 +c-blosc/*: c-blosc/1.21.6@aswf/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2025 cpython/*: cpython/3.11.13@aswf/vfx2025 dbus/*: dbus/system@aswf/vfx2025 @@ -74,6 +75,7 @@ pcre2/*: pcre2/system@aswf/vfx2025 ptex/*: ptex/2.4.3@aswf/vfx2025 pugixml/*: pugixml/1.14@aswf/vfx2025 pulseaudio/*: pulseaudio/system@aswr/vfx2025 +pybind11/*: pybind11/2.13.6@aswf/vfx2025 pystring/*: pystring/1.1.4@aswf/vfx2025 snappy/*: snappy/1.1.10@aswf/vfx2025 sqlite3/*: sqlite3/system@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index 2a76472b..edc9fab9 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -13,6 +13,7 @@ alembic/*: alembic/1.8.8@aswf/vfx2026 boost/*: boost/1.88.0@aswf/vfx2026 brotli/*: brotli/system@aswf/vfx2026 bzip2/*: bzip2/1.0.8@aswf/vfx2026 +c-blosc/*: c-blosc/1.21.6@aswf/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2026 cpython/*: cpython/3.13.3@aswf/vfx2026 dbus/*: dbus/system@aswf/vfx2026 @@ -75,7 +76,8 @@ opus/*: opus/system@aswf/vfx2026 pcre2/*: pcre2/system@aswf/vfx2026 ptex/*: ptex/2.4.3@aswf/vfx2026 pugixml/*: pugixml/1.15@aswf/vfx2026 -pulseaudio/*: pulseaudio/system@aswr/vfx2026 +pulseaudio/*: pulseaudio/system@aswf/vfx2026 +pybind11/*: pybind11/2.13.6@aswf/vfx2026 pystring/*: pystring/1.1.4@aswf/vfx2026 qt/*: qt/6.8.3@aswf/vfx2026 snappy/*: snappy/1.2.2@aswf/vfx2026 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 91263a2c..512566f8 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -11,6 +11,7 @@ alembic/*: alembic/1.8.8@aswftesting/vfx2024 boost/*: boost/1.82.0@aswftesting/vfx2024 brotli/*: brotli/system@aswftesting/vfx2024 bzip2/*: bzip2/1.0.8@aswftesting/vfx2024 +c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2024 dbus/*: dbus/system@aswftesting/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2024 cpython/*: cpython/3.11.13@aswftesting/vfx2024 @@ -73,6 +74,7 @@ pcre2/*: pcre2/system@aswftesting/vfx2024 ptex/*: ptex/2.4.2@aswftesting/vfx2024 pugixml/*: pugixml/1.14@aswftesting/vfx2024 pulseaudio/*: pulseaudio/system@aswftesting/vfx2024 +pybind11/*: pybind11/2.13.6@aswftesting/vfx2024 pystring/*: pystring/1.1.4@aswftesting/vfx2024 snappy/*: snappy/1.1.10@aswftesting/vfx2024 sqlite3/*: sqlite3/system@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index d8146399..7eb0b03e 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -11,6 +11,7 @@ alembic/*: alembic/1.8.8@aswftesting/vfx2025 boost/*: boost/1.85.0@aswftesting/vfx2025 brotli/*: brotli/system@aswftesting/vfx2025 bzip2/*: bzip2/1.0.8@aswftesting/vfx2025 +c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2025 cpython/*: cpython/3.11.13@aswftesting/vfx2025 dbus/*: dbus/system@aswftesting/vfx2025 @@ -74,6 +75,7 @@ pcre2/*: pcre2/system@aswftesting/vfx2025 ptex/*: ptex/2.4.3@aswftesting/vfx2025 pugixml/*: pugixml/1.14@aswftesting/vfx2025 pulseaudio/*: pulseaudio/system@aswftesting/vfx2025 +pybind11/*: pybind11/2.13.6@aswftesting/vfx2025 pystring/*: pystring/1.1.4@aswftesting/vfx2025 snappy/*: snappy/1.1.10@aswftesting/vfx2025 sqlite3/*: sqlite3/system@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 129c122e..4c757cbf 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -13,6 +13,7 @@ alembic/*: alembic/1.8.8@aswftesting/vfx2026 boost/*: boost/1.88.0@aswftesting/vfx2026 brotli/*: brotli/system@aswftesting/vfx2026 bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 +c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2026 cpython/*: cpython/3.13.3@aswftesting/vfx2026 dbus/*: dbus/system@aswftesting/vfx2026 @@ -76,6 +77,7 @@ pcre2/*: pcre2/system@aswftesting/vfx2026 ptex/*: ptex/2.4.3@aswftesting/vfx2026 pugixml/*: pugixml/1.15@aswftesting/vfx2026 pulseaudio/*: pulseaudio/system@aswr/vfx2026 +pybind11/*: pybind11/2.13.6@aswftesting/vfx2026 pystring/*: pystring/1.1.4@aswftesting/vfx2026 qt/*: qt/6.8.3@aswftesting/vfx2026 snappy/*: snappy/1.2.2@aswftesting/vfx2026 diff --git a/packages/vfx2/Dockerfile b/packages/vfx2/Dockerfile index e8fdc8bc..0402034e 100644 --- a/packages/vfx2/Dockerfile +++ b/packages/vfx2/Dockerfile @@ -6,6 +6,8 @@ ARG ASWF_ORG ARG CI_COMMON_VERSION ARG ASWF_CLANG_MAJOR_VERSION +ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_PYSIDE_CLANG_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -49,14 +51,11 @@ ARG ASWF_PYSIDE_VERSION ARG ASWF_QT_VERSION ARG ASWF_USD_VERSION -# Required base packages built in previous stages - -FROM ${ASWF_ORG}/ci-package-openvdb:${ASWF_VFXPLATFORM_VERSION}-${ASWF_OPENVDB_VERSION} AS ci-package-openvdb-external - - #################### ci-base-builder #################### FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-base-builder +ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION ARG ASWF_CMAKE_VERSION ARG ASWF_CPYTHON_VERSION ARG ASWF_PYTHON_MAJOR_MINOR_VERSION @@ -90,7 +89,7 @@ EOF RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} vfx2 COPY ../scripts/common/before_build.sh \ ../scripts/common/copy_new_files.sh \ @@ -169,8 +168,6 @@ ENV ASWF_TSL_ROBIN_MAP_VERSION=${ASWF_TSL_ROBIN_MAP_VERSION} ARG ASWF_YAML_CPP_VERSION ENV ASWF_YAML_CPP_VERSION=${ASWF_YAML_CPP_VERSION} -COPY --from=ci-package-openvdb-external /. /usr/local/ - COPY ../scripts/vfx/build_osl.sh \ /tmp/ @@ -189,6 +186,7 @@ pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} @@ -211,7 +209,7 @@ EOF RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} osl RUN --mount=type=cache,target=/tmp/ccache \ --mount=type=cache,sharing=private,target=/tmp/downloads \ @@ -275,6 +273,7 @@ ARG ASWF_PARTIO_VERSION ARG ASWF_PTEX_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION +ARG ASWF_OPENVDB_VERSION ENV CI_COMMON_VERSION=${CI_COMMON_VERSION} ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} @@ -298,9 +297,7 @@ ENV ASWF_PARTIO_VERSION=${ASWF_PARTIO_VERSION} ENV ASWF_PTEX_VERSION=${ASWF_PTEX_VERSION} ENV ASWF_OIIO_VERSION=${ASWF_OIIO_VERSION} ENV ASWF_OCIO_VERSION=${ASWF_OCIO_VERSION} - - -COPY --from=ci-package-openvdb-external /. /usr/local/ +ENV ASWF_OPENVDB_VERSION=${ASWF_OPENVDB_VERSION} COPY ../scripts/vfx/build_usd.sh \ /tmp/ @@ -326,11 +323,12 @@ openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} usd RUN --mount=type=cache,target=/tmp/ccache \ --mount=type=cache,sharing=private,target=/tmp/downloads \ @@ -404,6 +402,10 @@ EOF COPY ../scripts/vfx/build_otio.sh \ /tmp/ +RUN --mount=type=cache,target=/opt/conan_home/d \ + --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} otio + RUN --mount=type=cache,target=/tmp/ccache \ --mount=type=cache,sharing=private,target=/tmp/downloads \ /tmp/before_build.sh && \ diff --git a/python/aswfdocker/data/ci-image-dockerfile.jinja2 b/python/aswfdocker/data/ci-image-dockerfile.jinja2 index 409cd28d..a7f40017 100644 --- a/python/aswfdocker/data/ci-image-dockerfile.jinja2 +++ b/python/aswfdocker/data/ci-image-dockerfile.jinja2 @@ -153,11 +153,11 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 {% if name != "common" %} RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} + /tmp/install_conanpackages.sh /usr/local vfx${ASWF_VFXPLATFORM_VERSION} {{ name }} {% else %} RUN --mount=type=cache,target=/opt/conan_home/d \ --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local ci_common${CI_COMMON_VERSION} + /tmp/install_conanpackages.sh /usr/local ci_common${CI_COMMON_VERSION} {{ name }} {% endif %} {{ docker_post_commands }} diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 9276c641..d7e6ef13 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -12,6 +12,7 @@ versions: ASWF_DTS_VERSION: "6" ASWF_DTS_PREFIX: "devtoolset" ASWF_CUDA_VERSION: "10.2" + ASWF_OPTIX_VERSION: "7.1.0" ASWF_GLVND_VERSION: "1.2.0" ASWF_CCACHE_VERSION: "4.0" ASWF_CONAN_VERSION: "1.47.0" @@ -66,6 +67,7 @@ versions: ASWF_CONAN_VERSION: "1.47.0" ASWF_CONAN_PYTHON_VERSION: "3.9.11" ASWF_CUDA_VERSION: "11.4.0" + ASWF_OPTIX_VERSION: "7.2.0" ASWF_GLVND_VERSION: "1.2.0" ASWF_CCACHE_VERSION: "4.0" ASWF_NINJA_VERSION: "1.11.0" @@ -118,6 +120,7 @@ versions: ASWF_CONAN_VERSION: "1.58.0" ASWF_CONAN_PYTHON_VERSION: "3.10.11" ASWF_CUDA_VERSION: "11.8.0" + ASWF_OPTIX_VERSION: "7.7.0" ASWF_GLVND_VERSION: "1.6.0" ASWF_CCACHE_VERSION: "4.7.4" ASWF_NINJA_VERSION: "1.11.1" @@ -149,6 +152,7 @@ versions: ASWF_CONAN_VERSION: "2.18.1" ASWF_CONAN_PYTHON_VERSION: "3.11.11" ASWF_CUDA_VERSION: "12.6.3" + ASWF_OPTIX_VERSION: "8.0.0" ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.9.1" ASWF_CMAKE_VERSION: "3.31.7" @@ -184,6 +188,7 @@ versions: ASWF_CONAN_VERSION: "2.18.1" ASWF_CONAN_PYTHON_VERSION: "3.11.11" ASWF_CUDA_VERSION: "12.6.3" + ASWF_OPTIX_VERSION: "8.0.0" ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.9.1" ASWF_CMAKE_VERSION: "3.31.7" @@ -220,6 +225,7 @@ versions: ASWF_CONAN_VERSION: "2.18.1" ASWF_CONAN_PYTHON_VERSION: "3.13.3" ASWF_CUDA_VERSION: "12.9.1" + ASWF_OPTIX_VERSION: "8.0.0" ASWF_GLVND_VERSION: "1.7.0" ASWF_CCACHE_VERSION: "4.11.3" ASWF_CMAKE_VERSION: "4.0.2" @@ -719,7 +725,7 @@ versions: ASWF_PYSTRING_VERSION: "1.1.4" ASWF_SNAPPY_VERSION: "1.1.10" ASWF_TSL_ROBIN_MAP_VERSION: "1.3.0" - ASWF_USD_VERSION: "25.05" + ASWF_USD_VERSION: "25.05.01" ASWF_YAML_CPP_VERSION: "0.8.0" ASWF_ZLIB_VERSION: "1.3.1" ASWF_ZSTD_VERSION: "1.5.6" diff --git a/python/aswfdocker/tests/test_builder.py b/python/aswfdocker/tests/test_builder.py index c25602d1..a666cf52 100644 --- a/python/aswfdocker/tests/test_builder.py +++ b/python/aswfdocker/tests/test_builder.py @@ -169,6 +169,7 @@ def test_image_base_2019clang_dict(self): "ASWF_OPENEXR_VERSION": "2.3.0", "ASWF_OPENSUBDIV_VERSION": "3_3_3", "ASWF_OPENVDB_VERSION": "6.2.1", + "ASWF_OPTIX_VERSION": "7.1.0", "ASWF_ORG": "aswflocaltesting", "ASWF_OSL_VERSION": "1.10.9", "ASWF_OTIO_VERSION": "0.12.1", @@ -262,6 +263,7 @@ def test_image_base_2019_2020_dict(self): "ASWF_OPENEXR_VERSION": "2.4.0", "ASWF_OPENSUBDIV_VERSION": "3_4_3", "ASWF_OPENVDB_VERSION": "7.1.0", + "ASWF_OPTIX_VERSION": "7.1.0", "ASWF_ORG": "aswflocaltesting", "ASWF_OSL_VERSION": "1.10.10", "ASWF_OTIO_VERSION": "0.12.1", @@ -331,6 +333,7 @@ def test_image_base_2019_2020_dict(self): "ASWF_OPENEXR_VERSION": "2.3.0", "ASWF_OPENSUBDIV_VERSION": "3_3_3", "ASWF_OPENVDB_VERSION": "6.2.1", + "ASWF_OPTIX_VERSION": "7.1.0", "ASWF_ORG": "aswflocaltesting", "ASWF_OSL_VERSION": "1.10.9", "ASWF_OTIO_VERSION": "0.12.1", diff --git a/scripts/common/install_conanpackages.sh b/scripts/common/install_conanpackages.sh index 1c6b1fa2..71f20bb1 100755 --- a/scripts/common/install_conanpackages.sh +++ b/scripts/common/install_conanpackages.sh @@ -2,17 +2,15 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: Apache-2.0 -# Starting with VFX Platform 2023, Conan packages need to be installed by -# reference to call the deploy() method, which is used for post processing -# of hard coded installation paths. - # Call with: # -# install_conanpackages.sh install_dir default_profile +# install_conanpackages.sh install_dir default_profile exclude_package # # where: # install_dir: location where Conan packages will installed # default_profile: the Conan profile for the year, either ci_commonx or vfx20xx +# exclude_package: a package to exclude from the install, e.g. oiio if building the ci-oiio image +# (but where we want all the dependencies to build oiio) set -ex @@ -36,22 +34,53 @@ else for CONANREF in $(awk 'NR == 1, /\[requires\]/ { next } /^[^#]/ { print }' conanfile.txt) do CONANPACKAGE=$(echo $CONANREF | cut -d\/ -f1) - conan install --requires=$CONANREF --profile:all=${ASWF_CONAN_HOME}/.conan2/profiles_${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} --deployer-folder $1 --deployer=direct_deploy - # The direct_deploy generator just copies over generated CMake files which may contain absolute paths pointing inside the Conan cache - # in the format: - # /opt/conan_home/d/b/boost64b7fc4516f80/p/... - # Replace those by our installation prefix. - find $1/direct_deploy/${CONANPACKAGE} -name '*.cmake' -exec sed -i -E 's/\/opt\/conan_home\/d\/b\/[^/]+\/p/'$ESCAPED_PATH'/g' {} \; + # Using the full_deployer gets us all the transitive dependencies, but will require some cleaning up: + # - header_only libraries have a different installation layout + # - we don't want to install empty system wrappers + # - we don't want to install the openfoo package when building ci-openfoo, only its build dependencies + conan install --requires=$CONANREF --profile:all=${ASWF_CONAN_HOME}/.conan2/profiles_${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} --deployer-folder $1 --deployer=full_deploy + done + + # The full_deploy generator just copies over generated CMake files which may contain absolute paths pointing inside the Conan cache + # in the format: + # /opt/conan_home/d/b/boost64b7fc4516f80/p/... + # Replace those by our installation prefix. + find $1/full_deploy -name '*.cmake' -exec sed -i -E 's/\/opt\/conan_home\/d\/b\/[^/]+\/p/'$ESCAPED_PATH'/g' {} \; + + for INSTALLED_PACKAGE in $(find $1/full_deploy/host -mindepth 1 -maxdepth 1 -printf "%f\n"); do + # Don't relocate the excluded package + if [[ $INSTALLED_PACKAGE == $3 ]]; then + continue + fi + + # Better hope there's only one version of the package + RELEASE_DIR="" + INSTALLED_PACKAGE_VERSION=$(find $1/full_deploy/host/${INSTALLED_PACKAGE} -mindepth 1 -maxdepth 1 -printf "%f\n" -quit) + if [ -d $1/full_deploy/host/${INSTALLED_PACKAGE}/${INSTALLED_PACKAGE_VERSION}/Release ]; then + # Full packages have extra path component based on Debug/Release and architecture, header-only packages don't + RELEASE_DIR="Release/x86_64" + fi + + # Some system wrappers have a version number, but have no subdirectories + subdir_count=$(find $1/full_deploy/host/${INSTALLED_PACKAGE}/${INSTALLED_PACKAGE_VERSION}/${RELEASE_DIR}/ -mindepth 1 -maxdepth 1 -type d | wc -l) + if [[ ${INSTALLED_PACKAGE_VERSION} == "system" || $subdir_count -eq 0 ]]; then + continue + fi + # Currently cannot build a relocatable CPython package, conan_home paths are hardcoded in sysconfig - if [[ $CONANPACKAGE == cpython* ]]; then - find $1/direct_deploy/${CONANPACKAGE} -name '_sysconfigdata__linux_x86_64-linux-gnu.py' -exec sed -i -E 's/\/opt\/conan_home\/d\/b\/[^/]+\/p/'$ESCAPED_PATH'/g' {} \; + if [[ $INSTALLED_PACKAGE == cpython ]]; then + find $1/full_deploy/host/cpython -name '_sysconfigdata__linux_x86_64-linux-gnu.py' -exec sed -i -E 's/\/opt\/conan_home\/d\/b\/[^/]+\/p/'$ESCAPED_PATH'/g' {} \; + fi + + # One off patch for pybind11 : overwrite pybind11Common.cmake with un-modified version + if [[ $INSTALLED_PACKAGE == pybind11 ]]; then + mv $1/full_deploy/host/pybind11/${INSTALLED_PACKAGE_VERSION}/lib/cmake/pybind11/pybind11Common.{cmake_NO_CONAN,cmake} fi - # No way to tell Conan 2 to flatten the deployment destination, we move the files after the fact - rsync --remove-source-files -a $1/direct_deploy/${CONANPACKAGE}/ $1/ + + rsync --remove-source-files --exclude conaninfo.txt --exclude conanmanifest.txt -a $1/full_deploy/host/${INSTALLED_PACKAGE}/${INSTALLED_PACKAGE_VERSION}/${RELEASE_DIR}/ $1/ done - # One off patch for pybind11 : overwrite pybind11Common.cmake with un-modified version - if test -f $1/lib64/cmake/pybind11/pybind11Common.cmake_NO_CONAN; then - mv $1/lib64/cmake/pybind11/pybind11Common.{cmake_NO_CONAN,cmake} - fi - rm -rf $1/direct_deploy + + # rsync should have left nothing behind but empty directories (--remove-source-files doesn't remove them), + # system wrappers and the excluded package + rm -rf $1/full_deploy fi diff --git a/scripts/vfx/build_osl.sh b/scripts/vfx/build_osl.sh index 62f2c895..1bd2f494 100755 --- a/scripts/vfx/build_osl.sh +++ b/scripts/vfx/build_osl.sh @@ -11,18 +11,112 @@ fi tar -zxf "$DOWNLOADS_DIR/osl-${ASWF_OSL_VERSION}.tar.gz" cd "OpenShadingLanguage-${ASWF_OSL_VERSION}" +if [[ $ASWF_DTS_VERSION == 9 && $ASWF_CUDA_VERSION == 10* ]]; then + CUDA_COMPUTE_VERSION=compute_30 +else + CUDA_COMPUTE_VERSION=compute_50 +fi + +# From https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/2010 +# Resolve issues wth C++20 and fmt +if [[ $ASWF_OSL_VERSION == 1.14.6.0 ]]; then + cat << 'EOF' | patch -p1 +diff --git a/src/include/OSL/oslconfig.h.in b/src/include/OSL/oslconfig.h.in +index 6cf74b219a1..501394deede 100644 +--- a/src/include/OSL/oslconfig.h.in ++++ b/src/include/OSL/oslconfig.h.in +@@ -123,7 +123,11 @@ + OSL_NODISCARD inline std::string + fmtformat(const Str& fmt, Args&&... args) + { ++#if OSL_CPLUSPLUS_VERSION >= 20 || FMT_VERSION >= 100000 ++ return ::fmt::vformat(fmt, ::fmt::make_format_args(args...)); ++#else + return OIIO::Strutil::fmt::format(fmt, std::forward(args)...); ++#endif + } + + // TODO: notice the fmt argument is not templatised, this is because +@@ -132,13 +136,18 @@ + // OIIO should fix this if possible. + template + OSL_NODISCARD inline auto +-fmtformat_to_n(OutIt &out, size_t n, const string_view& fmt, Args&&... args) ++fmtformat_to_n(OutIt& out, size_t n, string_view fmt, Args&&... args) + { + // DOES NOT EXIST AS PUBLIC API + //return OIIO::Strutil::fmt::format_to_n(out, n, fmt, std::forward(args)...); + // So call directly into underlying fmt library OIIO is using + // TODO: Add format_to_n as a public API in OIIO ++#if OSL_CPLUSPLUS_VERSION >= 20 || FMT_VERSION >= 100000 ++ std::string str = fmtformat(fmt, std::forward(args)...); ++ return ::fmt::format_to_n(out, n, "{}", str); ++#else + return ::fmt::format_to_n(out, n, ::fmt::string_view{fmt.begin(), fmt.length()}, std::forward(args)...); ++#endif + } + + +diff --git a/src/liboslcomp/oslcomp_pvt.h b/src/liboslcomp/oslcomp_pvt.h +index 6cf74b219a1..501394deede 100644 +--- a/src/liboslcomp/oslcomp_pvt.h ++++ b/src/liboslcomp/oslcomp_pvt.h +@@ -365,7 +365,8 @@ + template + inline void osofmt(const char* fmt, Args&&... args) const + { +- fmt::print(*m_osofile, fmt, std::forward(args)...); ++ *m_osofile << OIIO::Strutil::fmt::format(fmt, ++ std::forward(args)...); + } + + void track_variable_lifetimes() +diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp +index 6cf74b219a1..501394deede 100644 +--- a/src/liboslexec/llvm_util.cpp ++++ b/src/liboslexec/llvm_util.cpp +@@ -17,6 +17,11 @@ + # error "LLVM minimum version required for OSL is 11.0" + #endif + ++OSL_PRAGMA_WARNING_PUSH ++#if OSL_GNUC_VERSION >= 140000 ++OSL_GCC_PRAGMA(GCC diagnostic ignored "-Wmaybe-uninitialized") ++#endif ++ + #include "llvm_passes.h" + + #include +EOF +fi + +OSL_CXX_STANDARD=$ASWF_CXX_STANDARD +## OSL 1.14.6.0 does not build with C++20 +#if [[ $ASWF_OSL_VERSION == 1.14.6.0 && $ASWF_CXX_STANDARD == 20 ]]; then +# OSL_CXX_STANDARD=17 +#fi + mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX="${ASWF_INSTALL_PREFIX}" \ -DBoost_USE_STATIC_LIBS=OFF \ -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_CXX_STANDARD="${ASWF_CXX_STANDARD}" \ - -Dpybind11_DIR="${ASWF_INSTALL_PREFIX}/lib64/cmake/pybind11" \ + -DCMAKE_CXX_STANDARD=$OSL_CXX_STANDARD \ + -Dpybind11_DIR="${ASWF_INSTALL_PREFIX}/lib/cmake/pybind11" \ + -DOSL_USE_OPTIX=ON \ + -DOPTIX_VERSION=${ASWF_OPTIX_VERSION} \ + -DOPTIXHOME=${ASWF_INSTALL_PREFIX}/NVIDIA-OptiX-SDK-${ASWF_OPTIX_VERSION} \ ../. -make -j$(nproc) -make install +# Multithread build of OSL 1.14.6.0 build fails in OptiX / CUDA section. Or maybe not? +if [[ $ASWF_OSL_VERSION == 1.14.6.0 ]]; then +# cmake --build . -j1 --verbose + cmake --build . -j$(nproc) --verbose +else + cmake --build . -j$(nproc) --verbose +fi +cmake --install . cd ../.. -rm -rf "OpenShadingLanguage-Release-${ASWF_OSL_VERSION}" +rm -rf "OpenShadingLanguage-${ASWF_OSL_VERSION}" From 70044b90ae6fa71106dac4647a70fa245c503150 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Wed, 6 Aug 2025 12:36:58 -0700 Subject: [PATCH 12/14] OpenFX, Boost, CLANG - OpenFX Conan recipe updated to the one from the OpenFX repo - test_package remains WIP - requirements bring in more system wrappers and dependent packages: - cimg - spdlog - opencl-headers, open-icd-loader - Boost dependencies updated - CCI recipe doesn't built Python bindings by default so BoostPython was missing depenedencies - couldn't make the dependency update script work, updated manually - LLVM / clang finds gcc install again - since LLVM / clang 18, our build wasn't finding gcc install frmo gcc-toolset-XX, thus missing out on updated libstdc++ - fixes OSL C++ 20 build on EL 8 - Qt now builds with Harfbuzz text shaping engine Signed-off-by: Jean-Francois Panisset --- .github/workflows/docker-builds.yml | 31 +- CHANGELOG.md | 21 +- ci-base/README.md | 6 +- ci-baseqt/README.md | 6 +- ci-materialx/README.md | 2 +- ci-ocio/README.md | 2 +- ci-oiio/README.md | 6 +- ci-opencue/README.md | 2 +- ci-openexr/README.md | 4 +- ci-openfx/README.md | 2 +- ci-openrv/README.md | 2 +- ci-openvdb/README.md | 8 +- ci-osl/README.md | 20 +- ci-otio/README.md | 6 +- ci-rawtoaces/README.md | 2 +- ci-usd/README.md | 12 +- ci-vfxall/README.md | 52 +-- packages/common/Dockerfile | 17 + packages/conan/recipes/boost/conanfile.py | 25 +- .../dependencies/dependencies-1.82.0.yml | 6 +- .../dependencies/dependencies-1.83.0.yml | 2 +- .../dependencies/dependencies-1.84.0.yml | 2 +- .../dependencies/dependencies-1.85.0.yml | 6 +- .../dependencies/dependencies-1.86.0.yml | 2 +- .../dependencies/dependencies-1.88.0.yml | 7 +- .../recipes/boost/rebuild-dependencies.py | 4 +- packages/conan/recipes/cimg/conandata.yml | 10 + packages/conan/recipes/cimg/conanfile.py | 120 +++++++ .../recipes/cimg/test_package/CMakeLists.txt | 14 + .../recipes/cimg/test_package/conanfile.py | 32 ++ .../cimg/test_package/test_package.cpp | 165 ++++++++++ packages/conan/recipes/clang/conanfile.py | 16 +- packages/conan/recipes/glib/conanfile.py | 8 +- packages/conan/recipes/harfbuzz/conandata.yml | 46 +++ packages/conan/recipes/harfbuzz/conanfile.py | 235 ++++++++++++++ .../0000-fix-freetype-lookup-5.1.0.patch | 72 ++++ .../harfbuzz/test_package/CMakeLists.txt | 14 + .../test_package/conanfile.py | 19 +- .../harfbuzz/test_package/test_package.c | 17 + packages/conan/recipes/imath/conanfile.py | 5 +- .../conan/recipes/libjpeg-turbo/conanfile.py | 5 +- .../conan/recipes/libultrahdr/conanfile.py | 2 + packages/conan/recipes/oiio/conandata.yml | 13 + .../conan/recipes/opencl-headers/conanfile.py | 18 + .../recipes/opencl-icd-loader/conanfile.py | 20 ++ packages/conan/recipes/openexr/conandata.yml | 3 + packages/conan/recipes/openfx/CMakeLists.txt | 78 ----- .../conan/recipes/openfx/cmake/OpenFX.cmake | 22 -- packages/conan/recipes/openfx/conandata.yml | 6 + packages/conan/recipes/openfx/conanfile.py | 224 ++++++------- .../patches/openfx_cmake_relative.patch | 16 + .../recipes/openfx/symbols/linux.symbols | 7 - .../conan/recipes/openfx/symbols/os.symbols | 2 - .../recipes/openfx/symbols/windows.symbols | 3 - .../openfx/test_package/CMakeLists.txt | 26 -- .../recipes/openfx/test_package/invert.cpp | 307 ------------------ .../test_package_DISABLED/CMakeLists.txt | 29 ++ .../openfx/test_package_DISABLED/conanfile.py | 78 +++++ .../src/test_package.cpp | 116 +++++++ packages/conan/recipes/pyside/conanfile.py | 6 +- packages/conan/recipes/qt/conandata.yml | 3 + packages/conan/recipes/qt/conanfile.py | 2 +- .../qt/patches/minigbm-basename-6.8.3.diff | 14 + packages/conan/recipes/spdlog/conanfile.py | 26 ++ packages/conan/settings/profiles_aswf/vfx2024 | 8 +- packages/conan/settings/profiles_aswf/vfx2025 | 10 +- packages/conan/settings/profiles_aswf/vfx2026 | 44 +-- .../settings/profiles_aswftesting/vfx2024 | 8 +- .../settings/profiles_aswftesting/vfx2025 | 10 +- .../settings/profiles_aswftesting/vfx2026 | 44 +-- python/aswfdocker/data/versions.yaml | 82 +++-- scripts/common/install_yumpackages.sh | 31 +- scripts/vfx/build_osl.sh | 89 +---- 73 files changed, 1563 insertions(+), 817 deletions(-) create mode 100644 packages/conan/recipes/cimg/conandata.yml create mode 100644 packages/conan/recipes/cimg/conanfile.py create mode 100644 packages/conan/recipes/cimg/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/cimg/test_package/conanfile.py create mode 100644 packages/conan/recipes/cimg/test_package/test_package.cpp create mode 100644 packages/conan/recipes/harfbuzz/conandata.yml create mode 100644 packages/conan/recipes/harfbuzz/conanfile.py create mode 100644 packages/conan/recipes/harfbuzz/patches/0000-fix-freetype-lookup-5.1.0.patch create mode 100644 packages/conan/recipes/harfbuzz/test_package/CMakeLists.txt rename packages/conan/recipes/{openfx => harfbuzz}/test_package/conanfile.py (63%) create mode 100644 packages/conan/recipes/harfbuzz/test_package/test_package.c create mode 100644 packages/conan/recipes/opencl-headers/conanfile.py create mode 100644 packages/conan/recipes/opencl-icd-loader/conanfile.py delete mode 100644 packages/conan/recipes/openfx/CMakeLists.txt delete mode 100644 packages/conan/recipes/openfx/cmake/OpenFX.cmake create mode 100644 packages/conan/recipes/openfx/patches/openfx_cmake_relative.patch delete mode 100644 packages/conan/recipes/openfx/symbols/linux.symbols delete mode 100644 packages/conan/recipes/openfx/symbols/os.symbols delete mode 100644 packages/conan/recipes/openfx/symbols/windows.symbols delete mode 100644 packages/conan/recipes/openfx/test_package/CMakeLists.txt delete mode 100644 packages/conan/recipes/openfx/test_package/invert.cpp create mode 100644 packages/conan/recipes/openfx/test_package_DISABLED/CMakeLists.txt create mode 100644 packages/conan/recipes/openfx/test_package_DISABLED/conanfile.py create mode 100644 packages/conan/recipes/openfx/test_package_DISABLED/src/test_package.cpp create mode 100644 packages/conan/recipes/qt/patches/minigbm-basename-6.8.3.diff create mode 100644 packages/conan/recipes/spdlog/conanfile.py diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml index d8fc2006..d1a01d51 100644 --- a/.github/workflows/docker-builds.yml +++ b/.github/workflows/docker-builds.yml @@ -175,7 +175,7 @@ jobs: --use-conan \ --build-missing - - name: Build base2 system wrapper and dependency Conan packages for ci-baseqt image + - name: Build base2 system wrapper Conan packages for ci-baseqt image run: | set -ex pipenv run aswfdocker \ @@ -185,6 +185,19 @@ jobs: build \ --ci-image-type PACKAGE \ --group base2-wrappers \ + --version ${{ matrix.version_noclang }} \ + --use-conan \ + --build-missing + + - name: Build base2 system Conan packages for ci-baseqt image + run: | + set -ex + pipenv run aswfdocker \ + --repo-uri $GITHUB_REPOSITORY \ + --source-branch $GITHUB_REF \ + --verbose \ + build \ + --ci-image-type PACKAGE \ --group base2-1 --version ${{ matrix.version_noclang }} \ --use-conan \ @@ -231,7 +244,7 @@ jobs: --version ${{ matrix.version }} \ --push NO - - name: Build vfx1 system wrapper and level 1 Conan packages + - name: Build vfx1 system wrapper Conan packages run: | set -ex pipenv run aswfdocker \ @@ -241,6 +254,20 @@ jobs: build \ --ci-image-type PACKAGE \ --group vfx1-wrappers \ + --version ${{ matrix.version_noclang }} \ + --use-conan \ + --build-missing \ + --push NO + + - name: Build vfx1 level 1 Conan packages + run: | + set -ex + pipenv run aswfdocker \ + --repo-uri $GITHUB_REPOSITORY \ + --source-branch $GITHUB_REF \ + --verbose \ + build \ + --ci-image-type PACKAGE \ --group vfx1-1 \ --version ${{ matrix.version_noclang }} \ --use-conan \ diff --git a/CHANGELOG.md b/CHANGELOG.md index 30ce3c0c..48c01fab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -19,6 +19,7 @@ consumers of these new images. - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) - Alembic 1.8.8 (was 1.8.6) - Blosc 1.21.6 (was 1.21.5) + - fmt 11.2.0 (was 11.1.4) - GLEW 2.2.0 (was 2.1.0) - GLFW 3.4 (was 3.3.8) - gtest 1.15.2 (was 1.14.0) @@ -39,32 +40,38 @@ consumers of these new images. - Ninja 1.13.1 (was 1.12.1) - Sonar Cloud 7.1.0.4889 (was 6.2.1.4610) - LLVM 19.1.7 (was 19.1.1) + - fmt 11.2.0 (was 11.1.4) - hdf5 1.14.6 - lcms 2.17 (was 2.16) - minizip-ng 4.0.10 (was 4.0.8) - opensubdiv 3.6.1 (was 3.6.0) - python 3.11.13 (was 3.11.11) - Qt 6.5.6 (was 6.5.4) - - OIIO 3.0.8.1 (was 3.0.6.1) + - OIIO 3.0.9.0 (was 3.0.6.1) - OpenEXR 3.3.5 (was 3.3.3) - OpenFX 1.5s - - OSL 1.14.6.0 (was 1.14.5.1) + - OpenVDB 12.0.1 (was 12.0.0) + - OSL 1.14.7.0 (was 1.14.5.1) - PySide 6.5.6 (was 6.5.4) - USD 25.05.01 (was 25.05) -- 2026.0 - - pre-release for testing purposes, does not yet include late releasing ASWF packages in final 2026 release (OOCIO, OpenEXR, OpenVDB) +- 2026.0 draft images + - pre-release for testing purposes, does not yet include final versions of late releasing packages for VFX Platform 2026 (OOCIO, OpenEXR, OpenVDB, OpenSubDiv) + - OpenEXR includes a pre-release of 3.4.x - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions - to minimize local changes against upstream Conan recipes and avoid spending time fighting build systems which hard code `lib` as the destination directory, all changes related to landing DSOs and support files in `lib64` are reverted -- new Conan package and build images for OpenFX -- new Conan package and build images for rawtoaces +- new Conan package and build images for OpenFX based on conanfile.py from OpenFX repo (Conan Center Index has older version) + - adds dependant Conan package cimg +- new [Conan package and build images for rawtoaces](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/273) - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen , aces_container - Alembic now [built with hdf5 dependency](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/254) - OpenVDB now [built as a Conan package](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/231) -- OpenImageIO builds with libraw support](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/264), [Python bindings](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/272) and OpenJPEG/JPEG2000 support +- OpenImageIO builds with libraw support](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/264) and OpenJPEG/JPEG2000 support - system wrapper Conan packages - improved wrapper packages no longer declare include directories and libraries they don't include - query container OS for installed system package version instead of hard coding (pkgconfig / rpm) - libuhdr Conan package renamed to libultrahdr and updated to match new Conan Center Index package +- blosc Conan package renamed to c-blosc to match Conan Center Index +- Qt now built against harfbuzz text shaping library from vendored Conan package - aswfdocker utility gets "conandiff" option to show upstream changes to vendored Conan Center Index recipes to help with keeping recipes up to date - merge upstream recipe changes, in particular changes for CMake 4 compatibility diff --git a/ci-base/README.md b/ci-base/README.md index c1bd6527..36d19d72 100644 --- a/ci-base/README.md +++ b/ci-base/README.md @@ -99,7 +99,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -130,7 +130,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -182,6 +182,6 @@ Contains: * log4cplus-2.1.2 * boost-1.88.0 * pybind11-2.13.6 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-baseqt/README.md b/ci-baseqt/README.md index c15083d9..a727e956 100644 --- a/ci-baseqt/README.md +++ b/ci-baseqt/README.md @@ -109,7 +109,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -144,7 +144,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -204,6 +204,6 @@ Contains: * md4c-0.5.2 * qt-6.8.3 * pyside-6.8.3 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-materialx/README.md b/ci-materialx/README.md index 915a3707..dc9e34f2 100644 --- a/ci-materialx/README.md +++ b/ci-materialx/README.md @@ -50,6 +50,6 @@ Contains: Contains: * materialx-1.39.3 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-ocio/README.md b/ci-ocio/README.md index acfcf384..a80c1af4 100644 --- a/ci-ocio/README.md +++ b/ci-ocio/README.md @@ -71,6 +71,6 @@ Contains: Contains: * ocio-2.4.2 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-oiio/README.md b/ci-oiio/README.md index 2d1aa292..c28c2038 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -28,14 +28,14 @@ Contains: ## [aswf/ci-oiio:2025.2](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2025.2) Contains: -* oiio-3.0.8.1 +* oiio-3.0.9.0 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-oiio:2026.0](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2026.0) Contains: -* oiio-3.0.8.1 -* numpy-1.26.4 +* oiio-3.0.9.0 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-opencue/README.md b/ci-opencue/README.md index 29cbb2cd..41411eb0 100644 --- a/ci-opencue/README.md +++ b/ci-opencue/README.md @@ -71,6 +71,6 @@ Contains: Contains: * cpython-3.13.3 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-openexr/README.md b/ci-openexr/README.md index 48fd3b43..780220fd 100644 --- a/ci-openexr/README.md +++ b/ci-openexr/README.md @@ -70,7 +70,7 @@ Contains: ## [aswf/ci-openexr:2026.0](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2026.0) Contains: -* openexr-3.3.5 -* numpy-1.26.4 +* openexr-3.4-alpha +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-openfx/README.md b/ci-openfx/README.md index 205720e4..7aa04b20 100644 --- a/ci-openfx/README.md +++ b/ci-openfx/README.md @@ -36,6 +36,6 @@ Contains: Contains: * openfx-1.5s -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-openrv/README.md b/ci-openrv/README.md index b6c8c4de..37237e4f 100644 --- a/ci-openrv/README.md +++ b/ci-openrv/README.md @@ -42,6 +42,6 @@ Contains: * cpython-3.13.3 * expat-2.7.1 * qt-6.8.3 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-openvdb/README.md b/ci-openvdb/README.md index 6ea0a568..7b5497ce 100644 --- a/ci-openvdb/README.md +++ b/ci-openvdb/README.md @@ -126,14 +126,14 @@ Contains: ## [aswf/ci-openvdb:2025-clang18.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang18.2) Contains: -* openvdb-12.0.0 +* openvdb-12.0.1 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-openvdb:2025-clang19.2](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang19.2) Contains: -* openvdb-12.0.0 +* openvdb-12.0.1 * numpy-1.26.4 * vfxplatform-2025 @@ -141,13 +141,13 @@ Contains: Contains: * openvdb-12.0.1 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 ## [aswf/ci-openvdb:2026-clang20.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang20.0) Contains: * openvdb-12.0.1 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-osl/README.md b/ci-osl/README.md index 07a48a67..52504cfb 100644 --- a/ci-osl/README.md +++ b/ci-osl/README.md @@ -232,7 +232,7 @@ Contains: Contains: * cpython-3.11.13 -* fmt-11.1.4 +* fmt-11.2.0 * imath-3.1.12 * oiio-2.5.19.0 * partio-1.19.0 @@ -249,7 +249,7 @@ Contains: Contains: * cpython-3.11.13 -* fmt-11.1.4 +* fmt-11.2.0 * imath-3.1.12 * oiio-2.5.19.0 * partio-1.19.0 @@ -266,9 +266,9 @@ Contains: Contains: * cpython-3.11.13 -* fmt-11.1.4 +* fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * partio-1.19.0 * pugixml-1.14 * pybind11-2.13.6 @@ -283,9 +283,9 @@ Contains: Contains: * cpython-3.11.13 -* fmt-11.1.4 +* fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * partio-1.19.0 * pugixml-1.14 * pybind11-2.13.6 @@ -302,7 +302,7 @@ Contains: * cpython-3.13.3 * fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * partio-1.19.0 * pugixml-1.15 * pybind11-2.13.6 @@ -310,7 +310,7 @@ Contains: * zlib-1.3.1 * cuda-12.9.1 * optix-8.0.0 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 ## [aswf/ci-osl:2026-clang20.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2026-clang20.0) @@ -319,7 +319,7 @@ Contains: * cpython-3.13.3 * fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * partio-1.19.0 * pugixml-1.15 * pybind11-2.13.6 @@ -327,6 +327,6 @@ Contains: * zlib-1.3.1 * cuda-12.9.1 * optix-8.0.0 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-otio/README.md b/ci-otio/README.md index 8f99d4e0..8a13af25 100644 --- a/ci-otio/README.md +++ b/ci-otio/README.md @@ -115,7 +115,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -150,7 +150,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -210,6 +210,6 @@ Contains: * qt-6.8.3 * pyside-6.8.3 * imath-3.1.12 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-rawtoaces/README.md b/ci-rawtoaces/README.md index da6db208..57fe193d 100644 --- a/ci-rawtoaces/README.md +++ b/ci-rawtoaces/README.md @@ -36,6 +36,6 @@ Contains: Contains: * rawtoaces-vfx2026.0 -* numpy-1.26.4 +* numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-usd/README.md b/ci-usd/README.md index dc4b2cd6..6bbace53 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -157,7 +157,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -205,7 +205,7 @@ Contains: * bzip2-1.0.8 * cppunit-1.15.1 * expat-2.6.4 -* fmt-11.1.4 +* fmt-11.2.0 * gtest-1.15.2 * libbacktrace-cci.20210118 * libdeflate-1.23 @@ -240,7 +240,7 @@ Contains: * openexr-3.3.5 * alembic-1.8.8 * ocio-2.4.2 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * materialx-1.39.3 * numpy-1.26.4 * hdf5-1.14.6 @@ -285,12 +285,12 @@ Contains: * partio-1.19.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.3.5 +* openexr-3.4-alpha * alembic-1.8.8 * ocio-2.4.2 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * materialx-1.39.3 -* numpy-1.26.4 +* numpy-2.3.2 * hdf5-1.14.6 * vfxplatform-2026 diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 42b0cd9c..3cab300c 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -432,7 +432,7 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93.0 +* nss-3.101.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system @@ -489,7 +489,7 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93.0 +* nss-3.101.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system @@ -546,7 +546,7 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93.0 +* nss-3.101.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system @@ -556,16 +556,16 @@ Contains: * imath-3.1.12 * openexr-3.3.5 * alembic-1.8.8 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * ocio-2.4.2 * openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 -* openvdb-12.0.0 +* openvdb-12.0.1 * materialx-1.39.3 * usd-25.05.01 * partio-1.19.0 -* osl-1.14.6.0 +* osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 @@ -603,7 +603,7 @@ Contains: * libwebp-1.5.0 * libxshmfence-system * md4c-0.4.8 -* nss-3.93.0 +* nss-3.101.0 * openjpeg-2.4.0 * opus-system * pulseaudio-system @@ -613,16 +613,16 @@ Contains: * imath-3.1.12 * openexr-3.3.5 * alembic-1.8.8 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * ocio-2.4.2 * openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 -* openvdb-12.0.0 +* openvdb-12.0.1 * materialx-1.39.3 * usd-25.05.01 * partio-1.19.0 -* osl-1.14.6.0 +* osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 @@ -650,13 +650,13 @@ Contains: * zstd-1.5.7 * dbus-system * fontconfig-system -* glib-2.68.4 +* glib-2.56.4 * libalsa-system * libdrm-system * libjxl-0.11.1 * libraw-0.21.4 * libsndfile-system -* libtiff-4.4.0 +* libtiff-4.0.9 * libwebp-1.5.0 * libxshmfence-system * md4c-0.5.2 @@ -664,25 +664,25 @@ Contains: * openjpeg-2.4.0 * opus-system * pulseaudio-system -* xkbcommon-1.0.3 +* xkbcommon-0.9.1 * qt-6.8.3 * pyside-6.8.3 * imath-3.1.12 -* openexr-3.3.5 +* openexr-3.4-alpha * alembic-1.8.8 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * ocio-2.4.2 * openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.1 * materialx-1.39.3 -* usd-25.05.01 +* usd-25.08 * partio-1.19.0 -* osl-1.14.6.0 +* osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 -* numpy-1.26.4 +* numpy-2.3.2 * hdf5-1.14.6 * vfxplatform-2026 @@ -707,13 +707,13 @@ Contains: * zstd-1.5.7 * dbus-system * fontconfig-system -* glib-2.68.4 +* glib-2.56.4 * libalsa-system * libdrm-system * libjxl-0.11.1 * libraw-0.21.4 * libsndfile-system -* libtiff-4.4.0 +* libtiff-4.0.9 * libwebp-1.5.0 * libxshmfence-system * md4c-0.5.2 @@ -721,25 +721,25 @@ Contains: * openjpeg-2.4.0 * opus-system * pulseaudio-system -* xkbcommon-1.0.3 +* xkbcommon-0.9.1 * qt-6.8.3 * pyside-6.8.3 * imath-3.1.12 -* openexr-3.3.5 +* openexr-3.4-alpha * alembic-1.8.8 -* oiio-3.0.8.1 +* oiio-3.0.9.0 * ocio-2.4.2 * openfx-1.5s * opensubdiv-3.6.1 * ptex-2.4.3 * openvdb-12.0.1 * materialx-1.39.3 -* usd-25.05.01 +* usd-25.08 * partio-1.19.0 -* osl-1.14.6.0 +* osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 -* numpy-1.26.4 +* numpy-2.3.2 * hdf5-1.14.6 * vfxplatform-2026 diff --git a/packages/common/Dockerfile b/packages/common/Dockerfile index e11a1bcb..d2d100d5 100644 --- a/packages/common/Dockerfile +++ b/packages/common/Dockerfile @@ -193,6 +193,8 @@ ENV ASWF_CONAN_ROOT=/opt/conan \ # the generate() method doesn't seem to have access to build/host env vars # set in profile or on the conan command line. ENV GCC_INSTALL_PREFIX=/opt/rh/${ASWF_DTS_PREFIX}-${ASWF_DTS_VERSION}/root/usr +# Different version for --gcc-install-dir +ENV GCC_INSTALL_TRIPLET=${GCC_INSTALL_PREFIX}/lib/gcc/x86_64-redhat-linux/${ASWF_DTS_VERSION} # With "conan create --profile" we no longer need to set a default profile ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 @@ -202,6 +204,21 @@ ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 ENV ASWF_PKG_DIR=${ASWF_CONAN_HOME}/recipes/${ASWF_PKG_NAME} ENV ASWF_PKG_YML=${ASWF_PKG_DIR}/config.yml +# When you want to delete a specific package from the cache, use * for all packages +#RUN --mount=type=cache,target=${ASWF_CONAN_HOME}/d \ +# --mount=type=cache,target=${CCACHE_DIR} \ +# --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/.conan2,source=packages/conan/settings \ +# --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/recipes,source=packages/conan/recipes \ +# conan cache clean "fmt/*" --source --build --download --temp --backup-sources && \ +# conan remove --confirm "fmt/*" + +# When you want to list the package versions found in the cache +#RUN --mount=type=cache,target=${ASWF_CONAN_HOME}/d \ +# --mount=type=cache,target=${CCACHE_DIR} \ +# --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/.conan2,source=packages/conan/settings \ +# --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/recipes,source=packages/conan/recipes \ +# conan list "fmt/11.2.0@aswftesting/vfx2026:*" + RUN --mount=type=cache,target=${ASWF_CONAN_HOME}/d \ --mount=type=cache,target=${CCACHE_DIR} \ --mount=type=bind,rw,target=${ASWF_CONAN_HOME}/.conan2,source=packages/conan/settings \ diff --git a/packages/conan/recipes/boost/conanfile.py b/packages/conan/recipes/boost/conanfile.py index e0375a03..26004049 100644 --- a/packages/conan/recipes/boost/conanfile.py +++ b/packages/conan/recipes/boost/conanfile.py @@ -2,7 +2,7 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/d4f752a9a00040dfd8e397f3ac4eaf3be7c515ce/recipes/boost/all/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/2858fecda521cbf5d21aace586bc5b5b2ea55f23/recipes/boost/all/conanfile.py from conan import ConanFile from conan.errors import ConanException, ConanInvalidConfiguration @@ -1223,7 +1223,7 @@ def _b2_os(self): @property def _b2_address_model(self): - if self.settings.arch in ("x86_64", "ppc64", "ppc64le", "mips64", "armv8", "armv8.3", "sparcv9", "s390x"): + if self.settings.arch in ("x86_64", "ppc64", "ppc64le", "mips64", "armv8", "armv8.3", "sparcv9", "s390x", "riscv64"): return "64" return "32" @@ -1259,6 +1259,8 @@ def _b2_architecture(self): return "mips1" if str(self.settings.arch).startswith("s390"): return "s390x" + if str(self.settings.arch).startswith("riscv"): + return "riscv" return None @@ -1272,6 +1274,8 @@ def _b2_abi(self): return "aapcs" if str(self.settings.arch).startswith("mips"): return "o32" + if str(self.settings.arch).startswith("riscv"): + return "sysv" return None @@ -1292,7 +1296,9 @@ def _gnu_cxx11_abi(self): @property def _build_flags(self): - flags = self._build_cross_flags + flags = [] + if self._build_cross_flags: + flags.append(f'compileflags="{" ".join(self._build_cross_flags)}"') # Stop at the first error. No need to continue building. flags.append("-q") @@ -1515,6 +1521,8 @@ def _build_cross_flags(self): pass elif arch.startswith("mips"): pass + elif arch.startswith("riscv"): + pass else: self.output.warning(f"Unable to detect the appropriate ABI for {arch} architecture.") self.output.info(f"Cross building flags: {flags}") @@ -1636,8 +1644,10 @@ def create_library_config(deps_name, name): contents += f'"{cxxflags.strip()}" ' if cflags.strip(): contents += f'"{cflags.strip()}" ' - if cppflags.strip(): - contents += f'"{cppflags.strip()}" ' + if cppflags.strip() or self._build_cross_flags: + compiler_flags = cppflags.strip() + " " + compiler_flags += " ".join(self._build_cross_flags) + contents += f'"{compiler_flags}" ' if ldflags.strip(): contents += f'"{ldflags.strip()}" ' if asflags.strip(): @@ -1751,6 +1761,11 @@ def package(self): rename(self, bin_file, os.path.join(self.package_folder, "bin", os.path.basename(bin_file))) rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) + if (is_apple_os(self) or self.settings.os == "Linux") and not self._shared and Version(self.version) >= "1.88.0": + # FIXME: Boost 1.88 installs both .a and .dylib files for static libraries + # https://github.com/boostorg/boost/issues/1051 + rm(self, "*.dylib", os.path.join(self.package_folder, "lib")) + rm(self, "*.so*", os.path.join(self.package_folder, "lib")) def _create_emscripten_libs(self): # Boost Build doesn't create the libraries, but it gets close, diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml index 02d6958c..27483b20 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.82.0.yml @@ -111,7 +111,9 @@ dependencies: prg_exec_monitor: - test program_options: [] - python: [] + python: + - graph + - container random: - system regex: [] @@ -269,7 +271,7 @@ requirements: - iconv - icu python: - - python + - cpython regex: - icu stacktrace: diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.83.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.83.0.yml index 7200adb0..61c90a86 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.83.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.83.0.yml @@ -267,7 +267,7 @@ requirements: - iconv - icu python: - - python + - cpython regex: - icu stacktrace: diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.84.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.84.0.yml index 064fb7bc..e624edcb 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.84.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.84.0.yml @@ -272,7 +272,7 @@ requirements: - iconv - icu python: - - python + - cpython regex: - icu stacktrace: diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.85.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.85.0.yml index 2306346f..f4b72142 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.85.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.85.0.yml @@ -116,7 +116,9 @@ dependencies: prg_exec_monitor: - test program_options: [] - python: [] + python: + - graph + - container random: - system regex: [] @@ -280,7 +282,7 @@ requirements: - iconv - icu python: - - python + - cpython regex: - icu stacktrace: diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.86.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.86.0.yml index ae5b6de3..5233a30e 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.86.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.86.0.yml @@ -287,7 +287,7 @@ requirements: - iconv - icu python: - - python + - cpython regex: - icu stacktrace: diff --git a/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml b/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml index 4f35fdb3..708441d6 100644 --- a/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml +++ b/packages/conan/recipes/boost/dependencies/dependencies-1.88.0.yml @@ -80,6 +80,7 @@ dependencies: - container - system locale: + - charconv - thread log: - atomic @@ -122,7 +123,9 @@ dependencies: - system - context program_options: [] - python: [] + python: + - graph + - container random: - system regex: [] @@ -288,7 +291,7 @@ requirements: - iconv - icu python: - - python + - cpython regex: - icu stacktrace: diff --git a/packages/conan/recipes/boost/rebuild-dependencies.py b/packages/conan/recipes/boost/rebuild-dependencies.py index 6c1ba56c..941c07e6 100644 --- a/packages/conan/recipes/boost/rebuild-dependencies.py +++ b/packages/conan/recipes/boost/rebuild-dependencies.py @@ -74,7 +74,7 @@ "iconv", "icu", "lzma", - "python", + "cpython", # ASWF: Conan package is named cpython "zlib", "zstd", ) @@ -123,7 +123,7 @@ def __init__(self, boost_version: str, boostdep_version: str, tmppath: Path, git @property def boost_path(self) -> Path: - return self.tmppath / "boost" + return Path(self.tmppath) / "boost" def do_git_update(self) -> None: if not self.boost_path.exists(): diff --git a/packages/conan/recipes/cimg/conandata.yml b/packages/conan/recipes/cimg/conandata.yml new file mode 100644 index 00000000..16b4bcdf --- /dev/null +++ b/packages/conan/recipes/cimg/conandata.yml @@ -0,0 +1,10 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/cimg/all/conandata.yml + +sources: + "3.3.2": + url: "https://cimg.eu/files/CImg_3.3.2.zip" + sha256: "d49ecd63b46f53ddcee5c7695ddb0fe8b07e033bb81b5ed075cfe352462c5f73" diff --git a/packages/conan/recipes/cimg/conanfile.py b/packages/conan/recipes/cimg/conanfile.py new file mode 100644 index 00000000..96eaf9ba --- /dev/null +++ b/packages/conan/recipes/cimg/conanfile.py @@ -0,0 +1,120 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/cimg/all/conanfile.py + +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd +from conan.tools.files import copy, get +from conan.tools.layout import basic_layout +import os + +required_conan_version = ">=1.51.1" + + +class CImgConan(ConanFile): + name = "cimg" + description = "The CImg Library is a small and open-source C++ toolkit for image processing" + license = "CECILL-2.0" + url = "https://github.com/conan-io/conan-center-index" + homepage = "http://cimg.eu" + topics = ("physics", "simulation", "robotics", "kinematics", "engine") + package_type = "header-library" + settings = "os", "arch", "compiler", "build_type" + options = { + "enable_fftw": [True, False], + "enable_jpeg": [True, False], + "enable_openexr": [True, False], + "enable_png": [True, False], + "enable_tiff": [True, False], + "enable_ffmpeg": [True, False], + "enable_opencv": [True, False], + "enable_magick": [True, False], + "enable_xrandr": [True, False], + "enable_xshm": [True, False], + } + default_options = { + "enable_fftw": False, + "enable_jpeg": False, + "enable_openexr": False, + "enable_png": False, + "enable_tiff": False, + "enable_ffmpeg": False, + "enable_opencv": False, + "enable_magick": False, + "enable_xrandr": False, + "enable_xshm": False, + } + + no_copy_source = True + + @property + def _cimg_defines(self): + return [ + ("enable_fftw", "cimg_use_fftw"), + ("enable_jpeg", "cimg_use_jpeg"), + ("enable_openexr", "cimg_use_openexr"), + ("enable_png", "cimg_use_png"), + ("enable_tiff", "cimg_use_tiff"), + ("enable_ffmpeg", "cimg_use_ffmpeg"), + ("enable_opencv", "cimg_use_opencv"), + ("enable_magick", "cimg_use_magick"), + ("enable_xrandr", "cimg_use_xrandr"), + ("enable_xshm", "cimg_use_xshm"), + ] + + def layout(self): + basic_layout(self, src_folder="src") + + def requirements(self): + if self.options.enable_fftw: + self.requires("fftw/3.3.10") + if self.options.enable_jpeg: + self.requires("libjpeg/[>=9f]") + if self.options.enable_openexr: + self.requires("openexr/[>=3.2.1 <4]") + if self.options.enable_png: + self.requires("libpng/[>=1.6 <2]") + if self.options.enable_tiff: + self.requires("libtiff/[>=4.6.0 <5]") + if self.options.enable_opencv: + self.requires("opencv/[>=4.5.5 <5]") + if self.options.enable_ffmpeg: + self.requires("ffmpeg/[>=4.4 <8]") + if self.options.enable_magick: + self.requires("imagemagick/7.0.11-14") + + def package_id(self): + self.info.clear() + + def validate(self): + if self.settings.compiler.get_safe("cppstd"): + check_min_cppstd(self, "11") + # TODO: Update requirements when available in CCI + if self.options.enable_xrandr: + raise ConanInvalidConfiguration("xrandr not available in CCI yet") + if self.options.enable_xshm: + raise ConanInvalidConfiguration("xshm not available in CCI yet") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def build(self): + pass + + def package(self): + # ASWF: licenses in package specific directory + copy(self, "Licence*", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + copy(self, "CImg.h", src=self.source_folder, dst=os.path.join(self.package_folder, "include")) + copy(self, "*", os.path.join(self.source_folder, "plugins"), + os.path.join(self.package_folder, "include", "plugins")) + + def package_info(self): + self.cpp_info.set_property("pkg_config_name", "CImg") + self.cpp_info.bindirs = [] + self.cpp_info.libdirs = [] + for option, define in self._cimg_defines: + if getattr(self.options, option): + self.cpp_info.defines.append(define) diff --git a/packages/conan/recipes/cimg/test_package/CMakeLists.txt b/packages/conan/recipes/cimg/test_package/CMakeLists.txt new file mode 100644 index 00000000..6f29addb --- /dev/null +++ b/packages/conan/recipes/cimg/test_package/CMakeLists.txt @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/cimg/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(cimg REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE cimg::cimg) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) diff --git a/packages/conan/recipes/cimg/test_package/conanfile.py b/packages/conan/recipes/cimg/test_package/conanfile.py new file mode 100644 index 00000000..6572c697 --- /dev/null +++ b/packages/conan/recipes/cimg/test_package/conanfile.py @@ -0,0 +1,32 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/cimg/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import CMake, cmake_layout +import os + + +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeToolchain", "CMakeDeps", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/cimg/test_package/test_package.cpp b/packages/conan/recipes/cimg/test_package/test_package.cpp new file mode 100644 index 00000000..80e540d7 --- /dev/null +++ b/packages/conan/recipes/cimg/test_package/test_package.cpp @@ -0,0 +1,165 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/cimg/all/test_package/test_package.cpp +*/ + +/* + # + # File : image2ascii.cpp + # ( C++ source file ) + # + # Description : A basic image to ASCII-art converter. + # This file is a part of the CImg Library project. + # ( http://cimg.eu ) + # + # Copyright : David Tschumperle + # ( http://tschumperle.users.greyc.fr/ ) + # + # License : CeCILL v2.0 + # ( http://www.cecill.info/licences/Licence_CeCILL_V2-en.html ) + # + # This software is governed by the CeCILL license under French law and + # abiding by the rules of distribution of free software. You can use, + # modify and/ or redistribute the software under the terms of the CeCILL + # license as circulated by CEA, CNRS and INRIA at the following URL + # "http://www.cecill.info". + # + # As a counterpart to the access to the source code and rights to copy, + # modify and redistribute granted by the license, users are provided only + # with a limited warranty and the software's author, the holder of the + # economic rights, and the successive licensors have only limited + # liability. + # + # In this respect, the user's attention is drawn to the risks associated + # with loading, using, modifying and/or developing or reproducing the + # software by the user in light of its specific status of free software, + # that may mean that it is complicated to manipulate, and that also + # therefore means that it is reserved for developers and experienced + # professionals having in-depth computer knowledge. Users are therefore + # encouraged to load and test the software's suitability as regards their + # requirements in conditions enabling the security of their systems and/or + # data to be ensured and, more generally, to use and operate it in the + # same conditions as regards security. + # + # The fact that you are presently reading this means that you have had + # knowledge of the CeCILL license and that you accept its terms. + # +*/ + +// Tell CImg not to use display capabilities. +#undef cimg_display +#define cimg_display 0 +#include "CImg.h" +using namespace cimg_library; + +/*--------------------------- + + Main procedure + + --------------------------*/ +int main(int argc,char **argv) { + cimg_usage("A simple image to ASCII-art converter.\n\nUsage : image2ascii [options] image"); + + // Read command line parameters + const char *const file_i = cimg_option("-i",(char*)0,"Input image"); + const char *const geom = cimg_option("-g","79x40","Output size"); + const int alphabet = cimg_option("-a",0,"Alphabet type (0=full, 1=numbers, 2=letters, 3=signs, 4=minimal"); + const bool invert = cimg_option("-invert",false,"Invert image intensities"); + const float contour = (float)cimg_option("-contour",0.0f,"Use image contours higher than specified threshold"); + const float blur = (float)cimg_option("-blur",0.8f,"Image pre-blur"); + const float sigma = (float)cimg_option("-sigma",10.0f,"Font pre-blur"); + + int w = 79, h = 40; + std::sscanf(geom,"%d%*c%d",&w,&h); + if (cimg_option("-h",false,0)) std::exit(0); + + // Init fonts + CImgList<> font_full = CImgList<>::font(13,false); + font_full.remove(0,255); + const int fw = font_full[(int)'A'].width(), fh = font_full[(int)'A'].height(); + CImgList<> font, font_blur; + CImgList font_code; + + switch (alphabet) { + case 1: { + font_code.insert(CImg<>::vector(' ')); + for (unsigned char l='0'; l<='9'; l++) font_code.insert(CImg<>::vector(l)); + } break; + case 2: { + font_code.insert(CImg<>::vector(' ')); + for (unsigned char l='A'; l<='Z'; l++) font_code.insert(CImg<>::vector(l)); + } break; + case 3: { + font_code.insert(CImg<>::vector(' ')); + font_code.insert(CImg<>::vector('-')); + font_code.insert(CImg<>::vector('_')); + font_code.insert(CImg<>::vector('|')); + font_code.insert(CImg<>::vector('/')); + font_code.insert(CImg<>::vector('\\')); + font_code.insert(CImg<>::vector('+')); + font_code.insert(CImg<>::vector('.')); + font_code.insert(CImg<>::vector('*')); + font_code.insert(CImg<>::vector('=')); + font_code.insert(CImg<>::vector(']')); + font_code.insert(CImg<>::vector('[')); + font_code.insert(CImg<>::vector('(')); + font_code.insert(CImg<>::vector(')')); + font_code.insert(CImg<>::vector('{')); + font_code.insert(CImg<>::vector('}')); + font_code.insert(CImg<>::vector('"')); + font_code.insert(CImg<>::vector('!')); + font_code.insert(CImg<>::vector('$')); + } break; + case 4: { + font_code.insert(CImg<>::vector(' ')); + font_code.insert(CImg<>::vector('.')); + font_code.insert(CImg<>::vector('/')); + font_code.insert(CImg<>::vector('\\')); + font_code.insert(CImg<>::vector('_')); + font_code.insert(CImg<>::vector('_')); + font_code.insert(CImg<>::vector('|')); + } break; + default: { for (unsigned char l=' '; l<='~'; l++) font_code.insert(CImg<>::vector(l)); } break; + } + cimglist_for(font_code,l) { + font.insert(font_full(font_code[l](0))); + font_blur.insert(font[l].get_resize(fw,fh,1,1).blur(sigma).normalize(0,255)); + } + + // Init images + CImg<> img; + if (!file_i) { float white[3] = { 255,255,255 }; img.assign().draw_text(0,0," Conan\nRocks !",white); } + else img.assign(file_i); + img.norm().resize(fw*w,fh*h); + if (blur) img.blur(blur); + if (contour>0) { + CImgList<> grad = img.get_gradient("xy",4); + img = (grad[0].pow(2) + grad[1].pow(2)).sqrt().normalize(0,100).threshold(contour); + } + img.normalize(0,255); + if (invert) img = 255.0f - img; + CImg dest(w,h,1,1,0); + + // Render ASCII-art image, using a simple correlation method. + CImg<> neigh; + cimg_forY(dest,y) { cimg_forX(dest,x) { + neigh = img.get_crop(x*fw,y*fh,(x + 1)*fw,(y + 1)*fh); + float scoremin = 2e28f; + unsigned int best = 0; + cimglist_for(font_code,l) { + const CImg<>& letter = font_blur[l]; + const float score = (float)((letter - neigh).pow(2).sum()); + if (score= "18" and self.settings.compiler == "gcc": + bin_dir = os.path.join(self._package_folder_path, "bin") + gcc_install_triplet = f"--gcc-install-dir={os.environ['GCC_INSTALL_TRIPLET']}\n" + with open(os.path.join(bin_dir, "clang.cfg"), "w") as f: + f.write(gcc_install_triplet) + with open(os.path.join(bin_dir, "clang++.cfg"), "w") as f: + f.write(gcc_install_triplet) + with open(os.path.join(bin_dir, "clang-cpp.cfg"), "w") as f: + f.write(gcc_install_triplet) + def package_info(self): self.cpp_info.set_property("cmake_file_name", "LLVM") self.cpp_info.set_property("cmake_build_modules", diff --git a/packages/conan/recipes/glib/conanfile.py b/packages/conan/recipes/glib/conanfile.py index 5ce050de..bd824937 100644 --- a/packages/conan/recipes/glib/conanfile.py +++ b/packages/conan/recipes/glib/conanfile.py @@ -26,9 +26,9 @@ def requirements(self): def package_info(self): self.cpp_info.components["glib-2.0"].set_property("pkg_config_name", "glib-2.0") self.cpp_info.components["glib-2.0"].system_libs = ["glib-2.0"] - self.cpp_info.components["glib-2.0"].includedirs += [ - os.path.join("include", "glib-2.0"), - os.path.join("lib", "glib-2.0", "include") + self.cpp_info.components["glib-2.0"].includedirs = [ + "/usr/include/glib-2.0", + "/usr/lib64/glib-2.0/include" ] self.cpp_info.components["glib-2.0"].resdirs = ["res"] @@ -71,7 +71,7 @@ def package_info(self): self.cpp_info.components["gio-unix-2.0"].set_property("pkg_config_name", "gio-unix-2.0") self.cpp_info.components["gio-unix-2.0"].requires += ["gobject-2.0", "gio-2.0"] - self.cpp_info.components["gio-unix-2.0"].includedirs = [os.path.join("include", "gio-unix-2.0")] + self.cpp_info.components["gio-unix-2.0"].includedirs = ["/usr/include/gio-unix-2.0"] self.cpp_info.components["glib-2.0"].requires.append("pcre2::pcre2") diff --git a/packages/conan/recipes/harfbuzz/conandata.yml b/packages/conan/recipes/harfbuzz/conandata.yml new file mode 100644 index 00000000..ee717246 --- /dev/null +++ b/packages/conan/recipes/harfbuzz/conandata.yml @@ -0,0 +1,46 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/bad5c95b810e859c1c31553b92584246fe436d69/recipes/harfbuzz/all/conandata.yml + +sources: + "11.2.1": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/11.2.1/harfbuzz-11.2.1.tar.xz" + sha256: "093714c8548a285094685f0bdc999e202d666b59eeb3df2ff921ab68b8336a49" + "11.0.1": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/11.0.1/harfbuzz-11.0.1.tar.xz" + sha256: "4a7890090538136db64742073af4b4d776ab8b50e6855676a8165eb8b7f60b7a" + "10.4.0": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/10.4.0/harfbuzz-10.4.0.tar.xz" + sha256: "480b6d25014169300669aa1fc39fb356c142d5028324ea52b3a27648b9beaad8" + "8.3.0": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/8.3.0/harfbuzz-8.3.0.tar.xz" + sha256: "109501eaeb8bde3eadb25fab4164e993fbace29c3d775bcaa1c1e58e2f15f847" + "8.2.2": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/8.2.2/harfbuzz-8.2.2.tar.xz" + sha256: "e433ad85fbdf57f680be29479b3f964577379aaf319f557eb76569f0ecbc90f3" + "8.2.1": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/8.2.1/harfbuzz-8.2.1.tar.xz" + sha256: "0fec78f98c9c8faf228957a201c8846f809452c20f8445eb092a1ba6f22dbea5" + "8.1.1": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/8.1.1/harfbuzz-8.1.1.tar.xz" + sha256: "0305ad702e11906a5fc0c1ba11c270b7f64a8f5390d676aacfd71db129d6565f" + "8.0.1": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/8.0.1/harfbuzz-8.0.1.tar.xz" + sha256: "c1ce780acd385569f25b9a29603d1d5bc71e6940e55bfdd4f7266fad50e42620" + "7.3.0": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/7.3.0/harfbuzz-7.3.0.tar.xz" + sha256: "20770789749ac9ba846df33983dbda22db836c70d9f5d050cb9aa5347094a8fb" + "6.0.0": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/6.0.0/harfbuzz-6.0.0.tar.xz" + sha256: "1d1010a1751d076d5291e433c138502a794d679a7498d1268ee21e2d4a140eb4" + "5.1.0": + url: "https://github.com/harfbuzz/harfbuzz/releases/download/5.1.0/harfbuzz-5.1.0.tar.xz" + sha256: "2edb95db668781aaa8d60959d21be2ff80085f31b12053cdd660d9a50ce84f05" +patches: + "5.1.0": + - patch_file: "patches/0000-fix-freetype-lookup-5.1.0.patch" + patch_type: "portability" + patch_description: "fix fretype and icu dependency lookup" + patch_source: "https://github.com/harfbuzz/harfbuzz/pull/3811" diff --git a/packages/conan/recipes/harfbuzz/conanfile.py b/packages/conan/recipes/harfbuzz/conanfile.py new file mode 100644 index 00000000..44a70789 --- /dev/null +++ b/packages/conan/recipes/harfbuzz/conanfile.py @@ -0,0 +1,235 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/bad5c95b810e859c1c31553b92584246fe436d69/recipes/harfbuzz/all/conanfile.py + +from conan import ConanFile, conan_version +from conan.errors import ConanInvalidConfiguration +from conan.tools.apple import is_apple_os, fix_apple_shared_install_name +from conan.tools.build import can_run, stdcpp_library +from conan.tools.env import Environment, VirtualBuildEnv +from conan.tools.files import apply_conandata_patches, copy, export_conandata_patches, get, rm, rmdir, replace_in_file +from conan.tools.gnu import PkgConfigDeps +from conan.tools.layout import basic_layout +from conan.tools.meson import Meson, MesonToolchain +from conan.tools.microsoft import is_msvc_static_runtime, is_msvc +from conan.tools.scm import Version + +import os + +required_conan_version = ">=1.60.0 <2.0 || >=2.0.6" + + +class HarfbuzzConan(ConanFile): + name = "harfbuzz" + description = "HarfBuzz is an OpenType text shaping engine." + topics = ("opentype", "text", "engine") + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://harfbuzz.github.io/" + license = "MIT" + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "with_freetype": [True, False], + "with_icu": [True, False], + "with_glib": [True, False], + "with_gdi": [True, False], + "with_uniscribe": [True, False], + "with_directwrite": [True, False], + "with_subset": [True, False], + "with_coretext": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + "with_freetype": True, + "with_icu": False, + "with_glib": False, # ASWF: complicated dependency + "with_gdi": True, + "with_uniscribe": True, + "with_directwrite": False, + "with_subset": False, + "with_coretext": True, + } + + short_paths = True + + @property + def _settings_build(self): + return getattr(self, "settings_build", self.settings) + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + else: + del self.options.with_gdi + del self.options.with_uniscribe + del self.options.with_directwrite + if not is_apple_os(self): + del self.options.with_coretext + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + if self.options.shared and self.options.with_glib: + wildcard = "" if Version(conan_version) < "2.0.0" else "/*" + self.options[f"glib{wildcard}"].shared = True + + def layout(self): + basic_layout(self, src_folder="src") + + def requirements(self): + if self.options.with_freetype: + self.requires("freetype/2.13.2") + if self.options.with_icu: + self.requires("icu/74.1") + if self.options.with_glib: + self.requires("glib/2.78.3") + + def validate(self): + # ASWF: annoying to check with a system wrapper + # if self.options.shared and self.options.with_glib and not self.dependencies["glib"].options.shared: + # raise ConanInvalidConfiguration( + # "Linking a shared library against static glib can cause unexpected behaviour." + # ) + if self.settings.compiler == "gcc" and Version(self.settings.compiler.version) < "7": + raise ConanInvalidConfiguration("New versions of harfbuzz require at least gcc 7") + + # ASWF: test for Windows first + if is_msvc_static_runtime(self) and self.options.with_glib and self.dependencies["glib"].options.shared: + raise ConanInvalidConfiguration( + "Linking shared glib with the MSVC static runtime is not supported" + ) + + def build_requirements(self): + self.tool_requires("meson/1.4.0") + if not self.conf.get("tools.gnu:pkg_config", check_type=str): + self.tool_requires("pkgconf/2.1.0") + # ASWF: this makes trouble for dependencies + # if self.options.with_glib: + # self.tool_requires("glib/") + if self.settings.os == "Macos": + # Ensure that the gettext we use at build time is compatible + # with the libiconv that is transitively exposed by glib + self.tool_requires("gettext/0.21") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + def is_enabled(value): + return "enabled" if value else "disabled" + + def meson_backend_and_flags(): + def is_vs_2017(): + version = Version(self.settings.compiler.version) + return version == "15" or version == "191" + + if is_msvc(self) and is_vs_2017() and self.settings.build_type == "Debug": + # Mitigate https://learn.microsoft.com/en-us/cpp/build/reference/zf?view=msvc-170 + return "vs", ["/bigobj"] + return "ninja", [] + + VirtualBuildEnv(self).generate() + + # Avoid conflicts with libiconv + # see: https://github.com/conan-io/conan-center-index/pull/17046#issuecomment-1554629094 + if self._settings_build.os == "Macos": + env = Environment() + env.define_path("DYLD_FALLBACK_LIBRARY_PATH", "$DYLD_LIBRARY_PATH") + env.define_path("DYLD_LIBRARY_PATH", "") + env.vars(self, scope="build").save_script("conanbuild_macos_runtimepath") + + PkgConfigDeps(self).generate() + + backend, cxxflags = meson_backend_and_flags() + tc = MesonToolchain(self, backend=backend) + tc.project_options["auto_features"] = "disabled" + tc.project_options.update({ + "glib": is_enabled(self.options.with_glib), + "icu": is_enabled(self.options.with_icu), + "freetype": is_enabled(self.options.with_freetype), + "gdi": is_enabled(self.options.get_safe("with_gdi")), + "coretext": is_enabled(self.options.get_safe("with_coretext")), + "directwrite": is_enabled(self.options.get_safe("with_directwrite")), + "gobject": is_enabled(can_run(self) and self.options.with_glib), + "introspection": is_enabled(False), + "tests": "disabled", + "docs": "disabled", + "benchmark": "disabled", + "icu_builtin": "false" + }) + tc.cpp_args += cxxflags + tc.generate() + + def build(self): + apply_conandata_patches(self) + replace_in_file(self, os.path.join(self.source_folder, "meson.build"), "subdir('util')", "") + meson = Meson(self) + meson.configure() + meson.build() + + def package(self): + copy(self, "COPYING", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) # ASWF: licenses in per package dir + meson = Meson(self) + meson.install() + rm(self, "*.pdb", os.path.join(self.package_folder, "bin")) + # rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) # ASWF: Keep cmake files + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + fix_apple_shared_install_name(self) + fix_msvc_libname(self) + + def package_info(self): + self.cpp_info.set_property("cmake_file_name", "harfbuzz") + self.cpp_info.set_property("cmake_target_name", "harfbuzz::harfbuzz") + self.cpp_info.set_property("pkg_config_name", "harfbuzz") + if self.options.with_icu: + self.cpp_info.libs.append("harfbuzz-icu") + if self.options.with_subset: + self.cpp_info.libs.append("harfbuzz-subset") + self.cpp_info.libs.append("harfbuzz") + self.cpp_info.includedirs.append(os.path.join("include", "harfbuzz")) + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.system_libs.append("m") + if self.settings.os == "Windows" and not self.options.shared: + self.cpp_info.system_libs.append("user32") + if self.options.with_gdi or self.options.with_uniscribe: + self.cpp_info.system_libs.append("gdi32") + if self.options.with_uniscribe or self.options.with_directwrite: + self.cpp_info.system_libs.append("rpcrt4") + if self.options.with_uniscribe: + self.cpp_info.system_libs.append("usp10") + if self.options.with_directwrite: + self.cpp_info.system_libs.append("dwrite") + if is_apple_os(self) and self.options.get_safe("with_coretext", False): + if self.settings.os == "Macos": + self.cpp_info.frameworks.append("ApplicationServices") + else: + self.cpp_info.frameworks.extend(["CoreFoundation", "CoreGraphics", "CoreText"]) + if not self.options.shared: + libcxx = stdcpp_library(self) + if libcxx: + self.cpp_info.system_libs.append(libcxx) + + +def fix_msvc_libname(conanfile, remove_lib_prefix=True): + """remove lib prefix & change extension to .lib in case of cl like compiler""" + from conan.tools.files import rename + import glob + if not conanfile.settings.get_safe("compiler.runtime"): + return + libdirs = getattr(conanfile.cpp.package, "libdirs") + for libdir in libdirs: + for ext in [".dll.a", ".dll.lib", ".a"]: + full_folder = os.path.join(conanfile.package_folder, libdir) + for filepath in glob.glob(os.path.join(full_folder, f"*{ext}")): + libname = os.path.basename(filepath)[0:-len(ext)] + if remove_lib_prefix and libname[0:3] == "lib": + libname = libname[3:] + rename(conanfile, filepath, os.path.join(os.path.dirname(filepath), f"{libname}.lib")) diff --git a/packages/conan/recipes/harfbuzz/patches/0000-fix-freetype-lookup-5.1.0.patch b/packages/conan/recipes/harfbuzz/patches/0000-fix-freetype-lookup-5.1.0.patch new file mode 100644 index 00000000..f3992bf9 --- /dev/null +++ b/packages/conan/recipes/harfbuzz/patches/0000-fix-freetype-lookup-5.1.0.patch @@ -0,0 +1,72 @@ +diff --git a/meson.build b/meson.build +index df4443fb2..b8b143948 100644 +--- a/meson.build ++++ b/meson.build +@@ -21,7 +21,7 @@ pkgmod = import('pkgconfig') + cpp = meson.get_compiler('cpp') + null_dep = dependency('', required: false) + +-if cpp.get_id() == 'msvc' ++if cpp.get_argument_syntax() == 'msvc' + # Ignore several spurious warnings for things HarfBuzz does very commonly. + # If a warning is completely useless and spammy, use '/wdXXXX' to suppress it + # If a warning is harmless but hard to fix, use '/woXXXX' so it's shown once +@@ -83,25 +83,39 @@ check_funcs = [ + + m_dep = cpp.find_library('m', required: false) + +-# https://github.com/harfbuzz/harfbuzz/pull/2498 +-freetype_dep = dependency(cpp.get_argument_syntax() == 'msvc' ? 'freetype' : 'freetype2', +- required: get_option('freetype'), +- default_options: ['harfbuzz=disabled']) ++ ++# Try pkgconfig name ++freetype_dep = dependency('freetype2', required: false) ++if not freetype_dep.found() ++ # Try cmake name ++ freetype_dep = dependency('freetype', required: false) ++endif ++if not freetype_dep.found() ++ # Subproject fallback, `allow_fallback: true` means the fallback will be ++ # tried even if the freetype option is set to `auto`. ++ freetype_dep = dependency('freetype2', ++ required: get_option('freetype'), ++ default_options: ['harfbuzz=disabled'], ++ allow_fallback: true) ++endif + + glib_dep = dependency('glib-2.0', required: get_option('glib')) + gobject_dep = dependency('gobject-2.0', required: get_option('gobject')) + graphite2_dep = dependency('graphite2', required: get_option('graphite2')) + graphite_dep = dependency('graphite2', required: get_option('graphite')) + +-if cpp.get_argument_syntax() == 'msvc' ++# Try pkgconfig name ++icu_dep = dependency('icu-uc', required: false) ++if not icu_dep.found() ++ # Try cmake name + icu_dep = dependency('ICU', +- required: get_option('icu'), ++ required: false, + components: 'uc', + method: 'cmake') +-else +- icu_dep = dependency('icu-uc', +- required: get_option('icu'), +- method: 'pkg-config') ++endif ++if not icu_dep.found() ++ # Subproject fallback if icu option is enabled ++ icu_dep = dependency('icu-uc', required: get_option('icu')) + endif + + if icu_dep.found() and icu_dep.type_name() == 'pkgconfig' +@@ -118,7 +132,7 @@ if not get_option('cairo').disabled() + cairo_ft_dep = dependency('cairo-ft', required: false) + + if (not cairo_dep.found() and +- cpp.get_id() == 'msvc' and ++ cpp.get_argument_syntax() == 'msvc' and + cpp.has_header('cairo.h')) + cairo_dep = cpp.find_library('cairo', required: false) + if cairo_dep.found() and cpp.has_function('cairo_ft_font_face_create_for_ft_face', diff --git a/packages/conan/recipes/harfbuzz/test_package/CMakeLists.txt b/packages/conan/recipes/harfbuzz/test_package/CMakeLists.txt new file mode 100644 index 00000000..5b3d18af --- /dev/null +++ b/packages/conan/recipes/harfbuzz/test_package/CMakeLists.txt @@ -0,0 +1,14 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/bad5c95b810e859c1c31553b92584246fe436d69/recipes/harfbuzz/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.8) +project(test_package LANGUAGES C) + +find_package(harfbuzz REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.c) +target_link_libraries(${PROJECT_NAME} PRIVATE harfbuzz::harfbuzz) +target_compile_features(${PROJECT_NAME} PRIVATE c_std_99) diff --git a/packages/conan/recipes/openfx/test_package/conanfile.py b/packages/conan/recipes/harfbuzz/test_package/conanfile.py similarity index 63% rename from packages/conan/recipes/openfx/test_package/conanfile.py rename to packages/conan/recipes/harfbuzz/test_package/conanfile.py index cd738481..e9215518 100644 --- a/packages/conan/recipes/openfx/test_package/conanfile.py +++ b/packages/conan/recipes/harfbuzz/test_package/conanfile.py @@ -2,25 +2,26 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/test_package/conanfile.py +# From: https://github.com/conan-io/conan-center-index/blob/bad5c95b810e859c1c31553b92584246fe436d69/recipes/harfbuzz/all/test_package/conanfile.py from conan import ConanFile from conan.tools.build import can_run -from conan.tools.cmake import cmake_layout, CMake +from conan.tools.cmake import CMake, cmake_layout + import os class TestPackageConan(ConanFile): - settings = "os", "arch", "compiler", "build_type" - generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + settings = "os", "compiler", "build_type", "arch" test_type = "explicit" - - def requirements(self): - self.requires(self.tested_reference_str) + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" def layout(self): cmake_layout(self) + def requirements(self): + self.requires(self.tested_reference_str) + def build(self): cmake = CMake(self) cmake.configure() @@ -28,5 +29,5 @@ def build(self): def test(self): if can_run(self): - bin_path = os.path.join(self.cpp.build.bindir, "test_package") - self.run(f"{bin_path} --help", env="conanrun") + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/harfbuzz/test_package/test_package.c b/packages/conan/recipes/harfbuzz/test_package/test_package.c new file mode 100644 index 00000000..c7979489 --- /dev/null +++ b/packages/conan/recipes/harfbuzz/test_package/test_package.c @@ -0,0 +1,17 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/bad5c95b810e859c1c31553b92584246fe436d69/recipes/harfbuzz/all/test_package/test_package.c +*/ + +#include +#include +#include + +int main() { + const char *version = hb_version_string(); + printf("harfbuzz version: %s\n", version); + return 0; +} diff --git a/packages/conan/recipes/imath/conanfile.py b/packages/conan/recipes/imath/conanfile.py index 11fe55a7..f8cecf0d 100644 --- a/packages/conan/recipes/imath/conanfile.py +++ b/packages/conan/recipes/imath/conanfile.py @@ -72,9 +72,6 @@ def generate(self): # ASWF: Build Python and Pybind11 bindings tc.variables["PYTHON"] = "ON" tc.variables["PYBIND11"] = "ON" - # ASWF: FIXME: Python_ROOT and Boost_ROOT required to find Conan-installed packages? - # tc.cache_variables["Python_ROOT"] = self.deps_cpp_info["python"].rootpath - # tc.cache_variables["Boost_ROOT"] = self.deps_cpp_info["boost"].rootpath tc.generate() def build(self): @@ -96,7 +93,6 @@ def package(self): def package_info(self): # ASWF: Imath will use pybind11 soon, requires boost self.cpp_info.requires.append("cpython::cpython") - self.cpp_info.requires.append("boost::boost") self.cpp_info.requires.append("pybind11::pybind11") self.cpp_info.set_property("cmake_file_name", "Imath") @@ -114,6 +110,7 @@ def package_info(self): imath_lib.set_property("pkg_config_name", "Imath") imath_lib.libs = collect_libs(self) imath_lib.requires = ["imath_config"] + imath_lib.requires.extend(["boost::boost", "boost::python", "boost::graph", "boost::container"]) if self.settings.os == "Windows" and self.options.shared: imath_lib.defines.append("IMATH_DLL") diff --git a/packages/conan/recipes/libjpeg-turbo/conanfile.py b/packages/conan/recipes/libjpeg-turbo/conanfile.py index bfbe582c..c94fb11e 100644 --- a/packages/conan/recipes/libjpeg-turbo/conanfile.py +++ b/packages/conan/recipes/libjpeg-turbo/conanfile.py @@ -6,7 +6,7 @@ from conan import ConanFile from conan.errors import ConanInvalidConfiguration -from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout +from conan.tools.cmake import CMake, CMakeToolchain, CMakeDeps, cmake_layout from conan.tools.env import VirtualBuildEnv from conan.tools.files import copy, get, replace_in_file, rm, rmdir from conan.tools.microsoft import is_msvc, is_msvc_static_runtime @@ -129,6 +129,9 @@ def generate(self): if Version(self.version) < "3.0.2": tc.cache_variables["CMAKE_POLICY_VERSION_MINIMUM"] = "3.5" # CMake 4 support tc.generate() + # ASWF: generate CMake dependencies + deps = CMakeDeps(self) + deps.generate() def _patch_sources(self): # use standard GNUInstallDirs.cmake - custom one is broken diff --git a/packages/conan/recipes/libultrahdr/conanfile.py b/packages/conan/recipes/libultrahdr/conanfile.py index 857e438d..dcbfac18 100644 --- a/packages/conan/recipes/libultrahdr/conanfile.py +++ b/packages/conan/recipes/libultrahdr/conanfile.py @@ -102,6 +102,8 @@ def package_info(self): self.cpp_info.requires = ["libjpeg::libjpeg"] elif self.options.with_jpeg == "libjpeg-turbo": self.cpp_info.requires = ["libjpeg-turbo::jpeg"] + # ASWF: we build libjpeg-turbo with turbojpeg enabled, propagate dependency + self.cpp_info.requires.append("libjpeg-turbo::turbojpeg") elif self.options.with_jpeg == "mozjpeg": self.cpp_info.requires = ["mozjpeg::libjpeg"] diff --git a/packages/conan/recipes/oiio/conandata.yml b/packages/conan/recipes/oiio/conandata.yml index b59a64d2..961ee7d5 100644 --- a/packages/conan/recipes/oiio/conandata.yml +++ b/packages/conan/recipes/oiio/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/openimageio/all/conandata.yml sources: + "3.0.9.0": + url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.9.0.tar.gz" + sha256: "2618f024d33b03fd003ce272e9a2a78d3bffd4c78cf8a1a058a9def715bb8bc9" "3.0.8.1": url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.8.1.tar.gz" sha256: "1b9b0d27e802243c1aa490b951580d10e8be645459f8080bfa0ed6f213e1082a" @@ -116,3 +119,13 @@ patches: - patch_file: "patches/3.0.8.1-raw-jp2k-cmake.patch" patch_description: "Find local builds of LibRaw, OpenJPEG" patch_type: "conan" + "3.0.9.0": + - patch_file: "patches/3.0.6.1-cmake-fmt.patch" + patch_description: "Deal with generator expression from fmt Conan package" + patch_type: "conan" + - patch_file: "patches/3.0.8.1-utils-includes-libs.patch" + patch_description: "Missing includes and libs for binaries" + patch_type: "conan" + - patch_file: "patches/3.0.8.1-raw-jp2k-cmake.patch" + patch_description: "Find local builds of LibRaw, OpenJPEG" + patch_type: "conan" diff --git a/packages/conan/recipes/opencl-headers/conanfile.py b/packages/conan/recipes/opencl-headers/conanfile.py new file mode 100644 index 00000000..9894ab33 --- /dev/null +++ b/packages/conan/recipes/opencl-headers/conanfile.py @@ -0,0 +1,18 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/opencl-headers/all/conanfile.py + +from conan import ConanFile + +class SystemOpenclHeadersConan(ConanFile): + name = "opencl-headers" + version = "system" + + def package_info(self): + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = [] + + self.cpp_info.set_property("cmake_file_name", "OpenCLHeaders") + self.cpp_info.set_property("cmake_target_name", "OpenCL::Headers") diff --git a/packages/conan/recipes/opencl-icd-loader/conanfile.py b/packages/conan/recipes/opencl-icd-loader/conanfile.py new file mode 100644 index 00000000..a0f0dea0 --- /dev/null +++ b/packages/conan/recipes/opencl-icd-loader/conanfile.py @@ -0,0 +1,20 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/opencl-icd-loader/all/conanfile.py + +from conan import ConanFile + +class SystemOpenclIcdLoaderConan(ConanFile): + name = "opencl-icd-loader" + version = "system" + + def package_info(self): + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["OpenCL"] + + self.cpp_info.set_property("cmake_find_mode", "both") + self.cpp_info.set_property("cmake_module_file_name", "OpenCL") + self.cpp_info.set_property("cmake_file_name", "OpenCLICDLoader") + self.cpp_info.set_property("cmake_target_name", "OpenCL::OpenCL") diff --git a/packages/conan/recipes/openexr/conandata.yml b/packages/conan/recipes/openexr/conandata.yml index 7baa2f9e..d1bcbeee 100644 --- a/packages/conan/recipes/openexr/conandata.yml +++ b/packages/conan/recipes/openexr/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/cceee569179c10fa56d1fd9c3582f3371944ba59/recipes/openexr/3.x/conandata.yml sources: + "3.4-alpha": + url: "https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.4-alpha.tar.gz" + sha256: "5a78b497576a323979b03a343ad63a253d955462365c67597ab6fcac87e79193" "3.3.5": url: "https://github.com/AcademySoftwareFoundation/openexr/releases/download/v3.3.5/openexr-3.3.5.tar.gz" sha256: "8f9241f0e9d6b7aec7e9509cf2a9224416b9cd9d41740deab3827b1f2d01c662" diff --git a/packages/conan/recipes/openfx/CMakeLists.txt b/packages/conan/recipes/openfx/CMakeLists.txt deleted file mode 100644 index 5457a920..00000000 --- a/packages/conan/recipes/openfx/CMakeLists.txt +++ /dev/null @@ -1,78 +0,0 @@ -# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: MIT -# -# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/CMakeLists.txt - -cmake_minimum_required(VERSION 3.12) -project(openfx VERSION 1.4.0 LANGUAGES CXX) -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -add_definitions(-D_HAS_AUTO_PTR_ETC) - -# Flags -if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWINDOWS -DNOMINMAX -D_WIN32") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations") - add_definitions(-Dlinux) -endif() - -# Conan -find_package(expat REQUIRED) -find_package(OpenGL REQUIRED) - -# Macros -set(SOURCE_SUBFOLDER ${CMAKE_CURRENT_LIST_DIR}/src) - -# Sources -set(OFX_HEADER_DIR "${SOURCE_SUBFOLDER}/include") -set(OFX_SUPPORT_HEADER_DIR "${SOURCE_SUBFOLDER}/Support/include") -set(OFX_SUPPORT_LIBRARY_DIR "${SOURCE_SUBFOLDER}/Support/Library") -set(OFX_PLUGINS_HEADER_DIR "${SOURCE_SUBFOLDER}/Support/Plugins/include") -set(OFX_HOSTSUPPORT_HEADER_DIR "${SOURCE_SUBFOLDER}/HostSupport/include") -set(OFX_HOSTSUPPORT_LIBRARY_DIR "${SOURCE_SUBFOLDER}/HostSupport/src") - -file(GLOB_RECURSE OFX_HEADER_FILES "${OFX_HEADER_DIR}/*.h") -file(GLOB_RECURSE OFX_SUPPORT_HEADER_FILES "${OFX_SUPPORT_HEADER_DIR}/*.h") -file(GLOB_RECURSE OFX_SUPPORT_LIBRARY_FILES "${OFX_SUPPORT_LIBRARY_DIR}/*.cpp") -file(GLOB_RECURSE OFX_PLUGINS_HEADER_FILES "${OFX_PLUGINS_HEADER_DIR}/*.H") -file(GLOB_RECURSE OFX_HOSTSUPPORT_HEADER_FILES "${OFX_HOSTSUPPORT_HEADER_DIR}/*.h") -file(GLOB_RECURSE OFX_HOSTSUPPORT_LIBRARY_FILES "${OFX_HOSTSUPPORT_LIBRARY_DIR}/*.cpp") - -# Support -add_library(OfxSupport STATIC - ${OFX_HEADER_FILES} - ${OFX_SUPPORT_HEADER_FILES} - ${OFX_SUPPORT_LIBRARY_FILES}) - -target_include_directories(OfxSupport PUBLIC - ${OFX_HEADER_DIR} - ${OFX_SUPPORT_HEADER_DIR}) - -# HostSupport -add_library(OfxHost - ${OFX_HEADER_FILES} - ${OFX_HOSTSUPPORT_HEADER_FILES} - ${OFX_HOSTSUPPORT_LIBRARY_FILES}) - -target_link_libraries(OfxHost PUBLIC expat::expat OpenGL::GL) - -target_include_directories(OfxHost PUBLIC - ${OFX_HEADER_DIR} - ${OFX_HOSTSUPPORT_HEADER_DIR}) - -# Link -set_target_properties(OfxSupport PROPERTIES LINKER_LANGUAGE CXX) -set_target_properties(OfxHost PROPERTIES LINKER_LANGUAGE CXX) - -# Install -install(FILES - ${OFX_HEADER_FILES} - ${OFX_SUPPORT_HEADER_FILES} - ${OFX_PLUGINS_HEADER_FILES} - ${OFX_HOSTSUPPORT_HEADER_FILES} - DESTINATION "include") - -include(GNUInstallDirs) -install(TARGETS OfxSupport OfxHost) diff --git a/packages/conan/recipes/openfx/cmake/OpenFX.cmake b/packages/conan/recipes/openfx/cmake/OpenFX.cmake deleted file mode 100644 index 5152ecbe..00000000 --- a/packages/conan/recipes/openfx/cmake/OpenFX.cmake +++ /dev/null @@ -1,22 +0,0 @@ -# Add a new OFX plugin target -# Arguments: TARGET -function(add_ofx_plugin TARGET) - add_library(${TARGET} SHARED) - set_target_properties(${TARGET} PROPERTIES SUFFIX ".ofx" PREFIX "") - - if(NOT DEFINED OFX_SUPPORT_SYMBOLS_DIR) - if (NOT DEFINED CONAN_LIB_DIRS_OPENFX) - message(FATAL_ERROR "Define OFX_SUPPORT_SYMBOLS_DIR to use add_ofx_plugin().") - endif() - set(OFX_SUPPORT_SYMBOLS_DIR ${CONAN_LIB_DIRS_OPENFX}/symbols) - endif() - - # Add extra flags to the link step of the plugin - if(APPLE) - set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-bundle -fvisibility=hidden -exported_symbols_list,${OFX_SUPPORT_SYMBOLS_DIR}/osx.symbols") - elseif(WIN32) - set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "/def:${OFX_SUPPORT_SYMBOLS_DIR}/windows.symbols") - else() - set_target_properties(${TARGET} PROPERTIES LINK_FLAGS "-Wl,-fvisibility=hidden,--version-script=${OFX_SUPPORT_SYMBOLS_DIR}/linux.symbols") - endif() -endfunction() diff --git a/packages/conan/recipes/openfx/conandata.yml b/packages/conan/recipes/openfx/conandata.yml index 1f985157..803a31bf 100644 --- a/packages/conan/recipes/openfx/conandata.yml +++ b/packages/conan/recipes/openfx/conandata.yml @@ -7,8 +7,14 @@ sources: "1.5s": url: "https://github.com/AcademySoftwareFoundation/openfx/archive/refs/tags/OFX_Release_1.5s.tar.gz" + sha256: "09edcd56f1dad4d07514a247bf1cd7e8459b99df8206f434be018dabb32b367c" "1.5": url: "https://github.com/AcademySoftwareFoundation/openfx/archive/refs/tags/OFX_Release_1.5.tar.gz" + sha256: "553a8e2c24eabd263e6ece8d85fd08650c9601b689dd8c16dfa0c5895bb078d3" "1.4": url: "https://github.com/ofxa/openfx/archive/refs/tags/OFX_Release_1_4_TAG.tar.gz" sha256: "1f2d057b2cff025979f631f092f138020315524d4c0c0dcc2dccdadc2313a62f" +patches: + "1.5s": + - patch_file: "patches/openfx_cmake_relative.patch" + patch_description: "Don't reference CMake source directory" diff --git a/packages/conan/recipes/openfx/conanfile.py b/packages/conan/recipes/openfx/conanfile.py index 526d101c..ebb04325 100644 --- a/packages/conan/recipes/openfx/conanfile.py +++ b/packages/conan/recipes/openfx/conanfile.py @@ -1,118 +1,124 @@ -# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the OpenFX Project. All rights reserved. # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: MIT +# SPDX-License-Identifier: BSD 3-Clause # -# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/conanfile.py +# This conanfile.py comes from the OpenFX project itself until it gets accepted +# into the Conan Center Index. +# +# From: https://github.com/AcademySoftwareFoundation/openfx/blob/158c8b69d9a2016755696138e027fdfd71bab552/conanfile.py -import os from conan import ConanFile -from conan.tools.apple import is_apple_os -from conan.tools.build import check_min_cppstd from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout -from conan.tools.files import copy, get, rmdir - -required_conan_version = ">=1.53.0" +from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, collect_libs, get +import os +required_conan_version = ">=1.59.0" class openfx(ConanFile): - name = "openfx" - description = "OpenFX image processing plug-in standard." - license = "BSD-3-Clause" - url = "https://github.com/conan-io/conan-center-index" - homepage = "http://openeffects.org" - topics = ("image-processing", "standard") - - package_type = "library" - settings = "os", "arch", "compiler", "build_type" - options = { - "shared": [True, False], - "fPIC": [True, False], - } - default_options = { - "shared": False, - "fPIC": True, - } - - def export_sources(self): - copy(self, "CMakeLists.txt", src=self.recipe_folder, dst=self.export_sources_folder) - copy(self, "*", - src=os.path.join(self.recipe_folder, "cmake"), - dst=os.path.join(self.export_sources_folder, "cmake")) - copy(self, "*", - src=os.path.join(self.recipe_folder, "symbols"), - dst=os.path.join(self.export_sources_folder, "symbols")) - - def config_options(self): - if self.settings.os == "Windows": - del self.options.fPIC - - def configure(self): - if self.options.shared: - self.options.rm_safe("fPIC") - - def layout(self): - cmake_layout(self, src_folder="src") - - def requirements(self): - self.requires("opengl/system") - self.requires("expat/[>=2.6.2 <3]") - - def validate(self): - if self.settings.compiler.get_safe("cppstd"): - check_min_cppstd(self, 11) - - def source(self): - get(self, **self.conan_data["sources"][self.version], strip_root=True) - - def generate(self): - tc = CMakeToolchain(self) - tc.generate() - tc = CMakeDeps(self) - tc.generate() - - def build(self): - cmake = CMake(self) - cmake.configure(build_script_folder=self.source_path.parent) - cmake.build() - - @property - def _build_modules(self): - return [os.path.join("lib", "cmake", "OpenFX.cmake")] - - def package(self): - cmake = CMake(self) - cmake.install() - rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) - rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) - copy(self, "*.symbols", - src=os.path.join(self.export_sources_folder, "symbols"), - dst=os.path.join(self.package_folder, "lib", "symbols")) - copy(self, "*.cmake", - src=os.path.join(self.export_sources_folder, "cmake"), - dst=os.path.join(self.package_folder, "lib", "cmake")) - copy(self, "LICENSE", - src=os.path.join(self.source_folder, "Support"), - dst=os.path.join(self.package_folder, "licenses")) - - def package_info(self): - self.cpp_info.set_property("cmake_file_name", "openfx") - self.cpp_info.set_property("cmake_target_name", "openfx::openfx") - self.cpp_info.set_property("cmake_build_modules", self._build_modules) - self.cpp_info.builddirs.append(os.path.join("lib", "cmake")) - - if self.options.shared: - self.cpp_info.libs = ["OfxSupport"] - else: - self.cpp_info.libs = ["OfxHost", "OfxSupport"] - - if self.settings.os in ("Linux", "FreeBSD"): - self.cpp_info.system_libs.extend(["GL"]) - if is_apple_os(self): - self.cpp_info.frameworks = ["CoreFoundation", "OpenGL"] - - # TODO: to remove in conan v2 once cmake_find_package_* generators removed - self.cpp_info.names["cmake_find_package"] = "openfx" - self.cpp_info.names["cmake_find_package_multi"] = "openfx" - self.cpp_info.build_modules["cmake_find_package"] = self._build_modules - self.cpp_info.build_modules["cmake_find_package_multi"] = self._build_modules + name = "openfx" + # version = "1.4.0" # ASWF: version comes from environment + license = "BSD-3-Clause" + url = "https://github.com/AcademySoftwareFoundation/openfx" + description = "OpenFX image processing plug-in standard" + + exports_sources = ( + "cmake/*", + "Examples/*", + "HostSupport/*", + "include/*", + "scripts/*", + "Support/*", + "CMakeLists.txt", + "LICENSE", + "README.md", + "INSTALL.md" + ) + + settings = "os", "arch", "compiler", "build_type" + options = {"use_opencl": [True, False]} + default_options = { + "expat/*:shared": True, + "use_opencl": True, # ASWF: build with OpenCL support + "spdlog/*:header_only": False, # ASWF: system spdlog is not header only + "fmt/*:header_only": False # ASWF: our fmt build is not header only + } + + def export_sources(self): + export_conandata_patches(self) + + def requirements(self): + if self.options.use_opencl: # for OpenCL examples + self.requires("opencl-icd-loader/2023.12.14") + self.requires("opencl-headers/2023.12.14") + self.requires("opengl/system") # for OpenGL examples + self.requires("expat/2.4.8") # for HostSupport + self.requires("cimg/3.3.2") # to draw text into images + self.requires("spdlog/1.13.0") # for logging + + def layout(self): + cmake_layout(self) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) # ASWF: download sources + + def generate(self): + deps = CMakeDeps(self) + deps.generate() + + tc = CMakeToolchain(self) + tc.variables["OFX_SUPPORTS_OPENGLRENDER"] = True # ASWF: exercise OpenGL / OpenCL / CUDA dependencies + tc.variables["OFX_SUPPORTS_OPENCLRENDER"] = True + tc.variables["OFX_SUPPORTS_CUDARENDER"] = True + if self.settings.os == "Windows": + tc.preprocessor_definitions["WINDOWS"] = 1 + tc.preprocessor_definitions["NOMINMAX"] = 1 + tc.generate() + + def build(self): + apply_conandata_patches(self) + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + copy(self, "cmake/*", src=self.source_folder, dst=self.package_folder) + # ASWF: license files in project specific directory + copy(self, "LICENSE, README.md, INSTALL.md", src=self.source_folder, dst=os.path.join(self.package_folder, "licenses", self.name)) + copy(self, "include/*.h", src=self.source_folder, dst=self.package_folder) + copy(self,"HostSupport/include/*.h", src=self.source_folder, dst=self.package_folder) + copy(self,"Support/*.h", src=self.source_folder, dst=self.package_folder) + copy(self,"Support/Plugins/include/*.h", src=self.source_folder, dst=self.package_folder) + copy(self,"*.a", src=self.build_folder, dst=os.path.join(self.package_folder, "lib"), keep_path=False) + copy(self,"*.lib", src=self.build_folder, dst=os.path.join(self.package_folder, "lib"), keep_path=False) + copy(self,"*.ofx", src=self.build_folder, dst=os.path.join(self.package_folder, "bin"), keep_path=False) + copy(self,"*.dll", src=self.build_folder, dst=os.path.join(self.package_folder, "bin"), keep_path=False) + copy(self,"*.so", src=self.build_folder, dst=os.path.join(self.package_folder, "bin"), keep_path=False) + copy(self,"*", src=os.path.join(self.source_folder, "Examples"), dst=os.path.join(self.package_folder, "Examples")) + + def package_info(self): + libs = collect_libs(self) + + self.cpp_info.set_property("cmake_file_name", "openfx") + self.cpp_info.set_property("cmake_target_name", "openfx::openfx") + + self.cpp_info.set_property("cmake_build_modules", [os.path.join("cmake", "OpenFX.cmake")]) + self.cpp_info.components["Api"].includedirs = ["include"] + self.cpp_info.components["HostSupport"].libs = [i for i in libs if "OfxHost" in i] + self.cpp_info.components["HostSupport"].includedirs = ["HostSupport/include"] + self.cpp_info.components["HostSupport"].requires = ["expat::expat"] + self.cpp_info.components["Support"].libs = [i for i in libs if "OfxSupport" in i] + self.cpp_info.components["Support"].includedirs = ["Support/include"] + self.cpp_info.components["Support"].requires = ["opengl::opengl"] + + if self.settings.os == "Windows": + win_defines = ["WINDOWS", "NOMINMAX"] + self.cpp_info.components["Api"].defines = win_defines + self.cpp_info.components["HostSupport"].defines = win_defines + self.cpp_info.components["Support"].defines = win_defines + + # ASWF: need to reference all dependencies to make Conan happy + # self.cpp_info.components["Examples"].set_property("cmake_examples_dir", "Examples") + self.cpp_info.components["Examples"].requires = ["spdlog::spdlog", "cimg::cimg"] + if self.options.use_opencl: # for OpenCL examples + self.cpp_info.components["Examples"].requires.extend(["opencl-icd-loader::opencl-icd-loader", "opencl-headers::opencl-headers"]) diff --git a/packages/conan/recipes/openfx/patches/openfx_cmake_relative.patch b/packages/conan/recipes/openfx/patches/openfx_cmake_relative.patch new file mode 100644 index 00000000..6d0a2cc2 --- /dev/null +++ b/packages/conan/recipes/openfx/patches/openfx_cmake_relative.patch @@ -0,0 +1,16 @@ +diff --git cmake/OpenFX.cmake cmake/OpenFX.cmake +index d99dd79ac..bfda2778a 100644 +--- cmake/OpenFX.cmake ++++ cmake/OpenFX.cmake +@@ -45,7 +45,10 @@ + set(BUNDLE_SIGNATURE "????") # any value is OK here, ignored by modern MacOS + set(PLUGIN_VERSION "1.0.0") + +- configure_file(${CMAKE_SOURCE_DIR}/Examples/Info.plist.in ++ # For the Conan test_package ++ set_target_properties(${TARGET} PROPERTIES EXAMPLES_DIR "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../Examples") ++ ++ configure_file(${CMAKE_CURRENT_FUNCTION_LIST_DIR}/../Examples/Info.plist.in + "${PLUGIN_INSTALLDIR}/${TARGET}.ofx.bundle/Contents/Info.plist") + + # Set symbol visibility hidden. Individual symbols are exposed via diff --git a/packages/conan/recipes/openfx/symbols/linux.symbols b/packages/conan/recipes/openfx/symbols/linux.symbols deleted file mode 100644 index f1dc7527..00000000 --- a/packages/conan/recipes/openfx/symbols/linux.symbols +++ /dev/null @@ -1,7 +0,0 @@ -OFX_1.0 { - global: - OfxGetNumberOfPlugins; - OfxGetPlugin; - local: - *; -}; diff --git a/packages/conan/recipes/openfx/symbols/os.symbols b/packages/conan/recipes/openfx/symbols/os.symbols deleted file mode 100644 index 669ae535..00000000 --- a/packages/conan/recipes/openfx/symbols/os.symbols +++ /dev/null @@ -1,2 +0,0 @@ -_OfxGetPlugin -_OfxGetNumberOfPlugins diff --git a/packages/conan/recipes/openfx/symbols/windows.symbols b/packages/conan/recipes/openfx/symbols/windows.symbols deleted file mode 100644 index e6734454..00000000 --- a/packages/conan/recipes/openfx/symbols/windows.symbols +++ /dev/null @@ -1,3 +0,0 @@ -EXPORTS - OfxGetPlugin - OfxGetNumberOfPlugins diff --git a/packages/conan/recipes/openfx/test_package/CMakeLists.txt b/packages/conan/recipes/openfx/test_package/CMakeLists.txt deleted file mode 100644 index ad4a1f82..00000000 --- a/packages/conan/recipes/openfx/test_package/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: MIT -# -# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/test_package/CMakeLists.txt - -cmake_minimum_required(VERSION 3.15) -project(test_package LANGUAGES CXX) - -set(CMAKE_CXX_STANDARD 11) -set(CMAKE_CXX_STANDARD_REQUIRED ON) -add_definitions(-D_HAS_AUTO_PTR_ETC) - -# Conan -find_package(openfx REQUIRED CONFIG) - -# Flags -if(MSVC) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWINDOWS -DNOMINMAX") -else() - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wno-deprecated -Wno-deprecated-declarations") -endif() - -# Build -add_executable(test_package invert.cpp) -target_link_libraries(test_package openfx::openfx) diff --git a/packages/conan/recipes/openfx/test_package/invert.cpp b/packages/conan/recipes/openfx/test_package/invert.cpp deleted file mode 100644 index 5c9cc349..00000000 --- a/packages/conan/recipes/openfx/test_package/invert.cpp +++ /dev/null @@ -1,307 +0,0 @@ -/* -# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. -# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. -# SPDX-License-Identifier: MIT -# -# From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openfx/all/test_package/invert.cpp -*/ - -/* -OFX Invert Example plugin, a plugin that illustrates the use of the OFX Support library. - -Copyright (C) 2007 The Open Effects Association Ltd -Author Bruno Nicoletti bruno@thefoundry.co.uk - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, -this list of conditions and the following disclaimer. -* Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. -* Neither the name The Open Effects Association Ltd, nor the names of its -contributors may be used to endorse or promote products derived from this -software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR -ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON -ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS -SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - -The Open Effects Association Ltd -1 Wardour St -London W1D 6PA -England - - -*/ - -#ifdef _WINDOWS -#include -#endif - -#include -#include -#include -#include -#include - -// Base class for the RGBA and the Alpha processor -class InvertBase : public OFX::ImageProcessor { -protected : - OFX::Image *_srcImg; -public : - /** @brief no arg ctor */ - InvertBase(OFX::ImageEffect &instance) - : OFX::ImageProcessor(instance) - , _srcImg(0) - { - } - - /** @brief set the src image */ - void setSrcImg(OFX::Image *v) {_srcImg = v;} -}; - -// template to do the RGBA processing -template -class ImageInverter : public InvertBase { -public : - // ctor - ImageInverter(OFX::ImageEffect &instance) - : InvertBase(instance) - {} - - // and do some processing - void multiThreadProcessImages(OfxRectI procWindow) - { - for(int y = procWindow.y1; y < procWindow.y2; y++) { - if(_effect.abort()) break; - - PIX *dstPix = (PIX *) _dstImg->getPixelAddress(procWindow.x1, y); - - for(int x = procWindow.x1; x < procWindow.x2; x++) { - - PIX *srcPix = (PIX *) (_srcImg ? _srcImg->getPixelAddress(x, y) : 0); - - // do we have a source image to scale up - if(srcPix) { - for(int c = 0; c < nComponents; c++) { - dstPix[c] = max - srcPix[c]; - } - } - else { - // no src pixel here, be black and transparent - for(int c = 0; c < nComponents; c++) { - dstPix[c] = 0; - } - } - - // increment the dst pixel - dstPix += nComponents; - } - } - } -}; - -//////////////////////////////////////////////////////////////////////////////// -/** @brief The plugin that does our work */ -class InvertPlugin : public OFX::ImageEffect { -protected : - // do not need to delete these, the ImageEffect is managing them for us - OFX::Clip *dstClip_; - OFX::Clip *srcClip_; - -public : - /** @brief ctor */ - InvertPlugin(OfxImageEffectHandle handle) - : ImageEffect(handle) - , dstClip_(0) - , srcClip_(0) - { - dstClip_ = fetchClip(kOfxImageEffectOutputClipName); - srcClip_ = fetchClip(kOfxImageEffectSimpleSourceClipName); - } - - /* Override the render */ - virtual void render(const OFX::RenderArguments &args); - - /* set up and run a processor */ - void setupAndProcess(InvertBase &, const OFX::RenderArguments &args); -}; - - -//////////////////////////////////////////////////////////////////////////////// -/** @brief render for the filter */ - -//////////////////////////////////////////////////////////////////////////////// -// basic plugin render function, just a skelington to instantiate templates from - - -/* set up and run a processor */ -void -InvertPlugin::setupAndProcess(InvertBase &processor, const OFX::RenderArguments &args) -{ - // get a dst image - std::auto_ptr dst(dstClip_->fetchImage(args.time)); - OFX::BitDepthEnum dstBitDepth = dst->getPixelDepth(); - OFX::PixelComponentEnum dstComponents = dst->getPixelComponents(); - - // fetch main input image - std::auto_ptr src(srcClip_->fetchImage(args.time)); - - // make sure bit depths are sane - if(src.get()) { - OFX::BitDepthEnum srcBitDepth = src->getPixelDepth(); - OFX::PixelComponentEnum srcComponents = src->getPixelComponents(); - - // see if they have the same depths and bytes and all - if(srcBitDepth != dstBitDepth || srcComponents != dstComponents) - throw int(1); // HACK!! need to throw an sensible exception here! - } - - // set the images - processor.setDstImg(dst.get()); - processor.setSrcImg(src.get()); - - // set the render window - processor.setRenderWindow(args.renderWindow); - - // Call the base class process member, this will call the derived templated process code - processor.process(); -} - -// the overridden render function -void -InvertPlugin::render(const OFX::RenderArguments &args) -{ - // instantiate the render code based on the pixel depth of the dst clip - OFX::BitDepthEnum dstBitDepth = dstClip_->getPixelDepth(); - OFX::PixelComponentEnum dstComponents = dstClip_->getPixelComponents(); - - // do the rendering - if(dstComponents == OFX::ePixelComponentRGBA) { - switch(dstBitDepth) { -case OFX::eBitDepthUByte : { - ImageInverter fred(*this); - setupAndProcess(fred, args); - } - break; - -case OFX::eBitDepthUShort : { - ImageInverter fred(*this); - setupAndProcess(fred, args); - } - break; - -case OFX::eBitDepthFloat : { - ImageInverter fred(*this); - setupAndProcess(fred, args); - } - break; -default : - OFX::throwSuiteStatusException(kOfxStatErrUnsupported); - } - } - else { - switch(dstBitDepth) { -case OFX::eBitDepthUByte : { - ImageInverter fred(*this); - setupAndProcess(fred, args); - } - break; - -case OFX::eBitDepthUShort : { - ImageInverter fred(*this); - setupAndProcess(fred, args); - } - break; - -case OFX::eBitDepthFloat : { - ImageInverter fred(*this); - setupAndProcess(fred, args); - } - break; -default : - OFX::throwSuiteStatusException(kOfxStatErrUnsupported); - } - } -} - -mDeclarePluginFactory(InvertExamplePluginFactory, {}, {}); - -using namespace OFX; -void InvertExamplePluginFactory::describe(OFX::ImageEffectDescriptor &desc) -{ - // basic labels - desc.setLabels("Invert", "Invert", "Invert"); - desc.setPluginGrouping("OFX"); - - // add the supported contexts, only filter at the moment - desc.addSupportedContext(eContextFilter); - - // add supported pixel depths - desc.addSupportedBitDepth(eBitDepthUByte); - desc.addSupportedBitDepth(eBitDepthUShort); - desc.addSupportedBitDepth(eBitDepthFloat); - - // set a few flags - desc.setSingleInstance(false); - desc.setHostFrameThreading(false); - desc.setSupportsMultiResolution(true); - desc.setSupportsTiles(true); - desc.setTemporalClipAccess(false); - desc.setRenderTwiceAlways(false); - desc.setSupportsMultipleClipPARs(false); - -} - -void InvertExamplePluginFactory::describeInContext(OFX::ImageEffectDescriptor &desc, OFX::ContextEnum /*context*/) -{ - // Source clip only in the filter context - // create the mandated source clip - ClipDescriptor *srcClip = desc.defineClip(kOfxImageEffectSimpleSourceClipName); - srcClip->addSupportedComponent(ePixelComponentRGBA); - srcClip->addSupportedComponent(ePixelComponentAlpha); - srcClip->setTemporalClipAccess(false); - srcClip->setSupportsTiles(true); - srcClip->setIsMask(false); - - // create the mandated output clip - ClipDescriptor *dstClip = desc.defineClip(kOfxImageEffectOutputClipName); - dstClip->addSupportedComponent(ePixelComponentRGBA); - dstClip->addSupportedComponent(ePixelComponentAlpha); - dstClip->setSupportsTiles(true); - -} - -OFX::ImageEffect* InvertExamplePluginFactory::createInstance(OfxImageEffectHandle handle, OFX::ContextEnum /*context*/) -{ - return new InvertPlugin(handle); -} - -namespace OFX -{ - namespace Plugin - { - void getPluginIDs(OFX::PluginFactoryArray &ids) - { - static InvertExamplePluginFactory p("net.sf.openfx.invertPlugin", 1, 0); - ids.push_back(&p); - } - } -} - -#define SUCCESS 0 -#define FAIL 1 - -int main() -{ - return OfxGetNumberOfPlugins() == 1 ? SUCCESS : FAIL; -} diff --git a/packages/conan/recipes/openfx/test_package_DISABLED/CMakeLists.txt b/packages/conan/recipes/openfx/test_package_DISABLED/CMakeLists.txt new file mode 100644 index 00000000..e7b2b1bb --- /dev/null +++ b/packages/conan/recipes/openfx/test_package_DISABLED/CMakeLists.txt @@ -0,0 +1,29 @@ +# Copyright (c) Contributors to the OpenFX Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: BSD-3-Clause +# +# From: https://github.com/AcademySoftwareFoundation/openfx/blob/158c8b69d9a2016755696138e027fdfd71bab552/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(PackageTest CXX) +set(CMAKE_CXX_STANDARD 14) +set(CMAKE_CXX_STANDARD_REQUIRED ON) + +find_package(openfx CONFIG REQUIRED) + +add_executable(test_package src/test_package.cpp) +target_include_directories(test_package PUBLIC ${openfx_INCLUDE_DIRS}) +target_link_libraries(test_package openfx::HostSupport) + +# get_target_property(EXAMPLES_DIR openfx::Examples INTERFACE_CMAKE_EXAMPLES_DIR) +get_target_property(EXAMPLES_DIR openfx EXAMPLES_DIR) + +file(GLOB_RECURSE PLUGIN_SOURCES "${EXAMPLES_DIR}/Invert/*.cpp") +message(STATUS "EXAMPLES_DIR value is: ${EXAMPLES_DIR}") +message(STATUS "openfx_DIR value is: ${openfx_DIR}") +message(STATUS "openfx_CONFIG value is: ${openfx_CONFIG}") + +add_ofx_plugin(invert_plugin ${EXAMPLES_DIR}/Invert) +target_sources(invert_plugin PUBLIC ${PLUGIN_SOURCES}) +target_include_directories(invert_plugin PUBLIC ${openfx_INCLUDE_DIRS}) +target_link_libraries(invert_plugin openfx::Support) diff --git a/packages/conan/recipes/openfx/test_package_DISABLED/conanfile.py b/packages/conan/recipes/openfx/test_package_DISABLED/conanfile.py new file mode 100644 index 00000000..806a0615 --- /dev/null +++ b/packages/conan/recipes/openfx/test_package_DISABLED/conanfile.py @@ -0,0 +1,78 @@ +# Copyright (c) Contributors to the OpenFX Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: BSD-3-Clause +# +# From: https://github.com/AcademySoftwareFoundation/openfx/blob/158c8b69d9a2016755696138e027fdfd71bab552/test_package/conanfile.py + +import os + +from conan import ConanFile +from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout +from conan.tools.build import can_run +from conan.tools.env import Environment, VirtualRunEnv +from conan.tools.files import copy + + +class openfxTestConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "CMakeDeps" + + def requirements(self): + self.requires(self.tested_reference_str) + + @property + def _plugin_folder(self): + return os.path.join(self.build_folder, self.cpp.build.bindir, "Plugins") + + def _create_bundle_for_plugin(self, plugin_name, destination_folder): + archdir = None + if self.settings.os == "Windows": + if self.settings.arch == "x86_64": + archdir = "Win64" + elif self.settings.arch == "x86": + archdir = "Win32" + elif self.settings.os == "Macos": + archdir = "MacOS" + elif self.settings.os == "Linux": + if self.settings.arch == "x86_64": + archdir = "Linux-x86-64" + else: + archdir = f"Linux-{self.settings.arch}" + + bundle_contents_path = os.path.join(destination_folder, f"{plugin_name}.bundle","Contents") + copy(self, plugin_name, src=os.path.join(self.build_folder, self.cpp.build.bindir), + dst=os.path.join(bundle_contents_path, archdir)) + copy(self, "Info.plist", src=os.path.join(self.source_folder, "..", "Support", "Plugins", "Invert"), + dst=bundle_contents_path) + + def generate(self): + tc = CMakeToolchain(self) + tc.generate() + + # Create an environment script that defines the OFX_PLUGIN_PATH + env1 = Environment() + env1.define_path("OFX_PLUGIN_PATH", self._plugin_folder) + env1.vars(self, scope="run").save_script("ofx_plugin_dir") + + vre = VirtualRunEnv(self) + vre.generate() + + def build(self): + cmake = CMake(self) + cmake.configure() + + # Build test_package binary that uses the HostSupport code and an invert_plugin.ofx that uses the + # plugin Support code. + cmake.build() + + # Create a bundle in the plugin folder for the plugin we just built. + self._create_bundle_for_plugin("invert_plugin.ofx", self._plugin_folder) + + def layout(self): + cmake_layout(self) + + def test(self): + if can_run(self): + # Run the test_package binary in an environment where the OFX_PLUGIN_PATH environment variable is defined. + cmd = os.path.join(self.build_folder, self.cpp.build.bindir, "test_package") + self.run(cmd, env=["conanrun", "ofx_plugin_dir"]) diff --git a/packages/conan/recipes/openfx/test_package_DISABLED/src/test_package.cpp b/packages/conan/recipes/openfx/test_package_DISABLED/src/test_package.cpp new file mode 100644 index 00000000..ccb0f255 --- /dev/null +++ b/packages/conan/recipes/openfx/test_package_DISABLED/src/test_package.cpp @@ -0,0 +1,116 @@ +// Copyright OpenFX and contributors to the OpenFX project. +// SPDX-License-Identifier: BSD-3-Clause +// +// From: https://github.com/AcademySoftwareFoundation/openfx/blob/158c8b69d9a2016755696138e027fdfd71bab552/test_package/src/test_package.cpp + +#include + +#include "ofxhPluginCache.h" +#include "ofxhPropertySuite.h" +#include "ofxhImageEffectAPI.h" + +class MyHost : public OFX::Host::ImageEffect::Host +{ +public : + OFX::Host::ImageEffect::Instance* newInstance(void* clientData, + OFX::Host::ImageEffect::ImageEffectPlugin* plugin, + OFX::Host::ImageEffect::Descriptor& desc, + const std::string& context) override + { + return nullptr; + } + + OFX::Host::ImageEffect::Descriptor *makeDescriptor(OFX::Host::ImageEffect::ImageEffectPlugin* plugin) override + { + return new OFX::Host::ImageEffect::Descriptor(plugin); + } + + OFX::Host::ImageEffect::Descriptor *makeDescriptor(const OFX::Host::ImageEffect::Descriptor &rootContext, + OFX::Host::ImageEffect::ImageEffectPlugin *plugin) override + { + return new OFX::Host::ImageEffect::Descriptor(rootContext, plugin); + } + + OFX::Host::ImageEffect::Descriptor *makeDescriptor(const std::string &bundlePath, + OFX::Host::ImageEffect::ImageEffectPlugin *plugin) override + { + return new OFX::Host::ImageEffect::Descriptor(bundlePath, plugin); + } + + /// vmessage + OfxStatus vmessage(const char* type, + const char* id, + const char* format, + va_list args) override + { + OfxStatus status = kOfxStatOK; + + const char *prefix = "Message : "; + if (strcmp(type, kOfxMessageLog) == 0) { + prefix = "Log : "; + } + else if(strcmp(type, kOfxMessageFatal) == 0 || + strcmp(type, kOfxMessageError) == 0) { + prefix = "Error : "; + } + else if(strcmp(type, kOfxMessageQuestion) == 0) { + prefix = "Question : "; + status = kOfxStatReplyYes; + } + + fputs(prefix, stdout); + vprintf(format, args); + printf("\n"); + + return status; + } + + OfxStatus setPersistentMessage(const char* type, + const char* id, + const char* format, + va_list args) override + { + return vmessage(type, id, format, args); + } + + OfxStatus clearPersistentMessage() override + { + return kOfxStatOK; + } + +#ifdef OFX_SUPPORTS_OPENGLRENDER + /// @see OfxImageEffectOpenGLRenderSuiteV1.flushResources() + OfxStatus flushOpenGLResources() const override { return kOfxStatFailed; }; +#endif +}; + +int main(int argc, char **argv) +{ + OFX::Host::PluginCache::getPluginCache()->setCacheVersion("testPackageV1"); + MyHost myHost; + OFX::Host::ImageEffect::PluginCache imageEffectPluginCache(myHost); + imageEffectPluginCache.registerInCache(*OFX::Host::PluginCache::getPluginCache()); + + OFX::Host::PluginCache::getPluginCache()->scanPluginFiles(); + + // Search for the invert plugin to make sure we can successfully load a plugin built with + // this package. + bool found_invert_plugin = false; + for (const auto* plugin : OFX::Host::PluginCache::getPluginCache()->getPlugins()) { + if (plugin->getIdentifier() == "net.sf.openfx.invertPlugin") { + found_invert_plugin = true; + break; + } + } + + imageEffectPluginCache.dumpToStdOut(); + + OFX::Host::PluginCache::clearPluginCache(); + + if (!found_invert_plugin) { + printf("Failed to find plugin.\n"); + return 1; + } + + return 0; +} diff --git a/packages/conan/recipes/pyside/conanfile.py b/packages/conan/recipes/pyside/conanfile.py index bf23c313..fb3afffc 100644 --- a/packages/conan/recipes/pyside/conanfile.py +++ b/packages/conan/recipes/pyside/conanfile.py @@ -53,6 +53,8 @@ def requirements(self): self.requires("md4c/[>=0.0.0]") self.requires("freetype/[>=2.0.0]") self.requires("libjpeg-turbo/[>=1.0.0]") + self.requires("libiconv/[>=1.0.0]") + self.requires("harfbuzz/8.3.0") def build_requirements(self): self.tool_requires("ninja/[>=1.0.0]") @@ -179,13 +181,15 @@ def _buildLinux(self, srcDir): env = Environment() env.define("LLVM_INSTALL_DIR", llvmInfo.package_folder) env.define("LD_LIBRARY_PATH", pythonInfo.cpp_info.libdirs[0]) - # Something in Qt depends on md4c, freetype and libjpeg-turbo. This should be fixed in Qt package. + # Something in Qt depends on md4c, freetype, libjpeg-turbo and harfbuzz. This should be fixed in Qt package. md4cInfo = self.dependencies["md4c"] env.append("LD_LIBRARY_PATH", md4cInfo.cpp_info.libdirs[0],separator=':') freetypeInfo = self.dependencies["freetype"] env.append("LD_LIBRARY_PATH", freetypeInfo.cpp_info.libdirs[0],separator=':') libjpegTurboInfo = self.dependencies["libjpeg-turbo"] env.append("LD_LIBRARY_PATH", libjpegTurboInfo.cpp_info.libdirs[0],separator=':') + harfbuzzInfo = self.dependencies["harfbuzz"] + env.append("LD_LIBRARY_PATH", harfbuzzInfo.cpp_info.libdirs[0],separator=':') env.define("CMAKE_PREFIX_PATH", f"{qtInfo.package_folder}:{llvmInfo.package_folder}") env.define("CPATH", f"/opt/rh/gcc-toolset-{os.environ['ASWF_DTS_VERSION']}/root/usr/lib/gcc/x86_64-redhat-linux/{os.environ['ASWF_DTS_VERSION']}/include") env_vars = env.vars(self) diff --git a/packages/conan/recipes/qt/conandata.yml b/packages/conan/recipes/qt/conandata.yml index c6c7c8b9..a1726a05 100644 --- a/packages/conan/recipes/qt/conandata.yml +++ b/packages/conan/recipes/qt/conandata.yml @@ -161,6 +161,9 @@ patches: "patch_file": "patches/ee87cbe_6.8.3.diff" "patch_source": "https://code.qt.io/cgit/qt/qtwebengine-chromium.git/patch/?id=ee87cbeb738a7f1108e38afc75f5b35b5085fe90" "patch_type": "bugfix" + - "base_path": "qtwebengine/src/3rdparty" + "patch_description": "basename() called unconditionally, needs libgen.h" + "patch_file": "patches/minigbm-basename-6.8.3.diff" "6.7.3": - "base_path": "qtwebengine" "patch_description": "Workaround for too long .rps file name" diff --git a/packages/conan/recipes/qt/conanfile.py b/packages/conan/recipes/qt/conanfile.py index 45188e93..ed3c6e69 100644 --- a/packages/conan/recipes/qt/conanfile.py +++ b/packages/conan/recipes/qt/conanfile.py @@ -101,7 +101,7 @@ class QtConan(ConanFile): "with_freetype": True, "with_fontconfig": True, "with_icu": True, - "with_harfbuzz": False, # ASWF: we would need harfbuzz 2.0 + "with_harfbuzz": True, "with_libjpeg": "libjpeg-turbo", # ASWF: EL distros have -turbo "with_libpng": True, "with_sqlite3": True, diff --git a/packages/conan/recipes/qt/patches/minigbm-basename-6.8.3.diff b/packages/conan/recipes/qt/patches/minigbm-basename-6.8.3.diff new file mode 100644 index 00000000..3e260eb2 --- /dev/null +++ b/packages/conan/recipes/qt/patches/minigbm-basename-6.8.3.diff @@ -0,0 +1,14 @@ +diff --git a/chromium/third_party/minigbm/src/drv.c b/chromium/third_party/minigbm/src/drv.c +index 812445d934f..97cd46140d0 100644 +--- a/chromium/third_party/minigbm/src/drv.c ++++ b/chromium/third_party/minigbm/src/drv.c +@@ -17,8 +17,8 @@ + + #ifdef __ANDROID__ + #include +-#include + #endif ++#include + + #include "drv_helpers.h" + #include "drv_priv.h" diff --git a/packages/conan/recipes/spdlog/conanfile.py b/packages/conan/recipes/spdlog/conanfile.py new file mode 100644 index 00000000..9f37c1f2 --- /dev/null +++ b/packages/conan/recipes/spdlog/conanfile.py @@ -0,0 +1,26 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/spdlog/all/conanfile.py + +from conan import ConanFile + +class SystemSpdlogConan(ConanFile): + name = "spdlog" + version = "system" + + def requirements(self): + # Conan profile provides real versions + self.requires("fmt/[>=11.0.0]", transitive_headers=True, transitive_libs=True) + + def package_info(self): + self.cpp_info.includedirs = [] + self.cpp_info.system_libs = ["spdlog"] + + self.cpp_info.set_property("cmake_file_name", "spdlog") + self.cpp_info.set_property("cmake_target_name", "spdlog::spdlog") + + self.cpp_info.components["libspdlog"].set_property("cmake_target_name", "spdlog::spdlog") + self.cpp_info.components["libspdlog"].requires = ["fmt::fmt"] + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_FMT_EXTERNAL") diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index d5591140..eeaa6f80 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -13,18 +13,21 @@ brotli/*: brotli/system@aswf/vfx2024 bzip2/*: bzip2/1.0.8@aswf/vfx2024 c-blosc/*: c-blosc/1.21.6@aswf/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2024 +cimg/*: cimg/3.3.2@aswf/vfx2024 cpython/*: cpython/3.11.13@aswf/vfx2024 dbus/*: dbus/system@aswf/vfx2024 double-conversion/*: double-conversion/system@aswf/vfx2024 eigen/*: eigen/3.4.0@aswf/vfx2024 expat/*: expat/2.6.4@aswf/vfx2024 -fmt/*: fmt/11.1.4@aswf/vfx2024 +fmt/*: fmt/11.2.0@aswf/vfx2024 fontconfig/*: fontconfig/system@aswf/vfx2024 freetype/*: freetype/2.13.2@aswf/vfx2024 gdbm/*: gdbm/system@aswf/vfx2024 giflib/*: giflib/5.1.4@aswf/vfx2024 glew/*: glew/2.2.0@aswf/vfx2024 +glfw/*: glfw/3.4@aswf/vfx2024 glib/*: glib/2.56.4@aswf/vfx2024 +harfbuzz/*: harfbuzz/11.0.1@aswf/vfx2024 hdf5/*: hdf5/1.14.6@aswf/vfx2024 highway/*: highway/1.2.0@aswf/vfx2024 icu/*: icu/system@aswf/vfx2024 @@ -65,6 +68,8 @@ ocio/*: ocio/2.3.2@aswf/vfx2024 ogg/*: ogg/system@aswf/vfx2024 oiio/*: oiio/2.5.18.0@aswf/vfx2024 openal-soft/*: openal-soft/system@aswf/vfx2024 +opencl-headers/*: opencl-headers/system@aswf/vfx2024 +opencl-icd-loader/*: opencl-icd-loader/system@aswf/vfx2024 openexr/*: openexr/3.2.4@aswf/vfx2024 opengl/*: opengl/system@aswf/vfx2024 openjpeg/*: openjpeg/2.4.0@aswf/vfx2024 @@ -77,6 +82,7 @@ pulseaudio/*: pulseaudio/system@aswf/vfx2024 pybind11/*: pybind11/2.13.6@aswf/vfx2024 pystring/*: pystring/1.1.4@aswf/vfx2024 snappy/*: snappy/1.1.10@aswf/vfx2024 +spdlog/*: spdlog/system@aswf/vfx2024 sqlite3/*: sqlite3/system@aswf/vfx2024 tcl/*: tcl/system@aswf/vfx2024 tk/*: tk/system@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 186d09e2..df0a1c09 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -13,18 +13,21 @@ brotli/*: brotli/system@aswf/vfx2025 bzip2/*: bzip2/1.0.8@aswf/vfx2025 c-blosc/*: c-blosc/1.21.6@aswf/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2025 +cimg/*: cimg/3.3.2@aswf/vfx2025 cpython/*: cpython/3.11.13@aswf/vfx2025 dbus/*: dbus/system@aswf/vfx2025 double-conversion/*: double-conversion/system@aswf/vfx2025 eigen/*: eigen/3.4.0@aswf/vfx2025 expat/*: expat/2.6.4@aswf/vfx2025 -fmt/*: fmt/11.1.4@aswf/vfx2025 +fmt/*: fmt/11.2.0@aswf/vfx2025 fontconfig/*: fontconfig/system@aswf/vfx2025 freetype/*: freetype/2.13.2@aswf/vfx2025 gdbm/*: gdbm/system@aswf/vfx2025 giflib/*: giflib/5.1.4@aswf/vfx2025 glew/*: glew/2.2.0@aswf/vfx2025 +glfw/*: glfw/3.4@aswf/vfx2025 glib/*: glib/2.56.4@aswf/vfx2025 +harfbuzz/*: harfbuzz/11.0.1@aswf/vfx2025 hdf5/*: hdf5/1.14.6@aswf/vfx2025 highway/*: highway/1.2.0@aswf/vfx2025 icu/*: icu/system@aswf/vfx2025 @@ -62,10 +65,12 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2025 nspr/*: nspr/system@aswf/vfx2025 nss/*: nss/3.101.0@aswf/vfx2025 ocio/*: ocio/2.4.2@aswf/vfx2025 -oiio/*: oiio/3.0.7.0@aswf/vfx2025 +oiio/*: oiio/3.0.9.0@aswf/vfx2025 ogg/*: ogg/system@aswf/vfx2025 onetbb/*: onetbb/2021.13.0@aswf/vfx2025 openal-soft/*: openal-soft/system@aswf/vfx2025 +opencl-headers/*: opencl-headers/system@aswf/vfx2025 +opencl-icd-loader/*: opencl-icd-loader/system@aswf/vfx2025 openexr/*: openexr/3.3.5@aswf/vfx2025 opengl/*: opengl/system@aswf/vfx2025 openjpeg/*: openjpeg/2.4.0@aswf/vfx2025 @@ -78,6 +83,7 @@ pulseaudio/*: pulseaudio/system@aswr/vfx2025 pybind11/*: pybind11/2.13.6@aswf/vfx2025 pystring/*: pystring/1.1.4@aswf/vfx2025 snappy/*: snappy/1.1.10@aswf/vfx2025 +spdlog/*: spdlog/system@aswf/vfx2025 sqlite3/*: sqlite3/system@aswf/vfx2025 tcl/*: tcl/system@aswf/vfx2025 tk/*: tk/system@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index edc9fab9..42858e70 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -15,6 +15,7 @@ brotli/*: brotli/system@aswf/vfx2026 bzip2/*: bzip2/1.0.8@aswf/vfx2026 c-blosc/*: c-blosc/1.21.6@aswf/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2026 +cimg/*: cimg/3.3.2@aswf/vfx2026 cpython/*: cpython/3.13.3@aswf/vfx2026 dbus/*: dbus/system@aswf/vfx2026 double-conversion/*: double-conversion/system@aswf/vfx2026 @@ -24,9 +25,11 @@ fmt/*: fmt/11.2.0@aswf/vfx2026 fontconfig/*: fontconfig/system@aswf/vfx2026 freetype/*: freetype/2.13.2@aswf/vfx2026 gdbm/*: gdbm/system@aswf/vfx2026 -giflib/*: giflib/5.2.1@aswf/vfx2026 +giflib/*: giflib/5.1.4@aswf/vfx2026 glew/*: glew/2.2.0@aswf/vfx2026 -glib/*: glib/2.68.4@aswf/vfx2026 +glfw/*: glfw/3.4@aswf/vfx2026 +glib/*: glib/2.56.4@aswf/vfx2026 +harfbuzz/*: harfbuzz/11.0.1@aswf/vfx2026 hdf5/*: hdf5/1.14.6@aswf/vfx2026 highway/*: highway/1.2.0@aswf/vfx2026 icu/*: icu/system@aswf/vfx2026 @@ -43,12 +46,12 @@ libiconv/*: libiconv/1.18@aswf/vfx2026 libjpeg-turbo/*: libjpeg-turbo/3.1.0@aswf/vfx2026 libjxl/*: libjxl/0.11.1@aswf/vfx2026 libmp3lame/*: libmp3lame/system@aswf/vfx2026 -libpng/*: libpng/1.6.37@aswf/vfx2026 +libpng/*: libpng/1.6.34@aswf/vfx2026 libraw/*: libraw/0.21.4@aswf/vfx2026 libsndfile/*: libsndfile/system@aswf/vfx2026 libsquish/*: libsquish/system@aswf/vfx2026 libsvt-av1/*: libsvt-av1/system@aswf/vfx2026 -libtiff/*: libtiff/4.4.0@aswf/vfx2026 +libtiff/*: libtiff/4.0.9@aswf/vfx2026 libultrahdr/*: libultrahdr/1.4.0@aswf/vfx2026 libvpx/*: libvpx/system@aswf/vfx2026 libwebp/*: libwebp/1.5.0@aswf/vfx2026 @@ -64,11 +67,13 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2026 nspr/*: nspr/system@aswf/vfx2026 nss/*: nss/3.101.0@aswf/vfx2026 ocio/*: ocio/2.4.2@aswf/vfx2026 -oiio/*: oiio/3.0.8.1@aswf/vfx2026 +oiio/*: oiio/3.0.9.0@aswf/vfx2026 ogg/*: ogg/system@aswf/vfx2026 onetbb/*: onetbb/2022.1.0@aswf/vfx2026 openal-soft/*: openal-soft/system@aswf/vfx2026 -openexr/*: openexr/3.3.5@aswf/vfx2026 +opencl-headers/*: opencl-headers/system@aswf/vfx2026 +opencl-icd-loader/*: opencl-icd-loader/system@aswf/vfx2026 +openexr/*: openexr/3.4-alpha@aswf/vfx2026 opengl/*: opengl/system@aswf/vfx2026 openjpeg/*: openjpeg/2.4.0@aswf/vfx2026 openssl/*: openssl/system@aswf/vfx2026 @@ -81,6 +86,7 @@ pybind11/*: pybind11/2.13.6@aswf/vfx2026 pystring/*: pystring/1.1.4@aswf/vfx2026 qt/*: qt/6.8.3@aswf/vfx2026 snappy/*: snappy/1.2.2@aswf/vfx2026 +spdlog/*: spdlog/system@aswf/vfx2026 sqlite3/*: sqlite3/system@aswf/vfx2026 tcl/*: tcl/system@aswf/vfx2026 tk/*: tk/system@aswf/vfx2026 @@ -89,7 +95,7 @@ util-linux-libuuid/*: util-linux-libuuid/system@aswf/vfx2026 vorbis/*: vorbis/system@aswf/vfx2026 vulkan-headers/*: vulkan-headers/system@aswf/vfx2026 vulkan-loader/*: vulkan-loader/system@aswf/vfx2026 -xkbcommon/*: xkbcommon/1.0.3@aswf/vfx2026 +xkbcommon/*: xkbcommon/0.9.1@aswf/vfx2026 xorg/*: xorg/system@aswf/vfx2026 xorg-proto/*: xorg-proto/system@aswf/vfx2026 xz_utils/*: xz_utils/system@aswf/vfx2026 @@ -98,27 +104,27 @@ zlib/*: zlib/1.3.1@aswf/vfx2026 zstd/*: zstd/1.576@aswf/vfx2026 [replace_tool_requires] b2/*: b2/5.3.2@aswf/vfx2026 -bison/*: bison/3.7.4@system +bison/*: bison/3.0.4@system cpython/*: cpython/3.13.3@aswf/vfx2026 -flex/*: flex/2.6.4@system +flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system -meson/*: meson/0.63.3@system +meson/*: meson/0.58.2@system nasm/*: nasm/system@aswf/vfx2026 ninja/*: ninja/1.13.1@aswf/ci_common6 -nodejs/*: nodejs/18.20.6@system -pkgconf/*: pkgconf/1.7.3@system -wayland/*: wayland/1.31.0@system +nodejs/*: nodejs/18.20.4@system +pkgconf/*: pkgconf/1.4.2@system +wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] [platform_tool_requires] -bison/3.7.4 -flex/2.6.4 +bison/3.0.4 +flex/2.6.1 gperf/3.1 libtool/2.4.6 -meson/0.63.3 -nodejs/18.20.6 -pkgconf/1.7.3 +meson/0.58.2 +nodejs/18.20.4 +pkgconf/1.4.2 wayland/1.21.0 -wayland-protocols/1.31 +wayland-protocols/1.25 [buildenv] diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 512566f8..b79561d0 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -14,17 +14,20 @@ bzip2/*: bzip2/1.0.8@aswftesting/vfx2024 c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2024 dbus/*: dbus/system@aswftesting/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2024 +cimg/*: cimg/3.3.2@aswftesting/vfx2024 cpython/*: cpython/3.11.13@aswftesting/vfx2024 double-conversion/*: double-conversion/system@aswftesting/vfx2024 eigen/*: eigen/3.4.0@aswftesting/vfx2024 expat/*: expat/2.6.4@aswftesting/vfx2024 -fmt/*: fmt/11.1.4@aswftesting/vfx2024 +fmt/*: fmt/11.2.0@aswftesting/vfx2024 fontconfig/*: fontconfig/system@aswftesting/vfx2024 freetype/*: freetype/2.13.2@aswftesting/vfx2024 gdbm/*: gdbm/system@aswftesting/vfx2024 giflib/*: giflib/5.1.4@aswftesting/vfx2024 glew/*: glew/2.2.0@aswftesting/vfx2024 +glfw/*: glfw/2.3@aswftesting/vfx2024 glib/*: glib/2.56.4@aswftesting/vfx2024 +harfbuzz/*: harfbuzz/11.0.1@aswftesting/vfx2024 hdf5/*: hdf5/1.14.6@aswftesting/vfx2024 highway/*: highway/1.2.0@aswftesting/vfx2024 icu/*: icu/system@aswftesting/vfx2024 @@ -65,6 +68,8 @@ ocio/*: ocio/2.3.2@aswftesting/vfx2024 oiio/*: oiio/2.5.18.0@aswftesting/vfx2024 ogg/*: ogg/system@aswftesting/vfx2024 openal-soft/*: openal-soft/system@aswftesting/vfx2024 +opencl-headers/*: opencl-headers/system@aswftesting/vfx2024 +opencl-icd-loader/*: opencl-icd-loader/system@aswftesting/vfx2024 openexr/*: openexr/3.2.4@aswftesting/vfx2024 opengl/*: opengl/system@aswftesting/vfx2024 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2024 @@ -77,6 +82,7 @@ pulseaudio/*: pulseaudio/system@aswftesting/vfx2024 pybind11/*: pybind11/2.13.6@aswftesting/vfx2024 pystring/*: pystring/1.1.4@aswftesting/vfx2024 snappy/*: snappy/1.1.10@aswftesting/vfx2024 +spdlog/*: spdlog/system@aswftesting/vfx2024 sqlite3/*: sqlite3/system@aswftesting/vfx2024 tcl/*: tcl/system@aswftesting/vfx2024 tk/*: tk/system@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 7eb0b03e..c1aa7541 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -13,18 +13,21 @@ brotli/*: brotli/system@aswftesting/vfx2025 bzip2/*: bzip2/1.0.8@aswftesting/vfx2025 c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2025 +cimg/*: cimg/3.3.2@aswftesting/vfx2025 cpython/*: cpython/3.11.13@aswftesting/vfx2025 dbus/*: dbus/system@aswftesting/vfx2025 double-conversion/*: double-conversion/system@aswftesting/vfx2025 eigen/*: eigen/3.4.0@aswftesting/vfx2025 expat/*: expat/2.6.4@aswftesting/vfx2025 -fmt/*: fmt/11.1.4@aswftesting/vfx2025 +fmt/*: fmt/11.2.0@aswftesting/vfx2025 fontconfig/*: fontconfig/system@aswftesting/vfx2025 freetype/*: freetype/2.13.2@aswftesting/vfx2025 gdbm/*: gdbm/system@aswftesting/vfx2025 giflib/*: giflib/5.1.4@aswftesting/vfx2025 glew/*: glew/2.2.0@aswftesting/vfx2025 +glfw/*: glfw/3.4@aswftesting/vfx2025 glib/*: glib/2.56.4@aswftesting/vfx2025 +harfbuzz/*: harfbuzz/11.0.1@aswftesting/vfx2025 hdf5/*: hdf5/1.14.6@aswftesting/vfx2025 highway/*: highway/1.2.0@aswftesting/vfx2025 icu/*: icu/system@aswftesting/vfx2025 @@ -62,10 +65,12 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2025 nspr/*: nspr/system@aswftesting/vfx2025 nss/*: nss/3.101.0@aswftesting/vfx2025 ocio/*: ocio/2.4.2@aswftesting/vfx2025 -oiio/*: oiio/3.0.7.0@aswftesting/vfx2025 +oiio/*: oiio/3.0.9.0@aswftesting/vfx2025 ogg/*: ogg/system@aswftesting/vfx2025 onetbb/*: onetbb/2021.13.0@aswftesting/vfx2025 openal-soft/*: openal-soft/system@aswftesting/vfx2025 +opencl-headers/*: opencl-headers/system@aswftesting/vfx2025 +opencl-icd-loader/*: opencl-icd-loader/system@aswftesting/vfx2025 openexr/*: openexr/3.3.5@aswftesting/vfx2025 opengl/*: opengl/system@aswftesting/vfx2025 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2025 @@ -78,6 +83,7 @@ pulseaudio/*: pulseaudio/system@aswftesting/vfx2025 pybind11/*: pybind11/2.13.6@aswftesting/vfx2025 pystring/*: pystring/1.1.4@aswftesting/vfx2025 snappy/*: snappy/1.1.10@aswftesting/vfx2025 +spdlog/*: spdlog/system@aswftesting/vfx2025 sqlite3/*: sqlite3/system@aswftesting/vfx2025 tcl/*: tcl/system@aswftesting/vfx2025 tk/*: tk/system@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 4c757cbf..8b245af3 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -15,6 +15,7 @@ brotli/*: brotli/system@aswftesting/vfx2026 bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2026 +cimg/*: cimg/3.3.2@aswftesting/vfx2026 cpython/*: cpython/3.13.3@aswftesting/vfx2026 dbus/*: dbus/system@aswftesting/vfx2026 double-conversion/*: double-conversion/system@aswftesting/vfx2026 @@ -24,9 +25,11 @@ fmt/*: fmt/11.2.0@aswftesting/vfx2026 fontconfig/*: fontconfig/system@aswftesting/vfx2026 freetype/*: freetype/2.13.2@aswftesting/vfx2026 gdbm/*: gdbm/system@aswftesting/vfx2026 -giflib/*: giflib/5.2.1@aswftesting/vfx2026 +giflib/*: giflib/5.1.4@aswftesting/vfx2026 glew/*: glew/2.2.0@aswftesting/vfx2026 -glib/*: glib/2.68.4@aswftesting/vfx2026 +glfw/*: glfw/3.4@aswftesting/vfx2026 +glib/*: glib/2.56.4@aswftesting/vfx2026 +harfbuzz/*: harfbuzz/11.0.1@aswftesting/vfx2026 hdf5/*: hdf5/1.14.6@aswftesting/vfx2026 highway/*: highway/1.2.0@aswftesting/vfx2026 icu/*: icu/system@aswftesting/vfx2026 @@ -43,12 +46,12 @@ libiconv/*: libiconv/1.18@aswftesting/vfx2026 libjpeg-turbo/*: libjpeg-turbo/3.1.0@aswftesting/vfx2026 libjxl/*: libjxl/0.11.1@aswftesting/vfx2026 libmp3lame/*: libmp3lame/system@aswftesting/vfx2026 -libpng/*: libpng/1.6.37@aswftesting/vfx2026 +libpng/*: libpng/1.6.34@aswftesting/vfx2026 libraw/*: libraw/0.21.4@aswftesting/vfx2026 libsndfile/*: libsndfile/system@aswftesting/vfx2026 libsquish/*: libsquish/system@aswftesting/vfx2026 libsvt-av1/*: libsvt-av1/system@aswftesting/vfx2026 -libtiff/*: libtiff/4.4.0@aswftesting/vfx2026 +libtiff/*: libtiff/4.0.9@aswftesting/vfx2026 libultrahdr/*: libultrahdr/1.4.0@aswftesting/vfx2026 libvpx/*: libvpx/system@aswftesting/vfx2026 libwebp/*: libwebp/1.5.0@aswftesting/vfx2026 @@ -64,11 +67,13 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2026 nspr/*: nspr/system@aswftesting/vfx2026 nss/*: nss/3.101.0@aswftesting/vfx2026 ocio/*: ocio/2.4.2@aswftesting/vfx2026 -oiio/*: oiio/3.0.8.1@aswftesting/vfx2026 +oiio/*: oiio/3.0.9.0@aswftesting/vfx2026 ogg/*: ogg/system@aswftesting/vfx2026 onetbb/*: onetbb/2022.1.0@aswftesting/vfx2026 openal-soft/*: openal-soft/system@aswftesting/vfx2026 -openexr/*: openexr/3.3.5@aswftesting/vfx2026 +opencl-headers/*: opencl-headers/system@aswftesting/vfx2026 +opencl-icd-loader/*: opencl-icd-loader/system@aswftesting/vfx2026 +openexr/*: openexr/3.4-alpha@aswftesting/vfx2026 opengl/*: opengl/system@aswftesting/vfx2026 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2026 openssl/*: openssl/system@aswftesting/vfx2026 @@ -81,6 +86,7 @@ pybind11/*: pybind11/2.13.6@aswftesting/vfx2026 pystring/*: pystring/1.1.4@aswftesting/vfx2026 qt/*: qt/6.8.3@aswftesting/vfx2026 snappy/*: snappy/1.2.2@aswftesting/vfx2026 +spdlog/*: spdlog/system@aswftesting/vfx2026 sqlite3/*: sqlite3/system@aswftesting/vfx2026 tcl/*: tcl/system@aswftesting/vfx2026 tk/*: tk/system@aswftesting/vfx2026 @@ -89,7 +95,7 @@ util-linux-libuuid/*: util-linux-libuuid/system@aswftesting/vfx2026 vorbis/*: vorbis/system@aswftesting/vfx2026 vulkan-headers/*: vulkan-headers/system@aswftesting/vfx2026 vulkan-loader/*: vulkan-loader/system@aswftesting/vfx2026 -xkbcommon/*: xkbcommon/1.0.3@aswftesting/vfx2026 +xkbcommon/*: xkbcommon/0.9.1@aswftesting/vfx2026 xorg/*: xorg/system@aswftesting/vfx2026 xorg-proto/*: xorg-proto/system@aswftesting/vfx2026 xz_utils/*: xz_utils/system@aswftesting/vfx2026 @@ -98,26 +104,26 @@ zlib/*: zlib/1.3.1@aswftesting/vfx2026 zstd/*: zstd/1.5.7@aswftesting/vfx2026 [replace_tool_requires] b2/*: b2/5.3.2@aswftesting/vfx2026 -bison/*: bison/3.7.4@system +bison/*: bison/3.0.4@system cpython/*: cpython/3.13.3@aswftesting/vfx2026 -flex/*: flex/2.6.4@system +flex/*: flex/2.6.1@system gperf/*: gperf/3.1@system libtool/*: libtool/2.4.6@system -meson/*: meson/0.63.3@system +meson/*: meson/0.58.2@system nasm/*: nasm/system@aswftesting/vfx2026 ninja/*: ninja/1.13.1@aswftesting/ci_common6 -nodejs/*: nodejs/18.20.6@system -pkgconf/*: pkgconf/1.7.3@system +nodejs/*: nodejs/18.20.4@system +pkgconf/*: pkgconf/1.4.2@system wayland/*: wayland/1.21.0@system -wayland-protocols/*: wayland-protocols/1.31@system +wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] [platform_tool_requires] -bison/3.7.4 -flex/2.6.4 +bison/3.0.4 +flex/2.6.1 gperf/3.1 libtool/2.4.6 -meson/0.63.3 -nodejs/18.20.6 -pkgconf/1.7.3 +meson/0.58.2 +nodejs/18.20.4 +pkgconf/1.4.2 wayland/1.21.0 -wayland-protocols/1.31 +wayland-protocols/1.25 diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index d7e6ef13..7aca9448 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -232,7 +232,7 @@ versions: ASWF_NINJA_VERSION: "1.13.1" ASWF_SONAR_VERSION: "7.1.0.4889" ASWF_YQ_VERSION: "4.45.4" - ASWF_BASEOS_DISTRO: "rockylinux9" + ASWF_BASEOS_DISTRO: "rockylinux8" ASWF_BASEOS_IMAGE: "nvidia/cuda" "6-clang19": parent_versions: ["6"] @@ -537,15 +537,18 @@ versions: ASWF_MPG123_VERSION: "system" ASWF_NASM_VERSION: "system" ASWF_NSPR_VERSION: "system" - ASWF_NSS_VERSION: "3.93.0" + ASWF_NSS_VERSION: "3.101.0" ASWF_OGG_VERSION: "system" ASWF_OPENAL_SOFT_VERSION: "system" + ASWF_OPENCL_HEADERS_VERSION: "system" + ASWF_OPENCL_ICD_LOADER_VERSION: "system" ASWF_OPENGL_VERSION: "system" ASWF_OPENJPEG_VERSION: "2.4.0" ASWF_OPENSSL_VERSION: "system" ASWF_OPUS_VERSION: "system" ASWF_PCRE2_VERSION: "system" ASWF_PULSEAUDIO_VERSION: "system" + ASWF_SPDLOG_VERSION: "system" ASWF_SQLITE3_VERSION: "system" ASWF_TCL_VERSION: "system" ASWF_TK_VERSION: "system" @@ -563,14 +566,16 @@ versions: ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" ASWF_CERES_SOLVER_VERSION: "2.2.0" + ASWF_CIMG_VERSION: "3.3.2" ASWF_CPPUNIT_VERSION: "1.15.1" ASWF_EIGEN_VERSION: "3.4.0" ASWF_EXPAT_VERSION: "2.6.4" - ASWF_FMT_VERSION: "11.1.4" + ASWF_FMT_VERSION: "11.2.0" ASWF_FREETYPE_VERSION: "2.13.2" ASWF_GLEW_VERSION: "2.2.0" ASWF_GLFW_VERSION: "3.4" ASWF_GTEST_VERSION: "1.15.2" + ASWF_HARFBUZZ_VERSION: "11.0.1" ASWF_HDF5_VERSION: "1.14.6" ASWF_HIGHWAY_VERSION: "1.2.0" ASWF_JASPER_VERSION: "4.2.5" @@ -667,15 +672,18 @@ versions: ASWF_MPG123_VERSION: "system" ASWF_NASM_VERSION: "system" ASWF_NSPR_VERSION: "system" - ASWF_NSS_VERSION: "3.93.0" + ASWF_NSS_VERSION: "3.101.0" ASWF_OGG_VERSION: "system" ASWF_OPENAL_SOFT_VERSION: "system" + ASWF_OPENCL_HEADERS_VERSION: "system" + ASWF_OPENCL_ICD_LOADER_VERSION: "system" ASWF_OPENGL_VERSION: "system" ASWF_OPENJPEG_VERSION: "2.4.0" ASWF_OPENSSL_VERSION: "system" ASWF_OPUS_VERSION: "system" ASWF_PCRE2_VERSION: "system" ASWF_PULSEAUDIO_VERSION: "system" + ASWF_SPDLOG_VERSION: "system" ASWF_SQLITE3_VERSION: "system" ASWF_TCL_VERSION: "system" ASWF_TK_VERSION: "system" @@ -693,14 +701,16 @@ versions: ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" ASWF_CERES_SOLVER_VERSION: "2.2.0" + ASWF_CIMG_VERSION: "3.3.2" ASWF_CPPUNIT_VERSION: "1.15.1" ASWF_EIGEN_VERSION: "3.4.0" ASWF_EXPAT_VERSION: "2.6.4" - ASWF_FMT_VERSION: "11.1.4" + ASWF_FMT_VERSION: "11.2.0" ASWF_FREETYPE_VERSION: "2.13.2" ASWF_GLEW_VERSION: "2.2.0" ASWF_GLFW_VERSION: "3.4" ASWF_GTEST_VERSION: "1.15.2" + ASWF_HARFBUZZ_VERSION: "11.0.1" ASWF_HDF5_VERSION: "1.14.6" ASWF_HIGHWAY_VERSION: "1.2.0" ASWF_JASPER_VERSION: "4.2.5" @@ -748,12 +758,12 @@ versions: ASWF_MATERIALX_VERSION: "1.39.3" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" - ASWF_OIIO_VERSION: "3.0.8.1" + ASWF_OIIO_VERSION: "3.0.9.0" ASWF_OPENEXR_VERSION: "3.3.5" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" - ASWF_OPENVDB_VERSION: "12.0.0" - ASWF_OSL_VERSION: "1.14.6.0" + ASWF_OPENVDB_VERSION: "12.0.1" + ASWF_OSL_VERSION: "1.14.7.0" ASWF_OTIO_VERSION: "0.17.0" ASWF_RAWTOACES_VERSION: "vfx2026.0" "2025-clang18": @@ -779,19 +789,19 @@ versions: ASWF_DOUBLE_CONVERSION_VERSION: "system" ASWF_FONTCONFIG_VERSION: "system" ASWF_GDBM_VERSION: "system" - ASWF_GIFLIB_VERSION: "5.2.1" - ASWF_GLIB_VERSION: "2.68.4" + ASWF_GIFLIB_VERSION: "5.1.4" + ASWF_GLIB_VERSION: "2.56.4" ASWF_ICU_VERSION: "system" ASWF_LIBALSA_VERSION: "system" ASWF_LIBAOM_AV1_VERSION: "system" ASWF_LIBDRM_VERSION: "system" ASWF_LIBFFI_VERSION: "system" ASWF_LIBMP3LAME_VERSION: "system" - ASWF_LIBPNG_VERSION: "1.6.37" + ASWF_LIBPNG_VERSION: "1.6.34" ASWF_LIBSNDFILE_VERSION: "system" ASWF_LIBSQUISH_VERSION: "system" ASWF_LIBSVTAV1_VERSION: "system" - ASWF_LIBTIFF_VERSION: "4.4.0" + ASWF_LIBTIFF_VERSION: "4.0.9" ASWF_LIBVPX_VERSION: "system" ASWF_LIBXSHMFENCE_VERSION: "system" ASWF_MPDECIMAL_VERSION: "system" @@ -801,12 +811,15 @@ versions: ASWF_NSS_VERSION: "3.101.0" ASWF_OGG_VERSION: "system" ASWF_OPENAL_SOFT_VERSION: "system" + ASWF_OPENCL_HEADERS_VERSION: "system" + ASWF_OPENCL_ICD_LOADER_VERSION: "system" ASWF_OPENGL_VERSION: "system" ASWF_OPENJPEG_VERSION: "2.4.0" ASWF_OPENSSL_VERSION: "system" ASWF_OPUS_VERSION: "system" ASWF_PCRE2_VERSION: "system" ASWF_PULSEAUDIO_VERSION: "system" + ASWF_SPDLOG_VERSION: "system" ASWF_SQLITE3_VERSION: "system" ASWF_TCL_VERSION: "system" ASWF_TK_VERSION: "system" @@ -814,7 +827,7 @@ versions: ASWF_VORBIS_VERSION: "system" ASWF_VULKAN_HEADERS_VERSION: "system" ASWF_VULKAN_LOADER_VERSION: "system" - ASWF_XKBCOMMON_VERSION: "1.0.3" + ASWF_XKBCOMMON_VERSION: "0.9.1" ASWF_XORG_VERSION: "system" ASWF_XORG_PROTO_VERSION: "system" ASWF_XZ_UTILS_VERSION: "system" @@ -824,6 +837,7 @@ versions: ASWF_C_BLOSC_VERSION: "1.21.6" ASWF_BZIP2_VERSION: "1.0.8" ASWF_CERES_SOLVER_VERSION: "2.2.0" + ASWF_CIMG_VERSION: "3.3.2" ASWF_CPPUNIT_VERSION: "1.15.1" ASWF_EIGEN_VERSION: "3.4.0" ASWF_EXPAT_VERSION: "2.7.1" @@ -832,6 +846,7 @@ versions: ASWF_GLEW_VERSION: "2.2.0" ASWF_GLFW_VERSION: "3.4" ASWF_GTEST_VERSION: "1.17.0" + ASWF_HARFBUZZ_VERSION: "11.0.1" ASWF_HDF5_VERSION: "1.14.6" ASWF_HIGHWAY_VERSION: "1.2.0" ASWF_JASPER_VERSION: "4.2.5" @@ -856,7 +871,7 @@ versions: ASWF_PYSTRING_VERSION: "1.1.4" ASWF_SNAPPY_VERSION: "1.2.2" ASWF_TSL_ROBIN_MAP_VERSION: "1.4.0" - ASWF_USD_VERSION: "25.05.01" + ASWF_USD_VERSION: "25.08" ASWF_YAML_CPP_VERSION: "0.8.0" ASWF_ZLIB_VERSION: "1.3.1" ASWF_ZSTD_VERSION: "1.5.7" @@ -864,7 +879,7 @@ versions: ASWF_ALEMBIC_VERSION: "1.8.8" ASWF_BOOST_VERSION: "1.88.0" ASWF_CPYTHON_VERSION: "3.13.3" - ASWF_NUMPY_VERSION: "1.26.4" + ASWF_NUMPY_VERSION: "2.3.2" ASWF_ONETBB_VERSION: "2022.1.0" ASWF_OPENSUBDIV_VERSION: "3.6.1" ASWF_PTEX_VERSION: "2.4.3" @@ -879,12 +894,12 @@ versions: ASWF_MATERIALX_VERSION: "1.39.3" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" - ASWF_OIIO_VERSION: "3.0.8.1" - ASWF_OPENEXR_VERSION: "3.3.5" + ASWF_OIIO_VERSION: "3.0.9.0" + ASWF_OPENEXR_VERSION: "3.4-alpha" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" ASWF_OPENVDB_VERSION: "12.0.1" - ASWF_OSL_VERSION: "1.14.6.0" + ASWF_OSL_VERSION: "1.14.7.0" ASWF_OTIO_VERSION: "0.17.0" ASWF_RAWTOACES_VERSION: "vfx2026.0" "2026-clang19": @@ -1180,6 +1195,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + cimg: + - "2024.3" + - "2025.2" + - "2026.0" dbus: - "2024.3" - "2025.2" @@ -1228,6 +1247,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + harfbuzz: + - "2024.3" + - "2025.2" + - "2026.0" hdf5: - "2024.3" - "2025.2" @@ -1377,6 +1400,14 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + opencl-headers: + - "2024.3" + - "2025.2" + - "2026.0" + opencl-icd-loader: + - "2024.3" + - "2025.2" + - "2026.0" opengl: - "2024.3" - "2025.2" @@ -1413,6 +1444,10 @@ ci-packages: - "2024.3" - "2025.2" - "2026.0" + spdlog: + - "2024.3" + - "2025.2" + - "2026.0" sqlite3: - "2024.3" - "2025.2" @@ -1657,6 +1692,8 @@ groups: - mpdecimal - nasm - nspr + - opencl-headers + - opencl-icd-loader - opengl - openssl - pcre2 @@ -1720,6 +1757,7 @@ groups: - pulseaudio - xkbcommon base2-1: + - harfbuzz - libjpeg-turbo - libwebp - md4c @@ -1736,16 +1774,17 @@ groups: - libvpx - mpg123 - ogg + - spdlog - vorbis vfx1-1: - aces_container + - cimg - hdf5 - highway - imath - jasper - lcms - libultrahdr - - openfx - opensubdiv - partio - ptex @@ -1753,6 +1792,7 @@ groups: - libjxl - libraw - openexr + - openfx vfx1-3: - alembic - ocio @@ -1829,6 +1869,7 @@ conan_only: - glfw - glib - gtest + - harfbuzz - hdf5 - highway - icu @@ -1873,6 +1914,8 @@ conan_only: - ogg - onetbb - openal-soft + - opencl-headers + - opencl-icd-loader - openexr - openfx - opengl @@ -1892,6 +1935,7 @@ conan_only: - qt - rawtoaces - snappy + - spdlog - sqlite3 - tcl - tk diff --git a/scripts/common/install_yumpackages.sh b/scripts/common/install_yumpackages.sh index 8810b98d..c3c88264 100755 --- a/scripts/common/install_yumpackages.sh +++ b/scripts/common/install_yumpackages.sh @@ -80,6 +80,7 @@ yum install --setopt=tsflags=nodocs -y \ gtk2-devel \ harfbuzz-devel \ java-1.8.0-openjdk \ + jq \ libaio-devel \ libcap-devel \ libcdio-paranoia-devel \ @@ -216,11 +217,37 @@ yum install --setopt=tsflags=nodocs -y \ ${XORG_X11_XKB_UTILS_RPM} \ xorg-x11-xtrans-devel \ xz-devel \ - zlib-devel \ + zlib-devel # This is needed for Xvfb to function properly. dbus-uuidgen > /etc/machine-id +# libxslt/xsltutils.h has broken include guards in EL8, breaks PySide unity builds +if [ "$BASEOS_MAJORVERSION" -eq "8" ]; then + cat << 'EOF' | patch -p1 +diff --git a/usr/include/libxslt/xsltutil.h b/usr/include/libxslt/xsltutil.h +index 6cf74b219a1..501394deede 100644 +--- /usr/include/libxslt/xsltutils.h ++++ /usr/include/libxslt/xsltutils.h +@@ -282,7 +282,6 @@ + * Sampling precision for profiling + */ + #define XSLT_TIMESTAMP_TICS_PER_SEC 100000l +-#endif + + /* + * Hooks for the debugger. +@@ -322,6 +321,7 @@ + + #ifdef __cplusplus + } ++#endif + + #endif /* __XML_XSLTUTILS_H__ */ + +EOF +fi + yum -y groupinstall "Development Tools" if [ "$BASEOS_MAJORVERSION" -gt "7" ]; then @@ -260,11 +287,13 @@ yum install -y \ libxshmfence \ libxshmfence-devel \ nss-devel \ + ocl-icd \ opencl-headers \ patchelf \ p7zip \ portaudio \ portaudio-devel \ + spdlog-devel \ svt-av1-devel \ xcb-util-cursor \ xcb-util-cursor-devel \ diff --git a/scripts/vfx/build_osl.sh b/scripts/vfx/build_osl.sh index 1bd2f494..ca5d3af7 100755 --- a/scripts/vfx/build_osl.sh +++ b/scripts/vfx/build_osl.sh @@ -17,105 +17,20 @@ else CUDA_COMPUTE_VERSION=compute_50 fi -# From https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/pull/2010 -# Resolve issues wth C++20 and fmt -if [[ $ASWF_OSL_VERSION == 1.14.6.0 ]]; then - cat << 'EOF' | patch -p1 -diff --git a/src/include/OSL/oslconfig.h.in b/src/include/OSL/oslconfig.h.in -index 6cf74b219a1..501394deede 100644 ---- a/src/include/OSL/oslconfig.h.in -+++ b/src/include/OSL/oslconfig.h.in -@@ -123,7 +123,11 @@ - OSL_NODISCARD inline std::string - fmtformat(const Str& fmt, Args&&... args) - { -+#if OSL_CPLUSPLUS_VERSION >= 20 || FMT_VERSION >= 100000 -+ return ::fmt::vformat(fmt, ::fmt::make_format_args(args...)); -+#else - return OIIO::Strutil::fmt::format(fmt, std::forward(args)...); -+#endif - } - - // TODO: notice the fmt argument is not templatised, this is because -@@ -132,13 +136,18 @@ - // OIIO should fix this if possible. - template - OSL_NODISCARD inline auto --fmtformat_to_n(OutIt &out, size_t n, const string_view& fmt, Args&&... args) -+fmtformat_to_n(OutIt& out, size_t n, string_view fmt, Args&&... args) - { - // DOES NOT EXIST AS PUBLIC API - //return OIIO::Strutil::fmt::format_to_n(out, n, fmt, std::forward(args)...); - // So call directly into underlying fmt library OIIO is using - // TODO: Add format_to_n as a public API in OIIO -+#if OSL_CPLUSPLUS_VERSION >= 20 || FMT_VERSION >= 100000 -+ std::string str = fmtformat(fmt, std::forward(args)...); -+ return ::fmt::format_to_n(out, n, "{}", str); -+#else - return ::fmt::format_to_n(out, n, ::fmt::string_view{fmt.begin(), fmt.length()}, std::forward(args)...); -+#endif - } - - -diff --git a/src/liboslcomp/oslcomp_pvt.h b/src/liboslcomp/oslcomp_pvt.h -index 6cf74b219a1..501394deede 100644 ---- a/src/liboslcomp/oslcomp_pvt.h -+++ b/src/liboslcomp/oslcomp_pvt.h -@@ -365,7 +365,8 @@ - template - inline void osofmt(const char* fmt, Args&&... args) const - { -- fmt::print(*m_osofile, fmt, std::forward(args)...); -+ *m_osofile << OIIO::Strutil::fmt::format(fmt, -+ std::forward(args)...); - } - - void track_variable_lifetimes() -diff --git a/src/liboslexec/llvm_util.cpp b/src/liboslexec/llvm_util.cpp -index 6cf74b219a1..501394deede 100644 ---- a/src/liboslexec/llvm_util.cpp -+++ b/src/liboslexec/llvm_util.cpp -@@ -17,6 +17,11 @@ - # error "LLVM minimum version required for OSL is 11.0" - #endif - -+OSL_PRAGMA_WARNING_PUSH -+#if OSL_GNUC_VERSION >= 140000 -+OSL_GCC_PRAGMA(GCC diagnostic ignored "-Wmaybe-uninitialized") -+#endif -+ - #include "llvm_passes.h" - - #include -EOF -fi - -OSL_CXX_STANDARD=$ASWF_CXX_STANDARD -## OSL 1.14.6.0 does not build with C++20 -#if [[ $ASWF_OSL_VERSION == 1.14.6.0 && $ASWF_CXX_STANDARD == 20 ]]; then -# OSL_CXX_STANDARD=17 -#fi - mkdir build cd build cmake -DCMAKE_INSTALL_PREFIX="${ASWF_INSTALL_PREFIX}" \ -DBoost_USE_STATIC_LIBS=OFF \ -DBUILD_SHARED_LIBS=ON \ - -DCMAKE_CXX_STANDARD=$OSL_CXX_STANDARD \ + -DCMAKE_CXX_STANDARD=$ASWF_CXX_STANDARD \ -Dpybind11_DIR="${ASWF_INSTALL_PREFIX}/lib/cmake/pybind11" \ -DOSL_USE_OPTIX=ON \ -DOPTIX_VERSION=${ASWF_OPTIX_VERSION} \ -DOPTIXHOME=${ASWF_INSTALL_PREFIX}/NVIDIA-OptiX-SDK-${ASWF_OPTIX_VERSION} \ ../. -# Multithread build of OSL 1.14.6.0 build fails in OptiX / CUDA section. Or maybe not? -if [[ $ASWF_OSL_VERSION == 1.14.6.0 ]]; then -# cmake --build . -j1 --verbose - cmake --build . -j$(nproc) --verbose -else - cmake --build . -j$(nproc) --verbose -fi +cmake --build . -j$(nproc) --verbose cmake --install . cd ../.. From f22e58d33ebf1cc5175d87a4f89579a4a66c21a7 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Fri, 8 Aug 2025 00:27:15 -0700 Subject: [PATCH 13/14] ci-vfxall image dependencies - complete set of packages to include in ci-vfxall - progress on openfx build - ci-openfx and ci-rawtoaces image with build scripts - vendor spdlog to build header only version - missing OpenCL package Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 5 +- ci-oiio/README.md | 4 +- ci-osl/README.md | 8 +- ci-usd/README.md | 4 +- ci-vfxall/Dockerfile | 219 +-------- ci-vfxall/README.md | 430 ++++-------------- ci-vfxall/image.yaml | 44 +- packages/conan/recipes/oiio/conandata.yml | 8 +- packages/conan/recipes/openfx/conanfile.py | 6 +- packages/conan/recipes/spdlog/conandata.yml | 55 +++ packages/conan/recipes/spdlog/conanfile.py | 201 +++++++- .../spdlog/test_package/CMakeLists.txt | 23 + .../recipes/spdlog/test_package/conanfile.py | 39 ++ .../spdlog/test_package/test_package.cpp | 21 + packages/conan/settings/global.conf | 3 + packages/conan/settings/profiles_aswf/vfx2024 | 2 +- packages/conan/settings/profiles_aswf/vfx2025 | 4 +- packages/conan/settings/profiles_aswf/vfx2026 | 4 +- .../settings/profiles_aswftesting/vfx2024 | 2 +- .../settings/profiles_aswftesting/vfx2025 | 4 +- .../settings/profiles_aswftesting/vfx2026 | 4 +- python/aswfdocker/data/versions.yaml | 13 +- scripts/common/install_yumpackages.sh | 2 +- scripts/vfx/build_openfx.sh | 117 +++++ scripts/vfx/build_rawtoaces.sh | 26 ++ 25 files changed, 625 insertions(+), 623 deletions(-) create mode 100644 packages/conan/recipes/spdlog/conandata.yml create mode 100644 packages/conan/recipes/spdlog/test_package/CMakeLists.txt create mode 100644 packages/conan/recipes/spdlog/test_package/conanfile.py create mode 100644 packages/conan/recipes/spdlog/test_package/test_package.cpp create mode 100755 scripts/vfx/build_openfx.sh create mode 100755 scripts/vfx/build_rawtoaces.sh diff --git a/CHANGELOG.md b/CHANGELOG.md index 48c01fab..ea7d34f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -28,7 +28,7 @@ consumers of these new images. - log4cplus 2.1.2 (was 2.1.1) - minizip-ng 4.0.10 (was 4.0.8) - pybind11 2.13.6 (was 2.12.0) - - opensubdive 3.6.1 (was 3.6.0) + - opensubdiv 3.6.1 (was 3.6.0) - python 3.11.13 (was 3.11.11) - Qt 6.5.6 (was 6.5.4) - OIIO 2.5.19.0 (was 2.5.18.0) @@ -50,6 +50,7 @@ consumers of these new images. - OIIO 3.0.9.0 (was 3.0.6.1) - OpenEXR 3.3.5 (was 3.3.3) - OpenFX 1.5s + - OpenImageIO 3.0.9.1 (was 3.0.6.1) - OpenVDB 12.0.1 (was 12.0.0) - OSL 1.14.7.0 (was 1.14.5.1) - PySide 6.5.6 (was 6.5.4) @@ -60,7 +61,7 @@ consumers of these new images. - see `ci_common6` and `2026` sections of `versions.yaml` for full list of package versions - to minimize local changes against upstream Conan recipes and avoid spending time fighting build systems which hard code `lib` as the destination directory, all changes related to landing DSOs and support files in `lib64` are reverted - new Conan package and build images for OpenFX based on conanfile.py from OpenFX repo (Conan Center Index has older version) - - adds dependant Conan package cimg + - adds dependant Conan package cimg, spdlog - new [Conan package and build images for rawtoaces](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/273) - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen , aces_container - Alembic now [built with hdf5 dependency](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/254) diff --git a/ci-oiio/README.md b/ci-oiio/README.md index c28c2038..5741a52a 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -28,14 +28,14 @@ Contains: ## [aswf/ci-oiio:2025.2](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2025.2) Contains: -* oiio-3.0.9.0 +* oiio-3.0.9.1 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-oiio:2026.0](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2026.0) Contains: -* oiio-3.0.9.0 +* oiio-3.0.9.1 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-osl/README.md b/ci-osl/README.md index 52504cfb..ee1ac906 100644 --- a/ci-osl/README.md +++ b/ci-osl/README.md @@ -268,7 +268,7 @@ Contains: * cpython-3.11.13 * fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * partio-1.19.0 * pugixml-1.14 * pybind11-2.13.6 @@ -285,7 +285,7 @@ Contains: * cpython-3.11.13 * fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * partio-1.19.0 * pugixml-1.14 * pybind11-2.13.6 @@ -302,7 +302,7 @@ Contains: * cpython-3.13.3 * fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * partio-1.19.0 * pugixml-1.15 * pybind11-2.13.6 @@ -319,7 +319,7 @@ Contains: * cpython-3.13.3 * fmt-11.2.0 * imath-3.1.12 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * partio-1.19.0 * pugixml-1.15 * pybind11-2.13.6 diff --git a/ci-usd/README.md b/ci-usd/README.md index 6bbace53..04aac2bb 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -240,7 +240,7 @@ Contains: * openexr-3.3.5 * alembic-1.8.8 * ocio-2.4.2 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * materialx-1.39.3 * numpy-1.26.4 * hdf5-1.14.6 @@ -288,7 +288,7 @@ Contains: * openexr-3.4-alpha * alembic-1.8.8 * ocio-2.4.2 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * materialx-1.39.3 * numpy-2.3.2 * hdf5-1.14.6 diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index dc1b78ea..727f3786 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -15,62 +15,28 @@ ARG ASWF_CONAN_CHANNEL ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_BOOST_VERSION ARG ASWF_CPPUNIT_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LIBBACKTRACE_VERSION +ARG ASWF_GTEST_VERSION +ARG ASWF_LIBXCRYPT_VERSION ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_DBUS_VERSION -ARG ASWF_DOUBLE_CONVERSION_VERSION -ARG ASWF_FONTCONFIG_VERSION -ARG ASWF_GLIB_VERSION -ARG ASWF_LIBALSA_VERSION -ARG ASWF_LIBDRM_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_LIBRAW_VERSION -ARG ASWF_LIBSNDFILE_VERSION -ARG ASWF_LIBTIFF_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_LIBXSHMFENCE_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_NSS_VERSION -ARG ASWF_OPENAL_SOFT_VERSION -ARG ASWF_OPENJPEG_VERSION -ARG ASWF_OPUS_VERSION -ARG ASWF_PULSEAUDIO_VERSION -ARG ASWF_XKBCOMMON_VERSION ARG ASWF_QT_VERSION ARG ASWF_PYSIDE_VERSION +ARG ASWF_OPENSUBDIV_VERSION +ARG ASWF_PARTIO_VERSION +ARG ASWF_ALEMBIC_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_OPENEXR_VERSION -ARG ASWF_ALEMBIC_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OPENFX_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PTEX_VERSION ARG ASWF_OPENVDB_VERSION ARG ASWF_MATERIALX_VERSION ARG ASWF_USD_VERSION -ARG ASWF_PARTIO_VERSION ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION ARG ASWF_RAWTOACES_VERSION ARG ASWF_NUMPY_VERSION -ARG ASWF_HDF5_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -93,62 +59,28 @@ ARG ASWF_CONAN_CHANNEL -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_BOOST_VERSION ARG ASWF_CPPUNIT_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FREETYPE_VERSION ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LIBBACKTRACE_VERSION +ARG ASWF_GTEST_VERSION +ARG ASWF_LIBXCRYPT_VERSION ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_DBUS_VERSION -ARG ASWF_DOUBLE_CONVERSION_VERSION -ARG ASWF_FONTCONFIG_VERSION -ARG ASWF_GLIB_VERSION -ARG ASWF_LIBALSA_VERSION -ARG ASWF_LIBDRM_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_LIBRAW_VERSION -ARG ASWF_LIBSNDFILE_VERSION -ARG ASWF_LIBTIFF_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_LIBXSHMFENCE_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_NSS_VERSION -ARG ASWF_OPENAL_SOFT_VERSION -ARG ASWF_OPENJPEG_VERSION -ARG ASWF_OPUS_VERSION -ARG ASWF_PULSEAUDIO_VERSION -ARG ASWF_XKBCOMMON_VERSION ARG ASWF_QT_VERSION ARG ASWF_PYSIDE_VERSION +ARG ASWF_OPENSUBDIV_VERSION +ARG ASWF_PARTIO_VERSION +ARG ASWF_ALEMBIC_VERSION ARG ASWF_IMATH_VERSION ARG ASWF_OPENEXR_VERSION -ARG ASWF_ALEMBIC_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OPENFX_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PTEX_VERSION ARG ASWF_OPENVDB_VERSION ARG ASWF_MATERIALX_VERSION ARG ASWF_USD_VERSION -ARG ASWF_PARTIO_VERSION ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION ARG ASWF_RAWTOACES_VERSION ARG ASWF_NUMPY_VERSION -ARG ASWF_HDF5_VERSION ARG ASWF_VFXPLATFORM_VERSION @@ -165,62 +97,28 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" +LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" +LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.dbus="$ASWF_DBUS_VERSION" -LABEL io.aswf.docker.versions.double-conversion="$ASWF_DOUBLE_CONVERSION_VERSION" -LABEL io.aswf.docker.versions.fontconfig="$ASWF_FONTCONFIG_VERSION" -LABEL io.aswf.docker.versions.glib="$ASWF_GLIB_VERSION" -LABEL io.aswf.docker.versions.libalsa="$ASWF_LIBALSA_VERSION" -LABEL io.aswf.docker.versions.libdrm="$ASWF_LIBDRM_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" -LABEL io.aswf.docker.versions.libraw="$ASWF_LIBRAW_VERSION" -LABEL io.aswf.docker.versions.libsndfile="$ASWF_LIBSNDFILE_VERSION" -LABEL io.aswf.docker.versions.libtiff="$ASWF_LIBTIFF_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.libxshmfence="$ASWF_LIBXSHMFENCE_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.nss="$ASWF_NSS_VERSION" -LABEL io.aswf.docker.versions.openal-soft="$ASWF_OPENAL_SOFT_VERSION" -LABEL io.aswf.docker.versions.openjpeg="$ASWF_OPENJPEG_VERSION" -LABEL io.aswf.docker.versions.opus="$ASWF_OPUS_VERSION" -LABEL io.aswf.docker.versions.pulseaudio="$ASWF_PULSEAUDIO_VERSION" -LABEL io.aswf.docker.versions.xkbcommon="$ASWF_XKBCOMMON_VERSION" LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" +LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" +LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" +LABEL io.aswf.docker.versions.alembic="$ASWF_ALEMBIC_VERSION" LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" -LABEL io.aswf.docker.versions.alembic="$ASWF_ALEMBIC_VERSION" LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" LABEL io.aswf.docker.versions.openfx="$ASWF_OPENFX_VERSION" -LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" -LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" LABEL io.aswf.docker.versions.materialx="$ASWF_MATERIALX_VERSION" LABEL io.aswf.docker.versions.usd="$ASWF_USD_VERSION" -LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" LABEL io.aswf.docker.versions.osl="$ASWF_OSL_VERSION" LABEL io.aswf.docker.versions.otio="$ASWF_OTIO_VERSION" LABEL io.aswf.docker.versions.rawtoaces="$ASWF_RAWTOACES_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" -LABEL io.aswf.docker.versions.hdf5="$ASWF_HDF5_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -234,62 +132,28 @@ ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION +ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION +ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_DBUS_VERSION=$ASWF_DBUS_VERSION -ENV ASWF_DOUBLE_CONVERSION_VERSION=$ASWF_DOUBLE_CONVERSION_VERSION -ENV ASWF_FONTCONFIG_VERSION=$ASWF_FONTCONFIG_VERSION -ENV ASWF_GLIB_VERSION=$ASWF_GLIB_VERSION -ENV ASWF_LIBALSA_VERSION=$ASWF_LIBALSA_VERSION -ENV ASWF_LIBDRM_VERSION=$ASWF_LIBDRM_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION -ENV ASWF_LIBRAW_VERSION=$ASWF_LIBRAW_VERSION -ENV ASWF_LIBSNDFILE_VERSION=$ASWF_LIBSNDFILE_VERSION -ENV ASWF_LIBTIFF_VERSION=$ASWF_LIBTIFF_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_LIBXSHMFENCE_VERSION=$ASWF_LIBXSHMFENCE_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_NSS_VERSION=$ASWF_NSS_VERSION -ENV ASWF_OPENAL_SOFT_VERSION=$ASWF_OPENAL_SOFT_VERSION -ENV ASWF_OPENJPEG_VERSION=$ASWF_OPENJPEG_VERSION -ENV ASWF_OPUS_VERSION=$ASWF_OPUS_VERSION -ENV ASWF_PULSEAUDIO_VERSION=$ASWF_PULSEAUDIO_VERSION -ENV ASWF_XKBCOMMON_VERSION=$ASWF_XKBCOMMON_VERSION ENV ASWF_QT_VERSION=$ASWF_QT_VERSION ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION +ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION +ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION +ENV ASWF_ALEMBIC_VERSION=$ASWF_ALEMBIC_VERSION ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION -ENV ASWF_ALEMBIC_VERSION=$ASWF_ALEMBIC_VERSION ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION ENV ASWF_OPENFX_VERSION=$ASWF_OPENFX_VERSION -ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION -ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION ENV ASWF_MATERIALX_VERSION=$ASWF_MATERIALX_VERSION ENV ASWF_USD_VERSION=$ASWF_USD_VERSION -ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION ENV ASWF_OSL_VERSION=$ASWF_OSL_VERSION ENV ASWF_OTIO_VERSION=$ASWF_OTIO_VERSION ENV ASWF_RAWTOACES_VERSION=$ASWF_RAWTOACES_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION -ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION @@ -311,57 +175,24 @@ COPY < . [requires] -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -dbus/${ASWF_DBUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -double-conversion/${ASWF_DOUBLE_CONVERSION_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fontconfig/${ASWF_FONTCONFIG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glib/${ASWF_GLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libalsa/${ASWF_LIBALSA_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdrm/${ASWF_LIBDRM_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libraw/${ASWF_LIBRAW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libsndfile/${ASWF_LIBSNDFILE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libtiff/${ASWF_LIBTIFF_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxshmfence/${ASWF_LIBXSHMFENCE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -nss/${ASWF_NSS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openal-soft/${ASWF_OPENAL_SOFT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openjpeg/${ASWF_OPENJPEG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -opus/${ASWF_OPUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pulseaudio/${ASWF_PULSEAUDIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -xkbcommon/${ASWF_XKBCOMMON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +alembic/${ASWF_ALEMBIC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -alembic/${ASWF_ALEMBIC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openfx/${ASWF_OPENFX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # usd/${ASWF_USD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # osl/${ASWF_OSL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # otio/${ASWF_OTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} rawtoaces/${ASWF_RAWTOACES_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 3cab300c..b054f179 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -20,726 +20,468 @@ Contains: all supported VFX packages ## [aswf/ci-vfxall:2019-clang6.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang6.12) Contains: -* boost-1.66.0 * cppunit-1.14.0 -* cpython-2.7.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.8.1 * log4cplus-1.1.2 -* pybind11-2.4.3 -* onetbb-2018 * qt-5.12.6 * pyside-5.12.6 +* opensubdiv-3_3_3 +* partio-1.10.1 +* alembic-1.7.11 * imath-2.3.0 * openexr-2.3.0 -* alembic-1.7.11 * oiio-2.0.8 * ocio-1.1.0 -* opensubdiv-3_3_3 -* ptex-2.1.33 * openvdb-6.2.1 * usd-19.11 -* partio-1.10.1 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 -* hdf5-1.8.21 * vfxplatform-2019 ## [aswf/ci-vfxall:2019-clang7.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang7.12) Contains: -* boost-1.66.0 * cppunit-1.14.0 -* cpython-2.7.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.8.1 * log4cplus-1.1.2 -* pybind11-2.4.3 -* onetbb-2018 * qt-5.12.6 * pyside-5.12.6 +* opensubdiv-3_3_3 +* partio-1.10.1 +* alembic-1.7.11 * imath-2.3.0 * openexr-2.3.0 -* alembic-1.7.11 * oiio-2.0.8 * ocio-1.1.0 -* opensubdiv-3_3_3 -* ptex-2.1.33 * openvdb-6.2.1 * usd-19.11 -* partio-1.10.1 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 -* hdf5-1.8.21 * vfxplatform-2019 ## [aswf/ci-vfxall:2019-clang8.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang8.12) Contains: -* boost-1.66.0 * cppunit-1.14.0 -* cpython-2.7.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.8.1 * log4cplus-1.1.2 -* pybind11-2.4.3 -* onetbb-2018 * qt-5.12.6 * pyside-5.12.6 +* opensubdiv-3_3_3 +* partio-1.10.1 +* alembic-1.7.11 * imath-2.3.0 * openexr-2.3.0 -* alembic-1.7.11 * oiio-2.0.8 * ocio-1.1.0 -* opensubdiv-3_3_3 -* ptex-2.1.33 * openvdb-6.2.1 * usd-19.11 -* partio-1.10.1 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 -* hdf5-1.8.21 * vfxplatform-2019 ## [aswf/ci-vfxall:2019-clang9.12](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2019-clang9.12) Contains: -* boost-1.66.0 * cppunit-1.14.0 -* cpython-2.7.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.8.1 * log4cplus-1.1.2 -* pybind11-2.4.3 -* onetbb-2018 * qt-5.12.6 * pyside-5.12.6 +* opensubdiv-3_3_3 +* partio-1.10.1 +* alembic-1.7.11 * imath-2.3.0 * openexr-2.3.0 -* alembic-1.7.11 * oiio-2.0.8 * ocio-1.1.0 -* opensubdiv-3_3_3 -* ptex-2.1.33 * openvdb-6.2.1 * usd-19.11 -* partio-1.10.1 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 -* hdf5-1.8.21 * vfxplatform-2019 ## [aswf/ci-vfxall:2020-clang7.10](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2020-clang7.10) Contains: -* boost-1.70.0 * cppunit-1.15.1 -* cpython-3.7.3 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.10.0 * log4cplus-1.1.2 -* pybind11-2.4.3 -* onetbb-2019_u6 * qt-5.12.6 * pyside-5.12.6 +* opensubdiv-3_4_3 +* partio-1.10.1 +* alembic-1.7.12 * imath-2.4.0 * openexr-2.4.0 -* alembic-1.7.12 * oiio-2.1.13.0 * ocio-1.1.1 -* opensubdiv-3_4_3 -* ptex-2.3.2 * openvdb-7.1.0 * usd-20.11 -* partio-1.10.1 * osl-1.10.10 * otio-0.12.1 * numpy-1.16 -* hdf5-1.8.21 * vfxplatform-2020 ## [aswf/ci-vfxall:2021-clang10.7](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2021-clang10.7) Contains: -* boost-1.73.0 * cppunit-1.15.1 -* cpython-3.7.9 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.6.2 -* onetbb-2020_u2 * qt-5.15.2 * pyside-5.15.2 +* opensubdiv-3_4_3 +* partio-1.14.0 +* alembic-1.7.16 * imath-2.5.5 * openexr-2.5.5 -* alembic-1.7.16 * oiio-2.2.14.0 * ocio-2.0.1 -* opensubdiv-3_4_3 -* ptex-2.3.2 * openvdb-8.0.1 * usd-21.05 -* partio-1.14.0 * osl-1.11.13.0 * otio-0.13 * numpy-1.19 -* hdf5-1.8.21 * vfxplatform-2021 ## [aswf/ci-vfxall:2022-clang10.13](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang10.13) Contains: -* boost-1.76.0 * cppunit-1.15.1 -* cpython-3.9.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.8.1 -* onetbb-2020_u3 * qt-5.15.2 * pyside-5.15.2 +* opensubdiv-3_4_4 +* partio-1.14.0 +* alembic-1.8.2 * imath-3.1.5 * openexr-3.1.5 -* alembic-1.8.2 * oiio-2.4.5.0 * ocio-2.1.1 -* opensubdiv-3_4_4 -* ptex-2.4.0 * openvdb-9.1.0 * materialx-1.38.5 * usd-22.11 -* partio-1.14.0 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 -* hdf5-1.8.21 * vfxplatform-2022 ## [aswf/ci-vfxall:2022-clang11.13](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang11.13) Contains: -* boost-1.76.0 * cppunit-1.15.1 -* cpython-3.9.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.8.1 -* onetbb-2020_u3 * qt-5.15.2 * pyside-5.15.2 +* opensubdiv-3_4_4 +* partio-1.14.0 +* alembic-1.8.2 * imath-3.1.5 * openexr-3.1.5 -* alembic-1.8.2 * oiio-2.4.5.0 * ocio-2.1.1 -* opensubdiv-3_4_4 -* ptex-2.4.0 * openvdb-9.1.0 * materialx-1.38.5 * usd-22.11 -* partio-1.14.0 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 -* hdf5-1.8.21 * vfxplatform-2022 ## [aswf/ci-vfxall:2022-clang12.4](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang12.4) Contains: -* boost-1.76.0 * cppunit-1.15.1 -* cpython-3.9.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.8.1 -* onetbb-2020_u3 * qt-5.15.2 * pyside-5.15.2 +* opensubdiv-3_4_4 +* partio-1.14.0 +* alembic-1.8.2 * imath-3.1.5 * openexr-3.1.5 -* alembic-1.8.2 * oiio-2.4.5.0 * ocio-2.1.1 -* opensubdiv-3_4_4 -* ptex-2.4.0 * openvdb-9.1.0 * materialx-1.38.5 * usd-22.11 -* partio-1.14.0 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 -* hdf5-1.8.21 * vfxplatform-2022 ## [aswf/ci-vfxall:2022-clang13.4](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang13.4) Contains: -* boost-1.76.0 * cppunit-1.15.1 -* cpython-3.9.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.8.1 -* onetbb-2020_u3 * qt-5.15.2 * pyside-5.15.2 +* opensubdiv-3_4_4 +* partio-1.14.0 +* alembic-1.8.2 * imath-3.1.5 * openexr-3.1.5 -* alembic-1.8.2 * oiio-2.4.5.0 * ocio-2.1.1 -* opensubdiv-3_4_4 -* ptex-2.4.0 * openvdb-9.1.0 * materialx-1.38.5 * usd-22.11 -* partio-1.14.0 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 -* hdf5-1.8.21 * vfxplatform-2022 ## [aswf/ci-vfxall:2022-clang14.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang14.3) Contains: -* boost-1.76.0 * cppunit-1.15.1 -* cpython-3.9.15 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.8.1 -* onetbb-2020_u3 * qt-5.15.2 * pyside-5.15.2 +* opensubdiv-3_4_4 +* partio-1.14.0 +* alembic-1.8.2 * imath-3.1.5 * openexr-3.1.5 -* alembic-1.8.2 * oiio-2.4.5.0 * ocio-2.1.1 -* opensubdiv-3_4_4 -* ptex-2.4.0 * openvdb-9.1.0 * materialx-1.38.5 * usd-22.11 -* partio-1.14.0 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 -* hdf5-1.8.21 * vfxplatform-2022 ## [aswf/ci-vfxall:2023-clang14.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2023-clang14.2) Contains: -* boost-1.80.0 * cppunit-1.15.1 -* cpython-3.10.11 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.9.2 -* onetbb-2020_u3 * qt-5.15.9 * pyside-5.15.9 +* opensubdiv-3_5_0 +* partio-1.17.1 +* alembic-1.8.5 * imath-3.1.9 * openexr-3.1.11 -* alembic-1.8.5 * oiio-2.4.13.0 * ocio-2.2.1 -* opensubdiv-3_5_0 -* ptex-2.4.2 * openvdb-10.0.1 * materialx-1.38.7 * usd-23.05 -* partio-1.17.1 * osl-1.12.13.0 * otio-0.15 * numpy-1.23.5 -* hdf5-1.8.23 * vfxplatform-2023 ## [aswf/ci-vfxall:2023-clang15.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2023-clang15.2) Contains: -* boost-1.80.0 * cppunit-1.15.1 -* cpython-3.10.11 * glew-2.1.0 -* glfw-3.1.2 +* gtest-1.11.0 * log4cplus-1.1.2 -* pybind11-2.9.2 -* onetbb-2020_u3 * qt-5.15.9 * pyside-5.15.9 +* opensubdiv-3_5_0 +* partio-1.17.1 +* alembic-1.8.5 * imath-3.1.9 * openexr-3.1.11 -* alembic-1.8.5 * oiio-2.4.13.0 * ocio-2.2.1 -* opensubdiv-3_5_0 -* ptex-2.4.2 * openvdb-10.0.1 * materialx-1.38.7 * usd-23.05 -* partio-1.17.1 * osl-1.12.13.0 * otio-0.15 * numpy-1.23.5 -* hdf5-1.8.23 * vfxplatform-2023 ## [aswf/ci-vfxall:2024-clang16.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang16.3) Contains: -* boost-1.82.0 * cppunit-1.15.1 -* cpython-3.11.13 -* expat-2.6.4 -* freetype-2.13.2 * glew-2.2.0 -* glfw-3.4 -* libbacktrace-cci.20210118 +* gtest-1.15.2 +* libxcrypt-4.4.36 * log4cplus-2.1.2 -* lz4-1.10.0 -* md4c-0.4.8 -* pybind11-2.13.6 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* dbus-system -* fontconfig-system -* glib-2.56.4 -* libalsa-system -* libdrm-system -* libjxl-0.11.1 -* libraw-0.21.4 -* libsndfile-system -* libtiff-4.0.9 -* libwebp-1.5.0 -* libxshmfence-system -* md4c-0.4.8 -* nss-3.101.0 -* openjpeg-2.4.0 -* opus-system -* pulseaudio-system -* xkbcommon-0.9.1 * qt-6.5.6 * pyside-6.5.6 +* opensubdiv-3.6.1 +* partio-1.19.0 +* alembic-1.8.8 * imath-3.1.12 * openexr-3.2.4 -* alembic-1.8.8 * oiio-2.5.19.0 * ocio-2.3.2 * openfx-1.5s -* opensubdiv-3.6.1 -* ptex-2.4.2 * openvdb-11.0.0 * materialx-1.39.2 * usd-24.08 -* partio-1.19.0 * osl-1.13.11.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.24.3 -* hdf5-1.14.6 * vfxplatform-2024 ## [aswf/ci-vfxall:2024-clang17.3](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2024-clang17.3) Contains: -* boost-1.82.0 * cppunit-1.15.1 -* cpython-3.11.13 -* expat-2.6.4 -* freetype-2.13.2 * glew-2.2.0 -* glfw-3.4 -* libbacktrace-cci.20210118 +* gtest-1.15.2 +* libxcrypt-4.4.36 * log4cplus-2.1.2 -* lz4-1.10.0 -* md4c-0.4.8 -* pybind11-2.13.6 -* snappy-1.1.10 -* onetbb-2020_u3 -* zlib-1.3.1 -* zstd-1.5.6 -* dbus-system -* fontconfig-system -* glib-2.56.4 -* libalsa-system -* libdrm-system -* libjxl-0.11.1 -* libraw-0.21.4 -* libsndfile-system -* libtiff-4.0.9 -* libwebp-1.5.0 -* libxshmfence-system -* md4c-0.4.8 -* nss-3.101.0 -* openjpeg-2.4.0 -* opus-system -* pulseaudio-system -* xkbcommon-0.9.1 * qt-6.5.6 * pyside-6.5.6 +* opensubdiv-3.6.1 +* partio-1.19.0 +* alembic-1.8.8 * imath-3.1.12 * openexr-3.2.4 -* alembic-1.8.8 * oiio-2.5.19.0 * ocio-2.3.2 * openfx-1.5s -* opensubdiv-3.6.1 -* ptex-2.4.2 * openvdb-11.0.0 * materialx-1.39.2 * usd-24.08 -* partio-1.19.0 * osl-1.13.11.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.24.3 -* hdf5-1.14.6 * vfxplatform-2024 ## [aswf/ci-vfxall:2025-clang18.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang18.2) Contains: -* boost-1.85.0 * cppunit-1.15.1 -* cpython-3.11.13 -* expat-2.6.4 -* freetype-2.13.2 * glew-2.2.0 -* glfw-3.4 -* libbacktrace-cci.20210118 +* gtest-1.15.2 +* libxcrypt-4.4.36 * log4cplus-2.1.2 -* lz4-1.10.0 -* md4c-0.4.8 -* pybind11-2.13.6 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* dbus-system -* fontconfig-system -* glib-2.56.4 -* libalsa-system -* libdrm-system -* libjxl-0.11.1 -* libraw-0.21.4 -* libsndfile-system -* libtiff-4.0.9 -* libwebp-1.5.0 -* libxshmfence-system -* md4c-0.4.8 -* nss-3.101.0 -* openjpeg-2.4.0 -* opus-system -* pulseaudio-system -* xkbcommon-0.9.1 * qt-6.5.6 * pyside-6.5.6 +* opensubdiv-3.6.1 +* partio-1.19.0 +* alembic-1.8.8 * imath-3.1.12 * openexr-3.3.5 -* alembic-1.8.8 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * ocio-2.4.2 * openfx-1.5s -* opensubdiv-3.6.1 -* ptex-2.4.3 * openvdb-12.0.1 * materialx-1.39.3 * usd-25.05.01 -* partio-1.19.0 * osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 -* hdf5-1.14.6 * vfxplatform-2025 ## [aswf/ci-vfxall:2025-clang19.2](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2025-clang19.2) Contains: -* boost-1.85.0 * cppunit-1.15.1 -* cpython-3.11.13 -* expat-2.6.4 -* freetype-2.13.2 * glew-2.2.0 -* glfw-3.4 -* libbacktrace-cci.20210118 +* gtest-1.15.2 +* libxcrypt-4.4.36 * log4cplus-2.1.2 -* lz4-1.10.0 -* md4c-0.4.8 -* pybind11-2.13.6 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* dbus-system -* fontconfig-system -* glib-2.56.4 -* libalsa-system -* libdrm-system -* libjxl-0.11.1 -* libraw-0.21.4 -* libsndfile-system -* libtiff-4.0.9 -* libwebp-1.5.0 -* libxshmfence-system -* md4c-0.4.8 -* nss-3.101.0 -* openjpeg-2.4.0 -* opus-system -* pulseaudio-system -* xkbcommon-0.9.1 * qt-6.5.6 * pyside-6.5.6 +* opensubdiv-3.6.1 +* partio-1.19.0 +* alembic-1.8.8 * imath-3.1.12 * openexr-3.3.5 -* alembic-1.8.8 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * ocio-2.4.2 * openfx-1.5s -* opensubdiv-3.6.1 -* ptex-2.4.3 * openvdb-12.0.1 * materialx-1.39.3 * usd-25.05.01 -* partio-1.19.0 * osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-1.26.4 -* hdf5-1.14.6 * vfxplatform-2025 ## [aswf/ci-vfxall:2026-clang19.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2026-clang19.0) Contains: -* boost-1.88.0 * cppunit-1.15.1 -* cpython-3.13.3 -* expat-2.7.1 -* freetype-2.13.2 * glew-2.2.0 -* glfw-3.4 -* libbacktrace-cci.20210118 +* gtest-1.17.0 +* libxcrypt-4.4.38 * log4cplus-2.1.2 -* lz4-1.10.0 -* md4c-0.5.2 -* pybind11-2.13.6 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* dbus-system -* fontconfig-system -* glib-2.56.4 -* libalsa-system -* libdrm-system -* libjxl-0.11.1 -* libraw-0.21.4 -* libsndfile-system -* libtiff-4.0.9 -* libwebp-1.5.0 -* libxshmfence-system -* md4c-0.5.2 -* nss-3.101.0 -* openjpeg-2.4.0 -* opus-system -* pulseaudio-system -* xkbcommon-0.9.1 * qt-6.8.3 * pyside-6.8.3 +* opensubdiv-3.6.1 +* partio-1.19.0 +* alembic-1.8.8 * imath-3.1.12 * openexr-3.4-alpha -* alembic-1.8.8 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * ocio-2.4.2 * openfx-1.5s -* opensubdiv-3.6.1 -* ptex-2.4.3 * openvdb-12.0.1 * materialx-1.39.3 * usd-25.08 -* partio-1.19.0 * osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-2.3.2 -* hdf5-1.14.6 * vfxplatform-2026 ## [aswf/ci-vfxall:2026-clang20.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2026-clang20.0) Contains: -* boost-1.88.0 * cppunit-1.15.1 -* cpython-3.13.3 -* expat-2.7.1 -* freetype-2.13.2 * glew-2.2.0 -* glfw-3.4 -* libbacktrace-cci.20210118 +* gtest-1.17.0 +* libxcrypt-4.4.38 * log4cplus-2.1.2 -* lz4-1.10.0 -* md4c-0.5.2 -* pybind11-2.13.6 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* dbus-system -* fontconfig-system -* glib-2.56.4 -* libalsa-system -* libdrm-system -* libjxl-0.11.1 -* libraw-0.21.4 -* libsndfile-system -* libtiff-4.0.9 -* libwebp-1.5.0 -* libxshmfence-system -* md4c-0.5.2 -* nss-3.101.0 -* openjpeg-2.4.0 -* opus-system -* pulseaudio-system -* xkbcommon-0.9.1 * qt-6.8.3 * pyside-6.8.3 +* opensubdiv-3.6.1 +* partio-1.19.0 +* alembic-1.8.8 * imath-3.1.12 * openexr-3.4-alpha -* alembic-1.8.8 -* oiio-3.0.9.0 +* oiio-3.0.9.1 * ocio-2.4.2 * openfx-1.5s -* opensubdiv-3.6.1 -* ptex-2.4.3 * openvdb-12.0.1 * materialx-1.39.3 * usd-25.08 -* partio-1.19.0 * osl-1.14.7.0 * otio-0.17.0 * rawtoaces-vfx2026.0 * numpy-2.3.2 -* hdf5-1.14.6 * vfxplatform-2026 diff --git a/ci-vfxall/image.yaml b/ci-vfxall/image.yaml index 172faea8..f2b0d34b 100644 --- a/ci-vfxall/image.yaml +++ b/ci-vfxall/image.yaml @@ -3,63 +3,29 @@ title: "VFX All CI Docker Image" description: | Contains: all supported VFX packages packages: - - c-blosc - - boost - cppunit - - cpython - - expat - - freetype - glew - - glfw - - libbacktrace + - gtest + - libxcrypt # No longer a dependency of cpython as of 3.13 - log4cplus - - lz4 - - md4c - - pybind11 - - snappy - - onetbb - - zlib - - zstd - - dbus - - double-conversion - - fontconfig - - glib - - libalsa - - libdrm - - libjpeg-turbo - - libjxl - - libraw - - libsndfile - - libtiff - - libwebp - - libxshmfence - - md4c - - nss - - openal-soft - - openjpeg - - opus - - pulseaudio - - xkbcommon - qt - pyside + - opensubdiv # Dependency of USD once it becomes Conan package + - partio # Dependency of OSL once it becomes Conan package + - alembic # Dependency of USD once it becomes Conan package - imath - openexr - - alembic - oiio - ocio - openfx - - opensubdiv - - ptex - openvdb - materialx - usd - - partio - osl - otio - rawtoaces implicit_packages: - numpy - - hdf5 - vfxplatform docker_from: ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} docker_package_version: $ASWF_VFXPLATFORM_VERSION diff --git a/packages/conan/recipes/oiio/conandata.yml b/packages/conan/recipes/oiio/conandata.yml index 961ee7d5..6da2cecf 100644 --- a/packages/conan/recipes/oiio/conandata.yml +++ b/packages/conan/recipes/oiio/conandata.yml @@ -5,9 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/openimageio/all/conandata.yml sources: - "3.0.9.0": - url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.9.0.tar.gz" - sha256: "2618f024d33b03fd003ce272e9a2a78d3bffd4c78cf8a1a058a9def715bb8bc9" + "3.0.9.1": + url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.9.1.tar.gz" + sha256: "bbc5db069b7d8e4e2fccf994d55a262953057745a5e398e44a2e5235a8736d1d" "3.0.8.1": url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.8.1.tar.gz" sha256: "1b9b0d27e802243c1aa490b951580d10e8be645459f8080bfa0ed6f213e1082a" @@ -119,7 +119,7 @@ patches: - patch_file: "patches/3.0.8.1-raw-jp2k-cmake.patch" patch_description: "Find local builds of LibRaw, OpenJPEG" patch_type: "conan" - "3.0.9.0": + "3.0.9.1": - patch_file: "patches/3.0.6.1-cmake-fmt.patch" patch_description: "Deal with generator expression from fmt Conan package" patch_type: "conan" diff --git a/packages/conan/recipes/openfx/conanfile.py b/packages/conan/recipes/openfx/conanfile.py index ebb04325..7f3a4b25 100644 --- a/packages/conan/recipes/openfx/conanfile.py +++ b/packages/conan/recipes/openfx/conanfile.py @@ -40,8 +40,8 @@ class openfx(ConanFile): default_options = { "expat/*:shared": True, "use_opencl": True, # ASWF: build with OpenCL support - "spdlog/*:header_only": False, # ASWF: system spdlog is not header only - "fmt/*:header_only": False # ASWF: our fmt build is not header only + "spdlog/*:header_only": True, + "fmt/*:header_only": False # ASWF: our fmt is not build header_only } def export_sources(self): @@ -70,6 +70,7 @@ def generate(self): tc.variables["OFX_SUPPORTS_OPENGLRENDER"] = True # ASWF: exercise OpenGL / OpenCL / CUDA dependencies tc.variables["OFX_SUPPORTS_OPENCLRENDER"] = True tc.variables["OFX_SUPPORTS_CUDARENDER"] = True + tc.variables["BUILD_EXAMPLE_PLUGINS"] = True if self.settings.os == "Windows": tc.preprocessor_definitions["WINDOWS"] = 1 tc.preprocessor_definitions["NOMINMAX"] = 1 @@ -118,7 +119,6 @@ def package_info(self): self.cpp_info.components["Support"].defines = win_defines # ASWF: need to reference all dependencies to make Conan happy - # self.cpp_info.components["Examples"].set_property("cmake_examples_dir", "Examples") self.cpp_info.components["Examples"].requires = ["spdlog::spdlog", "cimg::cimg"] if self.options.use_opencl: # for OpenCL examples self.cpp_info.components["Examples"].requires.extend(["opencl-icd-loader::opencl-icd-loader", "opencl-headers::opencl-headers"]) diff --git a/packages/conan/recipes/spdlog/conandata.yml b/packages/conan/recipes/spdlog/conandata.yml new file mode 100644 index 00000000..bfd5fa8f --- /dev/null +++ b/packages/conan/recipes/spdlog/conandata.yml @@ -0,0 +1,55 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/06fb0be6b9ffe79c8e74eb9739bcef0545994bef/recipes/spdlog/all/conandata.yml + +sources: + "1.15.3": + url: "https://github.com/gabime/spdlog/archive/v1.15.3.tar.gz" + sha256: "15a04e69c222eb6c01094b5c7ff8a249b36bb22788d72519646fb85feb267e67" + "1.14.1": + url: "https://github.com/gabime/spdlog/archive/v1.14.1.tar.gz" + sha256: "1586508029a7d0670dfcb2d97575dcdc242d3868a259742b69f100801ab4e16b" + "1.14.0": + url: "https://github.com/gabime/spdlog/archive/v1.14.0.tar.gz" + sha256: "429a6b73ade8285cb21f83bacf89e2821dd1720ea7faa3cb518ffe04b4e00efc" + "1.13.0": + url: "https://github.com/gabime/spdlog/archive/v1.13.0.tar.gz" + sha256: "534f2ee1a4dcbeb22249856edfb2be76a1cf4f708a20b0ac2ed090ee24cfdbc9" + "1.12.0": + url: "https://github.com/gabime/spdlog/archive/v1.12.0.tar.gz" + sha256: "4dccf2d10f410c1e2feaff89966bfc49a1abb29ef6f08246335b110e001e09a9" + "1.11.0": + url: "https://github.com/gabime/spdlog/archive/v1.11.0.tar.gz" + sha256: "ca5cae8d6cac15dae0ec63b21d6ad3530070650f68076f3a4a862ca293a858bb" + "1.10.0": + url: "https://github.com/gabime/spdlog/archive/v1.10.0.tar.gz" + sha256: "697f91700237dbae2326b90469be32b876b2b44888302afbc7aceb68bcfe8224" + "1.9.2": + url: "https://github.com/gabime/spdlog/archive/v1.9.2.tar.gz" + sha256: "6fff9215f5cb81760be4cc16d033526d1080427d236e86d70bb02994f85e3d38" + "1.9.1": + url: "https://github.com/gabime/spdlog/archive/v1.9.1.tar.gz" + sha256: "9a452cfa24408baccc9b2bc2d421d68172a7630c99e9504a14754be840d31a62" + "1.8.5": + url: "https://github.com/gabime/spdlog/archive/v1.8.5.tar.gz" + sha256: "944d0bd7c763ac721398dca2bb0f3b5ed16f67cef36810ede5061f35a543b4b8" +patches: + "1.11.0": + - patch_file: "patches/1.11.0-0001-fix-fmt10-build.patch" + patch_description: "Fix fmt 10.0.0 build" + patch_type: "conan" + patch_source: "https://github.com/gabime/spdlog/pull/2694" +# Each release is intended to work with some specific versions +fmt_version_mapping: + "1.15.3": "11.2.0" + "1.14.1": "10.2.1" + "1.14.0": "10.2.1" + "1.13.0": "10.2.1" + "1.12.0": "10.2.1" + "1.11.0": "10.0.0" + "1.10.0": "8.1.1" + "1.9.2": "8.0.1" + "1.9.1": "8.0.1" + "1.8.5": "7.1.3" diff --git a/packages/conan/recipes/spdlog/conanfile.py b/packages/conan/recipes/spdlog/conanfile.py index 9f37c1f2..b0a41f25 100644 --- a/packages/conan/recipes/spdlog/conanfile.py +++ b/packages/conan/recipes/spdlog/conanfile.py @@ -2,25 +2,202 @@ # Copyright (c) Contributors to the aswf-docker Project. All rights reserved. # SPDX-License-Identifier: MIT # -# From: https://github.com/conan-io/conan-center-index/blob/feef5a8b9d03692bf27a8e1e94a6f59fd493d420/recipes/spdlog/all/conanfile.py +# https://github.com/conan-io/conan-center-index/blob/06fb0be6b9ffe79c8e74eb9739bcef0545994bef/recipes/spdlog/all/conanfile.py from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeToolchain, CMakeDeps, cmake_layout +from conan.tools.files import get, copy, rmdir, replace_in_file, apply_conandata_patches, export_conandata_patches +from conan.tools.microsoft import check_min_vs, is_msvc, is_msvc_static_runtime +from conan.tools.scm import Version +import os -class SystemSpdlogConan(ConanFile): +required_conan_version = ">=1.53.0" + + +class SpdlogConan(ConanFile): name = "spdlog" - version = "system" + package_type = "library" + description = "Fast C++ logging library" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://github.com/gabime/spdlog" + topics = ("logger", "logging", "log-filtering", "file sink", "header-only") + license = "MIT" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "header_only": [True, False], + "wchar_support": [True, False], + "wchar_filenames": [True, False], + "wchar_console": [True, False], + "no_exceptions": [True, False], + "use_std_fmt": [True, False], + } + default_options = { + "shared": False, + "fPIC": True, + "header_only": True, # OpenFX expects header_only version + "wchar_support": False, + "wchar_filenames": False, + "wchar_console": False, + "no_exceptions": False, + "use_std_fmt": False, + } + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + else: + del self.options.wchar_support + del self.options.wchar_filenames + del self.options.wchar_console + if Version(self.version) < "1.10.0": + del self.options.use_std_fmt + if Version(self.version) < "1.15.0": + self.options.rm_safe("wchar_console") + + def configure(self): + if self.options.get_safe("shared") or self.options.header_only: + self.options.rm_safe("fPIC") + if self.options.header_only: + self.options.rm_safe("shared") + + def layout(self): + cmake_layout(self, src_folder="src") def requirements(self): - # Conan profile provides real versions - self.requires("fmt/[>=11.0.0]", transitive_headers=True, transitive_libs=True) + if not self.options.get_safe("use_std_fmt"): + fmt_version = self.conan_data["fmt_version_mapping"][self.version] + self.requires(f"fmt/{fmt_version}", transitive_headers=True, transitive_libs=True) + + def package_id(self): + if self.info.options.header_only: + self.info.clear() + + @property + def _std_fmt_compilers_minimum_version(self): + return { + "gcc": "13", + "clang": "14", + "apple-clang": "15", + "Visual Studio": "16", + "msvc": "192", + } + + def validate(self): + if self.options.get_safe("use_std_fmt"): + check_min_cppstd(self, 20) + else: + check_min_cppstd(self, 11) + if self.options.get_safe("shared") and is_msvc_static_runtime(self): + raise ConanInvalidConfiguration("Visual Studio build for shared library with MT runtime is not supported") + + if self.options.get_safe("use_std_fmt"): + compiler_name = str(self.settings.compiler) + minimum_version = self._std_fmt_compilers_minimum_version.get(compiler_name, False) + if not minimum_version: + self.output.warning(f"{self.name} recipe lacks information about the {compiler_name} compiler support.") + elif Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} using std::fmt requires std::fmt, which your compiler does not support." + ) + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + if not self.options.header_only: + tc = CMakeToolchain(self) + tc.variables["SPDLOG_BUILD_EXAMPLE"] = False + tc.variables["SPDLOG_BUILD_EXAMPLE_HO"] = False + tc.variables["SPDLOG_BUILD_TESTS"] = False + tc.variables["SPDLOG_BUILD_TESTS_HO"] = False + tc.variables["SPDLOG_BUILD_BENCH"] = False + if not self.options.get_safe("use_std_fmt"): + fmt = self.dependencies["fmt"] + tc.variables["SPDLOG_FMT_EXTERNAL"] = not fmt.options.header_only + tc.variables["SPDLOG_FMT_EXTERNAL_HO"] = fmt.options.header_only + tc.variables["SPDLOG_BUILD_SHARED"] = not self.options.header_only and self.options.shared + tc.variables["SPDLOG_WCHAR_SUPPORT"] = self.options.get_safe("wchar_support", False) + tc.variables["SPDLOG_WCHAR_FILENAMES"] = self.options.get_safe("wchar_filenames", False) + if Version(self.version) >= "1.15.0": + tc.variables["SDPLOG_WCHAR_CONSOLE"] = self.options.get_safe("wchar_console", False) + tc.variables["SPDLOG_INSTALL"] = True + tc.variables["SPDLOG_NO_EXCEPTIONS"] = self.options.no_exceptions + tc.variables["SPDLOG_USE_STD_FORMAT"] = self.options.get_safe("use_std_fmt") + if self.settings.os in ("iOS", "tvOS", "watchOS"): + tc.variables["SPDLOG_NO_TLS"] = True + tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0091"] = "NEW" + tc.generate() + cmake_deps = CMakeDeps(self) + cmake_deps.generate() + + + def _patch_sources(self): + apply_conandata_patches(self) + replace_in_file(self, os.path.join(self.source_folder, "cmake", "utils.cmake"), "/WX", "") + # This is properly set in later versions + if self.options.get_safe("use_std_fmt") and Version(self.version) < "1.12": + replace_in_file(self, os.path.join(self.source_folder, "CMakeLists.txt"), + "CMAKE_CXX_STANDARD 11", "CMAKE_CXX_STANDARD 20") + + def build(self): + self._patch_sources() + if not self.options.header_only: + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: license in package specific dir + copy(self, "LICENSE", dst=os.path.join(self.package_folder, "licenses", self.name), src=self.source_folder) + if self.options.header_only: + copy(self, + src=os.path.join(self.source_folder, "include"), + pattern="*.h", dst=os.path.join(self.package_folder, "include"), + # Unvendor bundled dependencies https://github.com/gabime/spdlog/commit/18495bf25dad3a4e8c2fe3777a5f79acecde27e3 + excludes=("spdlog/fmt/bundled/*")) + else: + cmake = CMake(self) + cmake.install() + rmdir(self, os.path.join(self.package_folder, "lib", "cmake")) + rmdir(self, os.path.join(self.package_folder, "lib", "pkgconfig")) + rmdir(self, os.path.join(self.package_folder, "lib", "spdlog", "cmake")) def package_info(self): - self.cpp_info.includedirs = [] - self.cpp_info.system_libs = ["spdlog"] - + target = "spdlog_header_only" if self.options.header_only else "spdlog" self.cpp_info.set_property("cmake_file_name", "spdlog") - self.cpp_info.set_property("cmake_target_name", "spdlog::spdlog") + self.cpp_info.set_property("cmake_target_name", f"spdlog::{target}") + self.cpp_info.set_property("pkg_config_name", "spdlog") + + # TODO: back to global scope in conan v2 once legacy generators removed + self.cpp_info.components["libspdlog"].set_property("cmake_target_name", f"spdlog::{target}") + if self.options.get_safe("use_std_fmt"): + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_USE_STD_FORMAT") + else: + self.cpp_info.components["libspdlog"].requires = ["fmt::fmt"] + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_FMT_EXTERNAL") - self.cpp_info.components["libspdlog"].set_property("cmake_target_name", "spdlog::spdlog") - self.cpp_info.components["libspdlog"].requires = ["fmt::fmt"] - self.cpp_info.components["libspdlog"].defines.append("SPDLOG_FMT_EXTERNAL") + if self.options.header_only: + self.cpp_info.components["libspdlog"].libdirs = [] + else: + suffix = "d" if self.settings.build_type == "Debug" else "" + self.cpp_info.components["libspdlog"].libs = [f"spdlog{suffix}"] + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_COMPILED_LIB") + if self.options.get_safe("wchar_support"): + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_WCHAR_TO_UTF8_SUPPORT") + if self.options.get_safe("wchar_filenames"): + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_WCHAR_FILENAMES") + if self.options.get_safe("wchar_console"): + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_UTF8_TO_WCHAR_CONSOLE") + if self.options.no_exceptions: + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_NO_EXCEPTIONS") + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.components["libspdlog"].system_libs = ["pthread"] + if self.options.header_only and self.settings.os in ("iOS", "tvOS", "watchOS"): + self.cpp_info.components["libspdlog"].defines.append("SPDLOG_NO_TLS") diff --git a/packages/conan/recipes/spdlog/test_package/CMakeLists.txt b/packages/conan/recipes/spdlog/test_package/CMakeLists.txt new file mode 100644 index 00000000..c40a886a --- /dev/null +++ b/packages/conan/recipes/spdlog/test_package/CMakeLists.txt @@ -0,0 +1,23 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/06fb0be6b9ffe79c8e74eb9739bcef0545994bef/recipes/spdlog/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) +project(test_package LANGUAGES CXX) + +find_package(spdlog REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +if(SPDLOG_HEADER_ONLY) + target_link_libraries(${PROJECT_NAME} PUBLIC spdlog::spdlog_header_only) +else() + target_link_libraries(${PROJECT_NAME} PUBLIC spdlog::spdlog) +endif() + +if(SPDLOG_USE_STD_FORMAT) + target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_20) +else() + target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_11) +endif() diff --git a/packages/conan/recipes/spdlog/test_package/conanfile.py b/packages/conan/recipes/spdlog/test_package/conanfile.py new file mode 100644 index 00000000..11960096 --- /dev/null +++ b/packages/conan/recipes/spdlog/test_package/conanfile.py @@ -0,0 +1,39 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/blob/06fb0be6b9ffe79c8e74eb9739bcef0545994bef/recipes/spdlog/all/test_package/conanfile.py + +import os +from conan import ConanFile +from conan.tools.cmake import CMake, CMakeToolchain +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout + + +class TestPackageConan(ConanFile): + settings = "os", "compiler", "build_type", "arch" + generators = "CMakeDeps", "VirtualRunEnv" + test_type = "explicit" + + def layout(self): + cmake_layout(self) + + def requirements(self): + self.requires(self.tested_reference_str) + + def generate(self): + tc = CMakeToolchain(self) + tc.variables["SPDLOG_HEADER_ONLY"] = self.dependencies["spdlog"].options.header_only + tc.variables["SPDLOG_USE_STD_FORMAT"] = self.dependencies["spdlog"].options.get_safe("use_std_fmt", False) + tc.generate() + + def build(self): + cmake = CMake(self) + cmake.configure() + cmake.build() + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindirs[0], "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/spdlog/test_package/test_package.cpp b/packages/conan/recipes/spdlog/test_package/test_package.cpp new file mode 100644 index 00000000..6eff0490 --- /dev/null +++ b/packages/conan/recipes/spdlog/test_package/test_package.cpp @@ -0,0 +1,21 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/conan-io/conan-center-index/tree/06fb0be6b9ffe79c8e74eb9739bcef0545994bef/recipes/spdlog/all/test_package +*/ + +#include +#include "spdlog/spdlog.h" + +#if defined __has_include +# if __has_include ("spdlog/fmt/bundled/core.h") +# error "bundled fmt within spdlog should not be present" +# endif +#endif + +int main(void) { + spdlog::info("Welcome to spdlog version {}.{}.{} !", SPDLOG_VER_MAJOR, SPDLOG_VER_MINOR, SPDLOG_VER_PATCH); + return EXIT_SUCCESS; +} diff --git a/packages/conan/settings/global.conf b/packages/conan/settings/global.conf index c2728d39..9e8e21c1 100644 --- a/packages/conan/settings/global.conf +++ b/packages/conan/settings/global.conf @@ -13,6 +13,9 @@ tools.system.package_manager:sudo = True core.net.http:timeout = 60 core.package_id:default_unknown_mode = semver_mode +# When we conan install we want everything +tools.graph:skip_binaries = False + # FIXME don't repeat yourself use jinja2 env vars core.cache:storage_path = /opt/conan_home/d core.download:download_cache = /tmp/downloads diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index eeaa6f80..b97bfa42 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -82,7 +82,7 @@ pulseaudio/*: pulseaudio/system@aswf/vfx2024 pybind11/*: pybind11/2.13.6@aswf/vfx2024 pystring/*: pystring/1.1.4@aswf/vfx2024 snappy/*: snappy/1.1.10@aswf/vfx2024 -spdlog/*: spdlog/system@aswf/vfx2024 +spdlog/*: spdlog/1.15.3@aswf/vfx2024 sqlite3/*: sqlite3/system@aswf/vfx2024 tcl/*: tcl/system@aswf/vfx2024 tk/*: tk/system@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index df0a1c09..17fa2eff 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -65,7 +65,7 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2025 nspr/*: nspr/system@aswf/vfx2025 nss/*: nss/3.101.0@aswf/vfx2025 ocio/*: ocio/2.4.2@aswf/vfx2025 -oiio/*: oiio/3.0.9.0@aswf/vfx2025 +oiio/*: oiio/3.0.9.1@aswf/vfx2025 ogg/*: ogg/system@aswf/vfx2025 onetbb/*: onetbb/2021.13.0@aswf/vfx2025 openal-soft/*: openal-soft/system@aswf/vfx2025 @@ -83,7 +83,7 @@ pulseaudio/*: pulseaudio/system@aswr/vfx2025 pybind11/*: pybind11/2.13.6@aswf/vfx2025 pystring/*: pystring/1.1.4@aswf/vfx2025 snappy/*: snappy/1.1.10@aswf/vfx2025 -spdlog/*: spdlog/system@aswf/vfx2025 +spdlog/*: spdlog/1.15.3@aswf/vfx2025 sqlite3/*: sqlite3/system@aswf/vfx2025 tcl/*: tcl/system@aswf/vfx2025 tk/*: tk/system@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index 42858e70..62e18441 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -67,7 +67,7 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswf/vfx2026 nspr/*: nspr/system@aswf/vfx2026 nss/*: nss/3.101.0@aswf/vfx2026 ocio/*: ocio/2.4.2@aswf/vfx2026 -oiio/*: oiio/3.0.9.0@aswf/vfx2026 +oiio/*: oiio/3.0.9.1@aswf/vfx2026 ogg/*: ogg/system@aswf/vfx2026 onetbb/*: onetbb/2022.1.0@aswf/vfx2026 openal-soft/*: openal-soft/system@aswf/vfx2026 @@ -86,7 +86,7 @@ pybind11/*: pybind11/2.13.6@aswf/vfx2026 pystring/*: pystring/1.1.4@aswf/vfx2026 qt/*: qt/6.8.3@aswf/vfx2026 snappy/*: snappy/1.2.2@aswf/vfx2026 -spdlog/*: spdlog/system@aswf/vfx2026 +spdlog/*: spdlog/1.15.3@aswf/vfx2026 sqlite3/*: sqlite3/system@aswf/vfx2026 tcl/*: tcl/system@aswf/vfx2026 tk/*: tk/system@aswf/vfx2026 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index b79561d0..69cee3d8 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -82,7 +82,7 @@ pulseaudio/*: pulseaudio/system@aswftesting/vfx2024 pybind11/*: pybind11/2.13.6@aswftesting/vfx2024 pystring/*: pystring/1.1.4@aswftesting/vfx2024 snappy/*: snappy/1.1.10@aswftesting/vfx2024 -spdlog/*: spdlog/system@aswftesting/vfx2024 +spdlog/*: spdlog/1.15.3@aswftesting/vfx2024 sqlite3/*: sqlite3/system@aswftesting/vfx2024 tcl/*: tcl/system@aswftesting/vfx2024 tk/*: tk/system@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index c1aa7541..8301eb6f 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -65,7 +65,7 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2025 nspr/*: nspr/system@aswftesting/vfx2025 nss/*: nss/3.101.0@aswftesting/vfx2025 ocio/*: ocio/2.4.2@aswftesting/vfx2025 -oiio/*: oiio/3.0.9.0@aswftesting/vfx2025 +oiio/*: oiio/3.0.9.1@aswftesting/vfx2025 ogg/*: ogg/system@aswftesting/vfx2025 onetbb/*: onetbb/2021.13.0@aswftesting/vfx2025 openal-soft/*: openal-soft/system@aswftesting/vfx2025 @@ -83,7 +83,7 @@ pulseaudio/*: pulseaudio/system@aswftesting/vfx2025 pybind11/*: pybind11/2.13.6@aswftesting/vfx2025 pystring/*: pystring/1.1.4@aswftesting/vfx2025 snappy/*: snappy/1.1.10@aswftesting/vfx2025 -spdlog/*: spdlog/system@aswftesting/vfx2025 +spdlog/*: spdlog/1.15.3@aswftesting/vfx2025 sqlite3/*: sqlite3/system@aswftesting/vfx2025 tcl/*: tcl/system@aswftesting/vfx2025 tk/*: tk/system@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 8b245af3..099e653c 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -67,7 +67,7 @@ nlohmann_json/*: nlohmann_json/3.12.0@aswftesting/vfx2026 nspr/*: nspr/system@aswftesting/vfx2026 nss/*: nss/3.101.0@aswftesting/vfx2026 ocio/*: ocio/2.4.2@aswftesting/vfx2026 -oiio/*: oiio/3.0.9.0@aswftesting/vfx2026 +oiio/*: oiio/3.0.9.1@aswftesting/vfx2026 ogg/*: ogg/system@aswftesting/vfx2026 onetbb/*: onetbb/2022.1.0@aswftesting/vfx2026 openal-soft/*: openal-soft/system@aswftesting/vfx2026 @@ -86,7 +86,7 @@ pybind11/*: pybind11/2.13.6@aswftesting/vfx2026 pystring/*: pystring/1.1.4@aswftesting/vfx2026 qt/*: qt/6.8.3@aswftesting/vfx2026 snappy/*: snappy/1.2.2@aswftesting/vfx2026 -spdlog/*: spdlog/system@aswftesting/vfx2026 +spdlog/*: spdlog/1.15.3@aswftesting/vfx2026 sqlite3/*: sqlite3/system@aswftesting/vfx2026 tcl/*: tcl/system@aswftesting/vfx2026 tk/*: tk/system@aswftesting/vfx2026 diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 7aca9448..00e91dbf 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -548,7 +548,6 @@ versions: ASWF_OPUS_VERSION: "system" ASWF_PCRE2_VERSION: "system" ASWF_PULSEAUDIO_VERSION: "system" - ASWF_SPDLOG_VERSION: "system" ASWF_SQLITE3_VERSION: "system" ASWF_TCL_VERSION: "system" ASWF_TK_VERSION: "system" @@ -599,6 +598,7 @@ versions: ASWF_PYBIND11_VERSION: "2.13.6" ASWF_PYSTRING_VERSION: "1.1.4" ASWF_SNAPPY_VERSION: "1.1.10" + ASWF_SPDLOG_VERSION: "1.15.3" ASWF_TSL_ROBIN_MAP_VERSION: "1.3.0" ASWF_USD_VERSION: "24.08" ASWF_YAML_CPP_VERSION: "0.8.0" @@ -683,7 +683,6 @@ versions: ASWF_OPUS_VERSION: "system" ASWF_PCRE2_VERSION: "system" ASWF_PULSEAUDIO_VERSION: "system" - ASWF_SPDLOG_VERSION: "system" ASWF_SQLITE3_VERSION: "system" ASWF_TCL_VERSION: "system" ASWF_TK_VERSION: "system" @@ -734,6 +733,7 @@ versions: ASWF_PYBIND11_VERSION: "2.13.6" ASWF_PYSTRING_VERSION: "1.1.4" ASWF_SNAPPY_VERSION: "1.1.10" + ASWF_SPDLOG_VERSION: "1.15.3" ASWF_TSL_ROBIN_MAP_VERSION: "1.3.0" ASWF_USD_VERSION: "25.05.01" ASWF_YAML_CPP_VERSION: "0.8.0" @@ -758,7 +758,7 @@ versions: ASWF_MATERIALX_VERSION: "1.39.3" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" - ASWF_OIIO_VERSION: "3.0.9.0" + ASWF_OIIO_VERSION: "3.0.9.1" ASWF_OPENEXR_VERSION: "3.3.5" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" @@ -819,7 +819,6 @@ versions: ASWF_OPUS_VERSION: "system" ASWF_PCRE2_VERSION: "system" ASWF_PULSEAUDIO_VERSION: "system" - ASWF_SPDLOG_VERSION: "system" ASWF_SQLITE3_VERSION: "system" ASWF_TCL_VERSION: "system" ASWF_TK_VERSION: "system" @@ -870,6 +869,7 @@ versions: ASWF_PYBIND11_VERSION: "2.13.6" ASWF_PYSTRING_VERSION: "1.1.4" ASWF_SNAPPY_VERSION: "1.2.2" + ASWF_SPDLOG_VERSION: "1.15.3" ASWF_TSL_ROBIN_MAP_VERSION: "1.4.0" ASWF_USD_VERSION: "25.08" ASWF_YAML_CPP_VERSION: "0.8.0" @@ -894,7 +894,7 @@ versions: ASWF_MATERIALX_VERSION: "1.39.3" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" - ASWF_OIIO_VERSION: "3.0.9.0" + ASWF_OIIO_VERSION: "3.0.9.1" ASWF_OPENEXR_VERSION: "3.4-alpha" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" @@ -1774,7 +1774,6 @@ groups: - libvpx - mpg123 - ogg - - spdlog - vorbis vfx1-1: - aces_container @@ -1788,6 +1787,7 @@ groups: - opensubdiv - partio - ptex + - spdlog vfx1-2: - libjxl - libraw @@ -1852,6 +1852,7 @@ conan_only: - brotli - bzip2 - ceres-solver + - cimg - clang - cmake - cppunit diff --git a/scripts/common/install_yumpackages.sh b/scripts/common/install_yumpackages.sh index c3c88264..c58fd370 100755 --- a/scripts/common/install_yumpackages.sh +++ b/scripts/common/install_yumpackages.sh @@ -287,7 +287,7 @@ yum install -y \ libxshmfence \ libxshmfence-devel \ nss-devel \ - ocl-icd \ + ocl-icd-devel \ opencl-headers \ patchelf \ p7zip \ diff --git a/scripts/vfx/build_openfx.sh b/scripts/vfx/build_openfx.sh new file mode 100755 index 00000000..8aad3bda --- /dev/null +++ b/scripts/vfx/build_openfx.sh @@ -0,0 +1,117 @@ +#!/usr/bin/env bash +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -ex + +mkdir openfx +cd openfx + +if [ ! -f "$DOWNLOADS_DIR/ptex-${ASWF_OPENFX_VERSION}.tar.gz" ]; then + curl --location "https://github.com/AcademySoftwareFoundation/openfx/archive/refs/tags/OFX_Release_${ASWF_OPENFX_VERSION}.tar.gz" -o "$DOWNLOADS_DIR/openfx-${ASWF_OPENFX_VERSION}.tar.gz" +fi + +tar -zxf "$DOWNLOADS_DIR/openfx-${ASWF_OPENFX_VERSION}.tar.gz" +cd "openfx-OFX_Release_${ASWF_OPENFX_VERSION}" + +# Fix up CMakeLists.txt + +cat << 'EOF' | patch -p1 +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6cf74b219a1..501394deede 10064 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,8 +38,7 @@ + add_definitions(-DOFX_SUPPORTS_OPENGLRENDER) + endif() + if(OFX_SUPPORTS_OPENCLRENDER) +- find_package(OpenCLHeaders REQUIRED) +- find_package(OpenCLICDLoader REQUIRED) ++ find_package(OpenCL REQUIRED) + add_definitions(-DOFX_SUPPORTS_OPENCLRENDER) + endif() + if(OFX_SUPPORTS_CUDARENDER) +@@ -62,9 +61,10 @@ + + # Conan packages + find_package(EXPAT) +-find_package(opengl_system REQUIRED) +-find_package(cimg REQUIRED) ++find_package(OpenGL REQUIRED) ++#find_package(cimg REQUIRED) + find_package(spdlog REQUIRED) ++find_package(expat REQUIRED) + + # Macros + include(OpenFX) +diff --git a/Examples/CMakeLists.txt b/Examples/CMakeLists.txt +index 6cf74b219a1..501394deede 10064 +--- a/Examples/CMakeLists.txt ++++ b/Examples/CMakeLists.txt +@@ -22,11 +22,11 @@ + target_link_libraries(${TGT} ${CONAN_LIBS}) + target_include_directories(${TGT} PUBLIC ${OFX_HEADER_DIR} ${OFX_SUPPORT_HEADER_DIR}) + if (OFX_SUPPORTS_OPENCLRENDER) +- target_link_libraries(${TGT} PRIVATE OpenCL::Headers OpenCL::OpenCL) ++ target_link_libraries(${TGT} PRIVATE OpenCL::OpenCL) + endif() + endforeach() + +-target_link_libraries(example-OpenGL PRIVATE opengl::opengl) +-target_link_libraries(example-Custom PRIVATE opengl::opengl) +-target_link_libraries(example-ColourSpace PRIVATE cimg::cimg) ++target_link_libraries(example-OpenGL PRIVATE OpenGL::GL) ++target_link_libraries(example-Custom PRIVATE OpenGL::GL) ++#target_link_libraries(example-ColourSpace PRIVATE cimg::cimg) + target_link_libraries(example-ColourSpace PRIVATE spdlog::spdlog_header_only) +diff --git a/Support/Plugins/CMakeLists.txt b/Support/Plugins/CMakeLists.txt +index 6cf74b219a1..501394deede 10064 +--- a/Support/Plugins/CMakeLists.txt ++++ b/Support/Plugins/CMakeLists.txt +@@ -31,7 +31,7 @@ + set(TGT example-${PLUGIN}-support) + add_ofx_plugin(${TGT} ${PLUGIN}) + target_sources(${TGT} PUBLIC ${PLUGIN_SOURCES}) +- target_link_libraries(${TGT} ${CONAN_LIBS} OfxSupport opengl::opengl) ++ target_link_libraries(${TGT} ${CONAN_LIBS} OfxSupport OpenGL::GL) + target_include_directories(${TGT} PUBLIC ${OFX_HEADER_DIR} ${OFX_SUPPORT_HEADER_DIR}) + if(APPLE) + target_link_libraries(${TGT} "-framework Metal" "-framework Foundation" "-framework QuartzCore") +@@ -40,7 +40,7 @@ + endif() + else() + if (OFX_SUPPORTS_OPENCLRENDER) +- target_link_libraries(${TGT} OpenCL::Headers OpenCL::OpenCL) ++ target_link_libraries(${TGT} OpenCL::OpenCL) + endif() + endif() + +diff --git a/Support/PropTester/CMakeLists.txt b/Support/PropTester/CMakeLists.txt +index 6cf74b219a1..501394deede 10064 +--- a/Support/PropTester/CMakeLists.txt ++++ b/Support/PropTester/CMakeLists.txt +@@ -3,5 +3,5 @@ + set(TGT example-PropTester) + add_ofx_plugin(${TGT} ${CMAKE_CURRENT_SOURCE_DIR}) + target_sources(${TGT} PUBLIC ${PLUGIN_SOURCES}) +-target_link_libraries(${TGT} ${CONAN_LIBS} OfxSupport opengl::opengl) ++target_link_libraries(${TGT} ${CONAN_LIBS} OfxSupport OpenGL::GL) + target_include_directories(${TGT} PUBLIC ${OFX_HEADER_DIR} ${OFX_SUPPORT_HEADER_DIR}) +EOF + +mkdir build +cd build +cmake \ + -DCMAKE_INSTALL_PREFIX="${ASWF_INSTALL_PREFIX}" \ + -DOFX_SUPPORTS_OPENGLRENDER=ON \ + -DOFX_SUPPORTS_OPENCLRENDER=ON \ + -DOFX_SUPPORTS_CUDARENDER=ON \ + -DBUILD_EXAMPLE_PLUGINS=ON \ + -DCMAKE_CUDA_ARCHITECTURES=all-major \ + -DCMAKE_CUDA_COMPILER=/usr/local/cuda/bin/nvcc \ + .. +cmake --build . -j$(nproc) +cmake --install . + +cd ../../.. +rm -rf openfx diff --git a/scripts/vfx/build_rawtoaces.sh b/scripts/vfx/build_rawtoaces.sh new file mode 100755 index 00000000..b2756651 --- /dev/null +++ b/scripts/vfx/build_rawtoaces.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env bash +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: Apache-2.0 + +set -ex + +mkdir rawtoaces +cd rawtoaces + +if [ ! -f "$DOWNLOADS_DIR/ptex-${ASWF_RAWTOACES_VERSION}.tar.gz" ]; then + curl --location "https://github.com/AcademySoftwareFoundation/rawtoaces/archive/refs/tags/${ASWF_RAWTOACES_VERSION}.tar.gz" -o "$DOWNLOADS_DIR/rawtoaces-${ASWF_RAWTOACES_VERSION}.tar.gz" +fi + +tar -zxf "$DOWNLOADS_DIR/rawtoaces-${ASWF_RAWTOACES_VERSION}.tar.gz" +cd "rawtoaces-${ASWF_RAWTOACES_VERSION}" + +mkdir build +cd build +cmake \ + -DCMAKE_INSTALL_PREFIX="${ASWF_INSTALL_PREFIX}" \ + .. +cmake --build . -j$(nproc) +cmake --install . + +cd ../../.. +rm -rf rawtoaces From 66231afa97095dca996eda79b81e5d396bca77f6 Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Sat, 9 Aug 2025 15:18:28 -0700 Subject: [PATCH 14/14] Imath 3.2.0 and rawtoaces 1.1-rc3 Also enable building Python bindings for OCIO Signed-off-by: Jean-Francois Panisset --- CHANGELOG.md | 6 +++- ci-osl/README.md | 4 +-- ci-otio/README.md | 2 +- ci-rawtoaces/README.md | 6 ++-- ci-usd/README.md | 2 +- ci-vfxall/README.md | 16 ++++----- packages/conan/recipes/imath/conandata.yml | 6 ++++ packages/conan/recipes/imath/conanfile.py | 24 +++++++++++-- .../imath/patches/3.2.0-clang-format.patch | 15 ++++++++ .../recipes/imath/test_package/conanfile.py | 2 ++ packages/conan/recipes/ocio/conandata.yml | 6 ++++ packages/conan/recipes/ocio/conanfile.py | 6 ++-- .../patches/2.3.2-0003-python-3-always.patch | 13 +++++++ .../ocio/patches/2.3.2-0004-find-python.patch | 26 ++++++++++++++ .../patches/2.4.2-0003-python-3-always.patch | 13 +++++++ .../ocio/patches/2.4.2-0004-find-python.patch | 26 ++++++++++++++ .../conan/recipes/rawtoaces/conandata.yml | 7 ++++ .../patches/1.1-rc3-cmake_libraw_target.diff | 36 +++++++++++++++++++ packages/conan/settings/profiles_aswf/vfx2026 | 2 +- .../settings/profiles_aswftesting/vfx2026 | 2 +- python/aswfdocker/data/versions.yaml | 8 ++--- 21 files changed, 201 insertions(+), 27 deletions(-) create mode 100644 packages/conan/recipes/imath/patches/3.2.0-clang-format.patch create mode 100644 packages/conan/recipes/ocio/patches/2.3.2-0003-python-3-always.patch create mode 100644 packages/conan/recipes/ocio/patches/2.3.2-0004-find-python.patch create mode 100644 packages/conan/recipes/ocio/patches/2.4.2-0003-python-3-always.patch create mode 100644 packages/conan/recipes/ocio/patches/2.4.2-0004-find-python.patch create mode 100644 packages/conan/recipes/rawtoaces/patches/1.1-rc3-cmake_libraw_target.diff diff --git a/CHANGELOG.md b/CHANGELOG.md index ea7d34f8..521ff5af 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,8 +32,9 @@ consumers of these new images. - python 3.11.13 (was 3.11.11) - Qt 6.5.6 (was 6.5.4) - OIIO 2.5.19.0 (was 2.5.18.0) - - OpenFX 1.5s + - OpenFX 1.5s (new) - PySide 6.5.6 (was 6.5.4) + - rawtoaces 1.1-rc3 (new) - 2025.2 - updated versions - Conan 2.18.1 (was 2.14.0) @@ -55,6 +56,7 @@ consumers of these new images. - OSL 1.14.7.0 (was 1.14.5.1) - PySide 6.5.6 (was 6.5.4) - USD 25.05.01 (was 25.05) + - rawtoaces 1.1-rc3 (new) - 2026.0 draft images - pre-release for testing purposes, does not yet include final versions of late releasing packages for VFX Platform 2026 (OOCIO, OpenEXR, OpenVDB, OpenSubDiv) - OpenEXR includes a pre-release of 3.4.x @@ -64,9 +66,11 @@ consumers of these new images. - adds dependant Conan package cimg, spdlog - new [Conan package and build images for rawtoaces](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/273) - adds dependant Conan packages libraw, jasper, jsonformoderncpp, ceres-solver, eigen , aces_container + - pre-release 1.1-rc3 - Alembic now [built with hdf5 dependency](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/254) - OpenVDB now [built as a Conan package](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/231) - OpenImageIO builds with libraw support](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/264) and OpenJPEG/JPEG2000 support +- OpenColorIO Python bindings now being built - system wrapper Conan packages - improved wrapper packages no longer declare include directories and libraries they don't include - query container OS for installed system package version instead of hard coding (pkgconfig / rpm) diff --git a/ci-osl/README.md b/ci-osl/README.md index ee1ac906..a71586c2 100644 --- a/ci-osl/README.md +++ b/ci-osl/README.md @@ -301,7 +301,7 @@ Contains: Contains: * cpython-3.13.3 * fmt-11.2.0 -* imath-3.1.12 +* imath-3.2.0 * oiio-3.0.9.1 * partio-1.19.0 * pugixml-1.15 @@ -318,7 +318,7 @@ Contains: Contains: * cpython-3.13.3 * fmt-11.2.0 -* imath-3.1.12 +* imath-3.2.0 * oiio-3.0.9.1 * partio-1.19.0 * pugixml-1.15 diff --git a/ci-otio/README.md b/ci-otio/README.md index 8a13af25..d71eef57 100644 --- a/ci-otio/README.md +++ b/ci-otio/README.md @@ -209,7 +209,7 @@ Contains: * md4c-0.5.2 * qt-6.8.3 * pyside-6.8.3 -* imath-3.1.12 +* imath-3.2.0 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-rawtoaces/README.md b/ci-rawtoaces/README.md index 57fe193d..5679b490 100644 --- a/ci-rawtoaces/README.md +++ b/ci-rawtoaces/README.md @@ -21,21 +21,21 @@ Warning: this image does *not* contain rawtoaces itself as it is used to *build* ## [aswf/ci-rawtoaces:2024.3](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2024.3) Contains: -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-1.24.3 * vfxplatform-2024 ## [aswf/ci-rawtoaces:2025.2](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2025.2) Contains: -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-rawtoaces:2026.0](https://hub.docker.com/r/aswf/ci-rawtoaces/tags?page=1&name=2026.0) Contains: -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-usd/README.md b/ci-usd/README.md index 04aac2bb..9e7e73f4 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -278,7 +278,7 @@ Contains: * qt-6.8.3 * pyside-6.8.3 * highway-1.2.0 -* imath-3.1.12 +* imath-3.2.0 * lcms-2.17 * libultrahdr-1.4.0 * opensubdiv-3.6.1 diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index b054f179..05aa2ade 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -346,7 +346,7 @@ Contains: * usd-24.08 * osl-1.13.11.0 * otio-0.17.0 -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-1.24.3 * vfxplatform-2024 @@ -373,7 +373,7 @@ Contains: * usd-24.08 * osl-1.13.11.0 * otio-0.17.0 -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-1.24.3 * vfxplatform-2024 @@ -400,7 +400,7 @@ Contains: * usd-25.05.01 * osl-1.14.7.0 * otio-0.17.0 -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-1.26.4 * vfxplatform-2025 @@ -427,7 +427,7 @@ Contains: * usd-25.05.01 * osl-1.14.7.0 * otio-0.17.0 -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-1.26.4 * vfxplatform-2025 @@ -444,7 +444,7 @@ Contains: * opensubdiv-3.6.1 * partio-1.19.0 * alembic-1.8.8 -* imath-3.1.12 +* imath-3.2.0 * openexr-3.4-alpha * oiio-3.0.9.1 * ocio-2.4.2 @@ -454,7 +454,7 @@ Contains: * usd-25.08 * osl-1.14.7.0 * otio-0.17.0 -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-2.3.2 * vfxplatform-2026 @@ -471,7 +471,7 @@ Contains: * opensubdiv-3.6.1 * partio-1.19.0 * alembic-1.8.8 -* imath-3.1.12 +* imath-3.2.0 * openexr-3.4-alpha * oiio-3.0.9.1 * ocio-2.4.2 @@ -481,7 +481,7 @@ Contains: * usd-25.08 * osl-1.14.7.0 * otio-0.17.0 -* rawtoaces-vfx2026.0 +* rawtoaces-1.1-rc3 * numpy-2.3.2 * vfxplatform-2026 diff --git a/packages/conan/recipes/imath/conandata.yml b/packages/conan/recipes/imath/conandata.yml index ad638df5..eda00351 100644 --- a/packages/conan/recipes/imath/conandata.yml +++ b/packages/conan/recipes/imath/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/cceee569179c10fa56d1fd9c3582f3371944ba59/recipes/imath/all/conandata.yml sources: + "3.2.0": + url: "https://github.com/AcademySoftwareFoundation/Imath/archive/v3.2.0.tar.gz" + sha256: "f3c0c4210b5e6fe17d90cd7ebbe9638eea9fb458421d00eddb4d1a9d5ad47b36" "3.1.12": url: "https://github.com/AcademySoftwareFoundation/Imath/archive/v3.1.12.tar.gz" sha256: "8a1bc258f3149b5729c2f4f8ffd337c0e57f09096e4ba9784329f40c4a9035da" @@ -21,6 +24,9 @@ sources: url: "https://github.com/AcademySoftwareFoundation/Imath/archive/v3.1.8.tar.gz" sha256: "a23a4e2160ca8ff68607a4e129e484edd1d0d13f707394d32af7aed659020803" patches: + "3.2.0": + - patch_file: "patches/3.2.0-clang-format.patch" + patch_description: "Don't add heavyweight dependency on clang-format" "3.1.10": - patch_file: "patches/3.1.10-gcc5-backport.patch" patch_description: "Add std:: prefix for isfinite (Backport from main, two commits on the file fix the issue)" diff --git a/packages/conan/recipes/imath/conanfile.py b/packages/conan/recipes/imath/conanfile.py index f8cecf0d..71129fd8 100644 --- a/packages/conan/recipes/imath/conanfile.py +++ b/packages/conan/recipes/imath/conanfile.py @@ -7,8 +7,9 @@ from conan import ConanFile from conan.tools.build import check_min_cppstd from conan.tools.cmake import CMake, CMakeToolchain, cmake_layout -from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get, rmdir +from conan.tools.files import apply_conandata_patches, collect_libs, copy, export_conandata_patches, get, replace_in_file, rmdir from conan.tools.microsoft import is_msvc +from conan.tools.scm import Version import os required_conan_version = ">=1.53.0" @@ -69,14 +70,31 @@ def generate(self): # when msvc is working with a C++ standard level higher # than the default, we need the __cplusplus macro to be correct tc.variables["CMAKE_CXX_FLAGS"] = "/Zc:__cplusplus" - # ASWF: Build Python and Pybind11 bindings + # ASWF: Build Python bindings, pybind11 not quire ready yet tc.variables["PYTHON"] = "ON" - tc.variables["PYBIND11"] = "ON" + tc.variables["PYBIND11"] = "OFF" tc.generate() def build(self): apply_conandata_patches(self) + # ASWF: starting with version 3.2.0, src/python/CMakeLists.txt calls: + # find_package(Boost REQUIRED COMPONENTS python) + # but our buils of boost::python bake in the python version, so we have + # to add the suffix based on the current Python version (can't be done + # by a static patch in conandat.yml) + if Version(self.version) >= "3.2.0": + python_version = Version(self.dependencies["cpython"].ref.version) + boost_component = f"python{python_version.major}{python_version.minor}" # 'python313' + replace_in_file(self, os.path.join(self.source_folder, "src", "python", "CMakeLists.txt"), + "find_package(Boost REQUIRED COMPONENTS python)", + f"find_package(Boost REQUIRED COMPONENTS {boost_component})") + dirs = [ "PyImath", "PyImathNumpy", "PyImathTest" ] + for cmake_file in [os.path.join(self.source_folder, "src", "python", d, "CMakeLists.txt") for d in dirs]: + replace_in_file(self, cmake_file, + "Boost::python", + f"Boost::{boost_component}") + cmake = CMake(self) cmake.configure() cmake.build() diff --git a/packages/conan/recipes/imath/patches/3.2.0-clang-format.patch b/packages/conan/recipes/imath/patches/3.2.0-clang-format.patch new file mode 100644 index 00000000..16827489 --- /dev/null +++ b/packages/conan/recipes/imath/patches/3.2.0-clang-format.patch @@ -0,0 +1,15 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index bfec292..c8c2e7e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -138,7 +138,7 @@ + # Including this module will add a `clang-format` target to the build + # if the clang-format executable can be found. Only do this if we are + # top level. +-if(NOT IMATH_IS_SUBPROJECT) +- include(cmake/clang-format.cmake) +-endif() ++#if(NOT IMATH_IS_SUBPROJECT) ++# include(cmake/clang-format.cmake) ++#endif() + diff --git a/packages/conan/recipes/imath/test_package/conanfile.py b/packages/conan/recipes/imath/test_package/conanfile.py index 456eec38..db184677 100644 --- a/packages/conan/recipes/imath/test_package/conanfile.py +++ b/packages/conan/recipes/imath/test_package/conanfile.py @@ -20,6 +20,8 @@ def layout(self): def requirements(self): self.requires(self.tested_reference_str) + # ASWF: this shouldn't be required but boost_python doesn't correctly encode its dependency on libpython + self.requires(f"cpython/{os.environ['ASWF_CPYTHON_VERSION']}@{self.user}/{self.channel}", transitive_headers=True, transitive_libs=True) def build(self): cmake = CMake(self) diff --git a/packages/conan/recipes/ocio/conandata.yml b/packages/conan/recipes/ocio/conandata.yml index a9d4e442..6456c921 100644 --- a/packages/conan/recipes/ocio/conandata.yml +++ b/packages/conan/recipes/ocio/conandata.yml @@ -34,6 +34,9 @@ patches: - patch_file: "patches/2.4.2-0002-cmake-deps-for-shared-libs.patch" patch_description: "don't skip cmake dependencies for shared builds" patch_type: "conan" + - patch_file: "patches/2.4.2-0004-find-python.patch" + patch_description: "We call FindPython3" + patch_type: "conan" "2.4.1": - patch_file: "patches/2.4.1-0001-fix-cmake-source-dir-and-targets.patch" patch_description: "use cci package, use project_binary_dir/project_source_dir" @@ -46,6 +49,9 @@ patches: - patch_file: "patches/2.3.1-0001-fix-cmake-source-dir-and-targets.patch" patch_description: "use cci package, use PROJECT_BINARY_DIR/PROJECT_SOURCE_DIR" patch_type: "conan" + - patch_file: "patches/2.3.2-0004-find-python.patch" + patch_description: "We call FindPython3" + patch_type: "conan" "2.2.1": - patch_file: "patches/2.2.1-0001-fix-cmake-source-dir-and-targets.patch" patch_description: "use cci package, use PROJECT_BINARY_DIR/PROJECT_SOURCE_DIR" diff --git a/packages/conan/recipes/ocio/conanfile.py b/packages/conan/recipes/ocio/conanfile.py index 7b97f671..326d8702 100644 --- a/packages/conan/recipes/ocio/conanfile.py +++ b/packages/conan/recipes/ocio/conanfile.py @@ -76,7 +76,9 @@ def requirements(self): self.requires("lcms/2.16") # TODO: add GLUT (needed for ociodisplay tool) - # ASWF: needs glew + # ASWF: needs cpython, pybind11 and glew + self.requires("cpython/3.13.3") + self.requires("pybind11/2.13.6") self.requires("glew/2.1.0") def validate(self): @@ -115,7 +117,7 @@ def generate(self): tc = CMakeToolchain(self) tc.variables["CMAKE_VERBOSE_MAKEFILE"] = True if Version(self.version) >= "2.1.0": - tc.variables["OCIO_BUILD_PYTHON"] = False + tc.variables["OCIO_BUILD_PYTHON"] = True # ASWF: build python bindings else: tc.variables["OCIO_BUILD_SHARED"] = self.options.shared tc.variables["OCIO_BUILD_STATIC"] = not self.options.shared diff --git a/packages/conan/recipes/ocio/patches/2.3.2-0003-python-3-always.patch b/packages/conan/recipes/ocio/patches/2.3.2-0003-python-3-always.patch new file mode 100644 index 00000000..907c28cf --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.3.2-0003-python-3-always.patch @@ -0,0 +1,13 @@ +diff --git src/bindings/python/PyOpenColorIO.cpp src/bindings/python/PyOpenColorIO.cpp +index 0eaec4be..e711295c 100755 +--- src/bindings/python/PyOpenColorIO.cpp ++++ src/bindings/python/PyOpenColorIO.cpp +@@ -22,7 +22,7 @@ + py::register_exception( + m, "ExceptionMissingFile"); + +-#if PY_VERSION_MAJOR >= 3 ++#if 1 + // __doc__ is not writable after class creation in Python 2 + clsException.doc() = DOC(Exception); + clsExceptionMissingFile.doc() = DOC(ExceptionMissingFile); diff --git a/packages/conan/recipes/ocio/patches/2.3.2-0004-find-python.patch b/packages/conan/recipes/ocio/patches/2.3.2-0004-find-python.patch new file mode 100644 index 00000000..9dcc79dd --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.3.2-0004-find-python.patch @@ -0,0 +1,26 @@ +diff --git src/bindings/python/CMakeLists.txt src/bindings/python/CMakeLists.txt +index 0eaec4be..e711295c 100755 +--- src/bindings/python/CMakeLists.txt ++++ src/bindings/python/CMakeLists.txt +@@ -214,9 +214,9 @@ + target_compile_definitions(PyOpenColorIO + PRIVATE + PYOCIO_NAME=PyOpenColorIO +- PY_VERSION_MAJOR=${Python_VERSION_MAJOR} +- PY_VERSION_MINOR=${Python_VERSION_MINOR} +- PY_VERSION_PATCH=${Python_VERSION_PATCH} ++ PY_VERSION_MAJOR=${Python3_VERSION_MAJOR} ++ PY_VERSION_MINOR=${Python3_VERSION_MINOR} ++ PY_VERSION_PATCH=${Python3_VERSION_PATCH} + ) + + ############################################################################### +@@ -241,7 +241,7 @@ + if(WIN32) + set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/site-packages") + else() +- set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages") ++ set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages") + endif() + + # Create an internal global variable to access it in another scope but not publicly visible. diff --git a/packages/conan/recipes/ocio/patches/2.4.2-0003-python-3-always.patch b/packages/conan/recipes/ocio/patches/2.4.2-0003-python-3-always.patch new file mode 100644 index 00000000..907c28cf --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.4.2-0003-python-3-always.patch @@ -0,0 +1,13 @@ +diff --git src/bindings/python/PyOpenColorIO.cpp src/bindings/python/PyOpenColorIO.cpp +index 0eaec4be..e711295c 100755 +--- src/bindings/python/PyOpenColorIO.cpp ++++ src/bindings/python/PyOpenColorIO.cpp +@@ -22,7 +22,7 @@ + py::register_exception( + m, "ExceptionMissingFile"); + +-#if PY_VERSION_MAJOR >= 3 ++#if 1 + // __doc__ is not writable after class creation in Python 2 + clsException.doc() = DOC(Exception); + clsExceptionMissingFile.doc() = DOC(ExceptionMissingFile); diff --git a/packages/conan/recipes/ocio/patches/2.4.2-0004-find-python.patch b/packages/conan/recipes/ocio/patches/2.4.2-0004-find-python.patch new file mode 100644 index 00000000..9dcc79dd --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.4.2-0004-find-python.patch @@ -0,0 +1,26 @@ +diff --git src/bindings/python/CMakeLists.txt src/bindings/python/CMakeLists.txt +index 0eaec4be..e711295c 100755 +--- src/bindings/python/CMakeLists.txt ++++ src/bindings/python/CMakeLists.txt +@@ -214,9 +214,9 @@ + target_compile_definitions(PyOpenColorIO + PRIVATE + PYOCIO_NAME=PyOpenColorIO +- PY_VERSION_MAJOR=${Python_VERSION_MAJOR} +- PY_VERSION_MINOR=${Python_VERSION_MINOR} +- PY_VERSION_PATCH=${Python_VERSION_PATCH} ++ PY_VERSION_MAJOR=${Python3_VERSION_MAJOR} ++ PY_VERSION_MINOR=${Python3_VERSION_MINOR} ++ PY_VERSION_PATCH=${Python3_VERSION_PATCH} + ) + + ############################################################################### +@@ -241,7 +241,7 @@ + if(WIN32) + set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/site-packages") + else() +- set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python_VERSION_MAJOR}.${Python_VERSION_MINOR}/site-packages") ++ set(_Python_VARIANT_PATH "${CMAKE_INSTALL_LIBDIR}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages") + endif() + + # Create an internal global variable to access it in another scope but not publicly visible. diff --git a/packages/conan/recipes/rawtoaces/conandata.yml b/packages/conan/recipes/rawtoaces/conandata.yml index db8134ad..e1d5a07a 100644 --- a/packages/conan/recipes/rawtoaces/conandata.yml +++ b/packages/conan/recipes/rawtoaces/conandata.yml @@ -4,10 +4,17 @@ # sources: + "1.1-rc3": + url: "https://github.com/AcademySoftwareFoundation/rawtoaces/archive/refs/tags/v1.1-RC3.tar.gz" + sha256: "773451aa3cd05bcf91af7ff4150678e2230f1f5c495fd93030cde8c77e6c0c07" "vfx2026.0": url: "https://github.com/AcademySoftwareFoundation/rawtoaces/archive/refs/tags/vfx2026.0.tar.gz" sha256: "292fdf087dd5543f2de08fb85378f62489436a3146c657b80a0f52ca227680c7" patches: + "1.1-rc3": + - patch_file: "patches/1.1-rc3-cmake_libraw_target.diff" + patch_description: "libraw Cmake target from Conan Center Index recipe" + patch_type: "conan" "vfx2026.0": - patch_file: "patches/cmake_libraw_target.diff" patch_description: "libraw Cmake target from Conan Center Index recipe" diff --git a/packages/conan/recipes/rawtoaces/patches/1.1-rc3-cmake_libraw_target.diff b/packages/conan/recipes/rawtoaces/patches/1.1-rc3-cmake_libraw_target.diff new file mode 100644 index 00000000..f601b2e5 --- /dev/null +++ b/packages/conan/recipes/rawtoaces/patches/1.1-rc3-cmake_libraw_target.diff @@ -0,0 +1,36 @@ +diff -ur a/src/rawtoaces_idt/CMakeLists.txt b/src/rawtoaces_idt/CMakeLists.txt +--- src/rawtoaces_idt/CMakeLists.txt ++++ src/rawtoaces_idt/CMakeLists.txt +@@ -33,7 +33,7 @@ + endif () + + if ( LIBRAW_CONFIG_FOUND ) +- target_link_libraries ( ${RAWTOACESIDTLIB} PUBLIC libraw::raw ) ++ target_link_libraries ( ${RAWTOACESIDTLIB} PUBLIC libraw::libraw ) + else () + target_include_directories(${RAWTOACESIDTLIB} PUBLIC ${libraw_INCLUDE_DIR} ) + target_link_directories(${RAWTOACESIDTLIB} PUBLIC ${libraw_LIBRARY_DIRS} ) +diff -ur a/src/rawtoaces_util/CMakeLists.txt b/src/rawtoaces_util/CMakeLists.txt +--- a/src/rawtoaces_util/CMakeLists.txt ++++ b/src/rawtoaces_util/CMakeLists.txt +@@ -32,7 +32,7 @@ + ) + + if ( LIBRAW_CONFIG_FOUND ) +- target_link_libraries ( ${RAWTOACESLIB} PUBLIC libraw::raw ) ++ target_link_libraries ( ${RAWTOACESLIB} PUBLIC libraw::libraw ) + else () + target_link_directories(${RAWTOACESLIB} PUBLIC ${libraw_LIBRARY_DIRS} ) + target_link_libraries(${RAWTOACESLIB} PUBLIC ${libraw_LIBRARIES} ${libraw_LDFLAGS_OTHER} ) +diff -ur a/src/rawtoaces/CMakeLists.txt b/src/rawtoaces/CMakeLists.txt +--- src/rawtoaces/CMakeLists.txt ++++ src/rawtoaces/CMakeLists.txt +@@ -12,7 +12,7 @@ + ) + + if ( LIBRAW_CONFIG_FOUND ) +- target_link_libraries ( rawtoaces PUBLIC libraw::raw ) ++ target_link_libraries ( rawtoaces PUBLIC libraw::libraw ) + else () + target_link_directories(rawtoaces PUBLIC ${libraw_LIBRARY_DIRS} ) + target_link_libraries(rawtoaces PUBLIC ${libraw_LIBRARIES} ${libraw_LDFLAGS_OTHER} ) diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index 62e18441..7d45d95a 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -33,7 +33,7 @@ harfbuzz/*: harfbuzz/11.0.1@aswf/vfx2026 hdf5/*: hdf5/1.14.6@aswf/vfx2026 highway/*: highway/1.2.0@aswf/vfx2026 icu/*: icu/system@aswf/vfx2026 -imath/*: imath/3.1.12@aswf/vfx2026 +imath/*: imath/3.2.0@aswf/vfx2026 jasper/*: jasper/4.2.5@aswf/vfx2026 lcms/*: lcms/2.17@aswf/vfx2026 libalsa/*: libalsa/system@aswf/vfx2026 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 099e653c..9c8864bd 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -33,7 +33,7 @@ harfbuzz/*: harfbuzz/11.0.1@aswftesting/vfx2026 hdf5/*: hdf5/1.14.6@aswftesting/vfx2026 highway/*: highway/1.2.0@aswftesting/vfx2026 icu/*: icu/system@aswftesting/vfx2026 -imath/*: imath/3.1.12@aswftesting/vfx2026 +imath/*: imath/3.2.0@aswftesting/vfx2026 jasper/*: jasper/4.2.5@aswftesting/vfx2026 lcms/*: lcms/2.17@aswftesting/vfx2026 libalsa/*: libalsa/system@aswftesting/vfx2026 diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 00e91dbf..4fc611e2 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -630,7 +630,7 @@ versions: ASWF_OPENVDB_VERSION: "11.0.0" ASWF_OSL_VERSION: "1.13.11.0" ASWF_OTIO_VERSION: "0.17.0" - ASWF_RAWTOACES_VERSION: "vfx2026.0" + ASWF_RAWTOACES_VERSION: "1.1-rc3" "2024-clang16": parent_versions: ["4", "4-clang16", "2024"] major_version: "2024" @@ -765,7 +765,7 @@ versions: ASWF_OPENVDB_VERSION: "12.0.1" ASWF_OSL_VERSION: "1.14.7.0" ASWF_OTIO_VERSION: "0.17.0" - ASWF_RAWTOACES_VERSION: "vfx2026.0" + ASWF_RAWTOACES_VERSION: "1.1-rc3" "2025-clang18": parent_versions: ["5", "5-clang18", "2025"] major_version: "2025" @@ -890,7 +890,7 @@ versions: ASWF_VFXPLATFORM_VERSION: "2026" ASWF_CXX_STANDARD: "20" # ASWF packages - ASWF_IMATH_VERSION: "3.1.12" + ASWF_IMATH_VERSION: "3.2.0" ASWF_MATERIALX_VERSION: "1.39.3" ASWF_OCIO_CONFIGS_VERSION: "1.0_r2" ASWF_OCIO_VERSION: "2.4.2" @@ -901,7 +901,7 @@ versions: ASWF_OPENVDB_VERSION: "12.0.1" ASWF_OSL_VERSION: "1.14.7.0" ASWF_OTIO_VERSION: "0.17.0" - ASWF_RAWTOACES_VERSION: "vfx2026.0" + ASWF_RAWTOACES_VERSION: "1.1-rc3" "2026-clang19": parent_versions: ["6", "6-clang19", "2026"] major_version: "2026"