Control: tags -1 + patch
On Tue, 21 Oct 2025 at 12:49:52 +0100, Simon McVittie wrote:
pygobject >= 3.52 (available in experimental) has switched from
libgirepository-1.0 to libgirepository-2.0 as its way to access GObject
libraries such as GTK.
...
Initially, these changes will need to be uploaded to
experimental, either by a maintainer or as an NMU. Optionally a
maintainer could update to the latest 1.16.x release from upstream
instead of backporting patches (but as a non-maintainer I don't plan to
propose that change myself).
Please see https://salsa.debian.org/debian/liferea/-/merge_requests/5 or
the attached patches.
The first two patches would probably be OK for unstable (but I haven't
tried that), the third is only suitable for experimental at this stage.
I will open a transition-tracking bug (or perhaps reassign #1099164)
when we have patches ready for all known-affected packages.
smcv
>From 5714038a8841f5e411ad238b7b756e9c984a7d9f Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 21 Oct 2025 09:52:20 +0100
Subject: [PATCH 1/4] d/control: Drop unneeded dependency on gir1.2-peas-1.0
liferea has used libpeas2 instead since 1.16~rc3, and doesn't actually
require the typelib from libpeas version 1 any more.
Helps: #1118363, #1118500
---
debian/control | 1 -
1 file changed, 1 deletion(-)
diff --git a/debian/control b/debian/control
index 40aa5e1b6..91f2459f5 100644
--- a/debian/control
+++ b/debian/control
@@ -38,7 +38,6 @@ Package: liferea
Architecture: any
Depends:
default-dbus-session-bus | dbus-session-bus,
- gir1.2-peas-1.0,
liferea-data (<< ${source:Upstream-Version}.0~),
liferea-data (>= ${source:Upstream-Version}~),
python3-cairo,
--
2.51.0
>From bdf3538e8eb80e106acd9c6fdc70fcabd33fad2c Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 21 Oct 2025 09:51:26 +0100
Subject: [PATCH 2/4] d/control, d/patches: Auto-detect required
libgirepository version
When built with pygobject older than 3.52, we need to use
libgirepository-1.0 as before, but when built with pygobject 3.52 or
newer, we need to use libgirepository-2.0. Build-depend on python-gi-dev
and use that to detect which one is correct.
During the transition from pygobject 3.50.x to newer versions, we don't
immediately know which libgirepository version we are going to use,
so temporarily build-depend on both.
The patches were taken from the upstream 1.16.x branch. The first two
can be dropped when updating to 1.16.3 or later, and the third can be
dropped when updating to 1.16.5 or later.
Helps: #1099164, #1118500
---
debian/control | 2 +
...ory-2.0-hint-on-1449-in-configure.ac.patch | 22 ++++++
...etermine-girepository-version-to-use.patch | 67 +++++++++++++++++++
debian/patches/Backport-fixes-from-1459.patch | 62 +++++++++++++++++
debian/patches/series | 3 +
5 files changed, 156 insertions(+)
create mode 100644 debian/patches/Add-girepository-2.0-hint-on-1449-in-configure.ac.patch
create mode 100644 debian/patches/Automatically-determine-girepository-version-to-use.patch
create mode 100644 debian/patches/Backport-fixes-from-1459.patch
diff --git a/debian/control b/debian/control
index 91f2459f5..ed65fcdeb 100644
--- a/debian/control
+++ b/debian/control
@@ -11,6 +11,7 @@ Build-Depends:
gsettings-desktop-schemas-dev,
intltool,
libgirepository-1.0-dev,
+ libgirepository-2.0-dev,
libglib2.0-dev,
libgtk-3-dev,
libjs-handlebars,
@@ -25,6 +26,7 @@ Build-Depends:
liferea-data <!nocheck>,
node-dompurify,
python3,
+ python-gi-dev,
valgrind-if-available <!nocheck>,
Build-Depends-Indep:
librsvg2-bin,
diff --git a/debian/patches/Add-girepository-2.0-hint-on-1449-in-configure.ac.patch b/debian/patches/Add-girepository-2.0-hint-on-1449-in-configure.ac.patch
new file mode 100644
index 000000000..c4ba9eb2a
--- /dev/null
+++ b/debian/patches/Add-girepository-2.0-hint-on-1449-in-configure.ac.patch
@@ -0,0 +1,22 @@
+From: Lars Windolf <[email protected]>
+Date: Tue, 2 Sep 2025 22:19:01 +0200
+Subject: Add girepository-2.0 hint on #1449 in configure.ac
+
+Origin: upstream, 1.16.3, commit:50295ba99e68c454a2f12421bcae69dbcbbe0029
+---
+ configure.ac | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/configure.ac b/configure.ac
+index 2eb9fdf..62464e8 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -77,6 +77,8 @@ GOBJECT_INTROSPECTION_CHECK([0.9.3])
+ # are running against. Please change from 1 to 2 if building against pygobject > 3.52.3
+ # (See also https://github.com/lwindolf/liferea/issues/1425)
+ #
++# When setting this to 2 also ensure to replace "gobject-introspection-1.0"
++# in the dependencies above with "girepository-2.0"
+ AC_DEFINE_UNQUOTED(USE_GI_REPOSITORY_VERSION, 1, [defines the girepository version to use])
+
+ ################################################################################
diff --git a/debian/patches/Automatically-determine-girepository-version-to-use.patch b/debian/patches/Automatically-determine-girepository-version-to-use.patch
new file mode 100644
index 000000000..332fa4360
--- /dev/null
+++ b/debian/patches/Automatically-determine-girepository-version-to-use.patch
@@ -0,0 +1,67 @@
+From: loqs <[email protected]>
+Date: Mon, 1 Sep 2025 21:30:36 +0000
+Subject: Automatically determine girepository version to use
+
+Origin: upstream, 1.16.3, commit:8862543c7a99869095c67c18147df9c3a3c6c2e8
+---
+ configure.ac | 31 ++++++++++++++++---------------
+ 1 file changed, 16 insertions(+), 15 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 62464e8..320fdfc 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -26,6 +26,20 @@ AC_CHECK_FUNCS([strsep])
+
+ PKG_PROG_PKG_CONFIG()
+
++################################################################################
++# Plugins via Introspection
++
++GOBJECT_INTROSPECTION_CHECK([0.9.3])
++
++# Check pygobject version to select matching girepository
++PKG_CHECK_MODULES([PYGOBJECT], [pygobject-3.0 < 3.52.3],
++ [AC_DEFINE_UNQUOTED(USE_GI_REPOSITORY_VERSION, 1,
++ [defines the girepository version to use])
++ [girepository="gobject-introspection-1.0"]],
++ [AC_DEFINE_UNQUOTED(USE_GI_REPOSITORY_VERSION, 2,
++ [defines the girepository version to use])
++ [girepository="girepository-2.0"]])
++
+ ################################################################################
+ # Mandatory library dependencies
+
+@@ -41,10 +55,10 @@ pkg_modules=" gtk+-3.0 >= 3.24.0
+ libsoup-3.0 >= 3.0.7
+ webkit2gtk-4.1
+ json-glib-1.0
+- gobject-introspection-1.0
+ gsettings-desktop-schemas
+ libpeas-2
+- fribidi >= 0.19.7"
++ fribidi >= 0.19.7
++ $girepository"
+
+ ################################################################################
+
+@@ -68,19 +82,6 @@ AC_DEFINE_UNQUOTED(OS, $uname, [defines a OS version string, used for OS specifi
+ AC_DEFINE_UNQUOTED(OSNAME, "$uname", [defines a OS version string, used for the user agent string])
+ AC_MSG_RESULT(user agent OS = $uname)
+
+-################################################################################
+-# Plugins via Introspection
+-
+-GOBJECT_INTROSPECTION_CHECK([0.9.3])
+-
+-# Due to the mess in pygobject we need to know with which girepository we
+-# are running against. Please change from 1 to 2 if building against pygobject > 3.52.3
+-# (See also https://github.com/lwindolf/liferea/issues/1425)
+-#
+-# When setting this to 2 also ensure to replace "gobject-introspection-1.0"
+-# in the dependencies above with "girepository-2.0"
+-AC_DEFINE_UNQUOTED(USE_GI_REPOSITORY_VERSION, 1, [defines the girepository version to use])
+-
+ ################################################################################
+
+ AM_GLIB_GNU_GETTEXT
diff --git a/debian/patches/Backport-fixes-from-1459.patch b/debian/patches/Backport-fixes-from-1459.patch
new file mode 100644
index 000000000..f857fdb11
--- /dev/null
+++ b/debian/patches/Backport-fixes-from-1459.patch
@@ -0,0 +1,62 @@
+From: Lars Windolf <[email protected]>
+Date: Mon, 22 Sep 2025 17:56:27 +0200
+Subject: Backport fixes from #1459
+
+Origin: upstream, 1.16.5, commit:214f375c674f9940eefe2cfa916a98b64d1cba15
+---
+ plugins/download-manager.py | 1 -
+ plugins/gnome-keyring.py | 1 -
+ plugins/trayicon.py | 1 -
+ src/plugins/plugins_engine.c | 3 +--
+ 4 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/plugins/download-manager.py b/plugins/download-manager.py
+index 22e1f08..6e5b762 100644
+--- a/plugins/download-manager.py
++++ b/plugins/download-manager.py
+@@ -24,7 +24,6 @@ import os
+ import time
+
+ gi.require_version('Gtk', '3.0')
+-gi.require_version('Liferea', '3.0')
+
+ from gi.repository import GObject, GLib, Gtk, Gio, Liferea, Pango
+ from urllib.parse import urlparse
+diff --git a/plugins/gnome-keyring.py b/plugins/gnome-keyring.py
+index 754fdaa..fdd3484 100644
+--- a/plugins/gnome-keyring.py
++++ b/plugins/gnome-keyring.py
+@@ -19,7 +19,6 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
+ """
+
+ import gi
+-gi.require_version('Liferea', '3.0')
+ gi.require_version('Secret', '1')
+ from gi.repository import GObject, Liferea, Secret
+
+diff --git a/plugins/trayicon.py b/plugins/trayicon.py
+index d89a237..03de6bd 100644
+--- a/plugins/trayicon.py
++++ b/plugins/trayicon.py
+@@ -24,7 +24,6 @@ from pathlib import Path
+ from collections import namedtuple
+ import cairo
+ import gi
+-gi.require_version('Liferea', '3.0')
+ from gi.repository import Gio, GLib, GObject, Gtk, Liferea
+ from gi.repository import Gdk, GdkPixbuf
+
+diff --git a/src/plugins/plugins_engine.c b/src/plugins/plugins_engine.c
+index 20cc0de..9a5a135 100644
+--- a/src/plugins/plugins_engine.c
++++ b/src/plugins/plugins_engine.c
+@@ -112,8 +112,7 @@ liferea_plugins_engine_init (LifereaPluginsEngine *plugins)
+ error = NULL;
+ }
+ #else
+- g_autoptr(GIRepository) repo = gi_repository_new ();
+- if (!gi_repository_require_private (repo,
++ if (!gi_repository_require_private (gi_repository_dup_default (),
+ typelib_dir, "Liferea", "3.0", 0, &error)) {
+ g_warning ("Could not load Liferea repository: %s", error->message);
+ g_error_free (error);
diff --git a/debian/patches/series b/debian/patches/series
index a2f2ae999..3af8c8711 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -3,3 +3,6 @@ www-browser.patch
dont-run-tests-with-network
fix-reference-for-libxml2-update.patch
disable-failing-memcheck-test.patch
+Add-girepository-2.0-hint-on-1449-in-configure.ac.patch
+Automatically-determine-girepository-version-to-use.patch
+Backport-fixes-from-1459.patch
--
2.51.0
>From fcacf11362ecb717041de213cac2c15781052fea Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 21 Oct 2025 11:58:23 +0100
Subject: [PATCH 3/4] d/control: Specifically build against the new version of
python3-gi
This puts us on the "new" side of the pygobject transition.
Helps: #1099164
Closes: #1118500
---
debian/control | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/debian/control b/debian/control
index ed65fcdeb..86fac9d45 100644
--- a/debian/control
+++ b/debian/control
@@ -10,7 +10,6 @@ Build-Depends:
gobject-introspection | dh-sequence-gir,
gsettings-desktop-schemas-dev,
intltool,
- libgirepository-1.0-dev,
libgirepository-2.0-dev,
libglib2.0-dev,
libgtk-3-dev,
@@ -26,7 +25,7 @@ Build-Depends:
liferea-data <!nocheck>,
node-dompurify,
python3,
- python-gi-dev,
+ python-gi-dev (>= 3.52),
valgrind-if-available <!nocheck>,
Build-Depends-Indep:
librsvg2-bin,
@@ -43,8 +42,8 @@ Depends:
liferea-data (<< ${source:Upstream-Version}.0~),
liferea-data (>= ${source:Upstream-Version}~),
python3-cairo,
- python3-gi,
- python3-gi-cairo,
+ python3-gi (>= 3.52),
+ python3-gi-cairo (>= 3.52),
python3-notify2,
${gir:Depends},
${misc:Depends},
--
2.51.0
>From 7530792f42664c326e37d5a3a75eb6c626b2eea5 Mon Sep 17 00:00:00 2001
From: Simon McVittie <[email protected]>
Date: Tue, 21 Oct 2025 12:45:11 +0100
Subject: [PATCH 4/4] Update changelog
---
debian/changelog | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/debian/changelog b/debian/changelog
index 4c2b8313d..c18d10e5d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,20 @@
+liferea (1.16.1+ds-3) UNRELEASED; urgency=medium
+
+ * d/control: Drop unneeded dependency on gir1.2-peas-1.0
+ (Helps: #1118363)
+ * d/control,
+ d/p/Add-girepository-2.0-hint-on-1449-in-configure.ac.patch,
+ d/p/Automatically-determine-girepository-version-to-use.patch,
+ d/p/Backport-fixes-from-1459.patch:
+ Automatically detect whether to use libgirepository-1.0
+ (needed with pygobject < 3.52) or libgirepository-2.0
+ (needed with pygobject >= 3.52).
+ * d/control: Specifically build against the new version of python3-gi.
+ This puts us on the "new" side of the pygobject transition.
+ (Helps: #1099164) (Closes: #1118500)
+
+ -- Simon McVittie <[email protected]> Tue, 21 Oct 2025 12:43:34 +0100
+
liferea (1.16.1+ds-2) unstable; urgency=medium
* Add patch to work around failing memcheck test (Closes: #1115697)
--
2.51.0