Qt 5.13.2 and PyQt 5.14.9

Phil Thompson phil at riverbankcomputing.com
Tue Jun 27 15:32:25 BST 2023


Use the latest version of PyQt5.

Phil

On 27/06/2023 14:15, Albert Chin wrote:
> I built Qt 5.13.2 on RHEL 7/8/9 and wanted to build PyQt for it. So, I
> built sip-4.19.23 and PyQt5-5.13.2. sip built fine but I am
> running into the following when building PyQt5-5.13.2:
> 
> $ /opt/TWWfsw/python38/bin/python3 configure.py \
> --sip /opt/TWWfsw/libqt513/lib/python38/bin/sip \
> --sip-incdir /opt/TWWfsw/libqt513/lib/python38/include \
> --designer-plugindir /opt/TWWfsw/libqt513/lib/python38/plugins/designer 
> \
> --qml-plugindir /opt/TWWfsw/libqt513/lib/python38/plugins/qmlscene \
> --assume-shared --verbose --confirm-license \
> --bindir /opt/TWWfsw/libqt513/lib/python38/bin \
> --destdir /opt/TWWfsw/libqt513/lib/python38 \
> --sipdir /opt/TWWfsw/libqt513/lib/python38/share --no-qsci-api \
> INCDIR_QT=/opt/TWWfsw/libqt513/include/gcc49 \
> LIBDIR_QT=/opt/TWWfsw/libqt513/lib/gcc49
> ...
> g++ -c -m64 -pipe -O2 -std=gnu++11 -fno-exceptions -Wall -W
> -D_REENTRANT -fPIC -DSIP_PROTECTED_IS_PUBLIC -Dprotected=public
> -DPy_LIMITED_API=0x03040000 -DQT_NO_EXCEPTIONS -DQT_NO_DEBUG
> -DQT_PLUGIN -DQT_QUICK_LIB -DQT_GUI_LIB -DQT_QML_LIB -DQT_NETWORK_LIB
> -DQT_CORE_LIB -I. -I.
> -I../../../../TWWfsw/libqt513/lib/python38/include
> -I../../../../TWWfsw/python38/include/python3.8 -I../qpy/QtQuick
> -I../../../../TWWfsw/libqt513/include/gcc49
> -I../../../../TWWfsw/libqt513/include/gcc49/QtQuick
> -I../../../../TWWfsw/libqt513/include/gcc49/QtGui
> -I../../../../TWWfsw/libqt513/include/gcc49/QtQml
> -I../../../../TWWfsw/libqt513/include/gcc49/QtNetwork
> -I../../../../TWWfsw/libqt513/include/gcc49/QtCore -I.
> -I../../../../TWWfsw/libqt513/share/gcc49/mkspecs/linux-g++-64 -o
> sipQtQuickQSGGeometry.o sipQtQuickQSGGeometry.cpp
> /opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp: In
> function 'void assign_QSGGeometry(void*, Py_ssize_t, void*)':
> /opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp:940:59:
> error: use of deleted function 'QSGGeometry&
> QSGGeometry::operator=(const QSGGeometry&)'
>      {
>                                                            ^
> In file included from
> ../../../../TWWfsw/libqt513/include/gcc49/QtQuick/qsgnode.h:43:0,
>                  from
> ../../../../TWWfsw/libqt513/include/gcc49/QtQuick/qsgrendererinterface.h:43,
>                  from
> ../../../../TWWfsw/libqt513/include/gcc49/QtQuick/qquickwindow.h:44,
>                  from
> /opt/build/china/PyQt5-5.13.2/sip/QtQuick/qquickwindow.sip:26,
>                  from sipQtQuickQSGGeometry.cpp:24:
> ../../../../TWWfsw/libqt513/include/gcc49/QtQuick/qsggeometry.h:51:22:
> note: 'QSGGeometry& QSGGeometry::operator=(const QSGGeometry&)' is
> implicitly deleted because the default definition would be ill-formed:
>  class Q_QUICK_EXPORT QSGGeometry
>                       ^
> ../../../../TWWfsw/libqt513/include/gcc49/QtQuick/qsggeometry.h:51:22:
> error: non-static reference member 'const QSGGeometry::AttributeSet&
> QSGGeometry::m_attributes', can't use default assignment operator
> gmake[1]: *** [Makefile:7895: sipQtQuickQSGGeometry.o] Error 1
> 
> I tried sip-4.19.22 and PyQt5-5.13.2 built successfully. Attached is a
> diff of sipQtQuickQSGGeometry.cpp generated by 4.19.22 and 4.19.23. Is
> the above due to a bug in the changes made to 4.19.23? I also tried
> 4.19.24 and 4.19.25 and they fail the same way.
> 
> --
> albert chin (china at thewrittenword.com)
> 
> -- snip snip
> --- sipQtQuickQSGGeometry.cpp-4.19.22	2023-06-27 07:14:21.466166345 
> +0000
> +++ sipQtQuickQSGGeometry.cpp-4.19.23	2023-06-27 07:18:36.291919776 
> +0000
> @@ -1,7 +1,7 @@
>  /*
>   * Interface wrapper code.
>   *
> - * Generated by SIP 4.19.22
> + * Generated by SIP 4.19.23
>   *
>   * Copyright (c) 2019 Riverbank Computing Limited 
> <info at riverbankcomputing.com>
>   *
> @@ -85,7 +85,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_defaultAttributes_Point2D,
> doc_QSGGeometry_defaultAttributes_Point2D);
> 
>      return SIP_NULLPTR;
> @@ -110,7 +109,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_defaultAttributes_TexturedPoint2D,
> doc_QSGGeometry_defaultAttributes_TexturedPoint2D);
> 
>      return SIP_NULLPTR;
> @@ -135,7 +133,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_defaultAttributes_ColoredPoint2D,
> doc_QSGGeometry_defaultAttributes_ColoredPoint2D);
> 
>      return SIP_NULLPTR;
> @@ -162,7 +159,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_setDrawingMode, doc_QSGGeometry_setDrawingMode);
> 
>      return SIP_NULLPTR;
> @@ -189,7 +185,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_drawingMode, doc_QSGGeometry_drawingMode);
> 
>      return SIP_NULLPTR;
> @@ -222,7 +217,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_allocate,
> doc_QSGGeometry_allocate);
> 
>      return SIP_NULLPTR;
> @@ -249,7 +243,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_vertexCount, doc_QSGGeometry_vertexCount);
> 
>      return SIP_NULLPTR;
> @@ -276,7 +269,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_vertexData,
> doc_QSGGeometry_vertexData);
> 
>      return SIP_NULLPTR;
> @@ -303,7 +295,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_indexType,
> doc_QSGGeometry_indexType);
> 
>      return SIP_NULLPTR;
> @@ -330,7 +321,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_indexCount,
> doc_QSGGeometry_indexCount);
> 
>      return SIP_NULLPTR;
> @@ -357,7 +347,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_indexData,
> doc_QSGGeometry_indexData);
> 
>      return SIP_NULLPTR;
> @@ -384,7 +373,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_attributeCount, doc_QSGGeometry_attributeCount);
> 
>      return SIP_NULLPTR;
> @@ -409,13 +397,12 @@
>          sipRes = sipConvertToTypedArray((void *)sipCpp->attributes(),
>                  sipType_QSGGeometry_Attribute, "iiiI", sizeof
> (QSGGeometry::Attribute),
>                  sipCpp->attributeCount(), SIP_READ_ONLY);
> -#line 426 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> +#line 414 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> 
>              return sipRes;
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_attributes,
> doc_QSGGeometry_attributes);
> 
>      return SIP_NULLPTR;
> @@ -442,7 +429,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_sizeOfVertex, doc_QSGGeometry_sizeOfVertex);
> 
>      return SIP_NULLPTR;
> @@ -469,7 +455,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_updateRectGeometry, doc_QSGGeometry_updateRectGeometry);
> 
>      return SIP_NULLPTR;
> @@ -497,7 +482,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_updateTexturedRectGeometry,
> doc_QSGGeometry_updateTexturedRectGeometry);
> 
>      return SIP_NULLPTR;
> @@ -524,7 +508,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_setIndexDataPattern, doc_QSGGeometry_setIndexDataPattern);
> 
>      return SIP_NULLPTR;
> @@ -551,7 +534,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_indexDataPattern, doc_QSGGeometry_indexDataPattern);
> 
>      return SIP_NULLPTR;
> @@ -578,7 +560,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_setVertexDataPattern, doc_QSGGeometry_setVertexDataPattern);
> 
>      return SIP_NULLPTR;
> @@ -605,7 +586,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_vertexDataPattern, doc_QSGGeometry_vertexDataPattern);
> 
>      return SIP_NULLPTR;
> @@ -631,7 +611,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_markIndexDataDirty, doc_QSGGeometry_markIndexDataDirty);
> 
>      return SIP_NULLPTR;
> @@ -657,7 +636,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_markVertexDataDirty, doc_QSGGeometry_markVertexDataDirty);
> 
>      return SIP_NULLPTR;
> @@ -684,7 +662,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry, sipName_lineWidth,
> doc_QSGGeometry_lineWidth);
> 
>      return SIP_NULLPTR;
> @@ -711,7 +688,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_setLineWidth, doc_QSGGeometry_setLineWidth);
> 
>      return SIP_NULLPTR;
> @@ -735,13 +711,12 @@
>  #line 316 "/opt/build/china/PyQt5-5.13.2/sip/QtQuick/qsggeometry.sip"
>          sipRes = sipConvertToArray(sipCpp->indexDataAsUInt(), "I",
>                  sipCpp->indexCount(), 0);
> -#line 764 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> +#line 740 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> 
>              return sipRes;
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_indexDataAsUInt, doc_QSGGeometry_indexDataAsUInt);
> 
>      return SIP_NULLPTR;
> @@ -765,13 +740,12 @@
>  #line 322 "/opt/build/china/PyQt5-5.13.2/sip/QtQuick/qsggeometry.sip"
>          sipRes = sipConvertToArray(sipCpp->indexDataAsUShort(), "H",
>                  sipCpp->indexCount(), 0);
> -#line 795 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> +#line 770 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> 
>              return sipRes;
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_indexDataAsUShort, doc_QSGGeometry_indexDataAsUShort);
> 
>      return SIP_NULLPTR;
> @@ -796,13 +770,12 @@
>          sipRes = sipConvertToTypedArray(sipCpp->vertexDataAsPoint2D(),
>                  sipType_QSGGeometry_Point2D, "ff", sizeof
> (QSGGeometry::Point2D),
>                  sipCpp->vertexCount(), 0);
> -#line 827 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> +#line 801 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> 
>              return sipRes;
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_vertexDataAsPoint2D, doc_QSGGeometry_vertexDataAsPoint2D);
> 
>      return SIP_NULLPTR;
> @@ -827,13 +800,12 @@
>          sipRes = 
> sipConvertToTypedArray(sipCpp->vertexDataAsTexturedPoint2D(),
>                  sipType_QSGGeometry_TexturedPoint2D, "ffff",
>                  sizeof (QSGGeometry::TexturedPoint2D),
> sipCpp->vertexCount(), 0);
> -#line 859 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> +#line 832 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> 
>              return sipRes;
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_vertexDataAsTexturedPoint2D,
> doc_QSGGeometry_vertexDataAsTexturedPoint2D);
> 
>      return SIP_NULLPTR;
> @@ -858,13 +830,12 @@
>          sipRes = 
> sipConvertToTypedArray(sipCpp->vertexDataAsColoredPoint2D(),
>                  sipType_QSGGeometry_ColoredPoint2D, "ffbbbb",
>                  sizeof (QSGGeometry::ColoredPoint2D),
> sipCpp->vertexCount(), 0);
> -#line 891 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> +#line 863 
> "/opt/build/china/PyQt5-5.13.2/QtQuick/sipQtQuickQSGGeometry.cpp"
> 
>              return sipRes;
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_vertexDataAsColoredPoint2D,
> doc_QSGGeometry_vertexDataAsColoredPoint2D);
> 
>      return SIP_NULLPTR;
> @@ -891,7 +862,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_sizeOfIndex, doc_QSGGeometry_sizeOfIndex);
> 
>      return SIP_NULLPTR;
> @@ -918,7 +888,6 @@
>          }
>      }
> 
> -    /* Raise an exception if the arguments couldn't be parsed. */
>      sipNoMethod(sipParseErr, sipName_QSGGeometry,
> sipName_updateColoredRectGeometry,
> doc_QSGGeometry_updateColoredRectGeometry);
> 
>      return SIP_NULLPTR;
> @@ -936,6 +905,20 @@
>  }
> 
> 
> +extern "C" {static void assign_QSGGeometry(void *, SIP_SSIZE_T, void 
> *);}
> +static void assign_QSGGeometry(void *sipDst, SIP_SSIZE_T sipDstIdx,
> void *sipSrc)
> +{
> +    reinterpret_cast< ::QSGGeometry *>(sipDst)[sipDstIdx] =
> *reinterpret_cast< ::QSGGeometry *>(sipSrc);
> +}
> +
> +
> +extern "C" {static void *copy_QSGGeometry(const void *, SIP_SSIZE_T);}
> +static void *copy_QSGGeometry(const void *sipSrc, SIP_SSIZE_T 
> sipSrcIdx)
> +{
> +    return new  ::QSGGeometry(reinterpret_cast<const  ::QSGGeometry
> *>(sipSrc)[sipSrcIdx]);
> +}
> +
> +
>  extern "C" {static void dealloc_QSGGeometry(sipSimpleWrapper *);}
>  static void dealloc_QSGGeometry(sipSimpleWrapper *sipSelf)
>  {
> @@ -1117,9 +1100,9 @@
>      SIP_NULLPTR,
>  #endif
>      dealloc_QSGGeometry,
> +    assign_QSGGeometry,
>      SIP_NULLPTR,
> -    SIP_NULLPTR,
> -    SIP_NULLPTR,
> +    copy_QSGGeometry,
>      release_QSGGeometry,
>      SIP_NULLPTR,
>      SIP_NULLPTR,


More information about the PyQt mailing list