WEBRTC and instrumented_libraries requieres GTK2 when use_gtk3=true
Reported by
sl1pk...@gmail.com,
Nov 24 2016
|
|||||||
Issue description
UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.3 Safari/537.36
Steps to reproduce the problem:
1. set GN use_gtk3=true
2. make sure have unistalled GTK2
3. start build
What is the expected behavior?
build without GTK2 requeriments when set use_gtk3=true
What went wrong?
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
Could not run pkg-config.
Did this work before? N/A
Chrome version: 56.0.2924.3 Channel: dev
OS Version:
Flash Version: Shockwave Flash 23.0 r0
seems third_party/webrtc and third_party/instrumented_libraries is the culprit
from third_party/webrtc/examples/BUILD.gn:
if (is_linux || is_win) {
if (is_linux) {
pkg_config("gtk2_config") {
# Gtk requires gmodule, but it does not list it as a dependency in some
# misconfigured systems.
packages = [
"gmodule-2.0",
"gtk+-2.0",
"gthread-2.0",
]
}
}
and from third_party/instrumented_libraries/BUILD.gn
group("locally_built") {
visibility = [ ":deps" ]
deps = [
":atk1.0",
":brltty",
":dee",
":freetype",
":libappindicator1",
":libasound2",
":libcairo2",
":libcap2",
":libcredentialkit_pkcs11",
":libdbus-1-3",
":libdbus-glib-1-2",
":libdbusmenu",
":libdbusmenu-glib4",
":libexpat1",
":libffi6",
":libfontconfig1",
":libgconf-2-4",
":libgcrypt11",
":libgdk-pixbuf2.0-0",
":libglib2.0-0",
":libgnome-keyring0",
":libgpg-error0",
":libgtk2.0-0",
":libnspr4",
":libp11-kit0",
":libpci3",
":libpcre3",
":libpixman-1-0",
":libunity9",
":libva1",
":libx11-6",
":libxau6",
":libxcb1",
":libxcomposite1",
":libxcursor1",
":libxdamage1",
":libxdmcp6",
":libxext6",
":libxfixes3",
":libxi6",
":libxinerama1",
":libxrandr2",
":libxrender1",
":libxss1",
":libxtst6",
":nss",
":pango1.0",
":pulseaudio",
":udev",
":zlib1g",
]
instrumented_library("libgtk2.0-0") {
package_cflags = [ "-Wno-return-type" ]
extra_configure_flags = [
"--disable-static",
# From debian/rules.
"--prefix=/usr",
"--sysconfdir=/etc",
"--enable-test-print-backend",
"--enable-introspection=no",
"--with-xinput=yes",
]
patch = "patches/libgtk2.0-0.${instrumented_libraries_platform}.diff"
pre_build = "scripts/pre-build/libgtk2.0-0.sh"
}
,
Nov 27 2016
,
Nov 29 2016
Out of TE scope
,
Dec 2 2016
,
Dec 10 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/bf4f82b8448d70608cb54c7e5891f2a52e570d0b commit bf4f82b8448d70608cb54c7e5891f2a52e570d0b Author: thomasanderson <thomasanderson@google.com> Date: Sat Dec 10 05:29:04 2016 Whitelist webrtc peerconnection_client in build/config/linux/gtk/BUILD.gn This is a simple src-side dependency required by https://codereview.webrtc.org/2563203002 BUG= 668446 Review-Url: https://codereview.chromium.org/2565063002 Cr-Commit-Position: refs/heads/master@{#437758} [modify] https://crrev.com/bf4f82b8448d70608cb54c7e5891f2a52e570d0b/build/config/linux/gtk/BUILD.gn
,
Jan 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c48bc79acb2ed96e2f71856c01b57ce369681ba7 commit c48bc79acb2ed96e2f71856c01b57ce369681ba7 Author: thomasanderson <thomasanderson@google.com> Date: Sat Jan 07 03:49:56 2017 Don't use gtk2 instrumented library when using gtk3 BUG= 668446 TBR=glider@chromium.org Review-Url: https://codereview.chromium.org/2574633002 Cr-Commit-Position: refs/heads/master@{#442150} [modify] https://crrev.com/c48bc79acb2ed96e2f71856c01b57ce369681ba7/third_party/instrumented_libraries/BUILD.gn
,
Jan 20 2017
seems still need gtk2
ERROR at //build/config/linux/pkg_config.gni:85:17: Script returned non-zero exit code.
pkgresult = exec_script(pkg_config_script, args, "value")
^----------
Current dir: /tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/out/Release/
Command: python -- /tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/build/config/linux/pkg-config.py gmodule-2.0 gtk+-2.0 gthread-2.0
Returned 1.
stderr:
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
Could not run pkg-config.
See //build/config/linux/gtk2/BUILD.gn:15:1: whence it was called.
pkg_config("gtk2_internal_config") {
^-----------------------------------
See //chrome/browser/ui/libgtkui/BUILD.gn:147:12: which caused the file to be included.
"//build/config/linux/gtk2",
^--------------------------
Command '['/tmp/tmpy78C4h/gn', 'gen', '/tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/out/Release', '--args=is_debug=false enable_widevine=true enable_hangout_services_extension=false ffmpeg_branding="ChromeOS" proprietary_codecs=true google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" google_default_client_id="413772536636.apps.googleusercontent.com" google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" fieldtrial_testing_like_official_build=false remove_webcore_debug_symbols=true use_gconf=false use_gio=false use_gnome_keyring=false use_gtk3=true use_pulseaudio=true link_pulseaudio=true use_kerberos=true use_cups=true use_sysroot=false use_gold=false use_allocator="none" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=true enable_nacl_nonsfi=true custom_toolchain="/tmp/makepkg/chromium-dev/src:default" is_clang=false clang_use_chrome_plugins=false is_debug=false']' returned non-zero exit status 1
greetings
,
Jan 20 2017
,
Jan 20 2017
FWIW the webrtc code using gtk2 is probably just example code that should hopefully not be pulled in when building chrome
,
Jan 20 2017
how I doing that?
,
Jan 20 2017
Code looks dead, https://codereview.webrtc.org/2646793008 takes a stab at deleting it.
,
Jan 20 2017
It removes code that uses gtk, check whether removing things under rtc_use_gtk in webrtc/media/BUILD.gn does something (and still builds). I didn't want to bundle that into this change.
,
Jan 20 2017
the patch of that CR do nothing, still need gtk2 :S
DEBUG:root:Running: /tmp/tmpbEDUqb/gn gen /tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/out/Release --args=is_debug=false enable_widevine=true enable_hangout_services_extension=false ffmpeg_branding="ChromeOS" proprietary_codecs=true google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" google_default_client_id="413772536636.apps.googleusercontent.com" google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" fieldtrial_testing_like_official_build=false remove_webcore_debug_symbols=true use_gconf=false use_gio=false use_gnome_keyring=false use_gtk3=true use_aura=true use_pulseaudio=true link_pulseaudio=true use_kerberos=true use_cups=true use_sysroot=false use_gold=false use_allocator="none" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=true enable_nacl_nonsfi=true custom_toolchain="/tmp/makepkg/chromium-dev/src:default" is_clang=false clang_use_chrome_plugins=false is_debug=false
ERROR at //build/config/linux/pkg_config.gni:85:17: Script returned non-zero exit code.
pkgresult = exec_script(pkg_config_script, args, "value")
^----------
Current dir: /tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/out/Release/
Command: python -- /tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/build/config/linux/pkg-config.py gmodule-2.0 gtk+-2.0 gthread-2.0
Returned 1.
stderr:
Package gtk+-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `gtk+-2.0.pc'
to the PKG_CONFIG_PATH environment variable
No package 'gtk+-2.0' found
Could not run pkg-config.
See //build/config/linux/gtk2/BUILD.gn:15:1: whence it was called.
pkg_config("gtk2_internal_config") {
^-----------------------------------
See //chrome/browser/ui/libgtkui/BUILD.gn:147:12: which caused the file to be included.
"//build/config/linux/gtk2",
^--------------------------
Command '['/tmp/tmpbEDUqb/gn', 'gen', '/tmp/makepkg/chromium-dev/src/chromium-57.0.2986.0/out/Release', '--args=is_debug=false enable_widevine=true enable_hangout_services_extension=false ffmpeg_branding="ChromeOS" proprietary_codecs=true google_api_key="AIzaSyDwr302FpOSkGRpLlUpPThNTDPbXcIn_FM" google_default_client_id="413772536636.apps.googleusercontent.com" google_default_client_secret="0ZChLK6AxeA3Isu96MkwqDR4" fieldtrial_testing_like_official_build=false remove_webcore_debug_symbols=true use_gconf=false use_gio=false use_gnome_keyring=false use_gtk3=true use_aura=true use_pulseaudio=true link_pulseaudio=true use_kerberos=true use_cups=true use_sysroot=false use_gold=false use_allocator="none" linux_use_bundled_binutils=false fatal_linker_warnings=false treat_warnings_as_errors=false enable_nacl=true enable_nacl_nonsfi=true custom_toolchain="/tmp/makepkg/chromium-dev/src:default" is_clang=false clang_use_chrome_plugins=false is_debug=false']' returned non-zero exit status 1
,
Jan 20 2017
That looks like a different build file (not webrtc). There's definitely more than one place touching gtk2 in Chromium.
,
Jan 20 2017
https://chromium.googlesource.com/external/webrtc/+/master/webrtc/media/BUILD.gn#35 this is still in the code, i tried now remove it --- webrtc/media/BUILD.gn.old 2017-01-21 00:11:44.225075539 +0100 +++ webrtc/media/BUILD.gn 2017-01-21 00:11:34.862101676 +0100 @@ -32,16 +32,6 @@ } } -if (is_linux && rtc_use_gtk) { - pkg_config("gtk-lib") { - packages = [ - "gobject-2.0", - "gthread-2.0", - "gtk+-2.0", - ] - } -} - rtc_static_library("rtc_media_base") { defines = [] libs = []
,
Jan 20 2017
nope. still requiere gtk2 :/
,
Jan 21 2017
ok. i done it with this patch is a ugly solution, but works (at the moment) greetings
,
Jan 21 2017
The following revision refers to this bug: https://chromium.googlesource.com/external/webrtc.git/+/2197e9186087012fb677a5865a42835297cdea19 commit 2197e9186087012fb677a5865a42835297cdea19 Author: pbos <pbos@webrtc.org> Date: Sat Jan 21 02:13:07 2017 Remove dead code for GtkVideoRenderer. Pulls in unnecessary GTK dependencies that breaks the chromium GTK3 build. This removes the last of webrtc/media/devices. BUG= chromium:668446 Review-Url: https://codereview.webrtc.org/2646793008 Cr-Commit-Position: refs/heads/master@{#16198} [modify] https://crrev.com/2197e9186087012fb677a5865a42835297cdea19/webrtc/media/BUILD.gn [delete] https://crrev.com/f33491ebaf3adb2e7afc57ed5735536d17bf0f3c/webrtc/media/devices/gtkvideorenderer.cc [delete] https://crrev.com/f33491ebaf3adb2e7afc57ed5735536d17bf0f3c/webrtc/media/devices/gtkvideorenderer.h
,
Jan 21 2017
I think the commit in comment #20 end webrtc GTK dependencies that are pulled into Chromium.
,
Jan 21 2017
mmm, i tried apply only the patch #19 and leave without applying the #20: don't pull GTK2 dependencies i think #20 only remove a dead code, no is the fix for problem in present in #7 or #15 so then is another issue outside of this bug is need open a separate bug? greetings
,
Feb 5 2017
Revision of the patch sync with 58.0.3000.4 release
,
Feb 15 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/108710bef84807a01bb0776e5011d1ce0709fca0 commit 108710bef84807a01bb0776e5011d1ce0709fca0 Author: thomasanderson <thomasanderson@google.com> Date: Wed Feb 15 06:54:08 2017 Remove libgtk3ui from gn_all Now that Chromium is switching to use_gtk3=true by default, it is unnecessary to build libgtk3ui from gn_all. In addition, this CL also guards libgtk2ui with !use_gtk3 so that gtk+-2.0.pc is not required during gn gen (and so gtk+-3.0.pc is not required for a gtk2 build). BUG= 668446 R=dpranke@chromium.org,erg@chromium.org Review-Url: https://codereview.chromium.org/2695823006 Cr-Commit-Position: refs/heads/master@{#450611} [modify] https://crrev.com/108710bef84807a01bb0776e5011d1ce0709fca0/BUILD.gn [modify] https://crrev.com/108710bef84807a01bb0776e5011d1ce0709fca0/chrome/browser/ui/libgtkui/BUILD.gn
,
Feb 15 2017
,
Mar 21 2017
|
|||||||
►
Sign in to add a comment |
|||||||
Comment 1 by ajha@chromium.org
, Nov 24 2016