-
Notifications
You must be signed in to change notification settings - Fork 35
feat: Added Houdini 20.5 conda recipe #76
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: mainline
Are you sure you want to change the base?
Changes from 3 commits
933a97a
2b4c1e7
c1ec84e
028dc76
1cd78ff
4520d24
9437015
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
# @Author: Your name | ||
# @Date: 2024-09-05 10:19:18 | ||
# @Last Modified by: Your name | ||
# @Last Modified time: 2024-09-05 12:18:26 | ||
dzavada marked this conversation as resolved.
Show resolved
Hide resolved
|
||
condaPlatforms: | ||
- platform: linux-64 | ||
defaultSubmit: true | ||
sourceArchiveFilename: houdini-20.5.332-linux_x86_64_gcc11.2.tar.gz | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I got a failure running |
||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
#!/bin/bash | ||
# @Author: Your name | ||
# @Date: 2024-09-05 10:14:54 | ||
# @Last Modified by: Your name | ||
# @Last Modified time: 2024-10-08 08:02:40 | ||
#!/bin/sh | ||
set -xeuo pipefail | ||
|
||
mkdir -p $PREFIX/opt | ||
cd $PREFIX/opt | ||
|
||
|
||
# The Houdini installer expects `bc` to run, but does not fail when | ||
# it is missing. Ensure that it is installed before running the installer | ||
bc --help | ||
# Example messages: | ||
dzavada marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
# Install Houdini | ||
INSTALLER=$SRC_DIR/installer/houdini.install | ||
# date of the EULA agreement, not the current date | ||
EULAdate=2021-10-13 | ||
$INSTALLER \ | ||
--auto-install \ | ||
--accept-EULA $EULAdate \ | ||
--no-install-engine-maya \ | ||
--no-install-engine-unity \ | ||
--no-install-menus \ | ||
--no-install-bin-symlink \ | ||
--no-install-hfs-symlink \ | ||
--no-install-license \ | ||
--no-install-hqueue-server \ | ||
--no-root-check \ | ||
--make-dir $PREFIX/opt/houdini | ||
|
||
HOUDINI_DIR=$PREFIX/opt/houdini | ||
# The Houdini version without the build number | ||
HOUDINI_VERSION=${PKG_VERSION%.*} | ||
|
||
# Remove the documentation, it's not needed on the farm | ||
rm -r $HOUDINI_DIR/houdini/help | ||
|
||
# Create symlinks | ||
mkdir -p $PREFIX/bin | ||
for BINARY in houdini houdini-bin houdinicore houdinifx \ | ||
hscript hython hbatch karma karma_cc mantra mantra-bin \ | ||
vmantra vmantra-bin; do | ||
ln -r -s $HOUDINI_DIR/bin/$BINARY $PREFIX/bin/$BINARY | ||
done | ||
|
||
# Install Houdini dependencies from local package manager | ||
mkdir -p $SRC_DIR/download | ||
cd $SRC_DIR/download | ||
dnf download --resolve -y alsa-lib fontconfig libXScrnSaver libX* libGL libXcomposite libxkbcommon | ||
|
||
# Install python deadline package | ||
pip install deadline-cloud-for-houdini | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In all the other samples, we've been packaging this separately. See https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/conda_recipes/maya-openjd for an example recipe doing this. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The dnf or pip There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Just the pip install command. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes if I don't do the PIP install then it doesn't seem to work. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. That makes sense, there's probably some settings to tweak for it to work as expected. If you look in the submitter code you can see that it's requesting two packages, |
||
|
||
|
||
for rpm_file in $(realpath $SRC_DIR/download/*.rpm); do | ||
rpm2cpio "$rpm_file" | cpio -idm | ||
done | ||
|
||
# Copy .so's to Houdini installation | ||
for so_file in $(find . -iname "*.so.*"); do | ||
cp $so_file $HOUDINI_DIR/dsolib/. | ||
done | ||
|
||
# Script to set environment variables during activation | ||
mkdir -p $PREFIX/etc/conda/activate.d | ||
cat <<EOF > $PREFIX/etc/conda/activate.d/houdini-$PKG_VERSION-vars.sh | ||
export "HOUDINI_LOCATION=\$CONDA_PREFIX/opt/houdini" | ||
export "HOUDINI_VERSION=$HOUDINI_VERSION" | ||
export "HOUDINI_BINARY_PATH=\$HOUDINI_LOCATION/bin" | ||
export "HOUDINI_HOUDINI_PATH=\$HOUDINI_LOCATION/houdini" | ||
export "HOUDINI_INCLUDE_PATH=\$HOUDINI_LOCATION/toolkit/include" | ||
export "HOUDINI_LIBRARY_PATH=\$HOUDINI_LOCATION/bin" | ||
export "HB=\$HOUDINI_LOCATION/dsolib" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What's the purpose of this environment variable? Since it's so short and not prefixed by |
||
export "LD_LIBRARY_PATH=\$HOUDINI_LOCATION/dsolib" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. For this conda package to interact well in virtual environments that include many other packages, it shouldn't touch the |
||
export "SESI_LMHOST=localhost" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Since licensing is a configuration that can change from environment to environment, I think it's better to exclude this variable from the recipe. That way a package built from the recipe won't be specific to one farm. |
||
|
||
EOF | ||
|
||
mkdir -p $PREFIX/etc/conda/deactivate.d | ||
cat <<EOF > $PREFIX/etc/conda/deactivate.d/houdini-$PKG_VERSION-vars.sh | ||
unset HOUDINI_LIBRARY_PATH | ||
unset HOUDINI_INCLUDE_PATH | ||
unset HOUDINI_HOUDINI_PATH | ||
unset HOUDINI_BINARY_PATH | ||
unset HOUDINI_VERSION | ||
unset HOUDINI_LOCATION | ||
unset LD_LIBRARY_PATH | ||
unset HB | ||
unset SESI_LMHOST | ||
|
||
EOF |
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I found that using rattler-build instead of conda-build made a big difference in performance. Converting a recipe is not hard, I'll give that a try and let you know the performance difference. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I found with conda-build, it took 42 minutes, and with rattler-build, it took 9 minutes. That suggests it's better to make it a rattler-build recipe so anyone trying it gets more reasonable build times. I'll push my adjustments to a branch for you once I've finished doing some tweaks. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Don't know what rattler-build is Can you explain and show how to modify the code. Unfortunately this package I built like four or five months ago had some of the guys at AWS help me with it so sounds like there's some new better ways. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yeah, it's described in a I haven't tested beyond doing the package build, but here's a commit in my branch that converts to rattler-build: mwiebe@af0f503 If you don't have a Deadline Cloud farm for building packages, vs building locally, you might look at https://github.com/aws-deadline/deadline-cloud-samples/tree/mainline/cloudformation/farm_templates/starter_farm that we added recently as well. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
# @Author: Derek Zavada | ||
# @Date: 2024-09-05 13:35:23 | ||
# @Last Modified by: Your name | ||
# @Last Modified time: 2024-09-11 16:02:25 | ||
{% set name = "houdini" %} | ||
{% set version_partial = "20.5" %} | ||
{% set version_minor = "332" %} | ||
{% set version = version_partial + "." + version_minor %} | ||
|
||
{% set bucket_name = "houdinihive-bucket-deadlinecloud" %} | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This is using a different convention for how the archive is provided than all the other samples. For the samples to work out of the box, they need this consistency. |
||
|
||
{% set sha256 = "66a6cb0967cf528d1f5d2f6588a397b141299b577ad1b1c891bc7e2bdf2016d5" %} | ||
|
||
package: | ||
name: {{ name }} | ||
version: {{ version }} | ||
|
||
source: | ||
url: s3://{{ bucket_name }}/houdini/{{ version_partial }}/houdini-{{ version_partial }}.{{ version_minor }}-linux_x86_64_gcc11.2.tar.gz | ||
sha256: {{ sha256 }} | ||
folder: installer | ||
|
||
build: | ||
number: 0 | ||
binary_relocation: False | ||
detect_binary_files_with_prefix: False | ||
# The binary is built to be relocatable, so can ignore the warnings about DSOs. | ||
missing_dso_whitelist: | ||
- "*" | ||
# overlinking_ignore_patterns: | ||
# - "**" | ||
|
||
#test: | ||
# commands: | ||
# - houdini -h | ||
|
||
about: | ||
home: https://www.sidefx.com/products/houdini/ | ||
license: Commercial | ||
summary: Houdini is built from the ground up to be a procedural system that empowers artists to work freely, create multiple iterations and rapidly share workflows with colleagues. |
Uh oh!
There was an error while loading. Please reload this page.