Skip to content

feat(cinema4d-2025): Add Plugin Sync activate/deactivate scripts#223

Open
diane-hj wants to merge 1 commit into
aws-deadline:mainlinefrom
diane-hj:cinema4d-plugin-sync
Open

feat(cinema4d-2025): Add Plugin Sync activate/deactivate scripts#223
diane-hj wants to merge 1 commit into
aws-deadline:mainlinefrom
diane-hj:cinema4d-plugin-sync

Conversation

@diane-hj
Copy link
Copy Markdown

Add plugin sync support for Cinema 4D on Linux. On conda activate, the script downloads plugin files from the job attachment S3 bucket and prepends the download directory to g_additionalModulePath.

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

Customers want a simple "drag and drop files to S3" experience instead of learning Conda packaging. This implements the Cinema 4D portion of the Plugin Sync feature, following the same pattern as Maya (#210) and Nuke (#220).

What was the solution? (How)

Added zzz-cinema4d-plugin-sync-activate.sh and zzz-cinema4d-plugin-sync-deactivate.sh to the Cinema 4D 2025 conda recipe. On conda activate, the script:

  • Downloads plugin files from s3:////plugins//cinema4d//
  • Downloads generic plugins from s3:////plugins/generic/
  • Prepends the download directory to g_additionalModulePath
  • Also added a Linux build.sh and recipe.yaml (rattler-build) to enable Linux package builds alongside the existing Windows recipe.

What is the impact of this change?

Customers can upload Cinema 4D plugin files (.pyp, etc.) to their job attachment S3 bucket and have them automatically available on workers before Cinema 4D launches. No Conda packaging knowledge required.

How was this change tested?

  • Built the conda package using submit-package-job cinema4d-2025 -p linux-64
  • Uploaded a test .pyp plugin to s3:///DeadlineCloud/plugins/linux/cinema4d/2025.3/
  • Submitted a Cinema 4D render job with CondaChannels pointing to the built package
  • Worker logs confirmed plugin sync ran successfully:
Plugin Sync: Downloading Cinema 4D plugins from xxxxxxxxx
Plugin Sync: g_additionalModulePath updated with /sessions/.../deadline-plugins/cinema4d
Cinema 4D loaded and executed the plugin:

ADAPTOR_OUTPUT: STDOUT: PLUGIN_SYNC_TEST: Hello from Cinema4D plugin sync!

Was this change documented?

yes


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

@diane-hj diane-hj requested a review from a team as a code owner May 19, 2026 03:32
@github-actions github-actions Bot added the waiting-on-maintainers Waiting on the maintainers to review. label May 19, 2026
Copy link
Copy Markdown

@seant-aws seant-aws left a comment

Choose a reason for hiding this comment

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

Should we change the conda recipe readme for cinema4d too ?

Copy link
Copy Markdown
Contributor

@karthikbekalp karthikbekalp left a comment

Choose a reason for hiding this comment

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

Let's discuss about supporting Linux conda recipe package offline.

Comment on lines +1 to +5
context:
version_major: "2025"
version_minor: "3"
version_patch: "1"

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

A little out of scope, but have we tried this recipe with latest Cinema 4D 2026? 2025 is quite old.

@@ -0,0 +1,3 @@
#!/bin/bash
# Plugin Sync for Cinema 4D — deactivate script
# No-op: g_additionalModulePath is already unset by the main cinema4d-*-vars.sh deactivate script.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Do we need this file if there's no op?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Agree, we should remove as this is dead code and not needed

Comment on lines +4 to +6
sourceArchiveFilename: Cinema4D_2025_2025.3.1_Linux.zip
sourceDownloadInstructions: 'Download the Cinema4D 2025 Linux installer from Maxon and place it in the archive_files directory.'
buildTool: rattler-build
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Hmm, wait. I don't think we have a conda recipe for Linux for Cinema 4D. Let's discuss about this offline.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I believe we do have it for Linux for 2025 and 2026? https://docs.aws.amazon.com/deadline-cloud/latest/userguide/maxon-cinema-4d.html

@karthikbekalp karthikbekalp removed the waiting-on-maintainers Waiting on the maintainers to review. label May 19, 2026
echo "Plugin Sync: Downloading generic plugins from $_SP_GENERIC_SRC"
mkdir -p "$_SP_GENERIC_DIR"
if ! aws s3 cp "$_SP_GENERIC_SRC" "$_SP_GENERIC_DIR/" --recursive --quiet; then
echo "Plugin Sync: WARNING — Failed to download generic plugins from $_SP_GENERIC_SRC" >&2
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

The download failures are warned silently here, do we want to use uses 2>/dev/null || true like how we do above ?

…Windows

Add plugin sync support for Cinema 4D 2025 on Windows (conda-build).
On conda activate, the script downloads plugin files from the job
attachment S3 bucket and prepends the download directory to
g_additionalModulePath.
@diane-hj diane-hj force-pushed the cinema4d-plugin-sync branch from 1eaf8f4 to beaa29c Compare May 20, 2026 22:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants