diff options
author | Markos Chandras <hwoarang@gentoo.org> | 2011-06-24 20:39:52 +0000 |
---|---|---|
committer | Markos Chandras <hwoarang@gentoo.org> | 2011-06-24 20:39:52 +0000 |
commit | 7ccec00f4500eb965b237d323407fa5809e604dd (patch) | |
tree | 74bf5ebfe805828df10769ef7ddb91c840aeac8a /dev-python | |
parent | Bump -5.11 development version (diff) | |
download | gentoo-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/ChangeLog | 10 | ||||
-rw-r--r-- | dev-python/sip/files/sip-4.12.3-python-3.2.patch | 44 | ||||
-rw-r--r-- | dev-python/sip/files/sip-4.12.3-sip_api_is_py_method.patch | 17 | ||||
-rw-r--r-- | dev-python/sip/sip-4.12.3-r1.ebuild | 79 |
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 +} |