From ee6c544a9f7c3631ad805870955d20ae05b0833d Mon Sep 17 00:00:00 2001 From: Jean-Francois Panisset Date: Fri, 25 Apr 2025 15:56:46 -0700 Subject: [PATCH] Conan related fixes - CONAN_USER_HOME in Conan 1 replaced by CONAN_HOME in Conan 2, replace with ASWF_CONAN_HOME to avoid ambiguity - fix up Python sysconfig directories when installing for outside Conan use - tell PySide to look for libpython in lib64 Signed-off-by: Jean-Francois Panisset --- CONTRIBUTING.md | 11 ++++++---- ci-base/Dockerfile | 3 ++- ci-baseqt/Dockerfile | 3 ++- ci-common/Dockerfile | 5 +++-- ci-common/image.yaml | 2 +- ci-materialx/Dockerfile | 3 ++- ci-ocio/Dockerfile | 3 ++- ci-oiio/Dockerfile | 3 ++- ci-opencue/Dockerfile | 3 ++- ci-openexr/Dockerfile | 3 ++- ci-openrv/Dockerfile | 3 ++- ci-openvdb/Dockerfile | 3 ++- ci-osl/Dockerfile | 3 ++- ci-otio/Dockerfile | 3 ++- ci-usd/Dockerfile | 3 ++- ci-vfxall/Dockerfile | 3 ++- packages/common/Dockerfile | 20 +++++++++---------- packages/conan/recipes/pyside/conandata.yml | 2 ++ .../pyside/patches/libpython_in_lib64.diff | 11 ++++++++++ python/aswfdocker/builder.py | 14 ++++++------- python/aswfdocker/constants.py | 2 +- .../data/ci-image-dockerfile.jinja2 | 3 ++- scripts/common/install_conanpackages.sh | 8 ++++++-- 23 files changed, 76 insertions(+), 41 deletions(-) create mode 100644 packages/conan/recipes/pyside/patches/libpython_in_lib64.diff diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 160f104d..f777b975 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -370,14 +370,17 @@ When building a Conan package, `aswfdocker build --use-conan` uses [common/packa cache of local Conan package builds (similarly for the [ccache](https://ccache.dev/) persistent cache): ``` -RUN --mount=type=cache,target=${CONAN_USER_HOME}/d \ +RUN --mount=type=cache,target=${ASWF_CONAN_HOME}/d \ --mount=type=cache,target=${CCACHE_DIR} \ - --mount=type=bind,rw,target=${CONAN_USER_HOME}/.conan2,source=packages/conan/settings \ - --mount=type=bind,rw,target=${CONAN_USER_HOME}/recipes,source=packages/conan/recipes \ + --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 \ ... ``` +By default the Conan cache lives in the `$CONAN_HOME/p` directory (where settings and profiles also live) but we relocate it to `${ASWF_CONAN_HOME}/d` by setting `core.cache:storage_path = /opt/conan_home/d` in `global.conf` +as per [Storage Configurations](https://docs.conan.io/2/reference/config_files/global_conf.html#storage-configurations). + During development it can be convenient to peek into the results of a Conan package build. You can use: ``` @@ -388,7 +391,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 ${CONAN_USER_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} ${CONAN_USER_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_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" Usage count: 159 Last used: 14 minutes ago Type: exec.cachemount diff --git a/ci-base/Dockerfile b/ci-base/Dockerfile index cbecf6fa..a48e1a4e 100644 --- a/ci-base/Dockerfile +++ b/ci-base/Dockerfile @@ -147,6 +147,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} @@ -229,7 +230,7 @@ boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF -ENV CONAN_HOME=${CONAN_USER_HOME}/.conan2 +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ diff --git a/ci-baseqt/Dockerfile b/ci-baseqt/Dockerfile index 2a9dd04a..45a67a31 100644 --- a/ci-baseqt/Dockerfile +++ b/ci-baseqt/Dockerfile @@ -162,6 +162,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} @@ -254,7 +255,7 @@ qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF -ENV CONAN_HOME=${CONAN_USER_HOME}/.conan2 +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ diff --git a/ci-common/Dockerfile b/ci-common/Dockerfile index 2494fa28..1b2af40f 100644 --- a/ci-common/Dockerfile +++ b/ci-common/Dockerfile @@ -84,6 +84,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_DTS_PREFIX=$ASWF_DTS_PREFIX @@ -160,7 +161,7 @@ RUN --mount=type=cache,sharing=private,target=/tmp/downloads \ /tmp/install_conan.sh COPY ../packages/conan/settings /opt/conan_home/.conan -ENV CONAN_USER_HOME=/opt/conan_home +ENV ASWF_CONAN_HOME=/opt/conan_home COPY scripts/common/install_conanpackages.sh /tmp/ @@ -179,7 +180,7 @@ cmake/${ASWF_CMAKE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ninja/${ASWF_NINJA_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF -ENV CONAN_HOME=${CONAN_USER_HOME}/.conan2 +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ diff --git a/ci-common/image.yaml b/ci-common/image.yaml index dcd83e35..3255e2d5 100644 --- a/ci-common/image.yaml +++ b/ci-common/image.yaml @@ -75,4 +75,4 @@ docker_commands: | /tmp/install_conan.sh COPY ../packages/conan/settings /opt/conan_home/.conan - ENV CONAN_USER_HOME=/opt/conan_home + ENV ASWF_CONAN_HOME=/opt/conan_home diff --git a/ci-materialx/Dockerfile b/ci-materialx/Dockerfile index e87e4a85..86702300 100644 --- a/ci-materialx/Dockerfile +++ b/ci-materialx/Dockerfile @@ -187,6 +187,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} @@ -295,7 +296,7 @@ ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF -ENV CONAN_HOME=${CONAN_USER_HOME}/.conan2 +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ diff --git a/ci-ocio/Dockerfile b/ci-ocio/Dockerfile index 2c634fb2..727b8430 100644 --- a/ci-ocio/Dockerfile +++ b/ci-ocio/Dockerfile @@ -157,6 +157,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} @@ -245,7 +246,7 @@ lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF -ENV CONAN_HOME=${CONAN_USER_HOME}/.conan2 +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ diff --git a/ci-oiio/Dockerfile b/ci-oiio/Dockerfile index 8df84dc6..65dc20f0 100644 --- a/ci-oiio/Dockerfile +++ b/ci-oiio/Dockerfile @@ -188,6 +188,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} @@ -297,7 +298,7 @@ ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF -ENV CONAN_HOME=${CONAN_USER_HOME}/.conan2 +ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 RUN --mount=type=cache,target=/opt/conan_home/d \ diff --git a/ci-opencue/Dockerfile b/ci-opencue/Dockerfile index e916a826..1452270f 100644 --- a/ci-opencue/Dockerfile +++ b/ci-opencue/Dockerfile @@ -64,6 +64,7 @@ ENV ASWF_INSTALL_PREFIX=/usr/local ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} + ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} @@ -96,7 +97,7 @@ COPY <