www-plugins/gnash: fix building against newer libva, address repoman warnings
authorChí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
Sun, 24 Apr 2016 20:30:10 +0000 (22:30 +0200)
committerChí-Thanh Christopher Nguyễn <chithanh@gentoo.org>
Sun, 24 Apr 2016 20:30:10 +0000 (22:30 +0200)
Bug: https://bugs.gentoo.org/show_bug.cgi?id=546584

Package-Manager: portage-2.2.26

www-plugins/gnash/files/gnash-0.8.10-libva-1.6_0000.patch [new file with mode: 0644]
www-plugins/gnash/files/gnash-0.8.10-libva-1.6_0001.patch [new file with mode: 0644]
www-plugins/gnash/gnash-0.8.10_p20150316.ebuild

diff --git a/www-plugins/gnash/files/gnash-0.8.10-libva-1.6_0000.patch b/www-plugins/gnash/files/gnash-0.8.10-libva-1.6_0000.patch
new file mode 100644 (file)
index 0000000..d914f4a
--- /dev/null
@@ -0,0 +1,43 @@
+From e5c08131abde15f7a1e048e35d1a9ff12b2acdaa Mon Sep 17 00:00:00 2001
+From: Bastiaan Jacques <bastiaan@bjacques.org>
+Date: Thu, 26 Mar 2015 15:24:21 +0000
+Subject: Build fix: adjust smart pointers to unique_ptr API.
+
+---
+diff --git a/libdevice/vaapi/VaapiContext.h b/libdevice/vaapi/VaapiContext.h
+index 8d9de72..c49d48a 100644
+--- a/libdevice/vaapi/VaapiContext.h
++++ b/libdevice/vaapi/VaapiContext.h
+@@ -84,7 +84,7 @@ public:
+     void releaseSurface(std::shared_ptr<VaapiSurface> surface);
+     /// Set user data
+-    void setData(std::unique_ptr<VaapiContextData> user_data) { _user_data = user_data; }
++    void setData(std::unique_ptr<VaapiContextData> user_data) { _user_data = std::move(user_data); }
+     /// Get user data
+     VaapiContextData *getData() const { return _user_data.get(); }
+diff --git a/libdevice/vaapi/VaapiGlobalContext.cpp b/libdevice/vaapi/VaapiGlobalContext.cpp
+index c19ed07..5127a27 100644
+--- a/libdevice/vaapi/VaapiGlobalContext.cpp
++++ b/libdevice/vaapi/VaapiGlobalContext.cpp
+@@ -33,7 +33,7 @@
+ namespace gnash {
+ VaapiGlobalContext::VaapiGlobalContext(std::unique_ptr<VaapiDisplay> display)
+-    : _display(display)
++    : _display(std::move(display))
+ {
+     GNASH_REPORT_FUNCTION;
+@@ -145,7 +145,7 @@ VaapiGlobalContext *VaapiGlobalContext::get()
+             if (!dpy.get()) {
+                 return NULL;
+             }
+-            vaapi_global_context.reset(new VaapiGlobalContext(dpy));
++            vaapi_global_context.reset(new VaapiGlobalContext(std::move(dpy)));
+         }
+         catch (...) {
+             vaapi_set_is_enabled(false);
+--
+cgit v0.9.0.2
diff --git a/www-plugins/gnash/files/gnash-0.8.10-libva-1.6_0001.patch b/www-plugins/gnash/files/gnash-0.8.10-libva-1.6_0001.patch
new file mode 100644 (file)
index 0000000..4c25a98
--- /dev/null
@@ -0,0 +1,28 @@
+From f5016cc9399c9ffd3c5d32c67bb28fac285559c6 Mon Sep 17 00:00:00 2001
+From: Bastiaan Jacques <bastiaan@bjacques.org>
+Date: Wed, 09 Sep 2015 19:25:31 +0000
+Subject: Compilation fix. See Savannah #44636.
+
+Also skip useless NULL check.
+---
+diff --git a/gui/gtk/gtk_glue_agg_vaapi.cpp b/gui/gtk/gtk_glue_agg_vaapi.cpp
+index 1eda283..6209e89 100644
+--- a/gui/gtk/gtk_glue_agg_vaapi.cpp
++++ b/gui/gtk/gtk_glue_agg_vaapi.cpp
+@@ -301,11 +301,9 @@ GtkAggVaapiGlue::getVideoWindow(std::shared_ptr<VaapiSurface> surface,
+         return NULL;
+     if (!context->getData()) {
+-        std::unique_ptr<VaapiContextData> contextData;
+-        contextData.reset(new VaapiVideoWindow(parent_window, rect));
+-        if (!contextData.get())
+-            return NULL;
+-        context->setData(contextData);
++        context->setData(
++            std::unique_ptr<VaapiContextData>(
++                new VaapiVideoWindow(parent_window, rect)));
+     }
+     return dynamic_cast<VaapiVideoWindow *>(context->getData());
+ }
+--
+cgit v0.9.0.2
index 441d7ba281323a337eb24906bed61ae7f1f7115b..0ac37432f54784a2dfd89feb70bcb55a0bfda1b2 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2016 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -41,8 +41,8 @@ REQUIRED_USE="dump? ( agg ffmpeg )
 RDEPEND=">=dev-libs/boost-1.41.0:0=
        dev-libs/expat
        dev-libs/libxml2
-       virtual/jpeg
-       media-libs/libpng
+       virtual/jpeg:0
+       media-libs/libpng:0
        net-misc/curl
        x11-libs/libX11
        x11-libs/libXi
@@ -65,16 +65,17 @@ RDEPEND=">=dev-libs/boost-1.41.0:0=
        fbcon? (
                x11-libs/tslib
        )
-       ffmpeg? (
-               virtual/ffmpeg[vaapi?]
-       )
+       ffmpeg? ( || (
+               !vaapi? ( media-video/libav )
+               media-video/ffmpeg[vaapi?]
+       ) )
        gconf? (
                gnome-base/gconf
        )
        gstreamer? (
-               media-plugins/gst-plugins-ffmpeg
-               media-plugins/gst-plugins-mad
-               media-plugins/gst-plugins-meta
+               media-plugins/gst-plugins-ffmpeg:*
+               media-plugins/gst-plugins-mad:*
+               media-plugins/gst-plugins-meta:*
        )
        gtk? (
                x11-libs/gtk+:2
@@ -99,7 +100,7 @@ RDEPEND=">=dev-libs/boost-1.41.0:0=
        lirc? ( app-misc/lirc )
        dbus? ( sys-apps/dbus )
        ssh?  ( >=net-libs/libssh-0.4[server] )
-       ssl? ( dev-libs/openssl )
+       ssl? ( dev-libs/openssl:0 )
        vaapi? ( x11-libs/libva[opengl?] )
        "
 DEPEND="${RDEPEND}
@@ -147,6 +148,11 @@ src_prepare() {
        # See https://savannah.gnu.org/bugs/?46148
        epatch "${FILESDIR}"/${P}-boost-1.60.patch
 
+       # Fix vaapi build, bug #546584
+       # See https://savannah.gnu.org/bugs/?44636
+       epatch "${FILESDIR}"/${PN}-0.8.10-libva-1.6_0000.patch
+       epatch "${FILESDIR}"/${PN}-0.8.10-libva-1.6_0001.patch
+
        eautoreconf
 }
 src_configure() {