diff --git a/.gitignore b/.gitignore index d19f280..e2ff65d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/gstreamer-1.0.7.tar.xz +SOURCES/gstreamer-1.4.5.tar.xz diff --git a/.gstreamer1.metadata b/.gstreamer1.metadata index 032a7eb..36a0b39 100644 --- a/.gstreamer1.metadata +++ b/.gstreamer1.metadata @@ -1 +1 @@ -3ce96dd414233f23b81651e90a3efd54054abce4 SOURCES/gstreamer-1.0.7.tar.xz +6c0fa50d42c039eb26c1f2eb5f8dd86ab35118e7 SOURCES/gstreamer-1.4.5.tar.xz diff --git a/SOURCES/0001-pluginloader-check-read-write-before-closed.patch b/SOURCES/0001-pluginloader-check-read-write-before-closed.patch deleted file mode 100644 index 45dd6fe..0000000 --- a/SOURCES/0001-pluginloader-check-read-write-before-closed.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 3be828e91c619be5694840e61121861a8be42843 Mon Sep 17 00:00:00 2001 -From: Wim Taymans -Date: Mon, 18 Nov 2013 21:39:54 +0100 -Subject: [PATCH 2/2] pluginloader: check read/write before closed - -first try to read or write on the socket before checking the closed state. This -makes sure we handle all data on the socket before erroring out. ---- - gst/gstpluginloader.c | 16 ++++++++++------ - 1 file changed, 10 insertions(+), 6 deletions(-) - -diff --git a/gst/gstpluginloader.c b/gst/gstpluginloader.c -index 4109192..51a04d2 100644 ---- a/gst/gstpluginloader.c -+++ b/gst/gstpluginloader.c -@@ -996,27 +996,31 @@ exchange_packets (GstPluginLoader * l) - l->tx_buf_write - l->tx_buf_read); - - if (!l->rx_done) { -- if (gst_poll_fd_has_error (l->fdset, &l->fd_r) || -- gst_poll_fd_has_closed (l->fdset, &l->fd_r)) { -- GST_LOG ("read fd %d closed/errored", l->fd_r.fd); -+ if (gst_poll_fd_has_error (l->fdset, &l->fd_r)) { -+ GST_LOG ("read fd %d errored", l->fd_r.fd); - goto fail_and_cleanup; - } - - if (gst_poll_fd_can_read (l->fdset, &l->fd_r)) { - if (!read_one (l)) - goto fail_and_cleanup; -+ } else if (gst_poll_fd_has_closed (l->fdset, &l->fd_r)) { -+ GST_LOG ("read fd %d closed", l->fd_r.fd); -+ goto fail_and_cleanup; - } - } - - if (l->tx_buf_read < l->tx_buf_write) { -- if (gst_poll_fd_has_error (l->fdset, &l->fd_w) || -- gst_poll_fd_has_closed (l->fdset, &l->fd_r)) { -- GST_ERROR ("write fd %d closed/errored", l->fd_w.fd); -+ if (gst_poll_fd_has_error (l->fdset, &l->fd_w)) { -+ GST_ERROR ("write fd %d errored", l->fd_w.fd); - goto fail_and_cleanup; - } - if (gst_poll_fd_can_write (l->fdset, &l->fd_w)) { - if (!write_one (l)) - goto fail_and_cleanup; -+ } else if (gst_poll_fd_has_closed (l->fdset, &l->fd_w)) { -+ GST_LOG ("write fd %d closed", l->fd_w.fd); -+ goto fail_and_cleanup; - } - } - } while (l->tx_buf_read < l->tx_buf_write); --- -1.8.1.2 - diff --git a/SOURCES/gstreamer-inspect-rpm-format.patch b/SOURCES/gstreamer-inspect-rpm-format.patch index 08f2884..bcf62e8 100644 --- a/SOURCES/gstreamer-inspect-rpm-format.patch +++ b/SOURCES/gstreamer-inspect-rpm-format.patch @@ -1,7 +1,8 @@ -diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst-inspect.c ---- gstreamer-0.11.94.orig/tools/gst-inspect.c 2012-09-01 18:02:10.000000000 -0400 -+++ gstreamer-0.11.94/tools/gst-inspect.c 2012-09-14 08:04:52.690369047 -0400 -@@ -1350,9 +1350,225 @@ print_element_info (GstElementFactory * +diff --git a/tools/gst-inspect.c b/tools/gst-inspect.c +index f97eb2a..f552e1f 100644 +--- a/tools/gst-inspect.c ++++ b/tools/gst-inspect.c +@@ -1285,9 +1285,225 @@ print_element_info (GstElementFactory * factory, gboolean print_names) return 0; } @@ -16,8 +17,9 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst + g_string_append (s->data, field); + } +} -+ -+static void + + static void +-print_plugin_automatic_install_info_codecs (GstElementFactory * factory) +print_gst_structure_append_field_index (GList * strings, const char *field, + guint num_items, guint offset) +{ @@ -220,15 +222,14 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst + } + g_list_free (strings); +} - - static void --print_plugin_automatic_install_info_codecs (GstElementFactory * factory) ++ ++static void +print_plugin_automatic_install_info_codecs (GstElementFactory * factory, + gboolean rpm_format) { GstPadDirection direction; const gchar *type_name; -@@ -1377,6 +1593,12 @@ print_plugin_automatic_install_info_code +@@ -1313,6 +1529,12 @@ print_plugin_automatic_install_info_codecs (GstElementFactory * factory) return; } @@ -241,7 +242,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst /* decoder/demuxer sink pads should always be static and there should only * be one, the same applies to encoders/muxers and source pads */ static_templates = gst_element_factory_get_static_pad_templates (factory); -@@ -1413,15 +1635,20 @@ print_plugin_automatic_install_info_code +@@ -1349,15 +1571,20 @@ print_plugin_automatic_install_info_codecs (GstElementFactory * factory) gst_structure_remove_field (s, "rate"); gst_structure_remove_field (s, "depth"); gst_structure_remove_field (s, "clock-rate"); @@ -266,7 +267,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst { const gchar *const *protocols; -@@ -1430,13 +1657,19 @@ print_plugin_automatic_install_info_prot +@@ -1366,13 +1593,19 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory) switch (gst_element_factory_get_uri_type (factory)) { case GST_URI_SINK: while (*protocols != NULL) { @@ -288,7 +289,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst ++protocols; } break; -@@ -1447,7 +1680,7 @@ print_plugin_automatic_install_info_prot +@@ -1383,7 +1616,7 @@ print_plugin_automatic_install_info_protocols (GstElementFactory * factory) } static void @@ -297,7 +298,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst { GList *features, *l; -@@ -1466,11 +1699,15 @@ print_plugin_automatic_install_info (Gst +@@ -1402,11 +1635,15 @@ print_plugin_automatic_install_info (GstPlugin * plugin) if (feature_plugin == plugin) { GstElementFactory *factory; @@ -316,7 +317,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst } if (feature_plugin) gst_object_unref (feature_plugin); -@@ -1492,7 +1729,7 @@ print_all_plugin_automatic_install_info +@@ -1428,7 +1665,7 @@ print_all_plugin_automatic_install_info (void) plugin = (GstPlugin *) (plugins->data); plugins = g_list_next (plugins); @@ -325,7 +326,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst } gst_plugin_list_free (orig_plugins); } -@@ -1504,6 +1741,7 @@ main (int argc, char *argv[]) +@@ -1440,6 +1677,7 @@ main (int argc, char *argv[]) gboolean do_print_blacklist = FALSE; gboolean plugin_name = FALSE; gboolean print_aii = FALSE; @@ -333,7 +334,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst gboolean uri_handlers = FALSE; gboolean check_exists = FALSE; gchar *min_version = NULL; -@@ -1521,6 +1759,9 @@ main (int argc, char *argv[]) +@@ -1457,6 +1695,9 @@ main (int argc, char *argv[]) "or all plugins provide.\n " "Useful in connection with external automatic plugin " "installation mechanisms"), NULL}, @@ -343,7 +344,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst {"plugin", '\0', 0, G_OPTION_ARG_NONE, &plugin_name, N_("List the plugin contents"), NULL}, {"exists", '\0', 0, G_OPTION_ARG_NONE, &check_exists, -@@ -1650,7 +1891,7 @@ main (int argc, char *argv[]) +@@ -1591,7 +1832,7 @@ main (int argc, char *argv[]) /* if there is such a plugin, print out info */ if (plugin) { if (print_aii) { @@ -352,7 +353,7 @@ diff -urp gstreamer-0.11.94.orig/tools/gst-inspect.c gstreamer-0.11.94/tools/gst } else { print_plugin_info (plugin); print_plugin_features (plugin); -@@ -1663,13 +1904,17 @@ main (int argc, char *argv[]) +@@ -1604,13 +1845,17 @@ main (int argc, char *argv[]) if (plugin) { if (print_aii) { diff --git a/SPECS/gstreamer1.spec b/SPECS/gstreamer1.spec index d6e0d49..08e9062 100644 --- a/SPECS/gstreamer1.spec +++ b/SPECS/gstreamer1.spec @@ -5,8 +5,8 @@ %global _gobject_introspection 1.31.1 Name: gstreamer1 -Version: 1.0.7 -Release: 4%{?dist} +Version: 1.4.5 +Release: 1%{?dist} Summary: GStreamer streaming media framework runtime License: LGPLv2+ @@ -14,7 +14,6 @@ URL: http://gstreamer.freedesktop.org/ Source0: http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-%{version}.tar.xz ## For GStreamer RPM provides Patch0: gstreamer-inspect-rpm-format.patch -Patch1: 0001-pluginloader-check-read-write-before-closed.patch Source1: gstreamer1.prov Source2: gstreamer1.attr @@ -83,7 +82,6 @@ GStreamer streaming media framework. %prep %setup -q -n gstreamer-%{version} %patch0 -p1 -b .rpm-provides -%patch1 -p1 -b .scanner-fix %build @@ -196,6 +194,11 @@ install -m0644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_rpmconfigdir}/fileattrs/gstreamer %changelog +* Wed Jan 28 2015 Bastien Nocera 1.4.5-1 +- Update to 1.4.5 +- Add patch to gst-inspect to generate RPM provides +- Resolves: #1174394 + * Fri Jan 24 2014 Daniel Mach - 1.0.7-4 - Mass rebuild 2014-01-24