media-video/snappy: Fix blocker (#562736 by Martin Sekera), apply upstream fixes...
authorPacho Ramos <pacho@gentoo.org>
Sat, 17 Oct 2015 10:21:15 +0000 (12:21 +0200)
committerPacho Ramos <pacho@gentoo.org>
Sat, 17 Oct 2015 10:21:37 +0000 (12:21 +0200)
Package-Manager: portage-2.2.23

media-video/snappy/files/snappy-1.0-clutter-1.22.patch [new file with mode: 0644]
media-video/snappy/files/snappy-1.0-clutter-gst-3.patch [new file with mode: 0644]
media-video/snappy/files/snappy-1.0-configure1.patch [new file with mode: 0644]
media-video/snappy/files/snappy-1.0-configure2.patch [new file with mode: 0644]
media-video/snappy/files/snappy-1.0-string-concatenation.patch [new file with mode: 0644]
media-video/snappy/files/snappy-1.0-video-texture.patch [new file with mode: 0644]
media-video/snappy/snappy-1.0-r1.ebuild [new file with mode: 0644]

diff --git a/media-video/snappy/files/snappy-1.0-clutter-1.22.patch b/media-video/snappy/files/snappy-1.0-clutter-1.22.patch
new file mode 100644 (file)
index 0000000..f79d267
--- /dev/null
@@ -0,0 +1,25 @@
+From 529445d6fc5da3ea6e5c81051248b9d4818a1224 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Ball=C3=B3=20Gy=C3=B6rgy?= <ballogyor@gmail.com>
+Date: Wed, 15 Apr 2015 15:46:14 +0200
+Subject: Set windowing backend to X11
+
+This required to work with Clutter 1.22.
+---
+ src/snappy.c | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/snappy.c b/src/snappy.c
+index 6054c88..c2bb2d0 100644
+--- a/src/snappy.c
++++ b/src/snappy.c
+@@ -179,6 +179,7 @@ main (int argc, char *argv[])
+ 
+   context = g_option_context_new ("<media file> - Play movie files");
+ 
++  clutter_set_windowing_backend (CLUTTER_WINDOWING_X11);
+   ci_err = gtk_clutter_init (&argc, &argv);
+   if (ci_err != CLUTTER_INIT_SUCCESS)
+     goto quit;
+-- 
+cgit v0.11.2
+
diff --git a/media-video/snappy/files/snappy-1.0-clutter-gst-3.patch b/media-video/snappy/files/snappy-1.0-clutter-gst-3.patch
new file mode 100644 (file)
index 0000000..c914b02
--- /dev/null
@@ -0,0 +1,128 @@
+From 872fc2ed3d0339559e4023523fa0935f168f631a Mon Sep 17 00:00:00 2001
+From: Luis de Bethencourt <luis@debethencourt.com>
+Date: Tue, 28 Jul 2015 12:06:16 +0100
+Subject: clutter: upgrade to clutter-gst-3.0
+
+---
+ configure.ac         | 4 ++--
+ src/gst_engine.c     | 2 +-
+ src/gst_engine.h     | 5 +++--
+ src/snappy.c         | 7 ++-----
+ src/user_interface.h | 4 ++++
+ 5 files changed, 12 insertions(+), 10 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index b2986c6..75ffb8d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -35,7 +35,7 @@ AC_CANONICAL_HOST
+ # keep one single GST_REQ, core/base should be same versions anyway
+ GST_REQ=1.4.0
+ CLUTTER_REQS=1.20.0
+-CLUTTER_GST_REQS=2.0.12
++CLUTTER_GST_REQS=2.99.2
+ CLUTTER_GTK_REQS=1.6.0
+ GTK_REQS=3.5.0
+ GIO_REQ=2.32
+@@ -55,7 +55,7 @@ PKG_CHECK_MODULES([CLUTTER],
+ AC_SUBST(CLUTTER_CFLAGS)
+ AC_SUBST(CLUTTER_LIBS)
+ 
+-PKG_CHECK_MODULES([CLUTTER_GST], [clutter-gst-2.0 >= $CLUTTER_GST_REQS])
++PKG_CHECK_MODULES([CLUTTER_GST], [clutter-gst-3.0 >= $CLUTTER_GST_REQS])
+ AC_SUBST(CLUTTER_GST_CFLAGS)
+ AC_SUBST(CLUTTER_GST_LIBS)
+ 
+diff --git a/src/gst_engine.c b/src/gst_engine.c
+index 8fc16d4..431d77c 100644
+--- a/src/gst_engine.c
++++ b/src/gst_engine.c
+@@ -724,7 +724,7 @@ cycle_streams (GstEngine * engine, guint streamid)
+ 
+ /*            Init GstEngine variables           */
+ gboolean
+-engine_init (GstEngine * engine, GstElement * sink)
++engine_init (GstEngine * engine, ClutterGstVideoSink * sink)
+ {
+   engine->playing = FALSE;
+   engine->direction_foward = TRUE;
+diff --git a/src/gst_engine.h b/src/gst_engine.h
+index 70dce63..1c044eb 100644
+--- a/src/gst_engine.h
++++ b/src/gst_engine.h
+@@ -24,6 +24,7 @@
+ #define __GST_ENGINE_H__
+ 
+ #include <gst/gst.h>
++#include <clutter-gst/clutter-gst.h>
+ 
+ /* GStreamer Interfaces */
+ #include <gst/video/navigation.h>
+@@ -50,7 +51,7 @@ struct _GstEngine
+   gchar *uri;
+ 
+   GstElement *player;
+-  GstElement *sink;
++  ClutterGstVideoSink *sink;
+ 
+   GstBus *bus;
+ 
+@@ -64,7 +65,7 @@ gboolean bus_call (GstBus * bus, GstMessage * msg, gpointer data);
+ gboolean change_state (GstEngine * engine, gchar * state);
+ gboolean check_missing_plugins_error (GstEngine * engine, GstMessage * msg);
+ gboolean cycle_streams (GstEngine * engine, guint streamid);
+-gboolean engine_init (GstEngine * engine, GstElement * sink);
++gboolean engine_init (GstEngine * engine, ClutterGstVideoSink * sink);
+ gboolean engine_change_offset (GstEngine * engine, gint64 av_offest);
+ gboolean engine_change_speed (GstEngine * engine, gdouble rate);
+ void engine_load_uri (GstEngine * engine, gchar * uri);
+diff --git a/src/snappy.c b/src/snappy.c
+index c2bb2d0..c06fd10 100644
+--- a/src/snappy.c
++++ b/src/snappy.c
+@@ -29,9 +29,6 @@
+ #include <stdlib.h>
+ #include <unistd.h>
+ #include <string.h>
+-#include <clutter/clutter.h>
+-#include <clutter-gst/clutter-gst.h>
+-#include <clutter-gtk/clutter-gtk.h>
+ 
+ #include "user_interface.h"
+ 
+@@ -160,7 +157,7 @@ main (int argc, char *argv[])
+   UserInterface *ui = NULL;
+   GstEngine *engine = NULL;
+   ClutterActor *video_texture;
+-  GstElement *sink;
++  ClutterGstVideoSink *sink;
+ 
+   gboolean ok, blind = FALSE, fullscreen = FALSE, hide = FALSE, loop = FALSE;
+   gboolean secret = FALSE, tags = FALSE;
+@@ -230,7 +227,7 @@ main (int argc, char *argv[])
+ 
+   /* Gstreamer engine */
+   engine = g_new (GstEngine, 1);
+-  sink = gst_element_factory_make ("cluttersink", "video-sink");
++  sink = clutter_gst_video_sink_new ();
+   if (sink == NULL) {
+     g_print ("ERROR: Failed to create clutter-gst sink element\n");
+     return FALSE;
+diff --git a/src/user_interface.h b/src/user_interface.h
+index 6fe43c5..b011da0 100644
+--- a/src/user_interface.h
++++ b/src/user_interface.h
+@@ -23,6 +23,10 @@
+ #ifndef __USER_INTERFACE_H__
+ #define __USER_INTERFACE_H__
+ 
++#include <clutter/clutter.h>
++#include <clutter-gst/clutter-gst.h>
++#include <clutter-gtk/clutter-gtk.h>
++
+ #include <gtk/gtk.h>
+ 
+ #include "gst_engine.h"
+-- 
+cgit v0.11.2
+
diff --git a/media-video/snappy/files/snappy-1.0-configure1.patch b/media-video/snappy/files/snappy-1.0-configure1.patch
new file mode 100644 (file)
index 0000000..cd499d7
--- /dev/null
@@ -0,0 +1,25 @@
+From 259bebe65f0f108726d5a0504b23c85525199b15 Mon Sep 17 00:00:00 2001
+From: Luis de Bethencourt <luis.bg@samsung.com>
+Date: Tue, 2 Jun 2015 16:47:31 +0100
+Subject: configure: update GStreamer version
+
+---
+ configure.ac | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index b628f33..430647f 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -33,7 +33,7 @@ AC_LIBTOOL_WIN32_DLL
+ AC_CANONICAL_HOST
+ 
+ # keep one single GST_REQ, core/base should be same versions anyway
+-GST_REQ=1.0.0
++GST_REQ=1.4.0
+ CLUTTER_REQS=1.12.0
+ CLUTTER_GST_REQS=2.0.0
+ CLUTTER_GTK_REQS=1.0.2
+-- 
+cgit v0.11.2
+
diff --git a/media-video/snappy/files/snappy-1.0-configure2.patch b/media-video/snappy/files/snappy-1.0-configure2.patch
new file mode 100644 (file)
index 0000000..c4787d8
--- /dev/null
@@ -0,0 +1,29 @@
+From c0eacf30b2a0476488004c6000de659ce4380534 Mon Sep 17 00:00:00 2001
+From: Luis de Bethencourt <luis.bg@samsung.com>
+Date: Tue, 2 Jun 2015 16:56:14 +0100
+Subject: configure: update Clutter version
+
+---
+ configure.ac | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index 430647f..b2986c6 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -34,9 +34,9 @@ AC_CANONICAL_HOST
+ 
+ # keep one single GST_REQ, core/base should be same versions anyway
+ GST_REQ=1.4.0
+-CLUTTER_REQS=1.12.0
+-CLUTTER_GST_REQS=2.0.0
+-CLUTTER_GTK_REQS=1.0.2
++CLUTTER_REQS=1.20.0
++CLUTTER_GST_REQS=2.0.12
++CLUTTER_GTK_REQS=1.6.0
+ GTK_REQS=3.5.0
+ GIO_REQ=2.32
+ 
+-- 
+cgit v0.11.2
+
diff --git a/media-video/snappy/files/snappy-1.0-string-concatenation.patch b/media-video/snappy/files/snappy-1.0-string-concatenation.patch
new file mode 100644 (file)
index 0000000..bafaa16
--- /dev/null
@@ -0,0 +1,28 @@
+From f2d51cde0e72853050495b3d995db4aee14c66a6 Mon Sep 17 00:00:00 2001
+From: Jan Schmidt <jan@centricular.com>
+Date: Tue, 13 May 2014 14:30:34 -0400
+Subject: ui: string concatenation to use corect format
+
+---
+ src/user_interface.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/user_interface.c b/src/user_interface.c
+index c29c688..8e3894a 100644
+--- a/src/user_interface.c
++++ b/src/user_interface.c
+@@ -1052,9 +1052,9 @@ position_ns_to_str (UserInterface * ui, gint64 nanoseconds)
+   seconds = seconds - (minutes * SEC_IN_MIN);
+ 
+   if (hours >= 1)
+-    return g_strdup_printf ("%d:%02d:%02ld", hours, minutes, seconds);
++    return g_strdup_printf ("%d:%02d:%02" G_GINT64_FORMAT, hours, minutes, seconds);
+   else
+-    return g_strdup_printf ("%02d:%02ld", minutes, seconds);
++    return g_strdup_printf ("%02d:%02" G_GINT64_FORMAT, minutes, seconds);
+ }
+ 
+ static void
+-- 
+cgit v0.11.2
+
diff --git a/media-video/snappy/files/snappy-1.0-video-texture.patch b/media-video/snappy/files/snappy-1.0-video-texture.patch
new file mode 100644 (file)
index 0000000..eed0bd4
--- /dev/null
@@ -0,0 +1,36 @@
+From f33f7a5e9424544884a37b264bf88ee1866a56ac Mon Sep 17 00:00:00 2001
+From: Luis de Bethencourt <luis@debethencourt.com>
+Date: Tue, 28 Jul 2015 14:02:44 +0100
+Subject: clutter: update method to create video texture
+
+---
+ src/snappy.c | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/src/snappy.c b/src/snappy.c
+index c06fd10..94b6e5b 100644
+--- a/src/snappy.c
++++ b/src/snappy.c
+@@ -222,8 +222,6 @@ main (int argc, char *argv[])
+   ui->tags = tags;
+   ui->data_dir = data_dir;
+   interface_init (ui);
+-  video_texture = g_object_new (CLUTTER_TYPE_TEXTURE, "disable-slicing", TRUE,
+-      NULL);
+ 
+   /* Gstreamer engine */
+   engine = g_new (GstEngine, 1);
+@@ -232,7 +230,9 @@ main (int argc, char *argv[])
+     g_print ("ERROR: Failed to create clutter-gst sink element\n");
+     return FALSE;
+   }
+-  g_object_set (G_OBJECT (sink), "texture", video_texture, NULL);
++  video_texture = g_object_new (CLUTTER_TYPE_ACTOR, "content",
++      g_object_new (CLUTTER_GST_TYPE_CONTENT, "sink", sink, NULL),
++      "name", "texture", NULL);
+ 
+   ok = engine_init (engine, sink);
+   if (!ok)
+-- 
+cgit v0.11.2
+
diff --git a/media-video/snappy/snappy-1.0-r1.ebuild b/media-video/snappy/snappy-1.0-r1.ebuild
new file mode 100644 (file)
index 0000000..bb9efdf
--- /dev/null
@@ -0,0 +1,58 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+GCONF_DEBUG="no"
+
+inherit autotools eutils gnome2
+
+DESCRIPTION="A simple media player written using GStreamer and Clutter"
+HOMEPAGE="https://wiki.gnome.org/Apps/Snappy"
+
+KEYWORDS="~amd64 ~x86"
+
+LICENSE="GPL-2 LGPL-2"
+SLOT="0"
+IUSE=""
+
+RDEPEND="
+       >=dev-libs/glib-2.32:2
+       >=media-libs/clutter-1.20.0:1.0
+       media-libs/clutter-gst:3.0
+       >=media-libs/clutter-gtk-1.6.0:1.0
+       >=x11-libs/gtk+-3.5.0:3
+       x11-libs/libXtst
+
+       >=media-libs/gstreamer-1.4.0:1.0
+       >=media-libs/gst-plugins-base-1.4.0:1.0
+
+       media-plugins/gst-plugins-meta:1.0
+
+       !!<net-misc/spice-gtk-0.19
+" # File collision -- /usr/bin/snappy with older versions
+
+DEPEND="${RDEPEND}"
+
+src_prepare() {
+       # Fix compat with clutter-1.22 (from 'master')
+       epatch "${FILESDIR}"/${P}-clutter-1.22.patch
+
+       # ui: string concatenation to use corect format (from 'master')
+       epatch "${FILESDIR}"/${P}-string-concatenation.patch
+
+       # clutter: update method to create video texture (from 'master')
+       epatch "${FILESDIR}"/${P}-video-texture.patch
+
+       # Move to clutter-gst-3 (from 'master')
+       epatch "${FILESDIR}"/${P}-configure{1,2}.patch
+       epatch "${FILESDIR}"/${P}-clutter-gst-3.patch
+
+       eautoreconf
+       gnome2_src_prepare
+}
+
+src_configure() {
+       DOCS="AUTHORS README THANKS ToDo docs/*"
+       gnome2_src_configure --enable-dbus
+}