media-libs/gstreamer: bump to 1.10.3 and fix configure argument passing
authorMart Raudsepp <leio@gentoo.org>
Thu, 9 Feb 2017 06:21:02 +0000 (08:21 +0200)
committerMart Raudsepp <leio@gentoo.org>
Sat, 11 Feb 2017 14:51:24 +0000 (16:51 +0200)
No configure arguments were passed since gstreamer-1.6.0 due to
${myconf[$@]} instead of "${myconf[@]}".
Also removed multilib.eclass inherit as it seems to have been used
only for get_libdir, which comes from EAPI-6 now. eutils is still
used by einstalldocs for now.

Package-Manager: Portage-2.3.3, Repoman-2.3.1

media-libs/gstreamer/Manifest
media-libs/gstreamer/files/gstreamer-1.10.3-automagic-libunwind.patch [new file with mode: 0644]
media-libs/gstreamer/gstreamer-1.10.3.ebuild [new file with mode: 0644]
media-libs/gstreamer/metadata.xml

index 3ce503df019ac23720344c3e2270abb4f763f014..fd866a026c9f87b5bd716326c0ffb6b59afcc584 100644 (file)
@@ -1,2 +1,3 @@
 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.8.3.tar.xz 3711068 SHA256 66b37762d4fdcd63bce5a2bec57e055f92420e95037361609900278c0db7c53f SHA512 a5f0c2b1d16fd03e3bd3968a8304ed1c32a5b733440cd656ab2e0caabb2f7803ae1bfe7a8e331d5ebb1e8adbe21c5c47263bc73a8480bc16cc28f995241e9f4e WHIRLPOOL 8581d57e65f77b918ed98614e96726629c36c59e07700a32983482c16e0e40775351309465c55c4994fb830ca3044f9f74de05b673a63eeea53d1dc511a9b2ef
diff --git a/media-libs/gstreamer/files/gstreamer-1.10.3-automagic-libunwind.patch b/media-libs/gstreamer/files/gstreamer-1.10.3-automagic-libunwind.patch
new file mode 100644 (file)
index 0000000..472726f
--- /dev/null
@@ -0,0 +1,54 @@
+From 930fc152babda61d2eab05f0c9cc1a1928ead731 Mon Sep 17 00:00:00 2001
+From: Mart Raudsepp <leio@gentoo.org>
+Date: Sun, 5 Feb 2017 09:03:46 +0200
+Subject: [PATCH] configure: Allow specifying libunwind usage explicitly
+
+https://bugzilla.gnome.org/show_bug.cgi?id=778193
+---
+ configure.ac | 23 ++++++++++++++++++-----
+ 1 file changed, 18 insertions(+), 5 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 5081a75..5905430 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -827,7 +827,24 @@ 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)
++AC_ARG_ENABLE(libunwind,
++  AS_HELP_STRING([--disable-libunwind],[disable using libunwind inside leaks tracer @<:@default=auto@:>@]),
++  [LIBUNWIND="$enableval"], [LIBUNWIND="auto"])
++
++if test "x$LIBUNWIND" != "xno"; then
++    PKG_CHECK_MODULES(UNWIND, libunwind, [
++        HAVE_UNWIND=yes
++        AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
++    ], [
++        HAVE_UNWIND=no
++        if test "x$LIBUNWIND" = "xyes"; then
++            AC_MSG_ERROR([libunwind requested but not installed.])
++        fi
++    ])
++else
++    HAVE_UNWIND=no
++fi
++AM_CONDITIONAL(HAVE_UNWIND, [test "x$HAVE_UNWIND" = "xyes"])
+ dnl Check for backtrace() from libc
+ AC_CHECK_FUNC(backtrace, [
+@@ -836,10 +853,6 @@ AC_CHECK_FUNC(backtrace, [
+   ], [], [])
+ ])
+-if test "x$HAVE_UNWIND" = "xyes"; then
+-  AC_DEFINE(HAVE_UNWIND, 1, [libunwind available])
+-fi
+-
+ dnl building of unit test libraries
+ AC_ARG_ENABLE(check,
+   AS_HELP_STRING([--disable-check],[disable building unit test libraries]),
+-- 
+2.10.1
+
diff --git a/media-libs/gstreamer/gstreamer-1.10.3.ebuild b/media-libs/gstreamer/gstreamer-1.10.3.ebuild
new file mode 100644 (file)
index 0000000..fe31fbc
--- /dev/null
@@ -0,0 +1,112 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+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 )
+       introspection? ( >=dev-libs/gobject-introspection-1.31.1:= )
+       unwind? ( >=sys-libs/libunwind-1.2_rc1[${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}"/${P}-automagic-libunwind.patch )
+
+src_prepare() {
+       default
+       eautoreconf # Due to automagic libunwind 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() {
+       # 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_enable unwind libunwind)
+               $(multilib_native_use_enable introspection)
+               $(use_enable nls)
+               $(use_enable test tests)
+               --with-bash-completion-dir="$(get_bashcompdir)"
+               --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}"
+}
index a915b817dc3ec3f5593d13c433004fceae89ae2d..9834236e32c662cb7e7357232eb1f2b01c95e87b 100644 (file)
@@ -9,5 +9,7 @@
                <flag name="orc">Disable some PaX memory protections to allow plugins
                        that use <pkg>dev-lang/orc</pkg> for runtime optimization to be
                        used on hardened PaX systems</flag>
+               <flag name="unwind">Enable <pkg>sys-libs/libunwind</pkg> usage for better
+                       backtrace support in leaks tracer module</flag>
        </use>
 </pkgmetadata>