AWS deadline-cloud documentation change
Summary
Complete restructuring and rewriting of the Maya conda recipe documentation with updated content, improved organization, and references to newer version (maya-2026). Changes include better section headers, detailed explanations of commercial application considerations, updated build instructions, and improved technical accuracy.
Security assessment
The changes are purely documentation improvements with no mention of security vulnerabilities, incidents, or patches. The content focuses on packaging procedures, licensing considerations, and build processes without addressing security weaknesses or adding security-specific features. The mention of 'MAYA_NO_HOME=1' is for isolation in virtual environments, not security hardening.
Diff
diff --git a/deadline-cloud/latest/developerguide/create-conda-recipe-maya.md b/deadline-cloud/latest/developerguide/create-conda-recipe-maya.md index 5fbfae4e5..5c4942d5e 100644 --- a//deadline-cloud/latest/developerguide/create-conda-recipe-maya.md +++ b//deadline-cloud/latest/developerguide/create-conda-recipe-maya.md @@ -5,5 +5 @@ -# Create a conda build recipe for Autodesk Maya - -You can package commercial applications as conda packages. In [ Create a conda build recipe for Blender](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/conda-package.html#create-conda-recipe-blender), you learned how to package an application that is available as a simple relocatable archive file and under open source license terms. Commercial applications are often distributed via installers and may have a license management system to work with. - -The following list builds on the basics covered in [ Create a conda package for an application or plugin](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/conda-package.html) with requirements commonly involved with packaging commercial applications. The details in sub-bullets illustrate how you can apply the guidelines to Maya. +Considerations for commercial applicationsUnderstanding the recipeBuilding the Maya package @@ -11,3 +7 @@ The following list builds on the basics covered in [ Create a conda package for - * Understand the licensing rights and restrictions of the application. You might need to configure a license management system. Where the application does not include enforcement, you will need to configure your farm according to your rights. - - * Read the [Autodesk Subscription Benefits FAQ about Cloud Rights](https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Subscription-Benefits-FAQ-Cloud-Rights.html) to understand the cloud rights for Maya that might apply to you. Configure your Deadline Cloud farm as necessary. +# Create a conda build recipe for Autodesk Maya @@ -15 +9 @@ The following list builds on the basics covered in [ Create a conda package for - * Autodesk products rely on a file called `ProductInformation.pit`. Most configuration of this file requires administrator access to the system, which is not available on service-managed fleets. Product features for thin clients provide a relocatable way to handle this. See [ Thin Client Licensing for Maya and MotionBuilder](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html) to learn more. +Commercial applications like Autodesk Maya introduce additional packaging requirements compared to open source applications like Blender. The [Blender recipe](./create-conda-recipe-blender.html) packages a simple relocatable archive under an open source license. Commercial applications are often distributed through installers and require license management configuration. @@ -17 +11 @@ The following list builds on the basics covered in [ Create a conda package for - * Some applications depend on libraries not installed on service-managed fleet worker hosts, so the package will have to provide them. This could be within the application package directly, or placed in a separate dependency package. +## Considerations for commercial applications @@ -19 +13 @@ The following list builds on the basics covered in [ Create a conda package for - * Maya depends on a number of such libraries, including freetype and fontconfig. When these libraries are available in the system package manager, such as in `dnf` for AL2023, you can use it as a source for the application. Because these RPM packages are not built to be relocatable, you will need to use tools such as `patchelf` to ensure dependencies are resolved within the Maya installation prefix. +The following considerations apply when packaging commercial applications. The details illustrate how each applies to Maya. @@ -21 +15 @@ The following list builds on the basics covered in [ Create a conda package for - * Installation might require administrator access. Since service-managed fleets do not provide administrator access, you will need to perform an installation on a system with this access. Then, create an archive of the files needed for the package build job to use. + * **Licensing** – Understand the licensing rights and restrictions of the application. You might need to configure a license management system. Read the [Autodesk Subscription Benefits FAQ about Cloud Rights](https://www.autodesk.com/support/technical/article/caas/sfdcarticles/sfdcarticles/Subscription-Benefits-FAQ-Cloud-Rights.html) to understand the cloud rights for Maya. Autodesk products rely on a `ProductInformation.pit` file that typically requires administrator access to configure. Product features for thin clients provide a relocatable alternative. See [Thin Client Licensing for Maya and MotionBuilder](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html) for more information. @@ -23 +17 @@ The following list builds on the basics covered in [ Create a conda package for - * The Windows installer for Maya requires administrator access, so building the conda package for it involves a manual process to first create such an archive. + * **System library dependencies** – Some applications depend on libraries not installed on service-managed fleet worker hosts. Maya depends on libraries including freetype and fontconfig. When these libraries are available in the system package manager, such as `dnf` for AL2023, you can use the package manager as a source. Because RPM packages are not built to be relocatable, you need to use tools such as `patchelf` to resolve dependencies within the Maya installation prefix. @@ -25 +19 @@ The following list builds on the basics covered in [ Create a conda package for - * The application configuration, including how plugins register with it, can be defined at the operating system or user level. When placed in a conda virtual environment, plugins need a way to integrate with the application in a way that is contained and never writes files or other data outside the virtual environment prefix. We suggest you set this up from the application's conda package. + * **Administrator access for installation** – Some installers require administrator access. Service-managed fleets do not provide administrator access, so you need to install the application on a separate system and create an archive of the files for the package build. The Windows installer for Maya requires this approach. The [README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/README.md) in the recipe documents a repeatable procedure using a freshly launched Amazon Elastic Compute Cloud (Amazon EC2) instance. @@ -27 +21 @@ The following list builds on the basics covered in [ Create a conda package for - * The sample Maya package defines the environment variable `MAYA_NO_HOME=1` to isolate it from user level configuration, and adds module search paths to `MAYA_MODULE_PATH` so that plugins packaged separately can integrate from within the virtual environment. The sample MtoA package places a .mod file in one of these directories to load at Maya startup. + * **Plugin integration** – The sample Maya package defines `MAYA_NO_HOME=1` to isolate the application from user-level configuration, and adds module search paths to `MAYA_MODULE_PATH` so that plugin packages can place `.mod` files within the virtual environment. See the [Maya 2026 sample recipe](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2026#instructions-for-maya-plugin-packages) for the full plugin integration convention. @@ -32 +26 @@ The following list builds on the basics covered in [ Create a conda package for -###### Write the recipe metadata +## Understanding the recipe @@ -34 +28 @@ The following list builds on the basics covered in [ Create a conda package for - 1. Open the GitHub [ deadline-cloud-samples/conda_recipes/maya-2025](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-2025) directory in your browser or in a text editor in your local clone of the repository. +The [recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/recipe.yaml) file defines the package metadata in [rattler-build template syntax](https://rattler-build.prefix.dev/latest/reference/recipe_file/#spec-reference). Review the following sections of the file: @@ -36 +30 @@ The following list builds on the basics covered in [ Create a conda package for -The file `deadline-cloud.yaml` describes the conda build platforms to build packages for and where to get the application from. The recipe sample specifies both Linux and Windows builds, and that only Linux is submitted by default. + * **source** – References the installer archives, including the sha256 hash. On Linux, the source is the Autodesk installer archive. On Windows, the source includes both the installer archive and a `cleanMayaForCloud.py` script from Autodesk that prepares Maya for cloud deployment. Update the hashes when you change the source files, for example when packaging a new version. @@ -38 +32 @@ The file `deadline-cloud.yaml` describes the conda build platforms to build pack - 2. Download the full Maya installers from your Autodesk login. For Linux, the package build can use the archive directly, so place it directly into the `conda_recipes/archive_files` directory. For Windows, the installer requires administrator access to run. You will need to run the installer and collect the necessary files into an archive for the package recipe you want to use. The [ README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/README.md) file in the recipe documents a repeatable procedure to create this artifact. The procedure uses a freshly launched Amazon EC2 instance to provide a clean environment for installation that you can then terminate after saving the result. To package other applications that require administrator access, you can follow a similar procedure once you determine the set of files the application needs. + * **build** – Turns off the default binary relocation and DSO linking checks because the automatic mechanisms do not work correctly for the library and binary directories that Maya uses. On Linux, the recipe includes `patchelf` as a build dependency to manually set relative RPATHs. @@ -40 +34 @@ The file `deadline-cloud.yaml` describes the conda build platforms to build pack - 3. Open the [ recipe/recipe.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/recipe.yaml) and [ recipe/meta.yaml](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/meta.yaml) files to review or edit the settings for rattler-build and for conda-build. You can set the package name and version for the application you are packaging. + * **about** – Metadata about the application for browsing or processing the contents of a conda channel. @@ -42 +35,0 @@ The file `deadline-cloud.yaml` describes the conda build platforms to build pack -The **source** section includes a reference to the archives, including the sha256 hash of the files. Whenever you change these files, for example to a new version, you will need to calculate and update these values. @@ -44 +36,0 @@ The **source** section includes a reference to the archives, including the sha25 -The **build** section mainly contains options to turn off the default binary relocation options, as the automatic mechanisms will not work correctly for the particular library and binary directories the package uses. @@ -46 +37,0 @@ The **build** section mainly contains options to turn off the default binary rel -Finally, the **about** section lets you enter some metadata about the application that can be used when browsing or processing the contents of a conda channel. @@ -47,0 +39 @@ Finally, the **about** section lets you enter some metadata about the applicatio +The build scripts ([build.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build.sh) for Linux, [build_win.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/recipe/build_win.sh) for Windows) include comments explaining each step. The scripts perform the following key tasks: @@ -48,0 +41 @@ Finally, the **about** section lets you enter some metadata about the applicatio + * **Extract the installer** – Extracts the Maya installation files into the conda prefix. The Linux and Windows scripts handle this differently due to the installer formats. See the build scripts for details. @@ -49,0 +43 @@ Finally, the **about** section lets you enter some metadata about the applicatio + * **Install system library dependencies** – On Linux, the script downloads and extracts system libraries that Maya needs but that are not present on service-managed fleet hosts. The script copies these libraries into the Maya `lib` directory so they are available within the conda environment. @@ -51 +45 @@ Finally, the **about** section lets you enter some metadata about the applicatio -###### Write the package build script + * **Set relative RPATHs with patchelf** – On Linux, the script uses `patchelf --add-rpath` to add `$ORIGIN`-relative paths to the shared libraries. This approach follows the conda recommendation to never use `LD_LIBRARY_PATH` in conda environments. The script patches libraries at multiple directory levels (`lib`, `lib/python*/site-packages`, `lib/python*/lib-dynload`) so that each library can find its dependencies relative to its own location. The recipe follows the best practice of setting `DT_RUNPATH` instead of `DT_RPATH`, which allows `LD_LIBRARY_PATH` to override the search path when needed for debugging. @@ -53 +47 @@ Finally, the **about** section lets you enter some metadata about the applicatio - 1. The package build scripts in the Maya sample conda build recipe include comments explaining the steps the scripts perform. Read through the comments and commands to discover the following: + * **Configure thin client licensing** – The script sets up [thin client licensing as documented by Autodesk](https://www.autodesk.com/support/technical/article/caas/tsarticles/ts/2zqRBCuGDrcPZDzULJQ27p.html) so that the `ProductInformation.pit` file can be located within the conda environment rather than requiring system-level administrator access. @@ -55 +49 @@ Finally, the **about** section lets you enter some metadata about the applicatio - * How the recipe handles the RPM file from Autodesk + * **Set up activation scripts** – The scripts create activate and deactivate scripts that set environment variables including `MAYA_LOCATION`, `MAYA_VERSION`, `MAYA_NO_HOME`, and `MAYA_MODULE_PATH`. On Windows, the scripts produce both `.sh` and `.bat` activation files because the Deadline Cloud sample queue environments use `bash` to activate environments on Windows. @@ -57 +50,0 @@ Finally, the **about** section lets you enter some metadata about the applicatio - * The changes the recipe applies to make the installation relocatable to the conda virtual environments that the recipe is installed in @@ -59 +51,0 @@ Finally, the **about** section lets you enter some metadata about the applicatio - * How the recipe sets utility variables such as `MAYA_LOCATION` and `MAYA_VERSION` that your software can use to understand the Maya it is running. @@ -61 +52,0 @@ Finally, the **about** section lets you enter some metadata about the applicatio - 2. For Linux, open the [ recipe/build.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build.sh) file to review or edit the package build script. @@ -63 +54 @@ Finally, the **about** section lets you enter some metadata about the applicatio -For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2025/recipe/build_win.sh) file to review or edit the package build script. +## Building the Maya package @@ -64,0 +56 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea +Before you build the Maya package, download the Maya installer from your Autodesk account. For Linux, place the archive directly into the `conda_recipes/archive_files` directory. For Windows, follow the procedure in the [README.md](https://github.com/aws-deadline/deadline-cloud-samples/blob/mainline/conda_recipes/maya-2026/README.md) to create the archive. @@ -65,0 +58 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea +Use `rattler-build publish` to build and publish the package. The Maya recipe requires `patchelf` as a build dependency on Linux, which is available from [conda-forge](https://conda-forge.org/). Add `-c conda-forge` to make the dependency available during the build. From the `conda_recipes` directory, run the following command. @@ -68 +61,4 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea -###### Submit a job that builds the Maya packages + rattler-build publish maya-2026/recipe/recipe.yaml \ + --to file://$HOME/my-conda-channel \ + --build-number=+1 \ + -c conda-forge @@ -70 +66 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea - 1. Enter the `conda_recipes` directory in your clone of the GitHub [deadline-cloud-samples](https://github.com/aws-deadline/deadline-cloud-samples) repository. +For other publishing options: @@ -72 +68 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea - 2. Make sure that your Deadline Cloud farm is configured for your Deadline Cloud CLI. If you followed the steps to [ Create a conda channel using Amazon S3](https://docs.aws.amazon.com/deadline-cloud/latest/developerguide/configure-jobs-s3-channel.html) then your farm should be configured for your CLI. + * To publish to an Amazon S3 channel, see [Publish packages to an S3 conda channel](./publish-packages-s3-channel.html). @@ -74 +70 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea - 3. Run the following command to submit a job that builds both Linux and Windows packages. + * To automate builds using a Deadline Cloud package building queue, see [Automate package builds with Deadline Cloud](./automate-package-builds.html). To build both Linux and Windows packages, use the `--all-platforms` option with the `submit-package-job` script. @@ -76 +71,0 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea -` ./submit-package-job maya-2025 --all-platforms` @@ -79,0 +75 @@ For Windows, open the [ recipe/build_win.sh](https://github.com/aws-deadline/dea +To render the turntable sample with Maya and Arnold, build both the [MtoA plugin](./create-conda-recipe-mtoa-plugin.html) and [Maya adaptor](./create-conda-recipe-maya-openjd.html) packages. After you publish all three packages, you can submit a test render job using the [turntable with Maya/Arnold](https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/job_bundles/turntable_with_maya_arnold) job bundle from the Deadline Cloud samples repository. See [Test your packages with a Maya render job](./submit-render-maya-mtoa.html). @@ -87 +83 @@ To use the Amazon Web Services Documentation, Javascript must be enabled. Please -Test your package with a Blender 4.2 render job +Test your package with a Blender render job @@ -89 +85 @@ Test your package with a Blender 4.2 render job -Create a conda recipe for MtoA plugin +Create a conda recipe for the Maya adaptor