mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2025-12-15 00:10:53 +03:00
Moves to revision 1 and introduces: - A <dev-python/pygobject-3.52 restriction for versions lower than 1.24.11-r1 - A dev-python/pygobject-3.52.3 compability patch for version 1.24.11-r1 Note that the move to revision 1 was done in a separate commit for gst-python-1.22.11 to avoid git emitting a misleading diff. Signed-off-by: Lukas Schmelting <lschmelting@posteo.com> Part-of: https://github.com/gentoo/gentoo/pull/41404 Signed-off-by: Sam James <sam@gentoo.org>
69 lines
2.2 KiB
Diff
69 lines
2.2 KiB
Diff
From 0496a778bb85e0b263ed2fddfcf3dac7961fe4f5 Mon Sep 17 00:00:00 2001
|
|
From: Matteo Bruni <matteo.bruni@gmail.com>
|
|
Date: Thu, 20 Mar 2025 10:09:21 +0100
|
|
Subject: [PATCH] gst-python: fix compatibility with PyGObject>=3.52.0
|
|
|
|
PyGObject 3.52.0 moved OverridesProxyModule _introspection_module to __slots__,
|
|
causing Segmentation Faults when accessing the field.
|
|
Since _introspection_module is used to get Gst.Element but is never actually
|
|
used afterward, we fix the issue by removing this part.
|
|
|
|
Fixes #4314
|
|
|
|
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/8685>
|
|
---
|
|
.../gst-python/plugin/gstpythonplugin.c | 23 +------------------
|
|
1 file changed, 1 insertion(+), 22 deletions(-)
|
|
|
|
diff --git a/subprojects/gst-python/plugin/gstpythonplugin.c b/subprojects/gst-python/plugin/gstpythonplugin.c
|
|
index ba2986f265d5..47442bb47e03 100644
|
|
--- a/plugin/gstpythonplugin.c
|
|
+++ b/plugin/gstpythonplugin.c
|
|
@@ -53,8 +53,6 @@ gstpy_module_symbol (gpointer handle, const char *name, gpointer * symbol)
|
|
}
|
|
#endif
|
|
|
|
-void *_PyGstElement_Type;
|
|
-
|
|
GST_DEBUG_CATEGORY_STATIC (pyplugindebug);
|
|
#define GST_CAT_DEFAULT pyplugindebug
|
|
|
|
@@ -237,7 +235,7 @@ static gboolean
|
|
plugin_init (GstPlugin * plugin)
|
|
{
|
|
PyGILState_STATE state = 0;
|
|
- PyObject *gi, *require_version, *args, *gst, *dict, *pyplugin;
|
|
+ PyObject *gi, *require_version, *args, *gst, *pyplugin;
|
|
gboolean we_initialized = FALSE;
|
|
gpointer has_python = NULL;
|
|
const gchar *override_path;
|
|
@@ -333,25 +331,6 @@ plugin_init (GstPlugin * plugin)
|
|
}
|
|
|
|
if (we_initialized) {
|
|
- PyObject *tmp;
|
|
-
|
|
- dict = PyModule_GetDict (gst);
|
|
- if (!dict) {
|
|
- g_critical ("gi.repository.Gst is no dict");
|
|
- return FALSE;
|
|
- }
|
|
-
|
|
- tmp =
|
|
- PyObject_GetAttr (PyMapping_GetItemString (dict,
|
|
- "_introspection_module"), PyUnicode_FromString ("__dict__"));
|
|
-
|
|
- _PyGstElement_Type = PyMapping_GetItemString (tmp, "Element");
|
|
-
|
|
- if (!_PyGstElement_Type) {
|
|
- g_critical ("Could not get Gst.Element");
|
|
- return FALSE;
|
|
- }
|
|
-
|
|
pyplugin = pygobject_new (G_OBJECT (plugin));
|
|
if (!pyplugin || PyModule_AddObject (gst, "__plugin__", pyplugin) != 0) {
|
|
g_critical ("Couldn't set __plugin__ attribute");
|
|
--
|
|
GitLab
|
|
|