From 76963c786f1c3e1739c867b309a1d48750958c5c Mon Sep 17 00:00:00 2001 From: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> Date: Wed, 13 May 2026 23:02:52 +0000 Subject: [PATCH 1/5] feat: add plugin sync for nuke 17 Signed-off-by: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> --- .../recipe/zzz-blender-plugins-deactivate.sh | 4 +- conda_recipes/maya-2026/recipe/build.sh | 4 +- .../recipe/zzz-maya-plugin-sync-activate.sh | 4 +- conda_recipes/nuke-17.0/README.md | 108 +++++++++++++++++ conda_recipes/nuke-17.0/TODO.txt | 111 ++++++++++++++++++ conda_recipes/nuke-17.0/deadline-cloud.yaml | 6 + conda_recipes/nuke-17.0/recipe/build.sh | 100 ++++++++++++++++ conda_recipes/nuke-17.0/recipe/recipe.yaml | 27 +++++ .../zzz-nuke-simple-plugins-activate.sh | 61 ++++++++++ .../zzz-nuke-simple-plugins-deactivate.sh | 21 ++++ 10 files changed, 440 insertions(+), 6 deletions(-) create mode 100644 conda_recipes/nuke-17.0/README.md create mode 100644 conda_recipes/nuke-17.0/TODO.txt create mode 100644 conda_recipes/nuke-17.0/deadline-cloud.yaml create mode 100644 conda_recipes/nuke-17.0/recipe/build.sh create mode 100644 conda_recipes/nuke-17.0/recipe/recipe.yaml create mode 100644 conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh create mode 100644 conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-deactivate.sh diff --git a/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh b/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh index 1597717e..19a944d7 100755 --- a/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh +++ b/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh @@ -8,13 +8,13 @@ if [ -n "${_SP_PLUGIN_DIR:-}" ] && [ -d "$_SP_PLUGIN_DIR" ]; then fi # Clean up the generic plugins directory too -_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" +_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/.deadline-plugins/generic" if [ -d "$_SP_GENERIC_DIR" ]; then rm -rf "$_SP_GENERIC_DIR" fi # Remove the parent if empty -_SP_PARENT="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins" +_SP_PARENT="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/.deadline-plugins" rmdir "$_SP_PARENT" 2>/dev/null || true unset BLENDER_USER_SCRIPTS diff --git a/conda_recipes/maya-2026/recipe/build.sh b/conda_recipes/maya-2026/recipe/build.sh index 29acb1e8..57ceadb5 100644 --- a/conda_recipes/maya-2026/recipe/build.sh +++ b/conda_recipes/maya-2026/recipe/build.sh @@ -111,8 +111,8 @@ EOF # See zzz-maya-plugin-sync-activate.sh for the full implementation. mkdir -p "$PREFIX/etc/conda/activate.d" cp $RECIPE_DIR/zzz-maya-plugin-sync-activate.sh \ - $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-plugin-sync.sh + $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-$PKG_VERSION-plugin-sync.sh mkdir -p "$PREFIX/etc/conda/deactivate.d" cp $RECIPE_DIR/zzz-maya-plugin-sync-deactivate.sh \ - $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-plugin-sync.sh + $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-$PKG_VERSION-plugin-sync.sh diff --git a/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh b/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh index 1d72d427..f7fc31fd 100644 --- a/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh +++ b/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh @@ -25,7 +25,7 @@ if [ "$(uname -s)" = "MINGW"* ] || [ "$(uname -s)" = "MSYS"* ] || [ -n "${OS:-}" fi # Determine plugin download directory -_SP_PLUGIN_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/.maya-plugins" +_SP_PLUGIN_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins" mkdir -p "$_SP_PLUGIN_DIR" # Download generic plugins to the session working directory @@ -33,7 +33,7 @@ _SP_GENERIC_SRC="s3://${DEADLINE_JA_S3_BUCKET}/${_SP_PREFIX}plugins/generic/" if [ -n "${OPENJD_SESSION_WORKING_DIR:-}" ]; then if aws s3 ls "$_SP_GENERIC_SRC" >/dev/null 2>&1; then echo "Plugin Sync: Downloading plugins from $_SP_GENERIC_SRC" - aws s3 cp "$_SP_GENERIC_SRC" "$OPENJD_SESSION_WORKING_DIR/" --recursive --quiet 2>/dev/null || true + aws s3 cp "$_SP_GENERIC_SRC" "$_SP_PLUGIN_DIR/generic/" --recursive --quiet 2>/dev/null || true fi fi diff --git a/conda_recipes/nuke-17.0/README.md b/conda_recipes/nuke-17.0/README.md new file mode 100644 index 00000000..24e1f79a --- /dev/null +++ b/conda_recipes/nuke-17.0/README.md @@ -0,0 +1,108 @@ +# Nuke 16.0 Conda Recipe for AWS Deadline Cloud + +## Overview + +This directory contains a conda build recipe for Nuke 17.0.1, specifically configured for use with AWS Deadline Cloud. With this package you can run Nuke compositing and processing jobs on Deadline Cloud service-managed fleets. + +## Package Information + +- **Application**: Nuke 17.0.1 +- **Supported Platforms**: linux-64 +- **Source**: Foundry website downloads +- **License**: Commercial +- **Build Tool**: rattler-build + +## Prerequisites + +Before building this package, ensure you have: + +1. **AWS Deadline Cloud infrastructure** set up with: + - A farm configured for package building + - A queue. If you followed the [setup instructions](../README.md#infrastructure-setup-prerequisites) it will be named "Package Build Queue" (or specify the queue name with `-q`) + - Linux-64 fleet for building linux packages + +2. **Deadline Cloud CLI** installed on your workstation + +3. **Source archive** (see [Archive File Instructions](#archive-file-instructions) below) + +4. **Foundry account** for downloading Nuke installer + +## Archive File Instructions + +### Download from Foundry (Required) +1. Download the `Nuke17.0v1-linux-x86_64.tgz` from the Foundry website. +2. You will need a Foundry account to access the Nuke downloads. +3. Place the downloaded file in the `conda_recipes/archive_files` directory. +4. Conda uses the a checksum to verify the integrity of the source file. The SHA256 hash should match: `61b570ea6d4f8a7e2f0647952c8e039fc02df6f6649e9de1d2ee0543398ed92f`. + In bash, you can compute the checksum by running this command `sha256sum Nuke16.0v1-linux-x86_64.tgz`. + +## Plugins + +### OpenFX Plugins +To use OpenFX Plugins with Nuke, place the `.bundle` files into a known directory in $PREFIX. Set the OFX_PLUGIN_PATH environment variable to that directory and install any required dependencies. + +#### Example OFX Plugin +- [Nuke - De:Noise](../nuke-denoise/) + +## Adapting to Other Versions + +### Version Update Checklist + +To adapt this recipe for a different Nuke version, e.g. 15: + +1. **Update Version Information** + ``` + # In recipe/recipe.yaml + context: + version_partial: "15.0" + version_minor: "1" + + # In deadline-cloud.yaml + sourceArchiveFilename: Nuke15.0v1-linux-x86_64.tgz + ``` + +2. **Update Source Archives** + - Download new version archives from Foundry + - Update SHA256 hashes in `recipe.yaml` + - Update source filename in `deadline-cloud.yaml` + +3. **Check Dependencies** + - Review and update system dependency versions + - Test compatibility with existing plugins + - Update minimum system requirements + +4. **Update Build Scripts** + - Check for changes in installation directory structure + - Update file copy operations in build scripts + - Verify environment variable paths in activation scripts + +### Common Version Migration Issues + +- **Path Changes**: Installation directories may change between versions +- **Dependency Updates**: New versions may require different system libraries +- **Plugin API Changes**: Plugin interfaces may be incompatible between major versions +- **License Changes**: Licensing requirements may change + +## Recipe Structure + +``` +nuke-17.0/ +├── README.md # This file +├── deadline-cloud.yaml # Deadline Cloud configuration +└── recipe/ + ├── recipe.yaml # Conda package metadata + ├── build.sh # Linux build script + ├── zzz-nuke-simple-plugins-activate.sh # activate script for Plugin Sync feature + └── zzz-nuke-simple-plugins-deactivate.sh # deactivate script for Plugin Sync feature +``` + +## Resources + +- **Nuke Documentation**: https://learn.foundry.com/nuke/ +- **AWS Deadline Cloud Developer Guide**: https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/ +- **Conda Build Documentation**: https://docs.conda.io/projects/conda-build/ +- **Plugin Development**: https://learn.foundry.com/nuke/developers/ + +--- + +**Note**: This recipe is specifically configured for Nuke 17.0.1 on Linux x86_64 platforms. The build process automatically handles EULA acceptance and system dependency installation. diff --git a/conda_recipes/nuke-17.0/TODO.txt b/conda_recipes/nuke-17.0/TODO.txt new file mode 100644 index 00000000..09fa3ec9 --- /dev/null +++ b/conda_recipes/nuke-17.0/TODO.txt @@ -0,0 +1,111 @@ +Here's the full tidy-up list for making conda_recipes/nuke-17.1 ready for public publishing: + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + Files That Should Not Be Committed + + ┌───────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ + │ File │ Issue │ + ├───────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ recipe/repodata.json │ Full channel index containing all internal packages (blender, houdini, maya, cinema4d, vredcore, etc.). This is a build artifact, not a recipe source file. The nuke-16.0 recipe doesn't have this. Remove from git. │ + ├───────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ + │ recipe/queue_environment.yaml │ Contains an internal AWS account ID (529920871242) and a specific internal S3 bucket name (deadline-vfscmf-ja-529920871242). This is environment-specific config, not part of the recipe. Remove from git. │ + └───────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + Version Mismatches (README.md) + + The README.md is byte-for-byte identical to the nuke-16.0 README. Every reference still says "Nuke 16.0": + + 1. Title: "# Nuke 16.0 Conda Recipe for AWS Deadline Cloud" → should be 17.0 + 2. Overview: "recipe for Nuke 16.0.1" → 17.0.1 + 3. Package Information: "Nuke 16.0.1" → 17.0.1 + 4. Archive filename: Nuke16.0v1-linux-x86_64.tgz → Nuke17.0v1-linux-x86_64.tgz + 5. SHA256 hash: still shows the 16.0 hash (61b570ea...) → should be c76ec0cd3f881f41553878240618a983e936e543a5fd19ceea6c5c6765cc88a3 + 6. Recipe structure tree: shows nuke-16.0/ → should be nuke-17.1/ + 7. Footer note: "configured for Nuke 16.0.1" → 17.0.1 + 8. The "Adapting to Other Versions" section references meta.yaml which doesn't exist — the file is recipe.yaml + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + Version Mismatches (deadline-cloud.yaml) + + The file is identical to nuke-16.0: + + - sourceArchiveFilename: Nuke16.0v1-linux-x86_64.tgz → should be Nuke17.0v1-linux-x86_64.tgz + - sourceDownloadInstructions references "Nuke16.0v1-linux-x86_64" → should be 17.0v1 + - Missing trailing newline + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + Directory Naming Confusion + + - The directory is named nuke-17.1 but recipe.yaml sets version_partial: "17.0" and version_minor: "1", producing package version 17.0.1. The directory name implies version 17.1.x. Consider renaming to nuke-17.0 for consistency with the actual package version. + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + build.sh Issues + + 1. Blender reference in comment (line 89-92): Comment says "These run AFTER the main blender env vars are set (999- prefix ensures lexicographic ordering)." and "See 999-blender-simple-plugins-activate.sh for the full implementation." — should reference Nuke, not Blender. + 2. yumdownloader vs dnf download: The nuke-16.0 recipe uses dnf download --resolve -y, but nuke-17.1 uses yumdownloader --resolve --destdir=.... If the build fleet uses AL2023 (which has dnf), this may be intentional, but should be verified for consistency. + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + zzz-nuke-simple-plugins-activate.sh Issues + + 1. Debug print statement (line 28): echo "PLUGGY FUGGY WUGGY DCC SRC: $_SP_DCC_SRC" — must be removed before publishing. + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + zzz-nuke-simple-plugins-deactivate.sh Issues + + 1. Wrong DCC variable (line 20): unset BLENDER_USER_SCRIPTS — this is a Blender variable, not a Nuke variable. Should be removed or replaced with the correct Nuke variable. + 2. Missing trailing newline at end of file. + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + recipe.yaml — Source Path Syntax + + - nuke-16.0 uses: url: file://archive_files/Nuke{{ version_partial }}v{{ version_minor }}-linux-x86_64.tgz + - nuke-17.1 uses: path: ../../archive_files/Nuke${{ version_partial }}v${{ version_minor }}-linux-x86_64.tgz + + The template syntax changed from {{ }} to ${{ }} (rattler-build Jinja vs conda-build Jinja). The path: vs url: change may be intentional for rattler-build, but verify this is the correct approach for the build system being used. + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + Commit Hygiene + + - All 3 commits have the message "wip" — these should be squashed into a single well-formed commit with a proper conventional commit message before merging. + + ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── + + Summary of Priority Actions + + ┌─────────────┬────────────────────────────────────────────────────────────────────────────────────────┐ + │ Priority │ Action │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🔴 Critical │ Remove repodata.json (leaks internal package inventory) │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🔴 Critical │ Remove queue_environment.yaml (leaks internal AWS account ID) │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🔴 Critical │ Remove debug print "PLUGGY FUGGY WUGGY" │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🔴 Critical │ Remove unset BLENDER_USER_SCRIPTS from deactivate script │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟠 High │ Update README.md with correct version (17.0.1) throughout │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟠 High │ Update deadline-cloud.yaml with correct Nuke 17.0 filename │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟠 High │ Fix Blender references in build.sh comments │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟡 Medium │ Resolve directory name (nuke-17.1) vs package version (17.0.1) mismatch │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟡 Medium │ Add trailing newlines to deadline-cloud.yaml and zzz-nuke-simple-plugins-deactivate.sh │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟡 Medium │ Verify yumdownloader vs dnf download is intentional │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟢 Low │ Squash "wip" commits into a proper commit message │ + ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ + │ 🟢 Low │ Update README "Adapting to Other Versions" to reference recipe.yaml not meta.yaml │ + └─────────────┴────────────────────────────────────────────────────────────────────────────────────────┘ diff --git a/conda_recipes/nuke-17.0/deadline-cloud.yaml b/conda_recipes/nuke-17.0/deadline-cloud.yaml new file mode 100644 index 00000000..d5ce6d4f --- /dev/null +++ b/conda_recipes/nuke-17.0/deadline-cloud.yaml @@ -0,0 +1,6 @@ +condaPlatforms: + - platform: linux-64 + defaultSubmit: true + sourceArchiveFilename: Nuke17.0v1-linux-x86_64.tgz + sourceDownloadInstructions: 'Download the Nuke17.0v1-linux-x86_64 full download file from the Foundry. You will need a Foundry account to access the Nuke downloads.' + buildTool: rattler-build \ No newline at end of file diff --git a/conda_recipes/nuke-17.0/recipe/build.sh b/conda_recipes/nuke-17.0/recipe/build.sh new file mode 100644 index 00000000..df40f31f --- /dev/null +++ b/conda_recipes/nuke-17.0/recipe/build.sh @@ -0,0 +1,100 @@ +#!/bin/sh +set -xeuo pipefail + +mkdir -p $PREFIX/opt +cd $PREFIX/opt + +# Install Nuke into $PREFIX/opt +INSTALLER=$SRC_DIR/installer/*.run +env -u SRC_DIR -u PREFIX $INSTALLER --prefix $PREFIX/opt --accept-foundry-eula + +NUKE_DIR=$PREFIX/opt/Nuke* +NUKE_BIN=$(basename $NUKE_DIR/Nuke*) +NUKE_VERSION=${NUKE_BIN#Nuke} + +# Remove the documentation, it's not needed on the farm +rm -r $NUKE_DIR/Documentation + +# Create symlinks +mkdir -p $PREFIX/bin +ln -r -s $NUKE_DIR/$NUKE_BIN $PREFIX/bin/$NUKE_BIN +ln -r -s $NUKE_DIR/$NUKE_BIN $PREFIX/bin/nuke + +# Install Nuke dependencies from local package manager +mkdir -p $SRC_DIR/download +cd $SRC_DIR/download +yumdownloader --resolve --destdir=$SRC_DIR/download alsa-lib libglvnd-opengl +for rpm_file in $(realpath $SRC_DIR/download/*.rpm); do + rpm2cpio "$rpm_file" | cpio -idm +done + +# Copy .so's to Nuke installation +for so_file in $(find . -iname "*.so.*"); do + cp $so_file $NUKE_DIR/. +done + +# Script to set environment variables during activation +mkdir -p $PREFIX/etc/conda/activate.d +cat < $PREFIX/etc/conda/activate.d/nuke-$NUKE_VERSION-vars.sh +internal_package_add_to_search_path () { + # Add a path to a new or existing environment variable. + # For example, we use this to add a plugin path to the NUKE_PATH + # Usage: internal_package_add_to_search_path VAR_NAME /seach/path/value + eval "CURRENT_VALUE=\\\${\$1:-}" + if [ "\$CURRENT_VALUE" = "" ]; then + eval "export \"\$1=\\\$2\"" + else + NEW_VALUE="\$CURRENT_VALUE:\$2" + eval "export \"\$1=\\\$NEW_VALUE\"" + fi +} + +export "NUKE_LOCATION=\$CONDA_PREFIX/opt/$(basename $NUKE_DIR)" +export "NUKE_VERSION=$NUKE_VERSION" +export "NUKE_BINARY_PATH=\$NUKE_LOCATION/bin" +export "NUKE_INCLUDE_PATH=\$NUKE_LOCATION/include" +export "NUKE_LIBRARY_PATH=\$NUKE_LOCATION/lib" +internal_package_add_to_search_path NUKE_PATH "\$NUKE_LOCATION/plugins" + +unset -f internal_package_add_to_search_path +EOF + +mkdir -p $PREFIX/etc/conda/deactivate.d +cat < $PREFIX/etc/conda/deactivate.d/nuke-$NUKE_VERSION-vars.sh +internal_package_remove_from_search_path () { + # Removes the given path from the given environment variable. + # For example, we use this to clean up the NUKE_PATH we changed in the activate script. + # Usage: internal_package_remove_from_search_path VAR_NAME /seach/path/value + eval "CURRENT_VALUE=\\\$\$1" + if [ "\$CURRENT_VALUE" = "\$2" ]; then + eval "unset \$1" + else + NEW_VALUE="\$(echo ":\$CURRENT_VALUE:" | sed -e "s|:\$2:|:|")" + NEW_VALUE="\${NEW_VALUE%:}" + NEW_VALUE="\${NEW_VALUE#:}" + eval "export \"\$1=\\\$NEW_VALUE\"" + fi +} + +internal_package_remove_from_search_path NUKE_PATH "\$NUKE_LOCATION/plugins" +unset NUKE_LIBRARY_PATH +unset NUKE_INCLUDE_PATH +unset NUKE_BINARY_PATH +unset NUKE_VERSION +unset NUKE_LOCATION + +unset -f internal_package_remove_from_search_path +EOF + +# --- Simple Plugin Delivery (Option D: per-DCC recipe activate script) --- +# Copies the plugin delivery scripts into the conda activate.d/deactivate.d +# directories. These run AFTER the main nuke env vars are set (zzz- prefix +# ensures lexicographic ordering). + +mkdir -p $PREFIX/etc/conda/activate.d +cp $RECIPE_DIR/zzz-nuke-simple-plugins-activate.sh \ + $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-$PKG_VERSION-simple-plugins.sh + +mkdir -p $PREFIX/etc/conda/deactivate.d +cp $RECIPE_DIR/zzz-nuke-simple-plugins-deactivate.sh \ + $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-$PKG_VERSION-simple-plugins.sh diff --git a/conda_recipes/nuke-17.0/recipe/recipe.yaml b/conda_recipes/nuke-17.0/recipe/recipe.yaml new file mode 100644 index 00000000..fcec3738 --- /dev/null +++ b/conda_recipes/nuke-17.0/recipe/recipe.yaml @@ -0,0 +1,27 @@ +context: + version_partial: "17.0" + version_minor: "1" + +package: + name: nuke + version: ${{ version_partial + "." + version_minor }} + +source: + path: ../../archive_files/Nuke${{ version_partial }}v${{ version_minor }}-linux-x86_64.tgz + sha256: c76ec0cd3f881f41553878240618a983e936e543a5fd19ceea6c5c6765cc88a3 + target_directory: installer + +build: + number: 0 + dynamic_linking: + binary_relocation: False + missing_dso_allowlist: + - "*" + prefix_detection: + ignore_binary_files: True + # The binary is built to be relocatable, so can ignore the warnings about DSOs. + +about: + homepage: https://www.foundry.com/products/nuke-family/nuke + license: LicenseRef-FoundryEULA + summary: Nuke is the powerful node-based compositing tool at the heart of the Nuke family. diff --git a/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh b/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh new file mode 100644 index 00000000..08b1809e --- /dev/null +++ b/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh @@ -0,0 +1,61 @@ +#!/bin/bash +# Simple Plugin Delivery for Nuke +# Downloads plugin files from S3 and configures NUKE_PATH. +# Adds the plugin directory (for .gizmo files) and each subdirectory +# (for folder-based plugins with init.py) to NUKE_PATH. +# +# S3 convention: s3:////plugins//nuke// +# +# Required environment variables (set by the worker agent): +# DEADLINE_JA_S3_BUCKET - Job attachment S3 bucket name +# DEADLINE_JA_ROOT_PREFIX - Job attachment root prefix in the bucket +# OPENJD_SESSION_WORKING_DIR - Session working directory path + +if [ -z "${DEADLINE_JA_S3_BUCKET:-}" ] || [ -z "${NUKE_VERSION:-}" ]; then + echo "Plugin Sync: Skipping — DEADLINE_JA_S3_BUCKET or NUKE_VERSION not set." + return 0 2>/dev/null || exit 0 +fi + +_SP_PREFIX="${DEADLINE_JA_ROOT_PREFIX:+${DEADLINE_JA_ROOT_PREFIX}/}" +_SP_OS="linux" +if [[ "$(uname -s)" == MINGW* ]] || [[ "$(uname -s)" == MSYS* ]] || [ -n "${OS:-}" ]; then + _SP_OS="windows" +fi + +_SP_PLUGIN_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/nuke" +mkdir -p "$_SP_PLUGIN_DIR" + +# Download generic plugins to the session working directory +_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" +_SP_GENERIC_SRC="s3://${DEADLINE_JA_S3_BUCKET}/${_SP_PREFIX}plugins/generic/" +if aws s3 ls "$_SP_GENERIC_SRC" >/dev/null 2>&1; then + mkdir -p "$_SP_GENERIC_DIR" + echo "Plugin Sync: Downloading generic plugins from $_SP_GENERIC_SRC" >&2 + aws s3 cp "$_SP_GENERIC_SRC" "$_SP_GENERIC_DIR/" --recursive --quiet 2>/dev/null || true +fi + +# Download Nuke-specific plugins +_SP_DCC_SRC="s3://${DEADLINE_JA_S3_BUCKET}/${_SP_PREFIX}plugins/${_SP_OS}/nuke/${NUKE_VERSION}/" +if aws s3 ls "$_SP_DCC_SRC" >/dev/null 2>&1; then + echo "Plugin Sync: Downloading Nuke plugins from $_SP_DCC_SRC" + aws s3 cp "$_SP_DCC_SRC" "$_SP_PLUGIN_DIR/" --recursive --quiet 2>/dev/null || true +fi + +# Build NUKE_PATH: parent dir (for .gizmo files) + each subdir (for folder plugins) +if [ -d "$_SP_PLUGIN_DIR" ] && [ "$(ls -A "$_SP_PLUGIN_DIR" 2>/dev/null)" ]; then + _SP_SEP=":" + [[ "$_SP_OS" == "windows" ]] && _SP_SEP=";" + + _SP_PATHS="$_SP_PLUGIN_DIR" + for _d in "$_SP_PLUGIN_DIR"/*/; do + [ -d "$_d" ] && _SP_PATHS="${_SP_PATHS}${_SP_SEP}${_d%/}" + done + + export NUKE_PATH="${NUKE_PATH:+${NUKE_PATH}${_SP_SEP}}${_SP_PATHS}" + export _SP_PLUGIN_DIR + echo "Plugin Sync: NUKE_PATH=$NUKE_PATH" +else + echo "Plugin Sync: No Nuke plugins found, skipping." +fi + +unset _SP_PREFIX _SP_OS _SP_DCC_SRC _SP_SEP _SP_PATHS _d diff --git a/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-deactivate.sh b/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-deactivate.sh new file mode 100644 index 00000000..b2426fbe --- /dev/null +++ b/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-deactivate.sh @@ -0,0 +1,21 @@ +#!/bin/bash +# Simple Plugin Delivery cleanup for Nuke +# Removes downloaded plugin files and unsets env vars. + +if [ -n "${_SP_PLUGIN_DIR:-}" ] && [ -d "$_SP_PLUGIN_DIR" ]; then + echo "Plugin Sync: Cleaning up $_SP_PLUGIN_DIR" + rm -rf "$_SP_PLUGIN_DIR" +fi + +# Clean up the generic plugins directory too +_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" +if [ -d "$_SP_GENERIC_DIR" ]; then + rm -rf "$_SP_GENERIC_DIR" +fi + +# Remove the parent if empty +_SP_PARENT="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins" +rmdir "$_SP_PARENT" 2>/dev/null || true + +unset BLENDER_USER_SCRIPTS +unset _SP_PLUGIN_DIR _SP_GENERIC_DIR _SP_PARENT \ No newline at end of file From 72945c754f6f0e051091c91ee60d486946ec6d13 Mon Sep 17 00:00:00 2001 From: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> Date: Wed, 13 May 2026 23:28:38 +0000 Subject: [PATCH 2/5] fixes Signed-off-by: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> --- .../recipe/zzz-blender-plugins-deactivate.sh | 4 +- .../recipe/zzz-maya-plugin-sync-activate.sh | 17 ++- conda_recipes/nuke-17.0/README.md | 6 +- conda_recipes/nuke-17.0/TODO.txt | 111 ------------------ .../zzz-nuke-simple-plugins-activate.sh | 2 +- 5 files changed, 14 insertions(+), 126 deletions(-) delete mode 100644 conda_recipes/nuke-17.0/TODO.txt diff --git a/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh b/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh index 19a944d7..1597717e 100755 --- a/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh +++ b/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh @@ -8,13 +8,13 @@ if [ -n "${_SP_PLUGIN_DIR:-}" ] && [ -d "$_SP_PLUGIN_DIR" ]; then fi # Clean up the generic plugins directory too -_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/.deadline-plugins/generic" +_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" if [ -d "$_SP_GENERIC_DIR" ]; then rm -rf "$_SP_GENERIC_DIR" fi # Remove the parent if empty -_SP_PARENT="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/.deadline-plugins" +_SP_PARENT="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins" rmdir "$_SP_PARENT" 2>/dev/null || true unset BLENDER_USER_SCRIPTS diff --git a/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh b/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh index f7fc31fd..367b7cc4 100644 --- a/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh +++ b/conda_recipes/maya-2026/recipe/zzz-maya-plugin-sync-activate.sh @@ -25,32 +25,31 @@ if [ "$(uname -s)" = "MINGW"* ] || [ "$(uname -s)" = "MSYS"* ] || [ -n "${OS:-}" fi # Determine plugin download directory -_SP_PLUGIN_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins" +_SP_PLUGIN_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/maya" mkdir -p "$_SP_PLUGIN_DIR" # Download generic plugins to the session working directory +_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" _SP_GENERIC_SRC="s3://${DEADLINE_JA_S3_BUCKET}/${_SP_PREFIX}plugins/generic/" if [ -n "${OPENJD_SESSION_WORKING_DIR:-}" ]; then if aws s3 ls "$_SP_GENERIC_SRC" >/dev/null 2>&1; then echo "Plugin Sync: Downloading plugins from $_SP_GENERIC_SRC" - aws s3 cp "$_SP_GENERIC_SRC" "$_SP_PLUGIN_DIR/generic/" --recursive --quiet 2>/dev/null || true + aws s3 cp "$_SP_GENERIC_SRC" "$_SP_GENERIC_DIR" --recursive --quiet 2>/dev/null || true fi fi # Download Maya-specific plugins _SP_DCC_SRC="s3://${DEADLINE_JA_S3_BUCKET}/${_SP_PREFIX}plugins/${_SP_OS}/maya/${MAYA_VERSION}/" -_SP_MAYA_DIR="$_SP_PLUGIN_DIR/maya" -mkdir -p "$_SP_MAYA_DIR" if aws s3 ls "$_SP_DCC_SRC" >/dev/null 2>&1; then echo "Plugin Sync: Downloading Maya plugins from $_SP_DCC_SRC" - aws s3 cp "$_SP_DCC_SRC" "$_SP_MAYA_DIR/" --recursive --quiet 2>/dev/null || true + aws s3 cp "$_SP_DCC_SRC" "$_SP_PLUGIN_DIR/" --recursive --quiet 2>/dev/null || true fi # Append to MAYA_MODULE_PATH if we downloaded any files -if [ -d "$_SP_MAYA_DIR" ] && [ -n "$(ls -A "$_SP_MAYA_DIR" 2>/dev/null)" ]; then - export MAYA_MODULE_PATH="${_SP_MAYA_DIR}:${MAYA_MODULE_PATH:-}" - echo "Plugin Sync: MAYA_MODULE_PATH updated with $_SP_MAYA_DIR" +if [ -d "$_SP_PLUGIN_DIR" ] && [ -n "$(ls -A "$_SP_PLUGIN_DIR" 2>/dev/null)" ]; then + export MAYA_MODULE_PATH="${_SP_PLUGIN_DIR}:${MAYA_MODULE_PATH:-}" + echo "Plugin Sync: MAYA_MODULE_PATH updated with $_SP_PLUGIN_DIR" else echo "Plugin Sync: No Maya plugins found, skipping." fi @@ -59,4 +58,4 @@ fi export _MAYA_PLUGIN_SYNC_DIR="$_SP_PLUGIN_DIR" # Clean up temp variables -unset _SP_PREFIX _SP_OS _SP_PLUGIN_DIR _SP_GENERIC_SRC _SP_DCC_SRC _SP_MAYA_DIR +unset _SP_PREFIX _SP_OS _SP_PLUGIN_DIR _SP_GENERIC_SRC _SP_DCC_SRC diff --git a/conda_recipes/nuke-17.0/README.md b/conda_recipes/nuke-17.0/README.md index 24e1f79a..c0ed72f6 100644 --- a/conda_recipes/nuke-17.0/README.md +++ b/conda_recipes/nuke-17.0/README.md @@ -6,7 +6,7 @@ This directory contains a conda build recipe for Nuke 17.0.1, specifically confi ## Package Information -- **Application**: Nuke 17.0.1 +- **Application**: Nuke 17.0v1 - **Supported Platforms**: linux-64 - **Source**: Foundry website downloads - **License**: Commercial @@ -33,8 +33,8 @@ Before building this package, ensure you have: 1. Download the `Nuke17.0v1-linux-x86_64.tgz` from the Foundry website. 2. You will need a Foundry account to access the Nuke downloads. 3. Place the downloaded file in the `conda_recipes/archive_files` directory. -4. Conda uses the a checksum to verify the integrity of the source file. The SHA256 hash should match: `61b570ea6d4f8a7e2f0647952c8e039fc02df6f6649e9de1d2ee0543398ed92f`. - In bash, you can compute the checksum by running this command `sha256sum Nuke16.0v1-linux-x86_64.tgz`. +4. Conda uses the a checksum to verify the integrity of the source file. The SHA256 hash should match: `c76ec0cd3f881f41553878240618a983e936e543a5fd19ceea6c5c6765cc88a3`. + In bash, you can compute the checksum by running this command `sha256sum Nuke17.0v1-linux-x86_64.tgz`. ## Plugins diff --git a/conda_recipes/nuke-17.0/TODO.txt b/conda_recipes/nuke-17.0/TODO.txt deleted file mode 100644 index 09fa3ec9..00000000 --- a/conda_recipes/nuke-17.0/TODO.txt +++ /dev/null @@ -1,111 +0,0 @@ -Here's the full tidy-up list for making conda_recipes/nuke-17.1 ready for public publishing: - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - Files That Should Not Be Committed - - ┌───────────────────────────────┬──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ - │ File │ Issue │ - ├───────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ recipe/repodata.json │ Full channel index containing all internal packages (blender, houdini, maya, cinema4d, vredcore, etc.). This is a build artifact, not a recipe source file. The nuke-16.0 recipe doesn't have this. Remove from git. │ - ├───────────────────────────────┼──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤ - │ recipe/queue_environment.yaml │ Contains an internal AWS account ID (529920871242) and a specific internal S3 bucket name (deadline-vfscmf-ja-529920871242). This is environment-specific config, not part of the recipe. Remove from git. │ - └───────────────────────────────┴──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘ - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - Version Mismatches (README.md) - - The README.md is byte-for-byte identical to the nuke-16.0 README. Every reference still says "Nuke 16.0": - - 1. Title: "# Nuke 16.0 Conda Recipe for AWS Deadline Cloud" → should be 17.0 - 2. Overview: "recipe for Nuke 16.0.1" → 17.0.1 - 3. Package Information: "Nuke 16.0.1" → 17.0.1 - 4. Archive filename: Nuke16.0v1-linux-x86_64.tgz → Nuke17.0v1-linux-x86_64.tgz - 5. SHA256 hash: still shows the 16.0 hash (61b570ea...) → should be c76ec0cd3f881f41553878240618a983e936e543a5fd19ceea6c5c6765cc88a3 - 6. Recipe structure tree: shows nuke-16.0/ → should be nuke-17.1/ - 7. Footer note: "configured for Nuke 16.0.1" → 17.0.1 - 8. The "Adapting to Other Versions" section references meta.yaml which doesn't exist — the file is recipe.yaml - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - Version Mismatches (deadline-cloud.yaml) - - The file is identical to nuke-16.0: - - - sourceArchiveFilename: Nuke16.0v1-linux-x86_64.tgz → should be Nuke17.0v1-linux-x86_64.tgz - - sourceDownloadInstructions references "Nuke16.0v1-linux-x86_64" → should be 17.0v1 - - Missing trailing newline - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - Directory Naming Confusion - - - The directory is named nuke-17.1 but recipe.yaml sets version_partial: "17.0" and version_minor: "1", producing package version 17.0.1. The directory name implies version 17.1.x. Consider renaming to nuke-17.0 for consistency with the actual package version. - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - build.sh Issues - - 1. Blender reference in comment (line 89-92): Comment says "These run AFTER the main blender env vars are set (999- prefix ensures lexicographic ordering)." and "See 999-blender-simple-plugins-activate.sh for the full implementation." — should reference Nuke, not Blender. - 2. yumdownloader vs dnf download: The nuke-16.0 recipe uses dnf download --resolve -y, but nuke-17.1 uses yumdownloader --resolve --destdir=.... If the build fleet uses AL2023 (which has dnf), this may be intentional, but should be verified for consistency. - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - zzz-nuke-simple-plugins-activate.sh Issues - - 1. Debug print statement (line 28): echo "PLUGGY FUGGY WUGGY DCC SRC: $_SP_DCC_SRC" — must be removed before publishing. - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - zzz-nuke-simple-plugins-deactivate.sh Issues - - 1. Wrong DCC variable (line 20): unset BLENDER_USER_SCRIPTS — this is a Blender variable, not a Nuke variable. Should be removed or replaced with the correct Nuke variable. - 2. Missing trailing newline at end of file. - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - recipe.yaml — Source Path Syntax - - - nuke-16.0 uses: url: file://archive_files/Nuke{{ version_partial }}v{{ version_minor }}-linux-x86_64.tgz - - nuke-17.1 uses: path: ../../archive_files/Nuke${{ version_partial }}v${{ version_minor }}-linux-x86_64.tgz - - The template syntax changed from {{ }} to ${{ }} (rattler-build Jinja vs conda-build Jinja). The path: vs url: change may be intentional for rattler-build, but verify this is the correct approach for the build system being used. - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - Commit Hygiene - - - All 3 commits have the message "wip" — these should be squashed into a single well-formed commit with a proper conventional commit message before merging. - - ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── - - Summary of Priority Actions - - ┌─────────────┬────────────────────────────────────────────────────────────────────────────────────────┐ - │ Priority │ Action │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🔴 Critical │ Remove repodata.json (leaks internal package inventory) │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🔴 Critical │ Remove queue_environment.yaml (leaks internal AWS account ID) │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🔴 Critical │ Remove debug print "PLUGGY FUGGY WUGGY" │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🔴 Critical │ Remove unset BLENDER_USER_SCRIPTS from deactivate script │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟠 High │ Update README.md with correct version (17.0.1) throughout │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟠 High │ Update deadline-cloud.yaml with correct Nuke 17.0 filename │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟠 High │ Fix Blender references in build.sh comments │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟡 Medium │ Resolve directory name (nuke-17.1) vs package version (17.0.1) mismatch │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟡 Medium │ Add trailing newlines to deadline-cloud.yaml and zzz-nuke-simple-plugins-deactivate.sh │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟡 Medium │ Verify yumdownloader vs dnf download is intentional │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟢 Low │ Squash "wip" commits into a proper commit message │ - ├─────────────┼────────────────────────────────────────────────────────────────────────────────────────┤ - │ 🟢 Low │ Update README "Adapting to Other Versions" to reference recipe.yaml not meta.yaml │ - └─────────────┴────────────────────────────────────────────────────────────────────────────────────────┘ diff --git a/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh b/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh index 08b1809e..0c02b130 100644 --- a/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh +++ b/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh @@ -25,7 +25,7 @@ fi _SP_PLUGIN_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/nuke" mkdir -p "$_SP_PLUGIN_DIR" -# Download generic plugins to the session working directory +# Download generic plugins _SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" _SP_GENERIC_SRC="s3://${DEADLINE_JA_S3_BUCKET}/${_SP_PREFIX}plugins/generic/" if aws s3 ls "$_SP_GENERIC_SRC" >/dev/null 2>&1; then From 8ae3f0d2803d9a0a5335d63d01cbc3f72eb2831d Mon Sep 17 00:00:00 2001 From: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> Date: Wed, 13 May 2026 23:55:58 +0000 Subject: [PATCH 3/5] more fixes Signed-off-by: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> --- conda_recipes/blender-5.1/recipe/build.sh | 8 ++++---- ...ns-activate.sh => zzz-blender-plugin-sync-activate.sh} | 0 ...eactivate.sh => zzz-blender-plugin-sync-deactivate.sh} | 0 conda_recipes/nuke-17.0/README.md | 4 ++-- conda_recipes/nuke-17.0/recipe/build.sh | 8 ++++---- ...ugins-activate.sh => zzz-nuke-plugin-sync-activate.sh} | 0 ...s-deactivate.sh => zzz-nuke-plugin-sync-deactivate.sh} | 0 7 files changed, 10 insertions(+), 10 deletions(-) rename conda_recipes/blender-5.1/recipe/{zzz-blender-plugins-activate.sh => zzz-blender-plugin-sync-activate.sh} (100%) rename conda_recipes/blender-5.1/recipe/{zzz-blender-plugins-deactivate.sh => zzz-blender-plugin-sync-deactivate.sh} (100%) rename conda_recipes/nuke-17.0/recipe/{zzz-nuke-simple-plugins-activate.sh => zzz-nuke-plugin-sync-activate.sh} (100%) rename conda_recipes/nuke-17.0/recipe/{zzz-nuke-simple-plugins-deactivate.sh => zzz-nuke-plugin-sync-deactivate.sh} (100%) diff --git a/conda_recipes/blender-5.1/recipe/build.sh b/conda_recipes/blender-5.1/recipe/build.sh index 8d2c1162..623c569b 100755 --- a/conda_recipes/blender-5.1/recipe/build.sh +++ b/conda_recipes/blender-5.1/recipe/build.sh @@ -37,9 +37,9 @@ VAREOF # See zzz-blender-plugins-activate.sh for the full implementation. mkdir -p $PREFIX/etc/conda/activate.d -cp $RECIPE_DIR/zzz-blender-plugins-activate.sh \ - $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-$PKG_VERSION-plugins.sh +cp $RECIPE_DIR/zzz-blender-plugin-sync-activate.sh \ + $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-$PKG_VERSION-plugin-sync.sh mkdir -p $PREFIX/etc/conda/deactivate.d -cp $RECIPE_DIR/zzz-blender-plugins-deactivate.sh \ - $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-$PKG_VERSION-plugins.sh \ No newline at end of file +cp $RECIPE_DIR/zzz-blender-plugin-sync-deactivate.sh \ + $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-$PKG_VERSION-plugin-sync.sh \ No newline at end of file diff --git a/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-activate.sh b/conda_recipes/blender-5.1/recipe/zzz-blender-plugin-sync-activate.sh similarity index 100% rename from conda_recipes/blender-5.1/recipe/zzz-blender-plugins-activate.sh rename to conda_recipes/blender-5.1/recipe/zzz-blender-plugin-sync-activate.sh diff --git a/conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh b/conda_recipes/blender-5.1/recipe/zzz-blender-plugin-sync-deactivate.sh similarity index 100% rename from conda_recipes/blender-5.1/recipe/zzz-blender-plugins-deactivate.sh rename to conda_recipes/blender-5.1/recipe/zzz-blender-plugin-sync-deactivate.sh diff --git a/conda_recipes/nuke-17.0/README.md b/conda_recipes/nuke-17.0/README.md index c0ed72f6..1eee4a10 100644 --- a/conda_recipes/nuke-17.0/README.md +++ b/conda_recipes/nuke-17.0/README.md @@ -92,8 +92,8 @@ nuke-17.0/ └── recipe/ ├── recipe.yaml # Conda package metadata ├── build.sh # Linux build script - ├── zzz-nuke-simple-plugins-activate.sh # activate script for Plugin Sync feature - └── zzz-nuke-simple-plugins-deactivate.sh # deactivate script for Plugin Sync feature + ├── zzz-nuke-plugin-sync-activate.sh # activate script for Plugin Sync feature + └── zzz-nuke-plugin-sync-deactivate.sh # deactivate script for Plugin Sync feature ``` ## Resources diff --git a/conda_recipes/nuke-17.0/recipe/build.sh b/conda_recipes/nuke-17.0/recipe/build.sh index df40f31f..15ab6036 100644 --- a/conda_recipes/nuke-17.0/recipe/build.sh +++ b/conda_recipes/nuke-17.0/recipe/build.sh @@ -92,9 +92,9 @@ EOF # ensures lexicographic ordering). mkdir -p $PREFIX/etc/conda/activate.d -cp $RECIPE_DIR/zzz-nuke-simple-plugins-activate.sh \ - $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-$PKG_VERSION-simple-plugins.sh +cp $RECIPE_DIR/zzz-nuke-plugin-sync-activate.sh \ + $PREFIX/etc/conda/activate.d/zzz-$PKG_NAME-$PKG_VERSION-plugin-sync.sh mkdir -p $PREFIX/etc/conda/deactivate.d -cp $RECIPE_DIR/zzz-nuke-simple-plugins-deactivate.sh \ - $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-$PKG_VERSION-simple-plugins.sh +cp $RECIPE_DIR/zzz-nuke-plugin-sync-deactivate.sh \ + $PREFIX/etc/conda/deactivate.d/zzz-$PKG_NAME-$PKG_VERSION-plugin-sync.sh diff --git a/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh b/conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-activate.sh similarity index 100% rename from conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-activate.sh rename to conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-activate.sh diff --git a/conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-deactivate.sh b/conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-deactivate.sh similarity index 100% rename from conda_recipes/nuke-17.0/recipe/zzz-nuke-simple-plugins-deactivate.sh rename to conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-deactivate.sh From 92683764e65d1970a199ac20ff8bab25faf4e267 Mon Sep 17 00:00:00 2001 From: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> Date: Mon, 18 May 2026 17:28:22 +0000 Subject: [PATCH 4/5] fixes Signed-off-by: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> --- conda_recipes/blender-5.1/recipe/test_zzz_scripts.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/conda_recipes/blender-5.1/recipe/test_zzz_scripts.sh b/conda_recipes/blender-5.1/recipe/test_zzz_scripts.sh index 582bc645..0f6e68e0 100755 --- a/conda_recipes/blender-5.1/recipe/test_zzz_scripts.sh +++ b/conda_recipes/blender-5.1/recipe/test_zzz_scripts.sh @@ -8,8 +8,8 @@ set -eo pipefail SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -ACTIVATE_SCRIPT="$SCRIPT_DIR/zzz-blender-plugins-activate.sh" -DEACTIVATE_SCRIPT="$SCRIPT_DIR/zzz-blender-plugins-deactivate.sh" +ACTIVATE_SCRIPT="$SCRIPT_DIR/zzz-blender-plugin-sync-activate.sh" +DEACTIVATE_SCRIPT="$SCRIPT_DIR/zzz-blender-plugin-sync-deactivate.sh" PASS_COUNT=0 FAIL_COUNT=0 From 0b0d03b22dd153330553e287da98e7560a68c17b Mon Sep 17 00:00:00 2001 From: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> Date: Mon, 18 May 2026 17:36:05 +0000 Subject: [PATCH 5/5] fixes Signed-off-by: Nathan MacLeod <142927985+npmacl@users.noreply.github.com> --- conda_recipes/nuke-17.0/README.md | 2 +- .../recipe/zzz-nuke-plugin-sync-deactivate.sh | 18 +----------------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/conda_recipes/nuke-17.0/README.md b/conda_recipes/nuke-17.0/README.md index 1eee4a10..11554a34 100644 --- a/conda_recipes/nuke-17.0/README.md +++ b/conda_recipes/nuke-17.0/README.md @@ -1,4 +1,4 @@ -# Nuke 16.0 Conda Recipe for AWS Deadline Cloud +# Nuke 17.0 Conda Recipe for AWS Deadline Cloud ## Overview diff --git a/conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-deactivate.sh b/conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-deactivate.sh index b2426fbe..0dbcee00 100644 --- a/conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-deactivate.sh +++ b/conda_recipes/nuke-17.0/recipe/zzz-nuke-plugin-sync-deactivate.sh @@ -1,21 +1,5 @@ #!/bin/bash # Simple Plugin Delivery cleanup for Nuke -# Removes downloaded plugin files and unsets env vars. +# Unsets env vars. -if [ -n "${_SP_PLUGIN_DIR:-}" ] && [ -d "$_SP_PLUGIN_DIR" ]; then - echo "Plugin Sync: Cleaning up $_SP_PLUGIN_DIR" - rm -rf "$_SP_PLUGIN_DIR" -fi - -# Clean up the generic plugins directory too -_SP_GENERIC_DIR="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins/generic" -if [ -d "$_SP_GENERIC_DIR" ]; then - rm -rf "$_SP_GENERIC_DIR" -fi - -# Remove the parent if empty -_SP_PARENT="${OPENJD_SESSION_WORKING_DIR:-${TMPDIR:-/tmp}}/deadline-plugins" -rmdir "$_SP_PARENT" 2>/dev/null || true - -unset BLENDER_USER_SCRIPTS unset _SP_PLUGIN_DIR _SP_GENERIC_DIR _SP_PARENT \ No newline at end of file