From 0d806f61d2709f0ff8bf03ee431839035215e689 Mon Sep 17 00:00:00 2001 From: lassulus Date: Sat, 26 Sep 2015 12:12:50 +0200 Subject: [PATCH] lass: add firefoxPatched + firefoxPlugins --- lass/2configs/firefoxPatched.nix | 58 ++++++++++++++++++++++++ lass/5pkgs/default.nix | 5 ++ lass/5pkgs/firefoxPlugins/noscript.nix | 28 ++++++++++++ lass/5pkgs/firefoxPlugins/result | 1 + lass/5pkgs/firefoxPlugins/ublock.nix | 31 +++++++++++++ lass/5pkgs/firefoxPlugins/vimperator.nix | 19 ++++++++ 6 files changed, 142 insertions(+) create mode 100644 lass/2configs/firefoxPatched.nix create mode 100644 lass/5pkgs/firefoxPlugins/noscript.nix create mode 120000 lass/5pkgs/firefoxPlugins/result create mode 100644 lass/5pkgs/firefoxPlugins/ublock.nix create mode 100644 lass/5pkgs/firefoxPlugins/vimperator.nix diff --git a/lass/2configs/firefoxPatched.nix b/lass/2configs/firefoxPatched.nix new file mode 100644 index 000000000..daf8a28be --- /dev/null +++ b/lass/2configs/firefoxPatched.nix @@ -0,0 +1,58 @@ +{ config, lib, pkgs, ... }: + +let + lpkgs = import ../5pkgs { inherit pkgs; }; + + inherit (lib) + concatMapStrings + ; + + plugins = with lpkgs.firefoxPlugins; [ + noscript + ublock + vimperator + ]; + + copyXpi = plugin: + "cp ${plugin}/*.xpi $out/usr/lib/firefox-*/browser/extensions/"; + + preferences = pkgs.writeText "autoload.js" '' + pref('general.config.filename', 'firefox.cfg'); + pref('general.config.obscure_value', 0); + ''; + + config = pkgs.writeText "firefox.cfg" '' + // + lockPref("app.update.enabled", false); + lockPref("extensions.update.enabled", false); + lockPref("autoadmin.global_config_url", ""); + lockPref("extensions.checkUpdateSecurity", false); + lockPref("services.sync.enabled", false); + lockPref("browser.shell.checkDefaultBrowser", false); + lockPref("layout.spellcheckDefault", 0); + lockPref("app.update.auto", false); + lockPref("browser.newtabpage.enabled", false); + lockPref("noscript.firstRunRedirection", false); + lockPref("noscript.hoverUI", false); + lockPref("noscript.notify", false); + defaultPref("extensions.newAddons", false); + defaultPref("extensions.autoDisableScopes", 0); + defaultPref("plugin.scan.plid.all", false); + ''; + +in { + environment.systemPackages = [ + (pkgs.lib.overrideDerivation pkgs.firefox-bin (original : { + installPhase = '' + ${original.installPhase} + find $out/usr/lib + ${concatMapStrings copyXpi plugins} + cd $out/usr/lib/firefox-*/ + mkdir -p browser/defaults/preferences + cp ${preferences} browser/defaults/preferences/autoload.js + cp ${config} ./firefox.cfg + ''; + })) + ]; +} + diff --git a/lass/5pkgs/default.nix b/lass/5pkgs/default.nix index 6df35b905..7427cb620 100644 --- a/lass/5pkgs/default.nix +++ b/lass/5pkgs/default.nix @@ -8,4 +8,9 @@ rec { bitlbee-dev = callPackage ./bitlbee-dev.nix {}; bitlbee-steam = callPackage ./bitlbee-steam.nix { inherit bitlbee-dev; }; bitlbee = callPackage ./bitlbee.nix { inherit bitlbee-steam; }; + firefoxPlugins = { + noscript = callPackage ./firefoxPlugins/noscript.nix {}; + ublock = callPackage ./firefoxPlugins/ublock.nix {}; + vimperator = callPackage ./firefoxPlugins/vimperator.nix {}; + }; } diff --git a/lass/5pkgs/firefoxPlugins/noscript.nix b/lass/5pkgs/firefoxPlugins/noscript.nix new file mode 100644 index 000000000..67a00a1b2 --- /dev/null +++ b/lass/5pkgs/firefoxPlugins/noscript.nix @@ -0,0 +1,28 @@ +{ fetchgit, stdenv, bash, zip }: + +stdenv.mkDerivation rec { + name = "noscript"; + id = "{73a6fe31-595d-460b-a920-fcc0f8843232}"; + + src = fetchgit { + url = "https://github.com/avian2/noscript"; + rev = "c900a079793868bb080ab1e23522d29dc121b4c6"; + sha256 = "1y06gh5a622yrsx0h7v92qnvdi97i54ln09zc1lvk8x430z5bdly"; + }; + + buildInputs = [ zip ]; + + patchPhase = '' + substituteInPlace "version.sh" \ + --replace "/bin/bash" "${bash}/bin/bash" + ''; + + buildPhase = '' + ./makexpi.sh + ''; + + installPhase = '' + mkdir -p $out/ + cp *.xpi $out/${id}.xpi + ''; +} diff --git a/lass/5pkgs/firefoxPlugins/result b/lass/5pkgs/firefoxPlugins/result new file mode 120000 index 000000000..aa5334414 --- /dev/null +++ b/lass/5pkgs/firefoxPlugins/result @@ -0,0 +1 @@ +/nix/store/gxr152p1bbgqcd839b0rckdd1h5cr886-vimperator \ No newline at end of file diff --git a/lass/5pkgs/firefoxPlugins/ublock.nix b/lass/5pkgs/firefoxPlugins/ublock.nix new file mode 100644 index 000000000..29ef250e8 --- /dev/null +++ b/lass/5pkgs/firefoxPlugins/ublock.nix @@ -0,0 +1,31 @@ +{ fetchgit, stdenv, bash, python, zip }: + +stdenv.mkDerivation rec { + name = "ublock"; + id = "{2b10c1c8-a11f-4bad-fe9c-1c11e82cac42}"; + + src = fetchgit { + url = "https://github.com/chrisaljoudi/uBlock"; + rev = "a70a50052a7914cbf86d46a725812b98434d8c70"; + sha256 = "1qfzy79f8x01i33x0m95k833z1jgxjwb8wvlr6fj6id1kxfvzh77"; + }; + + buildInputs = [ + zip + python + ]; + + patchPhase = '' + substituteInPlace "tools/make-firefox.sh" \ + --replace "/bin/bash" "${bash}/bin/bash" + ''; + + buildPhase = '' + tools/make-firefox.sh all + ''; + + installPhase = '' + mkdir -p $out/ + cp dist/build/uBlock.firefox.xpi $out/${id}.xpi + ''; +} diff --git a/lass/5pkgs/firefoxPlugins/vimperator.nix b/lass/5pkgs/firefoxPlugins/vimperator.nix new file mode 100644 index 000000000..dabef3d20 --- /dev/null +++ b/lass/5pkgs/firefoxPlugins/vimperator.nix @@ -0,0 +1,19 @@ +{ fetchgit, stdenv, zip }: + +stdenv.mkDerivation rec { + name = "vimperator"; + id = "vimperator@mozdev.org"; + + src = fetchgit { + url = "https://github.com/vimperator/vimperator-labs.git"; + rev = "ba7d8e72516fdc22246748c8183d7bc90f6fb073"; + sha256 = "0drz67qm5hxxzw699rswlpjkg4p2lfipx119pk1nyixrqblcsvq2"; + }; + + buildInputs = [ zip ]; + + installPhase = '' + mkdir -p $out/ + cp downloads/vimperator*.xpi $out/${id}.xpi + ''; +}