Date: Friday, November 12, 2021 @ 22:31:27 Author: foutrelis Revision: 1044870
Fix build with gn from Chromium 96 Added: electron/trunk/gn-visibility-gmock.patch electron/trunk/gn-visibility-mojo.patch electron/trunk/gn-visibility-webrtc.patch electron/trunk/unbundle-fix-visibility-of-build-config-freetype.patch Modified: electron/trunk/PKGBUILD --------------------------------------------------------+ PKGBUILD | 12 ++++ gn-visibility-gmock.patch | 43 ++++++++++++++ gn-visibility-mojo.patch | 36 ++++++++++++ gn-visibility-webrtc.patch | 45 +++++++++++++++ unbundle-fix-visibility-of-build-config-freetype.patch | 31 ++++++++++ 5 files changed, 167 insertions(+) Modified: PKGBUILD =================================================================== --- PKGBUILD 2021-11-12 22:29:35 UTC (rev 1044869) +++ PKGBUILD 2021-11-12 22:31:27 UTC (rev 1044870) @@ -51,6 +51,10 @@ 'use-system-libraries-in-node.patch' 'replace-blacklist-with-ignorelist.patch' 'sql-make-VirtualCursor-standard-layout-type.patch' + 'unbundle-fix-visibility-of-build-config-freetype.patch' + 'gn-visibility-gmock.patch' + 'gn-visibility-mojo.patch' + 'gn-visibility-webrtc.patch' 'add-a-TODO-about-a-missing-pnacl-flag.patch' 'chromium-93-ffmpeg-4.4.patch' 'chromium-94-ffmpeg-roll.patch' @@ -67,6 +71,10 @@ '7cb11fb44aaf4d15f36caca3c0d1b082a723c30d43cd44db147248db5683a2a9' 'd3344ba39b8c6ed202334ba7f441c70d81ddf8cdb15af1aa8c16e9a3a75fbb35' 'dd317f85e5abfdcfc89c6f23f4c8edbcdebdd5e083dcec770e5da49ee647d150' + 'd0b17162211dd49e3a58c16d1697e7d8c322dcfd3b7890f0c2f920b711f52293' + 'b9934e01d8f39beafc8b63784fb86e6befe25ca83e9c43224c8374e5a025d8ef' + 'cca2d224cf2e9d7cfb4f5729ca76b5b8a7100b1ca39892b41fb296adaced1bf7' + '574785a21168c3e9b7aa82630713ceb6ced12f699133db66b10fc84b7bb2c631' 'd53da216538f2e741a6e048ed103964a91a98e9a3c10c27fdfa34d4692fdc455' '1a9e074f417f8ffd78bcd6874d8e2e74a239905bf662f76a7755fa40dc476b57' '56acb6e743d2ab1ed9f3eb01700ade02521769978d03ac43226dec94659b3ace' @@ -164,6 +172,10 @@ patch -Np1 -i ../patches/chromium-90-ruy-include.patch patch -Np1 -i ../patches/chromium-94-CustomSpaces-include.patch + patch -Np1 -i ../unbundle-fix-visibility-of-build-config-freetype.patch + patch -Np1 -i ../gn-visibility-gmock.patch + patch -Np1 -i ../gn-visibility-mojo.patch + patch -Np1 -i ../gn-visibility-webrtc.patch patch -Rp1 -i ../add-a-TODO-about-a-missing-pnacl-flag.patch patch -Np1 -i ../chromium-93-ffmpeg-4.4.patch patch -Rp1 -i ../chromium-94-ffmpeg-roll.patch Added: gn-visibility-gmock.patch =================================================================== --- gn-visibility-gmock.patch (rev 0) +++ gn-visibility-gmock.patch 2021-11-12 22:31:27 UTC (rev 1044870) @@ -0,0 +1,43 @@ +From fc3c737210873e9bee311391e9f6b48130e84983 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tomasz=20=C5=9Aniatowski?= <tsniatow...@vewd.com> +Date: Sat, 4 Sep 2021 07:13:49 +0000 +Subject: [PATCH] Fix config visibility violation in //testing/gmock +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +//third_party/googletest:gtest_config has restricted visibility, current +code works by accident because gn only enforces visibility on 'configs'. +Fix by not referencing the configs at all as it should be unnecessary: +//testing/gmock gets them via a public dependency chain anyway. + +This is one of a few fixes needed to roll gn past the upcoming +enforcement change, landing in small parts because removing config +usages feels a bit subtle. + +Bug: gn:252 +Change-Id: Ie1438862831ecee49162d9f8f7872a568d69c2fb +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139927 +Reviewed-by: Dirk Pranke <dpra...@google.com> +Commit-Queue: Tomasz Śniatowski <tsniatow...@vewd.com> +Cr-Commit-Position: refs/heads/main@{#918357} +--- + testing/gmock/BUILD.gn | 5 ----- + 1 file changed, 5 deletions(-) + +diff --git a/testing/gmock/BUILD.gn b/testing/gmock/BUILD.gn +index 0248d146d7397..e285fb84e471a 100644 +--- a/testing/gmock/BUILD.gn ++++ b/testing/gmock/BUILD.gn +@@ -14,11 +14,6 @@ source_set("gmock") { + "include/gmock/gmock.h", + ] + public_deps = [ "//third_party/googletest:gmock" ] +- +- public_configs = [ +- "//third_party/googletest:gmock_config", +- "//third_party/googletest:gtest_config", +- ] + } + + # The file/directory layout of Google Test is not yet considered stable. Until Added: gn-visibility-mojo.patch =================================================================== --- gn-visibility-mojo.patch (rev 0) +++ gn-visibility-mojo.patch 2021-11-12 22:31:27 UTC (rev 1044870) @@ -0,0 +1,36 @@ +From 40f10bf0e683f6b499b5c3c7555111193db03abf Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tomasz=20=C5=9Aniatowski?= <tsniatow...@vewd.com> +Date: Tue, 7 Sep 2021 20:13:53 +0000 +Subject: [PATCH] Fix config visibility violation in //mojo/public/cpp/bindings + +//third_party/blink/renderer:config has restricted visibility, current +code works by accident because gn only enforces visibility on 'configs'. +Fix by removing the direct config usage as it looks historical and not +actually needed. + +This is one of a few fixes needed to roll gn past the upcoming +enforcement change, landing in small parts because removing config +usages feels a bit subtle. + +Bug: gn:252 +Change-Id: I2e0d2e314ef3714dd19b11b7ae29bdcf5074cfda +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3140593 +Commit-Queue: Ken Rockot <roc...@google.com> +Reviewed-by: Ken Rockot <roc...@google.com> +Cr-Commit-Position: refs/heads/main@{#918914} +--- + mojo/public/cpp/bindings/BUILD.gn | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/mojo/public/cpp/bindings/BUILD.gn b/mojo/public/cpp/bindings/BUILD.gn +index 13ad53b3ed305..d90318de106e4 100644 +--- a/mojo/public/cpp/bindings/BUILD.gn ++++ b/mojo/public/cpp/bindings/BUILD.gn +@@ -281,7 +281,5 @@ if (!is_ios) { + "//third_party/blink/renderer/platform:platform_export", + "//third_party/blink/renderer/platform/wtf", + ] +- +- public_configs = [ "//third_party/blink/renderer:config" ] + } + } Added: gn-visibility-webrtc.patch =================================================================== --- gn-visibility-webrtc.patch (rev 0) +++ gn-visibility-webrtc.patch 2021-11-12 22:31:27 UTC (rev 1044870) @@ -0,0 +1,45 @@ +From 72c4d9fc95c336f61d7a8417b78f947a400ce792 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tomasz=20=C5=9Aniatowski?= <tsniatow...@vewd.com> +Date: Tue, 14 Sep 2021 10:33:37 +0000 +Subject: [PATCH] Relax googletest gn config visibility for webrtc +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +An upcoming gn roll will start enforcing config visibility on +public_configs and all_dependent_configs. Normally, configs with +limited visibility have corresponding helper targets that push the +configs using public_configs and are propagated with public_deps. +However, webrtc prefers to avoid public_deps, and pushes the gtest +config using all_dependent_configs. This requires direct visibility, +so tweak gtest BUILD.gn to make things work. + +Bug: gn:252, 1249254 +Change-Id: Ic7be22f7bf129255fb0ac51f437cd6dd3989e3a3 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3158065 +Commit-Queue: Tomasz Śniatowski <tsniatow...@vewd.com> +Reviewed-by: Victor Costan <pwn...@chromium.org> +Cr-Commit-Position: refs/heads/main@{#921126} +--- + third_party/googletest/BUILD.gn | 8 +++++++- + 1 file changed, 7 insertions(+), 1 deletion(-) + +diff --git a/third_party/googletest/BUILD.gn b/third_party/googletest/BUILD.gn +index fe240ebe954b6..d2bde47d75eab 100644 +--- a/third_party/googletest/BUILD.gn ++++ b/third_party/googletest/BUILD.gn +@@ -5,7 +5,13 @@ + import("//build_overrides/build.gni") + + config("gtest_config") { +- visibility = [ ":*" ] # gmock also shares this config. ++ # webrtc wants to push this config without a public_dep chain ++ # TODO(crbug.com/1249254): figure out what to do with this ++ visibility = [ ++ ":*", # gmock also shares this config. ++ "//test:*", # webrts standalone setup ++ "//third_party/webrtc/test:*", ++ ] + + defines = [ + # Chromium always links googletest statically, so no API qualifier is Added: unbundle-fix-visibility-of-build-config-freetype.patch =================================================================== --- unbundle-fix-visibility-of-build-config-freetype.patch (rev 0) +++ unbundle-fix-visibility-of-build-config-freetype.patch 2021-11-12 22:31:27 UTC (rev 1044870) @@ -0,0 +1,31 @@ +From 271e45339b7b969e98ccef7837cb1b15480b07fc Mon Sep 17 00:00:00 2001 +From: Stephan Hartmann <sth...@googlemail.com> +Date: Thu, 4 Nov 2021 18:58:34 +0000 +Subject: [PATCH] unbundle: fix visibility of //build/config/freetype + +For system freetype //build/linux:freetype_from_pkgconfig is restricted +to //third_party:freetype_harfbuzz and //third_party/harfbuzz-ng:harfbuzz_source. +However //build/config/freetype:freetype is accessing it too. + +Bug: None +Change-Id: Ic4a37b01e4ae221372a9220cbad04c598b844c21 +Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3259304 +Commit-Queue: Thomas Anderson <thomasander...@chromium.org> +Reviewed-by: Thomas Anderson <thomasander...@chromium.org> +Cr-Commit-Position: refs/heads/main@{#938388} +--- + build/linux/BUILD.gn | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/build/linux/BUILD.gn b/build/linux/BUILD.gn +index 54314c7687..cd49e3d524 100644 +--- a/build/linux/BUILD.gn ++++ b/build/linux/BUILD.gn +@@ -23,6 +23,7 @@ if (use_system_freetype) { + # the system, use with caution,for details see build/config/freetype/BUILD.gn. + pkg_config("freetype_from_pkgconfig") { + visibility = [ ++ "//build/config/freetype:freetype", + "//third_party:freetype_harfbuzz", + "//third_party/harfbuzz-ng:harfbuzz_source", + ]