I've been updating this package and some further modules to use patches from KDE's fork. This is in accordance with the native Qt packages. As far as I know KDE's fork is not tagging releases. However, I will not pick up every single new commit on their branch but only update the package when it is worth it. Only flag the package as out-of-date if there are patches on their branch which are generally very important.
Search Criteria
Package Details: mingw-w64-qt5-base 5.15.16+kde+r130-1
Package Actions
Git Clone URL: | https://aur.archlinux.org/mingw-w64-qt5-base.git (read-only, click to copy) |
---|---|
Package Base: | mingw-w64-qt5-base |
Description: | A cross-platform application and UI framework, native OpenGL backend (mingw-w64) |
Upstream URL: | https://www.qt.io/ |
Licenses: | custom, GPL3, LGPL3, FDL |
Groups: | mingw-w64-qt5 |
Submitter: | Martchus |
Maintainer: | Martchus |
Last Packager: | Martchus |
Votes: | 21 |
Popularity: | 0.025120 |
First Submitted: | 2016-08-30 21:28 (UTC) |
Last Updated: | 2024-11-25 20:54 (UTC) |
Dependencies (19)
- mingw-w64-crt (llvm-mingw-w64-toolchain-ucrt-binAUR, llvm-mingw-w64-toolchain-msvcrt-binAUR)
- mingw-w64-dbusAUR
- mingw-w64-harfbuzzAUR
- mingw-w64-libjpeg-turboAUR (mingw-w64-libjpegAUR)
- mingw-w64-libpngAUR
- mingw-w64-opensslAUR
- mingw-w64-pcre2AUR
- mingw-w64-sqliteAUR
- mingw-w64-zlibAUR
- git (git-gitAUR, git-glAUR) (make)
- mingw-w64-environmentAUR (llvm-mingw-w64-environmentAUR) (make)
- mingw-w64-gcc (mingw-w64-gcc132AUR, llvm-mingw-w64-toolchain-ucrt-binAUR, llvm-mingw-w64-toolchain-msvcrt-binAUR) (make)
- mingw-w64-mariadb-connector-cAUR (make)
- mingw-w64-pkg-configAUR (llvm-mingw-w64-pkg-configAUR) (make)
- mingw-w64-postgresqlAUR (make)
- mingw-w64-vulkan-headersAUR (make)
- mingw-w64-mariadb-connector-cAUR (optional) – MySQL support
- mingw-w64-mesaAUR (mingw-w64-mesa-gitAUR) (optional) – use LLVMpipe software rasterizer for Qt Quick
- mingw-w64-postgresqlAUR (optional) – PostgreSQL support
Required by (45)
- mingw-w64-attica
- mingw-w64-karchive
- mingw-w64-kcodecs
- mingw-w64-kconfig
- mingw-w64-kcoreaddons
- mingw-w64-kdsoap
- mingw-w64-kguiaddons
- mingw-w64-kimageformats
- mingw-w64-kitemviews
- mingw-w64-kwidgetsaddons
- mingw-w64-opencc-gui-git
- mingw-w64-passwordmanager
- mingw-w64-qca-qt5
- mingw-w64-qca-qt5 (make)
- mingw-w64-qca-qt6 (make)
- mingw-w64-qcustomplot-qt5
- mingw-w64-qscintilla-qt5
- mingw-w64-qt5-activeqt
- mingw-w64-qt5-base-static
- mingw-w64-qt5-charts
- Show 25 more...
Sources (33)
- 0001-Adjust-win32-g-profile-for-cross-compilation-with-mi.patch
- 0002-Ensure-GLdouble-is-defined-when-using-dynamic-OpenGL.patch
- 0003-Fix-too-many-sections-assemler-error-in-OpenGL-facto.patch
- 0004-Make-sure-.pc-files-are-installed-correctly.patch
- 0005-Don-t-add-resource-files-to-LIBS-parameter.patch
- 0006-Prevent-debug-library-names-in-pkg-config-files.patch
- 0007-Fix-linking-against-shared-static-libpng.patch
- 0008-Fix-linking-against-static-D-Bus.patch
- 0009-Don-t-try-to-use-debug-version-of-D-Bus-library.patch
- 0010-Fix-linking-against-static-freetype2.patch
- 0011-Fix-linking-against-static-harfbuzz.patch
- 0012-Fix-linking-against-static-pcre.patch
- 0013-Fix-linking-against-shared-static-MariaDB.patch
- 0014-Fix-linking-against-shared-static-PostgreSQL.patch
- 0015-Rename-qtmain-to-qt5main.patch
- 0016-Enable-rpath-for-build-tools.patch
- 0017-Use-system-zlib-for-build-tools.patch
- 0018-Merge-shared-and-static-library-trees.patch
- 0019-Use-.dll.a-as-import-lib-extension.patch
- 0020-Pull-dependencies-of-static-libraries-in-CMake-modul.patch
- 0021-Allow-usage-of-static-version-with-CMake.patch
- 0022-Adjust-linker-flags-for-static-build-with-cmake-ming.patch
- 0023-Use-correct-pkg-config-static-flag.patch
- 0024-Fix-macro-invoking-moc-rcc-and-uic.patch
- 0025-Ignore-errors-about-missing-feature-static.patch
- 0026-Enable-and-fix-use-of-iconv.patch
- 0027-Ignore-failing-pkg-config-test.patch
- 0028-Prevent-qmake-from-messing-static-lib-dependencies.patch
- 0029-Hardcode-linker-flags-for-platform-plugins.patch
- 0030-Fix-linking-against-static-plugins-with-qmake.patch
- 0031-Prevent-Cannot-find-feature-windows_vulkan_sdk.patch
- 0032-Fix-crashes-in-rasterization-code-using-setjmp.patch
- git+https://invent.kde.org/qt/qt/qtbase#commit=2529f7f0c2333d437089c775c9c30f624d1fd5bc
Martchus commented on 2021-04-14 10:08 (UTC)
Martchus commented on 2020-09-13 11:42 (UTC)
Notes regarding 5.15.1 update
- With this update I finally splitted all static libraries from further Qt repositories into their own packages as well. So now there's not only
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. - Otherwise there were not much build system changes on the Qt side so I don't think this update broke much.
- As stated in the sticky comment I'm thinking about Qt 6 packaging but this also means I'm not going to take much effort to address any outstanding bugs/limitations for the Qt 5 packages anymore (broken ANGLE build, build Qt WebEngine, …).
- This is the last official release of the
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-09-10 12:52 (UTC) (edited on 2020-09-10 12:53 (UTC) by Martchus)
@xantares Thanks for the info. I'll try my luck with Qt 6 when the alpha is out. So far I've only tested the native Linux version and it mostly works well with some minor issues. The next thing is the update to 5.15.1 of course which I'll do tomorrow or on the weekend.
xantares commented on 2020-09-10 09:22 (UTC)
I tried a first build from the dev branch, it's a bit rough to detect dependencies and pkgconfig, but it goes through. (you need to install qt6 first, then pass -DQT_HOST_PATH=/usr)
Martchus commented on 2020-06-09 10:33 (UTC) (edited on 2020-10-08 15:32 (UTC) by Martchus)
Notes regarding Qt 6 packaging
- The Qt devs are discussion about their build system again: https://lists.qt-project.org/pipermail/development/2020-June/039673.html
- The thread contained some interesting links, e.g. https://code.qt.io/cgit/qt/qtbase.git/tree/cmake/README.md contains points relevant to consider when packaging Qt 6 with regards to cross compilation.
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:
- The
mingw-w64-qt5-*
packages stay mainly as-is.- Of course I'll be updating the patch version. If a community fork for minor version updates is created and picked up by the regular
qt5-*
packages it would make sense to do the same formingw-w64-qt5-*
packages. - As a "final improvement" for the Qt 5 packaging I could also apply the shared vs. static splitting for all modules. Currently it is a bit weird to have a separate
*-static
package for the base repository but not for other repositories. - ANGLE seems to be completely abandoned by Qt 6 in favor of platform-specific backends. That means I'm not going to take any effort anymore in fixing the currently broken ANGLE variant.
- Of course I'll be updating the patch version. If a community fork for minor version updates is created and picked up by the regular
- I'll create
mingw-w64-qt6-*
packages for Qt 6.- CMake will be the only supported build system for building Qt itself so I'll switch to that.
- All "host tools" need to come from the regular
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.- That also affects
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. - I'll delay building the
mingw-w64-qt6-*
packages until the correspondingqt6-*
are available because I suppose using older tools might not generally work. - Not sure how we'll have to built the deployment tool or generally other Windows specific tools. They will likely not be available within the regular GNU/Linux packages but are still host tools. Maybe one simply builds these in a separate CMake/make invocation using some special parameters.
- That also affects
- I'll drop my patches for supporting installing the shared and static version within the same prefix. These patches actually came from the previous maintainer who took them from Fedora. I kept these patches so far because why change a running system. However, now I'd likely need to rewrite the patches completely so it makes more sense to get rid of them. That means I'll use a nested install prefix for the static version similar to the MSYS2 packaging. That means you will no longer be able to use the shared and the static version of Qt within the same CMake project. This was a nice feature but I don't think the benefit is worth the maintenance effort anymore.
- Cross compilation for the
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). - Some Qt modules will be moved out to the market place (e.g. Qt Multimedia). This mainly affects the repository URL and decouples these modules from the regular Qt release cycle. I think it makes actually sense because this way we can likely avoid frequent rebuilds of modules which don't change anyways (unless they are using private Qt APIs).
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 2019-12-16 14:06 (UTC)
I've already rebased the patches for 5.14.0 but it will likely take a while to fix these issues:
ERROR: Qt requires a compliant STL library.
ERROR: Feature 'gnu-libiconv' was enabled, but the pre-condition '!config.qnx && !config.android && !config.darwin && !features.posix-libiconv && !features.sun-libiconv && libs.gnu_iconv' failed.
ERROR: Feature 'iconv' was enabled, but the pre-condition '!features.icu && features.textcodec && (features.posix-libiconv || features.sun-libiconv || features.gnu-libiconv)' failed.
ERROR: detected a std::atomic implementation that fails for function pointers.
Please apply the patch corresponding to your Standard Library vendor, found in
qtbase/config.tests/atomicfptr
ERROR: Feature 'system-harfbuzz' was enabled, but the pre-condition 'features.harfbuzz && libs.harfbuzz' failed.
When rebasing I've also noticed that they're tackling the issues with CMake and the static build. That's good because I could finally get rid of my patches for that. However, we still have Merge-shared-and-static-library-trees.patch
which came originally from Fedora and the old maintainer. That blocks removing Pull-dependencies-of-static-libraries-in-CMake-modul.patch
and Allow-usage-of-static-version-with-CMake.patch
in favor of Qt's own recent improvements because only my patches take this special setup into account. So far I've kept the patches. That means Pull-dependencies-of-static-libraries-in-CMake-modul.patch
is basically a revert of Qt's own recent improvements in favor to my patch. But when I have more time for testing Qt's implementation I'd like to drop all of the mentioned patches. The static version would be either installed under its own nested prefix or not be co-installable with the shared version. I would also like to make separate packages for the static versions of the additional modules.
xantares commented on 2019-12-03 06:30 (UTC)
martchus, you can use mingw-w64-environment now
Martchus commented on 2019-06-19 21:54 (UTC)
@burning_daylight That would be interesting since the "resurrected" Qt WebKit seems to die after all. However, I'm not sure whether it is possible: https://github.com/Martchus/PKGBUILDs/issues/94#issuecomment-503760600
burning_daylight commented on 2019-06-19 12:43 (UTC)
It seems, chromium can now be built with clang and lld. Qt now uses clang by default on windows. Would it be possible to have Qt WebEngine on mingw?
Martchus commented on 2019-06-14 16:42 (UTC)
Qt 5.13.0 is going to be released on 18.06.2019. I can wait that long and would therefore skip 5.12.4.
Pinned Comments
Martchus commented on 2023-06-07 19:48 (UTC)
Who flagged this package (or wants to flag it): The KDE patch branch doesn't seem rebased yet and the regular qt5-base package has not been updated as well. Since this package is using the KDE patch branch I'm going to wait for them to rebase. You generally don't need to flag the package as I'm subscribed to relevant Qt mailing lists anyways.
Martchus commented on 2021-04-14 10:08 (UTC)
I've been updating this package and some further modules to use patches from KDE's fork. This is in accordance with the native Qt packages. As far as I know KDE's fork is not tagging releases. However, I will not pick up every single new commit on their branch but only update the package when it is worth it. Only flag the package as out-of-date if there are patches on their branch which are generally very important.
Martchus commented on 2020-09-13 11:42 (UTC)
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 2018-05-29 08:29 (UTC) (edited on 2020-01-31 13:46 (UTC) by Martchus)
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 (UTC) (edited on 2020-09-13 11:45 (UTC) by Martchus)
@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 (UTC) (edited on 2020-01-31 13:47 (UTC) by Martchus)
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.