Add patch for qreal/float support in ARM wrt bug 322349
authorTomás Touceda <chiiph@gentoo.org>
Wed, 16 Jun 2010 01:41:45 +0000 (01:41 +0000)
committerTomás Touceda <chiiph@gentoo.org>
Wed, 16 Jun 2010 01:41:45 +0000 (01:41 +0000)
Package-Manager: portage-2.2_rc67/cvs/Linux i686

dev-python/PyQt4/ChangeLog
dev-python/PyQt4/Manifest
dev-python/PyQt4/PyQt4-4.7.3.ebuild
dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch [new file with mode: 0644]
dev-python/cgal-python/Manifest

index d7971ece075f33eeed804eecc7ceecde76a252eb..274fd63499707a16bb4a0334609cac99a30cd59f 100644 (file)
@@ -1,6 +1,10 @@
 # ChangeLog for dev-python/PyQt4
 # Copyright 1999-2010 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/PyQt4/ChangeLog,v 1.117 2010/06/03 15:48:38 phajdan.jr Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/PyQt4/ChangeLog,v 1.118 2010/06/16 01:41:45 chiiph Exp $
+
+  16 Jun 2010; Tomas Touceda <chiiph@gentoo.org> PyQt4-4.7.3.ebuild,
+  +files/PyQt4-4.7.3-qreal_float_support.patch:
+  Add patch for qreal/float support in ARM wrt bug 322349
 
   03 Jun 2010; Pawel Hajdan jr <phajdan.jr@gentoo.org> PyQt4-4.7.3.ebuild:
   x86 stable wrt bug 315775
index 5d0fc2ba4e01f8be1bb32196bab1f1cfeaa7d885..deb9976cd50eeb74080ec9e3e0524f5cd9f4313a 100644 (file)
@@ -1,6 +1,7 @@
 AUX PyQt4-4.5.4-qgraphicslinearlayout-fix.patch 572 RMD160 81e80c650ef118a7fe9b1a0c581117774552daa7 SHA1 90980166dbe91f4b8e32b82736c92761547c2126 SHA256 b489794c26b1884971dc4bebaec3a625a1827df7b9532965b321ba2c00472562
 AUX PyQt4-4.6.1-configure-multilib.patch 883 RMD160 4ce96cdf4d53773c245544737c894c2494e9de29 SHA1 d0c9b214172b47537873e3fc1bd5fb34e815220c SHA256 6b33666a0b773122330d33a1b88ddd3b18d2d3b2c265e3fd4edc253f1bdfab1a
 AUX PyQt4-4.7.2-configure.py.patch 933 RMD160 1c9525855d47bcdbf0c88618294be44274ce653b SHA1 4b27ab9173692a9d74598dc7c7fc88c3531e09b5 SHA256 1a87c58ccb14441f77c7c764b6e6c40d1bdd64c5b35581f3deda54019a3461be
+AUX PyQt4-4.7.3-qreal_float_support.patch 6460 RMD160 f022dc75ccde5b923c689f82d169d02e8b066a19 SHA1 2e000133b482f5bb36a5795e375bfa3f60dd5c55 SHA256 8183d7a12c094d02eb4f1ac2b983690c39ee54182a0d28adba52348f705e9c16
 AUX configure-4.6.1.py.patch 1409 RMD160 f8a2b0c92fc53756679cff39d366b34cfb5b6d72 SHA1 c2cb0478de7d4f29c4db656f824b4dfce742209d SHA256 c80ecf0323ba47e14ac7e9941cf640a6ae552ad558001984097a8a33861028bd
 AUX configure.py.patch 1727 RMD160 31802058d0b0488264cdbcfeebd7ce9aff250957 SHA1 df4fee27f1486422b25d0072cfc388b207814c8f SHA256 06ee44a9fe43615b6bfada4aa7294303c016fd7c378ddf537823e33546306926
 DIST PyQt-x11-gpl-4.5.4.tar.gz 6970552 RMD160 0f7a48edb65116c8fb23357f66d164ff1fe48684 SHA1 be8b01b8b2343a6a85f18d16f10bc549e88265d6 SHA256 b3d06c7bda701055769add93b48103ee35c6fc9a4b00c67599cb426f9efda5a8
@@ -11,7 +12,7 @@ DIST PyQt-x11-gpl-4.7.tar.gz 7888435 RMD160 bddf2b4d668733a7a6bbb179dd986b5f8275
 EBUILD PyQt4-4.5.4-r4.ebuild 4004 RMD160 12533cb11dbcc3ad71fc08e53ea00c0a90ba7ef8 SHA1 70359bf705d8a5c379562239ea9ea0a41452d3da SHA256 353ce0d264c35b684bdd2f9ca876ac76a2b0aadf010b56e0ad03697cb507bc8b
 EBUILD PyQt4-4.6.2.ebuild 4025 RMD160 47ba49049478e52969db91376cdc22173d284cd7 SHA1 5705b8cf534fcbc0f066c709851c616e1a35fe43 SHA256 e3fadf2cfe5a87bdfc66038ddaf28e0b6f4970cd86445a36a608f4054a94461b
 EBUILD PyQt4-4.7.2.ebuild 4522 RMD160 c5311daf946a59539a09e881bf0c6592ecdf2e03 SHA1 62b2696965c11ee2eb6b8bf6cf8340ae9a123b32 SHA256 2da5f3deb7fdd598ca0601664367d64635cb74a6a665cd4d030af42171feddd1
-EBUILD PyQt4-4.7.3.ebuild 4521 RMD160 351f33721bfdcae41682723d5950f202b2096455 SHA1 3ff47a221f7390debbc07591464030cc6ee29617 SHA256 194564eca360a262188011f930a36f1b5df037651a61c3c9bfdf21e30bb1c053
+EBUILD PyQt4-4.7.3.ebuild 4648 RMD160 9644a5aafe2938c5cc7414c696710cdeaa1af975 SHA1 58679b4d82b95ad2dcce75682f72a0af143cb7db SHA256 c7704a8f3f0b6bb7d3f6579f722aa42a7d4486f757a3a5d54d46f54471821b6d
 EBUILD PyQt4-4.7.ebuild 4521 RMD160 ad65e74cc548e948b30a8f351ec5cc6c093303f3 SHA1 c455c022244deda7ef8bbe3eaba1e6d31b7e93cb SHA256 a01e9535a585f0eb7bee8a97b1254c11686f59653454f84a3126cecf9bc7a160
-MISC ChangeLog 15942 RMD160 f20576d8f04fcce7f1f1d42325ef3cb07b8a39ce SHA1 4300f54c37b33f56ca3e2a5d91f7b238f24b4ea2 SHA256 481b28bfa67dcca63597315a8033891b5f06d209b64c592fa83cfae372e5b458
+MISC ChangeLog 16114 RMD160 e70dd8837704f072fa11d70a77e882af12fd39e7 SHA1 05e0e9fba492133548ecc963e6156220b43be729 SHA256 32888ebf4861275a4dc1ea0bcf4fb3014ee5ce1e4e07cad37c6a53147f3e1019
 MISC metadata.xml 846 RMD160 9ebdd502e44dac1e93f95e60936ad7871be6ed1c SHA1 2731e0ad5e11b9f0e4089cd9d9e2b342b6103c09 SHA256 6a481f4cc08dcb57f2b7bb0cc3d6944aa281fd3bc7a3aa586aa50372323b838c
index 37be6d86c99915779791bb6e318979e1a7be970b..7185b44a46af1a0903ea8f53cfc1b9168d84d89f 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2010 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/dev-python/PyQt4/PyQt4-4.7.3.ebuild,v 1.4 2010/06/03 15:48:38 phajdan.jr Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-python/PyQt4/PyQt4-4.7.3.ebuild,v 1.5 2010/06/16 01:41:45 chiiph Exp $
 
 EAPI="2"
 PYTHON_EXPORT_PHASE_FUNCTIONS="1"
@@ -58,6 +58,10 @@ src_prepare() {
                        "${S}"/configure.py || die
        fi
 
+       # Patch to support qreal for arm architecture
+       # wrt bug #322349
+       use arm && epatch "${FILESDIR}/${P}-qreal_float_support.patch"
+
        qt4-r2_src_prepare
 
        # Use proper include dir
diff --git a/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch b/dev-python/PyQt4/files/PyQt4-4.7.3-qreal_float_support.patch
new file mode 100644 (file)
index 0000000..958fe56
--- /dev/null
@@ -0,0 +1,254 @@
+#! /bin/sh /usr/share/dpatch/dpatch-run
+## 03_qreal_float_support.dpatch by Michael Casadevall <sonicmctails@gmail.com>
+##
+## DP: Corrects a configure test, and adds explicate double handling
+##     to qlist.sip on architectures where qreal != double
+
+@DPATCH@
+Index: python-qt4-4.7.2/configure.py
+===================================================================
+--- python-qt4-4.7.2.orig/configure.py 2010-03-17 19:29:19.000000000 +0100
++++ python-qt4-4.7.2/configure.py      2010-03-25 23:53:55.468631945 +0100
+@@ -1915,8 +1915,9 @@
+     out << "PyQt_NoOpenGLES\\n";
+ #endif
+ 
+-    if (sizeof (qreal) != sizeof (double))
++#if defined(QT_NO_FPU) || defined(QT_ARCH_ARM) || defined(QT_ARCH_WINDOWSCE)
+         out << "PyQt_qreal_double\\n";
++#endif
+ 
+     return 0;
+ }
+Index: python-qt4-4.7.2/sip/QtCore/qlist.sip
+===================================================================
+--- python-qt4-4.7.2.orig/sip/QtCore/qlist.sip 2010-03-17 19:29:26.000000000 +0100
++++ python-qt4-4.7.2/sip/QtCore/qlist.sip      2010-03-25 23:53:55.468631945 +0100
+@@ -749,3 +749,227 @@
+     return sipGetState(sipTransferObj);
+ %End
+ };
++
++// If we're on an architecture where qreal != double, then we need to also
++// explicately handle doubles. On architectures where qreal == double, they
++// will automaticially be cast upwards
++
++%If (!PyQt_qreal_double)
++
++%If (Qt_4_3_0 -)
++// QList<QPair<double, double> > is implemented as a Python list of 2-element tuples.
++%MappedType QList<QPair<double, double> >
++{
++%TypeHeaderCode
++#include <qlist.h>
++#include <qpair.h>
++%End
++
++%ConvertFromTypeCode
++    // Create the list.
++    PyObject *l;
++
++    if ((l = PyList_New(sipCpp->size())) == NULL)
++        return NULL;
++
++    // Set the list elements.
++    for (int i = 0; i < sipCpp->size(); ++i)
++    {
++        const QPair<double, double> &p = sipCpp->at(i);
++        PyObject *pobj;
++
++        if ((pobj = Py_BuildValue((char *)"dd", p.first, p.second)) == NULL)
++        {
++            Py_DECREF(l);
++
++            return NULL;
++        }
++
++        PyList_SET_ITEM(l, i, pobj);
++    }
++
++    return l;
++%End
++
++%ConvertToTypeCode
++    SIP_SSIZE_T len;
++
++    // Check the type if that is all that is required.
++    if (sipIsErr == NULL)
++    {
++        if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
++            return 0;
++
++        for (SIP_SSIZE_T i = 0; i < len; ++i)
++        {
++            PyObject *tup = PySequence_ITEM(sipPy, i);
++
++            if (!PySequence_Check(tup) || PySequence_Size(tup) != 2)
++                return 0;
++        }
++
++        return 1;
++    }
++
++    QList<QPair<double, double> > *ql = new QList<QPair<double, double> >;
++    len = PySequence_Size(sipPy);
++ 
++    for (SIP_SSIZE_T i = 0; i < len; ++i)
++    {
++        PyObject *tup = PySequence_ITEM(sipPy, i);
++
++        double first = PyFloat_AsDouble(PySequence_ITEM(tup, 0));
++        double second = PyFloat_AsDouble(PySequence_ITEM(tup, 1));
++ 
++        ql->append(QPair<double, double>(first, second));
++    }
++ 
++    *sipCppPtr = ql;
++ 
++    return sipGetState(sipTransferObj);
++%End
++};
++%End
++%If (Qt_4_3_0 -)
++// QList<QPair<double, TYPE> > is implemented as a Python list of 2-element tuples.
++template<double, TYPE>
++%MappedType QList<QPair<double, TYPE> >
++{
++%TypeHeaderCode
++#include <qlist.h>
++#include <qpair.h>
++%End
++
++%ConvertFromTypeCode
++    // Create the list.
++    PyObject *l;
++
++    if ((l = PyList_New(sipCpp->size())) == NULL)
++        return NULL;
++
++    // Set the list elements.
++    for (int i = 0; i < sipCpp->size(); ++i)
++    {
++        const QPair<double, TYPE> &p = sipCpp->at(i);
++        TYPE *t = new TYPE(p.second);
++        PyObject *pobj;
++
++        if ((pobj = sipBuildResult(NULL, "(dB)", p.first, t, sipClass_TYPE, sipTransferObj)) == NULL)
++        {
++            Py_DECREF(l);
++            delete t;
++
++            return NULL;
++        }
++
++        PyList_SET_ITEM(l, i, pobj);
++    }
++
++    return l;
++%End
++
++%ConvertToTypeCode
++    SIP_SSIZE_T len;
++
++    // Check the type if that is all that is required.
++    if (sipIsErr == NULL)
++    {
++        if (!PySequence_Check(sipPy) || (len = PySequence_Size(sipPy)) < 0)
++            return 0;
++
++        for (SIP_SSIZE_T i = 0; i < len; ++i)
++        {
++            PyObject *tup = PySequence_ITEM(sipPy, i);
++
++            if (!PySequence_Check(tup) || PySequence_Size(tup) != 2)
++                return 0;
++
++            if (!sipCanConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, SIP_NOT_NONE))
++                return 0;
++        }
++
++        return 1;
++    }
++
++    QList<QPair<double, TYPE> > *ql = new QList<QPair<double, TYPE> >;
++    len = PySequence_Size(sipPy);
++ 
++    for (SIP_SSIZE_T i = 0; i < len; ++i)
++    {
++        PyObject *tup = PySequence_ITEM(sipPy, i);
++        double d;
++        int state;
++
++        d = PyFloat_AsDouble(PySequence_ITEM(tup, 0));
++        TYPE *t = reinterpret_cast<TYPE *>(sipConvertToInstance(PySequence_ITEM(tup, 1), sipClass_TYPE, sipTransferObj, SIP_NOT_NONE, &state, sipIsErr));
++ 
++        if (*sipIsErr)
++        {
++            sipReleaseInstance(t, sipClass_TYPE, state);
++
++            delete ql;
++            return 0;
++        }
++
++        ql->append(QPair<double, TYPE>(d, *t));
++
++        sipReleaseInstance(t, sipClass_TYPE, state);
++    }
++ 
++    *sipCppPtr = ql;
++ 
++    return sipGetState(sipTransferObj);
++%End
++};
++%End
++
++// QList<double> is implemented as a Python list of doubles.
++%MappedType QList<double>
++{
++%TypeHeaderCode
++#include <qlist.h>
++%End
++
++%ConvertFromTypeCode
++    // Create the list.
++    PyObject *l;
++
++    if ((l = PyList_New(sipCpp->size())) == NULL)
++        return NULL;
++
++    // Set the list elements.
++    for (int i = 0; i < sipCpp->size(); ++i)
++    {
++        PyObject *pobj;
++
++        if ((pobj = PyFloat_FromDouble(sipCpp->value(i))) == NULL)
++        {
++            Py_DECREF(l);
++
++            return NULL;
++        }
++
++        PyList_SET_ITEM(l, i, pobj);
++    }
++
++    return l;
++%End
++
++%ConvertToTypeCode
++    // Check the type if that is all that is required.
++    if (sipIsErr == NULL)
++        return (PySequence_Check(sipPy) && PySequence_Size(sipPy) >= 0);
++
++    QList<double> *ql = new QList<double>;
++    SIP_SSIZE_T len = PySequence_Size(sipPy);
++ 
++    for (SIP_SSIZE_T i = 0; i < len; ++i)
++        ql->append(PyFloat_AsDouble(PySequence_ITEM(sipPy, i)));
++ 
++    *sipCppPtr = ql;
++ 
++    return sipGetState(sipTransferObj);
++%End
++};
++
++%End
index 23eef175515002015e4fa6cb90df3ec4be57ed29..b3c4bfd9b43e60791ad0941e910bd4499cf2ccf6 100644 (file)
@@ -1,5 +1,5 @@
 AUX cgal-python-0.9.4_beta1-linking.patch 7106 RMD160 1e26eb5d4e521b848221f954c5d834bef9eac46c SHA1 0c165b90b9ec9435d51941b1d7e91be6a64ae107 SHA256 b84955d1335b79fc35a3e08883b13706783103c386929dfcd74bf1b71381f335
 DIST cgal-python-0.9.4-beta1.tgz 145677 RMD160 e6288d3257f19d7313ea2f05e7edcfcb771fc303 SHA1 dea8cbb418d3998fa64032594cfdcf1665d54455 SHA256 fad61d54dd57309ae7877fc9ef94085935baf5c22d1d2ee85c8c8e319c60f8c8
-EBUILD cgal-python-0.9.4_beta1.ebuild 1489 RMD160 50984c5dc9093ef0d4910edac34d8fcac4e816b3 SHA1 95e4cd5bf58ff88375a44290ecf7e2851a40eede SHA256 860f595778bfe32e329f4281840798262d4906e8c0e9f3cafa84ce20f8e4bd91
-MISC ChangeLog 976 RMD160 ede8d682761221ea653ec3e739e467f7b68a7225 SHA1 1c5cbef86ff009d05dea3a6e996492fd0d3a0a0d SHA256 7b749f57df96c0af7d49a381618641cc05ae1e69757b1d720ff1834bf275c290
+EBUILD cgal-python-0.9.4_beta1.ebuild 1401 RMD160 e687a5888dd5485931ffdd6aff1086dd852903ae SHA1 2a417e52074d656303c7de4f894da8dea5581f33 SHA256 8a3e11bae04322b4e10ce24a54d44d1cc21f1485cd2c9160e5988b0330d0aa4c
+MISC ChangeLog 1129 RMD160 b1d30bad82ef05b5826c939225dcc1fcf4fe1785 SHA1 30709b58f34c83a0b72f37829eebc5fbcc03cef9 SHA256 9aaf4ab3a4dafbf4938270b61b77c531e57934f69ea18eb63d25f4876b2b190d
 MISC metadata.xml 169 RMD160 e1db75ae5d177dffc400468c7d76a7e1fe41876d SHA1 0c953712f9b97d5ab3f95ae71997ffbc96c4007d SHA256 36837b011d26f0b83477c7a8632cb0099aedbcba5a3e45c61f20292e079f6180