[arch-commits] Commit in gnome-python-desktop/trunk (2 files)
Jan de Groot
jgc at archlinux.org
Sun Feb 14 13:19:48 UTC 2010
Date: Sunday, February 14, 2010 @ 08:19:47
Author: jgc
Revision: 68788
upgpkg: gnome-python-desktop 2.29.1-1
Update to 2.29.1
Added:
gnome-python-desktop/trunk/totem-plparser-api.patch
Modified:
gnome-python-desktop/trunk/PKGBUILD
--------------------------+
PKGBUILD | 15 -
totem-plparser-api.patch | 498 +++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 507 insertions(+), 6 deletions(-)
Modified: PKGBUILD
===================================================================
--- PKGBUILD 2010-02-14 12:59:48 UTC (rev 68787)
+++ PKGBUILD 2010-02-14 13:19:47 UTC (rev 68788)
@@ -4,21 +4,24 @@
# Contributor: Wael Nasreddine <gandalf at siemens-mobiles.org>
pkgname=gnome-python-desktop
-pkgver=2.28.0
-pkgrel=3
+pkgver=2.29.1
+pkgrel=1
pkgdesc="Gnome Python interfaces for libraries not part of the core platform"
arch=(i686 x86_64)
license=('GPL' 'LGPL')
-depends=('gnome-desktop>=2.28.1' 'gnome-python>=2.28.0')
+depends=('gnome-desktop>=2.29.90' 'gnome-python>=2.28.0')
options=('!libtool')
-makedepends=('intltool' 'pkgconfig' 'gnome-media>=2.28.1' 'gnome-panel>=2.28.0' 'gtksourceview>=1.8.5' 'libgnomeprintui>=2.18.4' 'libgtop>=2.28.0' 'totem-plparser>=2.28.1' 'evince>=2.28.1' 'bug-buddy>=2.28.0' 'brasero>=2.28.2')
+makedepends=('intltool' 'pkgconfig' 'gnome-media>=2.28.5' 'gnome-panel>=2.29.6' 'gtksourceview>=1.8.5' 'libgnomeprintui>=2.18.4' 'libgtop>=2.28.0' 'totem-plparser>=2.29.1' 'evince>=2.29.5' 'bug-buddy>=2.28.0' 'brasero>=2.29.90')
optdepends=('gnome-media' 'gnome-panel' 'gtksourceview' 'libgnomeprintui' 'libgtop' 'totem-plparser' 'evince' 'bug-buddy' 'brasero')
url="http://www.gnome.org"
-source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.28/${pkgname}-${pkgver}.tar.bz2)
-sha256sums=('92948d2dd0d03a56abe565f3c24725242251db261bd0a12aad5a742326cb3c7f')
+source=(http://ftp.gnome.org/pub/gnome/sources/${pkgname}/2.29/${pkgname}-${pkgver}.tar.bz2
+ totem-plparser-api.patch)
+sha256sums=('7cc853f9d7cc7fdc895006abbe7a8c5bb3b27d6d4dc14d2bb09afc63fd397618'
+ '2657e937801103b009a4c84777bfaa764ca847293a2ae9fcf6d946070c7f8309')
build() {
cd "${srcdir}/${pkgname}-${pkgver}"
+ patch -Np1 -i "${srcdir}/totem-plparser-api.patch" || return 1
./waf configure --prefix=/usr || return 1
./waf build ${MAKEFLAGS} || return 1
./waf install --destdir="${pkgdir}" || return 1
Added: totem-plparser-api.patch
===================================================================
--- totem-plparser-api.patch (rev 0)
+++ totem-plparser-api.patch 2010-02-14 13:19:47 UTC (rev 68788)
@@ -0,0 +1,498 @@
+From fa0d4db4f90d50d82ccdd6628eec91476a567a88 Mon Sep 17 00:00:00 2001
+From: Gustavo Carneiro <gjc at inescporto.pt>
+Date: Thu, 28 Jan 2010 16:10:16 +0000
+Subject: Bug 608331 - totem-pl-parser doesn't build with latest totem-pl-parser
+
+---
+diff --git a/totem/plparser.defs b/totem/plparser.defs
+index 184578e..9f25ff1 100644
+--- a/totem/plparser.defs
++++ b/totem/plparser.defs
+@@ -1,8 +1,24 @@
+ ;; -*- scheme -*-
+ ; object definitions ...
++
++(define-object Parser
++ (in-module "totem.plparser")
++ (parent "GObject")
++ (c-name "TotemPlParser")
++ (gtype-id "TOTEM_TYPE_PL_PARSER")
++)
++
++(define-object Playlist
++ (in-module "totem.playlist")
++ (parent "GObject")
++ (c-name "TotemPlPlaylist")
++ (gtype-id "TOTEM_TYPE_PL_PLAYLIST")
++)
++
+ ;; Enumerations and flags ...
+
+-(define-enum ParserResult
++
++(define-enum PlParserResult
+ (in-module "Totem")
+ (c-name "TotemPlParserResult")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_RESULT")
+@@ -10,10 +26,12 @@
+ '("unhandled" "TOTEM_PL_PARSER_RESULT_UNHANDLED")
+ '("error" "TOTEM_PL_PARSER_RESULT_ERROR")
+ '("success" "TOTEM_PL_PARSER_RESULT_SUCCESS")
++ '("ignored" "TOTEM_PL_PARSER_RESULT_IGNORED")
++ '("cancelled" "TOTEM_PL_PARSER_RESULT_CANCELLED")
+ )
+ )
+
+-(define-enum ParserType
++(define-enum PlParserType
+ (in-module "Totem")
+ (c-name "TotemPlParserType")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_TYPE")
+@@ -21,47 +39,60 @@
+ '("pls" "TOTEM_PL_PARSER_PLS")
+ '("m3u" "TOTEM_PL_PARSER_M3U")
+ '("m3u-dos" "TOTEM_PL_PARSER_M3U_DOS")
++ '("xspf" "TOTEM_PL_PARSER_XSPF")
++ '("iriver-pla" "TOTEM_PL_PARSER_IRIVER_PLA")
+ )
+ )
+
+-(define-enum ParserError
++(define-enum PlParserError
+ (in-module "Totem")
+ (c-name "TotemPlParserError")
+ (gtype-id "TOTEM_TYPE_PL_PARSER_ERROR")
+ (values
+- '("open" "TOTEM_PL_PARSER_ERROR_VFS_OPEN")
+- '("write" "TOTEM_PL_PARSER_ERROR_VFS_WRITE")
++ '("no-disc" "TOTEM_PL_PARSER_ERROR_NO_DISC")
++ '("mount-failed" "TOTEM_PL_PARSER_ERROR_MOUNT_FAILED")
+ )
+ )
+
+
+ ;; From totem-pl-parser.h
+
+-(define-object Parser
+- (in-module "PlaylistParser")
+- (parent "GObject")
+- (c-name "TotemPlParser")
+- (gtype-id "TOTEM_TYPE_PL_PARSER")
+-)
+-
+-(define-function totem_pl_parser_error_quark
++(define-function error_quark
+ (c-name "totem_pl_parser_error_quark")
+ (return-type "GQuark")
+ )
+
+-(define-function totem_pl_parser_get_type
++(define-function get_type
+ (c-name "totem_pl_parser_get_type")
+ (return-type "GType")
+ )
+
+-(define-method write
++(define-function parse_duration
++ (c-name "totem_pl_parser_parse_duration")
++ (return-type "gint64")
++ (parameters
++ '("const-char*" "duration")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function parse_date
++ (c-name "totem_pl_parser_parse_date")
++ (return-type "guint64")
++ (parameters
++ '("const-char*" "date_str")
++ '("gboolean" "debug")
++ )
++)
++
++(define-method save
+ (of-object "TotemPlParser")
+- (c-name "totem_pl_parser_write")
++ (c-name "totem_pl_parser_save")
+ (return-type "gboolean")
+ (parameters
+- '("GtkTreeModel*" "model")
+- '("TotemPlParserIterFunc" "func")
+- '("const-char*" "output")
++ '("TotemPlPlaylist*" "playlist")
++ '("GFile*" "dest")
++ '("const-gchar*" "title")
+ '("TotemPlParserType" "type")
+ '("GError**" "error")
+ )
+@@ -76,20 +107,243 @@
+ )
+ )
+
++(define-method add_ignored_mimetype
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_add_ignored_mimetype")
++ (return-type "none")
++ (parameters
++ '("const-char*" "mimetype")
++ )
++)
++
+ (define-method parse
+ (of-object "TotemPlParser")
+ (c-name "totem_pl_parser_parse")
+ (return-type "TotemPlParserResult")
+ (parameters
+- '("const-char*" "url")
++ '("const-char*" "uri")
+ '("gboolean" "fallback")
+ )
+ )
+
+-(define-function totem_pl_parser_new
++(define-method parse_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-method parse_finish
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_finish")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("GAsyncResult*" "async_result")
++ '("GError**" "error")
++ )
++)
++
++(define-method parse_with_base
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base")
++ (return-type "TotemPlParserResult")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ )
++)
++
++(define-method parse_with_base_async
++ (of-object "TotemPlParser")
++ (c-name "totem_pl_parser_parse_with_base_async")
++ (return-type "none")
++ (parameters
++ '("const-char*" "uri")
++ '("const-char*" "base")
++ '("gboolean" "fallback")
++ '("GCancellable*" "cancellable")
++ '("GAsyncReadyCallback" "callback")
++ '("gpointer" "user_data")
++ )
++)
++
++(define-function new
+ (c-name "totem_pl_parser_new")
+ (is-constructor-of "TotemPlParser")
+ (return-type "TotemPlParser*")
+ )
+
++(define-function metadata_get_type
++ (c-name "totem_pl_parser_metadata_get_type")
++ (return-type "GType")
++)
++
++
++
++;; From totem-pl-parser-mini.h
++
++(define-function can_parse_from_data
++ (c-name "totem_pl_parser_can_parse_from_data")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "data")
++ '("gsize" "len")
++ '("gboolean" "debug")
++ )
++)
++
++(define-function can_parse_from_filename
++ (c-name "totem_pl_parser_can_parse_from_filename")
++ (return-type "gboolean")
++ (parameters
++ '("const-char*" "filename")
++ '("gboolean" "debug")
++ )
++)
++
++
++
++;; From totem-pl-playlist.h
++
++(define-function totem_pl_playlist_get_type
++ (c-name "totem_pl_playlist_get_type")
++ (return-type "GType")
++)
++
++(define-function totem_pl_playlist_new
++ (c-name "totem_pl_playlist_new")
++ (is-constructor-of "TotemPlPlaylist")
++ (return-type "TotemPlPlaylist*")
++)
++
++(define-method size
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_size")
++ (return-type "guint")
++)
++
++(define-method prepend
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_prepend")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method append
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_append")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method insert
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_insert")
++ (return-type "none")
++ (parameters
++ '("gint" "position")
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_first
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_first")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_next
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_next")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method iter_prev
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_iter_prev")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++)
++
++(define-method get_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method get_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method get
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_get")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
++(define-method set_value
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_value")
++ (return-type "gboolean")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("const-gchar*" "key")
++ '("GValue*" "value")
++ )
++)
++
++(define-method set_valist
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set_valist")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ '("va_list" "args")
++ )
++)
++
++(define-method set
++ (of-object "TotemPlPlaylist")
++ (c-name "totem_pl_playlist_set")
++ (return-type "none")
++ (parameters
++ '("TotemPlPlaylistIter*" "iter")
++ )
++ (varargs #t)
++)
++
+
+diff --git a/totem/plparser.override b/totem/plparser.override
+index 3cbe2fb..48e1853 100644
+--- a/totem/plparser.override
++++ b/totem/plparser.override
+@@ -5,7 +5,7 @@ headers
+ #include "pygobject.h"
+ #include "totem-pl-parser.h"
+ #include "totem-pl-parser-builtins.h"
+-#include <gtk/gtk.h>
++#include "totem-pl-parser-mini.h"
+ #include <glib.h>
+
+ #include "config.h"
+@@ -14,108 +14,8 @@ headers
+ modulename totem.plparser
+ %%
+ import gobject.GObject as PyGObject_Type
+-import gtk.TreeModel as PyGtkTreeModel_Type
+ %%
+ ignore-glob
+ *_get_type
+ *_error_quark
+-%%
+-override totem_pl_parser_write kwargs
+-
+-typedef struct {
+- PyObject *func;
+- PyObject *data;
+- gboolean has_error;
+-} PyPlParserIterFuncData;
+-
+-static void
+-_pl_parser_iter_func (GtkTreeModel *model, GtkTreeIter *iter, char **uri, char **title,
+- gboolean *custom_title, gpointer user_data)
+-{
+- PyObject *args = NULL;
+- PyObject *result = NULL;
+- char *tmp_uri = NULL, *tmp_title = NULL;
+- PyPlParserIterFuncData *data = user_data;
+- PyObject *py_custom_title = NULL;
+-
+- if (data->has_error)
+- return;
+-
+- if (data->data)
+- args = Py_BuildValue ("(NNO)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE),
+- data->data);
+- else
+- args = Py_BuildValue ("(NN)",
+- pygobject_new((GObject *)model),
+- pyg_boxed_new(GTK_TYPE_TREE_ITER, iter, TRUE, TRUE));
+- result = PyEval_CallObject (data->func, args);
+- Py_DECREF (args);
+-
+- if (result == NULL) {
+- data->has_error = TRUE;
+- return;
+- }
+- /* ?! */
+- /* PyObject_Print (result, stdout, 0); */
+-
+- if (PyString_Check (result)) {
+- tmp_uri = PyString_AsString (result);
+- if (tmp_uri == NULL) {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one"
+- " string or a tuple of two strings.");
+- data->has_error = TRUE;
+- }
+- } else if (!PyTuple_Check (result) ||
+- !PyArg_ParseTuple (result, "ss|O", &tmp_uri, &tmp_title, &py_custom_title))
+- {
+- PyErr_SetString (PyExc_TypeError,
+- "Callback function must return one "
+- "string or a tuple of two strings,"
+- " or two strings and a boolean.");
+- data->has_error = TRUE;
+- }
+-
+- /* g_strdup handles NULL case for us */
+- *uri = g_strdup (tmp_uri);
+- *title = g_strdup (tmp_title);
+- *custom_title = py_custom_title? PyObject_IsTrue(py_custom_title) : FALSE;
+-
+- Py_DECREF (result);
+-}
+
+-static PyObject *
+-_wrap_totem_pl_parser_write (PyGObject *self, PyObject *args, PyObject *kwargs)
+-{
+- static char *kwlist[] = {"model", "iter_func", "output", "type", NULL};
+- PyGObject *model;
+- char *output;
+- TotemPlParserType type;
+- GError *error = NULL;
+- PyPlParserIterFuncData data = {0, };
+-
+- if (!PyArg_ParseTupleAndKeywords(args, kwargs, "O!Osi|O:Parser.write",
+- kwlist, &PyGtkTreeModel_Type, &model,
+- &data.func, &output, &type, &data.data))
+- return NULL;
+- /* verify arguments' integrity */
+- if (!PyCallable_Check (data.func)) {
+- PyErr_SetString (PyExc_TypeError, "iter_func must be callable");
+- return NULL;
+- }
+- if (!totem_pl_parser_write (TOTEM_PL_PARSER(self->obj),
+- GTK_TREE_MODEL(model->obj),
+- _pl_parser_iter_func,
+- output,type, &data, &error))
+- {
+- /* return an GError */
+- pyg_error_check(&error);
+- return NULL;
+- }
+- if (data.has_error)
+- return NULL;
+- Py_INCREF(Py_None);
+- return Py_None;
+-}
+--
+cgit v0.8.3.1
More information about the arch-commits
mailing list