diff --git a/Makefile.am b/Makefile.am index 548e0f22..b836d805 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,95 +1,92 @@ # Makefile.am - Installer for GnuPG 4 Windows Makefile. # Copyright (C) 2005, 2008, 2012 g10 Code GmbH # # This file is part of GPG4Win. # # GPG4Win is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # GPG4Win is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, see . ACLOCAL_AMFLAGS = -I m4 AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip DISTCHECK_CONFIGURE_FLAGS = --host=i686-w64-mingw32 SUBDIRS = po packages doc src # find patches -type f | sort | sed 's/$/ \\/' | sed 's/^/ /' EXTRA_DIST = autogen.sh README.GIT ONEWS \ doc/license-page doc/GPLv3 \ build-aux/git-log-footer build-aux/git-log-fix \ patches/glib-2.41.5/01-socket.patch \ patches/glib-2.41.5/02-formatsec.patch \ patches/qtbase/relative-paths.patch \ patches/qtbase/qtbase-mingw-fixes.patch \ patches/qtbase/config-standardpaths.patch \ - patches/qtbase/windowsxp-support.patch \ - patches/qtbase/windowsxp-support-revert.patch \ - patches/qtbase/windowsxp-support-revert-2.patch \ patches/qtwinextras/support-xp.patch \ patches/w32pth-2.0.5/workaround-broken-libtool.patch \ patches/qttools/disable-most-tools.patch \ patches/ki18n/no-tests.patch \ patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch \ patches/kxmlgui/0003-Make-KTextWidgets-optional.patch \ patches/kxmlgui/0004-Cruedly-disable-KSendbugmail.patch \ patches/kconfigwidgets/0001-Make-QDbus-optional.patch \ patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch \ patches/kiconthemes/0001-Make-DBus-optional.patch \ patches/extra-cmake-modules/0001-Add-convert-utility-support-for-Windows-icons.patch \ patches/kleopatra/0005-Hack-generated-conf-files-for-Crosscompiling.patch \ patches/kleopatra/fix-qt5.6-build.patch \ patches/libgpg-error-1.21/0001-Add-FD_ISSET-replacement-for-Windows.patch \ patches/gpgex-1.0.4/0001-Prefer-kleowrapped-gpgwrapped-binaries.patch \ patches/gpgex-1.0.4/0002-Fix-loop-logic-error-in-new-server-name-detection.patch \ patches/extra-cmake-modules/0001-Use-BIN_INSTALL_DIR-data-for-DATAROOTDIR-on-Windows.patch \ patches/gpa-0.9.10/0001-w32-Make-location-of-locale-dir-more-flexible.patch copy-news: cp NEWS doc/website/NEWS.last copy-release: gpg4win-$(VERSION).tar.bz2 installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe @echo Copying $(VERSION) to $(RELEASEHOST) >&2 @set -e;\ if ssh "$$(echo $(RELEASEHOST)|cut -d: -f -1)" \ test -f "$$(echo $(RELEASEHOST)/gpg4win-$(VERSION).exe|cut -d: -f2-)";\ then echo "This release has already been copied to the server" >&2 ;\ else scp gpg4win-$(VERSION).tar.bz2 \ installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe \ installers/gpg4win-src-$(VERSION).exe $(RELEASEHOST)/ ;\ for f in en de ; do \ scp src/README.$$f.txt \ $(RELEASEHOST)/README-$(VERSION).$$f.txt; \ done;\ fi dist-hook: gen-ChangeLog gen_start_date = 2012-03-26T00:00:00 .PHONY: gen-ChangeLog gen-ChangeLog: set -e; \ if test -d $(top_srcdir)/.git; then \ (cd $(top_srcdir) && \ $(GITLOG_TO_CHANGELOG) --append-dot --tear-off \ --amend=build-aux/git-log-fix \ --since=$(gen_start_date) ) > $(distdir)/cl-t; \ cat $(top_srcdir)/build-aux/git-log-footer >> $(distdir)/cl-t;\ rm -f $(distdir)/ChangeLog; \ mv $(distdir)/cl-t $(distdir)/ChangeLog; \ fi diff --git a/packages/packages.current b/packages/packages.current index 69a7b335..841b86da 100644 --- a/packages/packages.current +++ b/packages/packages.current @@ -1,559 +1,559 @@ # packages.current - list of current packages for use with gpg4win -*- sh -*- # # The download script processes the statements here to # actually download the packages. The syntax is trivial: # # If the first non whitespace character of a line is #, the line is # considered a comment. If the first word of a line is "server", the # rest of the line will be taken as the base URL for following file # commands. If the first word of a line is "file" the rest of the # line will be appended to the current base URL (with a / as # delimiter). The statement "chk" is followed by the SHA1 checksum of # the last file. # # zlib # server http://zlib.net # last-changed: 2017-01-23 # by: ah # verified: Sig 5ED4 6A67 21D3 6558 7791 E2AA 783F CD8E 58BC AFBA file zlib-1.2.11.tar.gz chk c3e5e9fdd5004dcb542feda5ee4f0ff0744628baf8ed2dd5d66f8ca1197cb1a1 # # GNU # server ftp://ftp.gnu.org/pub/gnu # last-changed: 2017-02-15 # by: ah # verified: Sig 68D9 4D8A AEEA D48A E7DC 5B90 4F49 4A94 2E46 16C2 file libiconv/libiconv-1.15.tar.gz chk ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178 # last-changed: 2017-02-15 # by: ah # verified: Sig 4622 25C3 B46F 3487 9FC8 496C D605 848E D7E6 9871 file gettext/gettext-0.19.8.tar.xz chk 9c1781328238caa1685d7bc7a2e1dcf1c6c134e86b42ed554066734b621bd12f # # GLIB # # The GTK boyz seem to think that sha256sum files on the server # magically get them a lot of additional security karma. # # And it's plain to see # You were meant for me # Yeah I'm your .sig # Your 21th Century sig # 21th Century sig, I wanna be your file # server http://ftp.gnome.org/pub/gnome/sources/glib/2.41 # last-changed: 2015-06-05 # Latest minor release is 2.45 but 2.41 works for us. # by: ah # compared checksum with debian experimental version. # https://lists.debian.org/debian-experimental-changes/2014/09/msg00182.html # verified: Sig 3D0E FB95 E7B5 237F 16E8 2258 E352 D5C5 1C50 41D4 file glib-2.41.5.tar.xz chk e76a6bd1456749bdd05db19a8f0f174e787e612ed443d30cc9cf02237dd58e16 # # GDK-PIXBUF # server http://ftp.gnome.org/pub/gnome/sources/gdk-pixbuf/2.30/ # checked: 2015-06-05 # by: ah # There is a 2.31 series but afaik no security problems with 2.30 # verified: with linuxfromscratch and frugalware checksums file gdk-pixbuf-2.30.8.tar.xz chk 4853830616113db4435837992c0aebd94cbb993c44dc55063cee7f72a7bef8be # # ATK # server http://ftp.gnome.org/pub/gnome/sources/atk/1.32 # checked: 2013-04-29 wk (1.32.0 still the latest in 1.32) file atk-1.32.0.tar.bz2 chk e9a3e598f75c4db1af914f8b052dd9f7e89e920a96cc187c18eb06b8339cb16e server http://ftp.gnome.org/pub/gnome/binaries/win32/atk/1.32 # checked: 2013-04-29 wk name atk-1.32.0.zip file atk_1.32.0-2_win32.zip chk cadc6d52f2af21996a6dcba7b1fac27ce66721e14d1c4ab21fde7bc9965f5037 # checked: 2013-04-29 wk name atk-dev-1.32.0.zip file atk-dev_1.32.0-2_win32.zip chk 5021d64043d270350d6a8d50b91db691a7421a68ca0bfa4eeb0c8804a176ac44 # # PANGO # server http://ftp.gnome.org/pub/gnome/sources/pango/1.29 # fixme: 2013-04-29 wk - There is a 1.29.5 but no 1.29.5 binaries # What shall we do: Update to 1.32? There are no # 1.32 binaries either. file pango-1.29.4.tar.bz2 chk f15deecaecf1e9dcb7db0e4947d12b5bcff112586434f8d30a5afd750747ff2b server http://ftp.gnome.org/pub/gnome/binaries/win32/pango/1.29 name pango-1.29.4.zip file pango_1.29.4-1_win32.zip chk e1b865ae2e4054388c598f92b34593b3d24d7fd15e6308c8926ee634717c21ce name pango-dev-1.29.4.zip file pango-dev_1.29.4-1_win32.zip chk 0d7fb255e65ed4bd43acedab4405986e4877b87ba8227d5fa22b38330485e3cb # # CAIRO # server http://cairographics.org/releases # checked: 2013-04-29 wk - 1.10.2 is the latest in the 1.10 series. file cairo-1.10.2.tar.gz chk 32018c7998358eebc2ad578ff8d8559d34fc80252095f110a572ed23d989fc41 server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2013-07-16 ah most recent package on that server is from # 2012-09-27 TODO -> Move to another source / source build of those # dependencies # checked: 2013-04-29 wk name cairo-1.10.2.zip file cairo_1.10.2-2_win32.zip chk e6c361ec1df4ccb23edbe5b68db16329d563a19eeee7fa70d583dda3d2358f4e name cairo-dev-1.10.2.zip file cairo-dev_1.10.2-2_win32.zip chk b86f875bf776bbf578e3fa8c46866b84c93200b962b30d03cf795f82157e3167 # checked: 2013-04-29 wk file freetype-2.4.2.tar.bz2 chk 9a987aef8c50d9bcfdfdc9f012f8bd0de6095cc1a5524e62c1a037deb8dacbfe name freetype-2.4.2.zip file freetype_2.4.2-1_win32.zip chk bdf67e6573363fd2256a58295931cc1186382fd0ad1fe420059d6ffdb5fba7c0 name freetype-dev-2.4.2.zip file freetype-dev_2.4.2-1_win32.zip chk eed58c2807b65d5e0ec78031e89f1628577ad76bf47f02eaecde432c0b99eae9 server http://www.fontconfig.org/release # checked: 2013-04-29 wk - 2.8.0 still the latest in 2.8 file fontconfig-2.8.0.tar.gz chk fa2a1c6eea654d9fce7a4b1220f10c99cdec848dccaf1625c01f076b31382335 server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2013-04-29 wk name fontconfig-2.8.0.zip file fontconfig_2.8.0-2_win32.zip chk 9d6bcaeed0eced43a649953132d9f2b3e15b98c7bb9e4a207872dfeade818204 name fontconfig-dev-2.8.0.zip file fontconfig-dev_2.8.0-2_win32.zip chk 2f15af3d27ca507dad2a208e58409f484aa7e7c7eac10b49edca079b31ae7073 server ftp://ftp.g10code.com/g10code/misc # checked: 2013-04-29 wk - 2.0.1 still the latest in 2.0 file expat-2.0.1.tar.gz chk 847660b4df86e707c9150e33cd8c25bc5cd828f708c7418e765e3e983a2e5e93 server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2013-04-29 wk name expat-2.0.1.zip file expat_2.0.1-1_win32.zip chk 77b88ab780e698d6590426b26a877878584b9f8b6357909699674fb5045737bd name expat-dev-2.0.1.zip file expat-dev_2.0.1-1_win32.zip chk 67b92b7f3441fee077bdc0094bf4dd673870acdf51899e32e199246801538162 # # GTK+ # server http://ftp.gnome.org/pub/gnome/sources/gtk+/2.24 # last-changed: 2015-06-05 # by: ah # verified: chk from https://download.gnome.org/core/3.17/3.17.2/sources/SHA256SUMS-for-xz file gtk+-2.24.28.tar.xz chk b2c6441e98bc5232e5f9bba6965075dcf580a8726398f7374d39f90b88ed4656 # # GIMP stuff for W32 # server http://ftp.gnome.org/pub/gnome/binaries/win32/dependencies # checked: 2012-03-28 wk - Not updated - not a security problem name pkgconfig-0.23.tar.gz file pkg-config-0.23.tar.gz chk 08a0e072d6a05419a58124db864f0685e6ac96e71b2875bf15ac12714e983b53 name pkgconfig-0.23.zip file pkg-config_0.23-3_win32.zip chk 677d6055494e24cad6c49eab33eee618ddc6ed65da827c8b5b7da761b4063278 # PNG # last changed: 2017-08-28 # by: js # verified: Sig 8048 643B A2C8 40F4 F92A 195F F549 84BF A16C 640F server ftp://ftp.simplesystems.org/pub/png/src file libpng14/libpng-1.4.22.tar.xz chk 8d419a8b2a5edddda5cbcb897ded92205344a3249fa7a00d6384ea23ac3ccbd8 # # LibFFI # server ftp://sourceware.org/pub/libffi # checked: 2013-04-29 wk - updated from 3.0.10. # checked: 2014-07-16 ah - only rc availble from 3.0.14 file libffi-3.0.13.tar.gz chk 1dddde1400c3bcb7749d398071af88c3e4754058d2d4c0b3696c2f82dc5cf11c # # GpgOL # server http://files.gpg4win.org/src # last-changed: 2018-01-12 # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgol/gpgol-2.0.6.tar.bz2 chk 6cb06f7c79f40d94c4b9da7123971e62767180a2f8d1ec99e7eacc3f241238a5 # for beta #server http://files.gpg4win.org/Beta/gpgol #file 2.0.6-beta9/gpgol-2.0.6-beta9.tar.bz2 #chk 1e956632633a708da46bdd932d34f76350c001d3b857efd75ccc55a0b7a28fb7 # # GpgEX # # last-changed: 2017-09-12 # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgex/gpgex-1.0.5.tar.bz2 chk f2696a34f77f4afb4e9bef82ea73ebbed59e07c534c68b5c5afd976dddd86feb # # Pth emulation # server ftp://ftp.g10code.com/g10code/w32pth # checked: 2014-07-16 ah file w32pth-2.0.5.tar.bz2 chk 5e462d06ed50e9e961546ab5264258e606b101860a74c1e410d086432ec27a06 # # Stripped down version of BZIP2 # (full source at http://bzip.org) # server ftp://ftp.g10code.com/g10code/bzip2 # checked: 2014-07-16 ah file bzip2-1.0.6-g10.tar.gz chk c2a9b3aec1a38d34b66106116a39f64b01d84f475fef75c40ea0bda0ea67ed07 # # GnuPG et al. # # All tarballs from this server are verified with an openpgp # signature made by "Werner Koch (dist sig)". # D869 2123 C406 5DEA 5E0F 3AB5 249B 39D2 4F25 E3B6 server ftp://ftp.gnupg.org/gcrypt # last-changed: 2016-11-14 # by: ah file libgpg-error/libgpg-error-1.27.tar.bz2 chk 4f93aac6fecb7da2b92871bb9ee33032be6a87b174f54abf8ddf0911a22d29d2 # last-changed: 2017-12-07 # by: ah file libassuan/libassuan-2.5.1.tar.bz2 chk 47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449 # last changed: 2018-01-11 # by: ah name gnupg-w32-2.2.4-20171220-bin.exe file binary/gnupg-w32-2.2.4_20171220.exe chk 2030f00548ec175cac4996a8128ed71393c156429d95f3e6c2f53194b2f4d885 name gnupg-w32-2.2.4-20171220-src.tar.xz file binary/gnupg-w32-2.2.4_20171220.tar.xz chk b9707e1c761b6bfef9d9062f188e0c9fc41c1f98da67c71cb75984d46d019d72 # last changed: 2017-12-05 # by: ah file pinentry/pinentry-1.1.0.tar.bz2 chk 68076686fa724a290ea49cdf0d1c0c1500907d1b759a3bcbfbec0293e8f56570 # last changed: 2018-01-11 # by: ah file gpgme/gpgme-1.10.0.tar.bz2 chk 1a8fed1197c3b99c35f403066bb344a26224d292afc048cfdfc4ccd5690a0693 # last changed: 2017-01-04 # by: ah file gpa/gpa-0.9.10.tar.bz2 chk c3b9cc36fd9916e83524930f99df13b1d5f601f4c0168cb9f5d81422e282b727 # # GnuPG utilities # server http://www.jabberwocky.com/software/paperkey # last-changed: 2017-12-05 # by: ah # verified: SIG 7D92 FD31 3AB6 F373 4CC5 9CA1 DB69 8D71 9924 2560 file paperkey-1.5.tar.gz chk c4737943083ce92e41faf13c27a9d608105b6285c0840dfb684a7ee294142ddf # # Kleopatra and dependencies # # Boost # last changes: 2016-01-21 # by: ah # verified: Second source https://github.com/mxe/mxe/commit/fdd5b9f7aa8bf0e40c1f1f8119701af96e51457e server http://downloads.sourceforge.net/project/boost/boost/ name boost-1.60.0.tar.bz2 file 1.60.0/boost_1_60_0.tar.bz2 chk 686affff989ac2488f79a97b9479efb9f2abae035b5ed4d8226de6857933fd3b # Qt base -# last changed: 2016-07-22 +# last changed: 2018-02-27 # by: ah -# verified: HTTPS https://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtbase-opensource-src-5.8.0.tar.xz.sha256 +# verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtbase-everywhere-src-5.10.1.tar.xz.sha256 server http://download.qt.io/official_releases/qt/ -name qtbase-5.8.0.tar.xz -file 5.8/5.8.0/submodules/qtbase-opensource-src-5.8.0.tar.xz -chk c17111ae02a44dc7be1ec2cf979a47ee9e58edf4904041a525c21f4fa53fc005 +name qtbase-5.10.1.tar.xz +file 5.10/5.10.1/submodules/qtbase-everywhere-src-5.10.1.tar.xz +chk d8660e189caa5da5142d5894d328b61a4d3ee9750b76d61ad74e4eee8765a969 # Qt Tools -# last changed: 2016-07-22 +# last changed: 2018-02-27 # by: ah -# verified: HTTPS https://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qttools-opensource-src-5.8.0.tar.xz.sha256 -name qttools-5.8.0.tar.xz -file 5.8/5.8.0/submodules/qttools-opensource-src-5.8.0.tar.xz -chk 95ec8e76d393b6ba26ffff5041fce41946d2bf3aec1402c6533e24d9fc269d83 +# verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qttools-everywhere-src-5.10.1.tar.xz.sha256 +name qttools-5.10.1.tar.xz +file 5.10/5.10.1/submodules/qttools-everywhere-src-5.10.1.tar.xz +chk f1ea441e5fe138756e6de3b60ab7d8d3051799eabe85a9408c995dfd4d048a53 # Qt Winextras -# last changed: 2016-07-22 +# last changed: 2018-02-27 # by: ah -# verified: HTTPS https://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtwinextras-opensource-src-5.8.0.tar.xz.sha256 -name qtwinextras-5.8.0.tar.xz -file 5.8/5.8.0/submodules/qtwinextras-opensource-src-5.8.0.tar.xz -chk 27ff7b94bd465709d5f8409b3e02a3a393e908613357b1edbf18ebbcb0c2c19c +# verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtwinextras-everywhere-src-5.10.1.tar.xz.sha256 +name qtwinextras-5.10.1.tar.xz +file 5.10/5.10.1/submodules/qtwinextras-everywhere-src-5.10.1.tar.xz +chk 12401eea9abe87307b9aeba9d539ad403858ea43a99248421caf069f27b28917 # Qt svg -# last changed: 2016-07-22 +# last changed: 2018-02-27 # by: ah -# verified: HTTPS https://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qtsvg-opensource-src-5.8.0.tar.xz.sha256 -name qtsvg-5.8.0.tar.xz -file 5.8/5.8.0/submodules/qtsvg-opensource-src-5.8.0.tar.xz -chk 9873191c211ab4da9c0bc47b1e3549f475db4d448bba3175e0f86b24eefadc89 +# verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qtsvg-everywhere-src-5.10.1.tar.xz.sha256 +name qtsvg-5.10.1.tar.xz +file 5.10/5.10.1/submodules/qtsvg-everywhere-src-5.10.1.tar.xz +chk 00e00c04abcc8363cf7d94ca8b16af61840995a4af23685d49fa4ccafa1c7f5a -# Qt svg -# last changed: 2017-08-22 +# Qt translations +# last changed: 2018-02-27 # by: ah -# verified: HTTPS https://download.qt.io/official_releases/qt/5.8/5.8.0/submodules/qttranslations-opensource-src-5.8.0.tar.xz.sha256 -name qttranslations-5.8.0.tar.xz -file 5.8/5.8.0/submodules/qttranslations-opensource-src-5.8.0.tar.xz -chk 3b7cf72ec50bc2a02bf4e4427b184febac909dba0e02e1861321ca1629c3fc2e +# verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.10.1/submodules/qttranslations-everywhere-src-5.10.1.tar.xz.sha256 +name qttranslations-5.10.1.tar.xz +file 5.10/5.10.1/submodules/qttranslations-everywhere-src-5.10.1.tar.xz +chk 1f6d840e3d04b00b976bc1a86ea2be9d61051b7c3455dc2b891fae61772643fd # KDE Frameworks generated by gen-frameworks.sh server http://ftp.iij.ad.jp/pub/X11/KDE/Attic/frameworks ##### Paste Here ##### # extra-cmake-modules # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/extra-cmake-modules-5.30.0.tar.xz chk 7da9647514e134db5054ab4848d4bfa6054537593a95720a7a9361f8cc71a96c # kconfig # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kconfig-5.30.0.tar.xz chk a29a3ccb6c9e8124eca488417d602e689dc7240f9b10510f4152e739fdc143dc # ki18n # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/ki18n-5.30.0.tar.xz chk 2dd2d0835570c5e9fcdabd124613131cb4042a4deb3a38e68ed05daf6fcd72f3 # kwidgetsaddons # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kwidgetsaddons-5.30.0.tar.xz chk 34c322aa53a33ed883d8082e2435cd9464fb9d3f63e50c4a81d87166088fc24a # kcompletion # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kcompletion-5.30.0.tar.xz chk a667bd28575ba4462ed365ce3ea7d35e3f86b20e6fc034365914949205ee0588 # kwindowsystem # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kwindowsystem-5.30.0.tar.xz chk 20ac7025f998f85e83f72609038b4bf7051f3c373dc039faf30340c595e7e16b # kcoreaddons # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kcoreaddons-5.30.0.tar.xz chk f62bcef0aa391362e8797eb03135ad9d9b9fd5f3741298241ffb59eb182da040 # kcodecs # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kcodecs-5.30.0.tar.xz chk 6eb6935512e01a70d730938c28cb84852e73d4c023deebb5f2946b4c760f2aee # kconfigwidgets # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kconfigwidgets-5.30.0.tar.xz chk 021d85537faf01b9a88a9614edf9011a7e2dac752330f4928a287f4832263996 # kxmlgui # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kxmlgui-5.30.0.tar.xz chk da3f6f59aed6d7970f78a040e387fcec6509a2bac3e6efaa965b6600c9b1ac00 # kguiaddons # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kguiaddons-5.30.0.tar.xz chk f55f5b5ffe0e330ae3ee5971cf8d206040d82bd52d677a8478d6a9c88c8ac04e # kitemviews # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kitemviews-5.30.0.tar.xz chk 5e8466caa4d27cd78e37c3814e495590158a5a57cbb61e8d07505cea72d3a43b # kitemmodels # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kitemmodels-5.30.0.tar.xz chk aeb94534470bb581196a3e2eef158694c5b5727a7e9db8ca2d873fdcbf5bc2f9 # kiconthemes # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/kiconthemes-5.30.0.tar.xz chk e969d2180f0d5b0802e7c57d63ff78314562cad4b50dbb3a0935d5edc4c33d6a # breeze-icons # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/breeze-icons-5.30.0.tar.xz chk 53e533d006e0289b969ee37534a71f02b2708cee28cfa829b95a144f75010759 # karchive # last changed: 2017-02-02 # by: ah # verified: https://www.kde.org/info/kde-frameworks-5.30.0.php (created by gen-frameworks.sh) file 5.30/karchive-5.30.0.tar.xz chk 18b35d437e7cbf6f00983d0f66372cbd6a0daedaa58e6c092838c20845571f38 ##### End Paste ##### # KDE Applications server https://download.kde.org/Attic/applications # kmime # last changed: 2017-02-02 # by: ah # verified: https://download.kde.org/Attic/applications/16.12.3/src/kmime-16.12.3.tar.xz.mirrorlist file 16.12.3/src/kmime-16.12.3.tar.xz chk 40c874c98c0eb0c76e9a5015aab5d5ed791c1e0bed138f412fb496031e80eb3f # Devel versions are needed until Kleopatra can be based on # a stable branch. server http://files.intevation.de/projects/gpg4all # by: ah #file gpgme/gpgme-1.10.0-beta90.tar.bz2 #chk d7b8f5456192349df14287f5e5222f1e44102b36a7558c98fa09a9251957e808 # Libkleo # last changed: see package date. # by: ah # verified: Tarball created by ah. file libkleo/libkleo-201802071408.tar.gz chk e74fbccf7ac8766dd7bca29c43ce3f21be5f85e83903a9a6790c792f037fd547 # KDE-L10n # last changed: see package date. # by: ah # verified: Tarball created by ah with script kde-l10n.sh file kde-l10n/kde-l10n-201712080943-bin.tar.xz chk 9c3da7c8b99c9f3eff5b0bd57fc5d100ebfcc3717516a5e2e7261481503943b8 file kde-l10n/kde-l10n-201712080943-src.tar.xz chk 4e6993d5a28de4f4338d96de0edb5d7cb9243976d647162d0539b021a853bafb # Gpg4win-tools package (experimental) # last changed: see package date. # by: ah # verified: Tarball created by ah. file gpg4win-tools/gpg4win-tools-201802071407.tar.gz chk 4bfaad6ce235b0ee390d48df69764874317b7a6eb2433a8fec4120ce2ff9f6f5 # Kleopatra # last changed: see package date. # by: ah # verified: Tarball created by ah. file kleopatra/kleopatra-201801121054.tar.gz chk 5b82c0bbb87b558e6d66a729eca8a5170af2c9787a528fe187a64cacd1d180b1 diff --git a/patches/qtbase/config-standardpaths.patch b/patches/qtbase/config-standardpaths.patch index 9987aa7f..c1483e69 100755 --- a/patches/qtbase/config-standardpaths.patch +++ b/patches/qtbase/config-standardpaths.patch @@ -1,252 +1,139 @@ -#! /bin/sh +i#! /bin/sh patch -p1 -f -l $* < $0 exit $? -diff -Nru qtbase-5.6.1.orig/src/corelib/global/global.pri qtbase-5.6.1/src/corelib/global/global.pri ---- qtbase-5.6.1.orig/src/corelib/global/global.pri 2016-07-22 15:11:23.303466531 +0200 -+++ qtbase-5.6.1/src/corelib/global/global.pri 2016-07-22 15:11:49.940044214 +0200 -@@ -10,6 +10,7 @@ - global/qnumeric_p.h \ - global/qnumeric.h \ - global/qglobalstatic.h \ -+ global/qlibraryinfo_p.h \ - global/qlibraryinfo.h \ - global/qlogging.h \ - global/qtypeinfo.h \ -diff -Nru qtbase-5.6.1.orig/src/corelib/global/qlibraryinfo.cpp qtbase-5.6.1/src/corelib/global/qlibraryinfo.cpp ---- qtbase-5.6.1.orig/src/corelib/global/qlibraryinfo.cpp 2016-07-22 15:11:23.303466531 +0200 -+++ qtbase-5.6.1/src/corelib/global/qlibraryinfo.cpp 2016-07-22 15:11:49.940044214 +0200 -@@ -38,6 +38,7 @@ - #include "qsettings.h" - #include "qlibraryinfo.h" - #include "qscopedpointer.h" -+#include "qlibraryinfo_p.h" - - #ifdef QT_BUILD_QMAKE - QT_BEGIN_NAMESPACE -@@ -77,37 +78,33 @@ - }; - Q_GLOBAL_STATIC(QLibrarySettings, qt_library_settings) - --class QLibraryInfoPrivate --{ --public: -- static QSettings *findConfiguration(); - #ifdef QT_BUILD_QMAKE -- static bool haveGroup(QLibraryInfo::PathGroup group) -- { -- QLibrarySettings *ls = qt_library_settings(); -- return ls ? (group == QLibraryInfo::EffectiveSourcePaths -- ? ls->haveEffectiveSourcePaths -- : group == QLibraryInfo::EffectivePaths -- ? ls->haveEffectivePaths -- : group == QLibraryInfo::DevicePaths -- ? ls->haveDevicePaths -- : ls->havePaths) : false; -- } -+bool QLibraryInfoPrivate::haveGroup(QLibraryInfo::PathGroup group) -+{ -+ QLibrarySettings *ls = qt_library_settings(); -+ return ls ? (group == QLibraryInfo::EffectiveSourcePaths -+ ? ls->haveEffectiveSourcePaths -+ : group == QLibraryInfo::EffectivePaths -+ ? ls->haveEffectivePaths -+ : group == QLibraryInfo::DevicePaths -+ ? ls->haveDevicePaths -+ : ls->havePaths) : false; -+} - #endif -- static QSettings *configuration() -- { -- QLibrarySettings *ls = qt_library_settings(); -- if (ls) { -+QSettings *QLibraryInfoPrivate::configuration() -+{ -+ QLibrarySettings *ls = qt_library_settings(); -+ if (ls) { - #ifndef QT_BUILD_QMAKE -- if (ls->reloadOnQAppAvailable && QCoreApplication::instance() != 0) -- ls->load(); -+ if (ls->reloadOnQAppAvailable && QCoreApplication::instance() != 0) -+ ls->load(); - #endif -- return ls->settings.data(); -- } else { -- return 0; -- } -+ return ls->settings.data(); -+ } else { -+ return 0; - } --}; -+} -+ - - static const char platformsSection[] = "Platforms"; - -diff -Nru qtbase-5.6.1.orig/src/corelib/global/qlibraryinfo_p.h qtbase-5.6.1/src/corelib/global/qlibraryinfo_p.h ---- qtbase-5.6.1.orig/src/corelib/global/qlibraryinfo_p.h 1970-01-01 01:00:00.000000000 +0100 -+++ qtbase-5.6.1/src/corelib/global/qlibraryinfo_p.h 2016-07-22 15:11:49.940044214 +0200 -@@ -0,0 +1,61 @@ -+/**************************************************************************** -+** -+** Copyright (C) 2015 The Qt Company Ltd. -+** Contact: http://www.qt.io/licensing/ -+** -+** This file is part of the QtCore module of the Qt Toolkit. -+** -+** $QT_BEGIN_LICENSE:LGPL21$ -+** Commercial License Usage -+** Licensees holding valid commercial Qt licenses may use this file in -+** accordance with the commercial license agreement provided with the -+** Software or, alternatively, in accordance with the terms contained in -+** a written agreement between you and The Qt Company. For licensing terms -+** and conditions see http://www.qt.io/terms-conditions. For further -+** information use the contact form at http://www.qt.io/contact-us. -+** -+** GNU Lesser General Public License Usage -+** Alternatively, this file may be used under the terms of the GNU Lesser -+** General Public License version 2.1 or version 3 as published by the Free -+** Software Foundation and appearing in the file LICENSE.LGPLv21 and -+** LICENSE.LGPLv3 included in the packaging of this file. Please review the -+** following information to ensure the GNU Lesser General Public License -+** requirements will be met: https://www.gnu.org/licenses/lgpl.html and -+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -+** -+** As a special exception, The Qt Company gives you certain additional -+** rights. These rights are described in The Qt Company LGPL Exception -+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -+** -+** $QT_END_LICENSE$ -+** -+****************************************************************************/ -+ -+#ifndef QLIBRARYINFO_P_H -+#define QLIBRARYINFO_P_H -+ -+// -+// W A R N I N G -+// ------------- -+// -+// This file is not part of the Qt API. It exists purely as an -+// implementation detail. This header file may change from version to -+// version without notice, or even be removed. -+// -+// We mean it. -+// -+ -+#include "qsettings.h" -+#include "qlibraryinfo.h" -+ -+class QLibraryInfoPrivate -+{ -+public: -+ static QSettings *findConfiguration(); -+#ifdef QT_BUILD_QMAKE -+ static bool haveGroup(QLibraryInfo::PathGroup group); -+#endif -+ static QSettings *configuration(); -+}; -+ -+#endif -\ No newline at end of file diff -Nru qtbase-5.6.1.orig/src/corelib/io/qstandardpaths.cpp qtbase-5.6.1/src/corelib/io/qstandardpaths.cpp --- qtbase-5.6.1.orig/src/corelib/io/qstandardpaths.cpp 2016-07-22 15:11:23.307466618 +0200 +++ qtbase-5.6.1/src/corelib/io/qstandardpaths.cpp 2016-07-22 15:12:52.629403686 +0200 -@@ -41,6 +41,14 @@ - #include +@@ -56,6 +56,14 @@ + #include #endif -+#if !defined(QT_BUILD_QMAKE) && !defined(QT_NO_SETTINGS) && !defined(QT_BOOTSTRAPPED) -+#include "../global/qlibraryinfo_p.h" ++#if !defined(QT_BUILD_QMAKE) && !defined(QT_NO_SETTINGS) +#include ++#include +#endif +#ifdef Q_OS_WIN +#include +#endif + #ifndef QT_NO_STANDARDPATHS QT_BEGIN_NAMESPACE -@@ -655,6 +663,55 @@ +@@ -671,6 +679,90 @@ return qsp_testMode; } +static const char standardPathsSection[] = "StandardPaths"; + ++static QSettings *findConfiguration() ++{ ++#ifdef QT_BUILD_QMAKE ++ QString qtconfig = qmake_libraryInfoFile(); ++ if (QFile::exists(qtconfig)) ++ return new QSettings(qtconfig, QSettings::IniFormat); ++#else ++ QString qtconfig = QStringLiteral(":/qt/etc/qt.conf"); ++ if (QFile::exists(qtconfig)) ++ return new QSettings(qtconfig, QSettings::IniFormat); ++#ifdef Q_OS_DARWIN ++ CFBundleRef bundleRef = CFBundleGetMainBundle(); ++ if (bundleRef) { ++ QCFType urlRef = CFBundleCopyResourceURL(bundleRef, ++ QCFString(QLatin1String("qt.conf")), ++ 0, ++ 0); ++ if (urlRef) { ++ QCFString path = CFURLCopyFileSystemPath(urlRef, kCFURLPOSIXPathStyle); ++ qtconfig = QDir::cleanPath(path); ++ if (QFile::exists(qtconfig)) ++ return new QSettings(qtconfig, QSettings::IniFormat); ++ } ++ } ++#endif ++ if (QCoreApplication::instance()) { ++ QDir pwd(QCoreApplication::applicationDirPath()); ++ qtconfig = pwd.filePath(QLatin1String("qt.conf")); ++ if (QFile::exists(qtconfig)) ++ return new QSettings(qtconfig, QSettings::IniFormat); ++ } ++#endif ++ return 0; //no luck ++} ++ +QString QStandardPaths::presetLocation(StandardLocation type) +{ +#if !defined(QT_BUILD_QMAKE) && !defined(QT_NO_SETTINGS) && !defined(QT_BOOTSTRAPPED) + QStringList locations = QStringList() << QStringLiteral("DesktopLocation") + << QStringLiteral("DocumentsLocation") + << QStringLiteral("FontsLocation") + << QStringLiteral("ApplicationsLocation") + << QStringLiteral("MusicLocation") + << QStringLiteral("MoviesLocation") + << QStringLiteral("PicturesLocation") + << QStringLiteral("TempLocation") + << QStringLiteral("HomeLocation") + << QStringLiteral("DataLocation") + << QStringLiteral("CacheLocation") + << QStringLiteral("GenericDataLocation") + << QStringLiteral("RuntimeLocation") + << QStringLiteral("ConfigLocation") + << QStringLiteral("DownloadLocation") + << QStringLiteral("GenericCacheLocation") + << QStringLiteral("GenericConfigLocation") + << QStringLiteral("AppDataLocation") + << QStringLiteral("AppConfigLocation") + << QStringLiteral("AppLocalDataLocation"); + -+ QScopedPointer settings(QLibraryInfoPrivate::findConfiguration()); ++ QScopedPointer settings(findConfiguration()); + if (!settings.isNull()) { + QString key = QLatin1String(standardPathsSection); + key += QLatin1Char('/'); + key += locations[type]; + const QString value = settings->value(key).toString(); +#ifdef Q_OS_WIN + if (value.isEmpty()) +#endif + return value; +#ifdef Q_OS_WIN + wchar_t expandedPath[MAX_PATH] = {0}; + if (ExpandEnvironmentStrings((wchar_t*)value.utf16(), expandedPath, MAX_PATH)) { + return QString::fromWCharArray(expandedPath).replace("\\", "//"); + } + return value; +#endif + } +#endif // !QT_BUILD_QMAKE && !QT_NO_SETTINGS + + return QString(); +} + QT_END_NAMESPACE -diff -Nru qtbase-5.6.1.orig/src/corelib/io/qstandardpaths.h qtbase-5.6.1/src/corelib/io/qstandardpaths.h +:diff -Nru qtbase-5.6.1.orig/src/corelib/io/qstandardpaths.h qtbase-5.6.1/src/corelib/io/qstandardpaths.h --- qtbase-5.6.1.orig/src/corelib/io/qstandardpaths.h 2016-07-22 15:11:23.307466618 +0200 +++ qtbase-5.6.1/src/corelib/io/qstandardpaths.h 2016-07-22 15:11:49.940044214 +0200 @@ -92,6 +92,8 @@ static bool isTestModeEnabled(); private: + static QString presetLocation(StandardLocation type); + // prevent construction QStandardPaths(); ~QStandardPaths(); diff -Nru qtbase-5.6.1.orig/src/corelib/io/qstandardpaths_win.cpp qtbase-5.6.1/src/corelib/io/qstandardpaths_win.cpp --- qtbase-5.6.1.orig/src/corelib/io/qstandardpaths_win.cpp 2016-07-22 15:11:23.307466618 +0200 +++ qtbase-5.6.1/src/corelib/io/qstandardpaths_win.cpp 2016-07-22 15:13:41.682467339 +0200 @@ -203,7 +203,9 @@ QString QStandardPaths::writableLocation(StandardLocation type) { - QString result; + QString result = QStandardPaths::presetLocation(type); + if (!result.isEmpty()) + return result; switch (type) { case DownloadLocation: result = sHGetKnownFolderPath(qCLSID_FOLDERID_Downloads, type); diff --git a/patches/qtbase/qtbase-mingw-fixes.patch b/patches/qtbase/qtbase-mingw-fixes.patch index 2c1d6153..ee19679c 100755 --- a/patches/qtbase/qtbase-mingw-fixes.patch +++ b/patches/qtbase/qtbase-mingw-fixes.patch @@ -1,197 +1,210 @@ #! /bin/sh patch -p1 -f -l $* < $0 exit $? Taken from MXE From 12eed60ff166200c12d203d0daaa6c58c41df0ea Mon Sep 17 00:00:00 2001 From: Ray Donnelly Date: Wed, 26 Aug 2015 12:45:43 +0100 Subject: [PATCH 1/5] cmake: Rearrange STATIC vs INTERFACE targets Otherwise we attempt to add_library(Qt5::UiPlugin STATIC IMPORTED) for header-only modules when building Qt5 statically. Source: https://git.io/vzWJz See also: https://github.com/mxe/mxe/issues/1185 diff --git a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in index d2358ca..6b1dc95 100644 --- a/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in +++ b/mkspecs/features/data/cmake/Qt5BasicConfig.cmake.in @@ -222,13 +222,13 @@ if (NOT TARGET Qt5::$${CMAKE_MODULE_NAME}) endif() !!ENDIF +!!IF equals(TEMPLATE, aux) + add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) +!!ELSE !!IF !isEmpty(CMAKE_STATIC_TYPE) add_library(Qt5::$${CMAKE_MODULE_NAME} STATIC IMPORTED) set_property(TARGET Qt5::$${CMAKE_MODULE_NAME} PROPERTY IMPORTED_LINK_INTERFACE_LANGUAGES "CXX") !!ELSE -!!IF equals(TEMPLATE, aux) - add_library(Qt5::$${CMAKE_MODULE_NAME} INTERFACE IMPORTED) -!!ELSE add_library(Qt5::$${CMAKE_MODULE_NAME} SHARED IMPORTED) !!ENDIF !!ENDIF -- 2.9.3 -From 9d8bca4d8c1d312cca4b161c93a091147dd7aa37 Mon Sep 17 00:00:00 2001 +From 68f406b40eb3708809c042dfaf41b5366b437308 Mon Sep 17 00:00:00 2001 From: Tony Theodore Date: Sat, 16 Jul 2016 20:31:07 +1000 -Subject: [PATCH 2/5] Fix pkgconfig file and library naming +Subject: [PATCH 2/6] Fix pkgconfig file and library naming See: https://codereview.qt-project.org/#/c/165394/ https://bugreports.qt.io/browse/QTBUG-30898 Currently, *.pc files are generated with debug suffix `d` in `-release` mode and without the suffix in `-debug` or `-debug-and-release`. This can be worked around by `CONIFG-=debug_and_release`, however, a more predictable and consistent naming approach would be preferable. This change mimics the *.prl file and lib conventions: -release: creates normal *.pc files and lib names -release -force-debug-info: normal as above -debug: creates *d.pc and *d lib names -debug-and-release: creates both -default: creates both (default link: debug) and should be unsurprising to users of `pkg-config`. At very least, it's deterministic and easily incorporated into build systems. Task-number: 30898 Change-Id: If75336ec7d21a7ec0cb6d245fe87c64afcb5a644 diff --git a/mkspecs/features/qt_module.prf b/mkspecs/features/qt_module.prf -index 31d6285..8e24520 100644 +index e6a0d97f1a..5aefea28e5 100644 --- a/mkspecs/features/qt_module.prf +++ b/mkspecs/features/qt_module.prf -@@ -248,6 +248,10 @@ load(qt_installs) +@@ -265,6 +265,10 @@ load(qt_installs) load(qt_targets) +# Set TARGET towards the end but before pkgconfig setup to keep naming +# conventions consistent with *prl files +TARGET = $$qt5LibraryTarget($$TARGET$$QT_LIBINFIX) + # this builds on top of qt_common !internal_module:!lib_bundle:if(unix|mingw) { CONFIG += create_pc -@@ -258,12 +262,12 @@ load(qt_targets) +@@ -275,12 +279,12 @@ load(qt_targets) QMAKE_PKGCONFIG_LIBDIR = $$[QT_INSTALL_LIBS/raw] QMAKE_PKGCONFIG_INCDIR = $$[QT_INSTALL_HEADERS/raw] - QMAKE_PKGCONFIG_CFLAGS = -I${includedir}/$$MODULE_INCNAME + QMAKE_PKGCONFIG_CFLAGS = -D$$MODULE_DEFINE -I${includedir}/$$MODULE_INCNAME - QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt, "Qt$$QT_MAJOR_VERSION ") - QMAKE_PKGCONFIG_FILE = $$replace(TARGET, ^Qt, Qt$$QT_MAJOR_VERSION) + QMAKE_PKGCONFIG_NAME = $$replace(TARGET, ^Qt$$QT_MAJOR_VERSION, "Qt$$QT_MAJOR_VERSION ") + QMAKE_PKGCONFIG_FILE = $$TARGET for(i, MODULE_DEPENDS): \ -- QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION)) -+ QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$eval(QT.$${i}.MAJOR_VERSION))$$qtPlatformTargetSuffix() +- QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$section(QT.$${i}.VERSION, ., 0, 0)) ++ QMAKE_PKGCONFIG_REQUIRES += $$replace(QT.$${i}.name, ^Qt, Qt$$section(QT.$${i}.VERSION, ., 0, 0))$$qtPlatformTargetSuffix() isEmpty(QMAKE_PKGCONFIG_DESCRIPTION): \ - QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt, "Qt ") module + QMAKE_PKGCONFIG_DESCRIPTION = $$replace(TARGET, ^Qt$$QT_MAJOR_VERSION, "Qt ") module pclib_replace.match = $$lib_replace.match !isEmpty(lib_replace.replace): \ pclib_replace.replace = $$QMAKE_PKGCONFIG_LIBDIR -@@ -297,5 +301,3 @@ win32 { +@@ -314,5 +318,3 @@ win32 { # On other platforms, Qt's own compilation goes needs to compile the Qt 5.0 API DEFINES *= QT_DISABLE_DEPRECATED_BEFORE=0x050000 } - -TARGET = $$qt5LibraryTarget($$TARGET$$QT_LIBINFIX) # Do this towards the end -- -2.9.3 +2.14.1 -From e4da2904bcab29d15ad137508390bec0595c0e72 Mon Sep 17 00:00:00 2001 +From d0ccaee377241a6b661ccb9a6d57ebc694b50f76 Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Sun, 29 Jan 2017 13:02:16 +0100 -Subject: [PATCH 3/5] reenable fontconfig for win32 (MXE-specific) +Subject: [PATCH 3/6] reenable fontconfig for win32 (MXE-specific) Change-Id: I05b036366bd402e43309742412bcf8ca91fe125f diff --git a/src/gui/configure.json b/src/gui/configure.json -index 1f50116..dd94429 100644 +index dab66fafb4..b90ce6e4d9 100644 --- a/src/gui/configure.json +++ b/src/gui/configure.json -@@ -471,7 +471,7 @@ +@@ -956,7 +956,7 @@ }, "fontconfig": { "label": "Fontconfig", - "condition": "!config.win32 && !config.darwin && features.system-freetype && libs.fontconfig", + "condition": "!config.darwin && features.system-freetype && libs.fontconfig", "output": [ "privateFeature", "feature" ] }, "gbm": { diff --git a/src/plugins/platforms/minimal/qminimalintegration.cpp b/src/plugins/platforms/minimal/qminimalintegration.cpp -index 03c7250..7d0ffbd 100644 +index ca33689cd7..194523eee0 100644 --- a/src/plugins/platforms/minimal/qminimalintegration.cpp +++ b/src/plugins/platforms/minimal/qminimalintegration.cpp -@@ -120,7 +120,11 @@ QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const - if (m_options & EnableFonts) { +@@ -130,7 +130,11 @@ QPlatformFontDatabase *QMinimalIntegration::fontDatabase() const + { + if (!m_fontDatabase && (m_options & EnableFonts)) { #if QT_CONFIG(fontconfig) - if (!m_fontDatabase) +#ifdef Q_OS_WIN -+ m_fontDatabase = new QBasicFontDatabase; ++ m_fontDatabase = new QFreeTypeFontDatabase; +#else - m_fontDatabase = new QGenericUnixFontDatabase; + m_fontDatabase = new QGenericUnixFontDatabase; +#endif - #else - return QPlatformIntegration::fontDatabase(); - #endif + #elif defined(Q_OS_WINRT) + m_fontDatabase = new QWinRTFontDatabase; + #elif defined(Q_OS_WIN) -- -2.9.3 +2.14.1 -From db3c6f5fecb9b93f3553273576954d363d0630bc Mon Sep 17 00:00:00 2001 -From: Mark Brand -Date: Sun, 29 Jan 2017 14:00:06 +0100 -Subject: [PATCH 4/5] fix included file name case - -Change-Id: I026787441aa43128aec001cfe1a7bc8d37799826 - -diff --git a/src/plugins/platforms/windows/qwin10helpers.cpp b/src/plugins/platforms/windows/qwin10helpers.cpp -index 977bbfd..12cccd1 100644 ---- a/src/plugins/platforms/windows/qwin10helpers.cpp -+++ b/src/plugins/platforms/windows/qwin10helpers.cpp -@@ -57,7 +57,7 @@ - #endif - - #ifdef HAS_UI_VIEW_SETTINGS_INTEROP --# include -+# include - #endif - - #ifndef HAS_UI_VIEW_SETTINGS_INTEROP --- -2.9.3 - - -From ddf845adb0080016c2f69fcfa7e23edf70e5151a Mon Sep 17 00:00:00 2001 +From 35e8ce1f490f973045c77385f96acaa3736c8787 Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Sun, 29 Jan 2017 16:22:03 +0100 -Subject: [PATCH 5/5] fix treatment of SYBASE_LIBS +Subject: [PATCH 4/6] fix treatment of SYBASE_LIBS Change-Id: I4c9914cf7ef9d91feb0718a57f2551c1eeed47e0 -diff --git a/src/sql/configure.pri b/src/sql/configure.pri -index 1d8847b..229b6a1 100644 ---- a/src/sql/configure.pri -+++ b/src/sql/configure.pri -@@ -76,7 +76,7 @@ defineTest(qtConfLibrary_sybaseEnv) { +diff --git a/src/plugins/sqldrivers/configure.pri b/src/plugins/sqldrivers/configure.pri +index b69b51b679..d37423adbd 100644 +--- a/src/plugins/sqldrivers/configure.pri ++++ b/src/plugins/sqldrivers/configure.pri +@@ -92,7 +92,7 @@ defineTest(qtConfLibrary_sybaseEnv) { libs += "-L$${sybase}/lib" libs += $$getenv(SYBASE_LIBS) !isEmpty(libs) { - $${1}.libs = "$$val_escape(libs)" + $${1}.libs = $$libs export($${1}.libs) } return(true) -- -2.9.3 +2.14.1 + + +From 8427c411a789c537b41d113d1f8f9ea7eb9d009a Mon Sep 17 00:00:00 2001 +From: Mark Brand +Date: Thu, 23 Nov 2017 11:28:47 +0200 +Subject: [PATCH 6/6] disable qt_random_cpu for i686-w64-mingw32 + +Workaround for gcc internal error compiling for mingw32: + global/qrandom.cpp: In function 'qsizetype qt_random_cpu(void*, qsizetype)': + global/qrandom.cpp:123:1: internal compiler error: in + ix86_compute_frame_layout, at config/i386/i386.c:10145 + } + ^ + + global/qrandom.cpp:123:1: internal compiler error: Segmentation fault + i686-w64-mingw32.static-g++: internal compiler error: Segmentation fault + (program cc1plus) + +Based on https://codereview.qt-project.org/#/c/212360/ + +Change-Id: Ia1c902e7b147bdda2b8d7904b40a3b968b8d0369 + +diff --git a/src/corelib/global/qrandom.cpp b/src/corelib/global/qrandom.cpp +index 72ba299280..90a0f378ff 100644 +--- a/src/corelib/global/qrandom.cpp ++++ b/src/corelib/global/qrandom.cpp +@@ -92,7 +92,7 @@ DECLSPEC_IMPORT BOOLEAN WINAPI SystemFunction036(PVOID RandomBuffer, ULONG Rando + + QT_BEGIN_NAMESPACE + +-#if defined(Q_PROCESSOR_X86) && QT_COMPILER_SUPPORTS_HERE(RDRND) ++#if defined(Q_PROCESSOR_X86) && !defined(Q_PROCESSOR_X86_32) && QT_COMPILER_SUPPORTS_HERE(RDRND) + static qsizetype qt_random_cpu(void *buffer, qsizetype count) Q_DECL_NOTHROW; + + # ifdef Q_PROCESSOR_X86_64 +-- +2.14.1 diff --git a/patches/qtbase/relative-paths.patch b/patches/qtbase/relative-paths.patch index 9e38573f..1758f91a 100755 --- a/patches/qtbase/relative-paths.patch +++ b/patches/qtbase/relative-paths.patch @@ -1,62 +1,72 @@ #! /bin/sh patch -p1 -f -l $* < $0 exit $? Patch kindly provided by KDE Windows emerge. To look for files relative to the install location. --- a/src/corelib/io/qstandardpaths_win.cpp.orig 2017-05-02 12:09:46.110581259 +0200 +++ b/src/corelib/io/qstandardpaths_win.cpp 2017-05-02 12:11:15.540277570 +0200 @@ -223,6 +223,16 @@ dirs.append(QCoreApplication::applicationDirPath() + QLatin1String("/data")); #endif // !QT_BOOTSTRAPPED } // isConfigLocation() + dirs.append(QCoreApplication::applicationDirPath() + QLatin1String("/../share")); + if (type != GenericDataLocation && type != GenericConfigLocation) { + QString appData = QCoreApplication::applicationDirPath() + QLatin1String("/../share"); + if (!QCoreApplication::organizationName().isEmpty()) + appData += QLatin1Char('/') + QCoreApplication::organizationName(); + if (!QCoreApplication::applicationName().isEmpty()) + appData += QLatin1Char('/') + QCoreApplication::applicationName(); + dirs.append(appData); + } + dirs.append(QCoreApplication::applicationDirPath() + QLatin1String("/../etc/xdg")); return dirs; } diff --git a/src/gui/image/qiconloader.cpp b/src/gui/image/qiconloader.cpp index 06491f1..ef9436f 100644 --- a/src/gui/image/qiconloader.cpp +++ b/src/gui/image/qiconloader.cpp @@ -157,6 +157,7 @@ QStringList QIconLoader::themeSearchPaths() const { if (m_iconDirs.isEmpty()) { m_iconDirs = systemIconSearchPaths(); + m_iconDirs.append(QCoreApplication::applicationDirPath() + QLatin1String("/../share/icons")); // Always add resource directory as search path m_iconDirs.append(QLatin1String(":/icons")); } diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp index 66735d8..5731560 100644 --- a/src/plugins/platforms/windows/qwindowstheme.cpp +++ b/src/plugins/platforms/windows/qwindowstheme.cpp -@@ -338,6 +338,8 @@ +@@ -414,12 +414,16 @@ + static inline QStringList iconThemeSearchPaths() + { + const QFileInfo appDir(QCoreApplication::applicationDirPath() + QLatin1String("/icons")); +- return appDir.isDir() ? QStringList(appDir.absoluteFilePath()) : QStringList(); ++ QStringList ret; ++ ret << appDir.absoluteFilePath() << QCoreApplication::applicationDirPath() + QLatin1String("/../share/icons"); ++ ++ return ret; + } + static inline QStringList styleNames() { - QStringList result; -+ result.append(QStringLiteral("breeze")); -+ result.append(QStringLiteral("oxygen")); - if (QSysInfo::WindowsVersion >= QSysInfo::WV_VISTA) - result.append(QStringLiteral("WindowsVista")); - if (QSysInfo::WindowsVersion >= QSysInfo::WV_XP) -@@ -398,6 +400,10 @@ +- return { QStringLiteral("WindowsVista"), QStringLiteral("Windows") }; ++ return {QStringLiteral("breeze"), QStringLiteral("oxygen"), ++ QStringLiteral("WindowsVista"), QStringLiteral("Windows") }; + } + + static inline int uiEffects() +@@ -472,6 +476,10 @@ result = int(scrollLines); return QVariant(result); } + case QPlatformTheme::SystemIconThemeName: + return QVariant(QLatin1String("breeze")); + case QPlatformTheme::SystemIconFallbackThemeName: + return QVariant(QLatin1String("oxygen")); default: break; } diff --git a/patches/qtbase/windowsxp-support-revert-2.patch b/patches/qtbase/windowsxp-support-revert-2.patch deleted file mode 100755 index a24a3e9d..00000000 --- a/patches/qtbase/windowsxp-support-revert-2.patch +++ /dev/null @@ -1,27 +0,0 @@ -#! /bin/sh -patch -p0 -R -f -l $* < $0 -exit $? - ---- src/plugins/platforms/windows/qwindowstheme.cpp 2017-06-12 11:35:29.491363130 +0200 -+++ src/plugins/platforms/windows/qwindowstheme.cpp.orig 2017-06-12 11:35:24.223373397 +0200 -@@ -623,7 +623,7 @@ - memset(&iconInfo, 0, sizeof(iconInfo)); - iconInfo.cbSize = sizeof(iconInfo); - stockFlags |= (pixmapSize.width() > 16 ? SHGFI_LARGEICON : SHGFI_SMALLICON); -- if (QWindowsContext::shell32dll.sHGetStockIconInfo(stockId, SHGFI_ICON | stockFlags, &iconInfo) == S_OK) { -+ if (SHGetStockIconInfo(stockId, SHGFI_ICON | stockFlags, &iconInfo) == S_OK) { - pixmap = qt_pixmapFromWinHICON(iconInfo.hIcon); - DestroyIcon(iconInfo.hIcon); - return pixmap; ---- src/plugins/platforms/windows/qwindowswindow.cpp 2017-06-12 11:40:03.530833862 +0200 -+++ src/plugins/platforms/windows/qwindowswindow.cpp.orig 2017-06-12 11:37:38.367113636 +0200 -@@ -1599,7 +1599,8 @@ - - static inline bool dwmIsCompositionEnabled() - { -- return false; -+ BOOL dWmCompositionEnabled = FALSE; -+ return SUCCEEDED(DwmIsCompositionEnabled(&dWmCompositionEnabled)) && dWmCompositionEnabled == TRUE; - } - - bool QWindowsWindow::handleWmPaint(HWND hwnd, UINT message, diff --git a/patches/qtbase/windowsxp-support-revert.patch b/patches/qtbase/windowsxp-support-revert.patch deleted file mode 100755 index d4779a1c..00000000 --- a/patches/qtbase/windowsxp-support-revert.patch +++ /dev/null @@ -1,478 +0,0 @@ -#! /bin/sh -patch -p1 -f -l -R $* < $0 -exit $? - -commit 5cbc4609906bbd0484344f96643840ffdc723d69 -Author: Friedemann Kleint -Date: Wed Mar 9 09:14:23 2016 +0100 - - Windows QPA: Increase API level to 0x600 (Windows Vista). - - - Directly link against dwmapi which should be present on - Windows Vista and remove duplicated header constants. - - Remove struct QWindowsShell32DL since all required functions - are present on Windows Vista. - - Remove functions that are no longer needed from QWindowsUser32DLL - with exception of the clipboard functions which are not present - in the MinGW stub libraries until v5. - - Task-number: QTBUG-51673 - Change-Id: Ia4a8a3f1db0f0d02322317d547e61ae39f9008b5 - Reviewed-by: Oliver Wolff - -diff --git a/src/plugins/platforms/windows/qwindowsbackingstore.cpp b/src/plugins/platforms/windows/qwindowsbackingstore.cpp -index df6749ad25..2d5e4071bc 100644 ---- a/src/plugins/platforms/windows/qwindowsbackingstore.cpp -+++ b/src/plugins/platforms/windows/qwindowsbackingstore.cpp -@@ -100,19 +100,15 @@ void QWindowsBackingStore::flush(QWindow *window, const QRegion ®ion, - POINT ptDst = {r.x(), r.y()}; - POINT ptSrc = {0, 0}; - BLENDFUNCTION blend = {AC_SRC_OVER, 0, BYTE(qRound(255.0 * rw->opacity())), AC_SRC_ALPHA}; -- if (QWindowsContext::user32dll.updateLayeredWindowIndirect) { -- RECT dirty = {dirtyRect.x(), dirtyRect.y(), -- dirtyRect.x() + dirtyRect.width(), dirtyRect.y() + dirtyRect.height()}; -- UPDATELAYEREDWINDOWINFO info = {sizeof(info), NULL, &ptDst, &size, m_image->hdc(), &ptSrc, 0, &blend, ULW_ALPHA, &dirty}; -- const BOOL result = QWindowsContext::user32dll.updateLayeredWindowIndirect(rw->handle(), &info); -- if (!result) -- qErrnoWarning("UpdateLayeredWindowIndirect failed for ptDst=(%d, %d)," -- " size=(%dx%d), dirty=(%dx%d %d, %d)", r.x(), r.y(), -- r.width(), r.height(), dirtyRect.width(), dirtyRect.height(), -- dirtyRect.x(), dirtyRect.y()); -- } else { -- QWindowsContext::user32dll.updateLayeredWindow(rw->handle(), NULL, &ptDst, &size, m_image->hdc(), &ptSrc, 0, &blend, ULW_ALPHA); -- } -+ RECT dirty = {dirtyRect.x(), dirtyRect.y(), -+ dirtyRect.x() + dirtyRect.width(), dirtyRect.y() + dirtyRect.height()}; -+ UPDATELAYEREDWINDOWINFO info = {sizeof(info), NULL, &ptDst, &size, m_image->hdc(), &ptSrc, 0, &blend, ULW_ALPHA, &dirty}; -+ const BOOL result = UpdateLayeredWindowIndirect(rw->handle(), &info); -+ if (!result) -+ qErrnoWarning("UpdateLayeredWindowIndirect failed for ptDst=(%d, %d)," -+ " size=(%dx%d), dirty=(%dx%d %d, %d)", r.x(), r.y(), -+ r.width(), r.height(), dirtyRect.width(), dirtyRect.height(), -+ dirtyRect.x(), dirtyRect.y()); - } else { - const HDC dc = rw->getDC(); - if (!dc) { -diff --git a/src/plugins/platforms/windows/qwindowsclipboard.cpp b/src/plugins/platforms/windows/qwindowsclipboard.cpp -index d527e07308..21bc9d7377 100644 ---- a/src/plugins/platforms/windows/qwindowsclipboard.cpp -+++ b/src/plugins/platforms/windows/qwindowsclipboard.cpp -@@ -237,8 +237,7 @@ void QWindowsClipboard::propagateClipboardMessage(UINT message, WPARAM wParam, L - return; - // In rare cases, a clipboard viewer can hang (application crashed, - // suspended by a shell prompt 'Select' or debugger). -- if (QWindowsContext::user32dll.isHungAppWindow -- && QWindowsContext::user32dll.isHungAppWindow(m_nextClipboardViewer)) { -+ if (IsHungAppWindow(m_nextClipboardViewer)) { - qWarning("Cowardly refusing to send clipboard message to hung application..."); - return; - } -diff --git a/src/plugins/platforms/windows/qwindowscontext.cpp b/src/plugins/platforms/windows/qwindowscontext.cpp -index 74dfa59988..ef0962c2ff 100644 ---- a/src/plugins/platforms/windows/qwindowscontext.cpp -+++ b/src/plugins/platforms/windows/qwindowscontext.cpp -@@ -97,35 +97,26 @@ int QWindowsContext::verbose = 0; - # define LANG_SYRIAC 0x5a - #endif - --static inline bool useRTL_Extensions(QSysInfo::WinVersion ver) -+static inline bool useRTL_Extensions() - { -- if ((ver & QSysInfo::WV_NT_based) && (ver >= QSysInfo::WV_VISTA)) { -- // Since the IsValidLanguageGroup/IsValidLocale functions always return true on -- // Vista, check the Keyboard Layouts for enabling RTL. -- if (const int nLayouts = GetKeyboardLayoutList(0, 0)) { -- QScopedArrayPointer lpList(new HKL[nLayouts]); -- GetKeyboardLayoutList(nLayouts, lpList.data()); -- for (int i = 0; i < nLayouts; ++i) { -- switch (PRIMARYLANGID((quintptr)lpList[i])) { -- case LANG_ARABIC: -- case LANG_HEBREW: -- case LANG_FARSI: -- case LANG_SYRIAC: -- return true; -- default: -- break; -- } -+ // Since the IsValidLanguageGroup/IsValidLocale functions always return true on -+ // Vista, check the Keyboard Layouts for enabling RTL. -+ if (const int nLayouts = GetKeyboardLayoutList(0, 0)) { -+ QScopedArrayPointer lpList(new HKL[nLayouts]); -+ GetKeyboardLayoutList(nLayouts, lpList.data()); -+ for (int i = 0; i < nLayouts; ++i) { -+ switch (PRIMARYLANGID((quintptr)lpList[i])) { -+ case LANG_ARABIC: -+ case LANG_HEBREW: -+ case LANG_FARSI: -+ case LANG_SYRIAC: -+ return true; -+ default: -+ break; - } - } -- return false; -- } // NT/Vista -- // Pre-NT: figure out whether a RTL language is installed -- return IsValidLanguageGroup(LGRPID_ARABIC, LGRPID_INSTALLED) -- || IsValidLanguageGroup(LGRPID_HEBREW, LGRPID_INSTALLED) -- || IsValidLocale(MAKELCID(MAKELANGID(LANG_ARABIC, SUBLANG_DEFAULT), SORT_DEFAULT), LCID_INSTALLED) -- || IsValidLocale(MAKELCID(MAKELANGID(LANG_HEBREW, SUBLANG_DEFAULT), SORT_DEFAULT), LCID_INSTALLED) -- || IsValidLocale(MAKELCID(MAKELANGID(LANG_SYRIAC, SUBLANG_DEFAULT), SORT_DEFAULT), LCID_INSTALLED) -- || IsValidLocale(MAKELCID(MAKELANGID(LANG_FARSI, SUBLANG_DEFAULT), SORT_DEFAULT), LCID_INSTALLED); -+ } -+ return false; - } - - #if !defined(QT_NO_SESSIONMANAGER) -@@ -152,9 +143,7 @@ static inline QWindowsSessionManager *platformSessionManager() { - \ingroup qt-lighthouse-win - */ - QWindowsUser32DLL::QWindowsUser32DLL() : -- setLayeredWindowAttributes(0), updateLayeredWindow(0), -- updateLayeredWindowIndirect(0), -- isHungAppWindow(0), isTouchWindow(0), -+ isTouchWindow(0), - registerTouchWindow(0), unregisterTouchWindow(0), - getTouchInputInfo(0), closeTouchInputHandle(0), setProcessDPIAware(0), - addClipboardFormatListener(0), removeClipboardFormatListener(0), -@@ -165,20 +154,11 @@ QWindowsUser32DLL::QWindowsUser32DLL() : - void QWindowsUser32DLL::init() - { - QSystemLibrary library(QStringLiteral("user32")); -- // MinGW (g++ 3.4.5) accepts only C casts. -- setLayeredWindowAttributes = (SetLayeredWindowAttributes)(library.resolve("SetLayeredWindowAttributes")); -- updateLayeredWindow = (UpdateLayeredWindow)(library.resolve("UpdateLayeredWindow")); -- if (Q_UNLIKELY(!setLayeredWindowAttributes || !updateLayeredWindow)) -- qFatal("This version of Windows is not supported (User32.dll is missing the symbols 'SetLayeredWindowAttributes', 'UpdateLayeredWindow')."); -- -- updateLayeredWindowIndirect = (UpdateLayeredWindowIndirect)(library.resolve("UpdateLayeredWindowIndirect")); -- isHungAppWindow = (IsHungAppWindow)library.resolve("IsHungAppWindow"); - setProcessDPIAware = (SetProcessDPIAware)library.resolve("SetProcessDPIAware"); - -- if (QSysInfo::windowsVersion() >= QSysInfo::WV_VISTA) { -- addClipboardFormatListener = (AddClipboardFormatListener)library.resolve("AddClipboardFormatListener"); -- removeClipboardFormatListener = (RemoveClipboardFormatListener)library.resolve("RemoveClipboardFormatListener"); -- } -+ addClipboardFormatListener = (AddClipboardFormatListener)library.resolve("AddClipboardFormatListener"); -+ removeClipboardFormatListener = (RemoveClipboardFormatListener)library.resolve("RemoveClipboardFormatListener"); -+ - getDisplayAutoRotationPreferences = (GetDisplayAutoRotationPreferences)library.resolve("GetDisplayAutoRotationPreferences"); - setDisplayAutoRotationPreferences = (SetDisplayAutoRotationPreferences)library.resolve("SetDisplayAutoRotationPreferences"); - } -@@ -196,38 +176,6 @@ bool QWindowsUser32DLL::initTouch() - return isTouchWindow && registerTouchWindow && unregisterTouchWindow && getTouchInputInfo && closeTouchInputHandle; - } - --/*! -- \class QWindowsShell32DLL -- \brief Struct that contains dynamically resolved symbols of Shell32.dll. -- -- The stub libraries shipped with the MinGW compiler miss some of the -- functions. They need to be retrieved dynamically. -- -- \sa QWindowsUser32DLL -- -- \internal -- \ingroup qt-lighthouse-win --*/ -- --QWindowsShell32DLL::QWindowsShell32DLL() -- : sHCreateItemFromParsingName(0) -- , sHGetKnownFolderIDList(0) -- , sHGetStockIconInfo(0) -- , sHGetImageList(0) -- , sHCreateItemFromIDList(0) --{ --} -- --void QWindowsShell32DLL::init() --{ -- QSystemLibrary library(QStringLiteral("shell32")); -- sHCreateItemFromParsingName = (SHCreateItemFromParsingName)(library.resolve("SHCreateItemFromParsingName")); -- sHGetKnownFolderIDList = (SHGetKnownFolderIDList)(library.resolve("SHGetKnownFolderIDList")); -- sHGetStockIconInfo = (SHGetStockIconInfo)library.resolve("SHGetStockIconInfo"); -- sHGetImageList = (SHGetImageList)library.resolve("SHGetImageList"); -- sHCreateItemFromIDList = (SHCreateItemFromIDList)library.resolve("SHCreateItemFromIDList"); --} -- - QWindowsShcoreDLL::QWindowsShcoreDLL() - : getProcessDpiAwareness(0) - , setProcessDpiAwareness(0) -@@ -246,7 +194,6 @@ void QWindowsShcoreDLL::init() - } - - QWindowsUser32DLL QWindowsContext::user32dll; --QWindowsShell32DLL QWindowsContext::shell32dll; - QWindowsShcoreDLL QWindowsContext::shcoredll; - - QWindowsContext *QWindowsContext::m_instance = 0; -@@ -292,16 +239,14 @@ QWindowsContextPrivate::QWindowsContextPrivate() - , m_eventType(QByteArrayLiteral("windows_generic_MSG")) - , m_lastActiveWindow(0), m_asyncExpose(0) - { -- const QSysInfo::WinVersion ver = QSysInfo::windowsVersion(); - QWindowsContext::user32dll.init(); -- QWindowsContext::shell32dll.init(); - QWindowsContext::shcoredll.init(); - - if (m_mouseHandler.touchDevice() && QWindowsContext::user32dll.initTouch()) - m_systemInfo |= QWindowsContext::SI_SupportsTouch; - m_displayContext = GetDC(0); - m_defaultDPI = GetDeviceCaps(m_displayContext, LOGPIXELSY); -- if (useRTL_Extensions(ver)) { -+ if (useRTL_Extensions()) { - m_systemInfo |= QWindowsContext::SI_RTL_Extensions; - m_keyMapper.setUseRTLExtensions(true); - } -diff --git a/src/plugins/platforms/windows/qwindowscontext.h b/src/plugins/platforms/windows/qwindowscontext.h -index df07f433ec..32d7800ef5 100644 ---- a/src/plugins/platforms/windows/qwindowscontext.h -+++ b/src/plugins/platforms/windows/qwindowscontext.h -@@ -85,31 +85,17 @@ struct QWindowsUser32DLL - inline void init(); - inline bool initTouch(); - -- typedef BOOL (WINAPI *IsTouchWindow)(HWND, PULONG); -+ typedef BOOL (WINAPI *IsTouchWindow)(HWND, PULONG); // Windows 7 - typedef BOOL (WINAPI *RegisterTouchWindow)(HWND, ULONG); - typedef BOOL (WINAPI *UnregisterTouchWindow)(HWND); - typedef BOOL (WINAPI *GetTouchInputInfo)(HANDLE, UINT, PVOID, int); - typedef BOOL (WINAPI *CloseTouchInputHandle)(HANDLE); -- typedef BOOL (WINAPI *SetLayeredWindowAttributes)(HWND, COLORREF, BYTE, DWORD); -- typedef BOOL (WINAPI *UpdateLayeredWindow)(HWND, HDC , const POINT *, -- const SIZE *, HDC, const POINT *, COLORREF, -- const BLENDFUNCTION *, DWORD); -- typedef BOOL (WINAPI *UpdateLayeredWindowIndirect)(HWND, const UPDATELAYEREDWINDOWINFO *); -- typedef BOOL (WINAPI *IsHungAppWindow)(HWND); - typedef BOOL (WINAPI *SetProcessDPIAware)(); - typedef BOOL (WINAPI *AddClipboardFormatListener)(HWND); - typedef BOOL (WINAPI *RemoveClipboardFormatListener)(HWND); - typedef BOOL (WINAPI *GetDisplayAutoRotationPreferences)(DWORD *); - typedef BOOL (WINAPI *SetDisplayAutoRotationPreferences)(DWORD); - -- // Functions missing in Q_CC_GNU stub libraries. -- SetLayeredWindowAttributes setLayeredWindowAttributes; -- UpdateLayeredWindow updateLayeredWindow; -- -- // Functions missing in older versions of Windows -- UpdateLayeredWindowIndirect updateLayeredWindowIndirect; -- IsHungAppWindow isHungAppWindow; -- - // Touch functions from Windows 7 onwards (also for use with Q_CC_MSVC). - IsTouchWindow isTouchWindow; - RegisterTouchWindow registerTouchWindow; -@@ -120,7 +106,8 @@ struct QWindowsUser32DLL - // Windows Vista onwards - SetProcessDPIAware setProcessDPIAware; - -- // Clipboard listeners, Windows Vista onwards -+ // Clipboard listeners are present on Windows Vista onwards -+ // but missing in MinGW 4.9 stub libs. Can be removed in MinGW 5. - AddClipboardFormatListener addClipboardFormatListener; - RemoveClipboardFormatListener removeClipboardFormatListener; - -@@ -129,24 +116,6 @@ struct QWindowsUser32DLL - SetDisplayAutoRotationPreferences setDisplayAutoRotationPreferences; - }; - --struct QWindowsShell32DLL --{ -- QWindowsShell32DLL(); -- inline void init(); -- -- typedef HRESULT (WINAPI *SHCreateItemFromParsingName)(PCWSTR, IBindCtx *, const GUID&, void **); -- typedef HRESULT (WINAPI *SHGetKnownFolderIDList)(const GUID &, DWORD, HANDLE, PIDLIST_ABSOLUTE *); -- typedef HRESULT (WINAPI *SHGetStockIconInfo)(int , int , _SHSTOCKICONINFO *); -- typedef HRESULT (WINAPI *SHGetImageList)(int, REFIID , void **); -- typedef HRESULT (WINAPI *SHCreateItemFromIDList)(PCIDLIST_ABSOLUTE, REFIID, void **); -- -- SHCreateItemFromParsingName sHCreateItemFromParsingName; -- SHGetKnownFolderIDList sHGetKnownFolderIDList; -- SHGetStockIconInfo sHGetStockIconInfo; -- SHGetImageList sHGetImageList; -- SHCreateItemFromIDList sHCreateItemFromIDList; --}; -- - // Shell scaling library (Windows 8.1 onwards) - struct QWindowsShcoreDLL { - QWindowsShcoreDLL(); -@@ -235,7 +204,6 @@ public: - QWindowsTabletSupport *tabletSupport() const; - - static QWindowsUser32DLL user32dll; -- static QWindowsShell32DLL shell32dll; - static QWindowsShcoreDLL shcoredll; - - static QByteArray comErrorString(HRESULT hr); -diff --git a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp -index f2beeb6f54..e1b0d36922 100644 ---- a/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp -+++ b/src/plugins/platforms/windows/qwindowsdialoghelpers.cpp -@@ -988,22 +988,18 @@ void QWindowsNativeFileDialogBase::setWindowTitle(const QString &title) - IShellItem *QWindowsNativeFileDialogBase::shellItem(const QUrl &url) - { - if (url.isLocalFile()) { -- if (!QWindowsContext::shell32dll.sHCreateItemFromParsingName) -- return Q_NULLPTR; - IShellItem *result = Q_NULLPTR; - const QString native = QDir::toNativeSeparators(url.toLocalFile()); - const HRESULT hr = -- QWindowsContext::shell32dll.sHCreateItemFromParsingName(reinterpret_cast(native.utf16()), -- NULL, IID_IShellItem, -- reinterpret_cast(&result)); -+ SHCreateItemFromParsingName(reinterpret_cast(native.utf16()), -+ NULL, IID_IShellItem, -+ reinterpret_cast(&result)); - if (FAILED(hr)) { - qErrnoWarning("%s: SHCreateItemFromParsingName(%s)) failed", __FUNCTION__, qPrintable(url.toString())); - return Q_NULLPTR; - } - return result; - } else if (url.scheme() == QLatin1String("clsid")) { -- if (!QWindowsContext::shell32dll.sHGetKnownFolderIDList || !QWindowsContext::shell32dll.sHCreateItemFromIDList) -- return Q_NULLPTR; - // Support for virtual folders via GUID - // (see https://msdn.microsoft.com/en-us/library/windows/desktop/dd378457(v=vs.85).aspx) - // specified as "clsid:" (without '{', '}'). -@@ -1014,12 +1010,12 @@ IShellItem *QWindowsNativeFileDialogBase::shellItem(const QUrl &url) - return Q_NULLPTR; - } - PIDLIST_ABSOLUTE idList; -- HRESULT hr = QWindowsContext::shell32dll.sHGetKnownFolderIDList(uuid, 0, 0, &idList); -+ HRESULT hr = SHGetKnownFolderIDList(uuid, 0, 0, &idList); - if (FAILED(hr)) { - qErrnoWarning("%s: SHGetKnownFolderIDList(%s)) failed", __FUNCTION__, qPrintable(url.toString())); - return Q_NULLPTR; - } -- hr = QWindowsContext::shell32dll.sHCreateItemFromIDList(idList, IID_IShellItem, reinterpret_cast(&result)); -+ hr = SHCreateItemFromIDList(idList, IID_IShellItem, reinterpret_cast(&result)); - CoTaskMemFree(idList); - if (FAILED(hr)) { - qErrnoWarning("%s: SHCreateItemFromIDList(%s)) failed", __FUNCTION__, qPrintable(url.toString())); -diff --git a/src/plugins/platforms/windows/qwindowstheme.cpp b/src/plugins/platforms/windows/qwindowstheme.cpp -index f33267e5e3..046c32a80a 100644 ---- a/src/plugins/platforms/windows/qwindowstheme.cpp -+++ b/src/plugins/platforms/windows/qwindowstheme.cpp -@@ -490,7 +490,7 @@ QPixmap QWindowsTheme::standardPixmap(StandardPixmap sp, const QSizeF &size) con - const int scaleFactor = primaryScreen ? qRound(QHighDpiScaling::factor(primaryScreen)) : 1; - const QSizeF pixmapSize = size * scaleFactor; - int resourceId = -1; -- int stockId = SIID_INVALID; -+ SHSTOCKICONID stockId = SIID_INVALID; - UINT stockFlags = 0; - LPCTSTR iconName = 0; - switch (sp) { -@@ -669,14 +665,8 @@ static QPixmap pixmapFromShellImageList(int iImageList, const SHFILEINFO &info) - // For MinGW: - static const IID iID_IImageList = {0x46eb5926, 0x582e, 0x4017, {0x9f, 0xdf, 0xe8, 0x99, 0x8d, 0xaa, 0x9, 0x50}}; - -- if (!QWindowsContext::shell32dll.sHGetImageList) -- return result; -- if (iImageList == sHIL_JUMBO && QSysInfo::WindowsVersion < QSysInfo::WV_VISTA) -- return result; -- - IImageList *imageList = 0; -- HRESULT hr = QWindowsContext::shell32dll.sHGetImageList(iImageList, iID_IImageList, -- reinterpret_cast(&imageList)); -+ HRESULT hr = SHGetImageList(iImageList, iID_IImageList, reinterpret_cast(&imageList)); - if (hr != S_OK) - return result; - HICON hIcon; -diff --git a/src/plugins/platforms/windows/qwindowswindow.cpp b/src/plugins/platforms/windows/qwindowswindow.cpp -index a60ab5a2ab..c369bafafc 100644 ---- a/src/plugins/platforms/windows/qwindowswindow.cpp -+++ b/src/plugins/platforms/windows/qwindowswindow.cpp -@@ -62,6 +62,8 @@ - - #include - -+#include -+ - QT_BEGIN_NAMESPACE - - enum { -@@ -258,55 +260,22 @@ static inline bool windowIsOpenGL(const QWindow *w) - - static bool applyBlurBehindWindow(HWND hwnd) - { -- enum { dwmBbEnable = 0x1, dwmBbBlurRegion = 0x2 }; -- -- struct DwmBlurBehind { -- DWORD dwFlags; -- BOOL fEnable; -- HRGN hRgnBlur; -- BOOL fTransitionOnMaximized; -- }; -- -- typedef HRESULT (WINAPI *PtrDwmEnableBlurBehindWindow)(HWND, const DwmBlurBehind*); -- typedef HRESULT (WINAPI *PtrDwmIsCompositionEnabled)(BOOL *); -- -- // DWM API is available only from Windows Vista -- if (QSysInfo::windowsVersion() < QSysInfo::WV_VISTA) -- return false; -- -- static bool functionPointersResolved = false; -- static PtrDwmEnableBlurBehindWindow dwmBlurBehind = 0; -- static PtrDwmIsCompositionEnabled dwmIsCompositionEnabled = 0; -- -- if (Q_UNLIKELY(!functionPointersResolved)) { -- QSystemLibrary library(QStringLiteral("dwmapi")); -- if (library.load()) { -- dwmBlurBehind = (PtrDwmEnableBlurBehindWindow)(library.resolve("DwmEnableBlurBehindWindow")); -- dwmIsCompositionEnabled = (PtrDwmIsCompositionEnabled)(library.resolve("DwmIsCompositionEnabled")); -- } -- -- functionPointersResolved = true; -- } -- -- if (Q_UNLIKELY(!dwmBlurBehind || !dwmIsCompositionEnabled)) -- return false; -- - BOOL compositionEnabled; -- if (dwmIsCompositionEnabled(&compositionEnabled) != S_OK) -+ if (DwmIsCompositionEnabled(&compositionEnabled) != S_OK) - return false; - -- DwmBlurBehind blurBehind = {0, 0, 0, 0}; -+ DWM_BLURBEHIND blurBehind = {0, 0, 0, 0}; - - if (compositionEnabled) { -- blurBehind.dwFlags = dwmBbEnable | dwmBbBlurRegion; -+ blurBehind.dwFlags = DWM_BB_ENABLE | DWM_BB_BLURREGION; - blurBehind.fEnable = TRUE; - blurBehind.hRgnBlur = CreateRectRgn(0, 0, -1, -1); - } else { -- blurBehind.dwFlags = dwmBbEnable; -+ blurBehind.dwFlags = DWM_BB_ENABLE; - blurBehind.fEnable = FALSE; - } - -- const bool result = dwmBlurBehind(hwnd, &blurBehind) == S_OK; -+ const bool result = DwmEnableBlurBehindWindow(hwnd, &blurBehind) == S_OK; - - if (blurBehind.hRgnBlur) - DeleteObject(blurBehind.hRgnBlur); -@@ -351,9 +320,9 @@ static void setWindowOpacity(HWND hwnd, Qt::WindowFlags flags, bool hasAlpha, bo - if (hasAlpha && !openGL && (flags & Qt::FramelessWindowHint)) { - // Non-GL windows with alpha: Use blend function to update. - BLENDFUNCTION blend = {AC_SRC_OVER, 0, alpha, AC_SRC_ALPHA}; -- QWindowsContext::user32dll.updateLayeredWindow(hwnd, NULL, NULL, NULL, NULL, NULL, 0, &blend, ULW_ALPHA); -+ UpdateLayeredWindow(hwnd, NULL, NULL, NULL, NULL, NULL, 0, &blend, ULW_ALPHA); - } else { -- QWindowsContext::user32dll.setLayeredWindowAttributes(hwnd, 0, alpha, LWA_ALPHA); -+ SetLayeredWindowAttributes(hwnd, 0, alpha, LWA_ALPHA); - } - } else if (IsWindowVisible(hwnd)) { // Repaint when switching from layered. - InvalidateRect(hwnd, NULL, TRUE); -diff --git a/src/plugins/platforms/windows/windows.pro b/src/plugins/platforms/windows/windows.pro -index aef9f5330c..adafa830d5 100644 ---- a/src/plugins/platforms/windows/windows.pro -+++ b/src/plugins/platforms/windows/windows.pro -@@ -4,7 +4,7 @@ QT *= core-private - QT *= gui-private - QT *= platformsupport-private - --LIBS += -lgdi32 -+LIBS += -lgdi32 -ldwmapi - - include(windows.pri) diff --git a/patches/qtbase/windowsxp-support.patch b/patches/qtbase/windowsxp-support.patch deleted file mode 100755 index dcfbed4b..00000000 --- a/patches/qtbase/windowsxp-support.patch +++ /dev/null @@ -1,73 +0,0 @@ -#! /bin/sh -patch -p1 -f -l $* < $0 -exit $? - -diff --git a/src/corelib/io/qsettings.cpp b/src/corelib/io/qsettings.cpp -index e12da68671..c9d2a4b80f 100644 ---- a/src/corelib/io/qsettings.cpp -+++ b/src/corelib/io/qsettings.cpp -@@ -54,6 +54,8 @@ - #include "qstandardpaths.h" - #include - -+#include -+ - #ifndef QT_NO_TEXTCODEC - # include "qtextcodec.h" - #endif -@@ -951,15 +953,34 @@ void QConfFileSettingsPrivate::initAccess() - } - - #if defined(Q_OS_WIN) && !defined(Q_OS_WINRT) --static QString windowsConfigPath(const KNOWNFOLDERID &type) -+static QString convertCharArray(const wchar_t *path) -+{ -+ return QDir::fromNativeSeparators(QString::fromWCharArray(path)); -+} -+ -+// Convenience for SHGetKnownFolderPath(). -+static QString sHGetKnownFolderPath(const GUID &clsid) - { - QString result; -+ typedef HRESULT (WINAPI *GetKnownFolderPath)(const GUID&, DWORD, HANDLE, LPWSTR*); - -- PWSTR path = nullptr; -- if (SHGetKnownFolderPath(type, KF_FLAG_DONT_VERIFY, NULL, &path) == S_OK) { -- result = QString::fromWCharArray(path); -+ static const GetKnownFolderPath sHGetKnownFolderPath = // Vista onwards. -+ reinterpret_cast(QSystemLibrary::resolve(QLatin1String("shell32"), "SHGetKnownFolderPath")); -+ -+ LPWSTR path; -+ if (Q_LIKELY(sHGetKnownFolderPath && SUCCEEDED(sHGetKnownFolderPath(clsid, KF_FLAG_DONT_VERIFY, 0, &path)))) { -+ result = convertCharArray(path); - CoTaskMemFree(path); - } -+ return result; -+} -+ -+static QString windowsConfigPath(const KNOWNFOLDERID &type) -+{ -+ QString result; -+ -+ PWSTR path = nullptr; -+ result = sHGetKnownFolderPath(type); - - if (result.isEmpty()) { - if (type == FOLDERID_ProgramData) { -diff --git a/src/plugins/platforms/windows/qwin10helpers.cpp b/src/plugins/platforms/windows/qwin10helpers.cpp -index 12cccd124b..fe444c9420 100644 ---- a/src/plugins/platforms/windows/qwin10helpers.cpp -+++ b/src/plugins/platforms/windows/qwin10helpers.cpp -@@ -42,10 +42,10 @@ - #include - #include - --#if defined(Q_CC_MINGW) -+#if 0 - # define HAS_UI_VIEW_SETTINGS_INTEROP - // Present from MSVC2015 + SDK 10 onwards --#elif (!defined(Q_CC_MSVC) || _MSC_VER >= 1900) && NTDDI_VERSION >= 0xa000000 -+#elif 0 - # define HAS_UI_VIEW_SETTINGS_INTEROP - # define HAS_UI_VIEW_SETTINGS - #endif