From 403bb1ca02bae48f658cf945a36340babba83a63 Mon Sep 17 00:00:00 2001 From: Juan RP Date: Sat, 21 Jul 2012 08:01:16 +0200 Subject: [PATCH] pygobject: add patch from https://bugzilla.gnome.org/show_bug.cgi?id=676746 --- ...dentifiers-which-are-Python-keywords.patch | 60 +++++++++++++++++++ srcpkgs/pygobject/pygobject-devel.template | 6 +- srcpkgs/pygobject/template | 11 ++-- 3 files changed, 66 insertions(+), 11 deletions(-) create mode 100644 srcpkgs/pygobject/patches/0001-Escape-identifiers-which-are-Python-keywords.patch diff --git a/srcpkgs/pygobject/patches/0001-Escape-identifiers-which-are-Python-keywords.patch b/srcpkgs/pygobject/patches/0001-Escape-identifiers-which-are-Python-keywords.patch new file mode 100644 index 0000000000..d10f5adc96 --- /dev/null +++ b/srcpkgs/pygobject/patches/0001-Escape-identifiers-which-are-Python-keywords.patch @@ -0,0 +1,60 @@ +From 9de58e168190388d671ed82c30cf17d193f2f64c Mon Sep 17 00:00:00 2001 +From: Martin Pitt +Date: Fri, 1 Jun 2012 14:44:11 +0200 +Subject: [PATCH] Escape identifiers which are Python keywords + +https://bugzilla.gnome.org/show_bug.cgi?id=676746 +--- + gi/pygi-info.c | 38 +++++++++++++++++++++++++++++++++++++- + tests/test_gi.py | 17 +++++++++++++++++ + 2 files changed, 54 insertions(+), 1 deletion(-) + +diff --git a/gi/pygi-info.c b/gi/pygi-info.c +index d850052..beaecc0 100644 +--- gi/pygi-info.c ++++ gi/pygi-info.c +@@ -95,7 +95,43 @@ PYGLIB_DEFINE_TYPE("gi.BaseInfo", PyGIBaseInfo_Type, PyGIBaseInfo); + static PyObject * + _wrap_g_base_info_get_name (PyGIBaseInfo *self) + { +- return PYGLIB_PyUnicode_FromString (g_base_info_get_name (self->info)); ++ /* It may be better to use keyword.iskeyword(); keep in sync with ++ * python -c 'import keyword; print keyword.kwlist' */ ++#if PY_VERSION_HEX < 0x03000000 ++ /* Python 2.x */ ++ static const gchar* keywords[] = {"and", "as", "assert", "break", "class", ++ "continue", "def", "del", "elif", "else", "except", "exec", "finally", ++ "for", "from", "global", "if", "import", "in", "is", "lambda", "not", ++ "or", "pass", "print", "raise", "return", "try", "while", "with", ++ "yield", NULL}; ++#elif PY_VERSION_HEX < 0x04000000 ++ /* Python 3.x; note that we explicitly keep "print"; it is not a keyword ++ * any more, but still raises a SyntaxError */ ++ static const gchar* keywords[] = {"False", "None", "True", "and", "as", ++ "assert", "break", "class", "continue", "def", "del", "elif", "else", ++ "except", "finally", "for", "from", "global", "if", "import", "in", ++ "is", "lambda", "nonlocal", "not", "or", "pass", "raise", "return", ++ "try", "while", "with", "yield", ++ "print", NULL}; ++#else ++ #error Need keyword list for this major Python version ++#endif ++ ++ const gchar *name, **i; ++ ++ name = g_base_info_get_name (self->info); ++ ++ /* escape keywords */ ++ for (i = keywords; *i != NULL; ++i) { ++ if (strcmp (name, *i) == 0) { ++ gchar *escaped = g_strconcat (name, "_", NULL); ++ PyObject *obj = PYGLIB_PyUnicode_FromString (escaped); ++ g_free (escaped); ++ return obj; ++ } ++ } ++ ++ return PYGLIB_PyUnicode_FromString (name); + } + + static PyObject * diff --git a/srcpkgs/pygobject/pygobject-devel.template b/srcpkgs/pygobject/pygobject-devel.template index d2a334f26a..6ece777118 100644 --- a/srcpkgs/pygobject/pygobject-devel.template +++ b/srcpkgs/pygobject/pygobject-devel.template @@ -1,14 +1,12 @@ # Template file for 'pygobject-devel'. # -depends="libffi-devel glib-devel libgirepository-devel pycairo-devel pygobject>=3.2.2" +noarch=yes +depends="libffi-devel glib-devel libgirepository-devel pycairo-devel pygobject>=$version" short_desc="${sourcepkg} development files" long_desc="${long_desc} This package contains files for development, headers, static libs, etc." - -noarch=yes - do_install() { vmove usr/include usr vmove usr/lib/pkgconfig usr/lib diff --git a/srcpkgs/pygobject/template b/srcpkgs/pygobject/template index 04fa72bfb8..6e09358da3 100644 --- a/srcpkgs/pygobject/template +++ b/srcpkgs/pygobject/template @@ -1,20 +1,17 @@ # Template file for 'pygobject' pkgname=pygobject version=3.2.2 -distfiles="${GNOME_SITE}/$pkgname/3.2/$pkgname-$version.tar.xz" +revision=2 build_style=gnu-configure +pycompile_module="gi" +subpackages="$pkgname-devel" depends="python pycairo" makedepends="pkg-config glib-devel cairo-devel libffi-devel python-devel pycairo-devel gobject-introspection" -revision=1 short_desc="Python bindings for GObject" homepage="http://www.pygtk.org/" license="LGPL-2.1" +distfiles="${GNOME_SITE}/$pkgname/3.2/$pkgname-$version.tar.xz" maintainer="Juan RP " checksum=4653790baaff0176fd814b88cfb5378c45906a120b25d01be2554f423b726eb0 long_desc=" Pygobject is a set of Python bindings for the GLib's GObject library." - -pycompile_module="gi" -subpackages="$pkgname-devel" - -