Qt6: update doc

This commit is contained in:
Philippe Teuwen
2026-02-27 14:02:13 +01:00
parent 93791a0d9b
commit 8d3eca3d58
5 changed files with 36 additions and 12 deletions
+3
View File
@@ -60,6 +60,7 @@ If your platform needs specific lib/include paths for the client, you can use `L
It's also possible to skip parts even if libraries are present in the compilation environment:
* `make client SKIPQT=1` to skip GUI even if Qt is present
* `make client SKIPQT6=1` to skip Qt6 even if Qt6 is present, anf fallback on Qt5
* `make client SKIPBT=1` to skip native Bluetooth support even if libbluetooth is present
* `make client SKIPPYTHON=1` to skip embedded Python 3 interpreter even if libpython3 is present
* `make client SKIPLUASYSTEM=1` to skip system Lua lib even if liblua5.2 is present, use embedded Lua lib instead
@@ -86,6 +87,8 @@ One tool requires a CUDA compilation environment, it can be skipped as well:
Some unittests are available via `make check`, which is actually triggering individual targets as for `make install`.
* `SKIPUV=1 tools/pm3_tests.sh` to skip usage of `uv` even if `uv` is present, and force usage of `python3` (in which case you must take care of installing the script dependencies yourself)
`make install` is actually triggering the following individual targets which can be accessed individually:
* `make client/install`
+2 -1
View File
@@ -70,9 +70,10 @@ At the moment both are maintained because they don't perfectly overlap yet.
| dep pthread | sys | sys | |
| pthread detection | **none** | **none** (1) | (1) cf https://stackoverflow.com/questions/1620918/cmake-and-libpthread ? |
| `SKIPPTHREAD` | yes | yes | e.g. for termux |
| dep Qt | opt, sys, Qt5 & Qt4 | opt, sys, Qt5 | |
| dep Qt | opt, sys, Qt6 & Qt5 | opt, sys, Qt5 | |
| Qt detection | pc(qt6)/pc(qt5)/`QTDIR`(1) (2) | find_package(qt5) (3) | (1) if `QTDIR`: hardcode path (2) OSX: pkg-config hook for Brew (3) OSX: add search path|
| `SKIPQT` | yes | yes | |
| `SKIPQT6` | yes | no | |
| dep readline | sys | sys | |
| readline detection | **none** (1) | find*(2), Cross:getzip | (1) OSX: hardcoded path (2) additional paths for OSX |
| `SKIPREADLINE` | yes | yes | CLI not fully functional without Readline |
@@ -59,7 +59,7 @@ Install the requirements
```sh
sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \
libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev \
libreadline-dev gcc-arm-none-eabi libnewlib-dev qt6-base-dev \
libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev
```
@@ -68,7 +68,7 @@ libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev
you can skip the installation of `libbluetooth-dev`.
👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),
you can skip the installation of `qtbase5-dev`.
you can skip the installation of `qt6-base-dev`.
👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of `libpython3-dev`.
@@ -86,7 +86,7 @@ you may have to install `libcanberra-gtk-module`.
```sh
sudo pacman -Syu git base-devel readline bzip2 lz4 arm-none-eabi-gcc \
arm-none-eabi-newlib qt5-base bluez python gd --needed
arm-none-eabi-newlib qt6-base bluez python gd --needed
```
### If you don't need...
@@ -94,7 +94,7 @@ arm-none-eabi-newlib qt5-base bluez python gd --needed
you can skip the installation of `bluez`.
👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),
you can skip the installation of `qt5-base`.
you can skip the installation of `qt6-base`.
👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of `python`.
@@ -108,7 +108,7 @@ you can skip the installation of `gd`.
```sh
sudo dnf install git make gcc gcc-c++ arm-none-eabi-gcc-cs arm-none-eabi-newlib \
readline-devel bzip2-devel lz4-devel qt5-qtbase-devel bluez-libs-devel \
readline-devel bzip2-devel lz4-devel qt6-qtbase-devel bluez-libs-devel \
python3-devel libatomic openssl-devel gd-devel
```
@@ -117,7 +117,7 @@ python3-devel libatomic openssl-devel gd-devel
you can skip the installation of `bluez-libs-devel`.
👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),
you can skip the installation of `qt5-qtbase-devel`.
you can skip the installation of `qt6-qtbase-devel`.
👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of `python3-devel`.
@@ -140,19 +140,32 @@ sudo zypper install cross-arm-none-eabi-gcc15 cross-arm-none-eabi-newlib
Note that Bluez is not available on openSUSE Leap so the native Bluetooth support won't be available in the client.
Note that the instructions above are for an usage with Qt5. In case of conflict with the presence of development files of Qt6, you can force Qt5 with `make SKIPQT6=1`.
It is possible to compile the proxmark3 client with Qt6 but with some caveats because the default compiler is GCC 7 and Qt6 requires at least GCC 8:
- install `gcc15 gcc15-c++` instead of `gcc-c++`
- install `qt6-core-devel qt6-widgets-devel` instead of `libqt5-qtbase-devel`
- set default compiler to GCC 15 instead of GCC 7
```
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-15 100 && \
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-15 100 && \
sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc-15 100 && \
sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++-15 100
```
## On openSUSE Tumbleweed
^[Top](#top)
```sh
sudo zypper install git patterns-devel-base-devel_basis gcc-c++ \
readline-devel libbz2-devel liblz4-devel bluez-devel \
python3-devel libqt5-qtbase-devel libopenssl-devel gd-devel \
python3-devel qt6-core-devel qt6-widgets-devel libopenssl-devel gd-devel \
cross-arm-none-gcc12 cross-arm-none-newlib-devel
```
### If you don't need...
👉 If you don't need the graphical components of the Proxmark3 client (such as in `hw tune`),
you can skip the installation of `libqt5-qtbase-devel`.
you can skip the installation of `qt6-core-devel qt6-widgets-devel`.
👉 If you don't need support for Python3 scripts in the Proxmark3 client,
you can skip the installation of `python3-devel`.
@@ -29,7 +29,7 @@ Always use the latest repository commits from *master* branch. There are always
- [Qt Session management error](#qt-session-management-error)
- [found architecture 'x86\_64' required architecture 'arm64' error](#found-architecture-x86_64-required-architecture-arm64-error)
- [wrong permissions on runtime directory /run/user/1000](#wrong-permissions-on-runtime-directory-runuser1000)
- [proxspace `file not found or locked` on Windows 11](#proxspace-file-not-found-or-locked-on-windows-11)
- [proxspace 'file not found or locked' on Windows 11](#proxspace-file-not-found-or-locked-on-windows-11)
## `pm3` or `pm3-flash*` doesn't see my Proxmark
@@ -253,8 +253,8 @@ make: *** [Makefile:177: client/all] Error 2
The following dependencies are currently needed to make the development environment compile:
```
sudo apt-get install --no-install-recommends git ca-certificates build-essential pkg-config \
libreadline-dev gcc-arm-none-eabi libnewlib-dev qtbase5-dev \
libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev
libreadline-dev gcc-arm-none-eabi libnewlib-dev qt6-base-dev \
libbz2-dev liblz4-dev libbluetooth-dev libpython3-dev libssl-dev libgd-dev
```
## target attribute is not supported on this machine
@@ -37,6 +37,13 @@ make clean
make SKIPQT=1
```
or to force a fallback to Qt5 even when Qt6 is installed
```
make clean
make SKIPQT6=1
```
On Linux hosts, if the Bluez headers and library are present, the client will be compiled with native Bluetooth support. It's possible to explicitly skip Bluetooth support with:
```