diff options
author | Joachim Fasting <joachifm@fastmail.fm> | 2017-09-26 20:28:12 +0200 |
---|---|---|
committer | Joachim Fasting <joachifm@fastmail.fm> | 2017-09-26 23:17:08 +0200 |
commit | 346661d77be29e01a05680fb51ed79049963be33 (patch) | |
tree | 545bdab55660801343875b61df6d2a52ad966921 /pkgs | |
parent | fe3b95e749ac851b1d0890f6fc6d8ae5d9004dd8 (diff) | |
download | nixlib-346661d77be29e01a05680fb51ed79049963be33.tar nixlib-346661d77be29e01a05680fb51ed79049963be33.tar.gz nixlib-346661d77be29e01a05680fb51ed79049963be33.tar.bz2 nixlib-346661d77be29e01a05680fb51ed79049963be33.tar.lz nixlib-346661d77be29e01a05680fb51ed79049963be33.tar.xz nixlib-346661d77be29e01a05680fb51ed79049963be33.tar.zst nixlib-346661d77be29e01a05680fb51ed79049963be33.zip |
tor-browser-bundle: redo extensions
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/applications/networking/browsers/tor-browser-bundle/default.nix | 98 |
1 files changed, 74 insertions, 24 deletions
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix index fb3e06a94be8..96d9feabc150 100644 --- a/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix +++ b/pkgs/applications/networking/browsers/tor-browser-bundle/default.nix @@ -2,11 +2,13 @@ , lib , fetchurl , fetchgit +, symlinkJoin , tor , tor-browser-unwrapped # Extensions, common +, unzip , zip # HTTPS Everywhere @@ -27,11 +29,16 @@ let sha256 = "0j37mqldj33fnzghxifvy6v8vdwkcz0i4z81prww64md5s8qcsa9"; }; + # Each extension drv produces an output comprising an unpacked .xpi + # named after the extension uuid, as it would appear under + # `firefox/extensions'. firefoxExtensions = { https-everywhere = stdenv.mkDerivation rec { name = "https-everywhere-${version}"; version = "5.2.21"; + extid = "https-everywhere-eff@eff.org"; + src = fetchgit { url = "https://git.torproject.org/https-everywhere.git"; rev = "refs/tags/${version}"; @@ -44,16 +51,24 @@ let python27 python27Packages.lxml rsync + unzip zip ]; - buildCommand = '' + unpackPhase = '' cp -dR --no-preserve=mode "$src" src cd src + ''; - sed -i makexpi.sh -e '104d' # cp -a translations/* fails because the dir is empty ... + # Beware: the build expects translations/ to be non-empty (which it + # will be with submodules initialized). + buildPhase = '' $shell ./makexpi.sh ${version} --no-recurse - install -m 444 -Dt $out pkg"/"*.xpi + ''; + + installPhase = '' + mkdir $out + unzip -d "$out/$extid" "pkg/https-everywhere-$version-eff.xpi" ''; meta = { @@ -61,53 +76,98 @@ let }; }; - noscript = fetchurl { - url = https://secure.informaction.com/download/releases/noscript-5.0.10.xpi; - sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g"; + noscript = stdenv.mkDerivation rec { + name = "noscript-${version}"; + version = "5.0.10"; + + extid = "{73a6fe31-595d-460b-a920-fcc0f8843232}"; + + src = fetchurl { + url = "https://secure.informaction.com/download/releases/noscript-${version}.xpi"; + sha256 = "18k5karbaj5mhd9cyjbqgik6044bw88rjalkh6anjanxbn503j6g"; + }; + + nativeBuildInputs = [ unzip ]; + + unpackPhase = ":"; + + installPhase = '' + mkdir $out + unzip -d "$out/$extid" "$src" + ''; }; torbutton = stdenv.mkDerivation rec { name = "torbutton-${version}"; version = "1.9.8.1"; + extid = "torbutton@torproject.org"; + src = fetchgit { url = "https://git.torproject.org/torbutton.git"; rev = "refs/tags/${version}"; sha256 = "1amp0c9ky0a7fsa0bcbi6n6ginw7s2g3an4rj7kvc1lxmrcsm65l"; }; - nativeBuildInputs = [ zip ]; + nativeBuildInputs = [ unzip zip ]; - buildCommand = '' + unpackPhase = '' cp -dR --no-preserve=mode "$src" src cd src + ''; + buildPhase = '' $shell ./makexpi.sh - install -m 444 -Dt $out pkg"/"*.xpi ''; + + installPhase = '' + mkdir $out + unzip -d "$out/$extid" "pkg/torbutton-$version.xpi" + ''; + + meta = { + homepage = https://gitweb.torproject.org/torbutton.git/; + }; }; tor-launcher = stdenv.mkDerivation rec { name = "tor-launcher-${version}"; version = "0.2.12.3"; + extid = "tor-launcher@torproject.org"; + src = fetchgit { url = "https://git.torproject.org/tor-launcher.git"; rev = "refs/tags/${version}"; sha256 = "0126x48pjiy2zm4l8jzhk70w24hviaz560ffp4lb9x0ar615bc9q"; }; - nativeBuildInputs = [ zip ]; + nativeBuildInputs = [ unzip zip ]; - buildCommand = '' + unpackPhase = '' cp -dR --no-preserve=mode "$src" src cd src + ''; + buildPhase = '' make package - install -m 444 -Dt $out pkg"/"*.xpi ''; + + installPhase = '' + mkdir $out + unzip -d "$out/$extid" "pkg/tor-launcher-$version.xpi" + ''; + + meta = { + homepage = https://gitweb.torproject.org/tor-launcher.git/; + }; }; }; + + extensionsEnv = symlinkJoin { + name = "tor-browser-extensions"; + paths = with firefoxExtensions; [ https-everywhere noscript torbutton tor-launcher ]; + }; in stdenv.mkDerivation rec { name = "tor-browser-bundle-${version}"; @@ -163,18 +223,8 @@ stdenv.mkDerivation rec { EOF # Preload extensions - install -m 444 -D \ - ${firefoxExtensions.tor-launcher}/tor-launcher-*.xpi \ - browser/extensions/tor-launcher@torproject.org.xpi - install -m 444 -D \ - ${firefoxExtensions.torbutton}/torbutton-*.xpi \ - browser/extensions/torbutton@torproject.org.xpi - install -m 444 -D \ - ${firefoxExtensions.https-everywhere}/https-everywhere-*-eff.xpi \ - browser/extensions/https-everywhere-eff@eff.org.xpi - install -m 444 -D \ - ${firefoxExtensions.noscript} \ - browser/extensions/{73a6fe31-595d-460b-a920-fcc0f8843232}.xpi + # XXX: the fact that ln -s env browser/extensions fails, symlinkJoin seems a little redundant ... + ln -s -t browser/extensions ${extensionsEnv}"/"* # Copy bundle data cat \ |