about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/misc/houdini
diff options
context:
space:
mode:
authorAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:36 +0000
committerAlyssa Ross <hi@alyssa.is>2019-01-07 02:18:47 +0000
commit36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2 (patch)
treeb3faaf573407b32aa645237a4d16b82778a39a92 /nixpkgs/pkgs/applications/misc/houdini
parent4e31070265257dc67d120c27e0f75c2344fdfa9a (diff)
parentabf060725d7614bd3b9f96764262dfbc2f9c2199 (diff)
downloadnixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.gz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.bz2
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.lz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.xz
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.tar.zst
nixlib-36f56d99fa0a0765c9f1de4a5f17a9b05830c3f2.zip
Add 'nixpkgs/' from commit 'abf060725d7614bd3b9f96764262dfbc2f9c2199'
git-subtree-dir: nixpkgs
git-subtree-mainline: 4e31070265257dc67d120c27e0f75c2344fdfa9a
git-subtree-split: abf060725d7614bd3b9f96764262dfbc2f9c2199
Diffstat (limited to 'nixpkgs/pkgs/applications/misc/houdini')
-rw-r--r--nixpkgs/pkgs/applications/misc/houdini/default.nix14
-rw-r--r--nixpkgs/pkgs/applications/misc/houdini/runtime.nix86
2 files changed, 100 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/misc/houdini/default.nix b/nixpkgs/pkgs/applications/misc/houdini/default.nix
new file mode 100644
index 000000000000..607dff293189
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/houdini/default.nix
@@ -0,0 +1,14 @@
+{ callPackage, buildFHSUserEnv, undaemonize }:
+
+let
+  houdini-runtime = callPackage ./runtime.nix { };
+in buildFHSUserEnv rec {
+  name = "houdini-${houdini-runtime.version}";
+
+  extraBuildCommands = ''
+    mkdir -p $out/usr/lib/sesi
+  '';
+
+  runScript = "${undaemonize}/bin/undaemonize ${houdini-runtime}/bin/houdini";
+}
+
diff --git a/nixpkgs/pkgs/applications/misc/houdini/runtime.nix b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
new file mode 100644
index 000000000000..500f1df36a0c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/misc/houdini/runtime.nix
@@ -0,0 +1,86 @@
+{ stdenv, requireFile, zlib, libpng, libSM, libICE, fontconfig, xorg, libGLU, libGL, alsaLib, dbus, xkeyboardconfig, bc }:
+
+let
+  ld_library_path = builtins.concatStringsSep ":" [
+    "${stdenv.cc.cc.lib}/lib64"
+    (stdenv.lib.makeLibraryPath [
+      libGLU
+      libGL
+      xorg.libXmu
+      xorg.libXi
+      xorg.libXext
+      xorg.libX11
+      xorg.libXrender
+      xorg.libXcursor
+      xorg.libXfixes
+      xorg.libXrender
+      xorg.libXcomposite
+      xorg.libXdamage
+      xorg.libXtst
+      alsaLib
+      fontconfig
+      libSM
+      libICE
+      zlib
+      libpng
+      dbus
+    ])
+  ];
+  license_dir = "~/.config/houdini";
+in
+stdenv.mkDerivation rec {
+  version = "17.0.352";
+  name = "houdini-runtime-${version}";
+  src = requireFile rec {
+    name = "houdini-${version}-linux_x86_64_gcc6.3.tar.gz";
+    sha256 = "0cl5fkgaplb0cvv7mli06ffc9j4ngpy8hl5zqabj3d645gcgafjg";
+    message = ''
+      This nix expression requires that ${name} is already part of the store.
+      Download it from https://sidefx.com and add it to the nix store with:
+
+          nix-prefetch-url <URL>
+
+      This can't be done automatically because you need to create an account on
+      their website and agree to their license terms before you can download
+      it. That's what you get for using proprietary software.
+    '';
+  };
+
+  buildInputs = [ bc ];
+  installPhase = ''
+    patchShebangs houdini.install
+    mkdir -p $out
+    sed -i "s|/usr/lib/sesi|${license_dir}|g" houdini.install
+    ./houdini.install --install-houdini \
+                      --no-install-menus \
+                      --no-install-bin-symlink \
+                      --auto-install \
+                      --no-root-check \
+                      --accept-EULA \
+                      $out
+    echo -e "localValidatorDir = ${license_dir}\nlicensingMode = localValidator" > $out/houdini/Licensing.opt
+    sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd_safe
+    sed -i "s|/usr/lib/sesi|${license_dir}|g" $out/houdini/sbin/sesinetd.startup
+    echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/bin/app_init.sh
+    echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/bin/app_init.sh
+    echo "export LD_LIBRARY_PATH=${ld_library_path}" >> $out/houdini/sbin/app_init.sh
+    echo "export QT_XKB_CONFIG_ROOT="${xkeyboardconfig}/share/X11/xkb"" >> $out/houdini/sbin/app_init.sh
+  '';
+  postFixup = ''
+    INTERPRETER="$(cat "$NIX_CC"/nix-support/dynamic-linker)"
+    for BIN in $(find $out/bin -type f -executable); do
+      if patchelf $BIN 2>/dev/null ; then
+        echo "Patching ELF $BIN"
+        patchelf --set-interpreter "$INTERPRETER" "$BIN"
+      fi
+    done
+  '';
+  meta = {
+    description = "3D animation application software";
+    homepage = https://sidefx.com;
+    license = stdenv.lib.licenses.unfree;
+    platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.canndrew ];
+  };
+}
+