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.pitfile that typically requires administrator access to configure. Product features for thin clients provide a relocatable alternative. See Thin Client Licensing for Maya and MotionBuilderfor 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
dnffor 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 aspatchelfto 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=1to isolate the application from user-level configuration, and adds module search paths toMAYA_MODULE_PATHso that plugin packages can place.modfiles within the virtual environment. See the Maya 2026 sample recipefor the full plugin integration convention.
Understanding the recipe
The recipe.yaml
-
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.pyscript 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
patchelfas 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
-
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
libdirectory so they are available within the conda environment. -
Set relative RPATHs with patchelf – On Linux, the script uses
patchelf --add-rpathto add$ORIGIN-relative paths to the shared libraries. This approach follows the conda recommendation to never useLD_LIBRARY_PATHin 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 settingDT_RUNPATHinstead ofDT_RPATH, which allowsLD_LIBRARY_PATHto 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.pitfile 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, andMAYA_MODULE_PATH. On Windows, the scripts produce both.shand.batactivation files because the Deadline Cloud sample queue environments usebashto 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
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-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 publish to an Amazon S3 channel, see Publish packages to an S3 conda channel.
-
To automate builds using a Deadline Cloud package building queue, see Automate package builds with Deadline Cloud. To build both Linux and Windows packages, use the
--all-platformsoption with thesubmit-package-jobscript.
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