Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
43 changes: 18 additions & 25 deletions pkgs/tools/security/tor/torbrowser.nix
Original file line number Diff line number Diff line change
@@ -1,21 +1,16 @@
{ 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
];
extraOutputsToInstall = [ "lib" "out" ];
};
{ 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.5";

Expand Down Expand Up @@ -43,12 +38,10 @@ in stdenv.mkDerivation rec {

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 = ''
Expand All @@ -57,15 +50,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

Expand All @@ -76,8 +71,6 @@ 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/;
Expand Down
4 changes: 3 additions & 1 deletion pkgs/top-level/all-packages.nix
Original file line number Diff line number Diff line change
Expand Up @@ -3462,7 +3462,9 @@ in

torbutton = callPackage ../tools/security/torbutton { };

torbrowser = callPackage ../tools/security/tor/torbrowser.nix { };
torbrowser = callPackage ../tools/security/tor/torbrowser.nix {
inherit (xorg) libXrender libX11 libXext libXt;
};

touchegg = callPackage ../tools/inputmethods/touchegg { };

Expand Down