diff options
author | 2011-04-09 19:55:11 +0000 | |
---|---|---|
committer | 2011-04-09 19:55:11 +0000 | |
commit | 6ee921a408e5198bc6e29a8ea7be44617cce84c9 (patch) | |
tree | c8656ebf58081879b08cfc6714cf09c13a647eaf /dev-python/pycxx | |
parent | Extend blocker to old kdelibs because of file collisions, bug 362767 (diff) | |
download | historical-6ee921a408e5198bc6e29a8ea7be44617cce84c9.tar.gz historical-6ee921a408e5198bc6e29a8ea7be44617cce84c9.tar.bz2 historical-6ee921a408e5198bc6e29a8ea7be44617cce84c9.zip |
Fix compatibility with Python 3.2 (bug #292415).
Package-Manager: portage-2.2.0_alpha29_p10/cvs/Linux x86_64
Diffstat (limited to 'dev-python/pycxx')
-rw-r--r-- | dev-python/pycxx/ChangeLog | 8 | ||||
-rw-r--r-- | dev-python/pycxx/Manifest | 24 | ||||
-rw-r--r-- | dev-python/pycxx/files/pycxx-6.2.3-python-3.2.patch | 232 | ||||
-rw-r--r-- | dev-python/pycxx/pycxx-6.2.3-r2.ebuild | 43 |
4 files changed, 305 insertions, 2 deletions
diff --git a/dev-python/pycxx/ChangeLog b/dev-python/pycxx/ChangeLog index f86e21ebfc1d..66d7a8fe645a 100644 --- a/dev-python/pycxx/ChangeLog +++ b/dev-python/pycxx/ChangeLog @@ -1,6 +1,12 @@ # ChangeLog for dev-python/pycxx # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-python/pycxx/ChangeLog,v 1.26 2011/03/09 13:56:40 arfrever Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-python/pycxx/ChangeLog,v 1.27 2011/04/09 19:55:11 arfrever Exp $ + +*pycxx-6.2.3-r2 (09 Apr 2011) + + 09 Apr 2011; Arfrever Frehtes Taifersar Arahesis <arfrever@gentoo.org> + +pycxx-6.2.3-r2.ebuild, +files/pycxx-6.2.3-python-3.2.patch: + Fix compatibility with Python 3.2 (bug #292415). *pycxx-6.2.3-r1 (09 Mar 2011) diff --git a/dev-python/pycxx/Manifest b/dev-python/pycxx/Manifest index 85ca625814b7..9338fcc18044 100644 --- a/dev-python/pycxx/Manifest +++ b/dev-python/pycxx/Manifest @@ -1,8 +1,12 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + AUX pycxx-6.1.0-C_compatible_headers.patch 1213 RMD160 a12fc8aef17e1ddac6cb653a4eb1014461a59852 SHA1 c13d9459ba7397985b26b1beddc5ba5fa1067609 SHA256 83bd693b9b293a90e81cfa6af23421165faf04a4f7849472d42b72acb9a23efa AUX pycxx-6.1.0-python-3.patch 398 RMD160 0610322f137c6a587b581b9681fe0712ebdacdb9 SHA1 0a98ac0686f363d3f44d1235ce6f6ecd3e7e70e2 SHA256 6d23ce38343e86c62edf56e08837a199bd71f2b686446e3399be5ac4b7dd2ed4 AUX pycxx-6.1.0-setup.py.patch 1390 RMD160 7fbf6530f49bb97614fdc69c3a8e751e6b602526 SHA1 2cfed58ab995cf34bc29f74fc11774e3f9613c1b SHA256 7571d6c99d464bfb92a8eaeafec59610bb50fcea147b71722ff94fd90e3a4aa9 AUX pycxx-6.2.1-python-3.1.3.patch 2572 RMD160 130ce76aad330389ccccc0473fc5b2acbf28f03f SHA1 810c8a3dd8929eaef42f5c7901b188396e4222a1 SHA256 ad459013befc38a5166d635822b08b8f7979c2b55719360fec4d83fe02bd62bc AUX pycxx-6.2.3-installation.patch 1248 RMD160 ec0d6925e21af0c1e2125a1f90da50bb09040202 SHA1 0c47e86288c3134377aa8cd17966c3ac8031ddc8 SHA256 f6c47b1d613b01511e55cefbc0e0564c402374fc0a4340848f712011b416f7de +AUX pycxx-6.2.3-python-3.2.patch 10198 RMD160 088351084a352d79ab8702ff98f5cb81543d5f01 SHA1 9cbca97c6868225cf6b47179306551e93d4c7d13 SHA256 9a7cd9946a815d27631cb92afead183adf2652798df5c92058518f999164dbbc AUX pycxx-6.2.3-python-3.patch 1063 RMD160 23aed53bf8e04df6171306c2e398b6c0676b854e SHA1 7177044874e96d270c10ae3313cf61e1f02c9d8a SHA256 3a06d5841d2f8e1dfa65b7d7197e8d72df652688956bc22d724aa89064612792 DIST pycxx-6.2.1.tar.gz 144162 RMD160 5549ec039b66d9c20d5fce8e16e38c81bedfbc88 SHA1 ec260197805c19e7cd9af7a371b5c4585554e566 SHA256 2f6c8b49a29aeece56c226d419998dca8f99af4d24b4092fa09f4878c72135a5 DIST pycxx-6.2.2.tar.gz 144438 RMD160 4613b0073250b6f248e535413f38dd18ead449ec SHA1 52f8136026d1a5ec638dfb2d5ce03ba70f9b1f68 SHA256 8a0c9c41885ab7579a807c2709e53528a53c2426a048840dad43c093b2994138 @@ -10,5 +14,23 @@ DIST pycxx-6.2.3.tar.gz 140787 RMD160 8f39efc0dc86f75a394172be232b10f5aead1368 S EBUILD pycxx-6.2.1-r1.ebuild 1195 RMD160 dfbdedf54ca2c094d325c96a116a6e83e67695ad SHA1 48862b57eead261b3e7bb9af5a2ba55857839e10 SHA256 f255b6523c7402ffeb6264e8b0ab5501f112436a50cc98459bbd0de83c1b73f5 EBUILD pycxx-6.2.2.ebuild 1151 RMD160 b614ce9584e77fcf17462dbdd8ba6a3a4b1cd534 SHA1 22f9c2552c9082fc786b8383c441898ad29e13c6 SHA256 0cd901cffd306f725c855bbc6c8db93043268ae99716b2a0641b627bed98cea1 EBUILD pycxx-6.2.3-r1.ebuild 1145 RMD160 f17bf846edd6fcad1922763d2084c03c92e97914 SHA1 a65e4cb75ac2350196828fa3b5ebfe665520846f SHA256 32548ae0553f129f4f72f71bc437412576da7a402d9f6d8c6e8c02119d43c2c8 -MISC ChangeLog 3642 RMD160 e4c32c14ac4f3667e1a98a2ad4be9e9dc140f5e6 SHA1 9658dc56edcdb52b58bd1a1273e0d45d035d4f8f SHA256 3038b2f5d3c1c5813cb05e22ad448b00ddb417b63551b0e2978dffc57d615806 +EBUILD pycxx-6.2.3-r2.ebuild 1128 RMD160 562093320d02ca2175fabd55ac7ed8057b3dcd6a SHA1 97debeb418d650fbecff6f8ba9d7050328fe95ee SHA256 29e046b72296e781b652f925efa0108d09f011c08ee989cdaef645bd2bee56b6 +MISC ChangeLog 3861 RMD160 66424b61da6801d9b670591134ccacab51e45dae SHA1 d7ac7f3e77aac3213eb03111d95a8e141925fb1c SHA256 cbfdc288996c33692d6edbc04a84834db86948c1558b168361859af796d152c8 MISC metadata.xml 556 RMD160 58bf795f79850d5844f4c324bb9b01e5a7f3cfe6 SHA1 240a0b1d1f74321c3eb5eab5676dd0eafe824911 SHA256 cb33179b683664b2fdfce0dbc687c7816bc2d15417aeb7025db6c50063cdc3ab +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v2.0.17 (GNU/Linux) + +iQIcBAEBAgAGBQJNoLmyAAoJENgZr6v6gHY06AYQAL1eWia2cyU42K61k3c48e2M +OUVKvDUq0kQVUo36Ij83PVgRSSNZkR+qIkEDl2HX585H2Wib+xnzpRK/yyGKvrXJ +FUQ3j9Zihtic4cpVtq43go24Txp2klnCEoHNt+nO/VSPn5PX93CP8GaY8SyqOdlG +wA23A5XfSrSVssPjugci9AFy55ggAATrAPvGekoqXE+K2AJkmH5G+7VTvVYAbR7R +ED6/hEkOFZHKoQWVbYm+aCwpHtkQvH1FRuwFuhyoGnS1BgCrEzjy2ipHrfXCZZ21 +KwxFuBi//GeUYx0oxN8y9MuDZ4IKhImerO0SO0JD0MV9H+8qJIArwKViKB9tuStL +v5WEYQuWiatHWeBa8cQXsHyf6LPalDkWz7YC4u7EifldbkGoU4In8MyavtYEKoOI +Jb8g9EzPOnQZfTbY0RT9TGx6lCVRAxSeFQawe0QDapMb02jSMcIfKVkc8w7wIpd/ +KRhggdQgHJ33Kc2beeQpkc0DFa1JyFRfmIWNlyWrqzmM8gDDMzq7DPy1eYk0BvAe +iwL/onLPYQsyjgHdKb0aUmXkdHYbkIq/KyKxYefbvGZxVoSMJCgUV/8E6OpTQ/Bu +wSIJcAq2CM/sK291GcY1DiOSWL6NPId6WOU1/zfMWm2/riUF05jUG3Wq1o+vS8vC +eIrc0eqTYZUjzpPPbp8C +=0wf0 +-----END PGP SIGNATURE----- diff --git a/dev-python/pycxx/files/pycxx-6.2.3-python-3.2.patch b/dev-python/pycxx/files/pycxx-6.2.3-python-3.2.patch new file mode 100644 index 000000000000..84c02f4aee49 --- /dev/null +++ b/dev-python/pycxx/files/pycxx-6.2.3-python-3.2.patch @@ -0,0 +1,232 @@ +http://cxx.svn.sourceforge.net/viewvc?view=revision&revision=266 + +--- CXX/Python3/ExtensionModule.hxx ++++ CXX/Python3/ExtensionModule.hxx +@@ -82,8 +82,6 @@ + extern "C" PyObject *method_varargs_call_handler( PyObject *_self_and_name_tuple, PyObject *_args ); + extern "C" PyObject *method_keyword_call_handler( PyObject *_self_and_name_tuple, PyObject *_args, PyObject *_keywords ); + +- extern "C" void do_not_dealloc( void * ); +- + template<TEMPLATE_TYPENAME T> + class ExtensionModule : public ExtensionModuleBase + { +@@ -134,11 +132,11 @@ + { + MethodDefExt<T> *method_def = (*i).second; + +- static PyObject *self = PyCObject_FromVoidPtr( this, do_not_dealloc ); ++ static PyObject *self = PyCapsule_New( this, NULL, NULL ); + + Tuple args( 2 ); + args[0] = Object( self ); +- args[1] = Object( PyCObject_FromVoidPtr( method_def, do_not_dealloc ) ); ++ args[1] = Object( PyCapsule_New( method_def, NULL, NULL ) ); + + PyObject *func = PyCFunction_New + ( +--- CXX/Python3/ExtensionOldType.hxx ++++ CXX/Python3/ExtensionOldType.hxx +@@ -178,7 +178,7 @@ + Tuple self( 2 ); + + self[0] = Object( this ); +- self[1] = Object( PyCObject_FromVoidPtr( method_def, do_not_dealloc ) ); ++ self[1] = Object( PyCapsule_New( method_def, NULL, NULL ) ); + + PyObject *func = PyCFunction_New( &method_def->ext_meth_def, self.ptr() ); + +@@ -237,7 +237,7 @@ + T *self = static_cast<T *>( self_in_cobject ); + + MethodDefExt<T> *meth_def = reinterpret_cast<MethodDefExt<T> *>( +- PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ) ); ++ PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ) ); + + Object result; + +@@ -273,7 +273,7 @@ + PyObject *self_in_cobject = self_and_name_tuple[0].ptr(); + T *self = static_cast<T *>( self_in_cobject ); + MethodDefExt<T> *meth_def = reinterpret_cast<MethodDefExt<T> *>( +- PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ) ); ++ PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ) ); + + Tuple args( _args ); + +@@ -310,7 +310,7 @@ + PyObject *self_in_cobject = self_and_name_tuple[0].ptr(); + T *self = static_cast<T *>( self_in_cobject ); + MethodDefExt<T> *meth_def = reinterpret_cast<MethodDefExt<T> *>( +- PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ) ); ++ PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ) ); + + Tuple args( _args ); + +--- CXX/Python3/IndirectPythonInterface.hxx ++++ CXX/Python3/IndirectPythonInterface.hxx +@@ -109,9 +109,6 @@ + PyTypeObject * _Method_Type(); + bool _Method_Check( PyObject *op ); + +-PyTypeObject * _CObject_Type(); +-bool _CObject_Check( PyObject *op ); +- + PyTypeObject * _Complex_Type(); + bool _Complex_Check( PyObject *op ); + +--- Src/IndirectPythonInterface.cxx ++++ Src/IndirectPythonInterface.cxx +@@ -40,7 +40,6 @@ + namespace Py + { + bool _CFunction_Check( PyObject *op ) { return op->ob_type == _CFunction_Type(); } +-bool _CObject_Check( PyObject *op ) { return op->ob_type == _CObject_Type(); } + bool _Complex_Check( PyObject *op ) { return op->ob_type == _Complex_Type(); } + bool _Dict_Check( PyObject *op ) { return op->ob_type == _Dict_Type(); } + bool _Float_Check( PyObject *op ) { return op->ob_type == _Float_Type(); } +@@ -59,6 +58,7 @@ + #if PY_MAJOR_VERSION == 2 + bool _String_Check( PyObject *op ) { return op->ob_type == _String_Type(); } + bool _Int_Check( PyObject *op ) { return op->ob_type == _Int_Type(); } ++bool _CObject_Check( PyObject *op ) { return op->ob_type == _CObject_Type(); } + #endif + #if PY_MAJOR_VERSION >= 3 + bool _Bytes_Check( PyObject *op ) { return op->ob_type == _Bytes_Type(); } +@@ -111,7 +111,6 @@ + static PyObject *ptr__PyFalse = NULL; + static PyObject *ptr__PyTrue = NULL; + static PyTypeObject *ptr__CFunction_Type = NULL; +-static PyTypeObject *ptr__CObject_Type = NULL; + static PyTypeObject *ptr__Complex_Type = NULL; + static PyTypeObject *ptr__Dict_Type = NULL; + static PyTypeObject *ptr__Float_Type = NULL; +@@ -129,6 +128,7 @@ + #if PY_MAJOR_VERSION == 2 + static PyTypeObject *ptr__Int_Type = NULL; + static PyTypeObject *ptr__String_Type = NULL; ++static PyTypeObject *ptr__CObject_Type = NULL; + #endif + #if PY_MAJOR_VERSION >= 3 + static PyTypeObject *ptr__Bytes_Type = NULL; +@@ -284,7 +284,6 @@ + ptr__PyTrue = GetPyObject_As_PyObjectPointer( "_Py_TrueStruct" ); + + ptr__CFunction_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyCFunction_Type" ); +- ptr__CObject_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyCObject_Type" ); + ptr__Complex_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyComplex_Type" ); + ptr__Dict_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyDict_Type" ); + ptr__Float_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyFloat_Type" ); +@@ -303,6 +302,7 @@ + #if PY_MAJOR_VERSION == 2 + ptr__String_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyString_Type" ); + ptr__Int_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyInt_Type" ); ++ ptr__CObject_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyCObject_Type" ); + #endif + #if PY_MAJOR_VERSION >= 3 + ptr__Bytes_Type = GetPyTypeObject_As_PyTypeObjectPointer( "PyBytes_Type" ); +@@ -367,7 +367,6 @@ + PyObject *_True() { return ptr__PyTrue; } + + PyTypeObject *_CFunction_Type() { return ptr__CFunction_Type; } +-PyTypeObject *_CObject_Type() { return ptr__CObject_Type; } + PyTypeObject *_Complex_Type() { return ptr__Complex_Type; } + PyTypeObject *_Dict_Type() { return ptr__Dict_Type; } + PyTypeObject *_Float_Type() { return ptr__Float_Type; } +@@ -386,6 +385,7 @@ + #if PY_MAJOR_VERSION == 2 + PyTypeObject *_String_Type() { return ptr__String_Type; } + PyTypeObject *_Int_Type() { return ptr__Int_Type; } ++PyTypeObject *_CObject_Type() { return ptr__CObject_Type; } + #endif + #if PY_MAJOR_VERSION >= 3 + PyTypeObject *_Bytes_Type() { return ptr__Bytes_Type; } +@@ -506,7 +506,6 @@ + PyObject *_True() { return Py_True; } + + PyTypeObject *_CFunction_Type() { return &PyCFunction_Type; } +-PyTypeObject *_CObject_Type() { return &PyCObject_Type; } + PyTypeObject *_Complex_Type() { return &PyComplex_Type; } + PyTypeObject *_Dict_Type() { return &PyDict_Type; } + PyTypeObject *_Float_Type() { return &PyFloat_Type; } +@@ -525,6 +524,7 @@ + #if PY_MAJOR_VERSION == 2 + PyTypeObject *_String_Type() { return &PyString_Type; } + PyTypeObject *_Int_Type() { return &PyInt_Type; } ++PyTypeObject *_CObject_Type() { return &PyCObject_Type; } + #endif + #if PY_MAJOR_VERSION >= 3 + PyTypeObject *_Bytes_Type() { return &PyBytes_Type; } +--- Src/Python3/cxx_extensions.cxx ++++ Src/Python3/cxx_extensions.cxx +@@ -1471,13 +1471,13 @@ + Tuple self_and_name_tuple( _self_and_name_tuple ); + + PyObject *self_in_cobject = self_and_name_tuple[0].ptr(); +- void *self_as_void = PyCObject_AsVoidPtr( self_in_cobject ); ++ void *self_as_void = PyCapsule_GetPointer( self_in_cobject, NULL ); + if( self_as_void == NULL ) + return NULL; + + ExtensionModuleBase *self = static_cast<ExtensionModuleBase *>( self_as_void ); + +- Object result( self->invoke_method_noargs( PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ) ) ); ++ Object result( self->invoke_method_noargs( PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ) ) ); + + return new_reference_to( result.ptr() ); + } +@@ -1494,7 +1494,7 @@ + Tuple self_and_name_tuple( _self_and_name_tuple ); + + PyObject *self_in_cobject = self_and_name_tuple[0].ptr(); +- void *self_as_void = PyCObject_AsVoidPtr( self_in_cobject ); ++ void *self_as_void = PyCapsule_GetPointer( self_in_cobject, NULL ); + if( self_as_void == NULL ) + return NULL; + +@@ -1504,7 +1504,7 @@ + ( + self->invoke_method_varargs + ( +- PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ), ++ PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ), + args + ) + ); +@@ -1524,7 +1524,7 @@ + Tuple self_and_name_tuple( _self_and_name_tuple ); + + PyObject *self_in_cobject = self_and_name_tuple[0].ptr(); +- void *self_as_void = PyCObject_AsVoidPtr( self_in_cobject ); ++ void *self_as_void = PyCapsule_GetPointer( self_in_cobject, NULL ); + if( self_as_void == NULL ) + return NULL; + +@@ -1540,7 +1540,7 @@ + ( + self->invoke_method_keyword + ( +- PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ), ++ PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ), + args, + keywords + ) +@@ -1556,7 +1556,7 @@ + ( + self->invoke_method_keyword + ( +- PyCObject_AsVoidPtr( self_and_name_tuple[1].ptr() ), ++ PyCapsule_GetPointer( self_and_name_tuple[1].ptr(), NULL ), + args, + keywords + ) +@@ -1571,9 +1571,6 @@ + } + } + +-extern "C" void do_not_dealloc( void * ) +-{} +- + + //-------------------------------------------------------------------------------- + // diff --git a/dev-python/pycxx/pycxx-6.2.3-r2.ebuild b/dev-python/pycxx/pycxx-6.2.3-r2.ebuild new file mode 100644 index 000000000000..415d9ef90568 --- /dev/null +++ b/dev-python/pycxx/pycxx-6.2.3-r2.ebuild @@ -0,0 +1,43 @@ +# Copyright 1999-2011 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-python/pycxx/pycxx-6.2.3-r2.ebuild,v 1.1 2011/04/09 19:55:11 arfrever Exp $ + +EAPI="3" +SUPPORT_PYTHON_ABIS="1" +RESTRICT_PYTHON_ABIS="*-jython" + +inherit eutils distutils + +DESCRIPTION="Set of facilities to extend Python with C++" +HOMEPAGE="http://cxx.sourceforge.net" +SRC_URI="mirror://sourceforge/cxx/${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-solaris" +IUSE="doc examples" + +PYTHON_MODNAME="CXX" + +src_prepare() { + epatch "${FILESDIR}/${P}-python-3.patch" + epatch "${FILESDIR}/${P}-installation.patch" + epatch "${FILESDIR}/${P}-python-3.2.patch" + + sed -e "/^#include/s:/Python[23]/:/:" -i CXX/*/*.hxx || die "sed failed" +} + +src_install() { + distutils_src_install + + if use doc; then + dohtml -r Doc/ || die "dohtml failed" + fi + + if use examples; then + docinto examples/python-2 + dodoc Demo/Python2/* || die "dodoc failed" + docinto examples/python-3 + dodoc Demo/Python3/* || die "dodoc failed" + fi +} |