summary refs log tree commit diff
diff options
context:
space:
mode:
authorOrivej Desh <orivej@gmx.fr>2017-12-17 02:56:32 +0000
committerOrivej Desh <orivej@gmx.fr>2017-12-17 02:56:32 +0000
commit9f22f0b90241451b699d20f2887c7634dcc4b3ed (patch)
tree2541fea5279397ae19b219a56483754f0876a190
parent51c0ddc9e1b0616144bb3768207eba3a9a2b4971 (diff)
downloadnixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.tar
nixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.tar.gz
nixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.tar.bz2
nixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.tar.lz
nixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.tar.xz
nixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.tar.zst
nixlib-9f22f0b90241451b699d20f2887c7634dcc4b3ed.zip
airtime: move files to opt/airtime, add needed libraries
-rw-r--r--pkgs/applications/misc/airtame/default.nix101
1 files changed, 54 insertions, 47 deletions
diff --git a/pkgs/applications/misc/airtame/default.nix b/pkgs/applications/misc/airtame/default.nix
index 90a752a02601..56fc11a20e12 100644
--- a/pkgs/applications/misc/airtame/default.nix
+++ b/pkgs/applications/misc/airtame/default.nix
@@ -1,9 +1,48 @@
-{ stdenv, lib, makeDesktopItem, makeWrapper
-, alsaLib, atk, cairo, cups, dbus, expat, fetchurl, fontconfig, freetype
-, gdk_pixbuf, glib, gnome2, libXScrnSaver, nspr, nss, udev, xlibs
+{ stdenv, lib, fetchurl, makeDesktopItem, makeWrapper
+, alsaLib, atk, cairo, cups, curl, dbus, expat, ffmpeg, fontconfig, freetype
+, gdk_pixbuf, glib, glibc, gnome2, gtk2, libX11, libXScrnSaver, libXcomposite
+, libXcursor, libXdamage, libXext, libXfixes, libXi, libXrandr, libXrender
+, libXtst, libopus, libpulseaudio, libxcb, nspr, nss, pango, udev, x264
 }:
 
-stdenv.mkDerivation rec {
+let libPath = lib.makeLibraryPath [
+  alsaLib
+  atk
+  cairo
+  cups
+  curl
+  dbus
+  expat
+  ffmpeg
+  fontconfig
+  freetype
+  gdk_pixbuf
+  glib
+  glibc
+  gnome2.GConf
+  gtk2
+  libopus
+  nspr
+  nss
+  pango
+  stdenv.cc.cc
+  udev
+  x264
+  libX11
+  libXScrnSaver
+  libXcomposite
+  libXcursor
+  libXdamage
+  libXext
+  libXfixes
+  libXi
+  libXrandr
+  libXrender
+  libXtst
+  libpulseaudio
+  libxcb
+];
+in stdenv.mkDerivation rec {
   pname = "airtame";
   version = "3.0.1";
   name = "${pname}-${version}";
@@ -32,56 +71,24 @@ stdenv.mkDerivation rec {
     cp -R . "$opt"
     mkdir -p "$out/bin"
     ln -s "$opt/${longName}" "$out/bin/"
-    ln -s "${udev.lib}/lib/libudev.so.1" "$opt/libudev.so.1"
     mkdir -p "$out/share"
     cp -r "${desktopItem}/share/applications" "$out/share/"
     mkdir -p "$out/share/icons"
     ln -s "$opt/icon.png" "$out/share/icons/airtame.png"
-  '';
 
-  preFixup = let
-    libPath = lib.makeLibraryPath [
-      alsaLib
-      atk
-      cairo
-      cups
-      dbus.lib
-      expat
-      fontconfig
-      freetype
-      gdk_pixbuf
-      glib
-      gnome2.GConf
-      gnome2.gtk
-      gnome2.pango
-      nspr
-      nss
-      udev.lib
-      stdenv.cc.cc.lib
-      xlibs.libX11
-      xlibs.libXScrnSaver
-      xlibs.libXcomposite
-      xlibs.libXcursor
-      xlibs.libXdamage
-      xlibs.libXext
-      xlibs.libXfixes
-      xlibs.libXi
-      xlibs.libXrandr
-      xlibs.libXrender
-      xlibs.libXtst
-      xlibs.libxcb
-    ];
-  in ''
-    patchelf $opt/${longName} \
-      --set-interpreter "$(< $NIX_CC/nix-support/dynamic-linker)" \
-      --set-rpath "$opt:${libPath}"
+    # Flags and rpath are copied from launch-airtame.sh.
+    interp="$(< $NIX_CC/nix-support/dynamic-linker)"
+    vendorlib="$opt/resources/app.asar.unpacked/streamer/vendor/airtame-core/lib"
+    rpath="${libPath}:$opt:$vendorlib:$opt/resources/app.asar.unpacked/encryption/out/lib"
+    rm $vendorlib/libcurl.so*
+    find "$opt" \( -type f -executable -o -name "*.so" -o -name "*.so.*" \) \
+      -exec patchelf --set-rpath "$rpath" {} \;
+    # The main binary also needs libudev which was removed by --shrink-rpath.
+    patchelf --set-interpreter "$interp" $opt/${longName}
+    wrapProgram $opt/${longName} --add-flags "--disable-gpu --enable-transparent-visuals"
   '';
 
-  postFixup = ''
-    wrapProgram $opt/${longName} \
-      --set LD_LIBRARY_PATH "$opt/resources/app.asar.unpacked/streamer/vendor/airtame-core/lib:$opt/resources/app.asar.unpacked/encryption/out/lib" \
-      --add-flags "--disable-gpu --enable-transparent-visuals"
-  '';
+  dontPatchELF = true;
 
   meta = with stdenv.lib; {
     homepage = https://airtame.com/download;