Package: exaile Version: 4.1.3+dfsg-1 Severity: normal Tags: patch User: pkg-gnome-maintain...@lists.alioth.debian.org Usertags: girepository-2.0
exaile contains code that explicitly loads the GIRepository-2.0 typelib. This is currently part of gir1.2-glib-2.0, but it will need to be moved to a separate binary package during the GNOME 46 cycle, as a result of most of gir1.2-glib-2.0 moving to src:glib2.0 (which has broken some of the API/ABI in the process, resulting in it shipping an incompatible GIRepository-3.0 instead). python3-gi will continue to pull in the GIRepository-2.0 from src:gobject-introspection, at least for a while, but it will be easier to keep track of which packages will be affected by a future transition from GIRepository-2.0 to GIRepository-3.0 if we make the dependency explicit. Please consider applying the attached patch 0001 to achieve this. While checking this, I also noticed that the package imports lots of typelibs without explicitly depending on them: they are currently pulled in via indirect dependencies, but that could change. Please consider applying the attached patches 0002 and 0003 to make these dependencies explicit. I've assumed that the non-plugin parts of the codebase are functionally necessary, but the plugins would only be a Suggests if packaged separately; please arrange the dependencies between Depends, Recommends and Suggests in a more appropriate way if my assumptions were incorrect. The patches are untested (I don't use exaile myself) but are simple enough that I hope they're correct. Thanks, smcv
>From 5e380e8e957b3dd1c7b25be1e60c2a20fb2caa15 Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Fri, 29 Dec 2023 00:26:47 +0000 Subject: [PATCH 1/3] d/control: Explicitly depend on gir1.2-girepository-2.0 This is currently a virtual package provided by gir1.2-glib-2.0, but it will need to be split into a separate package during the GNOME 46/GLib 2.79.x cycle. Making this dependency explicit will also help to keep track of which packages will need coordination when PyGI switches from GIRepository 2.0 to GIRepository 3.0. --- debian/control | 1 + 1 file changed, 1 insertion(+) diff --git a/debian/control b/debian/control index 9d76d95..dd01fde 100644 --- a/debian/control +++ b/debian/control @@ -16,6 +16,7 @@ Depends: gstreamer1.0-plugins-good (>=1.14), python3-mutagen (>=1.38), python3-gi-cairo (>=3.26), + gir1.2-girepository-2.0, gir1.2-gtk-3.0 (>=3.22), gir1.2-gst-plugins-base-1.0 (>=1.14), gvfs-backends (>=1.36), -- 2.43.0
>From 59b0960f5be864f7c0648eba14569bd1bce70a5b Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Fri, 29 Dec 2023 00:28:01 +0000 Subject: [PATCH 2/3] d/control: Add explicit dependencies on directly-imported typelibs These are all pulled in as indirect dependencies, but indirect dependencies can change, so it's more robust if we directly depend on everything imported by the Exaile codebase (other than plugins). --- debian/control | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/debian/control b/debian/control index dd01fde..bdf0b60 100644 --- a/debian/control +++ b/debian/control @@ -16,9 +16,17 @@ Depends: gstreamer1.0-plugins-good (>=1.14), python3-mutagen (>=1.38), python3-gi-cairo (>=3.26), + gir1.2-atk-1.0, + gir1.2-gdk-3.0, + gir1.2-gdkpixbuf-2.0, + gir1.2-gio-2.0, gir1.2-girepository-2.0, + gir1.2-glib-2.0, + gir1.2-gobject-2.0, gir1.2-gtk-3.0 (>=3.22), gir1.2-gst-plugins-base-1.0 (>=1.14), + gir1.2-gstreamer-1.0, + gir1.2-pango-1.0, gvfs-backends (>=1.36), python3-libdiscid (>=2.0), python3-musicbrainzngs (>=0.7), -- 2.43.0
>From 715f1f61ad979bc597dcf23e27428a16d590ec45 Mon Sep 17 00:00:00 2001 From: Simon McVittie <s...@debian.org> Date: Fri, 29 Dec 2023 00:28:46 +0000 Subject: [PATCH 3/3] d/control: Add Suggests on optional typelibs imported by plugins Some plugins will not work without installing extra typelibs. Make those a bit more discoverable. --- debian/control | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/debian/control b/debian/control index bdf0b60..49a2d79 100644 --- a/debian/control +++ b/debian/control @@ -31,6 +31,11 @@ Depends: python3-libdiscid (>=2.0), python3-musicbrainzngs (>=0.7), ${misc:Depends} +Suggests: + gir1.2-keybinder-3.0, + gir1.2-pangocairo-1.0, + gir1.2-notify-0.7, + gir1.2-webkit2-4.1 | gir1.2-webkit2-4.0, Description: Music player with a simple interface and powerful capabilities Exaile is a music player with a simple interface and powerful music management capabilities. Features include automatic fetching of album -- 2.43.0