summaryrefslogtreecommitdiffstats
path: root/pkgs/applications/networking/browsers/chromium
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium')
-rw-r--r--pkgs/applications/networking/browsers/chromium/browser.nix17
-rw-r--r--pkgs/applications/networking/browsers/chromium/common.nix27
-rw-r--r--pkgs/applications/networking/browsers/chromium/default.nix14
-rw-r--r--pkgs/applications/networking/browsers/chromium/ungoogled.nix43
-rwxr-xr-xpkgs/applications/networking/browsers/chromium/update.py3
-rw-r--r--pkgs/applications/networking/browsers/chromium/upstream-info.json16
6 files changed, 111 insertions, 9 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index d3953da71d28..b9a42e825f31 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -1,4 +1,4 @@
-{ stdenv, mkChromiumDerivation, channel, enableWideVine }:
+{ stdenv, mkChromiumDerivation, channel, enableWideVine, ungoogled }:
with stdenv.lib;
@@ -69,18 +69,25 @@ mkChromiumDerivation (base: rec {
requiredSystemFeatures = [ "big-parallel" ];
meta = {
- description = "An open source web browser from Google";
+ description = "An open source web browser from Google"
+ + optionalString ungoogled ", with dependencies on Google web services removed";
longDescription = ''
Chromium is an open source web browser from Google that aims to build a
safer, faster, and more stable way for all Internet users to experience
the web. It has a minimalist user interface and provides the vast majority
of source code for Google Chrome (which has some additional features).
'';
- homepage = "https://www.chromium.org/";
- maintainers = with maintainers; [ primeos thefloweringash bendlas ]; # See README.md
+ homepage = if ungoogled
+ then "https://github.com/Eloston/ungoogled-chromium"
+ else "https://www.chromium.org/";
+ maintainers = with maintainers; if ungoogled
+ then [ squalus primeos ]
+ else [ primeos thefloweringash bendlas ];
license = if enableWideVine then licenses.unfree else licenses.bsd3;
platforms = platforms.linux;
- hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
+ hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium")
+ then ["aarch64-linux" "x86_64-linux"]
+ else [];
timeout = 172800; # 48 hours (increased from the Hydra default of 10h)
};
})
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix
index 0c16d0c9ec60..d754c2769c90 100644
--- a/pkgs/applications/networking/browsers/chromium/common.nix
+++ b/pkgs/applications/networking/browsers/chromium/common.nix
@@ -31,6 +31,7 @@
, proprietaryCodecs ? true
, cupsSupport ? true
, pulseSupport ? false, libpulseaudio ? null
+, ungoogled ? false, ungoogled-chromium
, channel
, upstream-info
@@ -109,6 +110,10 @@ let
result
else result;
+ ungoogler = ungoogled-chromium {
+ inherit (upstream-info.deps.ungoogled-patches) rev sha256;
+ };
+
base = rec {
name = "${packageName}-unwrapped-${version}";
inherit (upstream-info) version;
@@ -208,6 +213,10 @@ let
'' + optionalString stdenv.isAarch64 ''
substituteInPlace build/toolchain/linux/BUILD.gn \
--replace 'toolprefix = "aarch64-linux-gnu-"' 'toolprefix = ""'
+ '' + optionalString ungoogled ''
+ ${ungoogler}/utils/prune_binaries.py . ${ungoogler}/pruning.list || echo "some errors"
+ ${ungoogler}/utils/patches.py . ${ungoogler}/patches
+ ${ungoogler}/utils/domain_substitution.py apply -r ${ungoogler}/domain_regex.list -f ${ungoogler}/domain_substitution.list -c ./ungoogled-domsubcache.tar.gz .
'';
gnFlags = mkGnFlags ({
@@ -260,6 +269,24 @@ let
use_system_minigbm = true;
use_system_libdrm = true;
system_wayland_scanner_path = "${wayland}/bin/wayland-scanner";
+ } // optionalAttrs ungoogled {
+ chrome_pgo_phase = 0;
+ enable_hangout_services_extension = false;
+ enable_js_type_check = false;
+ enable_mdns = false;
+ enable_nacl_nonsfi = false;
+ enable_one_click_signin = false;
+ enable_reading_list = false;
+ enable_remoting = false;
+ enable_reporting = false;
+ enable_service_discovery = false;
+ exclude_unwind_tables = true;
+ google_api_key = "";
+ google_default_client_id = "";
+ google_default_client_secret = "";
+ safe_browsing_mode = 0;
+ use_official_google_api_keys = false;
+ use_unofficial_version_number = false;
} // (extraAttrs.gnFlags or {}));
configurePhase = ''
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index e35e4d945dde..0cbfbc332706 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -15,6 +15,7 @@
, enablePepperFlash ? false
, enableWideVine ? false
, enableVaapi ? false # Disabled by default due to unofficial support
+, ungoogled ? false # Whether to build chromium or ungoogled-chromium
, cupsSupport ? true
, pulseSupport ? config.pulseaudio or stdenv.isLinux
, commandLineArgs ? ""
@@ -33,7 +34,7 @@ let
mkChromiumDerivation = callPackage ./common.nix ({
inherit channel gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs
- cupsSupport pulseSupport;
+ cupsSupport pulseSupport ungoogled;
gnChromium = gn.overrideAttrs (oldAttrs: {
inherit (upstream-info.deps.gn) version;
src = fetchgit {
@@ -42,11 +43,13 @@ let
});
});
- browser = callPackage ./browser.nix { inherit channel enableWideVine; };
+ browser = callPackage ./browser.nix { inherit channel enableWideVine ungoogled; };
plugins = callPackage ./plugins.nix {
inherit enablePepperFlash;
};
+
+ ungoogled-chromium = callPackage ./ungoogled.nix {};
};
pkgSuffix = if channel == "dev" then "unstable" else channel;
@@ -113,7 +116,9 @@ let
};
};
- suffix = if channel != "stable" then "-" + channel else "";
+ suffix = if (channel == "stable" || channel == "ungoogled-chromium")
+ then ""
+ else "-" + channel;
sandboxExecutableName = chromium.browser.passthru.sandboxExecutableName;
@@ -133,7 +138,8 @@ let
else browser;
in stdenv.mkDerivation {
- name = "chromium${suffix}-${version}";
+ name = lib.optionalString ungoogled "ungoogled-"
+ + "chromium${suffix}-${version}";
inherit version;
buildInputs = [
diff --git a/pkgs/applications/networking/browsers/chromium/ungoogled.nix b/pkgs/applications/networking/browsers/chromium/ungoogled.nix
new file mode 100644
index 000000000000..299b19f2f4f6
--- /dev/null
+++ b/pkgs/applications/networking/browsers/chromium/ungoogled.nix
@@ -0,0 +1,43 @@
+{ stdenv
+, fetchFromGitHub
+, python3Packages
+, makeWrapper
+, patch
+}:
+
+{ rev
+, sha256
+}:
+
+stdenv.mkDerivation rec {
+ name = "ungoogled-chromium-${version}";
+
+ version = rev;
+
+ src = fetchFromGitHub {
+ owner = "Eloston";
+ repo = "ungoogled-chromium";
+ inherit rev sha256;
+ };
+
+ dontBuild = true;
+
+ buildInputs = [
+ python3Packages.python
+ patch
+ ];
+
+ nativeBuildInputs = [
+ makeWrapper
+ ];
+
+ patchPhase = ''
+ sed -i '/chromium-widevine/d' patches/series
+ '';
+
+ installPhase = ''
+ mkdir $out
+ cp -R * $out/
+ wrapProgram $out/utils/patches.py --add-flags "apply" --prefix PATH : "${patch}/bin"
+ '';
+}
diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py
index 9e1f0aec598d..57fe268e72fe 100755
--- a/pkgs/applications/networking/browsers/chromium/update.py
+++ b/pkgs/applications/networking/browsers/chromium/update.py
@@ -113,9 +113,12 @@ with open(JSON_PATH, 'w') as out:
return 1
elif channel_name == 'dev':
return 2
+ elif channel_name == 'ungoogled-chromium':
+ return 3
else:
print(f'Error: Unexpected channel: {channel_name}', file=sys.stderr)
sys.exit(1)
+ channels['ungoogled-chromium'] = last_channels['ungoogled-chromium'] # Keep ungoogled-chromium unchanged
sorted_channels = OrderedDict(sorted(channels.items(), key=get_channel_key))
json.dump(sorted_channels, out, indent=2)
out.write('\n')
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json
index 3b64e601eba6..1fd36cb15f30 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.json
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json
@@ -42,5 +42,21 @@
"sha256": "1xcm07qjk6m2czi150fiqqxql067i832adck6zxrishm70c9jbr9"
}
}
+ },
+ "ungoogled-chromium": {
+ "version": "87.0.4280.88",
+ "sha256": "1h09g9b2zxad85vd146ymvg3w2kpngpi78yig3dn1vrmhwr4aiiy",
+ "deps": {
+ "ungoogled-patches": {
+ "rev": "87.0.4280.88-1",
+ "sha256": "0w2137w8hfcgl6f938hqnb4ffp33v5r8vdzxrvs814w7dszkiqgg"
+ },
+ "gn": {
+ "version": "2020-09-09",
+ "url": "https://gn.googlesource.com/gn",
+ "rev": "e002e68a48d1c82648eadde2f6aafa20d08c36f2",
+ "sha256": "0x4c7amxwzxs39grqs3dnnz0531mpf1p75niq7zhinyfqm86i4dk"
+ }
+ }
}
}