From pykde Sat Apr 20 13:57:37 2024 From: Charles Date: Sat, 20 Apr 2024 13:57:37 +0000 To: pykde Subject: Re: [pyqtdeploy] Failing at building the demo Message-Id: X-MARC-Message: https://marc.info/?l=pykde&m=171362132713601 MIME-Version: 1 Content-Type: multipart/mixed; boundary="--000000000000f37c3d061687965f" --000000000000f37c3d061687965f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable -lQtMultimedia means that you are linking with QtMultimedia.so. The first thing you do is check is your /usr/lib directory whether that file exists: cd /usr/lib && find | grep -i qtmultimedia Then if the file is not found, you check the list of files your qtmultimedia5-dev package has. You'll see that it has Qt5Multimedia.so. So then what you need to do is just symlink it ln -s /usr/lib/x86_64-linux-gnu/libQt5Multimedia.so /usr/lib/x86_64-linux-gnu/libQtMultimedia.so On Sat, Apr 20, 2024 at 8:21=E2=80=AFPM umbertofilippo wrote: > 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 duri= ng > 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 coul= d > 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, > 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 >> File "bootstrap-3.11.0.py", line 1178, in _find_and_load >> File "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 =3D 0 >> sysroot =3D "" >> sysroots_dir =3D "" >> parts =3D [ "Python:random", "PyQt:PyQt5.QtWidgets", "Python:glob", >> "Python:os", "PyQt:PyQt5.QtCore", "PyQt:PyQt5.QtGui", "SIP:PyQt5.sip", >> "PyQt:PyQt5",] >> >> [Application] >> entry_point =3D "" >> is_console =3D false >> is_bundle =3D false >> name =3D "" >> qmake_configuration =3D "" >> script =3D "memory.py" >> syspath =3D "" >> >> [Application.Package] >> name =3D "data" >> exclude =3D [ "*.pyc", "*.pyd", "*.pyo", "*.pyx", "*.pxi", "__pycache__"= , >> "*-info", "EGG_INFO", "*.so",] >> [[Application.Package.Content]] >> name =3D "back.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content]] >> name =3D "img" >> included =3D true >> is_directory =3D true >> [[Application.Package.Content.Content]] >> name =3D "analisiapprofondita.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "cagnaccioselvaggio.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "diamanteocchidileone.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "lameraviglia.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "leggedelpiuforte.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "lucertolacrogiolante.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "ricercaossessiva.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "ruggitodelwurm.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "studioaccurato.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "Tropicalisland.jpg" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "wurmarrogante.jpg" >> included =3D true >> is_directory =3D false >> >> >> [[Application.Package.Content]] >> name =3D "sound" >> included =3D true >> is_directory =3D true >> [[Application.Package.Content.Content]] >> name =3D "end.wav" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "fail.wav" >> included =3D true >> is_directory =3D false >> >> [[Application.Package.Content.Content]] >> name =3D "success.wav" >> included =3D true >> is_directory =3D 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-a= t-the-same-time-qt-5-14-0-successfully-build-libqxcb-so/4?_=3D1710013170647= &lang=3Dit >> and run "build-demo.py" again. >> >> Will be back soon. >> >> Umberto >> >> Il 9 mar 2024 15:48, Charles 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=E2=80=AFPM umbertofilippo >> 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 cod= e >> 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 bu= t >> 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 tel= l >> pyqtdeploy where to look for Qt install (but that's a bit more painful). >> >> >> Best regards, >> >> KC >> >> Le ven. 8 mars 2024 =C3=A0 19:21, umbertofilippo >> a =C3=A9crit : >> >> Thanks again for the feedback, >> >> >> I have just tried to update the sysroot.toml like this: >> >> >> # Qt >> ########################################################################= ## >> >> [Qt] >> version =3D "5.15.10" # original was "5.15.2" >> edition =3D "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 >> #endif >> ``` >> >> For ref, the QT bug associated is: >> https://bugreports.qt.io/browse/QTBUG-90395 >> It has been fixed for QT5.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 =C3=A0 18:28, Charles a =C3=A9cr= it : >> >> 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=3D92d54be8965631027= 86238893a9c645b8bdb43ef >> >> On Sat, Mar 9, 2024 at 12:49=E2=80=AFAM umbertofilippo >> 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 n= ew >> 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 cod= e >> 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 cas= e >> 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 i= s >> 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 >> # 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 throug= h >> 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 th= e >> 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 rememb= er >> where... >> >> Best regards, >> >> KC >> >> Le jeu. 7 mars 2024 =C3=A0 17:56, Kaiser Chief a >> =C3=A9crit : >> >> Hi, >> >> According to the sysroot help page ( >> https://www.riverbankcomputing.com/static/Docs/pyqtdeploy/sysroot.html#o= penssl), >> if you have configured your `sysroot.toml` like this: >> ``` >> >> [OpenSSL.linux] >> version =3D "" >> install_from_source =3D 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 Git= hub >> 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 =C3=A0 17:06, umbertofilippo >> a =C3=A9crit : >> >> 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/978017382f0ecc48601944c3fc= 0f58a5c5075a1d3acd48d09c11ee471b05/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 >> >> >> --000000000000f37c3d061687965f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
-lQtMultimedia means that you are linking with QtMultimedia.so.

The first thing you do is check i= s your /usr/lib directory whether that file exists: cd /usr/lib && = find | grep -i qtmultimedia

Then if the file is not found, you check the list of files your q= tmultimedia5-dev package has. You'll see that it has Qt5Multimedia.so.<= /div>

So then what you need = to do is just symlink it

ln -s=C2=A0/usr/lib/x86_64-linux-gnu/libQt5Multimedia.so=C2=A0/usr/lib/x= 86_64-linux-gnu/libQtMultimedia.so

On Sat, Apr 20, 2024 at 8:21=E2=80=AFPM umbertofilippo <umbertofilippo@tiscali.it> wrote:=
=20 =20 =20

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) i= n 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:
=20
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).=C2=A0

Then reload your .pdt and it should automatically detect QtMultimedia which you can tick.=C2=A0

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.=C2=A0

Best regards,=C2=A0

KC


On Fri, 19 Apr 2024, 17:1= 6 umbertofilippo, <umbertofilippo@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://gi= thub.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):
=C2=A0 File "memory.py", line 6, in <module&= gt;
=C2=A0 File "bootstrap-3.11.0.py", line 1178, in _find_and_load
=C2=A0 File "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 =3D 0
sysroot =3D ""
sysroots_dir =3D ""
parts =3D [ "Python:random", "PyQt:PyQt5.Q= tWidgets", "Python:glob", "Python:os", "PyQ= t:PyQt5.QtCore", "PyQt:PyQt5.QtGui", "SIP:PyQt5.sip", = "PyQt:PyQt5",]

[Application]
entry_point =3D ""
is_console =3D false
is_bundle =3D false
name =3D ""
qmake_configuration =3D ""
script =3D "memory.py"
syspath =3D ""

[Application.Package]
name =3D "data"
exclude =3D [ "*.pyc", "*.pyd", "= ;*.pyo", "*.pyx", "*.pxi", "__pycache__", "*-info&= quot;, "EGG_INFO", "*.so",]
[[Application.Package.Content]]
name =3D "back.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content]]
name =3D "img"
included =3D true
is_directory =3D true
[[Application.Package.Content.Content]]
name =3D "analisiapprofondita.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "cagnaccioselvaggio.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "diamanteocchidileone.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "lameraviglia.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "leggedelpiuforte.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "lucertolacrogiolante.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "ricercaossessiva.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "ruggitodelwurm.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "studioaccurato.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "Tropicalisland.jpg"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "wurmarrogante.jpg"
included =3D true
is_directory =3D false


[[Application.Package.Content]]
name =3D "sound"
included =3D true
is_directory =3D true
[[Application.Package.Content.Content]]
name =3D "end.wav"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "fail.wav"
included =3D true
is_directory =3D false

[[Application.Package.Content.Content]]
name =3D "success.wav"
included =3D true
is_directory =3D 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-bu= ild-libqxcb-so-but-at-the-same-time-qt-5-14-0-successfully-build-libqxcb-so= /4?_=3D1710013170647&lang=3Dit and run "build-demo.py" again.

Will be back soon.

Umberto

Il 9 mar 2024 15:48, Charles <peacech@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=E2=80=AFPM umbertofilippo <umbertofilippo@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/QtX11Ext= ras.pro
Project ERROR: Unknown module(s) in QT: x11extras
pyqtdeploy-sysroot: execution of 'sip-install' failed: returne= d 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-sr= c-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&= #39;

You could fix that line (#53) in "pyqtdeploy/sysroot/plugins/= Qt.py"with:
` qt-everywhere-opensource-src-{}.t= ar.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=C2=A0ven. 8 mar= s 2024 =C3=A0=C2=A019:21, umbertofi= lippo <umbertofilippo@tiscali= .it> a =C3=A9crit=C2=A0:

Thanks again for the feedback,


I have just tried to update the sysroot.toml like this:


# Qt ##########################################################################<= br>
[Qt]
version =3D "5.15.10&quo= t; # original was "5.15.2&quo= t;
edition =3D "opensource&= quot;

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.1= 0.tar.xz' in /home/umberto/games/python/py= qt-demo.
Qt: downloading 'qt-everywhere-src-5.15.1= 0.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-opensourc= e-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/qgl= obal.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/top= ic/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, but since you are using the= default QT5.15.2, well it's not fixed.

Best regards,

KC

Le=C2=A0ve= n. 8 mars 2024 =C3=A0=C2=A018:= 28, Charles <peacech@gmail.= com> a =C3=A9crit=C2=A0:
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://bug= s.gentoo.org/768342

If you use gcc 11 then use gcc 10 otherwise patch qt headers as in https://gitw= eb.gentoo.org/repo/gentoo.git/commit/?id=3D92d54be896563102786238893a9c645b= 8bdb43ef

On Sat, Mar 9, 2024 at 12:49=E2=80=AFAM umbertofilippo <umbertofil= ippo@tiscali.it> wrote:

Moving on,


I have tried to remove OpenSSL from the "sysroot.tom= l" 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-everywher= e-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 exi= t 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-lin= ux-64" and inside I see there's "sysroot-lin= ux-64/build/qt-everywhere-src-5.15.2" with a "configure&q= uot; 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...


/*
=C2=A0* SECTION 4= : BACKWARD COMPATIBILITY
=C2=A0*/

# define OPENSSL_VERSION_T= EXT "OpenSSL 3.0= .2 15 Mar 2022"=

/* Synthesize OPENSSL_VERSION_NUMBER with the layout 0xMNN00PPSL */
# ifdef OPENSSL_VERSION_P= RE_RELEASE
#=C2=A0 define _OPENSSL_VERSION_= PRE_RELEASE 0x0L
# else
#=C2=A0 define _OPENSSL_VERSION_= PRE_RELEASE 0xfL
# endif
# define OPENSSL_VERSION_N= UMBER=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
=C2=A0=C2=A0=C2= =A0 ( (OPENSSL_VERSION_= MAJOR<<28)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 |(OPENSSL_VERSION= _MINOR<<20)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 |(OPENSSL_VERSION= _PATCH<<4)=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 \
=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 |_OPENSSL_VERSION= _PRE_RELEASE )

# ifdef=C2=A0 __cplusplus
}
# endif

# include <openssl/macro= s.h>
# ifndef OPENSSL_NO_DEPREC= ATED_3_0
#=C2=A0 define HEADER_OPENSSLV_H=
# endif

#endif=C2=A0=C2= =A0=C2=A0=C2=A0


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&= quot; 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 "#defin= e OPENSSL_VERSION_NUMBER" in=C2=A0 "/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=C2=A0jeu. 7 mars 2024 =C3=A0=C2=A017:56= , Kaiser Chief <kaise= r.chiefmail@gmail.com> a =C3=A9crit=C2= =A0:
Hi,

According to the sysroot help page (https://www.riverbankcomputi= ng.com/static/Docs/pyqtdeploy/sysroot.html#openssl), if you have configured your `sysroot.toml` like this:
```
[OpenSSL.lin=
ux]
version =3D ""
install_from_source =3D 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 i= s 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=C2=A0jeu. 7 mars 2024 =C3=A0=C2=A017:06= , umbertofilippo <umbert= ofilippo@tiscali.it> a =C3=A9crit=C2= =A0:
Hello everyone, first time here for me :)

I was giving pyqtdeploy a try and I am stuck at the very first step of
the "Buildin= g the Demo" page.


I am on a Linux-64 machine. I am following the tutorial at
https://www.riverbankcomputing.com/static/Docs/pyq= tdeploy/demo.html and
I have downloaded the demo files from
https://files.pythonhosted.org/packages/44/d4/978017382f0ecc48= 601944c3fc0f58a5c5075a1d3acd48d09c11ee471b05/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&quo= t; 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 "opens= sl
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 ""sysro= ot.toml" file to be able to run=C2=A0"py= thon build-demo.py&quo= t;
successfully?


Thanks,


Umberto


--000000000000f37c3d061687965f--