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