From 4140c7fe16d58c79f98d8a29abda1e4cda116924 Mon Sep 17 00:00:00 2001 From: Bryan Gardiner Date: Thu, 10 Sep 2015 09:37:27 -0700 Subject: [PATCH 1/4] openjdk8: add the architecture passthru from openjdk7 --- pkgs/development/compilers/openjdk/8.nix | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/pkgs/development/compilers/openjdk/8.nix b/pkgs/development/compilers/openjdk/8.nix index bb1bba5d1c6f..0e9184e1c628 100644 --- a/pkgs/development/compilers/openjdk/8.nix +++ b/pkgs/development/compilers/openjdk/8.nix @@ -5,6 +5,18 @@ }: let + + /** + * The JRE libraries are in directories that depend on the CPU. + */ + architecture = + if stdenv.system == "i686-linux" then + "i386" + else if stdenv.system == "x86_64-linux" then + "amd64" + else + throw "openjdk requires i686-linux or x86_64 linux"; + update = "60"; build = "24"; baseurl = "http://hg.openjdk.java.net/jdk8u/jdk8u"; @@ -204,6 +216,9 @@ let platforms = platforms.linux; }; - passthru.home = "${openjdk8}/lib/openjdk"; + passthru = { + inherit architecture; + home = "${openjdk8}/lib/openjdk"; + }; }; in openjdk8 From 8ef6197be5da964f35dec5a4a580fb9685ee9e2e Mon Sep 17 00:00:00 2001 From: Bryan Gardiner Date: Thu, 10 Sep 2015 09:48:15 -0700 Subject: [PATCH 2/4] jitsi: patch RPATHs of bundled .so files Possibly helps with bug #3482. --- .../instant-messengers/jitsi/default.nix | 26 ++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix index 195c95884780..decd7b6f3926 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''; @@ -35,6 +53,12 @@ stdenv.mkDerivation rec { chmod +x $out/bin/jitsi sed -i 's| java | ${jdk}/bin/java |' $out/bin/jitsi 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 = { From e422c2398cd946b3e80ee415f76f4d5c930396b4 Mon Sep 17 00:00:00 2001 From: Bryan Gardiner Date: Thu, 10 Sep 2015 09:48:25 -0700 Subject: [PATCH 3/4] jitsi: make a path patch for java slightly safer --- .../networking/instant-messengers/jitsi/default.nix | 2 +- .../networking/instant-messengers/jitsi/jitsi.patch | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix index decd7b6f3926..f8a637ca4fe7 100644 --- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix +++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix @@ -51,7 +51,7 @@ 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}" 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 From 476f2e3e2dda1def282808870e8055021484b3f4 Mon Sep 17 00:00:00 2001 From: Bryan Gardiner Date: Fri, 11 Sep 2015 20:54:30 -0700 Subject: [PATCH 4/4] jitsi: add myself as maintainer --- .../applications/networking/instant-messengers/jitsi/default.nix | 1 + 1 file changed, 1 insertion(+) diff --git a/pkgs/applications/networking/instant-messengers/jitsi/default.nix b/pkgs/applications/networking/instant-messengers/jitsi/default.nix index f8a637ca4fe7..c3548af93469 100644 --- a/pkgs/applications/networking/instant-messengers/jitsi/default.nix +++ b/pkgs/applications/networking/instant-messengers/jitsi/default.nix @@ -66,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 ]; }; }