diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 923084a5738..a2d8a24ec5e 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -138,27 +138,18 @@ let ++ optional pulseSupport libpulseaudio; patches = [ - ./patches/nix_plugin_paths_52.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 "" "0000000000000000000000000000000000000000000000000000000000000000") - ] ++ 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" "67") [ - ./patches/skia_buildfix.patch - ./patches/neon_buildfix.patch - ]; + ./patches/fix-openh264.patch + ./patches/fix-freetype.patch + ] ++ optionals (versionRange "66" "68") [ + ./patches/nix_plugin_paths_52.patch + ] ++ optionals (versionAtLeast version "68") [ + ./patches/nix_plugin_paths_68.patch + ] ++ optional enableWideVine ./patches/widevine.patch; postPatch = '' # We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX @@ -198,8 +189,10 @@ let tar -xJf ${freetype_source} # remove unused third-party + # in third_party/crashpad third_party/zlib contains just a header-adapter for lib in ${toString gnSystemLibraries}; do find -type f -path "*third_party/$lib/*" \ + \! -path "*third_party/crashpad/crashpad/third_party/zlib/*" \ \! -path "*third_party/$lib/chromium/*" \ \! -path "*third_party/$lib/google/*" \ \! -path "*base/third_party/icu/*" \ diff --git a/pkgs/applications/networking/browsers/chromium/patches/fix-freetype.patch b/pkgs/applications/networking/browsers/chromium/patches/fix-freetype.patch new file mode 100644 index 00000000000..cc380a55abe --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/fix-freetype.patch @@ -0,0 +1,15 @@ +--- a/third_party/freetype/BUILD.gn ++++ b/third_party/freetype/BUILD.gn +@@ -63,10 +63,12 @@ source_set("freetype_source") { + "src/src/base/ftbase.c", + "src/src/base/ftbbox.c", + "src/src/base/ftbitmap.c", ++ "src/src/base/ftfntfmt.c", + "src/src/base/ftfstype.c", + "src/src/base/ftgasp.c", + "src/src/base/ftglyph.c", + "src/src/base/ftinit.c", ++ "src/src/base/ftlcdfil.c", + "src/src/base/ftmm.c", + "src/src/base/ftstroke.c", + "src/src/base/fttype1.c", diff --git a/pkgs/applications/networking/browsers/chromium/patches/fix-openh264.patch b/pkgs/applications/networking/browsers/chromium/patches/fix-openh264.patch new file mode 100644 index 00000000000..9d9ed6d2d05 --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/fix-openh264.patch @@ -0,0 +1,10 @@ +--- a/third_party/openh264/BUILD.gn ++++ b/third_party/openh264/BUILD.gn +@@ -24,6 +24,7 @@ config("config") { + if (!is_win || is_clang) { + cflags += [ + "-Wno-format", ++ "-Wno-format-security", + "-Wno-header-hygiene", + "-Wno-unused-function", + "-Wno-unused-value", diff --git a/pkgs/applications/networking/browsers/chromium/patches/neon_buildfix.patch b/pkgs/applications/networking/browsers/chromium/patches/neon_buildfix.patch deleted file mode 100644 index b44487ca634..00000000000 --- a/pkgs/applications/networking/browsers/chromium/patches/neon_buildfix.patch +++ /dev/null @@ -1,21 +0,0 @@ -diff --git a/skia/ext/convolver_neon.cc b/skia/ext/convolver_neon.cc -index 26b91b9..cae6bc2 100644 ---- a/skia/ext/convolver_neon.cc -+++ b/skia/ext/convolver_neon.cc - -@@ -23,7 +23,7 @@ - remainder[2] += coeff * pixels_left[i * 4 + 2]; - remainder[3] += coeff * pixels_left[i * 4 + 3]; - } -- return {remainder[0], remainder[1], remainder[2], remainder[3]}; -+ return vld1q_s32(remainder); - } - - // Convolves horizontally along a single row. The row data is given in -@@ -336,4 +336,4 @@ - } - } - --} // namespace skia -\ No newline at end of file -+} // namespace skia diff --git a/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch b/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch new file mode 100644 index 00000000000..c90e98e72fa --- /dev/null +++ b/pkgs/applications/networking/browsers/chromium/patches/nix_plugin_paths_68.patch @@ -0,0 +1,70 @@ +diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc +index f4e119d..d9775bd 100644 +--- a/chrome/common/chrome_paths.cc ++++ b/chrome/common/chrome_paths.cc +@@ -68,21 +68,14 @@ static base::LazyInstance + g_invalid_specified_user_data_dir = LAZY_INSTANCE_INITIALIZER; + + // Gets the path for internal plugins. +-bool GetInternalPluginsDirectory(base::FilePath* result) { +-#if defined(OS_MACOSX) +- // If called from Chrome, get internal plugins from a subdirectory of the +- // framework. +- if (base::mac::AmIBundled()) { +- *result = chrome::GetFrameworkBundlePath(); +- DCHECK(!result->empty()); +- *result = result->Append("Internet Plug-Ins"); +- return true; +- } +- // In tests, just look in the module directory (below). +-#endif +- +- // The rest of the world expects plugins in the module directory. +- return base::PathService::Get(base::DIR_MODULE, result); ++bool GetInternalPluginsDirectory(base::FilePath* result, ++ const std::string& ident) { ++ std::string full_env = std::string("NIX_CHROMIUM_PLUGIN_PATH_") + ident; ++ const char* value = getenv(full_env.c_str()); ++ if (value == NULL) ++ return PathService::Get(base::DIR_MODULE, result); ++ else ++ *result = base::FilePath(value); + } + + // Gets the path for bundled implementations of components. Note that these +@@ -272,7 +265,7 @@ bool PathProvider(int key, base::FilePath* result) { + create_dir = true; + break; + case chrome::DIR_INTERNAL_PLUGINS: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "ALL")) + return false; + break; + case chrome::DIR_COMPONENTS: +@@ -280,7 +273,7 @@ bool PathProvider(int key, base::FilePath* result) { + return false; + break; + case chrome::DIR_PEPPER_FLASH_PLUGIN: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "PEPPERFLASH")) + return false; + cur = cur.Append(kPepperFlashBaseDirectory); + break; +@@ -323,7 +316,7 @@ bool PathProvider(int key, base::FilePath* result) { + // We currently need a path here to look up whether the plugin is disabled + // and what its permissions are. + case chrome::FILE_NACL_PLUGIN: +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "NACL")) + return false; + cur = cur.Append(kInternalNaClPluginFileName); + break; +@@ -358,7 +351,7 @@ bool PathProvider(int key, base::FilePath* result) { + cur = cur.DirName(); + } + #else +- if (!GetInternalPluginsDirectory(&cur)) ++ if (!GetInternalPluginsDirectory(&cur, "PNACL")) + return false; + #endif + cur = cur.Append(FILE_PATH_LITERAL("pnacl")); diff --git a/pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch b/pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch deleted file mode 100644 index 5348b9ac905..00000000000 --- a/pkgs/applications/networking/browsers/chromium/patches/skia_buildfix.patch +++ /dev/null @@ -1,22 +0,0 @@ -Index: chromium-browser-65.0.3325.73/third_party/skia/src/jumper/SkJumper_stages.cpp -=================================================================== ---- chromium-browser-65.0.3325.73.orig/third_party/skia/src/jumper/SkJumper_stages.cpp -+++ chromium-browser-65.0.3325.73/third_party/skia/src/jumper/SkJumper_stages.cpp -@@ -666,7 +666,7 @@ SI F approx_powf(F x, F y) { - } - - SI F from_half(U16 h) { --#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. -+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. - return vcvt_f32_f16(h); - - #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) -@@ -686,7 +686,7 @@ SI F from_half(U16 h) { - } - - SI U16 to_half(F f) { --#if defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. -+#if defined(JUMPER_IS_NEON) && defined(__aarch64__) && !defined(SK_BUILD_FOR_GOOGLE3) // Temporary workaround for some Google3 builds. - return vcvt_f16_f32(f); - - #elif defined(JUMPER_IS_HSW) || defined(JUMPER_IS_AVX512) diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index bb080a50beb..2113b9cdbed 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "169lxj6rhpqcnrg3n2api82975hkifz6wmks1bh04jkxw0z2vkny"; - sha256bin64 = "1hd4s35yhi2xidy3xncp66p03cv715bzbf3gcv5dl0d1h3nmhhdf"; - version = "67.0.3396.40"; + sha256 = "03bpznpnr22lphixvvc1cr0pn4p7fxjlz0wwysjw9j7i5y9n7vnm"; + sha256bin64 = "06gmn0clhll91pmph07db043006gf2x6nfgxlir4qwqsj2qgdch0"; + version = "67.0.3396.62"; }; dev = { - sha256 = "0j4vcfbdj8cvdsmnb6pz0k71w559rm3ka1yyv0yfq7f756hinpvp"; - sha256bin64 = "1qqhyjdd227psvr904w3d3lq47bfwmpk6f7sam2gp4j0wxn23w8w"; - version = "68.0.3423.2"; + sha256 = "0hy36r938k6c89alam4a8yy2wynnlcc0zqhhb0jgy3qlnqrksvrc"; + sha256bin64 = "0liqgz8sip5fz5mxb54zagz3p8s24j96p26i5dql935bic7p3lhw"; + version = "68.0.3440.7"; }; stable = { - sha256 = "06g9m7lxm9g63dcci25dqiglyjxjfy7v05vjhdda4rdk84vngrip"; - sha256bin64 = "105ds6r6awzhf5sq3nf43b6zb84lb4qbhjnfk3fnxfqvskq3b6r2"; - version = "66.0.3359.181"; + sha256 = "03bpznpnr22lphixvvc1cr0pn4p7fxjlz0wwysjw9j7i5y9n7vnm"; + sha256bin64 = "16fljvrq2gcpjpyhf1w8s3rv805mknmy2i88n43v2cg7hl35241c"; + version = "67.0.3396.62"; }; }