Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13
@ 2025-05-23 12:15 Fiona Klute via buildroot
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3 Fiona Klute via buildroot
                   ` (3 more replies)
  0 siblings, 4 replies; 8+ messages in thread
From: Fiona Klute via buildroot @ 2025-05-23 12:15 UTC (permalink / raw)
  To: buildroot
  Cc: James Hilliard, Fiona Klute (WIWA), Fabrice Fontaine,
	Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Since Python 3.13 BaseSelectorEventLoop.add_reader() and
BaseSelectorEventLoop.add_writer() use the mapping returned by
selector.get_map() to detect if a file object is already
registered. This fails with the implementation in gi.events._Selector
if some calls use a file object, and others the raw file descriptor.

Full upstream bug report:
https://gitlab.gnome.org/GNOME/pygobject/-/issues/689

This bug breaks package/python-aiomqtt, because its client object uses
file objects in some places for the connection socket, and the file
descriptor in others. The result is that the connection attempt times
out because source registration fails, and the Future that marks
successful connection never resolves.

This commit adds the fix as backported to PyGObject 3.50 [1] so it can
be cherry-picked to Buildroot stable versions using that version.

[1] https://gitlab.gnome.org/GNOME/pygobject/-/merge_requests/423

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Change v4 -> v5: Reorder patch before version bump to support backport
to stable, replace patch with version applicable to 3.50.

Change v1 -> v2: Patch has been merged, switch upstream URL from MR to
commit on main branch.

 ...tor.get_map-look-up-file-objects-by-.patch | 163 ++++++++++++++++++
 1 file changed, 163 insertions(+)
 create mode 100644 package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch

diff --git a/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch b/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch
new file mode 100644
index 0000000000..baed785aa5
--- /dev/null
+++ b/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch
@@ -0,0 +1,163 @@
+From 3bb03bc5d095cf51c8605521fcc2ce8cad36995f Mon Sep 17 00:00:00 2001
+From: Fiona Klute <fiona.klute@gmx.de>
+Date: Tue, 25 Mar 2025 13:29:04 +0100
+Subject: [PATCH] gi.events._Selector.get_map(): look up file objects by file
+ descriptor
+
+File objects and their underlying file descriptors must be treated as
+equivalent for lookup, or one may incorrectly be treated as not
+registered when the other was used for the registration, leading to
+bugs.
+
+Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
+Upstream: https://gitlab.gnome.org/GNOME/pygobject/-/commit/3bb03bc5d095cf51c8605521fcc2ce8cad36995f
+---
+ gi/events.py         | 36 +++++++++++++++++++++-----
+ tests/test_events.py | 61 ++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 90 insertions(+), 7 deletions(-)
+
+diff --git a/gi/events.py b/gi/events.py
+index 9f00059ec..980cae0fe 100644
+--- a/gi/events.py
++++ b/gi/events.py
+@@ -28,6 +28,7 @@ import threading
+ import selectors
+ import weakref
+ import warnings
++from collections.abc import Mapping
+ from contextlib import contextmanager
+ from . import _ossighelper
+ 
+@@ -381,9 +382,33 @@ if sys.platform != 'win32':
+         # Subclass to attach _tag
+         pass
+ 
++    class _FileObjectMapping(Mapping):
++        def __init__(self, fd_dict):
++            self.fd_dict = fd_dict
++
++        def __len__(self):
++            return len(self.fd_dict)
++
++        def get(self, fileobj, default=None):
++            fd = _fileobj_to_fd(fileobj)
++            return self.fd_dict.get(fd, default)
++
++        def __getitem__(self, fileobj):
++            value = self.get(fileobj)
++            if value is None:
++                raise KeyError("{!r} is not registered".format(fileobj))
++            return value
++
++        def __iter__(self):
++            return iter(self.fd_dict)
++
+     class _Selector(_SelectorMixin, selectors.BaseSelector):
+         """A Selector for gi.events.GLibEventLoop registering python IO with GLib."""
+ 
++        def __init__(self, context, loop):
++            super().__init__(context, loop)
++            self._map = _FileObjectMapping(self._fd_to_key)
++
+         def attach(self):
+             self._source.attach(self._loop._context)
+ 
+@@ -432,15 +457,12 @@ if sys.platform != 'win32':
+         # We could override modify, but it is only slightly when the "events" change.
+ 
+         def get_key(self, fileobj):
+-            fd = _fileobj_to_fd(fileobj)
+-            return self._fd_to_key[fd]
++            return self._map[fileobj]
+ 
+         def get_map(self):
+-            """Return a mapping of file objects to selector keys."""
+-            # Horribly inefficient
+-            # It should never be called and exists just to prevent issues if e.g.
+-            # python decides to use it for debug purposes.
+-            return {k.fileobj: k for k in self._fd_to_key.values()}
++            """Return a mapping of file objects or file descriptors to
++            selector keys."""
++            return self._map
+ 
+ 
+ else:
+diff --git a/tests/test_events.py b/tests/test_events.py
+index 81409abae..c075af095 100644
+--- a/tests/test_events.py
++++ b/tests/test_events.py
+@@ -45,6 +45,7 @@ import sys
+ import gi
+ import gi.events
+ import asyncio
++import socket
+ import threading
+ from gi.repository import GLib
+ 
+@@ -262,3 +263,63 @@ class GLibEventLoopPolicyTests(unittest.TestCase):
+         GLib.MainLoop().run()
+ 
+         loop.close()
++
++    @unittest.skipIf(sys.platform == 'win32', 'add reader/writer not implemented')
++    def test_source_fileobj_fd(self):
++        """Regression test for
++        https://gitlab.gnome.org/GNOME/pygobject/-/issues/689
++        """
++        class Echo:
++            def __init__(self, sock, expect_bytes):
++                self.sock = sock
++                self.sent_bytes = 0
++                self.expect_bytes = expect_bytes
++                self.done = asyncio.Future()
++                self.data = bytes()
++
++            def send(self):
++                if self.done.done():
++                    return
++                if self.sent_bytes < len(self.data):
++                    self.sent_bytes += self.sock.send(
++                        self.data[self.sent_bytes:])
++                    print('sent', self.data)
++                if self.sent_bytes >= self.expect_bytes:
++                    self.done.set_result(None)
++                    self.sock.shutdown(socket.SHUT_WR)
++
++            def recv(self):
++                if self.done.done():
++                    return
++                self.data += self.sock.recv(self.expect_bytes)
++                print('received', self.data)
++                if len(self.data) >= self.expect_bytes:
++                    self.sock.shutdown(socket.SHUT_RD)
++
++        async def run():
++            loop = asyncio.get_running_loop()
++            s1, s2 = socket.socketpair()
++            sample = b'Hello!'
++            e = Echo(s1, len(sample))
++            # register using file object and file descriptor
++            loop.add_reader(s1, e.recv)
++            loop.add_writer(s1.fileno(), e.send)
++            s2.sendall(sample)
++            await asyncio.wait_for(e.done, timeout=2.0)
++            echo = bytes()
++            for _ in range(len(sample)):
++                echo += s2.recv(len(sample))
++                if len(echo) == len(sample):
++                    break
++            # remove using file object and file descriptor
++            loop.remove_reader(s1)
++            loop.remove_writer(s1.fileno())
++            s1.close()
++            s2.close()
++            # check if the data was echoed correctly
++            self.assertEqual(sample, echo)
++
++        policy = self.create_policy()
++        loop = policy.get_event_loop()
++        loop.run_until_complete(run())
++        loop.close()
+-- 
+GitLab
+
-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3
  2025-05-23 12:15 [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Fiona Klute via buildroot
@ 2025-05-23 12:15 ` Fiona Klute via buildroot
  2025-05-30 19:42   ` Thomas Petazzoni via buildroot
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 3/4] package/gobject-introspection: bump version to 1.84.0 Fiona Klute via buildroot
                   ` (2 subsequent siblings)
  3 siblings, 1 reply; 8+ messages in thread
From: Fiona Klute via buildroot @ 2025-05-23 12:15 UTC (permalink / raw)
  To: buildroot
  Cc: James Hilliard, Fiona Klute (WIWA), Fabrice Fontaine,
	Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

Upstream changelog:
https://gitlab.gnome.org/GNOME/pygobject/-/blob/3.52.3/NEWS?ref_type=tags

Patch updated to the version that applies to 3.52.3.

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Change v4 -> v5: update patch together with version bump

 ...tor.get_map-look-up-file-objects-by-.patch | 27 ++++++++++---------
 package/python-gobject/python-gobject.hash    |  4 +--
 package/python-gobject/python-gobject.mk      |  6 ++---
 3 files changed, 19 insertions(+), 18 deletions(-)

diff --git a/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch b/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch
index baed785aa5..a275abd9c7 100644
--- a/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch
+++ b/package/python-gobject/0001-gi.events._Selector.get_map-look-up-file-objects-by-.patch
@@ -1,4 +1,4 @@
-From 3bb03bc5d095cf51c8605521fcc2ce8cad36995f Mon Sep 17 00:00:00 2001
+From 4b97688d527276fc1e835fed71dbb73bbd09ac11 Mon Sep 17 00:00:00 2001
 From: Fiona Klute <fiona.klute@gmx.de>
 Date: Tue, 25 Mar 2025 13:29:04 +0100
 Subject: [PATCH] gi.events._Selector.get_map(): look up file objects by file
@@ -9,15 +9,16 @@ equivalent for lookup, or one may incorrectly be treated as not
 registered when the other was used for the registration, leading to
 bugs.
 
+Fixes: #689
 Signed-off-by: Fiona Klute <fiona.klute@gmx.de>
-Upstream: https://gitlab.gnome.org/GNOME/pygobject/-/commit/3bb03bc5d095cf51c8605521fcc2ce8cad36995f
+Upstream: https://gitlab.gnome.org/GNOME/pygobject/-/commit/4b97688d527276fc1e835fed71dbb73bbd09ac11
 ---
  gi/events.py         | 36 +++++++++++++++++++++-----
  tests/test_events.py | 61 ++++++++++++++++++++++++++++++++++++++++++++
  2 files changed, 90 insertions(+), 7 deletions(-)
 
 diff --git a/gi/events.py b/gi/events.py
-index 9f00059ec..980cae0fe 100644
+index da4775dc..9eba1629 100644
 --- a/gi/events.py
 +++ b/gi/events.py
 @@ -28,6 +28,7 @@ import threading
@@ -28,7 +29,7 @@ index 9f00059ec..980cae0fe 100644
  from contextlib import contextmanager
  from . import _ossighelper
  
-@@ -381,9 +382,33 @@ if sys.platform != 'win32':
+@@ -508,9 +509,33 @@ if sys.platform != 'win32':
          # Subclass to attach _tag
          pass
  
@@ -62,7 +63,7 @@ index 9f00059ec..980cae0fe 100644
          def attach(self):
              self._source.attach(self._loop._context)
  
-@@ -432,15 +457,12 @@ if sys.platform != 'win32':
+@@ -559,15 +584,12 @@ if sys.platform != 'win32':
          # We could override modify, but it is only slightly when the "events" change.
  
          def get_key(self, fileobj):
@@ -83,21 +84,21 @@ index 9f00059ec..980cae0fe 100644
  
  else:
 diff --git a/tests/test_events.py b/tests/test_events.py
-index 81409abae..c075af095 100644
+index a6585468..9dbf3827 100644
 --- a/tests/test_events.py
 +++ b/tests/test_events.py
-@@ -45,6 +45,7 @@ import sys
+@@ -46,6 +46,7 @@ import sys
  import gi
  import gi.events
  import asyncio
 +import socket
  import threading
- from gi.repository import GLib
+ from gi.repository import GLib, Gio
  
-@@ -262,3 +263,63 @@ class GLibEventLoopPolicyTests(unittest.TestCase):
-         GLib.MainLoop().run()
- 
-         loop.close()
+@@ -344,3 +345,63 @@ class GLibEventLoopPolicyTests(unittest.TestCase):
+         self.assertEqual(order, [GLib.PRIORITY_HIGH] * 3 +
+                                 [GLib.PRIORITY_DEFAULT] * 3 +
+                                 [GLib.PRIORITY_DEFAULT_IDLE] * 3)
 +
 +    @unittest.skipIf(sys.platform == 'win32', 'add reader/writer not implemented')
 +    def test_source_fileobj_fd(self):
@@ -159,5 +160,5 @@ index 81409abae..c075af095 100644
 +        loop.run_until_complete(run())
 +        loop.close()
 -- 
-GitLab
+2.49.0
 
diff --git a/package/python-gobject/python-gobject.hash b/package/python-gobject/python-gobject.hash
index 1dbd40d038..e49c7ddd08 100644
--- a/package/python-gobject/python-gobject.hash
+++ b/package/python-gobject/python-gobject.hash
@@ -1,3 +1,3 @@
-# from https://download.gnome.org/sources/pygobject/3.50/pygobject-3.50.0.sha256sum
-sha256  8d836e75b5a881d457ee1622cae4a32bcdba28a0ba562193adb3bbb472472212  pygobject-3.50.0.tar.xz
+# from https://download.gnome.org/sources/pygobject/3.52/pygobject-3.52.3.sha256sum
+sha256  00e427d291e957462a8fad659a9f9c8be776ff82a8b76bdf402f1eaeec086d82  pygobject-3.52.3.tar.gz
 sha256  32434afcc8666ba060e111d715bfdb6c2d5dd8a35fa4d3ab8ad67d8f850d2f2b  COPYING
diff --git a/package/python-gobject/python-gobject.mk b/package/python-gobject/python-gobject.mk
index 001f355844..3021937887 100644
--- a/package/python-gobject/python-gobject.mk
+++ b/package/python-gobject/python-gobject.mk
@@ -4,9 +4,9 @@
 #
 ################################################################################
 
-PYTHON_GOBJECT_VERSION_MAJOR = 3.50
-PYTHON_GOBJECT_VERSION = $(PYTHON_GOBJECT_VERSION_MAJOR).0
-PYTHON_GOBJECT_SOURCE = pygobject-$(PYTHON_GOBJECT_VERSION).tar.xz
+PYTHON_GOBJECT_VERSION_MAJOR = 3.52
+PYTHON_GOBJECT_VERSION = $(PYTHON_GOBJECT_VERSION_MAJOR).3
+PYTHON_GOBJECT_SOURCE = pygobject-$(PYTHON_GOBJECT_VERSION).tar.gz
 PYTHON_GOBJECT_SITE = https://download.gnome.org/sources/pygobject/$(PYTHON_GOBJECT_VERSION_MAJOR)
 PYTHON_GOBJECT_LICENSE = LGPL-2.1+
 PYTHON_GOBJECT_LICENSE_FILES = COPYING
-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v6 3/4] package/gobject-introspection: bump version to 1.84.0
  2025-05-23 12:15 [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Fiona Klute via buildroot
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3 Fiona Klute via buildroot
@ 2025-05-23 12:15 ` Fiona Klute via buildroot
  2025-05-30 19:44   ` Thomas Petazzoni via buildroot
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 4/4] package/libglib2: bump version to 2.84.2 Fiona Klute via buildroot
  2025-05-30 19:41 ` [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Thomas Petazzoni via buildroot
  3 siblings, 1 reply; 8+ messages in thread
From: Fiona Klute via buildroot @ 2025-05-23 12:15 UTC (permalink / raw)
  To: buildroot
  Cc: James Hilliard, Fiona Klute (WIWA), Fabrice Fontaine,
	Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

GOI now has a build option to disable tests [1], so use that and drop
the "disable tests" patch.

Meson now checks LD_LIBRARY_PATH during configure and sets the result
when calling g-ir-scanner [2]. This means overriding it in _NINJA_ENV
does not work any more, set LD_LIBRARY_PATH in _CONF_ENV instead.

The hash for giscanner/scannerlexer.l changed due to small code
additions.

Upstream changelog:
https://gitlab.gnome.org/GNOME/gobject-introspection/-/blob/1.84.0/NEWS?ref_type=tags

[1] https://gitlab.gnome.org/GNOME/gobject-introspection/-/commit/3e41addbd0f22024f63cc9c3fbef04ca16f05364
[2] https://gitlab.gnome.org/GNOME/gobject-introspection/-/commit/d3f684559facd0edc368e3ac6db95b16e28ed743

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Changes v3 -> v4:
* Fix LD_LIBRARY_PATH for g-ir-scanner

 .checkpackageignore                           |  3 +-
 ...> 0001-Add-rpath-links-to-ccompiler.patch} |  0
 .../0001-disable-tests.patch                  | 34 -------------------
 .../gobject-introspection.hash                |  6 ++--
 .../gobject-introspection.mk                  | 13 ++++---
 5 files changed, 13 insertions(+), 43 deletions(-)
 rename package/gobject-introspection/{0002-Add-rpath-links-to-ccompiler.patch => 0001-Add-rpath-links-to-ccompiler.patch} (100%)
 delete mode 100644 package/gobject-introspection/0001-disable-tests.patch

diff --git a/.checkpackageignore b/.checkpackageignore
index fe736e3185..78db0350c0 100644
--- a/.checkpackageignore
+++ b/.checkpackageignore
@@ -521,8 +521,7 @@ package/gnupg/0001-build-Always-use-EXTERN_UNLESS_MAIN_MODULE-pattern.patch lib_
 package/gnuplot/0001-configure-add-without-demo-option.patch lib_patch.Upstream
 package/go/go-src/0001-build.go-explicit-option-for-crosscompilation.patch lib_patch.Upstream
 package/gob2/0001-dont-include-from-prefix.patch lib_patch.Upstream
-package/gobject-introspection/0001-disable-tests.patch lib_patch.Upstream
-package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch lib_patch.Upstream
+package/gobject-introspection/0001-Add-rpath-links-to-ccompiler.patch lib_patch.Upstream
 package/gpsd/S50gpsd Shellcheck lib_sysv.Indent lib_sysv.Variables
 package/gptfdisk/0001-gptcurses-partially-revert-Tweaks-for-building-on-th.patch lib_patch.Upstream
 package/graphite2/0001-don-t-install-a-libtool-file-with-static-library.patch lib_patch.Upstream
diff --git a/package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch b/package/gobject-introspection/0001-Add-rpath-links-to-ccompiler.patch
similarity index 100%
rename from package/gobject-introspection/0002-Add-rpath-links-to-ccompiler.patch
rename to package/gobject-introspection/0001-Add-rpath-links-to-ccompiler.patch
diff --git a/package/gobject-introspection/0001-disable-tests.patch b/package/gobject-introspection/0001-disable-tests.patch
deleted file mode 100644
index a39f51617b..0000000000
--- a/package/gobject-introspection/0001-disable-tests.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c87faf380ddf44da9d624dabd28178c9065f0f76 Mon Sep 17 00:00:00 2001
-From: Adam Duskett <aduskett@gmail.com>
-Date: Mon, 3 Feb 2020 10:07:15 -0800
-Subject: [PATCH] disable tests
-
-If introspection data on the host is not built, meson throws the error:
-"Unknown variable "typelibs". Because tests are not required, removing
-the subdir tests altogether fixes this issue.
-
-Signed-off-by: Adam Duskett <aduskett@gmail.com>
----
- meson.build | 6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/meson.build b/meson.build
-index c2cb577f..65ce7adf 100644
---- a/meson.build
-+++ b/meson.build
-@@ -237,12 +237,6 @@ else
- endif
- subdir('docs')
- 
--# The tests will also run, which is not possible if they
--# were built for a different architecture.
--if not meson.is_cross_build()
--  subdir('tests')
--endif
--
- install_data('Makefile.introspection', install_dir: join_paths(get_option('datadir'), 'gobject-introspection-1.0'))
- install_data('m4/introspection.m4', install_dir: join_paths(get_option('datadir'), 'aclocal'))
- 
--- 
-2.25.1
-
diff --git a/package/gobject-introspection/gobject-introspection.hash b/package/gobject-introspection/gobject-introspection.hash
index c39c06d102..044216c65f 100644
--- a/package/gobject-introspection/gobject-introspection.hash
+++ b/package/gobject-introspection/gobject-introspection.hash
@@ -1,5 +1,5 @@
-# From https://download.gnome.org/sources/gobject-introspection/1.82/gobject-introspection-1.82.0.sha256sum
-sha256  0f5a4c1908424bf26bc41e9361168c363685080fbdb87a196c891c8401ca2f09  gobject-introspection-1.82.0.tar.xz
+# From https://download.gnome.org/sources/gobject-introspection/1.84/gobject-introspection-1.84.0.sha256sum
+sha256  945b57da7ec262e5c266b89e091d14be800cc424277d82a02872b7d794a84779  gobject-introspection-1.84.0.tar.xz
 sha256  faa2e414bd5f91d2d2c39e85c7cc3f2ccde05c3306f96b404f8ed8cf0266c279  COPYING.LGPL
 sha256  4c1cedcbb4a12ea964f1160dbbf36099e5a59b96129a99a1a1a61f2cb09271fb  COPYING.GPL
-sha256  fb538e24d22de4f8dab6b48b862be84469bcc089e1cf98f6f46d6f74f6f44655  giscanner/scannerlexer.l
+sha256  60cf20b6532aa2f5622f753a55672630b789c04174acca361033e6f1ad29f8ab  giscanner/scannerlexer.l
diff --git a/package/gobject-introspection/gobject-introspection.mk b/package/gobject-introspection/gobject-introspection.mk
index eb46fb61c1..dbf0ee3fa8 100644
--- a/package/gobject-introspection/gobject-introspection.mk
+++ b/package/gobject-introspection/gobject-introspection.mk
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-GOBJECT_INTROSPECTION_VERSION_MAJOR = 1.82
+GOBJECT_INTROSPECTION_VERSION_MAJOR = 1.84
 GOBJECT_INTROSPECTION_VERSION = $(GOBJECT_INTROSPECTION_VERSION_MAJOR).0
 GOBJECT_INTROSPECTION_SITE = https://download.gnome.org/sources/gobject-introspection/$(GOBJECT_INTROSPECTION_VERSION_MAJOR)
 GOBJECT_INTROSPECTION_SOURCE = gobject-introspection-$(GOBJECT_INTROSPECTION_VERSION).tar.xz
@@ -40,7 +40,9 @@ GOBJECT_INTROSPECTION_NINJA_ENV += \
 # .gir and .typelib files. g-ir-scanner does not use LDFLAGS, and by default,
 # links to the system-installed libglib2 path. To remedy this issue, defining
 # LD_LIBRARY_PATH forces g-ir-scanner to use our host installed libglib2 files.
-HOST_GOBJECT_INTROSPECTION_NINJA_ENV += \
+# As of gobject-introspection version 1.84.0, Meson records the
+# LD_LIBRARY_PATH set during config and passes it to g-ir-scanner.
+HOST_GOBJECT_INTROSPECTION_CONF_ENV = \
 	LD_LIBRARY_PATH="$(if $(LD_LIBRARY_PATH),$(LD_LIBRARY_PATH):)$(HOST_DIR)/lib"
 
 # Use the host gi-scanner to prevent the scanner from generating incorrect
@@ -51,13 +53,16 @@ GOBJECT_INTROSPECTION_CONF_OPTS = \
 	-Dgi_cross_ldd_wrapper="$(STAGING_DIR)/usr/bin/g-ir-scanner-lddwrapper" \
 	-Dbuild_introspection_data=true \
 	-Ddoctool=disabled \
-	-Dcairo=disabled
+	-Dcairo=disabled \
+	-Dtests=false
+
+HOST_GOBJECT_INTROSPECTION_CONF_OPTS = -Dtests=false
 
 # GI_SCANNER_DISABLE_CACHE=1 prevents g-ir-scanner from writing cache data to ${HOME}
 GOBJECT_INTROSPECTION_CONF_ENV = \
 	GI_SCANNER_DISABLE_CACHE=1
 
-HOST_GOBJECT_INTROSPECTION_CONF_ENV = \
+HOST_GOBJECT_INTROSPECTION_CONF_ENV += \
 	GI_SCANNER_DISABLE_CACHE=1
 
 # Make sure g-ir-tool-template uses the host python.
-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* [Buildroot] [PATCH v6 4/4] package/libglib2: bump version to 2.84.2
  2025-05-23 12:15 [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Fiona Klute via buildroot
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3 Fiona Klute via buildroot
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 3/4] package/gobject-introspection: bump version to 1.84.0 Fiona Klute via buildroot
@ 2025-05-23 12:15 ` Fiona Klute via buildroot
  2025-05-30 19:46   ` Thomas Petazzoni via buildroot
  2025-05-30 19:41 ` [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Thomas Petazzoni via buildroot
  3 siblings, 1 reply; 8+ messages in thread
From: Fiona Klute via buildroot @ 2025-05-23 12:15 UTC (permalink / raw)
  To: buildroot
  Cc: James Hilliard, Fiona Klute (WIWA), Fabrice Fontaine,
	Thomas Petazzoni

From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>

This is the current bug fix release on the 2.84 branch, upstream
changelog:
https://gitlab.gnome.org/GNOME/glib/-/blob/2.84.2/NEWS?ref_type=tags

Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
---
Change v5 -> v6: Update to 2.84.2 instead of 2.84.1 (new upstream
release)

Patch added in v3 (new upstream release).

 package/libglib2/libglib2.hash | 4 ++--
 package/libglib2/libglib2.mk   | 2 +-
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/package/libglib2/libglib2.hash b/package/libglib2/libglib2.hash
index 9bc244ff22..bfa74f7505 100644
--- a/package/libglib2/libglib2.hash
+++ b/package/libglib2/libglib2.hash
@@ -1,4 +1,4 @@
-# https://download.gnome.org/sources/glib/2.84/glib-2.84.0.sha256sum
-sha256  f8823600cb85425e2815cfad82ea20fdaa538482ab74e7293d58b3f64a5aff6a  glib-2.84.0.tar.xz
+# https://download.gnome.org/sources/glib/2.84/glib-2.84.2.sha256sum
+sha256  88e960dd937057407d61fcb3b45a860704b25923c37ae2478b85f2ecb5a4021f  glib-2.84.2.tar.xz
 # License files, locally calculated
 sha256  fa6f36630bb1e0c571d34b2bbdf188d08495c9dbf58f28cac112f303fc1f58fb  COPYING
diff --git a/package/libglib2/libglib2.mk b/package/libglib2/libglib2.mk
index a1a3954914..05f6ac0c20 100644
--- a/package/libglib2/libglib2.mk
+++ b/package/libglib2/libglib2.mk
@@ -5,7 +5,7 @@
 ################################################################################
 
 LIBGLIB2_VERSION_MAJOR = 2.84
-LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).0
+LIBGLIB2_VERSION = $(LIBGLIB2_VERSION_MAJOR).2
 LIBGLIB2_SOURCE = glib-$(LIBGLIB2_VERSION).tar.xz
 LIBGLIB2_SITE = https://download.gnome.org/sources/glib/$(LIBGLIB2_VERSION_MAJOR)
 LIBGLIB2_LICENSE = LGPL-2.1+
-- 
2.49.0

_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply related	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13
  2025-05-23 12:15 [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Fiona Klute via buildroot
                   ` (2 preceding siblings ...)
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 4/4] package/libglib2: bump version to 2.84.2 Fiona Klute via buildroot
@ 2025-05-30 19:41 ` Thomas Petazzoni via buildroot
  3 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-05-30 19:41 UTC (permalink / raw)
  To: Fiona Klute via buildroot; +Cc: Fiona Klute, James Hilliard, Fabrice Fontaine

On Fri, 23 May 2025 14:15:18 +0200
Fiona Klute via buildroot <buildroot@buildroot.org> wrote:

> From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>
> 
> Since Python 3.13 BaseSelectorEventLoop.add_reader() and
> BaseSelectorEventLoop.add_writer() use the mapping returned by
> selector.get_map() to detect if a file object is already
> registered. This fails with the implementation in gi.events._Selector
> if some calls use a file object, and others the raw file descriptor.
> 
> Full upstream bug report:
> https://gitlab.gnome.org/GNOME/pygobject/-/issues/689
> 
> This bug breaks package/python-aiomqtt, because its client object uses
> file objects in some places for the connection socket, and the file
> descriptor in others. The result is that the connection attempt times
> out because source registration fails, and the Future that marks
> successful connection never resolves.
> 
> This commit adds the fix as backported to PyGObject 3.50 [1] so it can
> be cherry-picked to Buildroot stable versions using that version.
> 
> [1] https://gitlab.gnome.org/GNOME/pygobject/-/merge_requests/423
> 
> Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
> ---
> Change v4 -> v5: Reorder patch before version bump to support backport
> to stable, replace patch with version applicable to 3.50.

Applied to master and cherry-picked into next so that I can apply the
remainder of the series on next. Thanks a lot!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3 Fiona Klute via buildroot
@ 2025-05-30 19:42   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-05-30 19:42 UTC (permalink / raw)
  To: Fiona Klute via buildroot; +Cc: Fiona Klute, James Hilliard, Fabrice Fontaine

On Fri, 23 May 2025 14:15:19 +0200
Fiona Klute via buildroot <buildroot@buildroot.org> wrote:

> From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>
> 
> Upstream changelog:
> https://gitlab.gnome.org/GNOME/pygobject/-/blob/3.52.3/NEWS?ref_type=tags
> 
> Patch updated to the version that applies to 3.52.3.
> 
> Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
> ---
> Change v4 -> v5: update patch together with version bump

Applied to next, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH v6 3/4] package/gobject-introspection: bump version to 1.84.0
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 3/4] package/gobject-introspection: bump version to 1.84.0 Fiona Klute via buildroot
@ 2025-05-30 19:44   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-05-30 19:44 UTC (permalink / raw)
  To: Fiona Klute via buildroot; +Cc: Fiona Klute, James Hilliard, Fabrice Fontaine

On Fri, 23 May 2025 14:15:20 +0200
Fiona Klute via buildroot <buildroot@buildroot.org> wrote:

> From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>
> 
> GOI now has a build option to disable tests [1], so use that and drop
> the "disable tests" patch.
> 
> Meson now checks LD_LIBRARY_PATH during configure and sets the result
> when calling g-ir-scanner [2]. This means overriding it in _NINJA_ENV
> does not work any more, set LD_LIBRARY_PATH in _CONF_ENV instead.
> 
> The hash for giscanner/scannerlexer.l changed due to small code
> additions.
> 
> Upstream changelog:
> https://gitlab.gnome.org/GNOME/gobject-introspection/-/blob/1.84.0/NEWS?ref_type=tags
> 
> [1] https://gitlab.gnome.org/GNOME/gobject-introspection/-/commit/3e41addbd0f22024f63cc9c3fbef04ca16f05364
> [2] https://gitlab.gnome.org/GNOME/gobject-introspection/-/commit/d3f684559facd0edc368e3ac6db95b16e28ed743
> 
> Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
> ---
> Changes v3 -> v4:
> * Fix LD_LIBRARY_PATH for g-ir-scanner

Applied to next, thanks.

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: [Buildroot] [PATCH v6 4/4] package/libglib2: bump version to 2.84.2
  2025-05-23 12:15 ` [Buildroot] [PATCH v6 4/4] package/libglib2: bump version to 2.84.2 Fiona Klute via buildroot
@ 2025-05-30 19:46   ` Thomas Petazzoni via buildroot
  0 siblings, 0 replies; 8+ messages in thread
From: Thomas Petazzoni via buildroot @ 2025-05-30 19:46 UTC (permalink / raw)
  To: Fiona Klute via buildroot; +Cc: Fiona Klute, James Hilliard, Fabrice Fontaine

On Fri, 23 May 2025 14:15:21 +0200
Fiona Klute via buildroot <buildroot@buildroot.org> wrote:

> From: "Fiona Klute (WIWA)" <fiona.klute@gmx.de>
> 
> This is the current bug fix release on the 2.84 branch, upstream
> changelog:
> https://gitlab.gnome.org/GNOME/glib/-/blob/2.84.2/NEWS?ref_type=tags
> 
> Signed-off-by: Fiona Klute (WIWA) <fiona.klute@gmx.de>
> ---
> Change v5 -> v6: Update to 2.84.2 instead of 2.84.1 (new upstream
> release)

Since it's a bugfix release, I've decided to apply this one to our
master branch instead of our next branch.

Thanks!

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2025-05-30 19:47 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-23 12:15 [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Fiona Klute via buildroot
2025-05-23 12:15 ` [Buildroot] [PATCH v6 2/4] package/python-gobject: bump version to 3.52.3 Fiona Klute via buildroot
2025-05-30 19:42   ` Thomas Petazzoni via buildroot
2025-05-23 12:15 ` [Buildroot] [PATCH v6 3/4] package/gobject-introspection: bump version to 1.84.0 Fiona Klute via buildroot
2025-05-30 19:44   ` Thomas Petazzoni via buildroot
2025-05-23 12:15 ` [Buildroot] [PATCH v6 4/4] package/libglib2: bump version to 2.84.2 Fiona Klute via buildroot
2025-05-30 19:46   ` Thomas Petazzoni via buildroot
2025-05-30 19:41 ` [Buildroot] [PATCH v6 1/4] package/python-gobject: fix event source registration with Python 3.13 Thomas Petazzoni via buildroot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox