Skip to content

feat: add conda recipe for maya 2027 - #279

Merged
andrew-fenton merged 2 commits into
aws-deadline:mainlinefrom
andrew-fenton:feat/maya-2027
Aug 11, 2026
Merged

feat: add conda recipe for maya 2027#279
andrew-fenton merged 2 commits into
aws-deadline:mainlinefrom
andrew-fenton:feat/maya-2027

Conversation

@andrew-fenton

@andrew-fenton andrew-fenton commented Aug 10, 2026

Copy link
Copy Markdown
Contributor

What was the problem/requirement? (What/Why)

Adding Conda recipe for Maya 2027. Notable changes from installer itself:

  1. Autodesk dropped the _ML_ infix from the download name: it's now Autodesk_Maya_2027_Linux_64bit.tgz.
  2. Maya 2027 dlopen()s AdpSDKCore.so at startup and exits 255 with no output if it's missing. Earlier releases tolerated its absence. The library isn't in the Maya RPM — the installer ships it as a separate payload — so
    an RPM-only repackage can't start.
  3. The Arnold ProductInformation.pit needed for thin-client licensing moved from Packages/package.zip to Packages/package.tgz.

What was the solution? (How)

Added conda_recipes/maya-2027/ following the maya-2026 layout, with these changes:

  • Installer name updated to Autodesk_Maya_2027_Linux_64bit.tgz across deadline-cloud.yaml, README.md, recipe.yaml, and meta.yaml.
  • build.sh unzips Packages/AdpSdk/adp-desktop-sdk.zip into $MAYA_LOCATION/lib and gives the five ADP libraries an $ORIGIN rpath, so they resolve without LD_LIBRARY_PATH.
  • MAYA_DISABLE_ADP / _CIP / _CER set to 1 in env_vars.d. These suppress reporting after the library loads, so they don't remove the need for it — the SDK is installed and then muted, and nothing is transmitted
    from workers.
  • .pit extraction switched to tar -xzf ... package.tgz --strip-components=1 bin/ProductInformation.pit.
  • New build dependency unzip in recipe.yaml (needed by the ADP step); new runtime deps openjpeg2 and libatomic in the dnf download list.
  • Registered in the conda_recipes/README.md index; count bumped 50 → 51.

What is the impact of this change?

Added Maya 2027 sample recipe.

How was this change tested?

Both PR-required checks pass on this branch:

  • $ python3 -m pytest tests/test_conda_recipes.py -q
  • $ python3 scripts/validate_repository.py
  • ./submit-package-job maya-2027: For Conda build validation.
  • deadline bundle submit maya_cli_render -p CondaPackages="maya=2027" -p CondaChannels="<JA bucket Conda channel>" -p Frames=1: E2E render using Maya 2027 Conda build - tested falling gears scene + scene included in installer.

Was this change documented?

Yes. maya-2027/README.md covers the MAYA_MODULE_PATH plugin search paths and the archive to download; conda_recipes/README.md adds the index row; build.sh comments explain why the ADP SDK is mandatory and why MAYA_DISABLE_* isn't a substitute.


By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@github-actions github-actions Bot added the waiting-on-maintainers Waiting on the maintainers to review. label Aug 10, 2026
Comment thread conda_recipes/maya-2027/recipe/meta.yaml
Comment thread conda_recipes/maya-2027/recipe/zzz-maya-plugin-sync-activate.sh
Comment thread conda_recipes/maya-2027/recipe/zzz-maya-plugin-sync-activate.sh
Comment thread conda_recipes/maya-2027/recipe/zzz-maya-plugin-sync-deactivate.sh
Comment thread conda_recipes/maya-2027/recipe/build.sh Outdated
Comment thread conda_recipes/maya-2027/recipe/build.sh Outdated
Comment thread conda_recipes/maya-2027/recipe/zzz-maya-plugin-sync-activate.sh
Signed-off-by: Andrew Fenton <afento@amazon.com>
Signed-off-by: Andrew Fenton <afento@amazon.com>
@andrew-fenton
andrew-fenton marked this pull request as ready for review August 10, 2026 22:14
@andrew-fenton
andrew-fenton requested a review from a team as a code owner August 10, 2026 22:14
# The MAYA_DISABLE_ADP / MAYA_DISABLE_CIP / MAYA_DISABLE_CER environment variables do NOT
# avoid this: they suppress reporting after the library loads, so the library must be
# present regardless. They are still set in env_vars.d below so nothing is transmitted.
unzip -q -o "$SRC_DIR/installer/Packages/AdpSdk/adp-desktop-sdk.zip" -d "$INSTALL_DIR/lib"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Extracting the ADP SDK zip directly on top of Maya's own lib/ with -o (force overwrite) and -q (quiet) means any name collision between the SDK payload and a library the Maya RPM shipped in that directory is resolved silently in the SDK's favour, with nothing in the build log to show it happened. That is a hard failure to diagnose later — Maya starts (or doesn't) with a mix of libraries no one intended.

The same line also has no post-condition check. If a future SDK drop nests its payload (e.g. lib/AdpSDKCore.so or linux/AdpSDKCore.so inside the zip) rather than storing the .so files at the archive root, unzip still succeeds, so set -e won't catch it — the libraries just land somewhere Maya doesn't probe. Per the comment directly above, the runtime symptom is Maya exiting 255 printing nothing, which is exactly the failure this block exists to prevent, and it would only surface on the farm rather than in the build.

Suggest extracting to a scratch directory, asserting the expected library is present, and then copying it into place explicitly, so both problems fail the build instead of the render:

_adp_tmp="$SRC_DIR/adp-sdk"
mkdir -p "$_adp_tmp"
unzip -q -o "$SRC_DIR/installer/Packages/AdpSdk/adp-desktop-sdk.zip" -d "$_adp_tmp"
# Fail the build here rather than at render time with Maya's silent exit 255.
test -n "$(find "$_adp_tmp" -name 'AdpSDKCore.so' -print -quit)"
find "$_adp_tmp" -name '*.so' -exec cp -n {} "$INSTALL_DIR/lib/" \;

Using cp -n also surfaces, rather than hides, the collision case.

@andrew-fenton
andrew-fenton merged commit 73f716a into aws-deadline:mainline Aug 11, 2026
11 checks passed
@andrew-fenton
andrew-fenton deleted the feat/maya-2027 branch August 11, 2026 00:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

waiting-on-maintainers Waiting on the maintainers to review.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants