You are not logged in.
Hello, I'm currently studying how to create PKGBUILDs, I cloned houdini.git and found out that the package was orphaned (previously maintained by Ashley Whetter).
I managed to create two simple packages (gaffer-bin and foundry-nuke), but this one seems more complicated to update to a current production build.
Maybe someone who also uses Houdini would like to contribute?
Offline
Offline
Here's my wip, it gives an error with the hqueue package.
I also added the unreal plugin and there's a new package for SideFXLabs that I don't know where to extract it yet.
Seems that the original maintainer left some "todos" in the end.
# Maintainer: Adrià Cabello <adro.cc79 at protonmail dot com>
# Original Maintainer: Ashley Whetter <(firstname) at awhetter couk>
# Note: You will need to start the sesinetd service before running houdini
# Note: You may want to add /opt/houdini/bin to your PATH
pkgname=('houdini' 'houdini-maya-engine' 'houdini-unity-engine' 'houdini-unreal-engine' 'python-hqueue')
pkgbase=houdini
_pkgver_major=19
_pkgver_minor=5
_pkgver_build=368
pkgver=${_pkgver_major}.${_pkgver_minor}.${_pkgver_build}
pkgrel=1
pkgdesc="High-end 3D animation package"
arch=('x86_64')
url="http://www.sidefx.com/"
license=('Custom: Side Effects Software')
depends=()
makedepends=()
options=('!strip')
_gccver=$(gcc -dumpversion)
_gccver=${_gccver%.[0-9]*}
_validgccs=(9.3)
# Use the latest gcc version available if there isn't a known version installed
[[ ${_validgccs[@]} =~ $_gccver ]] || _gccver=${_validgccs[@]:(-1)}
DLAGENTS+=('manual::/usr/bin/echo \ \ Note: The file needs to be downloaded manually https://www.sidefx.com/download/')
source=("file://${pkgname}-${pkgver}-linux_x86_64_gcc${_gccver}.tar.gz")
[[ "$_gccver" == 9.3 ]] && sha1sums=('930b4ae3798a900c69109947c40ef2f11d806d03')
source+=('LICENSE' 'sesinetd.service')
sha1sums+=('b9be1458b407576c0614266303fac04badbf300a' 'b6eca8f67aeedb9c5b7a5863c3d24edaf2b93cf3')
_install_houdini_file() {
# From installDesktopItems.py:__installHoudiniFile
src="$1"
dest="$2"
sed -i '
s|${HFS}|/opt/houdini|g
s|${VER_MAJOR}|'${_pkgver_major}'|g
s|${VER_MINOR}|'${_pkgver_minor}'|g
' "$src"
install -Dm644 "$src" "$dest"
}
package_houdini() {
depends=(
'expat' 'fontconfig' 'glu' 'icu' 'libx11' 'libglvnd' 'ocl-icd'
)
optdepeds=(
'alsa-lib: Audio support'
'ilmbase: OpenEXR file format support'
)
cd ${srcdir}/houdini-${pkgver}-linux_x86_64_gcc${_gccver}
install -d ${pkgdir}/opt/houdini
tar xzf houdini.tar.gz -C ${pkgdir}/opt/houdini
install -d ${pkgdir}/opt/houdini/python
tar xzf pythonlibdeps.tar.gz -C ${pkgdir}/opt/houdini/python
tar xzf python3.9.tar.gz -C ${pkgdir}/opt/houdini/python
tar xzf SideFXLabs${pkgver}.tar.gz -C ${pkgdir}/opt/houdini
for i in {gplay,hkey,houdini,houdinifx,houdinicore,hindie,mplay,hview,happrentice,orbolt_url};
do
_install_houdini_file desktop/sesi_${i}.desktop ${pkgdir}/usr/share/applications/sesi_${i}.desktop
done
_install_houdini_file desktop/sesi_houdini.menu ${pkgdir}/etc/xdg/menus/applications-merged/sesi_houdini.menu
_install_houdini_file desktop/sesi_houdini.menu ${pkgdir}/etc/xdg/menus/kde-applications-merged/sesi_houdini.menu
for i in {hip,hiplc,hipnc,otl,otllc,otlnc,hda,hdalc,hdanc,pic,piclc,picnc,geo,bgeo,orbolt}
do
_install_houdini_file "mime/application-x-${i}.xml" "${pkgdir}/usr/share/mime/packages/application-x-${i}.xml"
done
# installing license
install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
install -Dm644 ${srcdir}/sesinetd.service ${pkgdir}/usr/lib/systemd/system/sesinetd.service
}
package_houdini-maya-engine() {
url="https://www.sidefx.com/products/houdini-engine/plug-ins/maya-plug-in/"
depends=("houdini=$pkgver")
cd ${srcdir}/houdini-${pkgver}-linux_x86_64_gcc${_gccver}
install -d ${pkgdir}/opt/houdini/engine/maya
tar xzf engine_maya.tar.gz -C ${pkgdir}/opt/houdini/engine/maya
sed -i -e 's|REPLACE_WITH_HFS|/opt/houdini|' \
$(find "${pkgdir}/opt/houdini/engine/maya" -mindepth 2 -maxdepth 2 -type f -name "houdiniEngine-*")
for maya_version in {2018,2019,2020,2022,2023}
do
if [[ $maya_version == 2018 || $maya_version == 2023 ]]
then
maya_dir="${pkgdir}/usr/autodesk/maya${maya_version}-x64"
else
maya_dir="${pkgdir}/usr/autodesk/maya${maya_version}"
fi
module_dir="${maya_dir}/modules"
install -d "$module_dir"
cp ${pkgdir}/opt/houdini/engine/maya/maya${maya_version}/houdiniEngine-maya${maya_version} "$module_dir"
done
install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
}
package_houdini-unity-engine() {
url="https://www.sidefx.com/products/houdini-engine/plug-ins/unity-plug-in/"
depends=("houdini=$pkgver")
cd ${srcdir}/houdini-${pkgver}-linux_x86_64_gcc${_gccver}
install -d ${pkgdir}/opt/houdini/engine/unity
tar xzf engine_unity.tar.gz -C ${pkgdir}/opt/houdini/engine/unity
install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
}
package_houdini-unreal-engine() {
url="https://www.sidefx.com/products/houdini-engine/plug-ins/unreal-plug-in/"
depends=("houdini=$pkgver")
cd ${srcdir}/houdini-${pkgver}-linux_x86_64_gcc${_gccver}
install -d ${pkgdir}/opt/houdini/engine/unreal
tar xzf engine_unreal.tar.gz -C ${pkgdir}/opt/houdini/engine/unreal
install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
}
package_python-hqueue() {
depends=('mysql' 'python>=3.9' 'python-beaker' 'python-decorator' 'python-formencode' 'python-mako' 'python-nose' 'python-paramiko' 'python-paste' 'python-paste-deploy' 'python-paste-script' 'python-crypto' 'python-pycurl' 'python-pygments' 'python-pylons' 'python-routes' 'python-rpyc' 'python-setuptools' 'python-simplejson' 'python-sqlalchemy' 'python-tempita' 'python-virtualenv' 'python-weberror' 'python-webhelpers' 'python-webob' 'python-webtest')
cd ${srcdir}/houdini-${pkgver}-linux_x86_64_gcc${_gccver}
tar xzf hqueue.tar.gz
for file in {hqserverd,create_shared_drive.sh}
do
install -Dm755 hqueue/scripts/$file ${pkgdir}/opt/hqueue/scripts/$file
done
sed -i -e 's|%%INSTALL_DIR%%|/opt/hqueue|' ${pkgdir}/opt/hqueue/scripts/hqserverd
# TODO: hqueue/deps/indep/*
# TODO: Convert hqueue/scripts/hqserverd to systemd unit
install -d ${pkgdir}/usr/lib/python3.9/site-packages
install -Dm644 hqueue/hqserver-${pkgver}-py2.7.egg ${pkgdir}/usr/lib/python3.9/site-packages
echo ./hqserver-${pkgver}-py2.7.egg >> ${pkgdir}/usr/lib/python2.7/site-packages/hqserver.pth
}
Offline
I've been cleaning the code a bit, but I still fail at the license services packaging..
If someone who is familiar with Houdini and want to take care of finalizing the package I'd be greatly thankful!
pkgname=(
'houdini'
'houdini-sidefxlabs'
'houdini-maya-engine'
'houdini-unity-engine'
'houdini-unreal-engine'
)
pkgbase=houdini
# Version
_pkgver_major=19
_pkgver_minor=5
_pkgver_build=303
pkgver=${_pkgver_major}.${_pkgver_minor}.${_pkgver_build}
pkgrel=1
gccver=9.3
pkgdesc="High-end 3D animation package"
arch=('x86_64')
url="http://www.sidefx.com/"
license=('Custom: Side Effects Software')
depends=()
makedepends=()
options=('!strip')
# Note: The file needs to be downloaded manually https://www.sidefx.com/download/
source=("file://${pkgname}-${pkgver}-linux_x86_64_gcc${gccver}.tar.gz")
sha1sums+=('902ad914fbf1133c394956d9461a13c1df3aeaa5')
source+=('LICENSE' 'sesinetd.service')
sha1sums+=('b9be1458b407576c0614266303fac04badbf300a' 'b6eca8f67aeedb9c5b7a5863c3d24edaf2b93cf3')
prepare() {
export hdir=$srcdir/houdini-${pkgver}-linux_x86_64_gcc${gccver}
}
_install_houdini_file() {
# From installDesktopItems.py:__installHoudiniFile
src="$1"
dest="$2"
sed -i '
s|${HFS}|/opt/houdini|g
s|${VER_MAJOR}.||g
s|${VER_MINOR}.||g
s|${VER_BUILD}||g
' "$src"
install -Dm644 "$src" "$dest"
}
package_houdini() {
depends=('expat' 'fontconfig' 'glu' 'icu' 'libx11' 'libglvnd' 'ocl-icd' 'systemd')
pyver=3.9
# Install Houdini
install -d ${pkgdir}/opt/houdini
tar xzf $hdir/houdini.tar.gz -C ${pkgdir}/opt/houdini
# Install Python
install -d ${pkgdir}/opt/houdini/python
tar zxf $hdir/pythonlibdeps.tar.gz -C ${pkgdir}/opt/houdini/python
tar xf $hdir/python$pyver.tar.gz -C ${pkgdir}/opt/houdini/python
# Install Shortcuts
for i in {gplay,happrentice,hindie,hkey,houdini,houdinicore,houdinifx,hview,mplay,orbolt_url,pilotpdg,uninstall};
do
_install_houdini_file $hdir/desktop/sesi_${i}.desktop ${pkgdir}/usr/share/applications/sesi_${i}.desktop
done
_install_houdini_file $hdir/desktop/sesi_houdini.menu ${pkgdir}/etc/xdg/menus/applications-merged/sesi_houdini.menu
_install_houdini_file $hdir/desktop/sesi_houdini.menu ${pkgdir}/etc/xdg/menus/kde-applications-merged/sesi_houdini.menu
for i in {bgeo,geo,hda,hdalc,hdanc,hip,hiplc,hipnc,hlic,orbolt,otl,otllc,otlnc,pic,piclc,picnc}
do
_install_houdini_file "$hdir/mime/application-x-${i}.xml" "${pkgdir}/usr/share/mime/packages/application-x-${i}.xml"
done
install -Dm644 ${srcdir}/LICENSE ${pkgdir}/usr/share/licenses/$pkgname/LICENSE
install -Dm644 ${srcdir}/sesinetd.service ${pkgdir}/usr/lib/systemd/system/sesinetd.service
install -d ${pkgdir}/etc/init.d
ln -s /opt/houdini/houdini/sbin/sesinetd ${pkgdir}/etc/init.d/sesinetd
}
package_houdini-sidefxlabs() {
depends=("houdini=$pkgver")
install -d ${pkgdir}/opt/houdini
tar xzf $hdir/SideFXLabs${pkgver}.tar.gz
install -d ${pkgdir}/opt/houdini/packages
install -Dm644 SideFXLabs${_pkgver_major}.${_pkgver_minor}.json ${pkgdir}/opt/houdini/packages/
cp -r SideFXLabs${_pkgver_major}.${_pkgver_minor} ${pkgdir}/opt/houdini/packages/
}
package_houdini-maya-engine() {
url="https://www.sidefx.com/products/houdini-engine/plug-ins/maya-plug-in/"
depends=("houdini=$pkgver")
install -d ${pkgdir}/opt/houdini/engine/maya
tar xzf $hdir/engine_maya.tar.gz -C ${pkgdir}/opt/houdini/engine/maya
# HELP WANTED: Would be cool to detect which versions of maya are installed but I don't know how to do it :(
install -Dm644 ${pkgdir}/opt/houdini/engine/maya/houdiniEngine-maya2023 ${pkgdir}/usr/autodesk/maya2023/modules/houdiniEngine-maya2023
}
package_houdini-unity-engine() {
url="https://www.sidefx.com/products/houdini-engine/plug-ins/unity-plug-in/"
depends=("houdini=$pkgver")
install -d ${pkgdir}/opt/houdini/engine/unity
tar xzf $hdir/engine_unity.tar.gz -C ${pkgdir}/opt/houdini/engine/unity
}
package_houdini-unreal-engine() {
url="https://www.sidefx.com/products/houdini-engine/plug-ins/unreal-plug-in/"
depends=("houdini=$pkgver")
install -d ${pkgdir}/opt/houdini/engine/unreal
tar xzf $hdir/engine_unreal.tar.gz -C ${pkgdir}/opt/houdini/engine/unreal
}
Offline
SideFX developer here.
Arch is my daily development platform and getting an AUR set up for Houdini is something I'm personally interested in doing. Just need to find the time to look into to it.
Offline
Thank you very much mokchira!
There's no better one at creating this package than an actual SideFX developer, after all I'm just an environment artist.
Just let me know if I can serve some help.
Offline
Any update on this? Did you manage to create a working PKGBUILD @adro / @mokchira?
Offline
Well, after @mokchira response I didn't try it anymore. But if doesn't reply soon I'll look into it.
Offline
I have not forgotten about this and I apologize for the wait. I started setting up a PKGBUILD back in the spring but hit a snag when it came to automating the installation - there is this whole eula accepting, api key rigamarole you need to go through and while I was reaching out to a fellow developer for clarification this kind of slipped onto the backburner.
I do want to finish up on this, and hopefully secure some kind of Arch support commitment internally. For full transparency, we are coming close to our next release and I am going to be short on time for the next few months, but I will make it priority to finish this up by the end of the year.
Offline