You are not logged in.

#1 2022-09-23 23:19:17

adro
Member
Registered: 2022-08-18
Posts: 15

[REQUEST] SideFX Houdini

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

#2 2022-09-23 23:50:31

Slithery
Administrator
From: Norfolk, UK
Registered: 2013-12-01
Posts: 5,758

Re: [REQUEST] SideFX Houdini

What have you come up with so far?


No, it didn't "fix" anything. It just shifted the brokeness one space to the right. - jasonwryan
Closing -- for deletion; Banning -- for muppetry. - jasonwryan

aur - dotfiles

Offline

#3 2022-09-24 13:44:37

adro
Member
Registered: 2022-08-18
Posts: 15

Re: [REQUEST] SideFX Houdini

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

#4 2023-01-04 00:28:53

adro
Member
Registered: 2022-08-18
Posts: 15

Re: [REQUEST] SideFX Houdini

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

#5 2023-01-16 00:54:31

mokchira
Member
Registered: 2022-01-19
Posts: 9

Re: [REQUEST] SideFX Houdini

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

#6 2023-01-16 18:46:07

adro
Member
Registered: 2022-08-18
Posts: 15

Re: [REQUEST] SideFX Houdini

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

Board footer

Powered by FluxBB