tor-browser-bundle: factor out extensions

This commit is contained in:
Joachim Fasting 2017-09-27 07:10:42 +02:00
parent 47f099777c
commit 2651602c17
No known key found for this signature in database
GPG Key ID: 66EAB6B14F6B6E0D
2 changed files with 125 additions and 134 deletions

View File

@ -15,7 +15,6 @@
, noto-fonts-emoji
# Extensions, common
, unzip
, zip
# HTTPS Everywhere
@ -36,139 +35,9 @@ 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}";
sha256 = "0z9madihh4b4z4blvfmh6w1hsv8afyi0x7b243nciq9r4w55xgfa";
};
nativeBuildInputs = [
git
libxml2 # xmllint
python27
python27Packages.lxml
rsync
unzip
zip
];
unpackPhase = ''
cp -dR --no-preserve=mode "$src" src
cd src
'';
# Beware: the build expects translations/ to be non-empty (which it
# will be with submodules initialized).
buildPhase = ''
$shell ./makexpi.sh ${version} --no-recurse
'';
installPhase = ''
mkdir $out
unzip -d "$out/$extid" "pkg/https-everywhere-$version-eff.xpi"
'';
meta = {
homepage = https://gitweb.torproject.org/https-everywhere.git/;
};
};
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 = [ unzip zip ];
unpackPhase = ''
cp -dR --no-preserve=mode "$src" src
cd src
'';
buildPhase = ''
$shell ./makexpi.sh
'';
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 = [ unzip zip ];
unpackPhase = ''
cp -dR --no-preserve=mode "$src" src
cd src
'';
buildPhase = ''
make package
'';
installPhase = ''
mkdir $out
unzip -d "$out/$extid" "pkg/tor-launcher-$version.xpi"
'';
meta = {
homepage = https://gitweb.torproject.org/tor-launcher.git/;
};
};
firefoxExtensions = import ./extensions.nix {
inherit stdenv fetchurl fetchgit zip
git libxml2 python27 python27Packages rsync;
};
extensionsEnv = symlinkJoin {

View File

@ -0,0 +1,122 @@
{ stdenv
, fetchgit
, fetchurl
# common
, zip
# HTTPS Everywhere
, git
, libxml2 # xmllint
, python27
, python27Packages
, rsync
}:
{
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}";
sha256 = "0z9madihh4b4z4blvfmh6w1hsv8afyi0x7b243nciq9r4w55xgfa";
};
nativeBuildInputs = [
git
libxml2 # xmllint
python27
python27Packages.lxml
rsync
zip
];
unpackPhase = ''
cp -dR --no-preserve=mode "$src" src && cd src
'';
buildPhase = ''
$shell ./makexpi.sh ${version} --no-recurse
'';
installPhase = ''
install -m 444 -D pkg/https-everywhere-$version-eff.xpi "$out/$extid.xpi"
'';
};
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";
};
unpackPhase = ":";
installPhase = ''
install -m 444 -D $src "$out/$extid.xpi"
'';
};
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 ];
unpackPhase = ''
cp -dR --no-preserve=mode "$src" src && cd src
'';
buildPhase = ''
$shell ./makexpi.sh
'';
installPhase = ''
install -m 444 -D pkg/torbutton-$version.xpi "$out/$extid.xpi"
'';
};
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 ];
unpackPhase = ''
cp -dR --no-preserve=mode "$src" src && cd src
'';
buildPhase = ''
make package
'';
installPhase = ''
install -m 444 -D pkg/tor-launcher-$version.xpi "$out/$extid.xpi"
'';
};
}