View a markdown version of this page

Create a conda build recipe for Autodesk Maya - Deadline Cloud

Create a conda build recipe for Autodesk Maya

Commercial applications like Autodesk Maya introduce additional packaging requirements compared to open source applications like Blender. The Blender recipe packages a simple relocatable archive under an open source license. Commercial applications are often distributed through installers and require license management configuration.

Considerations for commercial applications

The following considerations apply when packaging commercial applications. The details illustrate how each applies to Maya.

  • 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 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 for more information.

  • 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.

  • 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 in the recipe documents a repeatable procedure using a freshly launched Amazon Elastic Compute Cloud (Amazon EC2) instance.

  • 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 for the full plugin integration convention.

Understanding the recipe

The recipe.yaml file defines the package metadata in rattler-build template syntax. Review the following sections of the file:

  • 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.

  • 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.

  • about – Metadata about the application for browsing or processing the contents of a conda channel.

The build scripts (build.sh for Linux, build_win.sh for Windows) include comments explaining each step. The scripts perform the following key tasks:

  • 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.

  • 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.

  • 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.

  • Configure thin client licensing – The script sets up thin client licensing as documented by Autodesk so that the ProductInformation.pit file can be located within the conda environment rather than requiring system-level administrator access.

  • 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.

Building the Maya package

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 to create the archive.

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. Add -c conda-forge to make the dependency available during the build. From the conda_recipes directory, run the following command.

rattler-build publish maya-2026/recipe/recipe.yaml \ --to file://$HOME/my-conda-channel \ --build-number=+1 \ -c conda-forge

For other publishing options:

To render the turntable sample with Maya and Arnold, build both the MtoA plugin and Maya adaptor packages. After you publish all three packages, you can submit a test render job using the turntable with Maya/Arnold job bundle from the Deadline Cloud samples repository. See Test your packages with a Maya render job.