summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Schwartz <eschwartz@gentoo.org>2024-08-09 10:51:42 -0400
committerEli Schwartz <eschwartz@gentoo.org>2024-08-09 10:55:20 -0400
commit986cc3ef311fcd23a2056c9b0e823a99d6f1cd29 (patch)
treeda603df1a6edcfb2bde7584c55cf218cccc182c3 /dev-libs/libportal
parentnet-libs/xdp-tools: clean up old (diff)
downloadgentoo-986cc3ef311fcd23a2056c9b0e823a99d6f1cd29.tar.gz
gentoo-986cc3ef311fcd23a2056c9b0e823a99d6f1cd29.tar.bz2
gentoo-986cc3ef311fcd23a2056c9b0e823a99d6f1cd29.zip
dev-libs/libportal: backport test fix for python-dbusmock 0.30.0
Signed-off-by: Eli Schwartz <eschwartz@gentoo.org>
Diffstat (limited to 'dev-libs/libportal')
-rw-r--r--dev-libs/libportal/files/6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f.patch47
-rw-r--r--dev-libs/libportal/libportal-0.7.1-r1.ebuild5
-rw-r--r--dev-libs/libportal/libportal-0.7.1.ebuild5
3 files changed, 57 insertions, 0 deletions
diff --git a/dev-libs/libportal/files/6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f.patch b/dev-libs/libportal/files/6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f.patch
new file mode 100644
index 000000000000..ea055c832dc8
--- /dev/null
+++ b/dev-libs/libportal/files/6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f.patch
@@ -0,0 +1,47 @@
+From 6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f Mon Sep 17 00:00:00 2001
+From: Simon McVittie <smcv@debian.org>
+Date: Tue, 26 Dec 2023 14:35:46 +0000
+Subject: [PATCH] pyportaltest: Only create one session bus per DBusTestCase
+ subclass
+
+DBusTestCase.start_session_bus() is a class method, and can only be
+called once per class, because DBusTestCase.tearDownClass() will only
+clean up one session bus. In older versions of dbusmock, calling it more
+than once will result in dbus-daemon processes being leaked; since
+0.30.0, calling it more than once will result in an assertion failure.
+
+Resolves: https://github.com/flatpak/libportal/issues/136
+Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1058245
+Signed-off-by: Simon McVittie <smcv@debian.org>
+---
+ tests/pyportaltest/__init__.py | 10 +++++++++-
+ 1 file changed, 9 insertions(+), 1 deletion(-)
+
+diff --git a/tests/pyportaltest/__init__.py b/tests/pyportaltest/__init__.py
+index af053c2a..80f04a91 100644
+--- a/tests/pyportaltest/__init__.py
++++ b/tests/pyportaltest/__init__.py
+@@ -83,6 +83,14 @@ def setUpClass(cls):
+ except AttributeError:
+ pytest.skip("Updated version of dbusmock required")
+
++ cls.__have_session_bus = False
++
++ @classmethod
++ def ensure_session_bus(cls):
++ if not cls.__have_session_bus:
++ cls.__have_session_bus = True
++ cls.start_session_bus()
++
+ def setUp(self):
+ self.p_mock = None
+ self._mainloop = None
+@@ -96,7 +104,7 @@ def setup_daemon(self, params=None, extra_templates: List[Tuple[str, Dict]] = []
+ portal name as first value and the param dict to be passed to that
+ template as second value, e.g. ("ScreenCast", {...}).
+ """
+- self.start_session_bus()
++ self.ensure_session_bus()
+ self.p_mock, self.obj_portal = self.spawn_server_template(
+ template=f"pyportaltest/templates/{self.PORTAL_NAME.lower()}.py",
+ parameters=params,
diff --git a/dev-libs/libportal/libportal-0.7.1-r1.ebuild b/dev-libs/libportal/libportal-0.7.1-r1.ebuild
index ee06945d14a1..81876f8802a6 100644
--- a/dev-libs/libportal/libportal-0.7.1-r1.ebuild
+++ b/dev-libs/libportal/libportal-0.7.1-r1.ebuild
@@ -57,6 +57,11 @@ BDEPEND="
vala? ( $(vala_depend) )
"
+PATCHES=(
+ # backport fix for tests incompatibility with dbusmock 0.30.0
+ "${FILESDIR}"/6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f.patch
+)
+
python_check_deps() {
python_has_version \
"dev-python/pytest[${PYTHON_USEDEP}]" \
diff --git a/dev-libs/libportal/libportal-0.7.1.ebuild b/dev-libs/libportal/libportal-0.7.1.ebuild
index 38a05311150b..5d36d44b83ea 100644
--- a/dev-libs/libportal/libportal-0.7.1.ebuild
+++ b/dev-libs/libportal/libportal-0.7.1.ebuild
@@ -57,6 +57,11 @@ BDEPEND="
vala? ( $(vala_depend) )
"
+PATCHES=(
+ # backport fix for tests incompatibility with dbusmock 0.30.0
+ "${FILESDIR}"/6cd7c2ab82575b76f876ee2bd2d31f6cb77f022f.patch
+)
+
python_check_deps() {
python_has_version \
"dev-python/pytest[${PYTHON_USEDEP}]" \