media-libs/gstreamer: bump to 1.12.2, fix bash completion
authorMart Raudsepp <leio@gentoo.org>
Wed, 13 Sep 2017 07:04:30 +0000 (10:04 +0300)
committerMart Raudsepp <leio@gentoo.org>
Sat, 16 Sep 2017 19:43:11 +0000 (22:43 +0300)
Closes: https://bugs.gentoo.org/612426
Package-Manager: Portage-2.3.6, Repoman-2.3.2

media-libs/gstreamer/Manifest
media-libs/gstreamer/files/gstreamer-1.12.2-automagic.patch [new file with mode: 0644]
media-libs/gstreamer/gstreamer-1.12.2.ebuild [new file with mode: 0644]

index e2a1927771e19d8429a303e4dd428b1cf9d1d998..dcdbe7e49a7d5e86c93e7438510c410895bd5bac 100644 (file)
@@ -1,3 +1,4 @@
 DIST gstreamer-0.10.36.tar.xz 3025876 SHA256 9151aa108c177054387885763fa0e433e76780f7c5655c70a5390f2a6c6871da SHA512 7468abb578398681d2adb0e9bbc9ee8ae25aaef72369d45a66ada6c67d1759afdce606cb32e68d9e30ae813196bdfef3d4d33202bc77839cc1fbf5fc436c1bd8 WHIRLPOOL 03b841624552be860d4bf824bde9d6d5d6afc629048244b02037c96370c88191f34a6d09f02af61f295a9d6f84952efec2c5d4b0a28e8e70cd17966ed1b01d93
 DIST gstreamer-1.10.3.tar.xz 3797056 SHA256 85b9dc1b2991f224fa90d534ec57014896c479e061dc9fa1bc16ae17cbebb63d SHA512 f601020026e159a8f52ade2fac2b25fb804a88bc6c04dc86ae9df64dc06b5b2315bb2209f8d3c17ca9f63379c9ab631d706c6138e4ed88db254442c05936774c WHIRLPOOL 30d9dde211767d35699c8f272b51389cf9a7856fbd2445dfe6d84cfd16f0c24653fc4615c510a61440ed59bb9ceedb33a9a89b691464673599fa203cc01203a9
 DIST gstreamer-1.10.5.tar.xz 3798304 SHA256 bc06243600817f637029da29d089d5908d1d266542f68bf6626a10c5f05f1f1d SHA512 c138d672966232a4eb0fb4c49dbb39a7942d06b6474c9ee2c884eed2d470674dcbc4a3e2c7338472ac25b710788078241217391e7e5bc076ef21216cbaf0bc31 WHIRLPOOL bf915f18fd157b54f261891b1da434a99827d41236d2c699dce30efdbb4cd6139921c02866a0dff88da4db25fb3e09faca9eda494f74c354dec041a44262db45
+DIST gstreamer-1.12.2.tar.xz 3172260 SHA256 9fde3f39a2ea984f9e07ce09250285ce91f6e3619d186889f75b5154ecf994ba SHA512 5d992a3727dc53478fd895d3c88ebdafcb6d5d0191a5ec8098ac5fe821e4f3c83451b4b1b089f08db0ed2475a97d3f1fcd1282581bcd106cf655914463891a5e WHIRLPOOL f9f68d331fce2360c8fa5f95d027c6928254b169dcae417c6251cb9736f424587b92bb8fd52d208fcefa6ea5ba081bc2957bebbe44d8d94b64040a1bd1b99d12
diff --git a/media-libs/gstreamer/files/gstreamer-1.12.2-automagic.patch b/media-libs/gstreamer/files/gstreamer-1.12.2-automagic.patch
new file mode 100644 (file)
index 0000000..98d5045
--- /dev/null
@@ -0,0 +1,168 @@
+From e7c33f24ed43189c84cc3a31260ad4963a6bb9c7 Mon Sep 17 00:00:00 2001
+From: Edward Hervey <edward@centricular.com>
+Date: Tue, 11 Jul 2017 15:29:44 +0200
+Subject: [PATCH 1/3] pkgconfig: Add private requirements
+
+Add libunwind and dw to the .pc Requires.private. Fixes static library
+compilation if gstreamer was compiled with one of those dependencies
+
+https://bugzilla.gnome.org/show_bug.cgi?id=784795
+---
+ configure.ac                          | 4 ++++
+ pkgconfig/gstreamer-uninstalled.pc.in | 2 +-
+ pkgconfig/gstreamer.pc.in             | 2 +-
+ 3 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b6b2923..de9fcae 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -824,12 +824,16 @@ dnl libunwind is optionally used by the leaks tracer
+ PKG_CHECK_MODULES(UNWIND, libunwind, HAVE_UNWIND=yes, HAVE_UNWIND=no)
+ if test "x$HAVE_UNWIND" = "xyes"; then
+   AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
++  UNWIND_REQUIRE=libunwind
++  AC_SUBST(UNWIND_REQUIRE)
+ fi
+ 
+ dnl libdw is optionally used to add source lines and numbers to backtraces
+ PKG_CHECK_MODULES(DW, libdw, HAVE_DW=yes, HAVE_DW=no)
+ if test "x$HAVE_DW" = "xyes"; then
+   AC_DEFINE(HAVE_DW, 1, [libdw available])
++  DW_REQUIRE=libdw
++  AC_SUBST(DW_REQUIRE)
+ fi
+ 
+ dnl Check for backtrace() from libc
+diff --git a/pkgconfig/gstreamer-uninstalled.pc.in b/pkgconfig/gstreamer-uninstalled.pc.in
+index b8dcdf8..d071612 100644
+--- a/pkgconfig/gstreamer-uninstalled.pc.in
++++ b/pkgconfig/gstreamer-uninstalled.pc.in
+@@ -15,6 +15,6 @@ Name: GStreamer Uninstalled
+ Description: Streaming media framework, Not Installed
+ Version: @VERSION@
+ Requires: glib-2.0, gobject-2.0
+-Requires.private: gmodule-no-export-2.0
++Requires.private: gmodule-no-export-2.0 @UNWIND_REQUIRE@ @DW_REQUIRE@
+ Libs: -L${libdir} -lgstreamer-@GST_API_VERSION@
+ Cflags: -I@abs_top_srcdir@ -I@abs_top_srcdir@/libs -I@abs_top_builddir@ -I@abs_top_builddir@/libs
+diff --git a/pkgconfig/gstreamer.pc.in b/pkgconfig/gstreamer.pc.in
+index b949d6c..6ec3cb7 100644
+--- a/pkgconfig/gstreamer.pc.in
++++ b/pkgconfig/gstreamer.pc.in
+@@ -13,6 +13,6 @@ Name: GStreamer
+ Description: Streaming media framework
+ Version: @VERSION@
+ Requires: glib-2.0, gobject-2.0
+-Requires.private: gmodule-no-export-2.0
++Requires.private: gmodule-no-export-2.0 @UNWIND_REQUIRE@ @DW_REQUIRE@
+ Libs: -L${libdir} -lgstreamer-@GST_API_VERSION@
+ Cflags: -I${includedir}
+-- 
+2.10.2
+
+
+From 1c7f9a5025b7ec0b7cfed701e2a3681a2d2afe74 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Tim-Philipp=20M=C3=BCller?= <tim@centricular.com>
+Date: Tue, 11 Jul 2017 16:15:16 +0100
+Subject: [PATCH 2/3] meson: pkgconfig: add libunwind/libdw to gstreamer-1.0
+ Requires.private
+
+https://bugzilla.gnome.org/show_bug.cgi?id=784795
+---
+ pkgconfig/meson.build | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/pkgconfig/meson.build b/pkgconfig/meson.build
+index 32f96cd..ae27ce3 100644
+--- a/pkgconfig/meson.build
++++ b/pkgconfig/meson.build
+@@ -7,6 +7,10 @@ pkgconf.set('includedir', '${prefix}/@0@'.format(get_option('includedir')))
+ pkgconf.set('GST_API_VERSION', apiversion)
+ pkgconf.set('VERSION', gst_version)
+ 
++# Requires.private
++pkgconf.set('UNWIND_REQUIRE', cdata.has('HAVE_UNWIND') ? 'libunwind' : '')
++pkgconf.set('DW_REQUIRE', cdata.has('HAVE_DW') ? 'libdw' : '')
++
+ # needed for generating -uninstalled.pc files
+ pkgconf.set('abs_top_builddir', join_paths(meson.current_build_dir(), '..'))
+ pkgconf.set('abs_top_srcdir', join_paths(meson.current_source_dir(), '..'))
+-- 
+2.10.2
+
+
+From 2d358f8a4ab52574291927c7061109a74e8d12d7 Mon Sep 17 00:00:00 2001
+From: Carlos Rafael Giani <dv@pseudoterminal.org>
+Date: Fri, 11 Aug 2017 21:17:06 +0200
+Subject: [PATCH 3/3] configure: Add switches for enabling/disabling libdw and
+ libunwind
+
+https://bugzilla.gnome.org/show_bug.cgi?id=778193
+---
+ configure.ac | 46 ++++++++++++++++++++++++++++++++++++----------
+ 1 file changed, 36 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index de9fcae..6e0019a 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -821,19 +821,45 @@ fi
+ AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes")
+ 
+ dnl libunwind is optionally used by the leaks tracer
+-PKG_CHECK_MODULES(UNWIND, libunwind, HAVE_UNWIND=yes, HAVE_UNWIND=no)
+-if test "x$HAVE_UNWIND" = "xyes"; then
+-  AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
+-  UNWIND_REQUIRE=libunwind
+-  AC_SUBST(UNWIND_REQUIRE)
++AC_ARG_WITH([unwind],[AS_HELP_STRING([--with-unwind=yes|no|auto],[use libunwind])],
++            [], [with_unwind=auto])
++if [ test "x${with_unwind}" != "xno" ]; then
++  PKG_CHECK_MODULES(UNWIND, [libunwind],
++      [
++        HAVE_UNWIND=yes
++        AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
++        UNWIND_REQUIRE=libunwind
++        AC_SUBST(UNWIND_REQUIRE)
++      ],
++      [
++        HAVE_UNWIND=no
++        if [ test "x${with_unwind}" = "xyes" ]; then
++          AC_MSG_ERROR([could not find libunwind])
++        fi
++      ])
++else
++  HAVE_UNWIND=no
+ fi
+ 
+ dnl libdw is optionally used to add source lines and numbers to backtraces
+-PKG_CHECK_MODULES(DW, libdw, HAVE_DW=yes, HAVE_DW=no)
+-if test "x$HAVE_DW" = "xyes"; then
+-  AC_DEFINE(HAVE_DW, 1, [libdw available])
+-  DW_REQUIRE=libdw
+-  AC_SUBST(DW_REQUIRE)
++AC_ARG_WITH([dw],[AS_HELP_STRING([--with-dw=yes|no|auto],[use libdw])],
++            [], [with_dw=auto])
++if [ test "x${with_dw}" != "xno" ]; then
++  PKG_CHECK_MODULES(DW, [libdw],
++      [
++        HAVE_DW=yes
++        AC_DEFINE(HAVE_DW, 1, [libdw available])
++        DW_REQUIRE=libdw
++        AC_SUBST(DW_REQUIRE)
++      ],
++      [
++        HAVE_DW=no
++        if [ test "x${with_dw}" = "xyes" ]; then
++          AC_MSG_ERROR([could not find libdw])
++        fi
++      ])
++else
++  HAVE_DW=no
+ fi
+ 
+ dnl Check for backtrace() from libc
+-- 
+2.10.2
+
diff --git a/media-libs/gstreamer/gstreamer-1.12.2.ebuild b/media-libs/gstreamer/gstreamer-1.12.2.ebuild
new file mode 100644 (file)
index 0000000..135c398
--- /dev/null
@@ -0,0 +1,116 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit bash-completion-r1 eutils multilib-minimal pax-utils autotools
+
+DESCRIPTION="Open source multimedia framework"
+HOMEPAGE="https://gstreamer.freedesktop.org/"
+SRC_URI="https://${PN}.freedesktop.org/src/${PN}/${P}.tar.xz"
+
+LICENSE="LGPL-2+"
+SLOT="1.0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
+IUSE="+caps +introspection nls +orc test unwind"
+
+RDEPEND="
+       >=dev-libs/glib-2.40.0:2[${MULTILIB_USEDEP}]
+       caps? ( sys-libs/libcap[${MULTILIB_USEDEP}] )
+       introspection? ( >=dev-libs/gobject-introspection-1.31.1:= )
+       unwind? (
+               >=sys-libs/libunwind-1.2_rc1[${MULTILIB_USEDEP}]
+               dev-libs/elfutils[${MULTILIB_USEDEP}]
+       )
+"
+DEPEND="${RDEPEND}
+       >=dev-util/gtk-doc-am-1.12
+       sys-devel/bison
+       sys-devel/flex
+       >=virtual/pkgconfig-0-r1[${MULTILIB_USEDEP}]
+       nls? ( sys-devel/gettext )
+"
+# gtk-doc-am to install API docs
+
+# https://bugzilla.gnome.org/show_bug.cgi?id=778193 (remove src_prepare/eautoreconf once not needed on bump)
+PATCHES=( "${FILESDIR}"/${PN}-1.12.2-automagic.patch )
+
+src_prepare() {
+       default
+       eautoreconf # Due to automagic libunwind/libdw fix
+}
+
+src_configure() {
+       if [[ ${CHOST} == *-interix* ]] ; then
+               export ac_cv_lib_dl_dladdr=no
+               export ac_cv_func_poll=no
+       fi
+       if [[ ${CHOST} == powerpc-apple-darwin* ]] ; then
+               # GCC groks this, but then refers to an implementation (___multi3,
+               # ___udivti3) that don't exist (at least I can't find it), so force
+               # this one to be off, such that we use 2x64bit emulation code.
+               export gst_cv_uint128_t=no
+       fi
+
+       multilib-minimal_src_configure
+}
+
+multilib_src_configure() {
+       local completiondir=$(get_bashcompdir)
+       # Set 'libexecdir' to ABI-specific location for the library spawns
+       # helpers from there.
+       # Disable static archives and examples to speed up build time
+       # Disable debug, as it only affects -g passing (debugging symbols), this must done through make.conf in gentoo
+       local myconf=(
+               --libexecdir="${EPREFIX}"/usr/$(get_libdir)
+               --disable-debug
+               --disable-examples
+               --disable-static
+               --disable-valgrind
+               --enable-check
+               $(use_with unwind)
+               $(use_with unwind dw)
+               $(multilib_native_use_enable introspection)
+               $(use_enable nls)
+               $(use_enable test tests)
+               --with-bash-completion-dir="${completiondir%/*}"
+               --with-package-name="GStreamer ebuild for Gentoo"
+               --with-package-origin="https://packages.gentoo.org/package/media-libs/gstreamer"
+       )
+
+       if use caps ; then
+               myconf+=( --with-ptp-helper-permissions=capabilities )
+       else
+               myconf+=(
+                       --with-ptp-helper-permissions=setuid-root
+                       --with-ptp-helper-setuid-user=nobody
+                       --with-ptp-helper-setuid-group=nobody
+               )
+       fi
+
+       ECONF_SOURCE="${S}" econf "${myconf[@]}"
+
+       if multilib_is_native_abi; then
+               local x
+               for x in gst libs plugins; do
+                       ln -s "${S}"/docs/${x}/html docs/${x}/html || die
+               done
+       fi
+}
+
+multilib_src_install() {
+       # can't do "default", we want to install docs in multilib_src_install_all
+       emake DESTDIR="${D}" install
+
+       # Needed for orc-using gst plugins on hardened/PaX systems, bug #421579
+       use orc && pax-mark -m "${ED}usr/$(get_libdir)/gstreamer-${SLOT}/gst-plugin-scanner"
+}
+
+multilib_src_install_all() {
+       DOCS="AUTHORS ChangeLog NEWS MAINTAINERS README RELEASE"
+       einstalldocs
+       prune_libtool_files --modules
+
+       # Needed for orc-using gst plugins on hardened/PaX systems, bug #421579
+       use orc && pax-mark -m "${ED}usr/bin/gst-launch-${SLOT}"
+}