summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkos Chandras <hwoarang@gentoo.org>2011-06-24 20:39:52 +0000
committerMarkos Chandras <hwoarang@gentoo.org>2011-06-24 20:39:52 +0000
commit7ccec00f4500eb965b237d323407fa5809e604dd (patch)
tree74bf5ebfe805828df10769ef7ddb91c840aeac8a /dev-python
parentBump -5.11 development version (diff)
downloadgentoo-2-7ccec00f4500eb965b237d323407fa5809e604dd.tar.gz
gentoo-2-7ccec00f4500eb965b237d323407fa5809e604dd.tar.bz2
gentoo-2-7ccec00f4500eb965b237d323407fa5809e604dd.zip
Backport fix for compatibility with Python 3.2 (bug #365549) and fix for a regression from python overlay. Requested by Arfrever
(Portage version: 2.1.9.49/cvs/Linux x86_64)
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/sip/ChangeLog10
-rw-r--r--dev-python/sip/files/sip-4.12.3-python-3.2.patch44
-rw-r--r--dev-python/sip/files/sip-4.12.3-sip_api_is_py_method.patch17
-rw-r--r--dev-python/sip/sip-4.12.3-r1.ebuild79
4 files changed, 149 insertions, 1 deletions
diff --git a/dev-python/sip/ChangeLog b/dev-python/sip/ChangeLog
index dd248ccf17d1..19440d482cdc 100644
--- a/dev-python/sip/ChangeLog
+++ b/dev-python/sip/ChangeLog
@@ -1,6 +1,14 @@
# ChangeLog for dev-python/sip
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/sip/ChangeLog,v 1.193 2011/06/01 19:32:46 ranger Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/sip/ChangeLog,v 1.194 2011/06/24 20:39:52 hwoarang Exp $
+
+*sip-4.12.3-r1 (24 Jun 2011)
+
+ 24 Jun 2011; Markos Chandras <hwoarang@gentoo.org> +sip-4.12.3-r1.ebuild,
+ +files/sip-4.12.3-python-3.2.patch,
+ +files/sip-4.12.3-sip_api_is_py_method.patch:
+ Backport fix for compatibility with Python 3.2 (bug #365549) and fix for a
+ regression from python overlay. Requested by Arfrever
01 Jun 2011; Brent Baude <ranger@gentoo.org> sip-4.12.1.ebuild:
Marking sip-4.12.1 ppc stable for bug 354033
diff --git a/dev-python/sip/files/sip-4.12.3-python-3.2.patch b/dev-python/sip/files/sip-4.12.3-python-3.2.patch
new file mode 100644
index 000000000000..fcad6a08afe6
--- /dev/null
+++ b/dev-python/sip/files/sip-4.12.3-python-3.2.patch
@@ -0,0 +1,44 @@
+--- siplib/sip.h.in
++++ siplib/sip.h.in
+@@ -1553,9 +1553,15 @@
+
+ #define sipIsExactWrappedType(wt) (sipTypeAsPyTypeObject((wt)->type) == (PyTypeObject *)(wt))
+
++#if PY_VERSION_HEX >= 0x03020000
++#define sipConvertFromSliceObject(o,len,start,stop,step,slen) \
++ PySlice_GetIndicesEx((o), (len), (start), (stop), \
++ (step), (slen))
++#else
+ #define sipConvertFromSliceObject(o,len,start,stop,step,slen) \
+ PySlice_GetIndicesEx((PySliceObject *)(o), (len), (start), (stop), \
+ (step), (slen))
++#endif
+
+
+ /*
+--- siplib/voidptr.c
++++ siplib/voidptr.c
+@@ -429,7 +429,11 @@
+ {
+ Py_ssize_t start, stop, step, slicelength;
+
++#if PY_VERSION_HEX >= 0x03020000
++ if (PySlice_GetIndicesEx(key, v->size, &start, &stop, &step, &slicelength) < 0)
++#else
+ if (PySlice_GetIndicesEx((PySliceObject *)key, v->size, &start, &stop, &step, &slicelength) < 0)
++#endif
+ return NULL;
+
+ if (step != 1)
+@@ -486,7 +490,11 @@
+ {
+ Py_ssize_t stop, step;
+
++#if PY_VERSION_HEX >= 0x03020000
++ if (PySlice_GetIndicesEx(key, v->size, &start, &stop, &step, &size) < 0)
++#else
+ if (PySlice_GetIndicesEx((PySliceObject *)key, v->size, &start, &stop, &step, &size) < 0)
++#endif
+ return -1;
+
+ if (step != 1)
diff --git a/dev-python/sip/files/sip-4.12.3-sip_api_is_py_method.patch b/dev-python/sip/files/sip-4.12.3-sip_api_is_py_method.patch
new file mode 100644
index 000000000000..825e943d7cf1
--- /dev/null
+++ b/dev-python/sip/files/sip-4.12.3-sip_api_is_py_method.patch
@@ -0,0 +1,17 @@
+http://www.riverbankcomputing.co.uk/hg/sip/rev/f9f4b161c940
+
+--- siplib/siplib.c.in
++++ siplib/siplib.c.in
+@@ -7604,9 +7604,10 @@
+ #endif
+
+ /*
+- * Check any possible reimplementation is not the wrapped C++ method.
++ * Check any possible reimplementation is not the wrapped C++ method or
++ * a default special method implementation..
+ */
+- if (cls_dict != NULL && (cls_attr = PyDict_GetItem(cls_dict, mname_obj)) != NULL && Py_TYPE(cls_attr) != &sipMethodDescr_Type)
++ if (cls_dict != NULL && (cls_attr = PyDict_GetItem(cls_dict, mname_obj)) != NULL && Py_TYPE(cls_attr) != &sipMethodDescr_Type && Py_TYPE(cls_attr) != &PyWrapperDescr_Type)
+ {
+ reimp = cls_attr;
+ break;
diff --git a/dev-python/sip/sip-4.12.3-r1.ebuild b/dev-python/sip/sip-4.12.3-r1.ebuild
new file mode 100644
index 000000000000..101aab2bf54c
--- /dev/null
+++ b/dev-python/sip/sip-4.12.3-r1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-python/sip/sip-4.12.3-r1.ebuild,v 1.1 2011/06/24 20:39:52 hwoarang Exp $
+
+EAPI="3"
+PYTHON_DEPEND="*"
+PYTHON_EXPORT_PHASE_FUNCTIONS="1"
+SUPPORT_PYTHON_ABIS="1"
+RESTRICT_PYTHON_ABIS="*-jython"
+
+inherit eutils python toolchain-funcs
+
+MY_P="${P/_pre/-snapshot-}"
+
+DESCRIPTION="Python extension module generator for C and C++ libraries"
+HOMEPAGE="http://www.riverbankcomputing.co.uk/software/sip/intro http://pypi.python.org/pypi/SIP"
+SRC_URI="http://www.riverbankcomputing.com/static/Downloads/${PN}${PV%%.*}/${MY_P}.tar.gz"
+
+LICENSE="|| ( GPL-2 GPL-3 sip )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos"
+IUSE="debug doc"
+
+S="${WORKDIR}/${MY_P}"
+
+DEPEND=""
+RDEPEND=""
+
+src_prepare() {
+ epatch "${FILESDIR}/${PN}-4.9.3-darwin.patch"
+ epatch "${FILESDIR}/${P}-python-3.2.patch"
+ epatch "${FILESDIR}/${P}-sip_api_is_py_method.patch"
+ python_copy_sources
+}
+
+src_configure() {
+ configuration() {
+ local myconf=("$(PYTHON)"
+ configure.py
+ --bindir="${EPREFIX}/usr/bin"
+ --incdir="${EPREFIX}$(python_get_includedir)"
+ --destdir="${EPREFIX}$(python_get_sitedir)"
+ --sipdir="${EPREFIX}/usr/share/sip"
+ $(use debug && echo --debug)
+ CC="$(tc-getCC)"
+ CXX="$(tc-getCXX)"
+ LINK="$(tc-getCXX)"
+ LINK_SHLIB="$(tc-getCXX)"
+ CFLAGS="${CFLAGS}"
+ CXXFLAGS="${CXXFLAGS}"
+ LFLAGS="${LDFLAGS}"
+ STRIP=":")
+ echo "${myconf[@]}"
+ "${myconf[@]}"
+ }
+ python_execute_function -s configuration
+}
+
+src_install() {
+ python_src_install
+
+ dodoc NEWS || die "dodoc failed"
+
+ if use doc; then
+ dohtml -r doc/html/* || die "dohtml failed"
+ fi
+}
+
+pkg_postinst() {
+ python_mod_optimize sipconfig.py sipdistutils.py
+
+ ewarn "When updating dev-python/sip, you usually need to rebuild packages, which depend on dev-python/sip,"
+ ewarn "such as dev-python/PyQt4 and dev-python/qscintilla-python. If you have app-portage/gentoolkit"
+ ewarn "installed, you can find these packages with \`equery d dev-python/sip dev-python/PyQt4\`."
+}
+
+pkg_postrm() {
+ python_mod_cleanup sipconfig.py sipdistutils.py
+}