[pyqtdeploy] Failing at building the demo

umbertofilippo umbertofilippo at tiscali.it
Sat Mar 9 13:38:31 GMT 2024


Hello everyone,


just a quick update: I did the KC's three lines trick and it did the job.

I am now stuck at yet another error, which is

Generating the Makefiles...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake 
-recursive PyQt5.pro
sip-install: 
'/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake 
-recursive PyQt5.pro' failed returning 3
Info: creating stash file /tmp/tmphwkq3ix1/.qmake.stash
Reading /tmp/tmphwkq3ix1/QtCore/QtCore.pro
Reading /tmp/tmphwkq3ix1/QtNetwork/QtNetwork.pro
Reading /tmp/tmphwkq3ix1/QtGui/QtGui.pro
Reading /tmp/tmphwkq3ix1/QtWidgets/QtWidgets.pro
Reading /tmp/tmphwkq3ix1/QtX11Extras/QtX11Extras.pro
Project ERROR: Unknown module(s) in QT: x11extras
pyqtdeploy-sysroot: execution of 'sip-install' failed: returned exit code 1


I am attaching the whole log again in case it's useful to better 
understand what went wrong.


Any idea how to move on from here?


Sorry for spamming but I hope this thread not only will fix my issues 
but also will serve as a reference for building with a Linux machine (or 
me and for others hopefully).


Umberto


On 3/8/24 20:32, Kaiser Chief wrote:
> Hi,
>
> "qt-everywhere-opensource-src-5.15.10.tar.xz" is the right file you 
> are looking for.
>
> Unfortunately, "pyqtdeploy/sysroot/plugins/Qt.py" is looking for 
> 'qt-everywhere-src-{}.tar.xz'
>
> You could fix that line (#53) in "pyqtdeploy/sysroot/plugins/Qt.py"with:
> ` qt-everywhere-opensource-src-{}.tar.xz `
>
> However, you might encounter problems down the line probably...
>
> I would recommend to stick with Qt5.15.2 and do necessary changes.
> Alternatively, you could built 
> qt-everywhere-opensource-src-5.15.10.tar.xz from source manually and 
> tell pyqtdeploy where to look for Qt install (but that's a bit more 
> painful).
>
>
> Best regards,
>
> KC
>
> Le ven. 8 mars 2024 à 19:21, umbertofilippo 
> <umbertofilippo at tiscali.it> a écrit :
>
>     Thanks again for the feedback,
>
>
>     I have just tried to update the sysroot.toml like this:
>
>
>     # Qt
>     ##########################################################################
>
>     [Qt]
>     version = "5.15.10" # original was "5.15.2"
>     edition = "opensource"
>
>     and now it seems the link to download the qt source can no longer
>     be found.
>
>
>     Qt: installing component...
>     Qt: looking for 'qt-everywhere-src-5.15.10.tar.xz' in
>     /home/umberto/games/python/pyqt-demo.
>     Qt: downloading 'qt-everywhere-src-5.15.10.tar.xz' from
>     https://download.qt.io/archive/qt/5.15/5.15.10/single/...
>     Qt:
>     'https://download.qt.io/archive/qt/5.15/5.15.10/single/qt-everywhere-src-5.15.10.tar.xz'
>     was not found.
>     pyqtdeploy-sysroot: Qt: unable to find
>     '/home/umberto/.pyqtdeploy/cache/qt-everywhere-src-5.15.10.tar.xz'.
>
>
>     The only similar thing I can see in
>     https://download.qt.io/archive/qt/5.15/5.15.10/single/ is
>     "qt-everywhere-opensource-src-5.15.10.tar.xz"
>
>
>     If there is no easy way to solve this you can think of I will
>     probably try to test adding those 3 lines to
>     qtbase/src/corelib/global/qglobal.h
>
>
>     Thanks again so much for your kind and feedback, much appreciated!
>
>
>     Umberto
>
>
>     On 3/8/24 19:38, Kaiser Chief wrote:
>>     To complement Charles' answer, it seems like someone found a
>>     quick fix with GCC11, in case you are reluctant to move back to
>>     GCC10:
>>     https://forum.qt.io/topic/136672/error-installing-qt-everywhere-src-5-15-2-on-ubuntu-22-04/2
>>
>>
>>     add these 3 lines at the top of
>>     qtbase/src/corelib/global/qglobal.h : (I haven't tested that)
>>     ```
>>     #ifdef __cplusplus
>>     #include <limits>
>>     #endif
>>     ```
>>
>>     For ref, the QT bug associated is:
>>     https://bugreports.qt.io/browse/QTBUG-90395
>>     It has been fixed for ** QT5.15.9
>>     <https://bugreports.qt.io/issues/?jql=project+%3D+QTBUG+AND+fixVersion+%3D+5.15.9>,
>>     but since you are using the default QT5.15.2, well it's not fixed.
>>
>>     Best regards,
>>
>>     KC
>>
>>     Le ven. 8 mars 2024 à 18:28, Charles <peacech at gmail.com> a écrit :
>>
>>         With C++ the relevant error is the first error line, the rest
>>         is usually noise. If you google gcc numeric_limits is not a
>>         class template you will find https://bugs.gentoo.org/768342
>>
>>         If you use gcc 11 then use gcc 10 otherwise patch qt headers
>>         as in
>>         https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=92d54be896563102786238893a9c645b8bdb43ef
>>
>>         On Sat, Mar 9, 2024 at 12:49 AM umbertofilippo
>>         <umbertofilippo at tiscali.it> wrote:
>>
>>             Moving on,
>>
>>
>>             I have tried to remove OpenSSL from the "sysroot.toml"
>>             since it is not required, and now the process seems to go
>>             further, but I am stuck at a new error:
>>
>>
>>             Verifying host architecture 'linux-64'...
>>             Verifying target architecture 'linux-64'...
>>             zlib: verifying...
>>             Qt: verifying...
>>             Python: verifying...
>>             SIP: verifying...
>>             PyQt: verifying...
>>             PyQt3D: verifying...
>>             PyQtChart: verifying...
>>             PyQtDataVisualization: verifying...
>>             PyQtNetworkAuth: verifying...
>>             PyQtPurchasing: verifying...
>>             QScintilla: verifying...
>>             zlib: installing component...
>>             Qt: installing component...
>>             Qt: downloading 'qt-everywhere-src-5.15.2.tar.xz' from
>>             https://download.qt.io/archive/qt/5.15/5.15.2/single/...
>>             pyqtdeploy-sysroot: execution of './configure' failed:
>>             returned exit code 2
>>
>>
>>             What can be the cause of this new error? I see there is a
>>             new folder now in the original pyqt demo directory called
>>             "sysroot-linux-64" and inside I see there's
>>             "sysroot-linux-64/build/qt-everywhere-src-5.15.2" with a
>>             "configure" file, but other than this I have no clue
>>             sincerely on why it is failing.
>>
>>
>>             I have attached the content of running build-demo.py with
>>             --verbose
>>
>>
>>             Hope someone can help me. Thanks.
>>
>>
>>             On 3/8/24 12:18, umbertofilippo wrote:
>>>
>>>             Hi and many thanks for you feedback!
>>>
>>>
>>>             First of all let me tell that I am very interested in
>>>             finding a solution to this problem, and I will try to do
>>>             my best if I can contribute in case it's needed.
>>>
>>>
>>>             I just checked, and this is what I can see in my
>>>             /usr/include/openssl/opensslv.h file. Cannot tell though
>>>             if pyqtdeploy is supposed to work or not given these
>>>             lines...
>>>
>>>
>>>             /*
>>>              * SECTION 4: BACKWARD COMPATIBILITY
>>>              */
>>>
>>>             # define OPENSSL_VERSION_TEXT "OpenSSL 3.0.2 15 Mar 2022"
>>>
>>>             /* Synthesize OPENSSL_VERSION_NUMBER with the layout
>>>             0xMNN00PPSL */
>>>             # ifdef OPENSSL_VERSION_PRE_RELEASE
>>>             #  define _OPENSSL_VERSION_PRE_RELEASE 0x0L
>>>             # else
>>>             #  define _OPENSSL_VERSION_PRE_RELEASE 0xfL
>>>             # endif
>>>             # define OPENSSL_VERSION_NUMBER          \
>>>                 ( (OPENSSL_VERSION_MAJOR<<28)        \
>>>             |(OPENSSL_VERSION_MINOR<<20)       \
>>>             |(OPENSSL_VERSION_PATCH<<4)        \
>>>                   |_OPENSSL_VERSION_PRE_RELEASE )
>>>
>>>             # ifdef  __cplusplus
>>>             }
>>>             # endif
>>>
>>>             # include <openssl/macros.h>
>>>             # ifndef OPENSSL_NO_DEPRECATED_3_0
>>>             #  define HEADER_OPENSSLV_H
>>>             # endif
>>>
>>>             #endif
>>>
>>>
>>>             Umberto
>>>
>>>
>>>             On 3/7/24 19:11, Kaiser Chief wrote:
>>>>             Hi,
>>>>
>>>>             To complement my previous message (and after doing a
>>>>             quick search through the source code):
>>>>             * The script "OpenSSL.py" is looking for
>>>>             "OPENSSL_VERSION_NUMBER" in
>>>>             "/usr/include/openssl/opensslv.h"
>>>>             * In OpenSSL 1.1.1 (which is installed on my Linux), I
>>>>             can see the line "#define OPENSSL_VERSION_NUMBER" in 
>>>>             "/usr/include/openssl/opensslv.h".
>>>>
>>>>             Can you check that you have that line in your header
>>>>             file too?
>>>>
>>>>             If not, it's probably that OpenSSL updated their header
>>>>             files and put the VERSION_NUMBER somewhere else...
>>>>
>>>>             If you want to run the demo, I would recommend you
>>>>             install the default versions as written in the
>>>>             `sysroot.toml`
>>>>
>>>>             If there are fixes to make for each "version grepping",
>>>>             I believe that Phil had a way to contribute to plugins
>>>>             for pyqtdeploy, but can't remember where...
>>>>
>>>>             Best regards,
>>>>
>>>>             KC
>>>>
>>>>             Le jeu. 7 mars 2024 à 17:56, Kaiser Chief
>>>>             <kaiser.chiefmail at gmail.com> a écrit :
>>>>
>>>>                 Hi,
>>>>
>>>>                 According to the sysroot help page
>>>>                 (https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/sysroot.html#openssl),
>>>>                 if you have configured your `sysroot.toml` like this:
>>>>                 ```
>>>>
>>>>                 [OpenSSL.linux]
>>>>                 version  =  ""
>>>>                 install_from_source  =  false
>>>>
>>>>                 ```
>>>>
>>>>                 Then, on Linux, the OpenSSL library used will be
>>>>                 the one installed on your OS with no assumption on
>>>>                 the version (so that should work in your example).
>>>>                 Now, that's what is provided in the demo folder for
>>>>                 `pyqtdeploy-3.3.0`, so that's odd.
>>>>
>>>>                 Therefore, it could be that the
>>>>                 `pyqtdeploy-sysroot` functionality is struggling to
>>>>                 extract the version number from your OS-installed
>>>>                 OpenSSL.
>>>>
>>>>                 ---
>>>>
>>>>                 I am not of great help with that comment, however,
>>>>                 I would like to suggest, if it's your first time
>>>>                 with pyqtdeploy to give a try at my Github repo:
>>>>
>>>>                 https://github.com/achille-martin/pyqt-crom
>>>>
>>>>                 This repo aims at demonstrating how beginner devs,
>>>>                 intermediate devs and expert devs can benefit from
>>>>                 pyqtdeploy.
>>>>                 It also offers a few simple tutorials to get
>>>>                 started with pyqtdeploy (simpler than the demo in
>>>>                 the official pyqtdeploy package) and optimises bits
>>>>                 of the tool regarding the user interface (for now).
>>>>
>>>>                 I can support you with your initial journey on
>>>>                 discovering pyqtdeploy through my repo if you wish.
>>>>
>>>>                 Best regards,
>>>>
>>>>                 KC
>>>>
>>>>                 Le jeu. 7 mars 2024 à 17:06, umbertofilippo
>>>>                 <umbertofilippo at tiscali.it> a écrit :
>>>>
>>>>                     Hello everyone, first time here for me :)
>>>>
>>>>
>>>>                     I was giving pyqtdeploy a try and I am stuck at
>>>>                     the very first step of
>>>>                     the "Building the Demo" page.
>>>>
>>>>
>>>>                     I am on a Linux-64 machine. I am following the
>>>>                     tutorial at
>>>>                     https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/demo.html
>>>>                     and
>>>>                     I have downloaded the demo files from
>>>>                     https://files.pythonhosted.org/packages/44/d4/978017382f0ecc48601944c3fc0f58a5c5075a1d3acd48d09c11ee471b05/pyqtdeploy-3.3.0.tar.gz
>>>>
>>>>
>>>>                     I have created a virtual python environment
>>>>                     with the following packages
>>>>                     and versions installed:
>>>>
>>>>                     Name,Version
>>>>                     _libgcc_mutex,0.1
>>>>                     _openmp_mutex,4.5
>>>>                     bzip2,1.0.8
>>>>                     ca-certificates,2024.2.2
>>>>                     ld_impl_linux-64,2.40
>>>>                     libexpat,2.6.1
>>>>                     libffi,3.4.2
>>>>                     libgcc-ng,13.2.0
>>>>                     libgomp,13.2.0
>>>>                     libnsl,2.0.1
>>>>                     libsqlite,3.45.1
>>>>                     libuuid,2.38.1
>>>>                     libxcrypt,4.4.36
>>>>                     libzlib,1.2.13
>>>>                     ncurses,6.4
>>>>                     openssl,3.2.1
>>>>                     pip,24.0
>>>>                     pyqt5,5.15.10
>>>>                     pyqt5-qt5,5.15.2
>>>>                     pyqt5-sip,12.13.0
>>>>                     pyqtdeploy,3.3.0
>>>>                     python,3.12.2
>>>>                     readline,8.2
>>>>                     setuptools,69.1.1
>>>>                     tk,8.6.13
>>>>                     toml,0.10.2
>>>>                     tzdata,2024a
>>>>                     wheel,0.42.0
>>>>                     xz,5.2.6
>>>>
>>>>                     I have tried to run the command "python
>>>>                     build-demo.py" straight away,
>>>>                     but I am getting the following error:
>>>>
>>>>                     OpenSSL: verifying...
>>>>                     OpenSSL: determining installed version from
>>>>                     '/usr/include/openssl/opensslv.h'.
>>>>                     pyqtdeploy-sysroot: OpenSSL: unable to extract
>>>>                     the version number.
>>>>
>>>>
>>>>                     OpenSSL is installed on my machine and the
>>>>                     result of doing "openssl
>>>>                     version" is "OpenSSL 3.2.1 30 Jan 2024
>>>>                     (Library: OpenSSL 3.2.1 30 Jan 2024)"
>>>>
>>>>
>>>>                     Am I supposed to install the exact versions of
>>>>                     all the components found
>>>>                     in the ""sysroot.toml" file to be able to
>>>>                     run "python build-demo.py"
>>>>                     successfully?
>>>>
>>>>
>>>>                     Thanks,
>>>>
>>>>
>>>>                     Umberto
>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.riverbankcomputing.com/pipermail/pyqt/attachments/20240309/93b93679/attachment-0001.htm>
-------------- next part --------------
Running 'make install'.
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake -install qinstall libsip.a /home/umberto/games/python/pyqt-demo/sysroot-linux-64/lib/python3.11/site-packages/PyQt5/libsip.a
PyQt: installing component...
PyQt: looking for 'pyqt-commercial.sip' in /home/umberto/games/python/pyqt-demo.
PyQt: looking for 'PyQt5-5.15.7.tar.gz' in /home/umberto/games/python/pyqt-demo.
PyQt: reading 'https://pypi.org/project/PyQt5/5.15.7/'.
PyQt: downloading 'PyQt5-5.15.7.tar.gz' from https://files.pythonhosted.org/packages/e1/57/2023316578646e1adab903caab714708422f83a57f97eb34a5d13510f4e1/...
PyQt: downloaded 'https://files.pythonhosted.org/packages/e1/57/2023316578646e1adab903caab714708422f83a57f97eb34a5d13510f4e1/PyQt5-5.15.7.tar.gz'.
PyQt: copying /home/umberto/.pyqtdeploy/cache/PyQt5-5.15.7.tar.gz to /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build.
PyQt: unpacking 'PyQt5-5.15.7.tar.gz'.
Running 'sip-install --qmake /home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake --no-distinfo --concatenate 2 --no-docstrings --verbose'.
pyproject.toml: line 5: using '[tool.sip.metadata]' to specify the project metadata is deprecated and will be removed in SIP v7.0.0, use '[project]' instead
Querying qmake about your Qt installation...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake -query
This is the GPL version of PyQt 5.15.7 (licensed under the GNU General Public License) for Python 3.10.13 on linux.
Found the license file 'pyqt-gpl.sip'.
These bindings will be built: QtCore, QtNetwork, QtGui, QtWidgets, QtX11Extras.
Generating the QtCore bindings...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/QtCoremod.sip: line 66: '%Plugin' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 118: '%BIGetReadBufferCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 131: '%BIGetSegCountCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 138: '%BIGetCharBufferCode' is deprecated and will be removed in SIP v7.0.0
Generating the QtNetwork bindings...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/QtCoremod.sip: line 66: '%Plugin' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 118: '%BIGetReadBufferCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 131: '%BIGetSegCountCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 138: '%BIGetCharBufferCode' is deprecated and will be removed in SIP v7.0.0
Generating the QtGui bindings...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/QtCoremod.sip: line 66: '%Plugin' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 118: '%BIGetReadBufferCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 131: '%BIGetSegCountCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 138: '%BIGetCharBufferCode' is deprecated and will be removed in SIP v7.0.0
Generating the QtWidgets bindings...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/QtCoremod.sip: line 66: '%Plugin' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 118: '%BIGetReadBufferCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 131: '%BIGetSegCountCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 138: '%BIGetCharBufferCode' is deprecated and will be removed in SIP v7.0.0
Generating the QtX11Extras bindings...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/QtCoremod.sip: line 66: '%Plugin' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 118: '%BIGetReadBufferCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 131: '%BIGetSegCountCode' is deprecated and will be removed in SIP v7.0.0
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/PyQt5-5.15.7/sip/QtCore/qbytearray.sip: line 138: '%BIGetCharBufferCode' is deprecated and will be removed in SIP v7.0.0
Generating the .pro file for the QtCore module...
Generating the .pro file for the QtNetwork module...
Generating the .pro file for the QtGui module...
Generating the .pro file for the QtWidgets module...
Generating the .pro file for the QtX11Extras module...
Generating the top-level .pro file...
Generating the Makefiles...
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake -recursive PyQt5.pro
sip-install: '/home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt/bin/qmake -recursive PyQt5.pro' failed returning 3
Info: creating stash file /tmp/tmphwkq3ix1/.qmake.stash
Reading /tmp/tmphwkq3ix1/QtCore/QtCore.pro
Reading /tmp/tmphwkq3ix1/QtNetwork/QtNetwork.pro
Reading /tmp/tmphwkq3ix1/QtGui/QtGui.pro
Reading /tmp/tmphwkq3ix1/QtWidgets/QtWidgets.pro
Reading /tmp/tmphwkq3ix1/QtX11Extras/QtX11Extras.pro
Project ERROR: Unknown module(s) in QT: x11extras
pyqtdeploy-sysroot: execution of 'sip-install' failed: returned exit code 1


More information about the PyQt mailing list