about summary refs log tree commit diff
path: root/pkgs/applications
diff options
context:
space:
mode:
authorEdward Tjörnhammar <ed@cflags.cc>2015-09-16 16:10:04 +0200
committerEdward Tjörnhammar <ed@cflags.cc>2015-09-16 16:10:04 +0200
commitc6cadd11db59f76722c576e1ec87c70fab3dfc8c (patch)
tree7e80d11734e0f478e936cccd2d4cdf2e80eec9f5 /pkgs/applications
parent0af5fccf2a6bdc9224b03e32ca42800ddc68d433 (diff)
parent476f2e3e2dda1def282808870e8055021484b3f4 (diff)
downloadnixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.tar
nixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.tar.gz
nixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.tar.bz2
nixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.tar.lz
nixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.tar.xz
nixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.tar.zst
nixlib-c6cadd11db59f76722c576e1ec87c70fab3dfc8c.zip
Merge pull request #9785 from khumba/jitsi-rpath-fix
jitsi: patch RPATHs for missing libraries
Diffstat (limited to 'pkgs/applications')
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/default.nix29
-rw-r--r--pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch2
2 files changed, 28 insertions, 3 deletions
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
index 195c95884780..c3548af93469 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix
+++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix
@@ -1,4 +1,7 @@
-{ stdenv, fetchurl, makeDesktopItem, unzip, ant, jdk }:
+{ stdenv, lib, fetchurl, makeDesktopItem, unzip, ant, jdk
+# Optional, Jitsi still runs without, but you may pass null:
+, alsaLib, dbus_libs, gtk2, libpulseaudio, openssl, xlibs
+}:
 
 stdenv.mkDerivation rec {
 
@@ -22,6 +25,21 @@ stdenv.mkDerivation rec {
     categories = "Application;Internet;";
   };
 
+  libPath = lib.makeLibraryPath ([
+    stdenv.cc.cc  # For libstdc++.
+  ] ++ lib.filter (x: x != null) [
+    alsaLib
+    dbus_libs
+    gtk2
+    libpulseaudio
+    openssl
+  ] ++ lib.optionals (xlibs != null) [
+    xlibs.libX11
+    xlibs.libXext
+    xlibs.libXScrnSaver
+    xlibs.libXv
+  ]);
+
   buildInputs = [unzip ant jdk];
 
   buildPhase = ''ant make'';
@@ -33,8 +51,14 @@ stdenv.mkDerivation rec {
     mkdir $out/bin
     cp resources/install/generic/run.sh $out/bin/jitsi
     chmod +x $out/bin/jitsi
-    sed -i 's| java | ${jdk}/bin/java |' $out/bin/jitsi
+    substituteInPlace $out/bin/jitsi --replace '@JAVA@' '${jdk}/bin/java'
     patchShebangs $out
+
+    libPath="$libPath:${jdk.jre.home}/lib/${jdk.architecture}"
+    find $out/ -type f -name '*.so' | while read file; do
+      patchelf --set-rpath "$libPath" "$file" && \
+          patchelf --shrink-rpath "$file"
+    done
   '';
 
   meta = {
@@ -42,6 +66,7 @@ stdenv.mkDerivation rec {
     description = "Open Source Video Calls and Chat";
     license = stdenv.lib.licenses.lgpl21Plus.shortName;
     platforms = stdenv.lib.platforms.linux;
+    maintainers = [ stdenv.lib.maintainers.khumba ];
   };
 
 }
diff --git a/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch b/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
index 9163cecd175b..942b3cd0cbe6 100644
--- a/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
+++ b/pkgs/applications/networking/instant-messengers/jitsi/jitsi.patch
@@ -24,4 +24,4 @@
  
  export PATH=$PATH:native
 -java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=native -Dfelix.config.properties=file:./lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
-+exec java $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator
++exec @JAVA@ $CLIENTARGS -classpath "lib/felix.jar:sc-bundles/sc-launcher.jar:sc-bundles/util.jar:lib/" -Djava.library.path=$NATIVELIBS -Dfelix.config.properties=file:lib/felix.client.run.properties -Djava.util.logging.config.file=lib/logging.properties net.java.sip.communicator.launcher.SIPCommunicator