[pyqtdeploy] Failing at building the demo

umbertofilippo umbertofilippo at tiscali.it
Fri Mar 8 17:49:13 GMT 2024


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/20240308/a22855b9/attachment-0001.htm>
-------------- next part --------------
(memory) umberto at umberto-ThinkPad-T440p:~/games/python/pyqt-demo$ python build-demo.py --verbose
Verifying host architecture 'linux-64'...
Verifying target architecture 'linux-64'...
zlib: verifying...
zlib: determining installed version from '/usr/include/zlib.h'.
zlib: verified v1.2.11.
Qt: verifying...
Qt: verified v5.15.2.
Python: verifying...
Python: verified v3.11.0.
SIP: verifying...
Running 'sip-module --version'.
SIP: verified v6.8.3.
PyQt: verifying...
PyQt: verified v5.15.7.
PyQt3D: verifying...
PyQt3D: verified v5.15.5.
PyQtChart: verifying...
PyQtChart: verified v5.15.6.
PyQtDataVisualization: verifying...
PyQtDataVisualization: verified v5.15.5.
PyQtNetworkAuth: verifying...
PyQtNetworkAuth: verified v5.15.5.
PyQtPurchasing: verifying...
PyQtPurchasing: verified v5.15.5.
QScintilla: verifying...
QScintilla: verified v2.13.3.
Deleting /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build.
Creating /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build.
Qt: installing component...
Qt: looking for 'qt-everywhere-src-5.15.2.tar.xz' in /home/umberto/games/python/pyqt-demo.
Qt: found 'qt-everywhere-src-5.15.2.tar.xz' in download cache.
Qt: copying /home/umberto/.pyqtdeploy/cache/qt-everywhere-src-5.15.2.tar.xz to /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build.
Qt: unpacking 'qt-everywhere-src-5.15.2.tar.xz'.
Running './configure -prefix /home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt -opensource -confirm-license -static -release -nomake examples -nomake tools -I /home/umberto/games/python/pyqt-demo/sysroot-linux-64/include -L /home/umberto/games/python/pyqt-demo/sysroot-linux-64/lib -ssl -openssl-runtime -opengl desktop -no-dbus -qt-pcre -skip qtactiveqt -skip qtconnectivity -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmultimedia -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtxmlpatterns'.
+ cd qtbase
+ /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/configure -top-level -prefix /home/umberto/games/python/pyqt-demo/sysroot-linux-64/Qt -opensource -confirm-license -static -release -nomake examples -nomake tools -I /home/umberto/games/python/pyqt-demo/sysroot-linux-64/include -L /home/umberto/games/python/pyqt-demo/sysroot-linux-64/lib -ssl -openssl-runtime -opengl desktop -no-dbus -qt-pcre -skip qtactiveqt -skip qtconnectivity -skip qtdoc -skip qtgamepad -skip qtlocation -skip qtmultimedia -skip qtquickcontrols -skip qtquickcontrols2 -skip qtremoteobjects -skip qtscript -skip qtscxml -skip qtsensors -skip qtserialbus -skip qtserialport -skip qtspeech -skip qtsvg -skip qttools -skip qttranslations -skip qtwayland -skip qtwebchannel -skip qtwebengine -skip qtwebsockets -skip qtwebview -skip qtxmlpatterns
Creating qmake...
In file included from /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/qfloat16.h:1,
                 from /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h:44,
                 from /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/qendian.h:1,
                 from /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/src/corelib/codecs/qutfcodec.cpp:43:
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:300:7: error: ‘numeric_limits’ is not a class template
  300 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public numeric_limits<float>
      |       ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:300:77: error: expected template-name before ‘<’ token
  300 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public numeric_limits<float>
      |                                                                             ^
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:300:77: error: expected ‘{’ before ‘<’ token
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:344:18: error: ‘numeric_limits’ is not a class template
  344 | template<> class numeric_limits<const QT_PREPEND_NAMESPACE(qfloat16)>
      |                  ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:344:69: error: ‘std::numeric_limits’ is not a template
  344 | template<> class numeric_limits<const QT_PREPEND_NAMESPACE(qfloat16)>
      |                                                                     ^
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:300:7: note: previous declaration here
  300 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public numeric_limits<float>
      |       ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:345:28: error: expected template-name before ‘<’ token
  345 |     : public numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> {};
      |                            ^
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:346:18: error: ‘numeric_limits’ is not a class template
  346 | template<> class numeric_limits<volatile QT_PREPEND_NAMESPACE(qfloat16)>
      |                  ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:346:72: error: ‘std::numeric_limits’ is not a template
  346 | template<> class numeric_limits<volatile QT_PREPEND_NAMESPACE(qfloat16)>
      |                                                                        ^
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:300:7: note: previous declaration here
  300 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public numeric_limits<float>
      |       ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:347:28: error: expected template-name before ‘<’ token
  347 |     : public numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> {};
      |                            ^
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:348:18: error: ‘numeric_limits’ is not a class template
  348 | template<> class numeric_limits<const volatile QT_PREPEND_NAMESPACE(qfloat16)>
      |                  ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:348:78: error: ‘std::numeric_limits’ is not a template
  348 | template<> class numeric_limits<const volatile QT_PREPEND_NAMESPACE(qfloat16)>
      |                                                                              ^
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:300:7: note: previous declaration here
  300 | class numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> : public numeric_limits<float>
      |       ^~~~~~~~~~~~~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qfloat16.h:349:28: error: expected template-name before ‘<’ token
  349 |     : public numeric_limits<QT_PREPEND_NAMESPACE(qfloat16)> {};
      |                            ^
In file included from /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/qendian.h:1,
                 from /home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/src/corelib/codecs/qutfcodec.cpp:43:
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h: In static member function ‘static constexpr QSpecialInteger<S> QSpecialInteger<S>::max()’:
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h:331:30: error: ‘std::numeric_limits’ is not a template
  331 |     { return QSpecialInteger(std::numeric_limits<T>::max()); }
      |                              ^~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h:331:54: error: incomplete type ‘std::numeric_limits’ used in nested name specifier
  331 |     { return QSpecialInteger(std::numeric_limits<T>::max()); }
      |                                                      ^~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h: In static member function ‘static constexpr QSpecialInteger<S> QSpecialInteger<S>::min()’:
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h:333:30: error: ‘std::numeric_limits’ is not a template
  333 |     { return QSpecialInteger(std::numeric_limits<T>::min()); }
      |                              ^~~
/home/umberto/games/python/pyqt-demo/sysroot-linux-64/build/qt-everywhere-src-5.15.2/qtbase/include/QtCore/../../src/corelib/global/qendian.h:333:54: error: incomplete type ‘std::numeric_limits’ used in nested name specifier
  333 |     { return QSpecialInteger(std::numeric_limits<T>::min()); }
      |                                                      ^~~
gmake: *** [Makefile:383: qutfcodec.o] Error 1
pyqtdeploy-sysroot: execution of './configure' failed: returned exit code 2


More information about the PyQt mailing list