I'm currently in the process of updating to 5.12.1.
Seems they added some changes to the build system which conflict with my effort for making a fully statically linked executable relying on "system libraries" rather than bundles ones. I suppose most of my patches are adapted now. Some workarounds even might be no longer necessary but I also had to add new workarounds. At least it seems not totally messed up so far. I could do a static build of all the tools from the qttools repo (qmake) and of my Syncthing Tray application (CMake).
I noticed that a recent update of the mingw-w64-postgresql package apparently broke the static PostgreSQL plugin. The reason for the breakage seems the same as for the static MySQL plugin. (See pinned comment.)
And I had to fix windeployqt. It seems upstream really doesn't care about cross-compilation for Windows. But at least that patch might be upstream-able.
Pinned Comments
Martchus commented on 2020-09-13 11:42
Notes regarding 5.15.1 update
mingw-w64-qt5-base-static
but alsomingw-w64-qt5-svg-static
,mingw-w64-qt5-declarative-static
and so on. The static version is still sharing files with the shared version and as such depends on the shared packages. However, this change allows to avoid building all the static libraries if only shared libraries are required. If you've so far used static libraries from further Qt modules be sure to install the additional*-static
packages.5.x
. Let's see whether further updates for the5.x
branch will be made available by the community. If the regularqt5-base
packages picks up such commits I could update this package here as well.Martchus commented on 2020-06-09 10:33
Notes regarding Qt 6 packaging
I plan to package Qt 6 as well (see https://aur.archlinux.org/packages/mingw-w64-qt6-base for a WIP version), so here are the changes I expect I'll have to make:
mingw-w64-qt5-*
packages stay mainly as-is.qt5-*
packages it would make sense to do the same formingw-w64-qt5-*
packages.*-static
package for the base repository but not for other repositories.mingw-w64-qt6-*
packages for Qt 6.qt6-*
packages. I consider that an improvement because it takes out complexity from the build system and also avoids redundancy. It is also more consistent with other packages, e.g. if some package needs Python to generate something during the build we also don't try to bootstrap a minimal version of Python during the build but instead simply depend on thepython
package.qmake
. When I understand it correctly, that means allqmake
-based projects will need to depend on the regular package which will provide theqmake
binary. Likely it makes sense to create a package calledmingw-w64-qt6-qmake
which would be similar tomingw-w64-cmake
so not every package would have to sort out the correct usage individually.mingw-w64-qt6-*
packages until the correspondingqt6-*
are available because I suppose using older tools might not generally work.mingw-w64
target is still not officially supported. So I'll expect to run into problems and I don't expect that Qt 6 packages will be ready immediately after its release (although I'll likely try out beta versions).Feel free to comment if you have any ideas or suggestions. Of course we're quite constrained to how upstream plans to do things.
Martchus commented on 2018-05-29 08:29
Before upgrading, be sure to remove the old version of the package from your system. Preferably, build the package in a clean chroot using makechrootpkg.
Also, please read the other comments and issues on GitHub for known bugs and limitations.
There also exist a binary repository: https://martchus.no-ip.biz/repo/arch/ownstuff, https://wiki.archlinux.org/index.php/Unofficial_user_repositories#ownstuff
Martchus commented on 2018-03-11 20:19
@theone74 It is currently not possible to use the MariaDB plugin with the static version of Qt because mariadb-connector-c comes with its own pthread implementation which has conflicting symbols with the pthread library Qt uses. Since some PostgreSQL update the same is true for the PostgreSQL plugin.
So you have to disable the plugin. When using CMake, plugins are not be automatically added so you should not run into the issue by default. When using qmake you need to disable the plugin manually, eg. you can add the following arguments to enable only the plugins which actually work:
(https://github.com/Martchus/PKGBUILDs/blob/master/qt5-tools/mingw-w64-static/PKGBUILD#L45)
Martchus commented on 2016-07-10 19:47
All my packages are managed at GitHub where you can also contribute directly: https://github.com/Martchus/PKGBUILDs
Patches for this package are managed at: https://github.com/Martchus/qtbase/tree/5.11.0-mingw-w64
if you like to contribute to patches, read this: https://github.com/Martchus/PKGBUILDs/#contributing-to-patches
If you would like to contribute, here is a list of known bugs and things needing improvement:
Also note the comments about the different variants inside the PKGBUILD itself.