[pyqtdeploy] Failing at building the demo
umbertofilippo
umbertofilippo at tiscali.it
Sat Apr 20 14:20:46 BST 2024
Hi KC and thanks again for your suopport!
I have included it in my toml file, then tried to build the project and
I got the error: "Project ERROR: Unknown module(s) in QT: multimedia linux"
I then googled and understood I might need to install QtMultimedia on my
system (Linux Mint 20).
I then did `sudo apt install qtmultimedia5-dev libqt5multimedia5
libqt5multimedia5-plugins` (not sure if all were necessary), and now
during the make command I receive a new error:
```
/usr/bin/ld: cannot find -lQtMultimedia: No such file or directory
collect2: error: ld returned 1 exit status
make: *** [Makefile:210: memory] Error 1
```
I tried to find out how to solve the problem but after some search I
could figure it out.
I guess it still has to do with some missing components, but I could not
find the proper page with a list of all the needed libraries.
Do you or anyone else has it?
Thanks again for your time, really appreciated
Umberto
On 4/20/24 11:32, Kaiser Chief wrote:
> Hi umbertofilippo,
>
> The non-standard python packages should be added to the `sysroot.toml`
> first.
>
> In fact, there should be a `PyQt5` block in your `sysroot.toml`. (The
> component plugin for PyQt5 will work there). Look at the `Pyqt5.Linux`
> section and add QtMultimedia to the list of modules (QtWidgets should
> already be there for instance).
>
> Then reload your .pdt and it should automatically detect QtMultimedia
> which you can tick.
>
> I have checked your python source code and it does not seem that you
> need any other dependency so you can ghead with this change and build.
>
> Best regards,
>
> KC
>
>
> On Fri, 19 Apr 2024, 17:16 umbertofilippo, <umbertofilippo at tiscali.it>
> wrote:
>
> Hello everyone,
>
>
> I finally had some time to come back to this.
>
> I tried to build my own application (a simple memory game, whose
> source you can find here: https://github.com/umbe1987/memory).
>
> Host Linux-64 and target Linux-64.
>
> The deployment process seemed smooth, however when I try to launch
> my application in the build-linux-64 directory, I see this error:
>
>
> ```
>
> Traceback (most recent call last):
> File "memory.py", line 6, in <module>
> File "bootstrap-3.11.0.py <http://bootstrap-3.11.0.py>", line
> 1178, in _find_and_load
> File "bootstrap-3.11.0.py <http://bootstrap-3.11.0.py>", line
> 1142, in _find_and_load_unlocked
> ModuleNotFoundError: No module named 'PyQt5.QtMultimedia'
>
> ```
>
> I went back to the .pdt file (`pyqtdeploy-build memory.pdt`), but
> in the Packages tab I cannot see QtMultimedia listed anywhere.
>
> I could try to add it manually in the memory.pdt file, but I was
> wondering if I am doing anything wrong.
>
> I am sharing the content of my pdt file below.
>
> Many thanks in advance if you wish to help.
>
>
> Umberto
>
>
> memory.pdt
>
> ```
>
> version = 0
> sysroot = ""
> sysroots_dir = ""
> parts = [ "Python:random", "PyQt:PyQt5.QtWidgets", "Python:glob",
> "Python:os", "PyQt:PyQt5.QtCore", "PyQt:PyQt5.QtGui",
> "SIP:PyQt5.sip", "PyQt:PyQt5",]
>
> [Application]
> entry_point = ""
> is_console = false
> is_bundle = false
> name = ""
> qmake_configuration = ""
> script = "memory.py"
> syspath = ""
>
> [Application.Package]
> name = "data"
> exclude = [ "*.pyc", "*.pyd", "*.pyo", "*.pyx", "*.pxi",
> "__pycache__", "*-info", "EGG_INFO", "*.so",]
> [[Application.Package.Content]]
> name = "back.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content]]
> name = "img"
> included = true
> is_directory = true
> [[Application.Package.Content.Content]]
> name = "analisiapprofondita.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "cagnaccioselvaggio.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "diamanteocchidileone.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "lameraviglia.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "leggedelpiuforte.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "lucertolacrogiolante.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "ricercaossessiva.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "ruggitodelwurm.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "studioaccurato.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "Tropicalisland.jpg"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "wurmarrogante.jpg"
> included = true
> is_directory = false
>
>
> [[Application.Package.Content]]
> name = "sound"
> included = true
> is_directory = true
> [[Application.Package.Content.Content]]
> name = "end.wav"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "fail.wav"
> included = true
> is_directory = false
>
> [[Application.Package.Content.Content]]
> name = "success.wav"
> included = true
> is_directory = false
>
> ```
>
> On 3/12/24 08:48, umbertofilippo wrote:
>>
>> Thanks Charles and KC!
>>
>>
>> I was finally able to build the demo after installing all the Qt
>> for X11 requirements for Linux!!!
>>
>>
>> For the records, here is what I had to install on my machine
>> (Linux Mint 21):
>>
>> Note: there is a package in the list of requirements which has a
>> missing match on my system, I am marking it down below:
>>
>>
>> sudo apt-get install libxcb-util-dev
>> sudo apt-get install libfontconfig1-dev libfreetype6-dev
>> libx11-dev libx11-xcb-dev libxext-dev libxfixes-dev libxi-dev
>> libxrender-dev libxcb1-dev libxcb-glx0-dev libxcb-keysyms1-dev
>> libxcb-image0-dev libxcb-shm0-dev libxcb-icccm4-dev
>> libxcb-sync0-dev libxcb-xfixes0-dev libxcb-shape0-dev
>> libxcb-randr0-dev libxcb-render-util0-dev libxkbcommon-dev
>> libxkbcommon-x11-dev libxcb-xinerama0-dev # instead of
>> "libxcd-xinerama-dev"
>>
>>
>> Now, on my application and then Android! ;)
>>
>>
>> On 3/9/24 20:47, Umberto Minora wrote:
>>> Thanks for the hint Charles, I will try to test the solution as
>>> soon as I can and report back on the result.
>>>
>>> As far as I understand, I should do "sudo apt-get install
>>> libxcb-util-dev" as explained in
>>> https://forum.qt.io/topic/125582/qt-5-15-2-do-not-build-libqxcb-so-but-at-the-same-time-qt-5-14-0-successfully-build-libqxcb-so/4?_=1710013170647&lang=it
>>> <https://forum.qt.io/topic/125582/qt-5-15-2-do-not-build-libqxcb-so-but-at-the-same-time-qt-5-14-0-successfully-build-libqxcb-so/4?_=1710013170647&lang=it>
>>> and run "build-demo.py" again.
>>>
>>> Will be back soon.
>>>
>>> Umberto
>>>
>>> Il 9 mar 2024 15:48, Charles <peacech at gmail.com>
>>> <mailto:peacech at gmail.com> ha scritto:
>>>
>>> Do you have libxcb.so platform plugin in your qt directory?
>>>
>>> If not you need to rebuild qt again, make sure that
>>> requirements listed at
>>> https://doc.qt.io/qt-5/linux-requirements.html are installed
>>> and make sure the xcb platform plugin is built.
>>>
>>> On Sat, Mar 9, 2024 at 8:38 PM umbertofilippo
>>> <umbertofilippo at tiscali.it> wrote:
>>>
>>> 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/20240420/f27fc41d/attachment-0001.htm>
More information about the PyQt
mailing list