From 3ec05d6237a9c6303bc83ba7712eaeebb2c21766 Mon Sep 17 00:00:00 2001 From: Joachim Fasting Date: Thu, 28 Sep 2017 02:43:40 +0200 Subject: tor-browser-bundle: feature parity with the binary bundle This will be factored later (eventually both will be subsumed by a more generic construct). Don't bother with pulseaudio support, however. --- .../browsers/tor-browser-bundle/default.nix | 67 ++++++++++++++++++++++ 1 file changed, 67 insertions(+) (limited to 'pkgs/applications/networking/browsers/tor-browser-bundle') diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix index 16182c8e4e71..6b582c756a3b 100644 --- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix +++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix @@ -14,6 +14,19 @@ , noto-fonts , noto-fonts-emoji +# Audio support +, audioSupport ? mediaSupport +, apulse + +# Media support (implies audio support) +, mediaSupport ? false +, gstreamer +, gst-plugins-base +, gst-plugins-good +, gst-ffmpeg +, gmp +, ffmpeg + # Extensions, common , zip @@ -57,6 +70,21 @@ let }; fontsDir = "${fontsEnv}/share/fonts"; + + gstPluginsPath = lib.concatMapStringsSep ":" (x: + "${x}/lib/gstreamer-0.10") [ + gstreamer + gst-plugins-base + gst-plugins-good + gst-ffmpeg + ]; + + gstLibPath = lib.makeLibraryPath [ + gstreamer + gst-plugins-base + gmp + ffmpeg + ]; in stdenv.mkDerivation rec { name = "tor-browser-bundle-${version}"; @@ -109,6 +137,13 @@ stdenv.mkDerivation rec { lockPref("extensions.torlauncher.control_port_use_ipc", true); lockPref("extensions.torlauncher.socks_port_use_ipc", true); + // Allow sandbox access to sound devices if using ALSA directly + ${if audioSupport then '' + pref("security.sandbox.content.write_path_whitelist", "/dev/snd/"); + '' else '' + clearPref("security.sandbox.content.write_path_whitelist"); + ''} + // User customization ${extraPrefs} EOF @@ -141,6 +176,15 @@ stdenv.mkDerivation rec { shared_mime_info ]} + ${lib.optionalString audioSupport '' + # apulse uses a non-standard library path ... + wrapper_LD_LIBRARY_PATH=${apulse}/lib/apulse''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH} + ''} + + ${lib.optionalString mediaSupport '' + wrapper_LD_LIBRARY_PATH=${gstLibPath}''${wrapper_LD_LIBRARY_PATH:+:$wrapper_LD_LIBRARY_PATH} + ''} + mkdir -p $out/bin cat >$out/bin/tor-browser <