diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml index d1a01d51..ea4c311e 100644 --- a/.github/workflows/docker-builds.yml +++ b/.github/workflows/docker-builds.yml @@ -24,12 +24,12 @@ jobs: fail-fast: false matrix: include: - - group: vfx-2025 - name: vfx-2025 - common_version: 5-clang18 - common_version_noclang: 5 - version: 2025-clang18 - version_noclang: 2025 + - group: vfx-2026 + name: vfx-2026 + common_version: 6-clang20 + common_version_noclang: 6 + version: 2026-clang20 + version_noclang: 2026 test: "" steps: @@ -53,7 +53,7 @@ jobs: - name: Free up disk space run: | df -h - sudo apt-get remove -y '^llvm-.*' 'php.*' '^cpp.*' '^g\+\+.*' '^clang.*' '^gfortran.*' \ + sudo apt-get remove -y '^llvm-.*' '^php.*' '^php8.*' '^cpp.*' '^g\+\+.*' '^clang.*' '^gfortran.*' \ '^dotnet-.*' '^libmono-.*' '^mono-.*' monodoc-http '^r-.*' '^ruby.*' \ ant ant-optional aria2 azure-cli firefox google-chrome-stable microsoft-edge-stable powershell \ imagemagick '^imagemagick-.*' '^libmagickcore-.*' '^libmagickwand-.*' kubectl mercurial mercurial-common subversion @@ -74,44 +74,49 @@ jobs: df -h dpkg -l + - name: Build Conan Builder Image + run: | + set -ex + pipenv run aswfdocker \ + --verbose \ + build \ + --ci-image-type IMAGE \ + --group baseos-gl-conan \ + --version ${{ matrix.common_version_noclang }} \ + --push NO + - name: Build Ninja and CMake (Conan) run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ --group common \ --version ${{ matrix.common_version_noclang }} \ - --version ${{ matrix.common_version }} \ --use-conan \ --build-missing \ --target ninja \ - --target cmake + --target cmake \ + --push NO - name: Build Clang (Conan) run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ --group common \ - --version ${{ matrix.common_version_noclang }} \ --version ${{ matrix.common_version }} \ --use-conan \ --build-missing \ - --target clang + --target clang \ + --push NO - name: Build ci-common Docker Image for downstream images run: | pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type IMAGE \ @@ -123,120 +128,110 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ --group base1-wrappers \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - name: Build base1 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 base1-1 \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - name: Build base1 level 2 Conan packages run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ --group base1-2 \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - name: Build base1 level 3 Conan packages run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ --group base1-3 \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - name: Build base2 system wrapper 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-wrappers \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - 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 \ - --build-missing + --build-missing \ + --push NO - name: Build base2 level 2 Conan packages (Qt) 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-2 \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - name: Build base3 Conan packages (PySide) for base image run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ --group base3 \ --version ${{ matrix.version_noclang }} \ --use-conan \ - --build-missing + --build-missing \ + --push NO - name: Build base and baseqt images run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type IMAGE \ @@ -248,8 +243,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -263,8 +256,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -278,8 +269,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -293,8 +282,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -308,8 +295,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -323,8 +308,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -338,8 +321,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -353,8 +334,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type PACKAGE \ @@ -367,8 +346,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type IMAGE \ @@ -381,8 +358,6 @@ jobs: run: | set -ex pipenv run aswfdocker \ - --repo-uri $GITHUB_REPOSITORY \ - --source-branch $GITHUB_REF \ --verbose \ build \ --ci-image-type IMAGE \ diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 679dd179..ff98b4b6 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -23,7 +23,7 @@ jobs: build: true push_description: true - group: conan - args: --use-conan --conan-login + args: --use-conan build: ${{ contains(github.ref, '/ci-package') }} push_description: false diff --git a/CHANGELOG.md b/CHANGELOG.md index 31fe6556..151ebd00 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to this project will be documented in this file. -# 2025-09-03 +# 2025-10-24 2024.4 / 2025.3 / 2026.1 releases to address issues in the previous set of releases encountered by consumer ASWF projects. This highlights the need for more thorough testing of non-Conan project builds in the @@ -10,8 +10,8 @@ resulting ci-XXXX images. - All releases - Update rawtoaces 1.1-rc3 to 1.1.0 (no code changes) - - Re-enable building LLVM's compiler-rt, OSL uses it for address space sanitization for instance - - Force Eigen3 CMake files to be generated and installed to allow rawtoaces to find it + - Re-enable building LLVM's compiler-rt, OSL uses it for address space sanitization for instance ([#295](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/295)) + - Force Eigen3 CMake files to be generated and installed to allow rawtoaces to find it ([#273](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/273)) ([#292](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/292)) - Fix libiconv download URLs (ftpmirror.gnu.org is prefered to ftp.gnu.org) - OCIO Conan package correctly declares its link time dependencies, consumer packages no longer need to know about its dependencies @@ -19,21 +19,25 @@ resulting ci-XXXX images. - Remove LibRaw-devel from base image, it would confuse CMake for some ASWF project versions which would end up mixing up the newer LibRaw in /usr/local and the older system installed one. - Fix some discrepancies in the Conan 2 environment files (we really need a single source of truth for all version information). - - Build command line utilities and Ax when building OpenVDB package, and install missing dependencies for these additional components (glfw3). Ax cannot be built with OpenVDB older than 12.1.0 since this is where support for clang/llvm 16 or newer shows up. - - Dockerfile to build ci-baseos-gl-conan image should how pull from Docker Hub instead of always rebuilding locally + - Build command line utilities, tests and Ax when building OpenVDB package, and install missing dependencies for these additional components (glfw3, gtest). Ax cannot be built with OpenVDB older than 12.1.0 since this is where support for clang/llvm 16 or newer shows up ([#293](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/293)) + - Dockerfile to build ci-baseos-gl-conan image should how pull from Docker Hub instead of always rebuilding locally ([#257](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/257)) - release.yml GHA workflow should now always rebuild even if an existing binary package exists in the Conan repository - 2024.4 - - revert to MaterialX 1.39.1 which is complatible with USD 24.08 - - install MaterialX CMake files in expected location + - Revert to MaterialX 1.39.1 which is compatible with USD 24.08 + - Install MaterialX CMake files in expected location - Fix up OCIO CMake dependencies - Allow OIIO to find OCIO, libraw and openj2k dependencies - Backport OSL fix for serialized CUDA build - 2025.3 - - install MaterialX CMake files in expected location - - Update OpenVDB from 12.0.1 to 12.1.0 to allow Ax to build with llvm 16 or newer + - Install MaterialX CMake files in expected location + - Update OpenImageIO from 3.0.9.1 to 3.1.6.2 + - Update OpenVDB from 12.0.1 to 12.1.1 to allow Ax to build with llvm 16 or newer ([#285](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/285)) - 2026.1 - - Update IMath from 3.2.0 to 3.2.1 - - Update OpenVDB from 12.0.1 to 12.1.0 to allow Ax to build with llvm 16 or newer + - Update OpenImageIO from 3.0.9.1 to 3.1.6.2 + - Update IMath from 3.2.0 to 3.2.2 + - Update OpenEXR from 3.4-alpha to 3.4.2 (VFX Platform 2026 version) + - Update OpenColorIO from 2.4.2 to 2.5.0 (VFX Platform 2026 version) + - Update OpenVDB from 12.0.1 to 12.1.1 to allow Ax to build with llvm 16 or newer (does not yet include OpenVDB 13 for VFX Platform 2026) ([#285]https://github.com/AcademySoftwareFoundation/aswf-docker/issues/285) # 2025-08-14 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 779d884c..8f9ac575 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -608,25 +608,28 @@ It is usually a good idea to add this `xyz` package to the `vfxall` library so t Check [#66](https://github.com/AcademySoftwareFoundation/aswf-docker/pull/66) for an example. -### Example of a large re-release of all images +### Example of a large re-release of all supported images ```bash +# Image for building Conan packages +aswfdocker release -t IMAGE -g baseos-gl-conan -v 4 -v 5 -v 6 --target baseos-gl-conan --docker-org aswf -m "RELEASE_NOTES!" + # Common packages -aswfdocker release -t PACKAGE -g common -v 1 -v 2 -v 3 -v 4 -v 5 --target ninja -target cmake --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g common -v 1-clang6 -v 1-clang7 -v 1-clang8 -v 1-clang9 -v 1-clang10 -v 2-clang10 -v 2-clang11 -v 3-clang14 -v 3-clang15 -v 4-clang16 -v 4-clang17 -v 5-clang18 -v 5-clang19 --target clang --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g common -v 4 -v 5 -v 6 --target ninja -target cmake --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g common -v 4-clang16 -v 4-clang17 -v 5-clang18 -v 5-clang19 -v 6-clang19 -v 6-clang20 --target clang --docker-org aswf -m "RELEASE_NOTES!" # Wait for clang builds to finish (from 2 to 3 hours!) # ci-common needs to be built before base packages can be built -aswfdocker release -t IMAGE -g common -v 1-clang6 -v 1-clang7 -v 1-clang8 -v 1-clang9 -v 1-clang10 -v 2-clang10 -v 2-clang11 -v 2-clang12 -v 2-clang13-v 2-clang14 -v 3-clang14 -v 3-clang15 -v 4-clang16 -v 4-clang17 -v 5-clang18 -v 5-clang19 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t IMAGE -g common -v 4-clang16 -v 4-clang17 -v 5-clang18 -v 5-clang19 -v 6-clang19 -v 6-clang20 --docker-org aswf -m "RELEASE_NOTES!" # Base packages -aswfdocker release -t PACKAGE -g base1-wrappers -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g base1-1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g base1-2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g base1-3 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base1-wrappers -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base1-1 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base1-2 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base1-3 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g base2-wrappers -g base2-1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g base2-2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base2-wrappers -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base2-2 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" # Wait for Qt builds to finish (2-6 hours!) # Usually some Qt build will fail as too big and too slow for free GitHub actions... So here's how to build qt locally: @@ -638,21 +641,21 @@ docker push aswf/ci-package-qt:preview docker push aswf/ci-package-qt:2025.0 # Once all Qt are out, release PySide packages -aswfdocker release -t PACKAGE -g base3 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g base3 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" # Wait for all Qt and Pyside builds to finish, then build downstream packages: # VFX packages -aswfdocker release -t PACKAGE -g vfx1-wrappers -g vfx1-1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx1-2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx1-3 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx1-4 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx2-1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx1-wrappers -g vfx1-1 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx1-2 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx1-3 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx1-4 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx1-5 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx2-1 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx2 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" # Finally build the CI images -aswfdocker release -t IMAGE -g base -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t IMAGE -g vfx1 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t IMAGE -g vfx2 -v 2018 -v 2019 -v 2020 -v 2021 -v 2022 -v 2023 -v 2024 -v 2025 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t IMAGE -g vfx3 -v 2018-clang7 -v 2019-clang6 -v 2019-clang7 -v 2019-clang8 -v 2019-clang9 -v 2020-clang7 -v 2021-clang10 -v 2021-clang11 -v 2022-clang10 -v 2022-clang11 -v 2022-clang12 -v 2022-clang13 -v 2022-clang14 -v 2023-clang14 -v 2023-clang15 -v 2024-clang16 -v 2024-clang17 -v 2025-clang18 -v 2025-clang19 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t IMAGE -g base -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t IMAGE -g vfx1 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t IMAGE -g vfx2 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t IMAGE -g vfx3 -v 2024-clang16 -v 2024-clang17 -v 2025-clang18 -v 2025-clang19 -v 2026-clang19 -v 2026-clang20 --docker-org aswf -m "RELEASE_NOTES!" ``` diff --git a/ci-baseos-gl-conan/Dockerfile b/ci-baseos-gl-conan/Dockerfile new file mode 100644 index 00000000..98156256 --- /dev/null +++ b/ci-baseos-gl-conan/Dockerfile @@ -0,0 +1,192 @@ +# 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 + +# !!! 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_CUDA_VERSION +ARG ASWF_OPTIX_VERSION +ARG ASWF_GLVND_VERSION +ARG ASWF_CCACHE_VERSION +ARG ASWF_DTS_VERSION +ARG ASWF_SONAR_VERSION +ARG ASWF_CMAKE_VERSION +ARG ASWF_CONAN_VERSION +ARG ASWF_YQ_VERSION +ARG ASWF_CONAN_PYTHON_VERSION + + + +ARG ASWF_BASEOS_IMAGE +ARG ASWF_BASEOS_DISTRO + + +# Comment out this block to use Conan packages +FROM ${ASWF_BASEOS_IMAGE}:${ASWF_CUDA_VERSION}-runtime-${ASWF_BASEOS_DISTRO} AS ci-baseos-gl-conan + + +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_DTS_PREFIX + + +ARG ASWF_CUDA_VERSION +ARG ASWF_OPTIX_VERSION +ARG ASWF_GLVND_VERSION +ARG ASWF_CCACHE_VERSION +ARG ASWF_DTS_VERSION +ARG ASWF_SONAR_VERSION +ARG ASWF_CMAKE_VERSION +ARG ASWF_CONAN_VERSION +ARG ASWF_YQ_VERSION +ARG ASWF_CONAN_PYTHON_VERSION + + +LABEL org.opencontainers.image.name="$ASWF_ORG/ci-baseos-gl-conan" +LABEL org.opencontainers.image.title="BaseOS Conan Builder Docker Image" +LABEL org.opencontainers.image.description="Contains: GCC and all base OS libraries" +LABEL org.opencontainers.image.url="http://aswf.io/" +LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-baseos-gl-conan/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 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" +LABEL io.aswf.docker.versions.sonar="$ASWF_SONAR_VERSION" +LABEL io.aswf.docker.versions.cmake="$ASWF_CMAKE_VERSION" +LABEL io.aswf.docker.versions.conan="$ASWF_CONAN_VERSION" +LABEL io.aswf.docker.versions.yq="$ASWF_YQ_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_DTS_PREFIX=$ASWF_DTS_PREFIX + + +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 +ENV ASWF_SONAR_VERSION=$ASWF_SONAR_VERSION +ENV ASWF_CMAKE_VERSION=$ASWF_CMAKE_VERSION +ENV ASWF_CONAN_VERSION=$ASWF_CONAN_VERSION +ENV ASWF_YQ_VERSION=$ASWF_YQ_VERSION +ENV ASWF_CONAN_PYTHON_VERSION=$ASWF_CONAN_PYTHON_VERSION + + +COPY ci-baseos-gl-conan/README.md ci-baseos-gl-conan/image.yaml /usr/local/aswf/ + +COPY ../scripts/common/install_cudadevel.sh /tmp/ + +RUN --mount=type=cache,sharing=private,target=/var/cache/yum \ + /tmp/install_cudadevel.sh + +COPY ../scripts/common/install_yumpackages.sh /tmp/ + +RUN --mount=type=cache,sharing=private,target=/var/cache/yum \ + /tmp/install_yumpackages.sh + +COPY scripts/common/install_opengl.sh /tmp/ + +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 + +COPY scripts/common/install_optix.sh /tmp/ + +RUN /tmp/install_optix.sh + +COPY scripts/common/install_pippackages.sh /tmp/ + +RUN --mount=type=cache,sharing=private,target=/root/.cache/pip \ + /tmp/install_pippackages.sh + +COPY ../scripts/common/install_dev_ccache.sh \ + ../scripts/common/before_build.sh \ + ../scripts/common/copy_new_files.sh \ + ../scripts/common/install_dev_cmake.sh \ + /tmp/ + +ENV DOWNLOADS_DIR=/tmp/downloads \ + CCACHE_DIR=/tmp/ccache \ + ASWF_INSTALL_PREFIX=/usr/local \ + 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 \ + /tmp/install_dev_cmake.sh && \ + /tmp/install_dev_ccache.sh + +COPY scripts/common/install_yq.sh /tmp/ + +RUN /tmp/install_yq.sh + +# Merge the previously separate ci-baseos-gl-os and ci-baseos-gl-conan stages: +# we are unlikely to want to iterate on Conan versions separately from the base image, +# and we want to make sure that ci-conan-package-builder always pulls a pre-built +# ci-baseos-gl-conan from Docker Hub rather than rebuilding it locally. + +ARG ASWF_CONAN_VERSION +ARG ASWF_CONAN_PYTHON_VERSION + +ENV ASWF_CONAN_ROOT=/opt/conan + +COPY ../scripts/common/install_conan.sh /tmp/ + +RUN --mount=type=cache,sharing=private,target=/tmp/downloads \ + /tmp/install_conan.sh + + +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] +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 ci_common${CI_COMMON_VERSION} baseos-gl-conan + + diff --git a/ci-baseos-gl-conan/README.md b/ci-baseos-gl-conan/README.md new file mode 100644 index 00000000..910a4378 --- /dev/null +++ b/ci-baseos-gl-conan/README.md @@ -0,0 +1,58 @@ + + +# 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). + +## BaseOS Conan Builder Docker Image + +Contains: GCC and all base OS libraries + +[Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-baseos-gl-conan/Dockerfile) + +## [aswf/ci-baseos-gl-conan:4.4](https://hub.docker.com/r/aswf/ci-baseos-gl-conan/tags?page=1&name=4.4) + +Contains: +* cuda-12.6.3 +* optix-8.0.0 +* glvnd-1.7.0 +* ccache-4.9.1 +* dts-11 +* sonar-7.1.0.4889 +* cmake-3.31.7 +* conan-2.18.1 +* yq-4.45.2 + +## [aswf/ci-baseos-gl-conan:5.3](https://hub.docker.com/r/aswf/ci-baseos-gl-conan/tags?page=1&name=5.3) + +Contains: +* cuda-12.6.3 +* optix-8.0.0 +* glvnd-1.7.0 +* ccache-4.9.1 +* dts-11 +* sonar-7.1.0.4889 +* cmake-3.31.7 +* conan-2.18.1 +* yq-4.45.2 + +## [aswf/ci-baseos-gl-conan:6.1](https://hub.docker.com/r/aswf/ci-baseos-gl-conan/tags?page=1&name=6.1) + +Contains: +* cuda-12.9.1 +* optix-8.0.0 +* glvnd-1.7.0 +* ccache-4.11.3 +* dts-14 +* sonar-7.1.0.4889 +* cmake-4.0.2 +* conan-2.18.1 +* yq-4.45.4 + diff --git a/ci-baseos-gl-conan/image.yaml b/ci-baseos-gl-conan/image.yaml new file mode 100644 index 00000000..7720da2e --- /dev/null +++ b/ci-baseos-gl-conan/image.yaml @@ -0,0 +1,81 @@ +name: "baseos-gl-conan" +title: "BaseOS Conan Builder Docker Image" +description: | + Contains: GCC and all base OS libraries +packages: [] +implicit_packages: + - cuda + - optix + - glvnd + - ccache + - dts + - sonar + - cmake + - conan + - yq +docker_from: ${ASWF_BASEOS_IMAGE}:${ASWF_CUDA_VERSION}-runtime-${ASWF_BASEOS_DISTRO} +docker_package_version: $CI_COMMON_VERSION +docker_commands: | + COPY ../scripts/common/install_cudadevel.sh /tmp/ + + RUN --mount=type=cache,sharing=private,target=/var/cache/yum \ + /tmp/install_cudadevel.sh + + COPY ../scripts/common/install_yumpackages.sh /tmp/ + + RUN --mount=type=cache,sharing=private,target=/var/cache/yum \ + /tmp/install_yumpackages.sh + + COPY scripts/common/install_opengl.sh /tmp/ + + 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 + + COPY scripts/common/install_optix.sh /tmp/ + + RUN /tmp/install_optix.sh + + COPY scripts/common/install_pippackages.sh /tmp/ + + RUN --mount=type=cache,sharing=private,target=/root/.cache/pip \ + /tmp/install_pippackages.sh + + COPY ../scripts/common/install_dev_ccache.sh \ + ../scripts/common/before_build.sh \ + ../scripts/common/copy_new_files.sh \ + ../scripts/common/install_dev_cmake.sh \ + /tmp/ + + ENV DOWNLOADS_DIR=/tmp/downloads \ + CCACHE_DIR=/tmp/ccache \ + ASWF_INSTALL_PREFIX=/usr/local \ + 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 \ + /tmp/install_dev_cmake.sh && \ + /tmp/install_dev_ccache.sh + + COPY scripts/common/install_yq.sh /tmp/ + + RUN /tmp/install_yq.sh + + # Merge the previously separate ci-baseos-gl-os and ci-baseos-gl-conan stages: + # we are unlikely to want to iterate on Conan versions separately from the base image, + # and we want to make sure that ci-conan-package-builder always pulls a pre-built + # ci-baseos-gl-conan from Docker Hub rather than rebuilding it locally. + + ARG ASWF_CONAN_VERSION + ARG ASWF_CONAN_PYTHON_VERSION + + ENV ASWF_CONAN_ROOT=/opt/conan + + COPY ../scripts/common/install_conan.sh /tmp/ + + RUN --mount=type=cache,sharing=private,target=/tmp/downloads \ + /tmp/install_conan.sh diff --git a/ci-common/Dockerfile b/ci-common/Dockerfile index b49d5830..5615fb5c 100644 --- a/ci-common/Dockerfile +++ b/ci-common/Dockerfile @@ -64,7 +64,7 @@ ARG ASWF_CONAN_PYTHON_VERSION LABEL org.opencontainers.image.name="$ASWF_ORG/ci-common" LABEL org.opencontainers.image.title="Common CI Docker Image" -LABEL org.opencontainers.image.description="Contains: GCC, Clang, CMake, Jinja, ccache and all base OS libraries" +LABEL org.opencontainers.image.description="Contains: GCC, Clang, CMake, Ninja, ccache and all base OS libraries" LABEL org.opencontainers.image.url="http://aswf.io/" LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-common/Dockerfile" LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" diff --git a/ci-common/README.md b/ci-common/README.md index 50559246..84671ab9 100644 --- a/ci-common/README.md +++ b/ci-common/README.md @@ -13,7 +13,7 @@ for further information, and participate in the discussion on the ## Common CI Docker Image -Contains: GCC, Clang, CMake, Jinja, ccache and all base OS libraries +Contains: GCC, Clang, CMake, Ninja, ccache and all base OS libraries [Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-common/Dockerfile) diff --git a/ci-common/image.yaml b/ci-common/image.yaml index f9f1964f..3c360a52 100644 --- a/ci-common/image.yaml +++ b/ci-common/image.yaml @@ -1,7 +1,7 @@ name: "common" title: "Common CI Docker Image" description: | - Contains: GCC, Clang, CMake, Jinja, ccache and all base OS libraries + Contains: GCC, Clang, CMake, Ninja, ccache and all base OS libraries packages: - clang - cmake diff --git a/ci-ocio/README.md b/ci-ocio/README.md index 12a867f5..251c1d35 100644 --- a/ci-ocio/README.md +++ b/ci-ocio/README.md @@ -70,7 +70,7 @@ Contains: ## [aswf/ci-ocio:2026.1](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2026.1) Contains: -* ocio-2.4.2 +* ocio-2.5.0 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-oiio/README.md b/ci-oiio/README.md index 9044b640..048d97e3 100644 --- a/ci-oiio/README.md +++ b/ci-oiio/README.md @@ -28,14 +28,14 @@ Contains: ## [aswf/ci-oiio:2025.3](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2025.3) Contains: -* oiio-3.0.9.1 +* oiio-3.1.6.2 * numpy-1.26.4 * vfxplatform-2025 ## [aswf/ci-oiio:2026.1](https://hub.docker.com/r/aswf/ci-oiio/tags?page=1&name=2026.1) Contains: -* oiio-3.0.9.1 +* oiio-3.1.6.2 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-openexr/README.md b/ci-openexr/README.md index 2c055e46..eb93a340 100644 --- a/ci-openexr/README.md +++ b/ci-openexr/README.md @@ -70,7 +70,7 @@ Contains: ## [aswf/ci-openexr:2026.1](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2026.1) Contains: -* openexr-3.4-alpha +* openexr-3.4.2 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-openvdb/README.md b/ci-openvdb/README.md index 422adde2..acd16b29 100644 --- a/ci-openvdb/README.md +++ b/ci-openvdb/README.md @@ -141,7 +141,7 @@ Contains: ## [aswf/ci-openvdb:2025-clang18.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang18.3) Contains: -* openvdb-12.1.0 +* openvdb-12.1.1 * gtest-1.15.2 * numpy-1.26.4 * vfxplatform-2025 @@ -149,7 +149,7 @@ Contains: ## [aswf/ci-openvdb:2025-clang19.3](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2025-clang19.3) Contains: -* openvdb-12.1.0 +* openvdb-12.1.1 * gtest-1.15.2 * numpy-1.26.4 * vfxplatform-2025 @@ -157,7 +157,7 @@ Contains: ## [aswf/ci-openvdb:2026-clang19.1](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang19.1) Contains: -* openvdb-12.1.0 +* openvdb-12.1.1 * gtest-1.17.0 * numpy-2.3.2 * vfxplatform-2026 @@ -165,7 +165,7 @@ Contains: ## [aswf/ci-openvdb:2026-clang20.1](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2026-clang20.1) Contains: -* openvdb-12.1.0 +* openvdb-12.1.1 * gtest-1.17.0 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-osl/README.md b/ci-osl/README.md index 44c05cf7..d369dd86 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.1 +* oiio-3.1.6.2 * 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.1 +* oiio-3.1.6.2 * partio-1.19.0 * pugixml-1.14 * pybind11-2.13.6 @@ -301,8 +301,8 @@ Contains: Contains: * cpython-3.13.3 * fmt-11.2.0 -* imath-3.2.1 -* oiio-3.0.9.1 +* imath-3.2.2 +* oiio-3.1.6.2 * partio-1.19.0 * pugixml-1.15 * pybind11-2.13.6 @@ -318,8 +318,8 @@ Contains: Contains: * cpython-3.13.3 * fmt-11.2.0 -* imath-3.2.1 -* oiio-3.0.9.1 +* imath-3.2.2 +* oiio-3.1.6.2 * partio-1.19.0 * pugixml-1.15 * pybind11-2.13.6 diff --git a/ci-otio/README.md b/ci-otio/README.md index 84c1a43d..fe0cc0bb 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.2.1 +* imath-3.2.2 * numpy-2.3.2 * vfxplatform-2026 diff --git a/ci-usd/README.md b/ci-usd/README.md index bbcb0122..1777b0b7 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.1 +* oiio-3.1.6.2 * materialx-1.39.3 * numpy-1.26.4 * hdf5-1.14.6 @@ -278,17 +278,17 @@ Contains: * qt-6.8.3 * pyside-6.8.3 * highway-1.2.0 -* imath-3.2.1 +* imath-3.2.2 * lcms-2.17 * libultrahdr-1.4.0 * opensubdiv-3.6.1 * partio-1.19.0 * ptex-2.4.3 * libjxl-0.11.1 -* openexr-3.4-alpha +* openexr-3.4.2 * alembic-1.8.8 -* ocio-2.4.2 -* oiio-3.0.9.1 +* ocio-2.5.0 +* oiio-3.1.6.2 * materialx-1.39.3 * numpy-2.3.2 * hdf5-1.14.6 diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 078cca85..1a447367 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -392,10 +392,10 @@ Contains: * alembic-1.8.8 * imath-3.1.12 * openexr-3.3.5 -* oiio-3.0.9.1 +* oiio-3.1.6.2 * ocio-2.4.2 * openfx-1.5s -* openvdb-12.1.0 +* openvdb-12.1.1 * materialx-1.39.3 * usd-25.05.01 * osl-1.14.7.0 @@ -419,10 +419,10 @@ Contains: * alembic-1.8.8 * imath-3.1.12 * openexr-3.3.5 -* oiio-3.0.9.1 +* oiio-3.1.6.2 * ocio-2.4.2 * openfx-1.5s -* openvdb-12.1.0 +* openvdb-12.1.1 * materialx-1.39.3 * usd-25.05.01 * osl-1.14.7.0 @@ -444,12 +444,12 @@ Contains: * opensubdiv-3.6.1 * partio-1.19.0 * alembic-1.8.8 -* imath-3.2.1 -* openexr-3.4-alpha -* oiio-3.0.9.1 -* ocio-2.4.2 +* imath-3.2.2 +* openexr-3.4.2 +* oiio-3.1.6.2 +* ocio-2.5.0 * openfx-1.5s -* openvdb-12.1.0 +* openvdb-12.1.1 * materialx-1.39.3 * usd-25.08 * osl-1.14.7.0 @@ -471,12 +471,12 @@ Contains: * opensubdiv-3.6.1 * partio-1.19.0 * alembic-1.8.8 -* imath-3.2.1 -* openexr-3.4-alpha -* oiio-3.0.9.1 -* ocio-2.4.2 +* imath-3.2.2 +* openexr-3.4.2 +* oiio-3.1.6.2 +* ocio-2.5.0 * openfx-1.5s -* openvdb-12.1.0 +* openvdb-12.1.1 * materialx-1.39.3 * usd-25.08 * osl-1.14.7.0 diff --git a/packages/common/Dockerfile b/packages/common/Dockerfile index 0c310f18..67bbab8b 100644 --- a/packages/common/Dockerfile +++ b/packages/common/Dockerfile @@ -16,96 +16,9 @@ ARG ASWF_OPTIX_VERSION ARG ASWF_DTS_VERSION ARG ASWF_DTS_PREFIX ARG ASWF_NINJA_VERSION -ARG ASWF_BASEOS_DISTRO +ARG ASWF_BASEOS_VERSION ARG ASWF_BASEOS_IMAGE - -#################### ci-baseos-gl-os #################### -FROM ${ASWF_BASEOS_IMAGE}:${ASWF_CUDA_VERSION}-runtime-${ASWF_BASEOS_DISTRO} AS ci-baseos-gl-conan - -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 -ENV ASWF_DTS_VERSION=${ASWF_DTS_VERSION} -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} - -COPY ../scripts/common/install_cudadevel.sh /tmp/ - -RUN --mount=type=cache,sharing=private,target=/var/cache/yum \ - /tmp/install_cudadevel.sh - -COPY ../scripts/common/install_yumpackages.sh /tmp/ - -RUN --mount=type=cache,sharing=private,target=/var/cache/yum \ - /tmp/install_yumpackages.sh - -COPY scripts/common/install_opengl.sh /tmp/ - -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 - -COPY scripts/common/install_optix.sh /tmp/ - -RUN /tmp/install_optix.sh - -COPY scripts/common/install_pippackages.sh /tmp/ - -RUN --mount=type=cache,sharing=private,target=/root/.cache/pip \ - /tmp/install_pippackages.sh - -COPY ../scripts/common/install_dev_ccache.sh \ - ../scripts/common/before_build.sh \ - ../scripts/common/copy_new_files.sh \ - ../scripts/common/install_dev_cmake.sh \ - /tmp/ - -ENV DOWNLOADS_DIR=/tmp/downloads \ - CCACHE_DIR=/tmp/ccache \ - ASWF_INSTALL_PREFIX=/usr/local \ - 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 \ - /tmp/install_dev_cmake.sh && \ - /tmp/install_dev_ccache.sh - -COPY scripts/common/install_yq.sh /tmp/ - -RUN /tmp/install_yq.sh - -# Merge the previously separate ci-baseos-gl-os and ci-baseos-gl-conan stages: -# we are unlikely to want to iterate on Conan versions separately from the base image, -# and we want to make sure that ci-conan-package-builder always pulls a pre-built -# ci-baseos-gl-conan from Docker Hub rather than rebuilding it locally. - -ARG ASWF_CONAN_VERSION -ARG ASWF_CONAN_PYTHON_VERSION - -ENV ASWF_CONAN_ROOT=/opt/conan - -COPY ../scripts/common/install_conan.sh /tmp/ - -RUN --mount=type=cache,sharing=private,target=/tmp/downloads \ - /tmp/install_conan.sh - #################### ci-conan-package-builder #################### FROM ${ASWF_ORG}/ci-baseos-gl-conan:${CI_COMMON_VERSION} AS ci-conan-package-builder diff --git a/packages/conan/recipes/imath/conandata.yml b/packages/conan/recipes/imath/conandata.yml index 764cb520..054822c5 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.2": + url: "https://github.com/AcademySoftwareFoundation/Imath/archive/v3.2.2.tar.gz" + sha256: "b4275d83fb95521510e389b8d13af10298ed5bed1c8e13efd961d91b1105e462" "3.2.1": url: "https://github.com/AcademySoftwareFoundation/Imath/archive/v3.2.1.tar.gz" sha256: "b2c8a44c3e4695b74e9644c76f5f5480767355c6f98cde58ba0e82b4ad8c63ce" diff --git a/packages/conan/recipes/ocio/conandata.yml b/packages/conan/recipes/ocio/conandata.yml index d7bd8fc0..5793b50e 100644 --- a/packages/conan/recipes/ocio/conandata.yml +++ b/packages/conan/recipes/ocio/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/9a66422e07df06d2c502501de6e00b8b1213b563/recipes/opencolorio/all/conandata.yml sources: + "2.5.0": + url: "https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v2.5.0.tar.gz" + sha256: "124e2bfa8a9071959d6ddbb64ffbf78d3f6fe3c923ae23e96a6bbadde1af55b6" "2.4.2": url: "https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v2.4.2.tar.gz" sha256: "2d8f2c47c40476d6e8cea9d878f6601d04f6d5642b47018eaafa9e9f833f3690" @@ -27,6 +30,16 @@ sources: url: "https://github.com/AcademySoftwareFoundation/OpenColorIO/archive/v1.1.1.tar.gz" sha256: "c9b5b9def907e1dafb29e37336b702fff22cc6306d445a13b1621b8a754c14c8" patches: + "2.5.0": + - patch_file: "patches/2.5.0-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.5.0-0002-cmake-deps-for-shared-libs.patch" + patch_description: "don't skip cmake dependencies for shared builds" + patch_type: "conan" + - patch_file: "patches/2.5.0-0004-find-python.patch" + patch_description: "We call FindPython3" + patch_type: "conan" "2.4.2": - patch_file: "patches/2.4.2-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/patches/2.5.0-0001-fix-cmake-source-dir-and-targets.patch b/packages/conan/recipes/ocio/patches/2.5.0-0001-fix-cmake-source-dir-and-targets.patch new file mode 100644 index 00000000..dea7df90 --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.5.0-0001-fix-cmake-source-dir-and-targets.patch @@ -0,0 +1,52 @@ +diff --git CMakeLists.txt CMakeLists.txt +index 0eaec4be..e711295c 100755 +--- CMakeLists.txt ++++ CMakeLists.txt +@@ -517,7 +517,7 @@ install( + FILE ${OCIO_TARGETS_EXPORT_NAME} + ) + +-if (NOT BUILD_SHARED_LIBS) ++if (0) + # Install custom macros used in the find modules. + install(FILES + ${CMAKE_CURRENT_LIST_DIR}/share/cmake/macros/VersionUtils.cmake +diff --git share/cmake/modules/FindExtPackages.cmake share/cmake/modules/FindExtPackages.cmake +index accdecec..945c5edc 100644 +--- share/cmake/modules/FindExtPackages.cmake ++++ share/cmake/modules/FindExtPackages.cmake +@@ -131,7 +131,7 @@ + + # lcms2 + # https://github.com/mm2/Little-CMS +- ocio_handle_dependency( lcms2 REQUIRED ALLOW_INSTALL ++ ocio_handle_dependency( lcms REQUIRED ALLOW_INSTALL + MIN_VERSION 2.2 + RECOMMENDED_VERSION 2.17 + RECOMMENDED_VERSION_REASON "Latest version tested with OCIO") +diff --git share/cmake/utils/CppVersion.cmake share/cmake/utils/CppVersion.cmake +index 175d89c2..ac93b87a 100644 +--- share/cmake/utils/CppVersion.cmake ++++ share/cmake/utils/CppVersion.cmake +@@ -16,7 +16,7 @@ elseif(NOT CMAKE_CXX_STANDARD IN_LIST SUPPORTED_CXX_STANDARDS) + "CMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD} is unsupported. Supported standards are: ${SUPPORTED_CXX_STANDARDS_STR}.") + endif() + +-set_property(CACHE CMAKE_CXX_STANDARD PROPERTY STRINGS "${SUPPORTED_CXX_STANDARDS}") ++# set_property(CACHE CMAKE_CXX_STANDARD PROPERTY STRINGS "${SUPPORTED_CXX_STANDARDS}") + + include(CheckCXXCompilerFlag) + +diff --git src/apps/ociobakelut/CMakeLists.txt src/apps/ociobakelut/CMakeLists.txt +index 3d6e586b..f7069a1f 100755 +--- src/apps/ociobakelut/CMakeLists.txt ++++ src/apps/ociobakelut/CMakeLists.txt +@@ -29,7 +29,7 @@ set_target_properties(ociobakelut + target_link_libraries(ociobakelut + PRIVATE + apputils +- lcms2::lcms2 ++ lcms::lcms + OpenColorIO + ) + diff --git a/packages/conan/recipes/ocio/patches/2.5.0-0002-cmake-deps-for-shared-libs.patch b/packages/conan/recipes/ocio/patches/2.5.0-0002-cmake-deps-for-shared-libs.patch new file mode 100644 index 00000000..3295b145 --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.5.0-0002-cmake-deps-for-shared-libs.patch @@ -0,0 +1,13 @@ +diff --git src/cmake/Config.cmake.in src/cmake/Config.cmake.in +index 0eaec4be..e711295c 100755 +--- src/cmake/Config.cmake.in ++++ src/cmake/Config.cmake.in +@@ -2,7 +2,7 @@ + + include(CMakeFindDependencyMacro) + +-if (NOT @BUILD_SHARED_LIBS@) # NOT @BUILD_SHARED_LIBS@ ++if (NOT OFF) # NOT @BUILD_SHARED_LIBS@ + if (APPLE) + # Store the previous value of CMAKE_FIND_FRAMEWORK and CMAKE_FIND_APPBUNDLE. + set(_PREVIOUS_CMAKE_FIND_FRAMEWORK ${CMAKE_FIND_FRAMEWORK}) diff --git a/packages/conan/recipes/ocio/patches/2.5.0-0004-find-python.patch b/packages/conan/recipes/ocio/patches/2.5.0-0004-find-python.patch new file mode 100644 index 00000000..41346114 --- /dev/null +++ b/packages/conan/recipes/ocio/patches/2.5.0-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 +@@ -216,9 +216,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} + ) + + ############################################################################### +@@ -243,7 +243,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/oiio/conandata.yml b/packages/conan/recipes/oiio/conandata.yml index 21b89019..99996e0e 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.1.6.2": + url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.1.6.2.tar.gz" + sha256: "a1e515e6a6ea9925a70c23db21dda37f3ce2c24780a6bfedd8685fea063f698a" "3.0.9.1": url: "https://github.com/AcademySoftwareFoundation/OpenImageIO/archive/refs/tags/v3.0.9.1.tar.gz" sha256: "bbc5db069b7d8e4e2fccf994d55a262953057745a5e398e44a2e5235a8736d1d" @@ -132,3 +135,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.1.6.2": + - patch_file: "patches/3.1.6.2-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.1.6.2-raw-jp2k-cmake.patch" + patch_description: "Find local builds of LibRaw, OpenJPEG" + patch_type: "conan" 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 index a792d55d..2a719b73 100644 --- 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 @@ -15,7 +15,7 @@ index d99dd79ac..bfda2778a 100644 COMPILE_OPTIONS ${LibRaw_r_DEFINITIONS} DEFINITIONS "USE_LIBRAW=1") else () -diff --git src/raw.jpeg2000/CMakeLists.txt src/raw.jpeg2000/CMakeLists.txt +diff --git src/jpeg2000.imageio/CMakeLists.txt src/jpeg2000.imageio/CMakeLists.txt index d99dd79ac..bfda2778a 100644 --- src/jpeg2000.imageio/CMakeLists.txt +++ src/jpeg2000.imageio/CMakeLists.txt diff --git a/packages/conan/recipes/oiio/patches/3.1.6.2-cmake-fmt.patch b/packages/conan/recipes/oiio/patches/3.1.6.2-cmake-fmt.patch new file mode 100644 index 00000000..69b1d36e --- /dev/null +++ b/packages/conan/recipes/oiio/patches/3.1.6.2-cmake-fmt.patch @@ -0,0 +1,15 @@ +diff --git src/cmake/externalpackages.cmake src/cmake/externalpackages.cmake +index d99dd79ac..bfda2778a 100644 +--- src/cmake/externalpackages.cmake ++++ src/cmake/externalpackages.cmake +@@ -236,7 +236,9 @@ + VERSION_MIN 7.0 + BUILD_LOCAL missing + ) +-get_target_property(FMT_INCLUDE_DIR fmt::fmt-header-only INTERFACE_INCLUDE_DIRECTORIES) ++get_target_property(FMT_INCLUDE_DIR fmt::fmt INTERFACE_INCLUDE_DIRECTORIES) ++# Get rid of generator expression from Conan ++string(REGEX REPLACE "^\\$<\\$:(.*)>$" "\\1" FMT_INCLUDE_DIR "${FMT_INCLUDE_DIR}") + + + ########################################################################### diff --git a/packages/conan/recipes/oiio/patches/3.1.6.2-raw-jp2k-cmake.patch b/packages/conan/recipes/oiio/patches/3.1.6.2-raw-jp2k-cmake.patch new file mode 100644 index 00000000..8055abb5 --- /dev/null +++ b/packages/conan/recipes/oiio/patches/3.1.6.2-raw-jp2k-cmake.patch @@ -0,0 +1,49 @@ +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/jpeg2000.imageio/CMakeLists.txt src/jpeg2000.imageio/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) +- set(_jpeg2000_includes ${OPENJPEG_INCLUDES}) +- set(_jpeg2000_lib_dirs ${OPENJPEG_LIBRARY_DIRS}) +- set(_jpeg2000_libs ${OPENJPEG_LIBRARIES}) ++if (OPENJPEG_FOUND OR OpenJPEG_FOUND) ++ set(_jpeg2000_includes ${OpenJPEG_INCLUDE_DIR}) ++ set(_jpeg2000_lib_dirs ${OpenJPEG_LIBRARY_DIRS}) ++ set(_jpeg2000_libs ${OpenJPEG_LIBRARIES}) + set(_jpeg2000_defs "USE_OPENJPEG") + + if (openjph_FOUND) +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/openexr/conandata.yml b/packages/conan/recipes/openexr/conandata.yml index d1bcbeee..f4e6edd0 100644 --- a/packages/conan/recipes/openexr/conandata.yml +++ b/packages/conan/recipes/openexr/conandata.yml @@ -5,6 +5,15 @@ # From: https://github.com/conan-io/conan-center-index/blob/cceee569179c10fa56d1fd9c3582f3371944ba59/recipes/openexr/3.x/conandata.yml sources: + "3.4.2": + url: "https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.4.2.tar.gz" + sha256: "d7d38eb6a63ea8ba0f301d0ad6a80094032d488e9e6c525b35236d20a9ae3ef2" + "3.4.1": + url: "https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.4.1.tar.gz" + sha256: "0d75aa277c33a4ed1fce2e272126f2d8dbd01adda82d7cf4fe67b99f6f7eedce" + "3.4.0": + url: "https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.4.0.tar.gz" + sha256: "d7b31637d7adc359f5e5a7517ba918cb5997bc1a4ae7a808ec874cdf91da93c0" "3.4-alpha": url: "https://github.com/AcademySoftwareFoundation/openexr/archive/refs/tags/v3.4-alpha.tar.gz" sha256: "5a78b497576a323979b03a343ad63a253d955462365c67597ab6fcac87e79193" diff --git a/packages/conan/recipes/openvdb/conandata.yml b/packages/conan/recipes/openvdb/conandata.yml index 3800cbfd..a25c0e46 100644 --- a/packages/conan/recipes/openvdb/conandata.yml +++ b/packages/conan/recipes/openvdb/conandata.yml @@ -5,6 +5,9 @@ # From: https://github.com/conan-io/conan-center-index/blob/47ec06eaf213b77bf96c28079434b4fe4446cc46/recipes/openvdb/all/conandata.yml sources: + "12.1.1": + url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v12.1.1.tar.gz" + sha256: "ccd0ea1669a53c7c13087a08ac5a1351041c4cdd308f6d6f591074a106fcb565" "12.1.0": url: "https://github.com/AcademySoftwareFoundation/openvdb/archive/refs/tags/v12.1.0.tar.gz" sha256: "ebb9652ad1d67274e2c85e6736cced5f04e313c5671ae1ae548f174cc76e9e64" diff --git a/packages/conan/recipes/openvdb/conanfile.py b/packages/conan/recipes/openvdb/conanfile.py index 7384cd6c..29e6a542 100644 --- a/packages/conan/recipes/openvdb/conanfile.py +++ b/packages/conan/recipes/openvdb/conanfile.py @@ -38,6 +38,7 @@ class OpenVDBConan(ConanFile): "fPIC": [True, False], "build_ax": [True, False], "build_binaries": [True, False], # ASWF: build binaries to exercise additional dependencies + "build_tests": [True, False], # ASWF: build tests to exercise additional dependencies "simd": [None, "SSE42", "AVX"], "use_colored_output": [True, False], "use_delayed_loading": [True, False], @@ -54,6 +55,7 @@ class OpenVDBConan(ConanFile): "fPIC": True, "build_ax": True, # ASWF: OpenVDB "build_binaries": True, # ASWF: build binaries to exercise additional dependencies + "build_tests": True, # ASWF: build tests to exercise additional dependencies "simd": None, "use_colored_output": False, "use_delayed_loading": False, @@ -154,8 +156,10 @@ def requirements(self): # log4cplus 2.x is not supported self.requires("log4cplus/1.2.2", transitive_headers=True) if self.options.build_binaries: - self.requires("glfw/3.4") - + self.requires("glfw/3.4") # ASWF: build binaries to exercise additional dependencies + if self.options.build_tests: + self.requires("gtest/1.17.0") # ASWF: build tests to exercise additional dependencies + def _check_compiler_version(self): compiler = str(self.settings.compiler) minimum_version = self._compilers_min_version.get(compiler, False) @@ -201,6 +205,7 @@ def generate(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"] = self.options.build_binaries # ASWF + tc.variables["OPENVDB_BUILD_UNITTESTS"] = self.options.build_tests # ASWF tc.variables["OPENVDB_BUILD_CORE"] = True tc.variables["OPENVDB_BUILD_DOCS"] = False tc.variables["OPENVDB_BUILD_HOUDINI_ABITESTS"] = False @@ -311,6 +316,8 @@ def package_info(self): main_component.requires.append("imath::imath") if self.options.build_binaries: main_component.requires.append("glfw::glfw") + if self.options.build_tests: + main_component.requires.append("gtest::gtest") # TODO: to remove in conan v2 once cmake_find_package_* generators removed self.cpp_info.names["cmake_find_package"] = "OpenVDB" diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index 091250db..9c0b2db7 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -27,6 +27,7 @@ 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 +gtest/*: gtest/1.15.2@aswf/vfx2024 harfbuzz/*: harfbuzz/11.0.1@aswf/vfx2024 hdf5/*: hdf5/1.14.6@aswf/vfx2024 highway/*: highway/1.2.0@aswf/vfx2024 @@ -75,6 +76,7 @@ openexr/*: openexr/3.2.4@aswf/vfx2024 opengl/*: opengl/system@aswf/vfx2024 openjpeg/*: openjpeg/2.4.0@aswf/vfx2024 openssl/*: openssl/system@aswf/vfx2024 +openvdb/*: openvdb/11.0.0@aswf/vfx2024 opus/*: opus/system@aswf/vfx2024 pcre2/*: pcre2/system@aswf/vfx2024 ptex/*: ptex/2.4.2@aswf/vfx2024 diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 0e53dfda..5c6cf9cf 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -27,6 +27,7 @@ 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 +gtest/*: gtest/1.15.2@aswf/vfx2025 harfbuzz/*: harfbuzz/11.0.1@aswf/vfx2025 hdf5/*: hdf5/1.14.6@aswf/vfx2025 highway/*: highway/1.2.0@aswf/vfx2025 @@ -65,7 +66,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.1@aswf/vfx2025 +oiio/*: oiio/3.1.6.2@aswf/vfx2025 ogg/*: ogg/system@aswf/vfx2025 onetbb/*: onetbb/2021.13.0@aswf/vfx2025 openal-soft/*: openal-soft/system@aswf/vfx2025 @@ -75,6 +76,7 @@ openexr/*: openexr/3.3.5@aswf/vfx2025 opengl/*: opengl/system@aswf/vfx2025 openjpeg/*: openjpeg/2.4.0@aswf/vfx2025 openssl/*: openssl/system@aswf/vfx2025 +openvdb/*: openvdb/12.1.1@aswf/vfx2025 opus/*: opus/system@aswf/vfx2025 pcre2/*: pcre2/system@aswf/vfx2025 ptex/*: ptex/2.4.3@aswf/vfx2025 diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index 6d51f383..34af375a 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -29,11 +29,12 @@ giflib/*: giflib/5.1.4@aswf/vfx2026 glew/*: glew/2.2.0@aswf/vfx2026 glfw/*: glfw/3.4@aswf/vfx2026 glib/*: glib/2.56.4@aswf/vfx2026 +gtest/*: gtest/1.17.0@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 -imath/*: imath/3.2.1@aswf/vfx2026 +imath/*: imath/3.2.2@aswf/vfx2026 jasper/*: jasper/4.2.5@aswf/vfx2026 lcms/*: lcms/2.17@aswf/vfx2026 libalsa/*: libalsa/system@aswf/vfx2026 @@ -66,17 +67,18 @@ 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 -oiio/*: oiio/3.0.9.1@aswf/vfx2026 +ocio/*: ocio/2.5.0@aswf/vfx2026 +oiio/*: oiio/3.1.6.2@aswf/vfx2026 ogg/*: ogg/system@aswf/vfx2026 onetbb/*: onetbb/2022.1.0@aswf/vfx2026 openal-soft/*: openal-soft/system@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 +openexr/*: openexr/3.4.2@aswf/vfx2026 opengl/*: opengl/system@aswf/vfx2026 openjpeg/*: openjpeg/2.4.0@aswf/vfx2026 openssl/*: openssl/system@aswf/vfx2026 +openvdb/*: openvdb/12.1.1@aswf/vfx2026 opus/*: opus/system@aswf/vfx2026 pcre2/*: pcre2/system@aswf/vfx2026 ptex/*: ptex/2.4.3@aswf/vfx2026 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 4faddc8d..9aed6ef7 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -27,6 +27,7 @@ giflib/*: giflib/5.1.4@aswftesting/vfx2024 glew/*: glew/2.2.0@aswftesting/vfx2024 glfw/*: glfw/3.4@aswftesting/vfx2024 glib/*: glib/2.56.4@aswftesting/vfx2024 +gtest/*: gtest/1.15.2@aswftesting/vfx2024 harfbuzz/*: harfbuzz/11.0.1@aswftesting/vfx2024 hdf5/*: hdf5/1.14.6@aswftesting/vfx2024 highway/*: highway/1.2.0@aswftesting/vfx2024 @@ -75,6 +76,7 @@ openexr/*: openexr/3.2.4@aswftesting/vfx2024 opengl/*: opengl/system@aswftesting/vfx2024 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2024 openssl/*: openssl/system@aswftesting/vfx2024 +openvdb/*: openvdb/11.0.0@aswftesting/vfx2024 opus/*: opus/system@aswftesting/vfx2024 pcre2/*: pcre2/system@aswftesting/vfx2024 ptex/*: ptex/2.4.2@aswftesting/vfx2024 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 18b27328..fe1f317f 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -27,6 +27,7 @@ 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 +gtest/*: gtest/1.15.2@aswftesting/vfx2025 harfbuzz/*: harfbuzz/11.0.1@aswftesting/vfx2025 hdf5/*: hdf5/1.14.6@aswftesting/vfx2025 highway/*: highway/1.2.0@aswftesting/vfx2025 @@ -65,7 +66,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.1@aswftesting/vfx2025 +oiio/*: oiio/3.1.6.2@aswftesting/vfx2025 ogg/*: ogg/system@aswftesting/vfx2025 onetbb/*: onetbb/2021.13.0@aswftesting/vfx2025 openal-soft/*: openal-soft/system@aswftesting/vfx2025 @@ -75,6 +76,7 @@ openexr/*: openexr/3.3.5@aswftesting/vfx2025 opengl/*: opengl/system@aswftesting/vfx2025 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2025 openssl/*: openssl/system@aswftesting/vfx2025 +openvdb/*: openvdb/12.1.1@aswftesting/vfx2025 opus/*: opus/system@aswftesting/vfx2025 pcre2/*: pcre2/system@aswftesting/vfx2025 ptex/*: ptex/2.4.3@aswftesting/vfx2025 diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index 67546048..04ebadcc 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -29,11 +29,12 @@ giflib/*: giflib/5.1.4@aswftesting/vfx2026 glew/*: glew/2.2.0@aswftesting/vfx2026 glfw/*: glfw/3.4@aswftesting/vfx2026 glib/*: glib/2.56.4@aswftesting/vfx2026 +gtest/*: gtest/1.17.0@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 -imath/*: imath/3.2.1@aswftesting/vfx2026 +imath/*: imath/3.2.2@aswftesting/vfx2026 jasper/*: jasper/4.2.5@aswftesting/vfx2026 lcms/*: lcms/2.17@aswftesting/vfx2026 libalsa/*: libalsa/system@aswftesting/vfx2026 @@ -66,17 +67,18 @@ 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 -oiio/*: oiio/3.0.9.1@aswftesting/vfx2026 +ocio/*: ocio/2.5.0@aswftesting/vfx2026 +oiio/*: oiio/3.1.6.2@aswftesting/vfx2026 ogg/*: ogg/system@aswftesting/vfx2026 onetbb/*: onetbb/2022.1.0@aswftesting/vfx2026 openal-soft/*: openal-soft/system@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 +openexr/*: openexr/3.4.2@aswftesting/vfx2026 opengl/*: opengl/system@aswftesting/vfx2026 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2026 openssl/*: openssl/system@aswftesting/vfx2026 +openvdb/*: openvdb/12.1.1@aswftesting/vfx2026 opus/*: opus/system@aswftesting/vfx2026 pcre2/*: pcre2/system@aswftesting/vfx2026 ptex/*: ptex/2.4.3@aswftesting/vfx2026 diff --git a/python/aswfdocker/builder.py b/python/aswfdocker/builder.py index af2b75e9..5445064e 100644 --- a/python/aswfdocker/builder.py +++ b/python/aswfdocker/builder.py @@ -133,9 +133,7 @@ def make_bake_dict( ], } if self.group_info.type == constants.ImageType.PACKAGE: - if use_conan: - target_dict["target"] = "ci-baseos-gl-conan" - else: + if not use_conan: target_dict["target"] = image root["target"][f"{image}-{major_version}"] = target_dict @@ -232,41 +230,7 @@ def _build_conan_package( progress, bake_jsonfile, ): - # pylint: disable=consider-using-f-string major_version = utils.get_major_version(version) - # version_info = self.index.version_info(major_version) - # base_cmd = self._get_conan_base_cmd(version_info) - # if conan_login: - # # "conan remote auth" stores credentials in - # # ${CONAN_HOME]/credentials.json but we don't have a simple way to persist - # # this file between build steps, since instead we will use the secrets mechanism - # # in the buildx bake file to pass the CONAN_LOGIN_USERNAME and CONAN_PASSWORD - # # values as environment variables to allow `conan upload" to authenticate on the fly. - # self._run_in_docker( - # base_cmd, - # [ - # "conan", - # "remote", - # "auth", - # self.build_info.docker_org, - # ], - # dry_run, - # ) - - # These are kept for reference, they now live in - # packages/common/Dockerfile - # - # full_version = version_info.package_versions.get( - # "ASWF_" + image.upper() + "_VERSION" - # ) - # conan_version = ( - # f"{image}/{full_version}" - # f"@{self.build_info.docker_org}/{version_info.conan_profile}" - # ) - # alias_version = ( - # f"{image}/latest" - # f"@{self.build_info.docker_org}/{version_info.conan_profile}" - # ) # buildx bake --set allows us to override settings in the bake file and avoid having # to rewrite it. @@ -275,19 +239,13 @@ def _build_conan_package( # target.target=ci-conan-package-builder : see packages/common/Dockerfile for the Conan # build container which runs: # - # - conan user (conditional) # - conan create - # - conan alias # - conan upload main version (conditional) - # - conan upload latest alias version (conditional) - # - # not sure about ci-package-{image}-{major_version} # - # Make pylint / pytest happy, they get confused by f-string runcmd = ( - "docker buildx bake -f {} --set=*.output=type=cacheonly " - "--set=*.target.target=ci-conan-package-builder --progress {} " - "ci-package-{}-{}".format(bake_jsonfile, progress, image, major_version) + f"docker buildx bake -f {bake_jsonfile} --set=*.output=type=cacheonly " + f"--set=*.target.target=ci-conan-package-builder --progress {progress} " + f"ci-package-{image}-{major_version}" ) self._run( @@ -318,22 +276,26 @@ def build( 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 - ) - if not self.use_conan or self.group_info.type == constants.ImageType.IMAGE: - return - - conan_base = os.path.join(utils.get_git_top_level(), "packages", "conan") - for image, version in images_and_versions: - recipe_path = os.path.join(conan_base, "recipes", image) - if not os.path.exists(recipe_path): - logger.warning("Recipe for %s not found: skipping!", image) - continue - self._build_conan_package( - image, - version, - dry_run, - progress, - path, - ) + if not self.use_conan: + self._run( + f"docker buildx bake -f {path} --progress {progress}", + dry_run=dry_run, + ) + else: + conan_base = os.path.join( + utils.get_git_top_level(), "packages", "conan" + ) + # As of Conan 2.18, parallel builds are still not supported and can result in + # database lock failures, so we have to build sequentially. + for image, version in images_and_versions: + recipe_path = os.path.join(conan_base, "recipes", image) + if not os.path.exists(recipe_path): + logger.warning("Recipe for %s not found: skipping!", image) + continue + self._build_conan_package( + image, + version, + dry_run, + progress, + path, + ) diff --git a/python/aswfdocker/data/ci-image-dockerfile.jinja2 b/python/aswfdocker/data/ci-image-dockerfile.jinja2 index a7f40017..a3de03ae 100644 --- a/python/aswfdocker/data/ci-image-dockerfile.jinja2 +++ b/python/aswfdocker/data/ci-image-dockerfile.jinja2 @@ -11,7 +11,7 @@ ARG CI_COMMON_VERSION ARG ASWF_CLANG_MAJOR_VERSION ARG ASWF_PYSIDE_CLANG_VERSION ARG ASWF_CONAN_CHANNEL -{% if name != "common" %} +{% if name != "common" and name != "baseos-gl-conan" %} ARG ASWF_VFXPLATFORM_VERSION {% endif %} @@ -29,7 +29,7 @@ ARG {{ arg }} {% endfor -%} {% endfor %} -{% if name == "common" %} +{% if name == "common" or name == "baseos-gl-conan" %} ARG ASWF_BASEOS_IMAGE ARG ASWF_BASEOS_DISTRO {% endif %} @@ -53,7 +53,7 @@ ARG CI_COMMON_VERSION ARG ASWF_PYSIDE_CLANG_VERSION ARG ASWF_CONAN_CHANNEL -{% if name == "common" %} +{% if name == "common" or name == "baseos-gl-conan" %} ARG ASWF_DTS_PREFIX {% endif %} @@ -80,7 +80,7 @@ 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}" -{% if name != "common" %} +{% if name != "common" and name != "baseos-gl-conan" %} LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" {% endif %} @@ -94,7 +94,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} -{% if name != "common" %} +{% if name != "common" and name != "baseos-gl-conan" %} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} {% else %} ENV ASWF_DTS_PREFIX=$ASWF_DTS_PREFIX @@ -150,7 +150,7 @@ EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 -{% if name != "common" %} +{% if name != "common" and name != "baseos-gl-conan" %} 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} {{ name }} diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 2bbe1c72..a48baa43 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -758,11 +758,11 @@ 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.1" + ASWF_OIIO_VERSION: "3.1.6.2" ASWF_OPENEXR_VERSION: "3.3.5" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" - ASWF_OPENVDB_VERSION: "12.1.0" + ASWF_OPENVDB_VERSION: "12.1.1" ASWF_OSL_VERSION: "1.14.7.0" ASWF_OTIO_VERSION: "0.17.0" ASWF_RAWTOACES_VERSION: "1.1.0" @@ -890,15 +890,15 @@ versions: ASWF_VFXPLATFORM_VERSION: "2026" ASWF_CXX_STANDARD: "20" # ASWF packages - ASWF_IMATH_VERSION: "3.2.1" + ASWF_IMATH_VERSION: "3.2.2" 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.1" - ASWF_OPENEXR_VERSION: "3.4-alpha" + ASWF_OCIO_VERSION: "2.5.0" + ASWF_OIIO_VERSION: "3.1.6.2" + ASWF_OPENEXR_VERSION: "3.4.2" ASWF_OPENFX_VERSION: "1.5s" ASWF_OPENRV_VERSION: "2.1.0" - ASWF_OPENVDB_VERSION: "12.1.0" + ASWF_OPENVDB_VERSION: "12.1.1" ASWF_OSL_VERSION: "1.14.7.0" ASWF_OTIO_VERSION: "0.17.0" ASWF_RAWTOACES_VERSION: "1.1.0" @@ -914,6 +914,7 @@ versions: ci_common_version: "6" ci-packages: + clang: - "1-clang6.2" - "1-clang7.2" @@ -1510,6 +1511,10 @@ ci-packages: - "2026.1" ci-images: + baseos-gl-conan: + - "4.4" + - "5.3" + - "6.1" common: - "1-clang6.8" - "1-clang7.8" @@ -1679,7 +1684,7 @@ ci-images: groups: package: - common: + common: - clang - cmake - ninja @@ -1810,6 +1815,8 @@ groups: review: - openrv image: + baseos-gl-conan: + - baseos-gl-conan common: - common base: diff --git a/python/aswfdocker/tests/test_builder.py b/python/aswfdocker/tests/test_builder.py index a666cf52..30e4cd8e 100644 --- a/python/aswfdocker/tests/test_builder.py +++ b/python/aswfdocker/tests/test_builder.py @@ -427,16 +427,11 @@ def test_builder_cli_conan(self): tempfile.gettempdir(), "docker-bake-PACKAGE-vfx1-2-2019.json" ) cmds = result.output.strip().splitlines() - # Expect 2 lines of output - # 1 - docker buildx bake for the Docker packages - # 2 - docker buildx bake for the conan packages (no login or upload) - self.assertEqual(len(cmds), 2) + # Expect 1 lines of output + # 1 - docker buildx bake for the conan packages (no login or upload) + self.assertEqual(len(cmds), 1) self.assertEqual( cmds[0], - f"INFO:aswfdocker.builder:Would run: 'docker buildx bake -f {bake_path} --progress auto'", - ) - self.assertEqual( - cmds[1], f"INFO:aswfdocker.builder:Would run: 'docker buildx bake -f {bake_path} " + "--set=*.output=type=cacheonly --set=*.target.target=ci-conan-package-builder " + "--progress auto ci-package-openexr-2019'", @@ -501,16 +496,13 @@ def test_builderlist_cli_conan(self): "--ci-image-type", "PACKAGE", "--version", - "2019", + "2025", "--version", - "2020", + "2026", "--target", "openexr", "--dry-run", "--use-conan", - "--keep-source", - "--keep-build", - "--conan-login", "--build-missing", "--push", "YES", @@ -518,30 +510,24 @@ def test_builderlist_cli_conan(self): ) self.assertFalse(result.exception, msg=result.output) bake_path = os.path.join( - tempfile.gettempdir(), "docker-bake-PACKAGE-vfx1-2-2019-2020.json" + tempfile.gettempdir(), "docker-bake-PACKAGE-vfx1-2-2025-2026.json" ) cmds = result.output.strip().splitlines() - # We expect 3 steps - # 1 - docker buildx to build the non-Conan packages - # 2 - docker buildx to build and upload (2x for each openexr package) - self.assertEqual(len(cmds), 3) - self.assertEqual( - cmds[self._i], - f"INFO:aswfdocker.builder:Would run: 'docker buildx bake -f {bake_path} --progress auto'", - ) - self._i += 1 + # We expect 2 steps: + # docker buildx to build and upload (2x for each openexr package) + self.assertEqual(len(cmds), 2) self.assertEqual( cmds[self._i], f"INFO:aswfdocker.builder:Would run: 'docker buildx bake -f {bake_path} " + "--set=*.output=type=cacheonly --set=*.target.target=ci-conan-package-builder " - + "--progress auto ci-package-openexr-2019'", + + "--progress auto ci-package-openexr-2025'", ) self._i += 1 self.assertEqual( cmds[self._i], f"INFO:aswfdocker.builder:Would run: 'docker buildx bake -f {bake_path} " + "--set=*.output=type=cacheonly --set=*.target.target=ci-conan-package-builder " - + "--progress auto ci-package-openexr-2020'", + + "--progress auto ci-package-openexr-2026'", ) self._i += 1 self.assertEqual(result.exit_code, 0) diff --git a/python/aswfdocker/tests/test_index.py b/python/aswfdocker/tests/test_index.py index 269c0c51..698418e1 100644 --- a/python/aswfdocker/tests/test_index.py +++ b/python/aswfdocker/tests/test_index.py @@ -21,10 +21,10 @@ def test_iter_images(self): def test_get_versions(self): images = list(self.index.iter_images(constants.ImageType.IMAGE)) self.assertGreater(len(images), 1) - self.assertEqual(images[0], "common") + self.assertEqual(images[0], "baseos-gl-conan") versions = list(self.index.iter_versions(constants.ImageType.IMAGE, images[0])) self.assertGreaterEqual(len(versions), 1) - self.assertTrue(versions[0].startswith("1-clang")) + self.assertTrue(versions[0].startswith("4")) def test_version_info(self): vi = self.index.version_info("2019") diff --git a/python/aswfdocker/tests/test_utils.py b/python/aswfdocker/tests/test_utils.py index 9583c87c..5f928bac 100644 --- a/python/aswfdocker/tests/test_utils.py +++ b/python/aswfdocker/tests/test_utils.py @@ -168,10 +168,10 @@ def test_cli_images(self): self.assertEqual(result.exit_code, 0) imgs = result.output.split("\n") self.assertGreater(len(imgs), 15) - common_version = list( - index.Index().iter_versions(constants.ImageType.IMAGE, "common") + baseos_gl_conan_version = list( + index.Index().iter_versions(constants.ImageType.IMAGE, "baseos-gl-conan") )[0] self.assertEqual( imgs[0], - f"common/ci-common:{common_version}", + f"baseos-gl-conan/ci-baseos-gl-conan:{baseos_gl_conan_version}", ) diff --git a/scripts/common/install_conanpackages.sh b/scripts/common/install_conanpackages.sh index 71f20bb1..dbcd0df4 100755 --- a/scripts/common/install_conanpackages.sh +++ b/scripts/common/install_conanpackages.sh @@ -30,6 +30,8 @@ if (( $VFXYEAR < 2023 )); then else # Escape / or & in install dir for use in regexp ESCAPED_PATH=$(printf '%s' "$1" | sed 's/[\/&]/\\&/g') + # In case we don't actually install anything + mkdir -p $1/full_deploy/host # Extract references from conanfile.txt and install them by reference for CONANREF in $(awk 'NR == 1, /\[requires\]/ { next } /^[^#]/ { print }' conanfile.txt) do diff --git a/scripts/vfx/build_openvdb.sh b/scripts/vfx/build_openvdb.sh index 825220df..f51ce8e4 100755 --- a/scripts/vfx/build_openvdb.sh +++ b/scripts/vfx/build_openvdb.sh @@ -48,10 +48,10 @@ cmake \ -DGLFW3_LOCATION="${ASWF_INSTALL_PREFIX}" \ -DUSE_GLFW3=ON \ -DGLFW3_USE_STATIC_LIBS=ON \ - -DOPENVDB_BUILD_UNITTESTS=OFF \ + -DOPENVDB_BUILD_UNITTESTS=ON \ -DOPENVDB_BUILD_VDB_LOD=ON \ -DOPENVDB_BUILD_VDB_RENDER=ON \ - -DOPENVDB_BUILD_VDB_VIEW=OFF \ + -DOPENVDB_BUILD_VDB_VIEW=ON \ .. make -j$(nproc)