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 <[email protected]> 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 <[email protected]> +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
