about summary refs log tree commit diff
path: root/pkgs/tools/security/tor/torbrowser.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/tools/security/tor/torbrowser.nix')
-rw-r--r--pkgs/tools/security/tor/torbrowser.nix52
1 files changed, 24 insertions, 28 deletions
diff --git a/pkgs/tools/security/tor/torbrowser.nix b/pkgs/tools/security/tor/torbrowser.nix
index ef00a8538a96..c8f9c3dae970 100644
--- a/pkgs/tools/security/tor/torbrowser.nix
+++ b/pkgs/tools/security/tor/torbrowser.nix
@@ -1,28 +1,24 @@
-{ stdenv, fetchurl, buildEnv, makeDesktopItem
-, xorg, alsaLib, dbus, dbus_glib, glib, gtk, atk, pango, freetype, fontconfig
-, gdk_pixbuf, cairo, zlib}:
-let
-  # isolated tor environment
-  torEnv = buildEnv {
-    name = "tor-env";
-    paths = [
-      stdenv.cc.cc zlib glib alsaLib dbus dbus_glib gtk atk pango freetype
-      fontconfig gdk_pixbuf cairo xorg.libXrender xorg.libX11 xorg.libXext
-      xorg.libXt
-    ];
-  };
+{ stdenv, fetchurl, makeDesktopItem
+, libXrender, libX11, libXext, libXt, alsaLib, dbus, dbus_glib, glib, gtk
+, atk, pango, freetype, fontconfig, gdk_pixbuf, cairo, zlib
+}:
 
-  ldLibraryPath = ''${torEnv}/lib${stdenv.lib.optionalString stdenv.is64bit ":${torEnv}/lib64"}'';
+let
+  libPath = stdenv.lib.makeLibraryPath [
+    stdenv.cc.cc zlib glib alsaLib dbus dbus_glib gtk atk pango freetype
+    fontconfig gdk_pixbuf cairo libXrender libX11 libXext libXt
+  ];
+in
 
-in stdenv.mkDerivation rec {
+stdenv.mkDerivation rec {
   name = "tor-browser-${version}";
-  version = "5.5.4";
+  version = "5.5.5";
 
   src = fetchurl {
     url = "https://archive.torproject.org/tor-package-archive/torbrowser/${version}/tor-browser-linux${if stdenv.is64bit then "64" else "32"}-${version}_en-US.tar.xz";
     sha256 = if stdenv.is64bit then
-      "0sjx2r7z7s3x1ygs9xak1phng13jcf4d5pcfyfrfsrd8kb1yn8xa" else
-      "0w9wk9hk57hyhhx7l4sr2x64ki9882fr6py2can1slr7kbb4mhpb";
+      "0k6v41j880fb4zdxk1v13kmizdaz5rwvi5lskdbdi68iml4p53gj" else
+      "04mqjmnxwa75yi8gmdwadkzrzikgxn08bkvr50zdm7id9fj4nkza";
   };
 
   desktopItem = makeDesktopItem {
@@ -38,16 +34,16 @@ in stdenv.mkDerivation rec {
   patchPhase = ''
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" Browser/firefox
     patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" Browser/TorBrowser/Tor/tor
+
+    sed -e "s,./TorBrowser,$out/share/tor-browser/Browser/TorBrowser,g" -i Browser/TorBrowser/Data/Tor/torrc-defaults
   '';
 
   doCheck = true;
   checkPhase = ''
-    # Just do a simple test if all libraries get loaded by running help on
-    # firefox and tor
     echo "Checking firefox..."
-    LD_LIBRARY_PATH=${ldLibraryPath} Browser/firefox --help 1> /dev/null
+    LD_LIBRARY_PATH=${libPath} Browser/firefox --help 1> /dev/null
     echo "Checking tor..."
-    LD_LIBRARY_PATH=${torEnv}/lib:Browser/TorBrowser/Tor Browser/TorBrowser/Tor/tor --help 1> /dev/null
+    LD_LIBRARY_PATH=${libPath}:Browser/TorBrowser/Tor Browser/TorBrowser/Tor/tor --help 1> /dev/null
   '';
 
   installPhase = ''
@@ -56,15 +52,17 @@ in stdenv.mkDerivation rec {
     cp -R * $out/share/tor-browser
 
     cat > "$out/bin/tor-browser" << EOF
-    #!${stdenv.shell}
+    #! ${stdenv.shell}
+    unset SESSION_MANAGER
     export HOME="\$HOME/.torbrowser4"
     if [ ! -d \$HOME ]; then
       mkdir -p \$HOME && cp -R $out/share/tor-browser/Browser/TorBrowser/Data \$HOME/ && chmod -R +w \$HOME
       echo "pref(\"extensions.torlauncher.tordatadir_path\", \"\$HOME/Data/Tor/\");" >> \
         ~/Data/Browser/profile.default/preferences/extension-overrides.js
     fi
-    export LD_LIBRARY_PATH=${ldLibraryPath}:$out/share/tor-browser/Browser/TorBrowser/Tor
-    $out/share/tor-browser/Browser/firefox -no-remote -profile ~/Data/Browser/profile.default "$@"
+    export FONTCONFIG_PATH=\$HOME/Data/fontconfig
+    export LD_LIBRARY_PATH=${libPath}:$out/share/tor-browser/Browser/TorBrowser/Tor
+    exec $out/share/tor-browser/Browser/firefox --class "Tor Browser" -no-remote -profile ~/Data/Browser/profile.default "\$@"
     EOF
     chmod +x $out/bin/tor-browser
 
@@ -75,12 +73,10 @@ in stdenv.mkDerivation rec {
     cp Browser/browser/icons/mozicon128.png $out/share/pixmaps/torbrowser.png
   '';
 
-  buildInputs = [ stdenv ];
-
   meta = with stdenv.lib; {
     description = "Tor Browser Bundle";
     homepage    = https://www.torproject.org/;
     platforms   = platforms.linux;
-    maintainers = with maintainers; [ offline matejc doublec thoughtpolice ];
+    maintainers = with maintainers; [ offline matejc doublec thoughtpolice joachifm ];
   };
 }