feat: add conda recipe for maya 2027 - #279
Conversation
bfcd7f6 to
65f084f
Compare
Signed-off-by: Andrew Fenton <afento@amazon.com>
Signed-off-by: Andrew Fenton <afento@amazon.com>
ed7b076 to
bb5aebd
Compare
| # 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" |
There was a problem hiding this comment.
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.
What was the problem/requirement? (What/Why)
Adding Conda recipe for Maya 2027. Notable changes from installer itself:
_ML_infix from the download name: it's nowAutodesk_Maya_2027_Linux_64bit.tgz.dlopen()sAdpSDKCore.soat 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 — soan RPM-only repackage can't start.
ProductInformation.pitneeded for thin-client licensing moved fromPackages/package.ziptoPackages/package.tgz.What was the solution? (How)
Added
conda_recipes/maya-2027/following themaya-2026layout, with these changes:Autodesk_Maya_2027_Linux_64bit.tgzacrossdeadline-cloud.yaml,README.md,recipe.yaml, andmeta.yaml.build.shunzipsPackages/AdpSdk/adp-desktop-sdk.zipinto$MAYA_LOCATION/liband gives the five ADP libraries an$ORIGINrpath, so they resolve withoutLD_LIBRARY_PATH.MAYA_DISABLE_ADP/_CIP/_CERset to1inenv_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 transmittedfrom workers.
.pitextraction switched totar -xzf ... package.tgz --strip-components=1 bin/ProductInformation.pit.unzipinrecipe.yaml(needed by the ADP step); new runtime depsopenjpeg2andlibatomicin thednf downloadlist.conda_recipes/README.mdindex; 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.mdcovers theMAYA_MODULE_PATHplugin search paths and the archive to download;conda_recipes/README.mdadds the index row;build.shcomments explain why the ADP SDK is mandatory and whyMAYA_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.