diff --git a/packages/packages.current b/packages/packages.current index 86b6ba19..b4dbe255 100644 --- a/packages/packages.current +++ b/packages/packages.current @@ -1,595 +1,597 @@ # 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-11-12 # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgol/gpgol-2.3.2.tar.bz2 chk 6c298c7a8787e0796a1984d3c1e948b55b9fff685dff3fe7e9d3012001b5b85f # for beta #server http://files.intevation.de/projects/gpg4all #file gpgol/gpgol-2.3.2-beta22.tar.bz2 #chk 72c0a9e08dc74494eb4f07076a82808f7d71218ec0d0ba48c309702d90e87e61 # # GpgEX # server http://files.gpg4win.org/src # last-changed: 2018-04-10 # by: ah # verified: Sig 5B80 C575 4298 F0CB 55D8 ED6A BCEF 7E29 4B09 2E28 file gpgex/gpgex-1.0.6.tar.bz2 chk d69898d1022400bd09bb684080edc95be554af736ae9c014df73543f34f7481b # # 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 2018-05-03 # by ah # verified: distsigkey.gpg server ftp://ftp.gnupg.org/gcrypt file libgpg-error/libgpg-error-1.32.tar.bz2 chk c345c5e73cc2332f8d50db84a2280abfb1d8f6d4f1858b9daa30404db44540ca # last-changed: 2017-12-07 # by: ah file libassuan/libassuan-2.5.1.tar.bz2 chk 47f96c37b4f2aac289f0bc1bacfa8bd8b4b209a488d3d15e2229cb6cc9b26449 # last changed: 2018-08-30 # by: ah #name gnupg-w32-2.2.10-20180830-bin.exe #file binary/gnupg-w32-2.2.10_20180830.exe #chk e84bad2436e3a0309d59e0ed313b346a1fc4ac556b5fd68bcea2d0e58d0516a2 #name gnupg-w32-2.2.10-20180830-src.tar.xz #file binary/gnupg-w32-2.2.10_20180830.tar.xz #chk 9a8c5d1b6326547a8a014665105520be7e2bd6624e48fb9a68ac2a84c99ee567 # last-changed: 2018-11-12 # by: ah # verified: Created internally # Patched 2.1.11 with gnupg rev. 00321a025f90990a71b60b4689ede1f38fbde347 server http://files.intevation.de/projects/gpg4all name gnupg-w32-2.2.11-20181112-bin.exe file gnupg/gnupg-w32-2.2.11_20181112.exe chk 9a459e28f2890f3fe959be55b88d22d84091d4c67ce09d782f2cd694e410decb name gnupg-w32-2.2.11-201811112-src.tar.xz file gnupg/gnupg-w32-2.2.11_20181112.tar.xz chk 5b35b3d1bbf843da9c6d8cc3a81ac977044f2df568d285942ad9828f430688cb server ftp://ftp.gnupg.org/gcrypt # TODO back to stable # last changed: 2017-12-05 # by: ah #file pinentry/pinentry-1.1.0.tar.bz2 #chk 68076686fa724a290ea49cdf0d1c0c1500907d1b759a3bcbfbec0293e8f56570 # TODO back to stable # last changed: 2018-10-08 # by: ah #file gpgme/gpgme-1.12.0.tar.bz2 #chk b4dc951c3743a60e2e120a77892e9e864fb936b2e58e7c77e8581f4d050e8cd8 # last changed: 2018-10-17 # by: ah file gpa/gpa-0.10.0.tar.bz2 chk 95dbabe75fa5c8dc47e3acf2df7a51cee096051e5a842b4c9b6d61e40a6177b1 # # 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: 2019-02-11 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.10/5.12.1/submodules/qtbase-everywhere-src-5.12.1.tar.xz.sha256 server http://download.qt.io/official_releases/qt/ name qtbase-5.12.1.tar.xz file 5.12/5.12.1/submodules/qtbase-everywhere-src-5.12.1.tar.xz chk 533078ce02678988576e224cb3844979907950cf83e0fda3364bc1d5701c9049 # Qt Tools # last changed: 2019-02-11 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.12/5.12.1/submodules/qttools-everywhere-src-5.12.1.tar.xz.sha256 name qttools-5.12.1.tar.xz file 5.12/5.12.1/submodules/qttools-everywhere-src-5.12.1.tar.xz chk ab1da4fbd84a9d3873e4ed212a0ae614c6059b8e7dca2f0a599a6f7e61f6cbf3 # Qt Winextras # last changed: 2019-02-11 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.12/5.12.1/submodules/qtwinextras-everywhere-src-5.12.1.tar.xz.sha256 name qtwinextras-5.12.1.tar.xz file 5.12/5.12.1/submodules/qtwinextras-everywhere-src-5.12.1.tar.xz chk 8d312155a7da329df41cc2ea5d265eb632be7dd9cbd789fa3bc0206b4022f557 # Qt svg # last changed: 2019-02-11 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.12/5.12.1/submodules/qtsvg-everywhere-src-5.12.1.tar.xz.sha256 name qtsvg-5.12.1.tar.xz file 5.12/5.12.1/submodules/qtsvg-everywhere-src-5.12.1.tar.xz chk 5bc1f744d32c06f5aa4eff33759568106a995ce21fa1326a247dfa5f783f63c8 # Qt translations # last changed: 2019-02-11 # by: ah # verified: HTTPS https://download.qt.io/official_releases/qt/5.12/5.12.1/submodules/qttranslations-everywhere-src-5.12.1.tar.xz.sha256 name qttranslations-5.12.1.tar.xz file 5.12/5.12.1/submodules/qttranslations-everywhere-src-5.12.1.tar.xz chk 7443d70d8572321e810c52fbdd096666e61510e07e17437f1910f0b800cca6a7 # KDE Frameworks generated by gen-frameworks.sh -server https://download.kde.org/Attic/frameworks/ +# When outdated activate this link: +#server https://download.kde.org/Attic/frameworks/ +server https://download.kde.org/stable/frameworks ##### Paste Here ##### # # Don't forget to update gpg4win.mk.in with new version numbers # # extra-cmake-modules -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/extra-cmake-modules-5.43.0.tar.xz -chk 5757a5ddceede5321b58345a8dbf953c2282487bf9c24ae477efde800b94fffd +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/extra-cmake-modules-5.55.0.tar.xz +chk 649453922aef38a24af04258ab6661ddfd566aaba4d1773a9e1f4799344406f5 # kconfig -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kconfig-5.43.0.tar.xz -chk 22ebe055ae6545e01653b2e7d678145261cc5073202561735a894aa59b5841d9 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kconfig-5.55.0.tar.xz +chk 4a566842d566e9904d1478fa428cbf8b1caf49efe142ae237f24a4c16e64fa19 # ki18n -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/ki18n-5.43.0.tar.xz -chk 8a802507ba6a5a91470d09c649e842843d70f37968d86473567928f2cdee57ff +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/ki18n-5.55.0.tar.xz +chk 22fdd19fe805467b15abc977143d951acaa5026a0b2de7b972c9af15f1977c4f # kwidgetsaddons -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kwidgetsaddons-5.43.0.tar.xz -chk 59a7329e8a4a3b22677dc09648de9c0a042b9ae284af2556c5db48394a9aa797 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kwidgetsaddons-5.55.0.tar.xz +chk ec5b7ffd47c2b26763e363f741f0d57d280330fdc32c061896bdc32cebdeeb4e # kcompletion -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kcompletion-5.43.0.tar.xz -chk 2999af185dea2164b6943c9cabf2330e4cae4bea46863a1c3d66e86b04ffb618 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kcompletion-5.55.0.tar.xz +chk 224761954421b2e25c2b9651c7e730da9fb7a569674c399c867a9f895d3ad523 # kwindowsystem -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kwindowsystem-5.43.0.tar.xz -chk 4df6da4f313f8c52a5d202caa5cc90791b4a07f0d91d5b7252e2da5487a6997d +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kwindowsystem-5.55.0.tar.xz +chk a698ddf3caeb890314b3b768a15b4cc35dd9e10356af4cf9faa89c8640eded83 # kcoreaddons -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kcoreaddons-5.43.0.tar.xz -chk c67f008b79365913cbb8c62d2b1b48353c1302f6a351a9bc34b874b18392ef82 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kcoreaddons-5.55.0.tar.xz +chk 3cd840b3f308b4529012d16aeee05494b5e55c938b6ad7f6580d4d055d61ebc8 # kcodecs -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kcodecs-5.43.0.tar.xz -chk 5bc09761bf3a3e5fcbea76b1b41c2f07e372fd8449c14fb7276250e177ff9959 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kcodecs-5.55.0.tar.xz +chk 4bd6fd48268d83b59f1b3c8ee19a50d9bee72f3601098dd5bb8e4b24a8912111 # kconfigwidgets -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kconfigwidgets-5.43.0.tar.xz -chk 7c9016f2c98452d912359def78185f4bf3c6f8c45833fe0e321278124c45bbe3 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kconfigwidgets-5.55.0.tar.xz +chk b3acbce98798eb5fe897fae671b898697b5ffdd2e357aa8d4750305abeb9ee5a # kxmlgui -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kxmlgui-5.43.0.tar.xz -chk a3fd16055c5c37130edc80cc331356dea0be78ad227ed4bf00d45bb59dbfccca +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kxmlgui-5.55.0.tar.xz +chk 963dd83e7898946933b0ea3d0b70afba910d63ce4b2074ee664c0797d53f065e # kguiaddons -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kguiaddons-5.43.0.tar.xz -chk 19b32ef071dd51271b5999f22968864cf8409cb8caf9c9daa7707a922f71da7c +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kguiaddons-5.55.0.tar.xz +chk 039a0f98b5491668ea4e2e45ca57c68bd5fea956f46ba50778283a8137e412a4 # kitemviews -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kitemviews-5.43.0.tar.xz -chk 304cbdd832b12c9e2b08f29efc5d876a9de60076d444c3d502849fdc21ec86a7 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kitemviews-5.55.0.tar.xz +chk 4d91a42f300cb63cd817feceebe148b32a22cf75b8228c853a0c2ed6cb3ff0d5 # kitemmodels -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kitemmodels-5.43.0.tar.xz -chk ad617dc843297c2c4d5db97ea528c44c886d52c89125a77f9494da09de8187fb +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kitemmodels-5.55.0.tar.xz +chk 862f2b2888a563ff9f61bd25e59b637ca16c8531679cec7f3ad1653cb74ac08c # kiconthemes -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kiconthemes-5.43.0.tar.xz -chk 5ce7918311b89e30a4715f3ebeeb7263c550c9e9c59556a1a6e45ad24442ac80 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kiconthemes-5.55.0.tar.xz +chk 3c1be304537d4c7eedd097463c977b3d0e845c575567ffc53faff7b3e874ebe5 # breeze-icons -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/breeze-icons-5.43.0.tar.xz -chk 3eda58a4c7c9369fe9b246500d88a964d3411f83e1113727ed723989d935dea7 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/breeze-icons-5.55.0.tar.xz +chk 89381f2e78cd479c533095bc0a58da74c8bbe6ca2ee64a9664060a56513fab0e # karchive -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/karchive-5.43.0.tar.xz -chk 0e639a2818700220bf20aea83a00697b385d67f39eba5840b400d8d72ec477b8 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/karchive-5.55.0.tar.xz +chk 8475efa46cdc054d9fb6336e42c6075fb037921a9147d4e5aa564a5e58b79fd2 # kcrash -# last changed: 2018-02-27 +# last changed: 2019-02-18 # by: ah -# verified: https://www.kde.org/info/kde-frameworks-5.43.0.php (created by gen-frameworks.sh) -file 5.43/kcrash-5.43.0.tar.xz -chk 2b74ab0d0d393c32a7e53e16757763fbe91d25e8dd157e860dec45a047866ec3 +# verified: PGP Signed by ./kde-release-key.gpg (created by gen-frameworks.sh) +file 5.55/kcrash-5.55.0.tar.xz +chk c90d96fbac26727e1de32898a93bb7cbc9a05ee992c11d4303941ab96a614821 ##### End Paste ##### # KDE Applications # For older releases check here: server https://download.kde.org/Attic/applications # server http://download.kde.org/stable/applications/ # kmime # last changed: 2018-02-02 # by: ah # verified: https://download.kde.org/stable/applications/17.12.2/src/kmime-17.12.2.tar.xz.mirrorlist file 17.12.2/src/kmime-17.12.2.tar.xz chk 29f11eafeb13c0045069a250bdcd57fda4bdd3423e7e1b7e0ca0517a9afefd24 # Devel versions are needed until Kleopatra can be based on # a stable branch. server http://files.intevation.de/projects/gpg4all # by: ah file pinentry/pinentry-1.1.1-beta5.tar.bz2 chk 7bda3fef7d7f0f77dd4dfe11e3364c64f1e9646945afa995da8a5084ce59e101 # by: ah file gpgme/gpgme-1.12.1-beta43.tar.bz2 chk 08fbbe522e33e847da5f0c3f360f2f7089fa200ad9eddb58458b7218aee6ec04 # Libkleo # last changed: see package date. # by: ah # verified: Tarball created by ah. file libkleo/libkleo-201811121611.tar.gz chk d0c1e5dc370986b0cfd1697f46317ae1bee6598d1a4ca26d0ee88a14ec07e622 # KDE-L10n # last changed: see package date. # by: ah # verified: Tarball created by ah with script kde-l10n.sh file kde-l10n/kde-l10n-201811121428-bin.tar.xz chk c18b7305c3cbd9b2911e02cb852eb1933e39fb21b101da837787b18a733d1743 file kde-l10n/kde-l10n-201811121428-src.tar.xz chk b1ad6751a0f544d6399a42592fe7b7cc1fe395880bc5cec5db1396e7e48d9a49 # Gpg4win-tools package # last changed: see package date. # by: ah # verified: Tarball created by ah. file gpg4win-tools/gpg4win-tools-201811121334.tar.gz chk c4a1c40d9bf1bc36ee31a1c9735a4cfe025a706d48eb226467777d0e5fd0613d # Kleopatra # last changed: see package date. # by: ah # verified: Tarball created by ah. file kleopatra/kleopatra-201811261513.tar.gz chk 20410768596a7ccb78788bb43695df36c13f4a5b2a0cb95ee888197906410199 diff --git a/patches/extra-cmake-modules/0001-Add-convert-utility-support-for-Windows-icons.patch b/patches/extra-cmake-modules/0001-Add-convert-utility-support-for-Windows-icons.patch index 27e8e1ac..24cf44c4 100755 --- a/patches/extra-cmake-modules/0001-Add-convert-utility-support-for-Windows-icons.patch +++ b/patches/extra-cmake-modules/0001-Add-convert-utility-support-for-Windows-icons.patch @@ -1,143 +1,136 @@ #! /bin/sh patch -p1 -l -f $* < $0 exit $? From 9032d5c41ada1c50eddf6ea5562887af7a941aa9 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Thu, 4 Feb 2016 11:00:31 +0100 Subject: [PATCH] Add convert utility support for Windows icons --- find-modules/FindConvert.cmake | 66 ++++++++++++++++++++++++++++++++++++++++++ modules/ECMAddAppIcon.cmake | 27 +++++++++++++---- 2 files changed, 88 insertions(+), 5 deletions(-) create mode 100644 find-modules/FindConvert.cmake diff --git a/find-modules/FindConvert.cmake b/find-modules/FindConvert.cmake new file mode 100644 index 0000000..a723c37 --- /dev/null +++ b/find-modules/FindConvert.cmake @@ -0,0 +1,66 @@ +#.rst: +# FindConvert +# ----------- +# +# Try to find convert. +# +# If the convert executable is not in your PATH, you can provide +# an alternative name or full path location with the ``Convert_EXECUTABLE`` +# variable. +# +#============================================================================= +# Copyright 2016 Intevation GmbH +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# 1. Redistributions of source code must retain the copyright +# notice, this list of conditions and the following disclaimer. +# 2. Redistributions in binary form must reproduce the copyright +# notice, this list of conditions and the following disclaimer in the +# documentation and/or other materials provided with the distribution. +# 3. The name of the author may not be used to endorse or promote products +# derived from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR +# IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +# OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. +# IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, +# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +# NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF +# THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +include(${CMAKE_CURRENT_LIST_DIR}/ECMFindModuleHelpersStub.cmake) + +ecm_find_package_version_check(Convert) + +find_program(Convert_EXECUTABLE NAMES convert) + +include(FindPackageHandleStandardArgs) +find_package_handle_standard_args(Convert + FOUND_VAR + Convert_FOUND + REQUIRED_VARS + Convert_EXECUTABLE +) + +mark_as_advanced(Convert_EXECUTABLE) + +if (Convert_FOUND) + if (NOT TARGET Convert::Convert) + add_executable(Convert::Convert IMPORTED) + set_target_properties(Convert::Convert PROPERTIES + IMPORTED_LOCATION "${Convert_EXECUTABLE}" + ) + endif() +endif() + +include(FeatureSummary) +set_package_properties(Convert PROPERTIES + URL "http://www.imagemagick.org/" + DESCRIPTION "Generic image format conversion tool from imagemagick." +) diff --git a/modules/ECMAddAppIcon.cmake b/modules/ECMAddAppIcon.cmake index 5233a5f..2b5dca1 100644 --- a/modules/ECMAddAppIcon.cmake +++ b/modules/ECMAddAppIcon.cmake -@@ -128,10 +128,22 @@ function(ecm_add_app_icon appsources) - if (WIN32 AND windows_icons) +@@ -192,8 +192,11 @@ + if (WIN32 AND (windows_icons_modern OR windows_icons_classic)) set(saved_CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${ECM_FIND_MODULE_DIR}) - find_package(Png2Ico) +- find_package(IcoTool) + find_package(Convert) + if (NOT Convert_FOUND) ++ find_package(IcoTool) + find_package(Png2Ico) + endif() set(CMAKE_MODULE_PATH "${saved_CMAKE_MODULE_PATH}") -- if (Png2Ico_FOUND) -+ if (Convert_FOUND) -+ set(windows_icons ${windows_icons} ${icons_at_256px}) -+ add_custom_command( -+ OUTPUT "${_outfilename}.ico" -+ COMMAND Convert::Convert -+ ARGS ${windows_icons} "${_outfilename}.ico" -+ DEPENDS ${windows_icons} -+ WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" -+ ) -+ elseif (Png2Ico_FOUND) - if (Png2Ico_HAS_RCFILE_ARGUMENT) - add_custom_command( - OUTPUT "${_outfilename}.rc" "${_outfilename}.ico" -@@ -151,6 +163,14 @@ function(ecm_add_app_icon appsources) - DEPENDS ${windows_icons} + function(create_windows_icon_and_rc command args deps) +@@ -204,6 +207,10 @@ + DEPENDS ${deps} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" ) -+ endif() -+ else() -+ message(WARNING "Unable to find the png2ico or convert utility - application will not have an application icon!") -+ endif() + + if (Convert_FOUND OR Png2Ico_FOUND) + set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) + if (NOT Png2Ico_HAS_RCFILE_ARGUMENT) # this bit's a little hacky to make the dependency stuff work file(WRITE "${_outfilename}.rc.in" "IDI_ICON1 ICON DISCARDABLE \"${_outfilename}.ico\"\n") add_custom_command( -@@ -161,9 +181,6 @@ function(ecm_add_app_icon appsources) +@@ -220,6 +220,8 @@ + DEPENDS "${_outfilename}.ico" WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" ) - endif() -- set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) ++ endif() ++ endif() + endfunction() + + if (IcoTool_FOUND) +@@ -270,8 +281,6 @@ + + set(${appsources} "${${appsources}};${_outfilename}.rc" PARENT_SCOPE) + # else none of the supported tools was found - else() -- message(WARNING "Unable to find the png2ico utility - application will not have an application icon!") +- message(WARNING "Unable to find the png2ico or icotool utilities or icons in matching sizes - application will not have an application icon!") endif() - elseif (APPLE AND mac_icons) + elseif (APPLE AND (mac_icons OR mac_sidebar_icons)) # first generate .iconset directory structure, then convert to .icns format using the Mac OS X "iconutil" utility, -- 2.1.4 diff --git a/patches/kconfigwidgets/0001-Make-QDbus-optional.patch b/patches/kconfigwidgets/0001-Make-QDbus-optional.patch index 893dde74..615d5ec9 100755 --- a/patches/kconfigwidgets/0001-Make-QDbus-optional.patch +++ b/patches/kconfigwidgets/0001-Make-QDbus-optional.patch @@ -1,130 +1,38 @@ #! /bin/sh patch -p1 -l -f $* < $0 exit $? From 438f98aed2dd8857c6ea73b3b93b9cd0abaf6993 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Thu, 28 Jan 2016 15:27:54 +0100 Subject: [PATCH 1/2] Make QDbus optional This removes the Klipper integration of KPasteAction if QDBus is not available. --- CMakeLists.txt | 11 ++++++++++- - src/CMakeLists.txt | 7 ++++++- - src/config-kconfigwidgets.h.cmake | 2 ++ - src/kpastetextaction.cpp | 14 ++++++++++++-- - 4 files changed, 30 insertions(+), 4 deletions(-) - create mode 100644 src/config-kconfigwidgets.h.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index bed53d1..87f976c 100644 --- CMakeLists.txt.orig 2018-02-28 08:33:32.052419561 +0100 +++ CMakeLists.txt 2018-02-28 08:35:44.523986191 +0100 -@@ -12,7 +12,17 @@ - set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) - - set(REQUIRED_QT_VERSION 5.7.0) --find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED Widgets DBus) -+find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED Widgets) -+if (UNIX) -+ find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED DBus) -+#else() -+# find_package(Qt5DBus "${REQUIRED_QT_VERSION}" CONFIG) -+# set_package_properties(Qt5DBus PROPERTIES DESCRIPTION "Qt DBus Library" -+# PURPOSE "KPasteAction klipper integration." -+# URL "https://doc.qt.io/qt-5/qdbus.html" -+# TYPE OPTIONAL) -+endif() -+set (HAVE_QDBUS ${Qt5DBus_FOUND}) +@@ -13,7 +13,7 @@ + + set(REQUIRED_QT_VERSION 5.10.0) + find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED Widgets) +-if (NOT ANDROID) ++if (NOT ANDROID AND NOT WIN32) + find_package(Qt5 "${REQUIRED_QT_VERSION}" CONFIG REQUIRED DBus) + endif() include(KDEInstallDirs) - include(KDEFrameworkCompilerSettings NO_POLICY_SCOPE) - include(KDECMakeSettings) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 97837b3..104b118 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -1,3 +1,8 @@ -+if (HAVE_QDBUS) -+ set (KCONFIGWIDGETS_QDBUS_LIBS Qt5::DBus) -+endif () -+configure_file(config-kconfigwidgets.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kconfigwidgets.h ) -+ - set(kconfigwidgets_SRCS - kcodecaction.cpp - kcolorscheme.cpp -@@ -29,7 +34,7 @@ target_link_libraries(KF5ConfigWidgets - KF5::ConfigGui # KStandardAction uses KStandardShortcut - KF5::Auth # KCModule uses KAuth::Action - PRIVATE -- Qt5::DBus # KPasteTextAction talks to Klipper via DBus -+ ${KCONFIGWIDGETS_QDBUS_LIBS} # KPasteTextAction talks to Klipper via DBus - KF5::CoreAddons # KCModule uses KAboutData, KTipDialog uses KRandom - KF5::GuiAddons # KColorScheme uses KColorUtils - KF5::I18n # For action and widget texts -diff --git a/src/config-kconfigwidgets.h.cmake b/src/config-kconfigwidgets.h.cmake -new file mode 100644 -index 0000000..4a933fa ---- /dev/null -+++ b/src/config-kconfigwidgets.h.cmake -@@ -0,0 +1,2 @@ -+/* Qt5DBus available */ -+#cmakedefine01 HAVE_QDBUS -diff --git a/src/kpastetextaction.cpp b/src/kpastetextaction.cpp -index a38aa0c..3c5a614 100644 ---- a/src/kpastetextaction.cpp -+++ b/src/kpastetextaction.cpp -@@ -27,11 +27,15 @@ - - #include "kpastetextaction.h" - -+#include "config-kconfigwidgets.h" -+ - #include - #include - #include --#include --#include -+#if HAVE_QDBUS -+# include -+# include -+#endif - - class KPasteTextActionPrivate - { -@@ -97,6 +101,7 @@ void KPasteTextActionPrivate::_k_menuAboutToShow() - { - m_popup->clear(); - QStringList list; -+#if HAVE_QDBUS - QDBusInterface klipper(QStringLiteral("org.kde.klipper"), QStringLiteral("/klipper"), QStringLiteral("org.kde.klipper.klipper")); - if (klipper.isValid()) { - QDBusReply reply = klipper.call(QStringLiteral("getClipboardHistoryMenu")); -@@ -104,6 +109,7 @@ void KPasteTextActionPrivate::_k_menuAboutToShow() - list = reply; - } - } -+#endif - QString clipboardText = qApp->clipboard()->text(QClipboard::Clipboard); - if (list.isEmpty()) { - list << clipboardText; -@@ -123,6 +129,7 @@ void KPasteTextActionPrivate::_k_menuAboutToShow() - - void KPasteTextActionPrivate::_k_slotTriggered(QAction *action) - { -+#if HAVE_QDBUS - QDBusInterface klipper(QStringLiteral("org.kde.klipper"), QStringLiteral("/klipper"), QStringLiteral("org.kde.klipper.klipper")); - if (klipper.isValid()) { - QDBusReply reply = klipper.call(QStringLiteral("getClipboardHistoryItem"), -@@ -135,6 +142,9 @@ void KPasteTextActionPrivate::_k_slotTriggered(QAction *action) - //if (reply.isValid()) - // qDebug() << "Clipboard: " << qApp->clipboard()->text(QClipboard::Clipboard); - } -+#else -+ Q_UNUSED(action); -+#endif - } - - #include "moc_kpastetextaction.cpp" +@@ -34,7 +34,7 @@ + PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ConfigWidgetsConfigVersion.cmake" + SOVERSION 5) + +-if (NOT ANDROID) ++if (NOT ANDROID AND NOT WIN32) + find_package(KF5Auth ${KF5_DEP_VERSION} REQUIRED) + endif() + find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) -- 2.1.4 diff --git a/patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch b/patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch deleted file mode 100755 index effd1329..00000000 --- a/patches/kconfigwidgets/0002-Crudely-remove-KF5Auth-depedency.patch +++ /dev/null @@ -1,147 +0,0 @@ -#! /bin/sh -patch -p1 -l -f $* < $0 -exit $? - -commit 1726c63ba424a3392a1cba5a993c1388f0c3eadc -Author: Andre Heinecke -Date: Tue Feb 2 13:39:27 2016 +0100 - - Crudely remove KF5Auth depedency - - This is not intended for upstream - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 87f976c..43d447f 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -36,7 +36,7 @@ ecm_setup_version(${KF5_VERSION} VARIABLE_PREFIX KCONFIGWIDGETS - PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5ConfigWidgetsConfigVersion.cmake" - SOVERSION 5) - --find_package(KF5Auth ${KF5_DEP_VERSION} REQUIRED) -+find_package(KF5Auth ${KF5_DEP_VERSION}) - find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) - find_package(KF5Codecs ${KF5_DEP_VERSION} REQUIRED) - find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED) -diff --git a/KF5ConfigWidgetsConfig.cmake.in b/KF5ConfigWidgetsConfig.cmake.in -index 9096da6..660db4c 100644 ---- a/KF5ConfigWidgetsConfig.cmake.in -+++ b/KF5ConfigWidgetsConfig.cmake.in -@@ -1,6 +1,5 @@ - - include(CMakeFindDependencyMacro) --find_dependency(KF5Auth "@KF5_DEP_VERSION@") - find_dependency(KF5Codecs "@KF5_DEP_VERSION@") - find_dependency(KF5Config "@KF5_DEP_VERSION@") - find_dependency(KF5WidgetsAddons "@KF5_DEP_VERSION@") -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 104b118..ebce4ec 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -32,7 +32,6 @@ target_link_libraries(KF5ConfigWidgets - KF5::Codecs # KCodecActions uses KCharsets, KEncodingProber - KF5::WidgetsAddons # For K*Action, KPage*, KViewStateSerializer, KAcceleratorManager, K*GuiItem - KF5::ConfigGui # KStandardAction uses KStandardShortcut -- KF5::Auth # KCModule uses KAuth::Action - PRIVATE - ${KCONFIGWIDGETS_QDBUS_LIBS} # KPasteTextAction talks to Klipper via DBus - KF5::CoreAddons # KCModule uses KAboutData, KTipDialog uses KRandom -@@ -78,5 +77,5 @@ install(PROGRAMS preparetips5 DESTINATION ${KDE_INSTALL_BINDIR} ) - install( FILES entry.desktop DESTINATION ${KDE_INSTALL_LOCALEDIR}/en_US RENAME kf5_entry.desktop ) - - include(ECMGeneratePriFile) --ecm_generate_pri_file(BASE_NAME KConfigWidgets LIB_NAME KF5ConfigWidgets DEPS "KCodecs KWidgetsAddons KConfigGui KAuth" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KConfigWidgets) -+ecm_generate_pri_file(BASE_NAME KConfigWidgets LIB_NAME KF5ConfigWidgets DEPS "KCodecs KWidgetsAddons KConfigGui" FILENAME_VAR PRI_FILENAME INCLUDE_INSTALL_DIR ${KDE_INSTALL_INCLUDEDIR_KF5}/KConfigWidgets) - install(FILES ${PRI_FILENAME} DESTINATION ${ECM_MKSPECS_INSTALL_DIR}) -diff --git a/src/kcmodule.cpp b/src/kcmodule.cpp -index db6c966..cfa3ac9 100644 ---- a/src/kcmodule.cpp -+++ b/src/kcmodule.cpp -@@ -32,7 +32,9 @@ - #include - #include - #include -+#if 0 - #include -+#endif - - class KCModulePrivate - { -@@ -43,7 +45,9 @@ public: - _useRootOnlyMessage(false), - _firstshow(true), - _needsAuthorization(false), -+#if 0 - _authAction(), -+#endif - _unmanagedWidgetChangeState(false) - { } - -@@ -59,7 +63,9 @@ public: - bool _firstshow : 1; - - bool _needsAuthorization : 1; -+#if 0 - KAuth::Action _authAction; -+#endif - - // this member is used to record the state on non-automatically - // managed widgets, allowing for mixed KConfigXT-drive and manual -@@ -118,6 +124,7 @@ KConfigDialogManager *KCModule::addConfig(KConfigSkeleton *config, QWidget *widg - return manager; - } - -+#if 0 - void KCModule::setNeedsAuthorization(bool needsAuth) - { - d->_needsAuthorization = needsAuth; -@@ -173,6 +180,7 @@ void KCModule::authStatusChanged(KAuth::Action::AuthStatus status) - - qDebug() << useRootOnlyMessage(); - } -+#endif - - KCModule::~KCModule() - { -diff --git a/src/kcmodule.h b/src/kcmodule.h -index b01c3dc..e77b465 100644 ---- a/src/kcmodule.h -+++ b/src/kcmodule.h -@@ -25,7 +25,9 @@ - - #include - -+#if 0 - #include -+#endif - - #include - #include -@@ -197,6 +199,7 @@ public: - */ - QList configs() const; - -+#if 0 - /** - * @brief Set if the module's save() method requires authorization to be executed. - * -@@ -241,6 +244,7 @@ public: - * @return The action that has to be authorized to execute the save() method. - */ - KAuth::Action authAction() const; -+#endif - - /** - * Returns the value set by setExportText(); -@@ -378,10 +382,12 @@ protected Q_SLOTS: - */ - void widgetChanged(); - -+#if 0 - /** - * The status of the auth action, if one, has changed - */ - void authStatusChanged(KAuth::Action::AuthStatus status); -+#endif - - protected: diff --git a/patches/kiconthemes/0001-Make-DBus-optional.patch b/patches/kiconthemes/0001-Make-DBus-optional.patch index 0a417077..fddc7b3a 100755 --- a/patches/kiconthemes/0001-Make-DBus-optional.patch +++ b/patches/kiconthemes/0001-Make-DBus-optional.patch @@ -1,123 +1,34 @@ #! /bin/sh patch -p1 -l -f $* < $0 exit $? From a1afa2a58ea2b25887b5f9124cf5c886e799e547 Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Thu, 28 Jan 2016 18:22:07 +0100 Subject: [PATCH] Make DBus optional DBus is only used for the icon changed notifications emited by KIconLoader. --- CMakeLists.txt | 10 +++++++++- src/CMakeLists.txt | 7 ++++++- src/config-kiconthemes.h.cmake | 2 ++ src/kiconloader.cpp | 15 +++++++++++++-- 4 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 src/config-kiconthemes.h.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 5664ea1..22642b9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -32,7 +32,15 @@ ecm_setup_version(${KF5_VERSION} - set(REQUIRED_QT_VERSION 5.3.0) +@@ -36,7 +36,7 @@ + set(REQUIRED_QT_VERSION 5.10.0) find_package(Qt5Widgets ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) find_package(Qt5Svg ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) --find_package(Qt5DBus ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) -+#if (UNIX) -+#else() -+# find_package(Qt5DBus "${REQUIRED_QT_VERSION}" CONFIG) -+# set_package_properties(Qt5DBus PROPERTIES DESCRIPTION "Qt DBus Library" -+# PURPOSE "KIconLoader icon change notifications." -+# URL "https://doc.qt.io/qt-5/qdbus.html" -+# TYPE OPTIONAL) -+#endif() -+set (HAVE_QDBUS ${Qt5DBus_FOUND}) - - find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED) - find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 82d2979..f006f17 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -3,6 +3,11 @@ if (APPLE) - add_subdirectory(tools/ksvg2icns) +-if (NOT ANDROID) ++if (NOT ANDROID AND NOT WIN32) + find_package(Qt5DBus ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) endif() -+if (HAVE_QDBUS) -+ set (QDBUS_LIBS Qt5::DBus) -+endif () -+configure_file(config-kiconthemes.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kiconthemes.h ) -+ - set(kiconthemes_SRCS - kiconbutton.cpp - kicondialog.cpp -@@ -23,7 +28,7 @@ target_link_libraries(KF5IconThemes - PUBLIC - Qt5::Widgets - PRIVATE -- Qt5::DBus -+ ${QDBUS_LIBS} # for icon changed notification in KIconLoader - Qt5::Svg - KF5::I18n # for i18n in KIconDialog - KF5::WidgetsAddons # for KPixmapSequence family -diff --git a/src/config-kiconthemes.h.cmake b/src/config-kiconthemes.h.cmake -new file mode 100644 -index 0000000..4a933fa ---- /dev/null -+++ b/src/config-kiconthemes.h.cmake -@@ -0,0 +1,2 @@ -+/* Qt5DBus available */ -+#cmakedefine01 HAVE_QDBUS -diff --git a/src/kiconloader.cpp b/src/kiconloader.cpp -index 75ab482..3a0ff0a 100644 ---- a/src/kiconloader.cpp -+++ b/src/kiconloader.cpp -@@ -22,6 +22,8 @@ - * Boston, MA 02110-1301, USA. - */ - -+#include "config-kiconthemes.h" -+ - #include "kiconloader.h" - - #include //for readlink -@@ -46,8 +48,10 @@ - #include - #include - #include --#include --#include -+#if HAVE_QDBUS -+# include -+# include -+#endif - #include - #include - #include -@@ -323,15 +328,21 @@ public: - parseGenericIconsFiles(file); - } - -+#if HAVE_QDBUS - QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KIconLoader"), QStringLiteral("org.kde.KIconLoader"), - QStringLiteral("iconChanged"), this, SIGNAL(iconChanged(int))); -+#endif - } - - void emitChange(KIconLoader::Group group) - { -+#if HAVE_QDBUS - QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KIconLoader"), QStringLiteral("org.kde.KIconLoader"), QStringLiteral("iconChanged")); - message.setArguments(QList() << int(group)); - QDBusConnection::sessionBus().send(message); -+#else -+ Q_UNUSED(group); -+#endif - } - - QString genericIconFor(const QString &icon) const -- 2.1.4 diff --git a/patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch b/patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch deleted file mode 100755 index ebf6f07a..00000000 --- a/patches/kxmlgui/0002-Make-QDBus-dependency-optional.patch +++ /dev/null @@ -1,421 +0,0 @@ -#! /bin/sh -patch -p1 -l -f $* < $0 -exit $? - -From 6f2ed92f19bcfa4d8d03a98ace3232082ddbab18 Mon Sep 17 00:00:00 2001 -From: Andre Heinecke -Date: Thu, 2 Feb 2017 11:36:48 +0100 -Subject: [PATCH] Make QDBus dependency optional - -If an application is "standalone" DBus IPC may not be neccessary. -This main use case for this are platforms like Windows where DBus -is foreign. - -Features lost without DBus are the handling of global style changes -in KToolBar and the general KDE DBus integration of KMainWindow. -So this should not be done and is guarded as a FORCE option ---- - CMakeLists.txt | 15 ++++++++++++--- - KF5XmlGuiConfig.cmake.in | 2 +- - autotests/kmainwindow_unittest.cpp | 2 ++ - autotests/ktoolbar_unittest.cpp | 20 +++++++++++++++++++- - src/CMakeLists.txt | 15 ++++++++++++--- - src/config-xmlgui.h.cmake | 3 +++ - src/kmainwindow.cpp | 10 ++++++++-- - src/kmainwindowiface.cpp | 2 +- - src/ktoolbar.cpp | 13 +++++++++++-- - src/kxmlguiwindow.cpp | 13 +++++++++++-- - 10 files changed, 80 insertions(+), 15 deletions(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index d9728db..7d8cd00 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -30,13 +30,16 @@ - PACKAGE_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/KF5XmlGuiConfigVersion.cmake" - SOVERSION 5) - --option(FORCE_DISABLE_KGLOBALACCEL "Force building KXmlGui without KGlobalAccel. Doing this will break global shortcut support. [default=OFF]" OFF) -+# Optional packages that usually should not be disabled as this might -+# break behavior users (or other developers) of this library rely on. -+option(FORCE_DISABLE_KGLOBALACCEL "Force building KXmlGui without KGlobalAccel. This will break global shortcut support. [default=OFF]" OFF) -+option(FORCE_DISABLE_DBUS "Force building KXmlGui without a dependency to QDbus. This will break KMainWindow integration and style change notifications. [default=OFF]" OFF) - option(BUILD_QCH "Build API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)" OFF) - add_feature_info(QCH ${BUILD_QCH} "API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop)") - - # Dependencies - set(REQUIRED_QT_VERSION 5.7.0) --find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets DBus Xml Network PrintSupport) -+find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Widgets Xml Network PrintSupport) - - find_package(KF5CoreAddons ${KF5_DEP_VERSION} REQUIRED) - find_package(KF5ItemViews ${KF5_DEP_VERSION} REQUIRED) -@@ -60,6 +64,12 @@ - endif() - set (HAVE_GLOBALACCEL ${KF5GlobalAccel_FOUND}) - -+if (NOT FORCE_DISABLE_DBUS) -+ find_package(Qt5DBus ${REQUIRED_QT_VERSION} CONFIG REQUIRED) -+ set(QT5DBUS_FIND_DEPENDENCY "find_dependency(Qt5DBus ${REQUIRED_QT_VERSION})") -+endif() -+set (HAVE_QDBUS ${Qt5DBus_FOUND}) -+ - # Subdirectories - add_definitions(-DTRANSLATION_DOMAIN=\"kxmlgui5\") - if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") -diff --git a/KF5XmlGuiConfig.cmake.in b/KF5XmlGuiConfig.cmake.in -index 6f8d8ce..550e667 100644 ---- a/KF5XmlGuiConfig.cmake.in -+++ b/KF5XmlGuiConfig.cmake.in -@@ -3,7 +3,7 @@ - set(XMLGUI_DBUS_INTERFACES_DIR "@PACKAGE_KDE_INSTALL_DBUSINTERFACEDIR@") - - include(CMakeFindDependencyMacro) --find_dependency(Qt5DBus @REQUIRED_QT_VERSION@) -+@QT5DBUS_FIND_DEPENDENCY@ - find_dependency(Qt5Widgets @REQUIRED_QT_VERSION@) - find_dependency(Qt5Xml @REQUIRED_QT_VERSION@) - -diff --git a/autotests/kmainwindow_unittest.cpp b/autotests/kmainwindow_unittest.cpp -index ec73f7f..4776453 100644 ---- a/autotests/kmainwindow_unittest.cpp -+++ b/autotests/kmainwindow_unittest.cpp -@@ -17,6 +17,8 @@ - Boston, MA 02110-1301, USA. - */ - -+#include "config-xmlgui.h" -+ - #include - #include "kmainwindow_unittest.h" - #include -diff --git a/autotests/ktoolbar_unittest.cpp b/autotests/ktoolbar_unittest.cpp -index 09b96dc..241f7f0 100644 ---- a/autotests/ktoolbar_unittest.cpp -+++ b/autotests/ktoolbar_unittest.cpp -@@ -18,10 +18,14 @@ - Boston, MA 02110-1301, USA. - */ - -+#include "config-xmlgui.h" -+ - #include "testxmlguiwindow.h" - #include "testguiclient.h" - --#include -+#if HAVE_QDBUS -+# include -+#endif - #include - #include - #include -@@ -80,7 +84,9 @@ protected: - private: - void changeGlobalIconSizeSetting(int, int); - void deleteGlobalIconSizeSetting(); -+#if HAVE_QDBUS - void changeGlobalToolButtonStyleSetting(const QString &, const QString &); -+#endif - void deleteGlobalToolButtonStyleSetting(); - QByteArray m_xml; - bool m_showWasCalled; -@@ -427,6 +433,7 @@ void tst_KToolBar::testToolButtonStyleNoXmlGui() - QCOMPARE((int)mainToolBar->toolButtonStyle(), (int)toolButtonStyle); - QCOMPARE((int)otherToolBar->toolButtonStyle(), (int)toolButtonStyle); - -+#if HAVE_QDBUS - // Now change KDE-global setting - changeGlobalToolButtonStyleSetting(QStringLiteral("IconOnly"), QStringLiteral("TextOnly")); - -@@ -441,6 +448,9 @@ void tst_KToolBar::testToolButtonStyleNoXmlGui() - } else { - QCOMPARE((int)otherToolBar->toolButtonStyle(), (int)toolButtonStyle); - } -+#else -+ Q_UNUSED(selectedDefaultForOtherToolbar); -+#endif - } - } - -@@ -490,16 +500,23 @@ void tst_KToolBar::testToolButtonStyleXmlGui() - // Save settings - kmw.saveMainWindowSettings(group); - -+#if HAVE_QDBUS - // Now change KDE-global setting - changeGlobalToolButtonStyleSetting(QStringLiteral("IconOnly"), QStringLiteral("TextOnly")); - - QCOMPARE((int)mainToolBar->toolButtonStyle(), (int)expectedStyleMainToolbar); - QCOMPARE((int)otherToolBar->toolButtonStyle(), (int)expectedStyleOtherToolbar); - QCOMPARE((int)cleanToolBar->toolButtonStyle(), (int)expectedStyleCleanToolbar); -+#else -+ Q_UNUSED(expectedStyleMainToolbar); -+ Q_UNUSED(expectedStyleOtherToolbar); -+ Q_UNUSED(expectedStyleCleanToolbar); -+#endif - - } - } - -+#if HAVE_QDBUS - void tst_KToolBar::changeGlobalToolButtonStyleSetting(const QString &mainToolBar, const QString &otherToolBars) - { - KConfigGroup group(KSharedConfig::openConfig(), "Toolbar style"); -@@ -517,6 +534,7 @@ void tst_KToolBar::changeGlobalToolButtonStyleSetting(const QString &mainToolBar - KToolBar::emitToolbarStyleChanged(); - spy.wait(2000); - } -+#endif - - void tst_KToolBar::deleteGlobalToolButtonStyleSetting() - { -diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 8126b5e..e849ab7 100644 ---- a/src/CMakeLists.txt -+++ b/src/CMakeLists.txt -@@ -6,6 +6,10 @@ endif () - if (HAVE_GLOBALACCEL) - set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::GlobalAccel) - endif () -+if (HAVE_QDBUS) -+ set (XMLGUI_QDBUS_LIBS Qt5::DBus) -+ set (XMLGUI_DBUS_PRI_NAME "dbus") -+endif () - if(WIN32) - set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} secur32) # GetUserNameEx() - endif() -@@ -33,7 +37,6 @@ set(kxmlgui_SRCS - khelpmenu.cpp - kkeysequencewidget.cpp - kmainwindow.cpp -- kmainwindowiface.cpp - kmenumenuhandler_p.cpp - kshortcuteditwidget.cpp - kshortcutschemeseditor.cpp -@@ -56,6 +59,12 @@ set(kxmlgui_SRCS - kundoactions.cpp - kcheckaccelerators.cpp - ) -+if (HAVE_QDBUS) -+ set(kxmlgui_SRCS -+ ${kxmlgui_SRCS} -+ kmainwindowiface.cpp -+ ) -+endif() - - # add the resource file - qt5_add_resources(kxmlgui_SRCS kxmlgui.qrc) -@@ -77,7 +86,7 @@ target_include_directories(KF5XmlGui INTERFACE "$ - #include - #include --#include - - #include - #include -@@ -58,6 +57,11 @@ - #include - #include - -+#if HAVE_QDBUS -+# include "kmainwindowiface_p.h" -+# include -+#endif -+ - //#include - - static const char WINDOW_PROPERTIES[]="WindowProperties"; -@@ -340,6 +344,7 @@ void KMainWindowPrivate::polish(KMainWindow *q) - q->winId(); // workaround for setWindowRole() crashing, and set also window role, just in case TT - q->setWindowRole(s); // will keep insisting that object name suddenly should not be used for window role - -+#if HAVE_QDBUS - dbusName = QLatin1Char('/') + QCoreApplication::applicationName() + QLatin1Char('/'); - dbusName += q->objectName().replace(QLatin1Char('/'), QLatin1Char('_')); - // Clean up for dbus usage: any non-alphanumeric char should be turned into '_' -@@ -355,6 +360,7 @@ void KMainWindowPrivate::polish(KMainWindow *q) - QDBusConnection::ExportNonScriptableSlots | - QDBusConnection::ExportNonScriptableProperties | - QDBusConnection::ExportAdaptors); -+#endif - } - - void KMainWindowPrivate::setSettingsDirty(CallCompression callCompression) -diff --git a/src/kmainwindowiface.cpp b/src/kmainwindowiface.cpp -index c194bec..25439b3 100644 ---- a/src/kmainwindowiface.cpp -+++ b/src/kmainwindowiface.cpp -@@ -18,8 +18,8 @@ - Boston, MA 02110-1301, USA. - */ - --#include "kmainwindowiface_p.h" - -+#include "kmainwindowiface_p.h" - #include "kactioncollection.h" - #include "kxmlguiwindow.h" - -diff --git a/src/ktoolbar.cpp b/src/ktoolbar.cpp -index 4569524..f77d965 100644 ---- a/src/ktoolbar.cpp -+++ b/src/ktoolbar.cpp -@@ -24,6 +24,8 @@ - Boston, MA 02110-1301, USA. - */ - -+#include "config-xmlgui.h" -+ - #include "ktoolbar.h" - - #include -@@ -38,10 +40,13 @@ - #include - #include - #include --#include --#include - #include - -+#if HAVE_QDBUS -+# include -+# include -+#endif -+ - #include - #include - #include -@@ -275,8 +280,10 @@ void KToolBar::Private::init(bool readConfig, bool _isMainToolBar) - - q->setAcceptDrops(true); - -+#if HAVE_QDBUS - QDBusConnection::sessionBus().connect(QString(), QStringLiteral("/KToolBar"), QStringLiteral("org.kde.KToolBar"), - QStringLiteral("styleChanged"), q, SLOT(slotAppearanceChanged())); -+#endif - connect(KIconLoader::global(), SIGNAL(iconLoaderSettingsChanged()), - q, SLOT(slotAppearanceChanged())); - } -@@ -1467,8 +1474,10 @@ bool KToolBar::toolBarsLocked() - - void KToolBar::emitToolbarStyleChanged() - { -+#if HAVE_QDBUS - QDBusMessage message = QDBusMessage::createSignal(QStringLiteral("/KToolBar"), QStringLiteral("org.kde.KToolBar"), QStringLiteral("styleChanged")); - QDBusConnection::sessionBus().send(message); -+#endif - } - - #include "moc_ktoolbar.cpp" -diff --git a/src/kxmlguiwindow.cpp b/src/kxmlguiwindow.cpp -index 24d48f1..5b9fac7 100644 ---- a/src/kxmlguiwindow.cpp -+++ b/src/kxmlguiwindow.cpp -@@ -23,13 +23,14 @@ - Boston, MA 02110-1301, USA. - */ - -+#include "config-xmlgui.h" -+ - #include "kxmlguiwindow.h" - #include "debug.h" - - #include "kmainwindow_p.h" - #include "kmessagebox.h" - #include "kactioncollection.h" --#include "kmainwindowiface_p.h" - #include "ktoolbarhandler_p.h" - #include "kxmlguifactory.h" - #include "kedittoolbar.h" -@@ -37,7 +38,6 @@ - #include "ktoolbar.h" - - #include --#include - #include - #include - #include -@@ -47,6 +47,11 @@ - #include - #include - -+#if HAVE_QDBUS -+# include "kmainwindowiface_p.h" -+# include -+#endif -+ - #include - #include - #include -@@ -87,7 +92,9 @@ - d->toolBarHandler = nullptr; - d->showStatusBarAction = nullptr; - d->factory = nullptr; -- new KMainWindowInterface(this); -+#if HAVE_QDBUS -+ new KMainWindowInterface(this); -+#endif - } - - QAction *KXmlGuiWindow::toolBarMenuAction() -@@ -117,6 +124,7 @@ - bool KXmlGuiWindow::event(QEvent *ev) - { - bool ret = KMainWindow::event(ev); -+#if HAVE_QDBUS - if (ev->type() == QEvent::Polish) { - QDBusConnection::sessionBus().registerObject(dbusName() + QStringLiteral("/actions"), actionCollection(), - QDBusConnection::ExportScriptableSlots | -@@ -125,6 +133,7 @@ - QDBusConnection::ExportNonScriptableProperties | - QDBusConnection::ExportChildObjects); - } -+#endif - return ret; - } - --- -2.1.4 diff --git a/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch b/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch index 7150e4e4..a1f307db 100755 --- a/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch +++ b/patches/kxmlgui/0003-Make-KTextWidgets-optional.patch @@ -1,155 +1,155 @@ #! /bin/sh patch -p1 -l -f $* < $0 exit $? From 958f1e7fdca18da499dc8c72ffbe1fba9ed4878a Mon Sep 17 00:00:00 2001 From: Andre Heinecke Date: Tue, 26 Jan 2016 18:40:59 +0100 Subject: [PATCH 3/3] Make KTextWidgets optional The textedit is only used in the bugreport widget. For a standalone application the added Features in there come at the cost of a dependency to KService. If it is optional a user of this library can decide if they want this. --- CMakeLists.txt | 9 ++++++++- src/CMakeLists.txt | 4 +++- src/config-xmlgui.h.cmake | 3 +++ src/kbugreport.cpp | 21 ++++++++++++++++++--- tests/CMakeLists.txt | 4 +++- 5 files changed, 35 insertions(+), 6 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index acb6037..dcaecc3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -39,7 +39,6 @@ find_package(KF5Config ${KF5_DEP_VERSION} REQUIRED) find_package(KF5ConfigWidgets ${KF5_DEP_VERSION} REQUIRED) find_package(KF5I18n ${KF5_DEP_VERSION} REQUIRED) find_package(KF5IconThemes ${KF5_DEP_VERSION} REQUIRED) -find_package(KF5TextWidgets ${KF5_DEP_VERSION} REQUIRED) find_package(KF5WidgetsAddons ${KF5_DEP_VERSION} REQUIRED) find_package(KF5WindowSystem ${KF5_DEP_VERSION} REQUIRED) @@ -68,6 +67,14 @@ set_package_properties(KF5GlobalAccel PROPERTIES DESCRIPTION "A KDE Frameworks L ) set (HAVE_GLOBALACCEL ${KF5GlobalAccel_FOUND}) +find_package(KF5TextWidgets ${KF5_DEP_VERSION}) +set_package_properties(KF5TextWidgets PROPERTIES DESCRIPTION "Library for KDE integrated text editor widgets" + PURPOSE "KDE integration (e.g. Spell Checking) in bug report editor" + URL "https://projects.kde.org/projects/frameworks/ktextwidgets" + TYPE OPTIONAL + ) +set (HAVE_TEXTWIDGETS ${KF5TextWidgets_FOUND}) + # Subdirectories add_definitions(-DTRANSLATION_DOMAIN=\"kxmlgui5\") if (IS_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/po") diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index e849ab7..a4e9dd0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -10,6 +10,9 @@ if (HAVE_QDBUS) set (XMLGUI_QDBUS_LIBS Qt5::DBus) set (XMLGUI_DBUS_PRI_NAME "dbus") endif () +if (HAVE_TEXTWIDGETS) + set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} KF5::TextWidgets) # KTextEdit in kbugreport +endif() if(WIN32) set (XMLGUI_EXTRA_LIBS ${XMLGUI_EXTRA_LIBS} secur32) # GetUserNameEx() endif() @@ -99,7 +102,6 @@ PRIVATE KF5::ItemViews #KWidgetItemDelegate in KAboutApplicationPersonListDelegate KF5::I18n #i18n and i18nc in many places KF5::IconThemes #KIconLoader and KIconThemes in KToolBar - KF5::TextWidgets #KTextEdit in kbugreport KF5::WindowSystem #KKeyServer in kkeysequencewidget ${XMLGUI_EXTRA_LIBS} ) diff --git a/src/config-xmlgui.h.cmake b/src/config-xmlgui.h.cmake index 35c9477..0873a95 100644 --- a/src/config-xmlgui.h.cmake +++ b/src/config-xmlgui.h.cmake -@@ -10,3 +10,6 @@ +@@ -7,3 +7,6 @@ - /* Qt5DBus available */ - #cmakedefine01 HAVE_QDBUS + /* KF5GlobalAccel available */ + #cmakedefine01 HAVE_GLOBALACCEL + +/* KF5TextWidgets available */ +#cmakedefine01 HAVE_TEXTWIDGETS diff --git a/src/kbugreport.cpp b/src/kbugreport.cpp index f418dde..766b326 100644 --- a/src/kbugreport.cpp +++ b/src/kbugreport.cpp @@ -17,6 +17,8 @@ Boston, MA 02110-1301, USA. */ +#include "config-xmlgui.h" + #include "kbugreport.h" #include @@ -43,9 +45,14 @@ #include #include #include -#include #include +#if HAVE_TEXTWIDGETS +# include +#else +# include +#endif + #include "kdepackages.h" #include "../kxmlgui_version.h" #include "systeminformation_p.h" @@ -65,7 +72,11 @@ public: QProcess *m_process; KAboutData m_aboutData; +#if HAVE_TEXTWIDGETS KTextEdit *m_lineedit; +#else + QTextEdit *m_lineedit; +#endif QLineEdit *m_subject; QLabel *m_from; QLabel *m_version; @@ -263,12 +274,16 @@ KBugReport::KBugReport(const KAboutData &aboutData, QWidget *_parent) lay->addWidget(label); // The multiline-edit +#if HAVE_TEXTWIDGETS d->m_lineedit = new KTextEdit(this); + d->m_lineedit->setCheckSpellingEnabled(true); + d->m_lineedit->setSpellCheckingLanguage(QStringLiteral("en")); +#else + d->m_lineedit = new QTextEdit(this); +#endif d->m_lineedit->setMinimumHeight(180); // make it big d->m_lineedit->setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere); d->m_lineedit->setLineWrapMode(QTextEdit::WidgetWidth); - d->m_lineedit->setCheckSpellingEnabled(true); - d->m_lineedit->setSpellCheckingLanguage(QStringLiteral("en")); lay->addWidget(d->m_lineedit, 10 /*stretch*/); d->_k_slotSetFrom(); diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 3a5a42f..9cc2e32 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -22,4 +22,6 @@ xmlgui_executable_tests( kwindowtest ) -add_subdirectory(krichtexteditor) +if (HAVE_TEXTWIDGETS) + add_subdirectory(krichtexteditor) +endif() -- 2.1.4 diff --git a/src/Makefile.am b/src/Makefile.am index acb99952..3eef90b7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,728 +1,729 @@ # Makefile.am - Installer for GnuPG 4 Windows Makefile. # Copyright (C) 2005, 2006, 2007, 2008, 2009 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 . EXTRA_DIST = pkg-config gpg4win.nsi gpg4win-src.nsi \ config.site config.nsi.in \ libiconv.def libintl.def loreley.mid \ gpg4win-splash.wav exdll.h g4wihelp.c desktopshellrun.cpp \ g4wihelp.nsi slideshow.cpp \ inst-sections.nsi installer.nsi installer-finish.nsi \ zlib.pc sha1sum.c mkportable.c \ mkportable-vanilla.h mkportable-full.h \ potomo Memento.nsh \ inst-gpg4win.nsi uninst-gpg4win.nsi \ inst-atk.nsi uninst-atk.nsi \ inst-expat.nsi uninst-expat.nsi \ inst-freetype.nsi uninst-freetype.nsi \ inst-fontconfig.nsi uninst-fontconfig.nsi \ inst-cairo.nsi uninst-cairo.nsi \ inst-gettext.nsi uninst-gettext.nsi \ inst-libffi.nsi uninst-libffi.nsi \ inst-glib.nsi uninst-glib.nsi \ inst-gnupg-w32.nsi uninst-gnupg-w32.nsi \ inst-gpa.nsi uninst-gpa.nsi \ inst-gpgme.nsi uninst-gpgme.nsi \ inst-paperkey.nsi uninst-paperkey.nsi \ inst-gpgol.nsi uninst-gpgol.nsi \ inst-gpgex.nsi uninst-gpgex.nsi \ inst-gdk-pixbuf.nsi uninst-gdk-pixbuf.nsi \ inst-gtk+.nsi uninst-gtk+.nsi \ inst-libassuan.nsi uninst-libassuan.nsi \ inst-libgpg-error.nsi uninst-libgpg-error.nsi \ inst-libiconv.nsi uninst-libiconv.nsi \ inst-libpng.nsi uninst-libpng.nsi \ inst-compendium.nsi uninst-compendium.nsi \ inst-man_advanced_de.nsi uninst-man_advanced_de.nsi \ inst-man_advanced_en.nsi uninst-man_advanced_en.nsi \ inst-man_novice_de.nsi uninst-man_novice_de.nsi \ inst-man_novice_en.nsi uninst-man_novice_en.nsi \ inst-pango.nsi uninst-pango.nsi \ inst-pinentry.nsi uninst-pinentry.nsi \ inst-pkgconfig.nsi uninst-pkgconfig.nsi \ inst-w32pth.nsi uninst-w32pth.nsi \ inst-zlib.nsi uninst-zlib.nsi \ inst-kconfig.nsi uninst-kconfig.nsi \ inst-kleopatra.nsi uninst-kleopatra.nsi \ inst-bzip2.nsi uninst-bzip2.nsi \ uninst-claws-mail.nsi uninst-claws-mail-cmds.nsi \ inst-qtbase.nsi uninst-qtbase.nsi \ inst-ki18n.nsi uninst-ki18n.nsi \ inst-kwidgetsaddons.nsi uninst-kwidgetsaddons.nsi \ inst-kcompletion.nsi uninst-kcompletion.nsi \ inst-kwindowsystem.nsi uninst-kwindowsystem.nsi \ inst-libkleo.nsi uninst-libkleo.nsi \ inst-kcoreaddons.nsi uninst-kcoreaddons.nsi \ inst-kcodecs.nsi uninst-kcodecs.nsi \ inst-kconfigwidgets.nsi uninst-kconfigwidgets.nsi \ inst-kxmlgui.nsi uninst-kxmlgui.nsi \ inst-kiconthemes.nsi uninst-kiconthemes.nsi \ inst-breeze-icons.nsi uninst-breeze-icons.nsi \ inst-karchive.nsi uninst-karchive.nsi \ inst-kcrash.nsi uninst-kcrash.nsi \ inst-kitemviews.nsi uninst-kitemviews.nsi \ inst-kitemmodels.nsi uninst-kitemmodels.nsi \ inst-kguiaddons.nsi uninst-kguiaddons.nsi \ inst-kmime.nsi uninst-kmime.nsi \ inst-kde-l10n.nsi uninst-kde-l10n.nsi \ inst-qtsvg.nsi uninst-qtsvg.nsi \ inst-qttools.nsi uninst-qttools.nsi \ inst-qttranslations.nsi uninst-qttranslations.nsi \ inst-qtwinextras.nsi uninst-qtwinextras.nsi \ inst-boost.nsi uninst-boost.nsi \ inst-extra-cmake-modules.nsi uninst-extra-cmake-modules.nsi \ inst-gpg4win-tools.nsi uninst-gpg4win-tools.nsi \ inst-gpgme-browser.nsi \ inst-final.nsi index.theme \ slideshow/slides.dat \ slideshow/slide1-gpgol.png \ slideshow/slide2-gpgex.png \ slideshow/slide3-kleopatra.png \ slideshow/slide4-summary.png \ file-ext.ico gpg4win_readme_ll = en de ar es fr ru pt README_files = $(addsuffix .txt,$(addprefix README.,$(gpg4win_readme_ll))) gpg4win_howto_smime_ll = en de HOWTO_files = $(addsuffix .txt, \ $(addprefix HOWTO-SMIME.,$(gpg4win_howto_smime_ll))) foosum_exe = sha1sum.exe md5sum.exe sha256sum.exe mkportable.exe # Need to clean the dll because we bypassed automake. CLEANFILES = g4wihelp.dll desktopshellrun.o versioninfo.txt $(README_files) \ $(HOWTO_files) NEWS.tmp COMPONENTS-list.tmp \ license.blurb cdversioninfo.tmp slideshow.o \ $(foosum_exe) # Supported source packages. gpg4win_spkgs = glib libffi gdk-pixbuf gtk+ \ libgpg-error gpgme gpgol gpgex libpng \ gpa opencdk \ pinentry libassuan \ w32pth paperkey regex libiconv gettext gpg4win_qtpkgs = qtbase qttools qtwinextras qtsvg qttranslations # Source packages following the KDE pattern gpg4win_kdepkgs = kconfig kwidgetsaddons ki18n extra-cmake-modules \ kcompletion kwindowsystem kcoreaddons libkleo kcodecs \ kmime kconfigwidgets kxmlgui kguiaddons kitemviews \ kiconthemes kleopatra breeze-icons kitemmodels karchive \ gpg4win-tools kcrash # Supported source packages to build in an additional architecture gpg4win_expkgs = libgpg-error libassuan libiconv gettext w32pth gpgex gpgol \ gpgme # Extra options to configure for individual packages. # We can use $(idir) here for the installation prefix. gpg4win_pkg_libiconv_ex_configure = \ --enable-shared=no --enable-static=yes gpg4win_pkg_gettext_configure = \ --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \ CPPFLAGS=-I$(idir)/include CFLAGS=-O2 LDFLAGS=-L$(idir)/lib gpg4win_pkg_gettext_ex_configure = \ --with-lib-prefix=$(ex_idir) --with-libiconv-prefix=$(ex_idir) \ CPPFLAGS=-I$(ex_idir)/include CFLAGS=-O2 LDFLAGS=-L$(ex_idir)/lib # We only need gettext-runtime and there is sadly no top level # configure option for this gpg4win_pkg_gettext_make_dir = gettext-runtime gpg4win_pkg_gettext_make_dir_inst = gettext-runtime gpg4win_pkg_gettext_ex_make_dir = gettext-runtime gpg4win_pkg_gettext_ex_make_dir_inst = gettext-runtime gpg4win_pkg_glib_configure = \ --disable-modular-tests \ --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib CCC=$(host)-g++ gpg4win_pkg_glib_extracflags = -march=i486 gpg4win_pkg_gdk_pixbuf_configure = \ --with-lib-prefix=$(idir) --with-libiconv-prefix=$(idir) \ --with-included-loaders=yes \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib gpg4win_pkg_gtk__configure = \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib --disable-cups # The GnuPG package provides man pages which we have to convert. # We also create the MO files here. define gpg4win_pkg_gnupg2_post_install (for i in gpg2 gpgv2 gpgsm gpg-agent scdaemon gpg-connect-agent gpgconf ; \ do man -Tlatin1 -l $$$${pkgidir}/share/man/man1/$$$${i}.1 | \ sed `printf "s/_\b//g;s/\b.//g"` | \ sed -e 's/$$$$/\r/' > $$$${pkgidir}/share/man/man1/$$$${i}.man ; \ done ; \ for i in `$(tsdir)/src/potomo --get-linguas $$$${pkgsdir}/po` ; do \ $(MKDIR_P) $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES || true; \ rm $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/gnupg2.mo 2>/dev/null \ || true; \ $(tsdir)/src/potomo $$$${pkgsdir}/po/$$$${i}.po \ $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/gnupg2.mo; \ done) endef # Paperkey comes with a man pages which we have to convert. define gpg4win_pkg_paperkey_post_install (for i in paperkey ; \ do man -Tlatin1 -l $$$${pkgidir}/share/man/man1/$$$${i}.1 | \ sed `printf "s/_\b//g;s/\b.//g"` | \ sed -e 's/$$$$/\r/' > $$$${pkgidir}/share/man/man1/$$$${i}.man ; \ done) endef # Build the reference manual. define gpg4win_pkg_gpgol_post_install ( cd $$$${pkgbdir}/doc; make pdf ) endef # We would like to use --with-libiconv-prefix and # --with-libintl-prefix, but these don't work with the cheesy # non-"libfoo.la" versions of iconv and gettext that we are using. #gpg4win_pkg_libgpg_error_configure = \ # --with-libiconv-prefix=$(idir) --with-libintl-prefix=$(idir) gpg4win_pkg_libgpg_error_configure = --silent \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib \ --enable-static gpg4win_pkg_libgpg_error_ex_configure = --silent \ --enable-static # We convert the PO files to UTF-8. FIXME: This should be done in # libgpg-error proper. define gpg4win_pkg_libgpg_error_post_install (for i in `$(tsdir)/src/potomo --get-linguas $$$${pkgsdir}/po` ; do \ rm $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/libgpg-error.mo \ 2>/dev/null|| true; \ $(tsdir)/src/potomo $$$${pkgsdir}/po/$$$${i}.po \ $$$${pkgidir}/share/locale/$$$${i}/LC_MESSAGES/libgpg-error.mo; \ done) endef gpg4win_pkg_libassuan_configure = --silent --enable-static gpg4win_pkg_libassuan_ex_configure = --silent --enable-static gpg4win_pkg_libpng_configure = HAVE_SOLARIS_LD_FALSE=yes CPPFLAGS=\"-I$(idir)/include -DPNG_BUILD_DLL\" LDFLAGS=\"-L$(idir)/lib\" LIBPNG_DEFINES=\"-DPNG_BUILD_DLL\" # We would like to use --with-libiconv-prefix and # --with-libintl-prefix, but these don't work with the cheesy # non-"libfoo.la" versions of iconv and gettext that we are using. if BUILD_FULL_INSTALLER pinentry_enable_disable= --enable-pinentry-qt endif gpg4win_pkg_pinentry_configure = \ $(pinentry_enable_disable) \ --disable-pinentry-fltk \ --enable-pinentry-gtk2 \ CPPFLAGS=-I$(idir)/include LDFLAGS=-L$(idir)/lib # --with-libiconv-prefix=$(idir) --with-libintl-prefix=$(idir) # The LDFLAGS is needed for -lintl for glib. The QT4 variables work # around the lack of cross compilation support in qt-dev. gpg4win_pkg_gpgme_configure = --silent \ --with-gpg-error-prefix=$(idir) --enable-static \ `test -n "@HAVE_PKG_GLIB@" && echo "--enable-w32-glib"` \ CFLAGS=-I$(idir)/include/glib-2.0/ \ LDFLAGS=-L$(idir)/lib \ --enable-languages=qt,cpp \ --disable-gpg-test \ --disable-gpgsm-test gpg4win_pkg_gpgme_ex_configure = --silent \ --with-gpg-error-prefix=$(ex_idir) --enable-static \ --with-libassuan-prefix=$(ex_idir) \ LDFLAGS=-L$(ex_idir)/lib \ --enable-languages=cpp \ --disable-gpg-test \ --disable-gpgsm-test gpg4win_pkg_gpa_configure = --silent \ --with-libiconv-prefix=$(idir) --with-libintl-prefix=$(idir) \ --with-gpgme-prefix=$(idir) --with-zlib=$(idir) \ --with-libassuan-prefix=$(idir) --with-gpg-error-prefix=$(idir) gpg4win_pkg_gpgol_configure = --silent \ --with-gpgme-prefix=$(idir) --with-gpg-error-prefix=$(idir) \ --with-libassuan-prefix=$(idir) --enable-mime-send gpg4win_pkg_gpgol_ex_configure = --silent \ --with-gpgme-prefix=$(ex_idir) --with-gpg-error-prefix=$(ex_idir) \ --with-libassuan-prefix=$(ex_idir) --enable-mime-send gpg4win_pkg_gpgex_configure = --silent \ --with-gpg-error-prefix=$(idir) \ --with-libassuan-prefix=$(idir) gpg4win_pkg_gpgex_ex_configure = --silent \ --with-gpg-error-prefix=$(ex_idir) \ --with-libassuan-prefix=$(ex_idir) gpg4win_pkg_paperkey_configure = --silent -gpg4win_pkg_ki18n_configure = -DBUILD_WITH_QTSCRIPT=OFF +gpg4win_pkg_ki18n_configure = -DBUILD_WITH_QML=OFF +gpg4win_pkg_kconfig_configure = -DKCONFIG_USE_DBUS=OFF gpg4win_pkg_qtbase_configure = ../$$$${pkg_version}/configure -opensource \ -confirm-license \ -xplatform win32-g++ \ -device-option CROSS_COMPILE=$(host)- \ -device-option PKG_CONFIG='$(host)-pkg-config' \ -no-use-gold-linker \ -release \ -shared \ -prefix $$$${pkgidir} \ -I '$(idir)/include' \ -L '$(idir)/lib' \ -no-icu \ -opengl desktop \ -no-glib \ -accessibility \ -nomake examples \ -nomake tests \ -no-sql-mysql \ -no-sql-sqlite \ -no-sql-odbc \ -no-sql-psql \ -no-sql-tds \ -qt-zlib \ -qt-libpng \ -qt-libjpeg \ -qt-freetype \ -qt-pcre \ -no-openssl \ -no-dbus \ -v # qtbase # invoke qmake with removed debug options as a workaround for # https://bugreports.qt-project.org/browse/QTBUG-30898 gpg4win_pkg_qtbase_make_args = \ QMAKE='$$$${pkgbdir}/bin/qmake' # Qmake still writes debug names in pkgconfig files. define gpg4win_pkg_qtbase_post_install (cd $$$${pkgbdir}; \ make install;) endef gpg4win_pkg_qttools_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define gpg4win_pkg_qttools_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkgidir}; \ cp -r bin lib include $$$${pkgidir}) endef # Qmake does not support setting the installation path. # really https://bugreports.qt.io/browse/QTBUG-12341 gpg4win_pkg_qtwinextras_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define gpg4win_pkg_qtwinextras_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkgidir}/bin; \ cp -r lib include $$$${pkgidir}; \ mv $$$${pkgidir}/lib/*.dll $$$${pkgidir}/bin;) endef gpg4win_pkg_qtsvg_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} # XXX Adding the qtconf after qtsvg is a weird hack # because somhow (yay qmake) zlib is not linked if # the qt conf exists before that. The qt conf is # needed for qttranslations to find the correct path # of the translation tools. define gpg4win_pkg_qtsvg_post_install (cd $$$${pkgbdir}; \ mkdir -p $$$${pkgidir}; \ cp -r lib include plugins $$$${pkgidir}; \ mkdir -p $$$${pkgidir}/bin; \ mv $$$${pkgidir}/lib/*.dll $$$${pkgidir}/bin; \ echo "[Paths]" > $$$${pkgidir}/bin/qt.conf; \ echo "Prefix = .." >> $$$${pkgidir}/bin/qt.conf) endef gpg4win_pkg_qttranslations_configure = \ "$(idir)/bin/qmake" ../$$$${pkg_version} define gpg4win_pkg_qttranslations_post_install ( rm -f $$$${pkgidir}/qttranslations; \ mkdir -p $$$${pkgidir}; \ cp -r $$$${pkgbdir}/translations $$$${pkgidir}/qttranslations;) endef gpg4win_pkg_kleopatra_configure = \ -DFORCE_DISABLE_KCMUTILS=ON \ -DDISABLE_KWATCHGNUPG=ON \ -DKLEOPATRA_VERSION_SUFFIX=-gpg4win-$(VERSION) gpg4win_pkg_kxmlgui_configure = \ -DFORCE_DISABLE_KGLOBALACCEL=ON \ -DFORCE_DISABLE_DBUS=ON \ -DXMLGUI_COMPILER_VERSION="i686-w64-mingw32-gcc" \ -DXMLGUI_DISTRIBUTION_TEXT="Gpg4win" gpg4win_pkg_breeze_icons_configure = \ -DBINARY_ICONS_RESOURCE=OFF # Supported make-only source packages. gpg4win_mpkgs = bzip2 zlib # Extra options for the make invocations for individual packages. # make_flags is used for building, make_args_inst is used for installing. gpg4win_pkg_bzip2_make_args = \ CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) gpg4win_pkg_bzip2_make_args_inst = \ PREFIX=$$$${pkgidir} CC=$(CC) AR=$(AR) RANLIB=$(RANLIB) gpg4win_pkg_zlib_make_args = \ -fwin32/Makefile.gcc PREFIX=$(host)- IMPLIB=libz.dll.a gpg4win_pkg_zlib_make_args_inst = -fwin32/Makefile.gcc install \ BINARY_PATH=$$$${pkgidir}/bin INCLUDE_PATH=$$$${pkgidir}/include \ LIBRARY_PATH=$$$${pkgidir}/lib SHARED_MODE=1 IMPLIB=libz.dll.a # Supported binary packages. gpg4win_bpkgs = pkgconfig pango expat freetype fontconfig \ cairo atk gnupg-w32 kde-l10n # libiconv needs some special magic to generate a usable import # library. # define gpg4win_pkg_libiconv_post_install # (cp $(srcdir)/libiconv.def $$$${pkgidir}/lib; \ # cd $$$${pkgidir}/lib; \ # $(DLLTOOL) --output-lib libiconv.dll.a --def libiconv.def) # endef # libiconv needs some special magic to generate a usable import # library. Note that we include some internal symbols that are not # actually part of the DLL. They are needed by the AM_GNU_GETTEXT # configure test, but not used otherwise. # define gpg4win_pkg_gettext_post_install # (cp $(srcdir)/libintl.def $$$${pkgidir}/lib; \ # cd $$$${pkgidir}/lib; \ # $(DLLTOOL) --output-lib libintl.dll.a --def libintl.def) # endef # Zlib needs some special magic to generate a libtool file. # We also install the pc file here. define gpg4win_pkg_zlib_post_install (mkdir $$$${pkgidir}/lib/pkgconfig || true; \ cp $(abs_srcdir)/zlib.pc $$$${pkgidir}/lib/pkgconfig/; \ cd $$$${pkgidir}; \ echo "# Generated by libtool" > lib/libz.la \ echo "dlname='../bin/zlib1.dll'" >> lib/libz.la; \ echo "library_names='libz.dll.a'" >> lib/libz.la; \ echo "old_library='libz.a'" >> lib/libz.la; \ echo "dependency_libs=''" >> lib/libz.la; \ echo "current=1" >> lib/libz.la; \ echo "age=2" >> lib/libz.la; \ echo "revision=5" >> lib/libz.la; \ echo "installed=yes" >> lib/libz.la; \ echo "shouldnotlink=no" >> lib/libz.la; \ echo "dlopen=''" >> lib/libz.la; \ echo "dlpreopen=''" >> lib/libz.la; \ echo "libdir=\"$$$${pkgidir}/lib\"" >> lib/libz.la) endef # We need to fix the prefix in the various packages using pkgconfig, # or we can't substitute it properly in our pkg-config wrapper. # glib also installs an empty charset.alias for mingw which creates # a stow conflict with the one from iconv. define gpg4win_pkg_glib_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`; \ rm $$$${pkgidir}/lib/charset.alias) endef define gpg4win_pkg_libffi_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_gdk_pixbuf_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_atk_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_freetype_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_fontconfig_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_cairo_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_pango_post_install (cd $$$${pkgidir_dev}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef define gpg4win_pkg_libpng_post_install (cd $$$${pkgidir}; \ perl -pi -e 's/^prefix=.*$$$$/prefix=\/usr/' `find . -name \*.pc`) endef # We don't use khelpcenter in kleopatra so remove the help links and # point to the correct common folder # TODO Needs to be fixed with current doc #define gpg4win_pkg_kleopatra_post_install # (for i in de en ; do \ # (cd $$$${pkgidir}/share/doc/HTML/$$$${i}; \ # perl -pi -e 's/help:\///g' `find . -name \*.html`; \ # perl -pi -e 's@common/@../../common/@g' `find . -name \*.html`); \ # done) #endef #define gpg4win_pkg_libiconv_post_install #(cp $(srcdir)/libiconv.def $$$${pkgidir}/lib; \ #cd $$$${pkgidir}/lib; \ #$(DLLTOOL) --output-lib libiconv.dll.a --def libiconv.def) #endef # Supported internal packages. Internal packages do not require any # special support. Thus, this variable is actually unused, and no # rules are added in gpg4win.mk. gpg4win_ipkgs = man_novice_de man_advanced_de man_novice_en man_advanced_en \ compendium # Now do the bunch of the work. This is a bunch of dirty magic to # integrate our special makefile into automake, while not actually # including it (make should include it). This is in turn necessary # because automake can't deal with the elegant magic in the actual # Makefile. define INCLUDE_BY_MAKE include $(1) endef $(eval $(call INCLUDE_BY_MAKE,gpg4win.mk)) clean-local: clean-gpg4win common_nsi = inst-sections.nsi installer.nsi installer-finish.nsi \ $(addsuffix .nsi,$(addprefix inst-,$(gpg4win_build_list))) \ $(addsuffix .nsi,$(addprefix uninst-,$(gpg4win_build_list))) # Prepare the versioninfo file. The pipeline extracts the last # occurrence of a package with the same name, sorts the entries and # writes the file with DOS line endings. This helps to avoid # duplicate entries in case one package has been rebuild (which is # common when developing a new version). versioninfo.txt: $(SHA1SUM) $(pkg_files) versioninfo.tmp set -e; \ ( while read a b; do echo "$$a $$(basename $$b)"; \ done < versioninfo.tmp \ | sort -k2 -sf | tac | uniq -f1 ; \ echo '=========== SHA-1 checksum ============= == package ==' \ ) | tac | awk '{printf "%s\r\n", $$0}' > versioninfo.txt -rm versioninfo.tmp NEWS.tmp : $(top_srcdir)/NEWS awk '/^#/ {next} /^\(de\)/ {skip=1;next} /^[^[:space:]]/ {skip=0} \ !skip { sub(/^\(en\)/," *"); print }' \ <$(top_srcdir)/NEWS >NEWS.tmp NEWS.de : $(top_srcdir)/NEWS awk '/^#/ {next} /^\(en\)/ {skip=1;next} /^[^[:space:]]/ {skip=0} \ !skip { sub(/^\(de\)/,"-"); print }' \ <$(top_srcdir)/NEWS >NEWS.de; \ sed -i 's/^ / /' NEWS.de NEWS.en : $(top_srcdir)/NEWS awk '/^#/ {next} /^\(de\)/ {skip=1;next} /^[^[:space:]]/ {skip=0} \ !skip { sub(/^\(en\)/,"-"); print }' \ <$(top_srcdir)/NEWS >NEWS.en; \ sed -i 's/^ / /' NEWS.en COMPONENTS-list.tmp : $(top_srcdir)/NEWS awk '/^~~~~~~~~~~~/ { ok++; next} ok==1 {print " "$$0}' \ < $(top_srcdir)/NEWS > COMPONENTS-list.tmp # For some nut-crazy reason someone thought it would be a great idea # if makensis changed to the directory of the source file at startup. # So we have to pull a couple of strings to correct this. installers/gpg4win-$(VERSION).exe: gpg4win.nsi $(common_nsi) stamps/stamp-final \ g4wihelp.dll \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ license.blurb versioninfo.txt $(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) $(srcdir)/gpg4win.nsi && \ mv gpg4win-$(VERSION).exe installers/gpg4win-$(VERSION).exe installers/gpg4win-light-$(VERSION).exe: gpg4win.nsi $(common_nsi) stamps/stamp-final \ g4wihelp.dll \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ license.blurb versioninfo.txt $(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) \ -DGPG4WIN_LIGHT=1 $(srcdir)/gpg4win.nsi && \ mv gpg4win-light-$(VERSION).exe installers/gpg4win-light-$(VERSION).exe installers/gpg4win-vanilla-$(VERSION).exe: gpg4win.nsi $(common_nsi) stamps/stamp-final \ g4wihelp.dll \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ license.blurb versioninfo.txt $(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) \ -DGPG4WIN_VANILLA=1 $(srcdir)/gpg4win.nsi && \ mv gpg4win-vanilla-$(VERSION).exe installers/gpg4win-vanilla-$(VERSION).exe gpg4win-$(VERSION).wix: gpg4win.nsi $(common_nsi) stamps/stamp-final \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ versioninfo.txt perl make-msi.pl --guids $(srcdir)/make-msi.guids \ --manifest gpg4win-$(VERSION).files \ -DBUILD_DIR=. -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) $(srcdir)/gpg4win.nsi > $@ gpg4win-light-$(VERSION).wix: gpg4win.nsi $(common_nsi) stamps/stamp-final \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ versioninfo.txt perl make-msi.pl --guids $(srcdir)/make-msi.guids \ --manifest gpg4win-light-$(VERSION).files \ -DBUILD_DIR=. -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) -DGPG4WIN_LIGHT=1 $(srcdir)/gpg4win.nsi > $@ gpg4win-vanilla-$(VERSION).wix: gpg4win.nsi $(common_nsi) stamps/stamp-final \ $(foosum_exe) \ $(README_files) $(HOWTO_files) \ versioninfo.txt perl make-msi.pl --guids $(srcdir)/make-msi.guids \ --manifest gpg4win-vanilla-$(VERSION).files \ -DBUILD_DIR=. -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) -DGPG4WIN_VANILLA=1 $(srcdir)/gpg4win.nsi > $@ .PHONY: msi msi: gpg4win-$(VERSION).wix gpg4win-light-$(VERSION).wix \ gpg4win-vanilla-$(VERSION).wix stamps/stamp-dist-self: versioninfo.txt (set -e; cd ..; make dist-bzip2) touch stamps/stamp-dist-self installers/gpg4win-src-$(VERSION).exe: gpg4win-src.nsi $(common_nsii) \ stamps/stamp-final \ stamps/stamp-dist-self \ license.blurb $(MAKENSIS) -V3 -DBUILD_DIR=`pwd` -DTOP_SRCDIR=$(top_srcdir) \ -DSRCDIR=$(srcdir) $(EXTRA_MAKENSIS_FLAGS) $(srcdir)/gpg4win-src.nsi && \ mv gpg4win-src-$(VERSION).exe installers/gpg4win-src-$(VERSION).exe license.blurb: $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3 cat $(top_srcdir)/doc/license-page $(top_srcdir)/doc/GPLv3 >$@ g4wihelp.dll: slideshow.cpp desktopshellrun.cpp g4wihelp.c exdll.h $(CC) -static-libgcc -I. -O2 -c -o desktopshellrun.o $(srcdir)/desktopshellrun.cpp $(CC) -static-libgcc -I. -O2 -c -o slideshow.o $(srcdir)/slideshow.cpp $(CC) -static-libgcc -I. -shared -O2 -o g4wihelp.dll $(srcdir)/g4wihelp.c \ desktopshellrun.o slideshow.o -lwinmm -lgdi32 -luserenv -lshell32 \ -lole32 -loleaut32 -lshlwapi -lmsimg32 $(STRIP) g4wihelp.dll sha1sum.exe: sha1sum.c $(CC) -O2 -o $@ $^ $(STRIP) $@ md5sum.exe: sha1sum.c $(CC) -DBUILD_MD5SUM -O2 -o $@ $^ $(STRIP) $@ sha256sum.exe: sha1sum.c $(CC) -DBUILD_SHA256SUM -O2 -o $@ $^ $(STRIP) $@ mkportable.exe: mkportable.c \ mkportable-vanilla.h mkportable-full.h $(CC) -O2 -o $@ $(srcdir)/mkportable.c $(STRIP) $@ if BUILD_SOURCE_INSTALLER all_src = installers/gpg4win-src-$(VERSION).exe else all_src = endif if BUILD_LIGHT_INSTALLER all_light = installers/gpg4win-light-$(VERSION).exe else all_light = endif if BUILD_VANILLA_INSTALLER all_vanilla = installers/gpg4win-vanilla-$(VERSION).exe else all_vanilla = endif if BUILD_FULL_INSTALLER all_full = installers/gpg4win-$(VERSION).exe else all_full = endif all-local: $(all_full) $(all_light) $(all_vanilla) $(all_src) @echo "###################################################" @echo " Gpg4win $(VERSION) successfully build!" @echo " Installers can be found under src/installers" @echo "###################################################" clean-local: rm -f installers/gpg4win-$(VERSION).exe \ installers/gpg4win-light-$(VERSION).exe \ installers/gpg4win-vanilla-$(VERSION).exe \ installers/gpg4win-src-$(VERSION).exe diff --git a/src/gpg4win.mk.in b/src/gpg4win.mk.in index 68b4f01e..33ea4805 100644 --- a/src/gpg4win.mk.in +++ b/src/gpg4win.mk.in @@ -1,763 +1,763 @@ # gpg4win.m4.in - Installer for GnuPG 4 Windows Makefile. -*- makefile -*- # Copyright (C) 2005, 2009 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, write to the Free Software # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA # No servicable parts below this line :) # These paths must be absolute, as we switch directories pretty often. root := $(shell pwd)/playground bdir := $(root)/build idir := $(root)/install ipdir := $(root)/install/pkgs tsdir := $(shell pwd)/${top_srcdir} pdir := $(shell pwd)/${top_srcdir}/patches ex_idir := $(root)/install-ex ex_ipdir := $(root)/install-ex/pkgs # We collect the names of all pkg files used. pkg_files = # The playground area is our scratch area, where we unpack, build and # install the packages. stamps/stamp-directories: $(MKDIR) stamps $(MKDIR) playground $(MKDIR) -p installers $(MKDIR) $(bdir) $(MKDIR) $(idir) $(MKDIR) $(ipdir) $(if $GPGEX_ADD_HOST, $(MKDIR) $(ex_idir)) $(if $GPGEX_ADD_HOST, $(MKDIR) $(ex_ipdir)) touch $(bdir)/versioninfo.txt touch stamps/stamp-directories # Frob the name $1 by converting all '-' and '+' characters to '_'. define FROB_macro $(subst +,_,$(subst -,_,$(1))) endef # Get the variable $(1) (which may contain '-' and '+' characters). define GETVAR $($(call FROB_macro,$(1))) endef # Set a couple of common variables. define SETVARS set -e; \ pkg="$(call GETVAR,gpg4win_pkg_$(1))"; \ pkg_version="$(1)-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \ pkgsdir="$(bdir)/$$$${pkg_version}"; \ pkgbdir="$(bdir)/$$$${pkg_version}-build"; \ pkgpdir="$(pdir)/$$$${pkg_version}"; \ pkgpbdir="$(pdir)/$(1)"; \ pkgidir="$(ipdir)/$$$${pkg_version}"; \ pkg_dev="$(call GETVAR,gpg4win_pkg_$(1)_dev)"; \ pkg_version_dev="$(1)-dev-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \ pkgidir_dev="$(ipdir)/$$$${pkg_version_dev}"; \ pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_configure)"; \ pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_extracflags)"; \ pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_make_args)"; \ pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_args_inst)";\ pkgmkdir="$(call GETVAR,gpg4win_pkg_$(1)_make_dir)"; \ pkgmkdir_inst="$(call GETVAR,gpg4win_pkg_$(1)_make_dir)"; \ export PKG_CONFIG="$(tsdir)/src/pkg-config"; \ export PKG_CONFIG_PATH="$(idir)/lib/pkgconfig"; \ export PKG_CONFIG_LIBDIR=""; \ export PATH="$(idir)/bin:$${PATH}"; \ export SYSROOT="$(idir)"; \ export CONFIG_SITE="$(tsdir)/src/config.site" endef # Set variables for building in an additional architecture define SETVARS_EX set -e; \ pkg="$(call GETVAR,gpg4win_pkg_$(1))"; \ pkg_version="$(1)-$(call GETVAR,gpg4win_pkg_$(1)_version)"; \ pkgsdir="$(bdir)/$$$${pkg_version}"; \ pkgbdir="$(bdir)/$$$${pkg_version}-ex-build"; \ pkgpdir="$(pdir)/$$$${pkg_version}"; \ pkgpbdir="$(pdir)/$(1)"; \ pkgidir="$(ex_ipdir)/$$$${pkg_version}"; \ pkgidir_dev="$(ex_ipdir)/$$$${pkg_version_dev}"; \ pkgcfg="$(call GETVAR,gpg4win_pkg_$(1)_ex_configure)"; \ pkgextracflags="$(call GETVAR,gpg4win_pkg_$(1)_ex_extracflags)"; \ pkgmkargs="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_args)"; \ pkgmkargs_inst="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_args_inst)"; \ pkgmkdir="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_dir)"; \ pkgmkdir_inst="$(call GETVAR,gpg4win_pkg_$(1)_ex_make_dir)"; \ export PKG_CONFIG="$(tsdir)/src/pkg-config"; \ export PKG_CONFIG_PATH="$(ex_idir)/lib/pkgconfig"; \ export PKG_CONFIG_LIBDIR=""; \ export PATH="$(ex_idir)/bin:$${PATH}"; \ export SYSROOT="$(ex_idir)" endef # Support macro. Unpack the archive $(1). define DEFLATE_macro rm -rf $$$${pkgsdir}; \ case "$(1)" in \ */qtbase*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtbase-everywhere-src,qtbase,' -f "$(1)" ;; \ */qttools*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qttools-everywhere-src,qttools,' -f "$(1)" ;; \ */qtwinextras*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtwinextras-everywhere-src,qtwinextras,' -f "$(1)" ;; \ */qtsvg*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qtsvg-everywhere-src,qtsvg,' -f "$(1)" ;; \ */qttranslations*.*.tar.xz) \ $(TAR) -xJ --transform='s,^qttranslations-everywhere-src,qttranslations,' -f "$(1)" ;; \ */boost*.*.tar.bz2) \ $(TAR) -xj --transform='s,^boost_1_60_0,boost-1.60.0,' -f "$(1)" ;; \ *.tar.gz | *.tgz) \ $(TAR) xzf "$(1)" ;; \ *.tar.bz2 | *.tbz2 | *.tbz) \ $(TAR) xjf "$(1)" ;; \ *.tar.xz ) \ $(TAR) xJf "$(1)" ;; \ *.exe ) \ cp "$(1)" . ;; \ *.zip) \ $(UNZIP) -o "$(1)" ;; \ esac endef # Support macro. Strip all exe files below $(1). define STRIP_macro if test -z '$(DEBUG)'; then \ (cd $(1); \ for f in `find . -name \*.exe -o -name \*.dll`; do \ echo Calling $(STRIP) "$$$${pkg_version}/$$$${f}"; \ $(STRIP) "$$$${f}"; done); \ fi endef # Support macro. Strip all exe files below $(1) using STRIP_EX. define STRIP_EX_macro if test -z '$(DEBUG)'; then \ (cd $(1); \ for f in `find . -name \*.exe -o -name \*.dll`; do \ echo Calling $(STRIP_EX) "$$$${pkg_version}/$$$${f}"; \ $(STRIP_EX) "$$$${f}"; done); \ fi endef define GETDEPS $(addprefix stamps/stamp-final-, $(call GETVAR,gpg4win_pkg_$(1)_deps)) endef define GETDEPS_EX $(addprefix stamps/stamp-final-ex-, $(call GETVAR,gpg4win_pkg_$(1)_deps)) endef # Template for source packages to build for an additional host define EXPKG_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) stamps/stamp-$(1)-ex-00-unpack: stamps/stamp-$(1)-00-unpack touch stamps/stamp-$(1)-ex-00-unpack stamps/stamp-$(1)-ex-01-patch: stamps/stamp-$(1)-ex-00-unpack stamps/stamp-$(1)-01-patch touch stamps/stamp-$(1)-ex-01-patch stamps/stamp-$(1)-ex-02-configure: stamps/stamp-$(1)-ex-01-patch ($(call SETVARS_EX,$(1)); \ mkdir "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ eval "../$$$${pkg_version}/configure" \ --prefix="$$$${pkgidir}" \ --host=$(GPGEX_ADD_HOST) \ --build=$(build) \ $$$${pkgcfg} CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\";\ shopt -s nullglob; \ for pfile in "$$$${pkgpbdir}"/*.postcfg \ "$$$${pkgpdir}"/*.postcfg ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done; \ for pfile in "$$$${pkgpbdir}"/*.postcfg-build \ "$$$${pkgpdir}"/*.postcfg-build ; do \ (cd "$$$${pkgbdir}"; "$$$${pfile}") \ done) touch stamps/stamp-$(1)-ex-02-configure stamps/stamp-$(1)-ex-03-make: stamps/stamp-$(1)-ex-02-configure ($(call SETVARS_EX,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs} \ ) touch stamps/stamp-$(1)-ex-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. stamps/stamp-$(1)-ex-04-install: stamps/stamp-$(1)-ex-03-make ($(call SETVARS_EX,$(1)); \ cd "$$$${pkgbdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \ $(call STRIP_EX_macro,"$$$${pkgidir}"); \ rm -f "$$$${pkgidir}/share/info/dir"; \ $(call gpg4win_pkg_$(call FROB_macro,$(1))_ex_post_install)) touch stamps/stamp-$(1)-ex-04-install stamps/stamp-$(1)-ex-05-stow: stamps/stamp-$(1)-ex-04-install ($(call SETVARS_EX,$(1)); \ cd $(ex_ipdir); \ $(STOW) -t `readlink -f $(ex_idir)` "$$$${pkg_version}") touch stamps/stamp-$(1)-ex-05-stow stamps/stamp-final-ex-$(1): stamps/stamp-$(1)-ex-05-stow touch stamps/stamp-final-ex-$(1) .PHONY : clean-ex-$(1) clean-ex-$(1): ($(call SETVARS_EX,$(1)); \ (cd $(ex_ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f stamps/stamp-final-ex-$(1) stamps/stamp-$(1)-ex-* endef define EXPKG_template $(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))), $(call EXPKG_template_,$1)) endef # Template for source packages. define SPKG_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch stamps/stamp-$(1)-00-unpack stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done) touch stamps/stamp-$(1)-01-patch stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ mkdir "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ eval "../$$$${pkg_version}/configure" \ --prefix="$$$${pkgidir}" \ --host=$(host) \ --build=$(build) \ $$$${pkgcfg} CFLAGS=\"-mms-bitfields $$$${pkgextracflags}\";\ shopt -s nullglob; \ for pfile in "$$$${pkgpbdir}"/*.postcfg \ "$$$${pkgpdir}"/*.postcfg ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done; \ for pfile in "$$$${pkgpbdir}"/*.postcfg-build \ "$$$${pkgpdir}"/*.postcfg-build ; do \ (cd "$$$${pkgbdir}"; "$$$${pfile}") \ done;) && \ touch stamps/stamp-$(1)-02-configure stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs}) touch stamps/stamp-$(1)-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ cd "$$$${pkgmkdir_inst}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \ $(call STRIP_macro,"$$$${pkgidir}"); \ rm -f "$$$${pkgidir}/share/info/dir"; \ $(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install)) touch stamps/stamp-$(1)-04-install stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version}") touch stamps/stamp-$(1)-05-stow stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow touch stamps/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-* endef define SPKG_template $(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))), $(call SPKG_template_,$1)) endef # Template for source packages using only make and no build # directory. define MPKG_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch stamps/stamp-$(1)-00-unpack stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done) touch stamps/stamp-$(1)-01-patch stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ cd "$$$${pkgsdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs}) touch stamps/stamp-$(1)-03-make stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ cd "$$$${pkgsdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \ $(call STRIP_macro,"$$$${pkgidir}"); \ $(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install)) touch stamps/stamp-$(1)-04-install stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version}") touch stamps/stamp-$(1)-05-stow stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow touch stamps/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}") rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-* endef define MPKG_template $(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))), $(call MPKG_template_,$1)) endef # Template for binary packages. define BPKG_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) pkg_files += $(call GETVAR,gpg4win_pkg_$(1)_dev) stamps/stamp-$(1)-00-install: stamps/stamp-directories $(call GETDEPS,$(1)) ($(call SETVARS,$(1)); \ $(MKDIR) "$$$${pkgidir}"; \ cd $$$${pkgidir}; \ $(call DEFLATE_macro,$$$${pkg})) touch stamps/stamp-$(1)-00-install # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. stamps/stamp-$(1)-01-install-dev: stamps/stamp-$(1)-00-install ($(call SETVARS,$(1)); \ $(MKDIR) "$$$${pkgidir_dev}"; \ (cd $$$${pkgidir_dev}; \ $(call DEFLATE_macro,$$$${pkg_dev})); \ $(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install)) touch stamps/stamp-$(1)-01-install-dev stamps/stamp-$(1)-02-stow: stamps/stamp-$(1)-01-install-dev ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version}") touch stamps/stamp-$(1)-02-stow stamps/stamp-$(1)-03-stow-dev: stamps/stamp-$(1)-02-stow ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version_dev}") touch stamps/stamp-$(1)-03-stow-dev stamps/stamp-final-$(1): stamps/stamp-$(1)-03-stow-dev touch stamps/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ cd $(ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ $(STOW) -D "$$$${pkg_version_dev}"; \ rm -fR "$$$${pkg_version}" "$$$${pkg_version_dev}")) rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-* endef define BPKG_template $(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))), $(call BPKG_template_,$1)) endef # Template for qt packages. define QTPKG_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch stamps/stamp-$(1)-00-unpack stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done) touch stamps/stamp-$(1)-01-patch stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ mkdir "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ $$$${pkgcfg}) && \ touch stamps/stamp-$(1)-02-configure stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs}) touch stamps/stamp-$(1)-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ $(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install)) touch stamps/stamp-$(1)-04-install stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version}") touch stamps/stamp-$(1)-05-stow stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow touch stamps/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-* endef define QTPKG_template $(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))), $(call QTPKG_template_,$1)) endef # Template for internal packages. define IPKG_template stamps/stamp-final-$(1): stamps/stamp-directories $(call GETDEPS,$(1)) touch stamps/stamp-final-$(1) endef # Template for README files # (The final awk command converts the file endings). define README_template README.$(1).txt : versioninfo.txt NEWS.tmp $(top_srcdir)/doc/README.$(1).txt \ COMPONENTS-list.tmp $(top_srcdir)/doc/beta-warning.txt sed -e '/^;.*/d;/!VERSIONINFO!/{r versioninfo.txt' -e 'd;}' \ -e '/!NEWSFILE!/{r NEWS.tmp' -e 'd;}' \ -e '/!NEWSFILE!/{r NEWS.tmp' -e 'd;}' \ -e '/!COMPONENTS!/{r COMPONENTS-list.tmp' -e 'd;}' \ -e '/!PKG-COPYRIGHT!/{r $(top_srcdir)/doc/pkg-copyright.txt' -e 'd;}' \ -e 's,!VERSION!,$(VERSION),g' \ -e 's,!BUILD_ISODATE!,$(BUILD_ISODATE),g' \ < $(top_srcdir)/doc/README.$(1).txt \ | (if echo "$(VERSION)" | egrep 'svn|rc|beta|git' >/dev/null; then \ sed -e '/!BETA-WARNING!/{r $(top_srcdir)/doc/beta-warning.txt' \ -e 'd;}'; else sed -e 's,!BETA-WARNING!,,g'; fi) \ | awk '{printf "%s\r\n", $$$$0}' >README.$(1).txt endef define HOWTO_template HOWTO-$(1).$(2).txt : $(top_srcdir)/doc/HOWTO-$(1).$(2).txt sed -e '/^;.*/d' \ -e 's,!VERSION!,$(VERSION),g' \ -e 's,!BUILD_ISODATE!,$(BUILD_ISODATE),g' \ < $(top_srcdir)/doc/HOWTO-$(1).$(2).txt \ | awk '{printf "%s\r\n", $$$$0}' > HOWTO-$(1).$(2).txt endef # Special Template for boost. define BOOST_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch stamps/stamp-$(1)-00-unpack stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done) touch stamps/stamp-$(1)-01-patch stamps/stamp-$(1)-02-build: stamps/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ cd $$$${pkgsdir}/tools/build/; \ ./bootstrap.sh; \ cd $$$${pkgsdir}; \ echo "using gcc : mxe : $(host)-g++ : $(host)-windres $(host)-ar $(host)-ranlib ;" > "user-config.jam"; \ ./tools/build/b2 \ -a \ -q \ '$(GPG4WIN_PARALLEL)' \ --ignore-site-config \ --user-config=user-config.jam \ abi=ms \ address-model=32 \ architecture=x86 \ binary-format=pe \ link=shared \ target-os=windows \ threadapi=win32 \ threading=multi \ variant=release \ toolset=gcc-mxe \ cxxflags=-std=gnu++98 \ --layout=tagged \ --disable-icu \ --without-mpi \ --without-python \ --prefix=$$$${pkgidir} \ --exec-prefix=$$$${pkgidir}/bin \ --libdir=$$$${pkgidir}/lib \ --includedir=$$$${pkgidir}/include \ -sEXPAT_INCLUDE='$(idir)/include' \ -sEXPAT_LIBPATH='$(idir)/lib' \ -sBZIP2_INCLUDE='$(idir)/include' \ -sBZIP2_LIBPATH='$(idir)/lib' \ install) && \ touch stamps/stamp-$(1)-02-build stamps/stamp-$(1)-03-stow: stamps/stamp-$(1)-02-build ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version}") touch stamps/stamp-$(1)-03-stow stamps/stamp-final-$(1): stamps/stamp-$(1)-03-stow touch stamps/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-* endef # Template for source packages of KDE software define KDEPKG_template_ pkg_files += $(call GETVAR,gpg4win_pkg_$(1)) stamps/stamp-$(1)-00-unpack: stamps/stamp-directories $(call GETDEPS,$(1)) (cd $(bdir); \ $(call SETVARS,$(1)); \ $(call DEFLATE_macro,$$$${pkg})) touch stamps/stamp-$(1)-00-unpack stamps/stamp-$(1)-01-patch: stamps/stamp-$(1)-00-unpack (shopt -s nullglob; \ $(call SETVARS,$(1)); \ cd "$$$${pkgsdir}"; \ - sed -i 's/set(KF5_VERSION.*)/set(KF5_VERSION "5.43.0")/' CMakeLists.txt; \ + sed -i 's/set(KF5_VERSION.*)/set(KF5_VERSION "5.55.0")/' CMakeLists.txt; \ sed -i 's/set(KMIME_VERSION.*)/set(KMIME_VERSION "5.2.40")/' CMakeLists.txt; \ sed -i 's/set(LIBKLEO_VERSION.*)/set(LIBKLEO_VERSION "5.4.40")/' CMakeLists.txt; \ sed -i 's/set(QT_REQUIRED_VERSION.*)/set(QT_REQUIRED_VERSION "5.10.0")/' CMakeLists.txt; \ sed -i 's/set(GPGME_REQUIRED_VERSION.*)/set(GPGME_REQUIRED_VERSION "1.10.0")/' CMakeLists.txt; \ for pfile in "$$$${pkgpbdir}"/*.patch "$$$${pkgpdir}"/*.patch ; do \ (cd "$$$${pkgsdir}"; "$$$${pfile}") \ done) touch stamps/stamp-$(1)-01-patch stamps/stamp-$(1)-02-configure: stamps/stamp-$(1)-01-patch ($(call SETVARS,$(1)); \ mkdir "$$$${pkgbdir}"; \ cd "$$$${pkgbdir}"; \ cmake \ -DCMAKE_INSTALL_PREFIX="$$$${pkgidir}" \ -DCMAKE_PREFIX_PATH="$$$${pkgidir}" \ -DCMAKE_TOOLCHAIN_FILE=$(abs_top_srcdir)/src/toolchain.cmake \ -DKDE_INSTALL_DATADIR="$$$${pkgidir}/share" \ -DBUILD_TESTING=False \ $$$${pkgcfg} $$$${pkgextracflags} "../$$$${pkg_version}") && \ touch stamps/stamp-$(1)-02-configure stamps/stamp-$(1)-03-make: stamps/stamp-$(1)-02-configure ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ test -n "$$$${pkgmkdir}" && cd "$$$${pkgmkdir}"; \ $(MAKE) $(AM_MAKEFLAGS) $(GPG4WIN_PARALLEL) $$$${pkgmkargs}) touch stamps/stamp-$(1)-03-make # Note that post_install must come last because it may be empty and # "; ;" is a syntax error. stamps/stamp-$(1)-04-install: stamps/stamp-$(1)-03-make ($(call SETVARS,$(1)); \ cd "$$$${pkgbdir}"; \ cd "$$$${pkgmkdir_inst}"; \ $(MAKE) $(AM_MAKEFLAGS) $$$${pkgmkargs_inst} install; \ $(call STRIP_macro,"$$$${pkgidir}"); \ $(call gpg4win_pkg_$(call FROB_macro,$(1))_post_install)) touch stamps/stamp-$(1)-04-install stamps/stamp-$(1)-05-stow: stamps/stamp-$(1)-04-install ($(call SETVARS,$(1)); \ cd $(ipdir); \ $(STOW) "$$$${pkg_version}") touch stamps/stamp-$(1)-05-stow stamps/stamp-final-$(1): stamps/stamp-$(1)-05-stow touch stamps/stamp-final-$(1) .PHONY : clean-$(1) clean-$(1): ($(call SETVARS,$(1)); \ (cd $(ipdir) && \ ($(STOW) -D "$$$${pkg_version}"; \ rm -fR "$$$${pkg_version}")); \ rm -fR "$$$${pkgsdir}" "$$$${pkgbdir}") rm -f stamps/stamp-final-$(1) stamps/stamp-$(1)-* endef define KDEPKG_template $(if $(filter-out no, $(call GETVAR,gpg4win_pkg_$(1))), $(call KDEPKG_template_,$1)) endef # Insert the template for each source package. $(foreach spkg, $(gpg4win_spkgs), $(eval $(call SPKG_template,$(spkg)))) # Insert the template for each gpgEx architecture package. $(foreach expkg, $(gpg4win_expkgs), $(eval $(call EXPKG_template,$(expkg)))) # Insert the template for each make only source package. $(foreach mpkg, $(gpg4win_mpkgs), $(eval $(call MPKG_template,$(mpkg)))) # Insert the template for each binary package. $(foreach bpkg, $(gpg4win_bpkgs), $(eval $(call BPKG_template,$(bpkg)))) # Insert the template for each internal package. $(foreach ipkg, $(gpg4win_ipkgs), $(eval $(call IPKG_template,$(ipkg)))) # Insert the template for the README and HOWTO files. $(foreach rll, $(gpg4win_readme_ll), $(eval $(call README_template,$(rll)))) # Insert the template for KDE packages. $(foreach kdepkg, $(gpg4win_kdepkgs), $(eval $(call KDEPKG_template,$(kdepkg)))) # Insert the template for qt packages. $(foreach qtpkg, $(gpg4win_qtpkgs), $(eval $(call QTPKG_template,$(qtpkg)))) $(foreach rll, $(gpg4win_howto_smime_ll), \ $(eval $(call HOWTO_template,SMIME,$(rll)))) $(eval $(call BOOST_template_,boost)) stamps/stamp-final: stamps/stamp-directories stamps/stamp-final: $(addprefix stamps/stamp-final-,$(gpg4win_build_list)) \ $(addprefix stamps/stamp-final-ex-,$(gpg4win_build_ex_list)) touch stamps/stamp-final $(bdir)/versioninfo.txt: stamps/stamp-final touch $(bdir)/versioninfo.txt all-gpg4win: stamps/stamp-final # Just to check if we catched all stamps. clean-stamps: $(RM) -fR $(stamps) clean-gpg4win: $(RM) -fR playground stamps .PHONY : all-gpg4win clean-stamps clean-gpg4win # @emacs_local_vars_begin@ # @emacs_local_vars_read_only@ # @emacs_local_vars_end@