Accepting request 1156870 from multimedia:libs

OBS-URL: https://build.opensuse.org/request/show/1156870
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/gstreamer?expand=0&rev=95
This commit is contained in:
Ana Guerrero 2024-03-11 14:26:16 +00:00 committed by Git OBS Bridge
commit 137cab365e
3 changed files with 87 additions and 0 deletions

View File

@ -0,0 +1,76 @@
From: Antonio Larrosa <alarrosa@suse.com>
Subject: Force using GST_PLUGIN_SCANNER_INSTALLED
The check for a relocated libgstreamer thinks libgstreamer is in
/lib64/libgstreamer-1.0.so which uses the /lib64 symlink to the
install location at /usr/lib64/libgstreamer-1.0.so so it thinks
the library was relocated and thus tries to construct the path to
gst-plugin-scanner-x86_64 from /lib64 which doesn't work.
This patch removes the failing test for a relocated libgstreamer
and just uses the standard installed location which is set at
build time to /usr/libexec/gstreamer-1.0/gst-plugin-scanner-x86_64.
If needed, this path can be overriden as usual with the
GST_PLUGIN_SCANNER environment variable.
Index: gstreamer-1.24.0/gst/gstpluginloader.c
===================================================================
--- gstreamer-1.24.0.orig/gst/gstpluginloader.c
+++ gstreamer-1.24.0/gst/gstpluginloader.c
@@ -472,46 +472,12 @@ gst_plugin_loader_spawn (GstPluginLoader
res = gst_plugin_loader_try_helper (loader, helper_bin);
g_free (helper_bin);
} else {
- char *relocated_libgstreamer;
-
/* use the installed version */
GST_LOG ("Trying installed plugin scanner");
#define MAX_PATH_DEPTH 64
- relocated_libgstreamer = priv_gst_get_relocated_libgstreamer ();
- if (relocated_libgstreamer) {
- int plugin_subdir_depth = priv_gst_count_directories (GST_PLUGIN_SUBDIR);
-
- GST_DEBUG ("found libgstreamer-" GST_API_VERSION " library "
- "at %s", relocated_libgstreamer);
-
- if (plugin_subdir_depth < MAX_PATH_DEPTH) {
- const char *filenamev[MAX_PATH_DEPTH + 5];
- int i = 0, j;
-
- filenamev[i++] = relocated_libgstreamer;
- for (j = 0; j < plugin_subdir_depth; j++)
- filenamev[i++] = "..";
- filenamev[i++] = GST_PLUGIN_SCANNER_SUBDIR;
- filenamev[i++] = "gstreamer-" GST_API_VERSION;
- filenamev[i++] = "gst-plugin-scanner";
- filenamev[i++] = NULL;
- g_assert (i <= MAX_PATH_DEPTH + 5);
-
- GST_DEBUG ("constructing path to system plugin scanner using "
- "plugin dir: \'%s\', plugin scanner dir: \'%s\'",
- GST_PLUGIN_SUBDIR, GST_PLUGIN_SCANNER_SUBDIR);
-
- helper_bin = g_build_filenamev ((char **) filenamev);
- } else {
- GST_WARNING ("GST_PLUGIN_SUBDIR: \'%s\' has too many path segments",
- GST_PLUGIN_SUBDIR);
- helper_bin = g_strdup (GST_PLUGIN_SCANNER_INSTALLED);
- }
- } else {
- helper_bin = g_strdup (GST_PLUGIN_SCANNER_INSTALLED);
- }
+ helper_bin = g_strdup (GST_PLUGIN_SCANNER_INSTALLED);
#undef MAX_PATH_DEPTH
@@ -519,7 +485,6 @@ gst_plugin_loader_spawn (GstPluginLoader
res = gst_plugin_loader_try_helper (loader, helper_bin);
g_free (helper_bin);
- g_free (relocated_libgstreamer);
}
if (!res) {

View File

@ -1,3 +1,12 @@
-------------------------------------------------------------------
Mon Mar 11 07:55:04 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>
- Add patch to remove the (wrong) check for relocated library which
is making gstreamer fail to find the gst-plugin-scanner helper
binary, thus using the installation path set at build time
(boo#1221150):
* force-find-gst-plugin-scanner.patch
-------------------------------------------------------------------
Tue Mar 5 06:09:21 UTC 2024 - Antonio Larrosa <alarrosa@suse.com>

View File

@ -34,6 +34,8 @@ Source99: baselibs.conf
Patch1: gstreamer-rpm-prov.patch
# PATCH-FIX-OPENSUSE gstreamer-pie.patch mgorse@suse.com -- create position-independent executables.
Patch2: gstreamer-pie.patch
# PATCH-FIX-OPENSUSE force-find-gst-plugin-scanner.patch alarrosa@suse.com -- Part of the fix for boo#1221150
Patch3: force-find-gst-plugin-scanner.patch
BuildRequires: bison >= 2.4