Hello community, here is the log from the commit of package gstreamer for openSUSE:Factory checked in at 2019-06-30 10:18:06 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/gstreamer (Old) and /work/SRC/openSUSE:Factory/.gstreamer.new.4615 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "gstreamer" Sun Jun 30 10:18:06 2019 rev:59 rq:711858 version:1.16.0 Changes: -------- --- /work/SRC/openSUSE:Factory/gstreamer/gstreamer.changes 2019-06-13 22:33:58.376369077 +0200 +++ /work/SRC/openSUSE:Factory/.gstreamer.new.4615/gstreamer.changes 2019-06-30 10:18:07.979306225 +0200 @@ -1,0 +2,53 @@ +Wed Jun 12 20:08:46 UTC 2019 - [email protected] + +- Update to version 1.16.0: + + Highlights + - GStreamer WebRTC stack gained support for data channels for + peer-to-peer communication based on SCTP, BUNDLE support, + as well as support for multiple TURN servers. + - AV1 video codec support for Matroska and QuickTime/MP4 + containers and more configuration options and supported + input formats for the AOMedia AV1 encoder + - Support for Closed Captions and other Ancillary Data in video + - Support for planar (non-interleaved) raw audio + - GstVideoAggregator, compositor and OpenGL mixer elements are + now in -base + - New alternate fields interlace mode where each buffer carries + a single field + - WebM and Matroska ContentEncryption support in the Matroska + demuxer + - new WebKit WPE-based web browser source element + - Video4Linux: HEVC encoding and decoding, JPEG encoding, and + improved dmabuf import/export + - Hardware-accelerated Nvidia video decoder gained support for + VP8/VP9 decoding, whilst the encoder gained support for + H.265/HEVC encoding. + - Many improvements to the Intel Media SDK based + hardware-accelerated video decoder and encoder plugin + (msdk): dmabuf import/export for zero-copy integration with + other components; VP9 decoding; 10-bit HEVC encoding; video + post-processing (vpp) support including deinterlacing; and + the video decoder now handles dynamic resolution changes. + - The ASS/SSA subtitle overlay renderer can now handle multiple + subtitles that overlap in time and will show them on screen + simultaneously + - The Meson build is now feature-complete (*) and it is now the + recommended build system on all platforms. The Autotools + build is scheduled to be removed in the next cycle. + - The GStreamer Rust bindings and Rust plugins module are now + officially part of upstream GStreamer. + - The GStreamer Editing Services gained a gesdemux element + that allows directly playing back serialized edit list with + playbin or (uri)decodebin + - Many performance improvements +- Switch to meson on Tumbleweed. +- Rebase gstreamer-rpm-prov.patch. +- Require libdw. Helps with generating backtraces. +- Place gdb autoload files in -devel package. +- Add gstreamer-pie.patch to generate position-independent + executables. Previously done through CFLAGS/LDFLAGS, but this + makes ninja pass -pie when linking libraries as well, causing + the link to fail. +- Now requires glib2 >= 2.40.0. + +------------------------------------------------------------------- Old: ---- gstreamer-1.14.5.tar.xz New: ---- gstreamer-1.16.0.tar.xz gstreamer-pie.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gstreamer.spec ++++++ --- /var/tmp/diff_new_pack.jf2Qqc/_old 2019-06-30 10:18:08.455306964 +0200 +++ /var/tmp/diff_new_pack.jf2Qqc/_new 2019-06-30 10:18:08.459306971 +0200 @@ -16,9 +16,15 @@ # +%if 0%{?suse_version} > 1500 +%define use_meson 1 +%else +%define use_meson 0 +%endif + %define gst_branch 1.0 Name: gstreamer -Version: 1.14.5 +Version: 1.16.0 Release: 0 Summary: Streaming-Media Framework Runtime License: LGPL-2.1-or-later @@ -28,8 +34,10 @@ Source1: gstreamer.macros Source2: gstreamer.prov Source99: baselibs.conf -# PATCH-FEATURE-UPSTREAM gstreamer-rpm-prov.patch bgo#588783 [email protected] -- Add --rpm parameter to allow creation of rpm provides, patch from fedora +# PATCH-FEATURE-UPSTREAM gstreamer-rpm-prov.patch bgo#588784 [email protected] -- Add --rpm parameter to allow creation of rpm provides, patch from fedora Patch1: gstreamer-rpm-prov.patch +# PATCH-FIX-OPENSUSE gstreamer-pie.patch [email protected] -- create position-independent executables. +Patch2: gstreamer-pie.patch BuildRequires: bison >= 2.4 BuildRequires: check-devel @@ -40,7 +48,11 @@ BuildRequires: gtk-doc >= 1.12 BuildRequires: libcap-devel BuildRequires: libcap-progs +%if %{use_meson} +BuildRequires: meson >= 0.47.0 +%else BuildRequires: libtool +%endif BuildRequires: pkgconfig BuildRequires: python3-base BuildRequires: python3-xml @@ -48,9 +60,10 @@ BuildRequires: pkgconfig(bash-completion) >= 2.0 BuildRequires: pkgconfig(gio-2.0) BuildRequires: pkgconfig(gio-unix-2.0) -BuildRequires: pkgconfig(glib-2.0) >= 2.32.0 +BuildRequires: pkgconfig(glib-2.0) >= 2.40.0 BuildRequires: pkgconfig(gmodule-2.0) BuildRequires: pkgconfig(gobject-2.0) +BuildRequires: pkgconfig(libdw) BuildRequires: pkgconfig(libunwind) # Ensure that the documentation corresponds with the installed version: @@ -148,12 +161,29 @@ gnome-patch-translation-prepare po gstreamer-%{gst_branch} # The order matters. Only run gnome-patch-translation-update after patching! %patch1 -p1 +%patch2 -p1 gnome-patch-translation-update po gstreamer-%{gst_branch} %build +export PYTHON=%{_bindir}/python3 +%if %{use_meson} +sed -i "s/^executable('gst-plugin-scanner',/executable('gst-plugin-scanner-%{_target_cpu}',/" libs/gst/helpers/meson.build +# TODO: enable dbghelp +%{meson} \ + -Dptp-helper-permissions=capabilities \ + -Dpackage-name='openSUSE GStreamer package' \ + -Dpackage-origin='http://download.opensuse.org' \ + -Dgtk_doc=enabled \ + -Dintrospection=enabled \ + -Dbenchmarks=disabled \ + -Dexamples=disabled \ + -Dtests=disabled \ + -Ddbghelp=disabled \ + %{nil} +%{meson_build} +%else export CFLAGS="%{optflags} -fPIE" export LDFLAGS="-pie" -export PYTHON=%{_bindir}/python3 %configure \ --with-ptp-helper-permissions=capabilities \ --with-package-name='openSUSE GStreamer package' \ @@ -166,11 +196,15 @@ --disable-tests \ --program-transform-name='s/gst-plugin-scanner/gst-plugin-scanner-%{_target_cpu}/' \ %{nil} -sed -i 's/gst-plugin-scanner/gst-plugin-scanner-%{_target_cpu}/' config.h %make_build +%endif %install +%if %{use_meson} +%{meson_install} +%else %make_install +%endif %find_lang %{name}-%{gst_branch} find %{buildroot} -type f -name "*.la" -delete -print mkdir -p %{buildroot}%{_datadir}/gstreamer-%{gst_branch}/presets @@ -218,6 +252,21 @@ %files devel %{_datadir}/aclocal/*.m4 +# Own these directories to avoid build requirement on gdb +# only for directories ownership +%dir %{_datadir}/gdb +%dir %{_datadir}/gdb/auto-load +%dir %{_datadir}/gdb/auto-load%{_prefix} +%dir %{_datadir}/gdb/auto-load%{_libdir} +%{_datadir}/gdb/auto-load%{_libdir}/lib%{name}*.py +%if %{use_meson} +%{_datadir}/glib-2.0/gdb/glib_gobject_helper.py +%{_datadir}/glib-2.0/gdb/gst_gdb.py +%else +%dir %{_datadir}/gstreamer-%{gst_branch}/gdb +%{_datadir}/gstreamer-%{gst_branch}/gdb/glib_gobject_helper.py +%{_datadir}/gstreamer-%{gst_branch}/gdb/gst_gdb.py +%endif %{_includedir}/* %{_libdir}/*.so %{_libdir}/pkgconfig/*.pc ++++++ gstreamer-1.14.5.tar.xz -> gstreamer-1.16.0.tar.xz ++++++ ++++ 48777 lines of diff (skipped) ++++++ gstreamer-pie.patch ++++++ diff -urp gstreamer-1.16.0.orig/libs/gst/helpers/meson.build gstreamer-1.16.0/libs/gst/helpers/meson.build --- gstreamer-1.16.0.orig/libs/gst/helpers/meson.build 2019-01-26 19:10:08.000000000 -0600 +++ gstreamer-1.16.0/libs/gst/helpers/meson.build 2019-06-12 15:06:33.120486636 -0500 @@ -5,6 +5,7 @@ executable('gst-plugin-scanner', dependencies : [gobject_dep, gmodule_dep, glib_dep, mathlib, gst_dep], install_dir : helpers_install_dir, install: true, + pie: true, ) # Used in test env setup to make tests find plugin scanner in build tree @@ -18,6 +19,7 @@ if bashcomp_found dependencies : [gobject_dep, glib_dep, gst_dep], install_dir : helpers_install_dir, install: true, + pie: true, ) endif @@ -118,7 +120,8 @@ if have_ptp include_directories : [configinc, libsinc], dependencies : [gio_dep, gobject_dep, glib_dep, mathlib, gst_dep, cap_dep], install_dir : helpers_install_dir, - install : true) + install : true, + pie : true) meson.add_install_script('ptp_helper_post_install.sh', helpers_install_dir, with_ptp_helper_permissions, ++++++ gstreamer-rpm-prov.patch ++++++ --- /var/tmp/diff_new_pack.jf2Qqc/_old 2019-06-30 10:18:09.459308524 +0200 +++ /var/tmp/diff_new_pack.jf2Qqc/_new 2019-06-30 10:18:09.459308524 +0200 @@ -1,10 +1,9 @@ -Index: b/tools/gst-inspect.c -=================================================================== ---- a/tools/gst-inspect.c -+++ b/tools/gst-inspect.c -@@ -1524,7 +1524,224 @@ print_tracer_info (GstPluginFeature * fe - } - +diff -urp gstreamer-1.16.0.orig/tools/gst-inspect.c gstreamer-1.16.0/tools/gst-inspect.c +--- gstreamer-1.16.0.orig/tools/gst-inspect.c 2019-04-11 17:58:09.000000000 -0500 ++++ gstreamer-1.16.0/tools/gst-inspect.c 2019-06-12 09:28:27.004257869 -0500 +@@ -1730,7 +1730,224 @@ print_tracer_info (GstPluginFeature * fe + * is meant for machines, not humans. + */ static void -print_plugin_automatic_install_info_codecs (GstElementFactory * factory) +print_gst_structure_append_field (GList * strings, const char *field) @@ -228,7 +227,7 @@ { GstPadDirection direction; const gchar *type_name; -@@ -1550,6 +1767,13 @@ print_plugin_automatic_install_info_code +@@ -1756,6 +1973,13 @@ print_plugin_automatic_install_info_code return; } @@ -242,7 +241,7 @@ /* 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); -@@ -1586,15 +1810,20 @@ print_plugin_automatic_install_info_code +@@ -1792,15 +2016,20 @@ print_plugin_automatic_install_info_code gst_structure_remove_field (s, "rate"); gst_structure_remove_field (s, "depth"); gst_structure_remove_field (s, "clock-rate"); @@ -267,7 +266,7 @@ { const gchar *const *protocols; -@@ -1603,13 +1832,19 @@ print_plugin_automatic_install_info_prot +@@ -1809,13 +2038,19 @@ print_plugin_automatic_install_info_prot switch (gst_element_factory_get_uri_type (factory)) { case GST_URI_SINK: while (*protocols != NULL) { @@ -289,7 +288,7 @@ ++protocols; } break; -@@ -1620,7 +1855,7 @@ print_plugin_automatic_install_info_prot +@@ -1826,7 +2061,7 @@ print_plugin_automatic_install_info_prot } static void @@ -298,7 +297,7 @@ { GList *features, *l; -@@ -1639,11 +1874,15 @@ print_plugin_automatic_install_info (Gst +@@ -1845,11 +2080,15 @@ print_plugin_automatic_install_info (Gst if (feature_plugin == plugin) { GstElementFactory *factory; @@ -317,7 +316,7 @@ } if (feature_plugin) gst_object_unref (feature_plugin); -@@ -1665,7 +1904,7 @@ print_all_plugin_automatic_install_info +@@ -1871,7 +2110,7 @@ print_all_plugin_automatic_install_info plugin = (GstPlugin *) (plugins->data); plugins = g_list_next (plugins); @@ -326,7 +325,7 @@ } gst_plugin_list_free (orig_plugins); } -@@ -1677,6 +1916,7 @@ main (int argc, char *argv[]) +@@ -1938,6 +2177,7 @@ main (int argc, char *argv[]) gboolean do_print_blacklist = FALSE; gboolean plugin_name = FALSE; gboolean print_aii = FALSE; @@ -334,7 +333,7 @@ gboolean uri_handlers = FALSE; gboolean check_exists = FALSE; gchar *min_version = NULL; -@@ -1695,6 +1935,9 @@ main (int argc, char *argv[]) +@@ -1958,6 +2198,9 @@ main (int argc, char *argv[]) "or all plugins provide.\n " "Useful in connection with external automatic plugin " "installation mechanisms"), NULL}, @@ -344,7 +343,7 @@ {"plugin", '\0', 0, G_OPTION_ARG_NONE, &plugin_name, N_("List the plugin contents"), NULL}, {"types", 't', 0, G_OPTION_ARG_STRING, &types, -@@ -1825,7 +2068,7 @@ main (int argc, char *argv[]) +@@ -2113,7 +2356,7 @@ main (int argc, char *argv[]) /* if there is such a plugin, print out info */ if (plugin) { if (print_aii) { @@ -353,7 +352,7 @@ } else { print_plugin_info (plugin); print_plugin_features (plugin); -@@ -1838,13 +2081,17 @@ main (int argc, char *argv[]) +@@ -2126,13 +2369,17 @@ main (int argc, char *argv[]) if (plugin) { if (print_aii) { @@ -371,5 +370,5 @@ + g_printerr (_("Could not load plugin file: %s\n"), + error->message); g_clear_error (&error); - return -1; - } + exit_code = -1; + goto done;
