diff mbox series

[v1,2/3] package/libgtk3: re-enable atk-bridge

Message ID 20230220090923.2155635-2-thomas.devoogdt@barco.com
State Superseded, archived
Headers show
Series [v1,1/3] Revert "xorg-server: not available with musl on ARM" | expand

Commit Message

Thomas Devoogdt Feb. 20, 2023, 9:09 a.m. UTC
The reason why it was not used was that at-spi2-core and at-spi2-atk were not available,
since then, it is, so drop this patch. This will also avoid warnings in webkitgtk.

Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
---
 package/libgtk3/0001-disable-atk-bridge.patch | 41 -------------------
 package/libgtk3/Config.in                     |  2 +
 package/libgtk3/libgtk3.mk                    |  4 +-
 3 files changed, 4 insertions(+), 43 deletions(-)
 delete mode 100644 package/libgtk3/0001-disable-atk-bridge.patch

Comments

Peter Korsgaard Feb. 20, 2023, 5:22 p.m. UTC | #1
>>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:

 > The reason why it was not used was that at-spi2-core and at-spi2-atk were not available,
 > since then, it is, so drop this patch. This will also avoid warnings in webkitgtk.

 > Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
 > ---
 >  package/libgtk3/0001-disable-atk-bridge.patch | 41 -------------------
 >  package/libgtk3/Config.in                     |  2 +
 >  package/libgtk3/libgtk3.mk                    |  4 +-
 >  3 files changed, 4 insertions(+), 43 deletions(-)
 >  delete mode 100644 package/libgtk3/0001-disable-atk-bridge.patch

 > diff --git a/package/libgtk3/0001-disable-atk-bridge.patch b/package/libgtk3/0001-disable-atk-bridge.patch
 > deleted file mode 100644
 > index f3e9bff2ba..0000000000
 > --- a/package/libgtk3/0001-disable-atk-bridge.patch
 > +++ /dev/null
 > @@ -1,41 +0,0 @@
 > -Remove atk-bridge support.
 > -
 > -atk-bridge doesn't seem useful for now in Buildroot and requires to
 > -add two new packages just for it: at-spi2-core and at-spi2-atk.
 > -
 > -Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
 > -
 > ---- a/gtk/a11y/gtkaccessibility.c
 > -+++ b/gtk/a11y/gtkaccessibility.c
 > -@@ -37,10 +37,6 @@
 > - #include <gtk/gtktogglebutton.h>
 > - #include <gtk/gtkaccessible.h>
 > -
 > --#ifdef GDK_WINDOWING_X11
 > --#include <atk-bridge.h>
 > --#endif
 > --
 > - static gboolean gail_focus_watcher      (GSignalInvocationHint *ihint,
 > -                                          guint                  n_param_values,
 > -                                          const GValue          *param_values,
 > -@@ -988,9 +984,5 @@ _gtk_accessibility_init (void)
 > -   _gtk_accessibility_override_atk_util ();
 > -   do_window_event_initialization ();
 > -
 > --#ifdef GDK_WINDOWING_X11
 > --  atk_bridge_adaptor_init (NULL, NULL);

 > --#endif
 > --
 > -   atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
 > - }
 > ---- a/meson.build
 > -+++ b/meson.build
 > -@@ -564,7 +564,7 @@ if x11_enabled
 > -   xfixes_dep     = dependency('xfixes', required: false)
 > -   xcomposite_dep = dependency('xcomposite', required: false)
 > -   fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
 > --  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
 > -+  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req, required: false)
 > - 
 > -   backend_immodules += ['xim']
 > - 

 > diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
 > index 82ca68d2da..d921f79226 100644
 > --- a/package/libgtk3/Config.in
 > +++ b/package/libgtk3/Config.in
 > @@ -24,6 +24,8 @@ config BR2_PACKAGE_LIBGTK3
 >  	depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \
 >  		BR2_PACKAGE_HAS_LIBGL
 >  	select BR2_PACKAGE_ATK
 > +	select BR2_PACKAGE_AT_SPI2_ATK
 > +	select BR2_PACKAGE_AT_SPI2_CORE

at-spi2-core depends on xorg7 / xlib-libXtst, so that would mean that we
would pull that in even for libgtk3 builds with the broadway/wayland
backends, is that sensible?

Maybe it is? Does at-spi2 work under wayland?
Thomas Devoogdt Feb. 20, 2023, 6:53 p.m. UTC | #2
Hi,

I see that X11 support is optional and is automatically detected:
https://github.com/GNOME/at-spi2-core/blob/main/meson_options.txt#L31-L34
So it would be better to append a commit to this one to remove the
Xorg dependency on at-spi2-core.

Kr,

Thomas Devoogdt

Op ma 20 feb. 2023 om 18:22 schreef Peter Korsgaard <peter@korsgaard.com>:
>
> >>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:
>
>  > The reason why it was not used was that at-spi2-core and at-spi2-atk were not available,
>  > since then, it is, so drop this patch. This will also avoid warnings in webkitgtk.
>
>  > Signed-off-by: Thomas Devoogdt <thomas.devoogdt@barco.com>
>  > ---
>  >  package/libgtk3/0001-disable-atk-bridge.patch | 41 -------------------
>  >  package/libgtk3/Config.in                     |  2 +
>  >  package/libgtk3/libgtk3.mk                    |  4 +-
>  >  3 files changed, 4 insertions(+), 43 deletions(-)
>  >  delete mode 100644 package/libgtk3/0001-disable-atk-bridge.patch
>
>  > diff --git a/package/libgtk3/0001-disable-atk-bridge.patch b/package/libgtk3/0001-disable-atk-bridge.patch
>  > deleted file mode 100644
>  > index f3e9bff2ba..0000000000
>  > --- a/package/libgtk3/0001-disable-atk-bridge.patch
>  > +++ /dev/null
>  > @@ -1,41 +0,0 @@
>  > -Remove atk-bridge support.
>  > -
>  > -atk-bridge doesn't seem useful for now in Buildroot and requires to
>  > -add two new packages just for it: at-spi2-core and at-spi2-atk.
>  > -
>  > -Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
>  > -
>  > ---- a/gtk/a11y/gtkaccessibility.c
>  > -+++ b/gtk/a11y/gtkaccessibility.c
>  > -@@ -37,10 +37,6 @@
>  > - #include <gtk/gtktogglebutton.h>
>  > - #include <gtk/gtkaccessible.h>
>  > -
>  > --#ifdef GDK_WINDOWING_X11
>  > --#include <atk-bridge.h>
>  > --#endif
>  > --
>  > - static gboolean gail_focus_watcher      (GSignalInvocationHint *ihint,
>  > -                                          guint                  n_param_values,
>  > -                                          const GValue          *param_values,
>  > -@@ -988,9 +984,5 @@ _gtk_accessibility_init (void)
>  > -   _gtk_accessibility_override_atk_util ();
>  > -   do_window_event_initialization ();
>  > -
>  > --#ifdef GDK_WINDOWING_X11
>  > --  atk_bridge_adaptor_init (NULL, NULL);
>
>  > --#endif
>  > --
>  > -   atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
>  > - }
>  > ---- a/meson.build
>  > -+++ b/meson.build
>  > -@@ -564,7 +564,7 @@ if x11_enabled
>  > -   xfixes_dep     = dependency('xfixes', required: false)
>  > -   xcomposite_dep = dependency('xcomposite', required: false)
>  > -   fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
>  > --  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
>  > -+  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req, required: false)
>  > -
>  > -   backend_immodules += ['xim']
>  > -
>
>  > diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
>  > index 82ca68d2da..d921f79226 100644
>  > --- a/package/libgtk3/Config.in
>  > +++ b/package/libgtk3/Config.in
>  > @@ -24,6 +24,8 @@ config BR2_PACKAGE_LIBGTK3
>  >      depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \
>  >              BR2_PACKAGE_HAS_LIBGL
>  >      select BR2_PACKAGE_ATK
>  > +    select BR2_PACKAGE_AT_SPI2_ATK
>  > +    select BR2_PACKAGE_AT_SPI2_CORE
>
> at-spi2-core depends on xorg7 / xlib-libXtst, so that would mean that we
> would pull that in even for libgtk3 builds with the broadway/wayland
> backends, is that sensible?
>
> Maybe it is? Does at-spi2 work under wayland?
>
> --
> Bye, Peter Korsgaard
>
Peter Korsgaard Feb. 20, 2023, 8:03 p.m. UTC | #3
>>>>> "Thomas" == Thomas Devoogdt <thomas@devoogdt.com> writes:

 > Hi,
 > I see that X11 support is optional and is automatically detected:
 > https://github.com/GNOME/at-spi2-core/blob/main/meson_options.txt#L31-L34
 > So it would be better to append a commit to this one to remove the
 > Xorg dependency on at-spi2-core.

Thanks, care to send a patch for that?
Thomas Petazzoni Feb. 20, 2023, 8:49 p.m. UTC | #4
On Mon, 20 Feb 2023 18:22:16 +0100
Peter Korsgaard <peter@korsgaard.com> wrote:

> at-spi2-core depends on xorg7 / xlib-libXtst, so that would mean that we
> would pull that in even for libgtk3 builds with the broadway/wayland
> backends, is that sensible?
> 
> Maybe it is? Does at-spi2 work under wayland?

Please note that we also have a series that removes atk, at-spi2-atk,
and bumps at-spi2-core, which now replaces both atk and at-spi2-atk:

  https://patchwork.ozlabs.org/project/buildroot/list/?series=336254

Best regards,

Thomas
Peter Korsgaard Feb. 20, 2023, 8:57 p.m. UTC | #5
On 20/02/2023 21.49, Thomas Petazzoni wrote:
>> Maybe it is? Does at-spi2 work under wayland?
> 
> Please note that we also have a series that removes atk, at-spi2-atk,
> and bumps at-spi2-core, which now replaces both atk and at-spi2-atk:
> 
>    https://patchwork.ozlabs.org/project/buildroot/list/?series=336254

Ahh yes, that is probably the way to go.
Thomas Devoogdt Feb. 21, 2023, 3:52 p.m. UTC | #6
Hi

The reason for this patch was to fix this bug:

```
Package 'atk-bridge-2.0', required by 'gtk+-3.0', not found
Package atk-bridge-2.0 was not found in the pkg-config search path.
Perhaps you should add the directory containing `atk-bridge-2.0.pc'
to the PKG_CONFIG_PATH environment variable
```

Right now, the upstream 2.38.5 is not compiling (or at least not my
branch which is rebased on 2023.02-rc1).
So it will be important to have the proposed patch series from Thomas
Petazzoni merged into the master before 2023.02 lands.
My original patch can be dropped then. Also, it would require Xorg to
be built, even if build for e.g. Wayland.

Unfortunately, I could not apply the patch series myself due to some
weird encoding (UTF-16?).
But if I find out how to do that, then I can double-check.

Kr,

Thomas

```
>>> webkitgtk 2.38.5 Building
PATH="/home/thomas/buildroot/output/host/bin:/home/thomas/buildroot/output/host/sbin:/home/thomas/.local/bin:/home/thomas/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/snap/bin:/home/thomas/.dotnet/tools:/home/thomas/.local/bin"
/usr/bin/cmake --build
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/
[773/5265] Generating
../../WebCore/DerivedSources/CSSProperties.jso...,
../../WebCore/DerivedSources/CSSStyleDeclaration+PropertyNames.idl
1 input keys have identical hash values, examine output carefully...
[995/5265] Building CXX object
Source/JavaScriptCore/CMakeFiles/JavaScriptCore.dir/API/glib/JSCOptions.cpp.o
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/JavaScriptCore/API/glib/JSCOptions.cpp:
In function ‘GOptionGroup* jsc_options_get_option_group()’:
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/JavaScriptCore/API/glib/JSCOptions.cpp:703:84:
warning: cast from ‘gchar*’ {aka ‘char*’} to ‘GOptionEntry*’ {aka
‘_GOptionEntry*’} increases required alignment of target type
[-Wcast-align]
     g_option_group_add_entries(group,
reinterpret_cast<GOptionEntry*>(entries->data));

             ^
[1910/5265] Building CXX object
Source/WebCore/PAL/pal/CMakeFiles/PAL.dir/text/TextCodecICU.cpp.o
FAILED: Source/WebCore/PAL/pal/CMakeFiles/PAL.dir/text/TextCodecICU.cpp.o
/home/thomas/buildroot/output/host/bin/arm-linux-g++
--sysroot=/home/thomas/buildroot/output/host/arm-buildroot-linux-gnueabi/sysroot
-DBUILDING_GTK__=1 -DBUILDING_PAL -DBUILDING_WITH_CMAKE=1
-DGETTEXT_PACKAGE=\"WebKit2GTK-4.1\" -DHAVE_CONFIG_H=1
-DJSC_GLIB_API_ENABLED -DPAS_BMALLOC=1
-DWEBKITGTK_API_VERSION_STRING=\"4.1\"
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/PAL/DerivedSources
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal/crypto
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal/system
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal/text
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/JavaScriptCore/Headers
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/JavaScriptCore/PrivateHeaders
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/JavaScriptCoreGLib/Headers
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/JavaScriptCoreGLib/DerivedSources
-I/home/thomas/buildroot/output/build/webkitgtk-2.38.5/WTF/Headers
-fdiagnostics-color=always -Wextra -Wall -pipe -Wno-odr
-Wno-stringop-overflow -Wno-nonnull -Wno-array-bounds
-Wno-expansion-to-defined -Wno-noexcept-type -Wno-psabi
-Wno-misleading-indentation -Wno-maybe-uninitialized -Wwrite-strings
-Wundef -Wpointer-arith -Wmissing-format-attribute -Wformat-security
-Wcast-align -Wno-tautological-compare -D_LARGEFILE_SOURCE
-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0
-fno-strict-aliasing -fno-exceptions -fno-rtti  -DNDEBUG -fPIC
-fvisibility=hidden -std=c++2a -MD -MT
Source/WebCore/PAL/pal/CMakeFiles/PAL.dir/text/TextCodecICU.cpp.o -MF
Source/WebCore/PAL/pal/CMakeFiles/PAL.dir/text/TextCodecICU.cpp.o.d -o
Source/WebCore/PAL/pal/CMakeFiles/PAL.dir/text/TextCodecICU.cpp.o -c
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal/text/TextCodecICU.cpp
In file included from
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/WTF/Headers/wtf/URL.h:31,
                 from
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal/text/TextEncoding.h:29,
                 from
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/Source/WebCore/PAL/pal/text/TextCodecICU.cpp:30:
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/WTF/Headers/wtf/glib/GRefPtr.h:28:10:
fatal error: glib.h: No such file or directory
 #include <glib.h>
          ^~~~~~~~
compilation terminated.
[1923/5265] Generating ../../inspector-resources.stamp
ninja: build stopped: subcommand failed.
make[1]: *** [package/pkg-generic.mk:293:
/home/thomas/buildroot/output/build/webkitgtk-2.38.5/.stamp_built]
Error 1
make: *** [Makefile:82: _all] Error 2
```

Op ma 20 feb. 2023 om 21:57 schreef Peter Korsgaard <peter@korsgaard.com>:

>
> On 20/02/2023 21.49, Thomas Petazzoni wrote:
> >> Maybe it is? Does at-spi2 work under wayland?
> >
> > Please note that we also have a series that removes atk, at-spi2-atk,
> > and bumps at-spi2-core, which now replaces both atk and at-spi2-atk:
> >
> >    https://patchwork.ozlabs.org/project/buildroot/list/?series=336254
>
> Ahh yes, that is probably the way to go.
>
> --
> Bye, Peter Korsgaard
>
>
diff mbox series

Patch

diff --git a/package/libgtk3/0001-disable-atk-bridge.patch b/package/libgtk3/0001-disable-atk-bridge.patch
deleted file mode 100644
index f3e9bff2ba..0000000000
--- a/package/libgtk3/0001-disable-atk-bridge.patch
+++ /dev/null
@@ -1,41 +0,0 @@ 
-Remove atk-bridge support.
-
-atk-bridge doesn't seem useful for now in Buildroot and requires to
-add two new packages just for it: at-spi2-core and at-spi2-atk.
-
-Signed-off-by: Hadrien Boutteville <hadrien.boutteville@gmail.com>
-
---- a/gtk/a11y/gtkaccessibility.c
-+++ b/gtk/a11y/gtkaccessibility.c
-@@ -37,10 +37,6 @@
- #include <gtk/gtktogglebutton.h>
- #include <gtk/gtkaccessible.h>
-
--#ifdef GDK_WINDOWING_X11
--#include <atk-bridge.h>
--#endif
--
- static gboolean gail_focus_watcher      (GSignalInvocationHint *ihint,
-                                          guint                  n_param_values,
-                                          const GValue          *param_values,
-@@ -988,9 +984,5 @@ _gtk_accessibility_init (void)
-   _gtk_accessibility_override_atk_util ();
-   do_window_event_initialization ();
-
--#ifdef GDK_WINDOWING_X11
--  atk_bridge_adaptor_init (NULL, NULL);
--#endif
--
-   atk_misc_instance = g_object_new (GTK_TYPE_MISC_IMPL, NULL);
- }
---- a/meson.build
-+++ b/meson.build
-@@ -564,7 +564,7 @@ if x11_enabled
-   xfixes_dep     = dependency('xfixes', required: false)
-   xcomposite_dep = dependency('xcomposite', required: false)
-   fontconfig_dep = dependency('fontconfig', fallback: ['fontconfig', 'fontconfig_dep'])
--  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req)
-+  atkbridge_dep  = dependency('atk-bridge-2.0', version: at_spi2_atk_req, required: false)
- 
-   backend_immodules += ['xim']
- 
diff --git a/package/libgtk3/Config.in b/package/libgtk3/Config.in
index 82ca68d2da..d921f79226 100644
--- a/package/libgtk3/Config.in
+++ b/package/libgtk3/Config.in
@@ -24,6 +24,8 @@  config BR2_PACKAGE_LIBGTK3
 	depends on BR2_PACKAGE_HAS_LIBEGL_WAYLAND || \
 		BR2_PACKAGE_HAS_LIBGL
 	select BR2_PACKAGE_ATK
+	select BR2_PACKAGE_AT_SPI2_ATK
+	select BR2_PACKAGE_AT_SPI2_CORE
 	select BR2_PACKAGE_CAIRO
 	select BR2_PACKAGE_CAIRO_PS
 	select BR2_PACKAGE_CAIRO_PDF
diff --git a/package/libgtk3/libgtk3.mk b/package/libgtk3/libgtk3.mk
index 283c129cef..fc2b501cb8 100644
--- a/package/libgtk3/libgtk3.mk
+++ b/package/libgtk3/libgtk3.mk
@@ -14,8 +14,8 @@  LIBGTK3_CPE_ID_VENDOR = gnome
 LIBGTK3_CPE_ID_PRODUCT = gtk
 LIBGTK3_INSTALL_STAGING = YES
 
-LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk libglib2 cairo pango \
-	gdk-pixbuf libepoxy $(TARGET_NLS_DEPENDENCIES)
+LIBGTK3_DEPENDENCIES = host-pkgconf host-libgtk3 atk at-spi2-atk at-spi2-core libglib2 \
+	cairo pango gdk-pixbuf libepoxy $(TARGET_NLS_DEPENDENCIES)
 
 ifeq ($(BR2_PACKAGE_LIBGTK3_X11),y)
 LIBGTK3_DEPENDENCIES += fontconfig xlib_libX11 xlib_libXext xlib_libXrandr xlib_libXrender xlib_libXi