New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 668446 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Feb 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

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"
  }
 

Comment 1 by ajha@chromium.org, Nov 24 2016

Labels: M-56
Cc: thomasanderson@chromium.org brettw@chromium.org
Labels: TE-NeedsTriageHelp
Out of TE scope
Owner: thomasanderson@chromium.org
Status: Started (was: Unconfirmed)
Project Member

Comment 5 by bugdroid1@chromium.org, 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

Project Member

Comment 6 by bugdroid1@chromium.org, 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

Comment 7 by sl1pk...@gmail.com, 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

Comment 9 by pbos@chromium.org, Jan 20 2017

Cc: pbos@chromium.org kjellander@chromium.org
FWIW the webrtc code using gtk2 is probably just example code that should hopefully not be pulled in when building chrome

Comment 10 Deleted

Comment 11 by sl1pk...@gmail.com, Jan 20 2017

how I doing that?

Comment 12 by pbos@chromium.org, Jan 20 2017

Code looks dead, https://codereview.webrtc.org/2646793008 takes a stab at deleting it.

Comment 13 Deleted

Comment 14 by pbos@chromium.org, 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.

Comment 15 by sl1pk...@gmail.com, 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

Comment 16 by pbos@chromium.org, Jan 20 2017

That looks like a different build file (not webrtc). There's definitely more than one place touching gtk2 in Chromium.

Comment 17 by sl1pk...@gmail.com, 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 = []

Comment 18 by sl1pk...@gmail.com, Jan 20 2017

nope. still requiere gtk2 :/

Comment 19 by sl1pk...@gmail.com, Jan 21 2017

ok. i done it with this patch

is a ugly solution, but works (at the moment)

greetings
test.diff
3.8 KB Download
Project Member

Comment 20 by bugdroid1@chromium.org, 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

Comment 21 by pbos@chromium.org, Jan 21 2017

I think the commit in comment #20 end webrtc GTK dependencies that are pulled into Chromium.

Comment 22 by sl1pk...@gmail.com, 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
Revision of the patch sync with 58.0.3000.4 release 
fix_668446_r1.diff
1.3 KB Download
Project Member

Comment 24 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)
Labels: -M-56 M-58

Sign in to add a comment