diff options
Diffstat (limited to 'pkgs/applications/networking/browsers/chromium/common.nix')
-rw-r--r-- | pkgs/applications/networking/browsers/chromium/common.nix | 67 |
1 files changed, 46 insertions, 21 deletions
diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index bb5a7046dd4..44310b05462 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -1,4 +1,4 @@ -{ stdenv, ninja, which, nodejs, fetchurl, gnutar +{ stdenv, ninja, which, nodejs, fetchurl, fetchpatch, gnutar # default dependencies , bzip2, flac, speex, libopus @@ -11,8 +11,8 @@ , nspr, systemd, kerberos , utillinux, alsaLib , bison, gperf -, glib, gtk2, gtk3, dbus_glib -, libXScrnSaver, libXcursor, libXtst, mesa +, glib, gtk2, gtk3, dbus-glib +, libXScrnSaver, libXcursor, libXtst, libGLU_combined , protobuf, speechd, libXdamage, cups , ffmpeg, harfbuzz, harfbuzz-icu, libxslt, libxml2 @@ -25,7 +25,7 @@ , enableHotwording ? false , enableWideVine ? false , gnomeSupport ? false, gnome ? null -, gnomeKeyringSupport ? false, libgnome_keyring3 ? null +, gnomeKeyringSupport ? false, libgnome-keyring3 ? null , proprietaryCodecs ? true , cupsSupport ? true , pulseSupport ? false, libpulseaudio ? null @@ -44,10 +44,14 @@ let # source tree. extraAttrs = buildFun base; - gentooPatch = name: sha256: fetchurl { + gentooPatch = name: sha256: fetchpatch { url = "https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/files/${name}"; inherit sha256; }; + githubPatch = commit: sha256: fetchpatch { + url = "https://github.com/chromium/chromium/commit/${commit}.patch"; + inherit sha256; + }; mkGnFlags = let @@ -125,36 +129,57 @@ let nspr nss systemd utillinux alsaLib bison gperf kerberos - glib gtk2 gtk3 dbus_glib - libXScrnSaver libXcursor libXtst mesa + glib gtk2 gtk3 dbus-glib + libXScrnSaver libXcursor libXtst libGLU_combined pciutils protobuf speechd libXdamage - ] ++ optional gnomeKeyringSupport libgnome_keyring3 + ] ++ optional gnomeKeyringSupport libgnome-keyring3 ++ optionals gnomeSupport [ gnome.GConf libgcrypt ] ++ optionals cupsSupport [ libgcrypt cups ] ++ optional pulseSupport libpulseaudio; patches = [ ./patches/nix_plugin_paths_52.patch - # To enable ChromeCast, go to chrome://flags and set "Load Media Router Component Extension" to Enabled - # Fixes Chromecast: https://bugs.chromium.org/p/chromium/issues/detail?id=734325 - ./patches/fix_network_api_crash.patch # As major versions are added, you can trawl the gentoo and arch repos at # https://gitweb.gentoo.org/repo/gentoo.git/plain/www-client/chromium/ # https://git.archlinux.org/svntogit/packages.git/tree/trunk?h=packages/chromium # for updated patches and hints about build flags - # (gentooPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000") - ] ++ optionals (versionRange "64" "65") [ - (gentooPatch "chromium-cups-r0.patch" "0hyjlfh062c8h54j4b27y4dq5yzd4w6mxzywk3s02yf6cj3cbkrl") - (gentooPatch "chromium-angle-r0.patch" "0izdrqwsyr48117dhvwdsk8c6dkrnq2njida1q4mb1lagvwbz7gc") ] ++ optionals (versionRange "65" "66") [ - #(gentooPatch "chromium-gcc-r0.patch" "127xdwabizn5gz8rf1qsw62i7m0b5bsfjqxv4kdbsnizmjanddf8") - #(gentooPatch "chromium-memcpy-r0.patch" "1d3vra59wjg2lva7ddv55ff6l57mk9k50llsplr0b7vxk0lh0ps5") - (gentooPatch "chromium-webrtc-r0.patch" "0qj5b4w9kav51ylpdf38vm5w7p2gx4qp8p45vrfggp7miicg9cmw") - #(gentooPatch "chromium-vulkan-r0.patch" "1wphsbc6kyck5qanbc4bv14iw2s67fvp1c0kwz29a2avzkz19s84") - #(gentooPatch "chromium-ffmpeg-r0.patch" "0j58g24j6n6vpy6v9wwv34x0dd43m52wg0xcrfkzp72km9wiahff") + (gentooPatch "chromium-stdint.patch" "037gjnc8h087g6dpxz53nqvzbpa9mq0z47h25vix9p62s9nhz2a8") + (gentooPatch "chromium-webrtc-r0.patch" "0wp4zivbv2wpgiwmiznbq1aw4w98mvwjvdy36cpfmnvr8yw430pd") + (gentooPatch "chromium-math.h-r0.patch" "0dlzbdj0lvp9qklgifsvgbn6p1ppxbl3hkwqqqfsw1d9jka9wy8x") + # To enable ChromeCast, go to chrome://flags and set "Load Media Router Component Extension" to Enabled + # Fixes Chromecast: https://bugs.chromium.org/p/chromium/issues/detail?id=734325 + (githubPatch "1517db71cccaec48a05cdf30208e0cba7ab9b9a8" "08ac502cwwb05ml3w4wzn66i5c2d1h22xs5rzszwlnhxckxfc0fk") + # GCC 7 fixes + (githubPatch "f64fadcd79aebe5ed893ecbf258d1123609d28f8" "1h255w1v327r08cnifs19s4bwmkinqjmdmbwihddc5dyl43sjnvv") + (githubPatch "4d8468a07f374c11425494271256151fb6fe0c34" "0kqqq8kj0zv5bi1n9mm0vnn8wsgi98mjmj7snpav21fh3pgiqjrm") + (githubPatch "ede5178322ccd297b0ad82ae4c59119ceaab9ea5" "0rsal0dy0yhgs4lhn8h1vy1s77xcssy4f5wals7hvrz5m08jqizj") + (githubPatch "7d721f438acb38db556ae9a9e6e8b718bd503216" "13lzvxm63zq3rd8p387ylq4bm9wr4r09vk2w4p81f838pf0v1kbj") + # Following commit doesn't apply cleanly to stable branch, replace with handcrafted one + #(githubPatch "4f2b52281ce1649ea8347489443965ad33262ecc" "1g59izkicn9cpcphamdgrijs306h5b9i7i4pmy134asn1ifiax5z") + ./patches/PlaybackImageProvider-copy-constructor.patch + # * base/optional.h + (githubPatch "f1c8789c71dbdaeeef98ecd52c9715495824e6b0" "0w3d82s10cl10r6zq9vpsscmdhbdkcy0vbdiqy5pvbr031nfxw5w") + (githubPatch "5cae9645215d02cb1f986a181a208f8a4817fc86" "052y0f9nwq6y6jh2gvr1pm8qdcqghyi3jj5svvrp5aqirlkwb7ri") + # * ConfigurationPolicyProviders + (githubPatch "1ee888aed9f9a6291570ce360bcdd2d06bcc68cb" "1bm34p3bsny44sk60j842ghhhx8qaibwpqnfnyndfj96f7nb2az0") + (githubPatch "76da73abaeede740fc97479c09c92a52972bc477" "03rkf514ddj9d32d3zfcnf96kzzdk6cwxvrqj8acyv93vp1hvckr") #(gentooPatch "<patch>" "0000000000000000000000000000000000000000000000000000000000000000") - ] ++ optional enableWideVine ./patches/widevine.patch; + ] ++ optionals (versionRange "66" "67") [ + (gentooPatch "chromium-webrtc-r0.patch" "0wp4zivbv2wpgiwmiznbq1aw4w98mvwjvdy36cpfmnvr8yw430pd") + (gentooPatch "chromium-ffmpeg-r1.patch" "1k8agaqsvg0w0s6s5wh346ih02cc86vr0vwyshw2q9vafa0jvmq4") + # GCC 7 fixes + (githubPatch "f64fadcd79aebe5ed893ecbf258d1123609d28f8" "1h255w1v327r08cnifs19s4bwmkinqjmdmbwihddc5dyl43sjnvv") + (githubPatch "ede5178322ccd297b0ad82ae4c59119ceaab9ea5" "0rsal0dy0yhgs4lhn8h1vy1s77xcssy4f5wals7hvrz5m08jqizj") + (githubPatch "7d721f438acb38db556ae9a9e6e8b718bd503216" "13lzvxm63zq3rd8p387ylq4bm9wr4r09vk2w4p81f838pf0v1kbj") + (githubPatch "ba4141e451f4e0b1b19410b1b503bd32e150df06" "1cjxw1f9fin6z12b0mcxnxf2mdjb0n3chwz7mgvmp9yij8qhqnxj") + (githubPatch "b34ed1e6524479d61ee944ebf6ca7389ea47e563" "1s13zw93nsyr259dzck6gbhg4x46qg5sg14djf4bvrrc6hlkiczw") + (githubPatch "4f2b52281ce1649ea8347489443965ad33262ecc" "1g59izkicn9cpcphamdgrijs306h5b9i7i4pmy134asn1ifiax5z") + ] ++ optional enableWideVine ./patches/widevine.patch + ++ optionals (stdenv.isAarch64 && versionRange "65" "66") [ + ./patches/skia_buildfix.patch + ]; postPatch = '' # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX |