Compare commits

...

228 Commits
f18 ... master

Author SHA1 Message Date
Rex Dieter fef64b95bc BR: gcc-c++, -devel: Requires: gcc-c++ 2018-02-20 15:39:26 -06:00
Sandro Mani 3e131fc48d Rebuild (giflib) 2018-02-11 21:56:00 +01:00
Igor Gnatenko b480bd6292
Escape macros in %changelog
Reference: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/Y2ZUKK2B7T2IKXPMODNF6HB2O5T5TS6H/
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-02-09 09:04:50 +01:00
Fedora Release Engineering 71c6e1aeee - Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2018-02-07 19:46:55 +00:00
Igor Gnatenko f9130efe8c Remove obsolete scriptlets
Signed-off-by: Igor Gnatenko <ignatenkobrain@fedoraproject.org>
2018-01-11 14:58:24 +01:00
Kevin Kofler a4a16201d5 build against OpenSSL 1.1 (patch by Daniel Vrátil and Wolfgang Bauer)
* Fri Jan 05 2018 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.14.38-2
- build against OpenSSL 1.1 (patch by Daniel Vrátil and Wolfgang Bauer)
2018-01-05 18:47:32 +01:00
Rex Dieter 43bfe54d12 4.14.38 (kde-apps-17.08.3) 2017-11-08 08:16:30 -06:00
Rex Dieter 167adeadc4 4.14.37 (kde-apps-17.08.2) 2017-10-11 11:42:37 -05:00
Rex Dieter 3f46931d2f 4.14.36 (kde-apps-17.08.1) 2017-09-05 09:42:01 -05:00
Rex Dieter 01787fc1d0 4-14.35 (kde-apps-17.08.0) 2017-08-26 10:10:43 -05:00
Björn Esser 57c15eecf9 Rebuilt for AutoReq cmake-filesystem 2017-08-07 11:15:09 +02:00
Rex Dieter d0d3b2ed23 pull in upstream 4.14 branch fixes 2017-07-31 10:53:23 -05:00
Rex Dieter da837f11a3 4.14.34 (kde-apps-17.04.3) 2017-07-28 16:13:43 -05:00
Fedora Release Engineering b95ff9d674 - Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild 2017-07-26 15:03:07 +00:00
Rex Dieter a07e6e478a 4.14.33 (kde-apps-17.04.2) 2017-06-15 08:38:47 -05:00
Rex Dieter c7148ed759 Merge branch 'master' into f26 2017-05-15 09:26:06 -05:00
Rex Dieter ebade8b997 Revert "security fix, CVE-2017-8422"
This reverts commit 697007e32f.
2017-05-15 09:26:03 -05:00
Rex Dieter dbb6ec293b 4.14.32 2017-05-10 09:06:46 -05:00
Than Ngo 697007e32f security fix, CVE-2017-8422 2017-05-10 11:20:22 +02:00
Than Ngo 71ae6c005b security fix, CVE-2017-8422 2017-05-10 10:47:35 +02:00
Rex Dieter 98fff58e77 4.14.31 (kde-apps-17.04.0) 2017-04-14 10:44:00 -05:00
Rex Dieter d9289dada5 4.14.30 (kde-apps-16.12.3) 2017-03-08 08:56:14 -06:00
Rex Dieter 8ab470f20f CVE-2017-6410 (#1427808) 2017-03-02 12:49:09 -06:00
Rex Dieter a0636f60be BR: perl(Getopt::Long) 2017-02-09 07:55:03 -06:00
Rex Dieter f2297df048 4.14.29 (kde-apps-16.12.2) 2017-02-08 13:51:11 -06:00
Rex Dieter 103626bcc0 4.14.28 (kde-apps-16.12.1) 2017-01-10 08:56:02 -06:00
Rex Dieter 5d0de4ee49 re-enable -apidocs 2016-12-22 13:15:58 -06:00
Rex Dieter a04203247f disable apidocs
rawhide doxygen broken deps :(
2016-12-22 12:28:19 -06:00
Rex Dieter bfe6a2eee9 4.14.27 (kde-apps-16.12.0) 2016-12-22 12:01:28 -06:00
Kevin Kofler b206cc8f65 reenable WebKit support
* Fri Dec 09 2016 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.14.26-2
- reenable WebKit support
2016-12-09 04:46:07 +01:00
Rex Dieter eb4d3a420f drop webkit support
bootstrap a build to avoid "moc parse error: qwebpage"
2016-12-05 07:23:12 -06:00
Rex Dieter 343c8fcf6d 4.14.26 2016-12-03 12:49:31 -06:00
Rex Dieter bff7c61ba1 patch65 can (probably) be dropped 2016-11-30 10:51:43 -06:00
Rex Dieter 4fdbe837f3 4.14.26 2016-11-30 09:42:06 -06:00
Rex Dieter 23d032707d support use of plasma-desktop-drkonqi too 2016-11-10 11:22:39 -06:00
Rex Dieter 6e27d7de5a 4.14.25 (kde-apps-16.08.2) 2016-10-16 08:51:38 -05:00
Rex Dieter 428a617cdd 4.14.24 (kde-apps-16.08.1) 2016-09-06 09:36:39 -05:00
Rex Dieter d822f8a9af backport no_fake_mimetypes fix for f24+ (reviewboard#117135) 2016-08-28 09:03:49 -05:00
Rex Dieter 7ad5094d62 Release++ 2016-08-18 13:54:56 -05:00
Rex Dieter 896a948c45 pull in upstream fixes 2016-08-18 13:54:36 -05:00
Rex Dieter 80bfeab96c drop upstreamed patch 2016-08-16 22:49:02 -05:00
Rex Dieter e9ee7d10ba respin 2016-08-16 17:33:16 -05:00
Rex Dieter 725603e7ca fix gcc6 visibility support detection (review#128697) 2016-08-16 09:07:29 -05:00
Rex Dieter f866561ce7 4.14.23 (kde-apps-16.08.0) 2016-08-12 09:10:25 -05:00
Rex Dieter 948066e110 upstreamed patch 2016-07-08 08:19:13 -05:00
Rex Dieter d6c484612e 4.14.22 (kde-apps-16.04.3) 2016-07-08 08:02:19 -05:00
Petr Písař 0eb7147436 Mandatory Perl build-requires added <https://fedoraproject.org/wiki/Changes/Build_Root_Without_Perl> 2016-06-24 10:23:41 +02:00
Rex Dieter 3ba56c09ac 4.14.21 (kde-apps-16.04.2) 2016-06-12 10:15:11 -05:00
Rex Dieter b459bc2531 4.14.20 (kde-apps-16.04.1) 2016-05-08 07:06:35 -05:00
Rex Dieter b1fac5955e drop strigi support (f25+)
See also ml thread:
https://lists.fedoraproject.org/archives/list/kde@lists.fedoraproject.org/message/EOQ57IGVTS3WHWTRIZNFMQEUXKT2VE26/
2016-05-06 12:54:17 -05:00
Rex Dieter 1f0798516b rebuild (qt) 2016-04-20 17:47:12 -05:00
Rex Dieter 2d5c85b77b rebuild (qt) 2016-04-18 11:13:40 -05:00
Rex Dieter b31b252af4 4.4.19 (kde-apps-16.04.0) 2016-04-15 18:32:10 -05:00
Rex Dieter d612976a3c Recommends: kde-platform-plugin kde-style-breeze, moved soft dep here, workaround bug #1325471 2016-04-11 10:50:54 -05:00
Rex Dieter 8183ca5a37 drop Requires: (...rich deps...) (#1317481) 2016-03-14 13:51:57 -05:00
Rex Dieter 4aeba340ca 6:4.14.18-1
- 4.14.18 (kde-apps-15.12.3)
- Requires: (kde-platform-plugin%{?_isa} if plasma-workspace), f23+
- Requires: (kde-style-breeze%{?_isa} if plasma-desktop), f23+
2016-03-12 15:46:53 -06:00
Rex Dieter 8335d68389 nepomuk(-devel) subpkgs on < f24, drop on f24+ 2016-02-26 14:27:33 -06:00
Rex Dieter ce522328fb drop BR: shared-desktop-ontologies (f24+) 2016-02-26 10:53:55 -06:00
Rex Dieter af2f24e5e0 Recommends: media-player-info (f24+) 2016-02-26 10:46:51 -06:00
Rex Dieter ffaaa26c97 fix %%files 2016-02-17 14:10:18 -06:00
Rex Dieter b3665985af 6:4.14.17-3
- split up gcc patches,
- -nepomuk(-devel) subpkgs (f24+)
2016-02-17 12:02:04 -06:00
Rex Dieter 2f9b4989cb respin gcc6 patch 2016-02-12 19:50:42 -06:00
Rex Dieter 2594748149 search for truncf (instead of trunc) 2016-02-12 14:44:53 -06:00
Rex Dieter 241d238c70 fix path in sed hack 2016-02-12 13:36:52 -06:00
Rex Dieter b69935f2f8 Hack to assume HAVE_TRUNC is true
see https://bugzilla.redhat.com/show_bug.cgi?id=1307086#c2
2016-02-12 13:03:46 -06:00
Rex Dieter 5de20fd850 kdelibs-4.14.17 FTBFS 2016-02-12 12:57:01 -06:00
Rex Dieter 51cf3d9621 4.14.17 (kde-apps-15.12.2) 2016-02-12 10:18:25 -06:00
Dennis Gilmore 91f95bc34c - Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild 2016-02-04 01:49:35 +00:00
Than Ngo e73466e1c5 disable webkit for rhel 2016-01-28 13:59:43 +01:00
Rex Dieter a16dbf58e3 unconditionally enable hardening (#965527) 2016-01-21 08:56:53 -06:00
Rex Dieter 47244ebc84 4.14.16 (kde-apps-15.12.1), drop pre-f22 support patches 2016-01-08 16:12:19 -06:00
Rex Dieter 45cd4cc3d0 move dbus xml interface files to -devel 2015-12-21 13:57:35 -06:00
Rex Dieter 2b3aff185a actually apply those post-4.14.15 commits (kparts, python) 2015-12-19 13:06:43 -06:00
Rex Dieter 4afda83d43 6:4.14.15-1
- 4.14.15 (kde apps 15.12.0)
- include a few post-4.14.15 commits (kparts, python related)
2015-12-18 13:14:16 -06:00
Rex Dieter e9f546bf1f make VFolderMenu::loadDoc KDebug instead of KWarning 2015-12-09 08:49:10 -06:00
Rex Dieter b370918161 revert upstream commit causing kopete crashes for now (kde#355275) 2015-12-05 10:58:48 -06:00
Rex Dieter a8602f5ad2 pull in upstream fixes 2015-11-25 08:11:17 -06:00
Rex Dieter f8444455e3 4.14.14 (kde apps 15.08.3) 2015-11-07 06:59:12 -06:00
Rex Dieter 82538f474c add new patch 2015-10-21 21:16:05 -05:00
Rex Dieter 221fe066fb FindTaglib.cmake: fix for taglib-1.10 2015-10-21 18:12:26 -05:00
Rex Dieter f180590699 4.14.13 (kde apps 15.08.2) 2015-10-14 06:27:04 -05:00
Rex Dieter 8b1db0dd2a rename to macros.kde-apps sources too 2015-09-12 08:26:56 -05:00
Rex Dieter 7b1f4d8343 6:4.14.12-1
- 4.14.12 (KDE Applications 15.08.1)
- kde-apps-rpm-macros subpkg
- apply icon-related reverts for < f22 only
2015-09-12 08:06:15 -05:00
Rex Dieter 943fa471aa fix "Macro expanded in comment" warnings 2015-08-24 10:30:48 -05:00
Dan Vrátil 217a7fab28 Update Drop-Nepomuk-from-KParts patch 2015-08-24 17:11:56 +02:00
Dan Vrátil 122079fc4a KDE Applications 15.08.0 2015-08-24 17:03:42 +02:00
Rex Dieter 5ee1cbaca7 4.14.10 (kde-apps-15.04.3) 2015-06-28 09:24:02 -05:00
Dennis Gilmore f978277c59 - Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild 2015-06-17 13:01:19 +00:00
Rex Dieter 527b440da4 fix sonnect/hunspell dictionary paths 2015-06-04 18:01:19 -05:00
Rex Dieter e40662f7a9 Revert upstream kplaces sync fix (<f22, #1228340) 2015-06-04 13:55:13 -05:00
Rex Dieter aeacca0af4 4.14.9 (kde-apps-15.04.2) 2015-06-01 20:27:52 -05:00
Rex Dieter 91a3d7a923 4.14.8 2015-05-14 11:26:56 -05:00
Rex Dieter 16dfa112c1 6:4.14.7-5
- drop cmake hacks
- Added folders to left panel "Places" disappear (kde#345174)
2015-05-01 08:00:59 -05:00
Rex Dieter dd6198e02d ktexteditor subpkg (Requires: kate4-part) 2015-04-22 08:19:44 -05:00
Rex Dieter 4ff6b8fa01 omit apidocs in bootstrap mode 2015-04-20 09:45:11 -05:00
Rex Dieter bb20a3fba5 apps_version to 15.04.0 2015-04-13 14:31:05 -05:00
Rex Dieter 647c75e513 4.14.7 2015-04-10 10:40:32 -05:00
Rex Dieter c88f7f4469 fix build when disabling plasma_packagekit feature 2015-03-08 14:05:01 -05:00
Rex Dieter 0f9ce49aad changelog typo 2015-03-08 08:44:20 -05:00
Rex Dieter 3836b68a04 6:4.14.6-2
- pull in upstream fixes, including minor BIC fix for 4.14.6
- disable plasma/pacakgekit feature (for f22+
2015-03-08 08:43:51 -05:00
Rex Dieter b76c7bcb2e 4.14.6 2015-02-28 08:29:13 -06:00
Rex Dieter 5a31913ce0 bump Release too 2015-02-24 06:20:11 -06:00
Rex Dieter 2639d13685 bump apps_version to 14.12.2 2015-02-24 06:19:49 -06:00
Rex Dieter 714eb72aa9 4.14.5 2015-02-23 21:16:57 -06:00
Rex Dieter a48aa99972 rebuild (gcc5) 2015-02-18 09:04:11 -06:00
Rex Dieter 13bce06724 reduce stderr spam about invalid mimetypes (workaround #1184918) 2015-01-27 09:47:40 -06:00
Rex Dieter 6c70da6b72 typo in copy-n-paste macros file 2015-01-10 14:15:22 -06:00
Rex Dieter 28add374ce 6:4.14.4-1
- 4.14.4 (with kde-applications-14.12.1)
- +macros.kdelibs4 : includes %kde_applications_version, %kde_runtime_requires, %kdelibs_requires
2015-01-10 13:01:21 -06:00
Rex Dieter dfe751c10c pull in candidate fix for "kde deamon crash on wakeup" (kde#288410) 2014-12-29 21:23:00 -06:00
Rex Dieter 3a97198c66 6:4.14.3-7
- borrow Drop-Nepomuk-from-KParts-LINK_INTERFACE_LIBRARIES.patch from obs
- start work to support -nepomuk, -nepomuk-devel subpkgs (wip)
2014-12-20 16:13:47 -06:00
Rex Dieter 177d6f0d7c 6:4.14.3-6
- kill uri/ fake mimetypes (#587573, kde#269045)
- own fake mimetype dirs, e.g. mime/all/ (#907667)
2014-12-18 08:21:19 -06:00
Rex Dieter 28c4e45f92 pull in Kolab KRecursiveFilterProxyModel.patch 2014-12-09 14:26:27 -06:00
Rex Dieter 560ccaa8a6 Requires: kde-l10n 2014-12-05 18:02:14 -06:00
Rex Dieter cb135308d9 rebuild (openexr) 2014-11-25 13:44:55 -06:00
Rex Dieter b58b4e85de enable webkit for epel builds 2014-11-25 10:08:47 -06:00
Rex Dieter 76e5f9740b 4.14.3-2
- No such signal org::freedesktop::UPower::DeviceAdded(QDBusObjectPath) (#1056769)
- use upstream _DEFAULT_SOURCE commit/patch instead
2014-11-21 12:09:37 -06:00
Rex Dieter 9048770b51 Merge branch 'master' into f21 2014-11-08 07:51:10 -06:00
Rex Dieter b2450a6608 4.14.3 2014-11-08 07:49:18 -06:00
Rex Dieter 670e4a45a8 Merge branch 'master' into f20 2014-10-11 08:25:53 -05:00
Rex Dieter 47aaf1fd69 Merge branch 'master' into f21 2014-10-11 08:25:30 -05:00
Rex Dieter 9baad4c7da 4.14.2 2014-10-11 08:24:33 -05:00
Rex Dieter b734e8a845 Merge branch 'master' into f21 2014-09-15 09:18:51 -05:00
Rex Dieter 4489cb1d5f Revert "4.14.1"
This reverts commit 7eda69ab78.
2014-09-15 09:18:34 -05:00
Rex Dieter 7eda69ab78 4.14.1 2014-09-15 09:12:50 -05:00
Rex Dieter 015ad65e30 4.14.1 2014-09-15 08:37:03 -05:00
Peter Robinson 07b7d4ac06 - Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild 2014-08-16 23:21:14 +00:00
Rex Dieter 157bddf750 4.14.0 2014-08-14 10:43:58 -05:00
Rex Dieter 7f040cc42f 4.13.97 2014-08-04 18:26:32 -05:00
Rex Dieter e7f791c246 Merge branch 'master' into f20 2014-07-14 20:30:50 -05:00
Rex Dieter 13cd99aa64 4.13.3 2014-07-13 19:15:35 -05:00
Than Ngo bc86df28d4 fix issue in opening a terminal in Konqueror/Dolphin does not inherit environment variable 2014-07-11 17:03:26 +02:00
Rex Dieter e39a4b2757 mimeinfo scriptlet polish 2014-07-08 13:08:37 -05:00
Rex Dieter f52b096035 shorter version 2014-07-03 13:23:15 -05:00
Rex Dieter a571b3ef12 optimize mimeinfo scriptlet 2014-07-03 12:26:00 -05:00
Rex Dieter 557f3f61c5 Merge branch 'master' into f20 2014-06-30 12:11:12 -05:00
Rex Dieter 2fc677db6f Revert "4.12.4"
This reverts commit 7bef3c7b3e.
2014-06-30 12:11:09 -05:00
Rex Dieter 4d91da9d19 Revert "4.12.5"
This reverts commit 0700c690bc.
2014-06-30 12:11:08 -05:00
Rex Dieter 13962fa44d Revert "respin"
This reverts commit d98238726d.
2014-06-30 12:11:07 -05:00
Rex Dieter ca95843bc3 Revert "POP3 kiosloave silently accepted invalid SSL certificates (#1111022, #1111023, CVE-2014-3494)"
This reverts commit a202c166f0.
2014-06-30 12:11:06 -05:00
Rex Dieter 602e091b10 Revert "Provides: kdelibs4-webkit ..."
This reverts commit 89913d3c51.
2014-06-30 12:11:05 -05:00
Rex Dieter ec69e7724c 6:4.13.2-8
- %files enumerate libs
- move kdewebkitwidgets.so to -webkit too
2014-06-20 11:53:52 -05:00
Rex Dieter b0c6bf362c add Obsoletes for -webkit upgrade path 2014-06-19 12:55:26 -05:00
Rex Dieter 89913d3c51 Provides: kdelibs4-webkit ... 2014-06-19 09:57:55 -05:00
Rex Dieter d38cc88e56 add kdelibs4-webkit Provides 2014-06-19 09:54:46 -05:00
Rex Dieter ffce806c95 webkit subpkg 2014-06-19 09:51:20 -05:00
Rex Dieter 865d28c0b7 backport another meinproc/libxml2 fix (kde#335001) 2014-06-19 08:49:53 -05:00
Rex Dieter a202c166f0 POP3 kiosloave silently accepted invalid SSL certificates (#1111022, #1111023, CVE-2014-3494) 2014-06-19 08:42:59 -05:00
Rex Dieter f9853a30da POP3 kiosloave silently accepted invalid SSL certificates (#1111022, #1111023, CVE-2014-3494) 2014-06-19 08:41:02 -05:00
Rex Dieter 3e43f489c0 FindKDE4Internal.cmake: define _DEFAULT_SOURCE too (to avoid _BSD_SOURCE deprecation warnings) 2014-06-09 08:04:41 -05:00
Rex Dieter 12672cccc0 respin 2014-06-08 17:16:48 -05:00
Rex Dieter e9b64d15fc fix build on arm
see https://bugs.kde.org/show_bug.cgi?id=335346#c3
2014-06-07 23:02:34 -05:00
Rex Dieter 469049fb66 fix changelog 2014-06-07 17:31:13 -05:00
Rex Dieter c1a484f8b7 4.13.1 2014-06-07 16:07:46 -05:00
Rex Dieter 2551653d7c meinproc4 doesn't substitute entity with libxml2 fixed for CVE-2014-0191 (kde#335001) 2014-05-23 13:00:54 -05:00
Rex Dieter 379a767770 4.13.1 2014-05-10 08:50:44 -05:00
Rex Dieter d98238726d respin 2014-04-29 09:45:05 -05:00
Rex Dieter 0700c690bc 4.12.5 2014-04-25 20:01:01 -05:00
Rex Dieter 69a04d9587 4.13.0 2014-04-11 13:03:26 -05:00
Rex Dieter e437963ec9 4.12.97 2014-04-03 08:48:12 -05:00
Than Ngo 7bef3c7b3e 4.12.4 2014-04-02 16:24:49 +02:00
Rex Dieter ea8e8c3409 4.12.95 2014-03-22 07:56:31 -05:00
Rex Dieter 615b18379a 4.12.90 2014-03-17 13:58:46 -05:00
Rex Dieter 09667877f1 4.12.3 2014-03-01 08:03:02 -06:00
Rex Dieter 64437c2d4a hal support: +Requires: hal-storage-addon 2014-02-27 07:45:56 -06:00
Kevin Kofler b8899f88cd Merge branch 'f20' of ssh://pkgs.fedoraproject.org/kdelibs into f20 2014-02-16 18:14:49 +01:00
Kevin Kofler 558270b8dc plasma-pk: fix plasmapkg (#1065688)
* Sat Feb 15 2014 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.12.2-3
- Plasma PackageKit integration: fix plasmapkg to not query Plasma for available
  script engines if component is not Plasma/*, but e.g. KWin/Script (#1065688)
2014-02-16 00:31:34 +01:00
Kevin Kofler cfe4b28c0f Delete the plasma-pk-0001 patch that went upstream at some point. 2014-02-16 00:22:20 +01:00
Rex Dieter e9cfe5fa5a Merge branch 'master' into f20
Conflicts:
	.gitignore
	kdelibs.spec
	sources
2014-02-02 13:27:51 -06:00
Rex Dieter 0378c1266a drop autostart-debug.patch 2014-02-02 13:26:49 -06:00
Rex Dieter 67b4fc4653 4.12.2 2014-01-31 08:16:12 -06:00
Rex Dieter 721b000bde 4.12.1 2014-01-10 07:33:02 -06:00
Rex Dieter fb05da6aa4 4.11.5 2014-01-03 13:02:47 -06:00
Rex Dieter 0cb6c45d92 disable tests 2013-12-19 17:35:11 -05:00
Rex Dieter 0d3f4e1aea 4.12.0 2013-12-18 11:43:09 -06:00
Rex Dieter c41df480f5 4.11.4 2013-12-12 08:31:16 -06:00
Kevin Kofler e8a32dd17f drop autostart-debug patch
* Mon Dec 09 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.11.3-9
- drop autostart-debug patch
2013-12-09 20:22:48 +01:00
Rex Dieter 9eb06908f0 Merge branch 'f20'
Conflicts:
	kdelibs.spec
2013-12-09 08:19:14 -06:00
Kevin Kofler 35fd72ad83 set QT_NO_GLIB in klauncher_main.cpp as a possible fix/workaround for #983110
* Mon Dec 09 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.11.3-8
- drop klauncher-timeout patch that did not help
- set QT_NO_GLIB in klauncher_main.cpp as a possible fix/workaround for #983110
2013-12-09 01:54:40 +01:00
Rex Dieter a172f8137a Merge branch 'f20'
Conflicts:
	kdelibs.spec
2013-12-07 13:26:01 -06:00
Rex Dieter 0945db3aee avoid possible crasher in autostart-debug.patch 2013-12-07 08:49:29 -06:00
Kevin Kofler 1610769098 Merge branch 'f20' into 'master' 2013-12-07 05:38:21 +01:00
Kevin Kofler 3d17a457ed Fix typo in libexecdir patch.
This only affects the kstandarddirstest, so it should only matter when
tests are run.
2013-12-07 05:36:14 +01:00
Rex Dieter 48ec2a9434 autostart debugging bits, increase klauncher timeout (possible fix for #983110)
merge recent commits to f20 branch
2013-12-06 21:57:05 -06:00
Rex Dieter a03bbb6705 slightly less verbose tests 2013-12-06 21:49:53 -06:00
Rex Dieter 7e41e741bd cleanup %check/tests 2013-12-06 20:46:05 -06:00
Kevin Kofler 351f1953e4 Actually apply the klauncher-timeout patch. 2013-12-07 03:44:17 +01:00
Kevin Kofler e3d77729c8 increase KLauncher timeout as a possible fix/workaround for #983110
* Sat Dec 07 2013 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.11.3-6
- increase KLauncher timeout as a possible fix/workaround for #983110
2013-12-07 03:42:15 +01:00
Rex Dieter 487dc84f06 6:4.11.3-5
- respin autostart debuging patch
- %check: support regression tests (default off)
2013-12-06 18:29:04 -06:00
Rex Dieter a5e6d24f31 add some autostart debugging 2013-12-06 15:29:50 -06:00
Rex Dieter 886ee57885 Merge commit 'cf152dc1fcec80efe2d292afe7b79463c917c9ea'
Conflicts:
	kdelibs.spec
2013-12-03 08:45:32 -06:00
Rex Dieter 4dc43f67d3 unconditionally omit kdecmake.1 2013-12-03 08:42:04 -06:00
than 8b6657082a fix rpm file list 2013-12-02 23:09:20 +01:00
Than Ngo cf152dc1fc add the arm's check in kdelibs 2013-12-02 17:58:22 +01:00
Rex Dieter 4c8d507f2d Merge branch 'f20', for arm fix
Conflicts:
	kdelibs.spec
2013-12-02 10:53:38 -06:00
Rex Dieter b934cf8267 use %%arm macro 2013-12-02 10:52:06 -06:00
Than Ngo c9bb4d0750 bump release 2013-12-02 17:27:26 +01:00
Than Ngo 265b52e23e * add workaround for bz#969524 2013-12-02 16:55:32 +01:00
Rex Dieter 3de52986bd 4.11.97 2013-11-30 21:40:51 -06:00
Rex Dieter f3d640ed40 rebuild (openexr) 2013-11-27 10:22:21 -06:00
Rex Dieter 2afa35cd38 4.11.95 2013-11-21 08:30:22 -06:00
Rex Dieter 07009c8789 update %files 2013-11-15 12:18:59 -06:00
Rex Dieter f3004c01ee 4.11.90 2013-11-15 11:20:56 -06:00
Rex Dieter 4f1050a7c3 4.11.3 2013-11-01 16:04:21 -05:00
Rex Dieter 7fbafb9ec9 patch upstreamed 2013-10-23 10:04:22 -05:00
Rex Dieter f3efe1f53c allow udev backend on el6
afiestas recommended simply ommitting the new solid api for systems
with older udev, so here we are.
2013-10-23 09:21:16 -05:00
Rex Dieter 8207dace25 el6 fixes
- bump udev dep
- fix LEGACY_HAL handling
2013-10-21 08:02:28 -05:00
Rex Dieter 9625fd1880 followup upstream mimetypes fix 2013-10-19 07:26:21 -05:00
Rex Dieter a4e7e17e68 backport a few upstream fixes 2013-10-18 08:48:35 -05:00
Rex Dieter 9942ba96bf 4.11.2 2013-09-27 23:22:00 -05:00
Rex Dieter 4be0693da5 6:4.11.1-4
- kded4 leak sockets when wifi connections fail (kde#324954)
- use upstreamed Samba patch
- Wrong timestamp on files copied (kde#55804)
2013-09-23 08:40:51 -05:00
Rex Dieter 817dcd5aef rebuild (ilmbase/openexr) 2013-09-08 16:51:39 -05:00
Rex Dieter f6cb502cd2 Merge branch 'master' into f19
Conflicts:
	.gitignore
	kdelibs.spec
	sources
2013-09-04 21:56:55 -05:00
Rex Dieter 865e874a2c backport kwallet synchronous mode fix (kde#254198) 2013-09-03 15:44:00 -05:00
Rex Dieter 0509005e1e 6:4.11.1-1
- 4.11.1
- include SOLID_HAL_LEGACY hack (el6)
2013-09-03 12:07:19 -05:00
Rex Dieter a5f92b79f1 upstream patches, including plasma crasher fix (kde#320855) 2013-08-14 07:27:03 -05:00
Than Ngo a2b49ff462 4.11.0 2013-08-08 12:46:53 +02:00
Rex Dieter a12d831309 cleanup 2013-07-25 09:17:18 -05:00
Rex Dieter 01eab565f7 4.10.97 2013-07-25 09:16:56 -05:00
Rex Dieter 2f58094d16 4.10.95 2013-07-23 11:00:24 -05:00
Rex Dieter 5918344556 cmake -devel dep too 2013-07-19 11:41:12 -05:00
Rex Dieter 57fd106bb8 use cmake_pkg macro
So not to conflict with %cmake macro provided by cmake pkg
2013-07-19 11:38:22 -05:00
Rex Dieter 96a1cdc159 mime dirs use %_datadir, not %_kde_datadir
(even if they happen to be the same atm)
2013-06-28 10:05:07 -05:00
Rex Dieter 41735b71c3 actually apply patch to fix depextractor build 2013-06-27 10:38:33 -05:00
Rex Dieter 66325c5488 revert upstream commit disabling plasma/packagekit 2013-06-27 09:36:17 -05:00
Rex Dieter aed4a6b278 explicitly enable hupnp/packagekit bits 2013-06-27 08:33:46 -05:00
Rex Dieter ae07a247dc bump attica dep 2013-06-27 08:17:12 -05:00
Rex Dieter cddd637fad trim changelog included in binary rpms 2013-06-27 07:54:22 -05:00
Rex Dieter c0b1b3895e 4.10.90 2013-06-27 07:31:09 -05:00
29 changed files with 2246 additions and 1158 deletions

3
.gitignore vendored
View File

@ -1,2 +1 @@
/kdelibs-4.10.4.tar.xz
/kdelibs-4.10.5.tar.xz
/kdelibs-4.14.38.tar.xz

View File

@ -1,286 +0,0 @@
diff -up kdelibs-4.7.80/plasma/CMakeLists.txt.libplasma-pk-0001 kdelibs-4.7.80/plasma/CMakeLists.txt
--- kdelibs-4.7.80/plasma/CMakeLists.txt.libplasma-pk-0001 2011-11-17 21:54:56.000000000 +0100
+++ kdelibs-4.7.80/plasma/CMakeLists.txt 2011-11-18 13:16:23.243039344 +0100
@@ -6,10 +6,15 @@ if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBL
set(PLASMA_NO_KNEWSTUFF TRUE)
set(PLASMA_NO_SOLID TRUE)
set(PLASMA_NO_KIO TRUE)
+ set(PLASMA_NO_PACKAGEKIT TRUE)
set(PLASMA_NO_KUTILS TRUE)
set(PLASMA_NO_GLOBAL_SHORTCUTS TRUE)
endif(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION)
+if(NOT Q_WS_X11)
+ set(PLASMA_NO_PACKAGEKIT TRUE)
+endif(NOT Q_WS_X11)
+
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${KDE4_KDECORE_INCLUDES}
${KDE4_KDEUI_INCLUDES}
@@ -44,6 +49,11 @@ if(NOT PLASMA_NO_SOLID)
set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} ${KDE4_SOLID_LIBS})
endif(NOT PLASMA_NO_SOLID)
+if(NOT PLASMA_NO_PACKAGEKIT)
+ add_definitions(-DPLASMA_ENABLE_PACKAGEKIT_SUPPORT=1)
+ set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} ${QT_QTDBUS_LIBRARY})
+endif(NOT PLASMA_NO_PACKAGEKIT)
+
if (NOT PLASMA_NO_KUTILS)
include_directories(${CMAKE_SOURCE_DIR}/kutils)
set(PLASMA_EXTRA_LIBS ${PLASMA_EXTRA_LIBS} ${KDE4_KUTILS_LIBS})
@@ -117,6 +127,7 @@ set(plasma_LIB_SRCS
private/animablegraphicswebview.cpp
private/applethandle.cpp
private/associatedapplicationmanager.cpp
+ private/componentinstaller.cpp
private/datacontainer_p.cpp
private/dataenginebindings.cpp
private/dataengineconsumer.cpp
diff -up kdelibs-4.7.80/plasma/dataenginemanager.cpp.libplasma-pk-0001 kdelibs-4.7.80/plasma/dataenginemanager.cpp
--- kdelibs-4.7.80/plasma/dataenginemanager.cpp.libplasma-pk-0001 2011-08-22 15:13:55.000000000 +0200
+++ kdelibs-4.7.80/plasma/dataenginemanager.cpp 2011-11-18 12:48:37.513008572 +0100
@@ -29,6 +29,7 @@
#include "datacontainer.h"
#include "pluginloader.h"
+#include "private/componentinstaller_p.h"
#include "private/dataengine_p.h"
#include "private/datacontainer_p.h"
#include "scripting/scriptengine.h"
@@ -130,6 +131,9 @@ Plasma::DataEngine *DataEngineManager::l
DataEngine *engine = PluginLoader::pluginLoader()->loadDataEngine(name);
if (!engine) {
+ // Try installing the engine. However, it's too late for this request.
+ ComponentInstaller::self()->installMissingComponent("dataengine", name);
+
return d->nullEngine();
}
diff -up kdelibs-4.7.80/plasma/private/componentinstaller.cpp.libplasma-pk-0001 kdelibs-4.7.80/plasma/private/componentinstaller.cpp
--- kdelibs-4.7.80/plasma/private/componentinstaller.cpp.libplasma-pk-0001 2011-11-18 12:48:37.513008572 +0100
+++ kdelibs-4.7.80/plasma/private/componentinstaller.cpp 2011-11-18 12:48:37.513008572 +0100
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2011 Kevin Kofler <kevin.kofler@chello.at>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2, or
+ * (at your option) any later version.
+ *
+ * This program 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 Library General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "private/componentinstaller_p.h"
+
+#include <kglobal.h>
+
+#ifdef PLASMA_ENABLE_PACKAGEKIT_SUPPORT
+#include <QSet>
+#include <QDBusInterface>
+#include <QDBusPendingCall>
+#include <QWidget>
+#include <QLatin1String>
+#include <QStringList>
+#endif
+
+namespace Plasma
+{
+
+class ComponentInstallerPrivate
+{
+ public:
+#ifdef PLASMA_ENABLE_PACKAGEKIT_SUPPORT
+ QSet<QString> alreadyPrompted;
+#endif
+};
+
+class ComponentInstallerSingleton
+{
+ public:
+ ComponentInstaller self;
+};
+
+K_GLOBAL_STATIC(ComponentInstallerSingleton, privateComponentInstallerSelf)
+
+ComponentInstaller *ComponentInstaller::self()
+{
+ return &privateComponentInstallerSelf->self;
+}
+
+ComponentInstaller::ComponentInstaller()
+ : d(new ComponentInstallerPrivate)
+{
+}
+
+ComponentInstaller::~ComponentInstaller()
+{
+ delete d;
+}
+
+void ComponentInstaller::installMissingComponent(const QString &type,
+ const QString &name,
+ QWidget *parent, bool force)
+{
+#ifdef PLASMA_ENABLE_PACKAGEKIT_SUPPORT
+ QString searchString = type + '-' + name;
+
+ if (!force) {
+ if (d->alreadyPrompted.contains(searchString)) {
+ return;
+ }
+ }
+
+ d->alreadyPrompted.insert(searchString);
+
+ QDBusInterface packageKit(QLatin1String("org.freedesktop.PackageKit"),
+ QLatin1String("/org/freedesktop/PackageKit"),
+ QLatin1String("org.freedesktop.PackageKit.Modify"));
+ // We don't check packageKit.isValid() because the service is activated on
+ // demand, so it will show up as "not valid".
+ WId wid = 0;
+ if (parent) {
+ wid = parent->winId();
+ }
+ QStringList resources;
+ resources.append(searchString);
+ packageKit.asyncCall(QLatin1String("InstallResources"), (unsigned int) wid,
+ QLatin1String("plasma-service"), resources, QString());
+#else
+ Q_UNUSED(type);
+ Q_UNUSED(name);
+ Q_UNUSED(parent);
+ Q_UNUSED(force);
+#endif
+}
+
+} // namespace Plasma
diff -up kdelibs-4.7.80/plasma/private/componentinstaller_p.h.libplasma-pk-0001 kdelibs-4.7.80/plasma/private/componentinstaller_p.h
--- kdelibs-4.7.80/plasma/private/componentinstaller_p.h.libplasma-pk-0001 2011-11-18 12:48:37.514008574 +0100
+++ kdelibs-4.7.80/plasma/private/componentinstaller_p.h 2011-11-18 12:48:37.514008574 +0100
@@ -0,0 +1,94 @@
+/*
+ * Copyright 2011 Kevin Kofler <kevin.kofler@chello.at>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU Library General Public License as
+ * published by the Free Software Foundation; either version 2, or
+ * (at your option) any later version.
+ *
+ * This program 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 Library General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef PLASMA_COMPONENTINSTALLER_H
+#define PLASMA_COMPONENTINSTALLER_H
+
+class QString;
+class QWidget;
+
+namespace Plasma
+{
+
+class ComponentInstallerPrivate;
+
+/**
+ * @class ComponentInstaller plasma/private/componentinstaller_p.h
+ *
+ * @short This class provides a generic API for installation of components.
+ *
+ * @internal
+ *
+ * Plasma::ComponentInstaller allows searching for a missing data or script
+ * engine by name, and allowing the user to install the missing service.
+ * Currently, PackageKit is supported as the mechanism to install components,
+ * but more mechanisms could be supported in the future through the same API.
+ *
+ * @since 4.8
+ */
+class ComponentInstaller
+{
+ public:
+ /**
+ * Singleton pattern accessor.
+ */
+ static ComponentInstaller *self();
+
+ /**
+ * Installs a missing component asynchronously.
+ *
+ * By default, this method will cache requested components and not
+ * prompt again for the same engine in the same session. The force
+ * parameter can be used to disable this mechanism, e.g. when the user
+ * just installed a new widget written in a scripting language, and so
+ * is likely to want the script engine installed after all.
+ *
+ * In the case of on-demand installation, this will unfortunately not
+ * allow the call which triggered the missing component lookup to
+ * succeed, but we cannot afford to block all of Plasma until the
+ * mechanism is done installing the service.
+ *
+ * This function does nothing if PackageKit integration was disabled at
+ * compile time.
+ *
+ * @param type the type of the component, should be "scriptengine" or
+ * "dataengine"
+ * @param name the name of the component
+ * @param parent a parent widget, used to set the wid for PackageKit
+ * @param force whether to always prompt, even if recently prompted
+ */
+ void installMissingComponent(const QString &type, const QString &name,
+ QWidget *parent = 0, bool force = false);
+
+ private:
+ /**
+ * Default constructor. The singleton method self() is the
+ * preferred access mechanism.
+ */
+ ComponentInstaller();
+ ~ComponentInstaller();
+
+ ComponentInstallerPrivate *const d;
+
+ friend class ComponentInstallerSingleton;
+};
+
+} // namespace Plasma
+
+#endif // multiple inclusion guard
diff -up kdelibs-4.7.80/plasma/scripting/scriptengine.cpp.libplasma-pk-0001 kdelibs-4.7.80/plasma/scripting/scriptengine.cpp
--- kdelibs-4.7.80/plasma/scripting/scriptengine.cpp.libplasma-pk-0001 2011-09-26 11:41:11.000000000 +0200
+++ kdelibs-4.7.80/plasma/scripting/scriptengine.cpp 2011-11-18 12:48:37.514008574 +0100
@@ -27,6 +27,7 @@
#include "applet.h"
#include "dataengine.h"
#include "package.h"
+#include "private/componentinstaller_p.h"
#include "scripting/appletscript.h"
#include "scripting/dataenginescript.h"
#include "scripting/runnerscript.h"
@@ -196,6 +197,9 @@ ScriptEngine *loadEngine(const QString &
<< "! error reported: " << error;
}
+ // Try installing the engine. However, it's too late for this request.
+ ComponentInstaller::self()->installMissingComponent("scriptengine", language);
+
return 0;
}

View File

@ -1,139 +0,0 @@
diff -up kdelibs-4.8.90/plasma/package.cpp.libplasma-pk-0002 kdelibs-4.8.90/plasma/package.cpp
--- kdelibs-4.8.90/plasma/package.cpp.libplasma-pk-0002 2012-06-05 10:47:01.000000000 +0200
+++ kdelibs-4.8.90/plasma/package.cpp 2012-06-08 15:40:14.219728253 +0200
@@ -43,8 +43,11 @@
#include <kdebug.h>
#include "authorizationmanager.h"
+#include "dataenginemanager.h"
#include "packagemetadata.h"
+#include "scripting/scriptengine.h"
#include "private/authorizationmanager_p.h"
+#include "private/componentinstaller_p.h"
#include "private/package_p.h"
#include "private/plasmoidservice_p.h"
#include "private/service_p.h"
@@ -580,6 +583,41 @@ bool Package::installPackage(const QStri
// no need to remove the temp dir (which has been successfully moved if it's an archive)
tempdir.setAutoRemove(false);
}
+ // check for missing dependencies
+ QString requiredScriptEngine = meta.implementationApi();
+ if (!requiredScriptEngine.isEmpty()) {
+ // figure out the component type to query for
+ ComponentTypes componentTypes = static_cast<ComponentTypes>(0);
+ QStringList serviceTypes = meta.serviceType().split(',');
+ if (serviceTypes.contains("Plasma/Applet")) {
+ componentTypes |= AppletComponent;
+ }
+ if (serviceTypes.contains("Plasma/DataEngine")) {
+ componentTypes |= DataEngineComponent;
+ }
+ if (serviceTypes.contains("Plasma/Runner")) {
+ componentTypes |= RunnerComponent;
+ }
+ if (serviceTypes.contains("Plasma/Wallpaper")) {
+ componentTypes |= WallpaperComponent;
+ }
+ if (!knownLanguages(componentTypes).contains(requiredScriptEngine)) {
+ // install the missing script engine
+ // force prompting because the user has just explicitly installed a widget
+ ComponentInstaller::self()->installMissingComponent("scriptengine", requiredScriptEngine, 0, true);
+ }
+ }
+ QStringList requiredDataEngines = meta.requiredDataEngines();
+ if (!requiredDataEngines.isEmpty()) {
+ QStringList knownDataEngines = DataEngineManager::self()->listAllEngines(meta.application());
+ foreach (const QString &requiredDataEngine, requiredDataEngines) {
+ if (!knownDataEngines.contains(requiredDataEngine)) {
+ // install the missing data engine
+ // force prompting because the user has just explicitly installed a widget
+ ComponentInstaller::self()->installMissingComponent("dataengine", requiredDataEngine, 0, true);
+ }
+ }
+ }
if (!servicePrefix.isEmpty()) {
// and now we register it as a service =)
diff -up kdelibs-4.8.90/plasma/packagemetadata.cpp.libplasma-pk-0002 kdelibs-4.8.90/plasma/packagemetadata.cpp
--- kdelibs-4.8.90/plasma/packagemetadata.cpp.libplasma-pk-0002 2012-05-23 01:45:26.000000000 +0200
+++ kdelibs-4.8.90/plasma/packagemetadata.cpp 2012-06-08 15:24:24.439149182 +0200
@@ -52,6 +52,7 @@ class PackageMetadataPrivate
QString serviceType;
QString api;
KUrl location;
+ QStringList requiredDataEngines;
};
PackageMetadata::PackageMetadata(const PackageMetadata &other)
@@ -108,6 +109,7 @@ void PackageMetadata::write(const QStrin
config.writeEntry("X-KDE-ParentApp", d->app);
config.writeEntry("Type", d->type);
config.writeEntry("X-Plasma-RemoteLocation", d->location);
+ config.writeEntry("X-Plasma-RequiredDataEngines", d->requiredDataEngines);
}
void PackageMetadata::read(const QString &filename)
@@ -154,6 +156,7 @@ void PackageMetadata::read(const QString
d->app = config.readEntry("X-KDE-ParentApp", d->app);
d->type = config.readEntry("Type", d->type);
d->location = config.readEntry("X-Plasma-RemoteLocation", d->location);
+ d->requiredDataEngines = config.readEntry("X-Plasma-RequiredDataEngines", d->requiredDataEngines);
}
QString PackageMetadata::name() const
@@ -246,6 +249,11 @@ QString PackageMetadata::implementationA
return d->api;
}
+QStringList PackageMetadata::requiredDataEngines() const
+{
+ return d->requiredDataEngines;
+}
+
void PackageMetadata::setImplementationApi(const QString &api)
{
d->api = api;
@@ -321,6 +329,11 @@ void PackageMetadata::setRemoteLocation(
d->location = location;
}
+void PackageMetadata::setRequiredDataEngines(const QStringList &requiredDataEngines)
+{
+ d->requiredDataEngines = requiredDataEngines;
+}
+
void PackageMetadata::setType(const QString &type)
{
d->type = type;
diff -up kdelibs-4.8.90/plasma/packagemetadata.h.libplasma-pk-0002 kdelibs-4.8.90/plasma/packagemetadata.h
--- kdelibs-4.8.90/plasma/packagemetadata.h.libplasma-pk-0002 2012-05-23 01:45:26.000000000 +0200
+++ kdelibs-4.8.90/plasma/packagemetadata.h 2012-06-08 15:24:24.481149665 +0200
@@ -21,6 +21,7 @@
#define PLASMA_PACKAGEMETADATA_H
#include <QtCore/QString>
+#include <QtCore/QStringList>
#include <plasma/plasma_export.h>
@@ -92,6 +93,7 @@ public:
QString pluginName() const;
QString implementationApi() const;
KUrl remoteLocation() const;
+ QStringList requiredDataEngines() const;
QString type() const;
@@ -205,6 +207,11 @@ public:
*/
void setImplementationApi(const QString &api);
+ /**
+ * Set the required data engines for this package.
+ */
+ void setRequiredDataEngines(const QStringList &);
+
private:
PackageMetadataPrivate * const d;
};

View File

@ -1,346 +0,0 @@
From 89e4767148110a5566e463a03b3ed594276b7da0 Mon Sep 17 00:00:00 2001
Message-Id: <89e4767148110a5566e463a03b3ed594276b7da0.1317166378.git.kevin.kofler@chello.at>
From: Kevin Kofler <kevin.kofler@chello.at>
Date: Wed, 17 Aug 2011 04:54:37 +0200
Subject: [PATCH] Implement automatic scanning of source code for required
data engines.
For packages in scripting languages and distributed through OCS, this is fully
automatic and triggered from Package::installPackage. If an
X-Plasma-RequiredDataEngines entry is present in the .desktop file (even if
empty), the dependency extraction is not run and the explicitly provided
information is trusted instead.
For native distribution packages, we ship a tool called
plasma-dataengine-depextractor which can be run at any time during the build
process and which adds the dependency information to the relevant .desktop file.
Authors of plasmoids are encouraged to run plasma-dataengine-depextractor and/or
fill in X-Plasma-RequiredDataEngines manually. (Please note that the list is
expected to be comma-separated.)
---
plasma/CMakeLists.txt | 15 ++++
plasma/depextractor/depextractor.cpp | 125 +++++++++++++++++++++++++++++++++
plasma/package.cpp | 11 +++
plasma/private/componentinstaller.cpp | 71 +++++++++++++++++++
plasma/private/componentinstaller_p.h | 17 ++++-
5 files changed, 238 insertions(+), 1 deletions(-)
diff --git a/plasma/CMakeLists.txt b/plasma/CMakeLists.txt
index f929967..9a760ef 100644
--- a/plasma/CMakeLists.txt
+++ b/plasma/CMakeLists.txt
@@ -304,6 +304,18 @@ set_target_properties(plasma PROPERTIES
install(TARGETS plasma EXPORT kdelibsLibraryTargets ${INSTALL_TARGETS_DEFAULT_ARGS})
+if(NOT PLASMA_NO_PACKAGEKIT)
+ # we need a copy of the component installer because libplasma does not export it
+ # plus, this avoids depending on GUI stuff in this command-line utility
+ set(plasma_dataengine_depextractor_SRCS depextractor/depextractor.cpp
+ private/componentinstaller.cpp)
+ kde4_add_executable(plasma-dataengine-depextractor
+ ${plasma_dataengine_depextractor_SRCS})
+ set_target_properties(plasma-dataengine-depextractor PROPERTIES
+ COMPILE_FLAGS -DPLASMA_COMPONENTINSTALLER_NO_QWIDGET=1)
+ target_link_libraries(plasma-dataengine-depextractor ${KDE4_KDECORE_LIBS})
+endif(NOT PLASMA_NO_PACKAGEKIT)
+
########### install files ###############
@@ -460,3 +472,6 @@ install(FILES data/operations/dataengineservice.operations DESTINATION ${DATA_IN
install(FILES data/operations/plasmoidservice.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services)
install(FILES data/operations/storage.operations DESTINATION ${DATA_INSTALL_DIR}/plasma/services)
+if(NOT PLASMA_NO_PACKAGEKIT)
+ install(TARGETS plasma-dataengine-depextractor DESTINATION ${BIN_INSTALL_DIR})
+endif(NOT PLASMA_NO_PACKAGEKIT)
diff --git a/plasma/depextractor/depextractor.cpp b/plasma/depextractor/depextractor.cpp
new file mode 100644
index 0000000..c489de7
--- /dev/null
+++ b/plasma/depextractor/depextractor.cpp
@@ -0,0 +1,125 @@
+/* Plasma Data Engine dependency extractor
+ Copyright (C) 2011 Kevin Kofler <kevin.kofler@chello.at>
+
+ This program 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.
+
+ This program 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 <http://www.gnu.org/licenses/>. */
+
+#include <QCoreApplication>
+#include <QTextStream>
+#include <QFileInfo>
+#include <QDir>
+
+#include <cstdio>
+
+#include <kaboutdata.h>
+#include <kcmdlineargs.h>
+#include <kdesktopfile.h>
+#include <kconfiggroup.h>
+
+#include "private/componentinstaller_p.h"
+
+static QString scriptingApi(const QString &desktopFile)
+{
+ KDesktopFile desktop(desktopFile);
+ KConfigGroup desktopGroup = desktop.desktopGroup();
+ if (desktopGroup.readEntry("X-KDE-ServiceTypes", QStringList())
+ .contains("Plasma/ScriptEngine")
+ || desktopGroup.readEntry("ServiceTypes", QStringList())
+ .contains("Plasma/ScriptEngine")) {
+ /* Script engines are always written in C++. Their X-Plasma-API is the
+ API they export, not the language they're written in. */
+ return QString();
+ }
+ return desktopGroup.readEntry("X-Plasma-API", QString());
+}
+
+static void writeDataEngineDependencies(const QStringList &deps,
+ const QString &desktopFile)
+{
+ if (!deps.isEmpty()) {
+ KDesktopFile desktop(desktopFile);
+ desktop.desktopGroup().writeEntry("X-Plasma-RequiredDataEngines", deps);
+ }
+}
+
+int main(int argc, char **argv)
+{
+ KAboutData aboutData("plasma-dataengine-depextractor", QByteArray(),
+ ki18n("Plasma Data Engine dependency extractor"),
+ "2",
+ ki18n("Plasma Data Engine dependency extractor"));
+ aboutData.addAuthor(ki18n("Kevin Kofler"), ki18n("Author"),
+ "kevin.kofler@chello.at");
+
+ KCmdLineArgs::init(argc, argv, &aboutData);
+ KCmdLineOptions options;
+ options.add("+[path]",
+ ki18n("Source path (default: .)"));
+ options.add("+[file]",
+ ki18n(".desktop rel. to path (default: metadata.desktop)")
+ );
+ KCmdLineArgs::addCmdLineOptions(options);
+
+ QCoreApplication *app = new QCoreApplication(KCmdLineArgs::qtArgc(),
+ KCmdLineArgs::qtArgv());
+
+ KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
+
+ int exitCode = 0;
+
+ QString path, desktopFile;
+ int argCount = args->count();
+ switch (argCount) {
+ case 0:
+ path = ".";
+ desktopFile = "metadata.desktop";
+ break;
+ case 1:
+ path = args->arg(0);
+ desktopFile = "metadata.desktop";
+ break;
+ case 2:
+ path = args->arg(0);
+ desktopFile = args->arg(1);
+ break;
+ default:
+ {
+ QTextStream err(stderr, QIODevice::WriteOnly | QIODevice::Text);
+ err << i18n("Expected at most 2 arguments, but %1 given", argCount)
+ << endl;
+ exitCode = 1;
+ break;
+ }
+ }
+
+ if (!exitCode) {
+ if (QFileInfo(desktopFile).isRelative())
+ desktopFile = QDir(path).absoluteFilePath(desktopFile);
+
+ if (QFileInfo(desktopFile).exists()) {
+ writeDataEngineDependencies(Plasma::ComponentInstaller::self()
+ ->extractDataEngineDependencies(
+ path,
+ scriptingApi(desktopFile)),
+ desktopFile);
+ } else {
+ QTextStream err(stderr, QIODevice::WriteOnly | QIODevice::Text);
+ err << i18n("Desktop file \"%1\" not found", desktopFile) << endl;
+ exitCode = 1;
+ }
+ }
+
+ args->clear();
+ delete app;
+ return exitCode;
+}
diff --git a/plasma/package.cpp b/plasma/package.cpp
index 0a45c87..131f204 100644
--- a/plasma/package.cpp
+++ b/plasma/package.cpp
@@ -631,6 +631,17 @@ bool Package::installPackage(const QString &package,
}
}
QStringList requiredDataEngines = meta.requiredDataEngines();
+ if (requiredDataEngines.isEmpty()) {
+ // check whether this was explicitly specified as empty
+ QString metaPath = targetName + "/metadata.desktop";
+ KDesktopFile df(metaPath);
+ KConfigGroup cg = df.desktopGroup();
+ if (!cg.hasKey("X-Plasma-RequiredDataEngines")) {
+ // not specified at all, try running the dependency extraction
+ requiredDataEngines = ComponentInstaller::self()->extractDataEngineDependencies(targetName,
+ requiredScriptEngine);
+ }
+ }
if (!requiredDataEngines.isEmpty()) {
QStringList knownDataEngines = DataEngineManager::self()->listAllEngines(meta.application());
foreach (const QString &requiredDataEngine, requiredDataEngines) {
diff --git a/plasma/private/componentinstaller.cpp b/plasma/private/componentinstaller.cpp
index 870667f..087d1c6 100644
--- a/plasma/private/componentinstaller.cpp
+++ b/plasma/private/componentinstaller.cpp
@@ -28,6 +28,10 @@
#include <QWidget>
#include <QLatin1String>
#include <QStringList>
+#include <QTextStream>
+#include <QFile>
+#include <QDirIterator>
+#include <QRegExp>
#endif
namespace Plasma
@@ -85,9 +89,13 @@ void ComponentInstaller::installMissingComponent(const QString &type,
// We don't check packageKit.isValid() because the service is activated on
// demand, so it will show up as "not valid".
WId wid = 0;
+#ifndef PLASMA_COMPONENTINSTALLER_NO_QWIDGET
if (parent) {
wid = parent->winId();
}
+#else
+ Q_UNUSED(parent);
+#endif
QStringList resources;
resources.append(searchString);
packageKit.asyncCall(QLatin1String("InstallResources"), (unsigned int) wid,
@@ -100,4 +108,67 @@ void ComponentInstaller::installMissingComponent(const QString &type,
#endif
}
+QStringList ComponentInstaller::extractDataEngineDependencies(const QString &path,
+ const QString &api)
+{
+ QStringList deps;
+
+#ifdef PLASMA_ENABLE_PACKAGEKIT_SUPPORT
+ QStringList nameFilters;
+ QRegExp searchRegExp("dataEngine *\\( *\"([^\"]+)\" *\\)");
+ if (api.isEmpty()) {
+ // no script engine API, this is native C++ code
+ nameFilters.append("*.cpp");
+ nameFilters.append("*.cxx");
+ nameFilters.append("*.cc");
+ nameFilters.append("*.C");
+ nameFilters.append("*.h");
+ nameFilters.append("*.hpp");
+ nameFilters.append("*.hxx");
+ nameFilters.append("*.hh");
+ nameFilters.append("*.H");
+ } else if (api == "declarativeappletscript") {
+ nameFilters.append("*.qml");
+ searchRegExp = QRegExp("(?:^\\s*engine:\\s*|dataEngine *\\( *)\"([^\"]+)\"");
+ } else if (api == "javascript") {
+ nameFilters.append("*.js");
+ } else if (api == "python") {
+ nameFilters.append("*.py");
+ searchRegExp = QRegExp("dataEngine *\\( *[\'\"]([^\'\"]+)[\'\"] *\\)");
+ } else if (api == "ruby-script") {
+ nameFilters.append("*.rb");
+ searchRegExp = QRegExp("dataEngine *\\( *[\'\"]([^\'\"]+)[\'\"] *\\)");
+ } else {
+ // dependency extraction not supported for this API
+ return deps;
+ }
+
+ QDirIterator it(path, nameFilters, QDir::Files | QDir::CaseSensitive,
+ QDirIterator::Subdirectories
+ | QDirIterator::FollowSymlinks);
+ while (it.hasNext()) {
+ QFile file(it.next());
+ file.open(QIODevice::ReadOnly | QIODevice::Text);
+ QTextStream stream(&file);
+ QString line;
+ while (!(line = stream.readLine()).isNull()) {
+ int column = 0;
+ while ((column = searchRegExp.indexIn(line, column)) != -1) {
+ QString dep = searchRegExp.cap(1);
+ if (!deps.contains(dep)) {
+ deps.append(dep);
+ }
+ column += searchRegExp.matchedLength();
+ }
+ }
+ file.close();
+ }
+#else
+ Q_UNUSED(path);
+ Q_UNUSED(api);
+#endif
+
+ return deps;
+}
+
} // namespace Plasma
diff --git a/plasma/private/componentinstaller_p.h b/plasma/private/componentinstaller_p.h
index f85cbb6..d0d9c75 100644
--- a/plasma/private/componentinstaller_p.h
+++ b/plasma/private/componentinstaller_p.h
@@ -20,7 +20,7 @@
#ifndef PLASMA_COMPONENTINSTALLER_H
#define PLASMA_COMPONENTINSTALLER_H
-class QString;
+#include <QStringList>
class QWidget;
namespace Plasma
@@ -76,6 +76,21 @@ class ComponentInstaller
void installMissingComponent(const QString &type, const QString &name,
QWidget *parent = 0, bool force = false);
+ /**
+ * Extracts the list of required data engines from source code.
+ *
+ * If the scripting API is not supported for dependency extraction or
+ * if Plasma was compiled without support for missing component
+ * installation, an empty list of dependencies is returned.
+ *
+ * @param path the path containing the source code
+ * @param api the scripting API used;
+ * if empty (the default), assumes the native C++ API
+ */
+ QStringList extractDataEngineDependencies(const QString &path,
+ const QString &api
+ = QString());
+
private:
/**
* Default constructor. The singleton method self() is the
--
1.7.6.2

View File

@ -0,0 +1,27 @@
From 02966e348e37ebf6269aaed238e7ce67fbe958e7 Mon Sep 17 00:00:00 2001
From: Hrvoje Senjan <hrvoje.senjan@gmail.com>
Date: Sun, 25 May 2014 00:36:08 +0200
Subject: [PATCH 1/1] Drop Nepomuk from KParts' LINK_INTERFACE_LIBRARIES
Nepomuk is only used in a private header, browserrun_p.h,
thus it is not needed as KParts public dependancy
Makes it possible to drop libsoprano-devel from libkde4-devel Requires
---
kparts/CMakeLists.txt | 1 -
1 file changed, 1 deletion(-)
diff --git a/kparts/CMakeLists.txt b/kparts/CMakeLists.txt
index 2eab2e8..e17ef5e 100644
--- a/kparts/CMakeLists.txt
+++ b/kparts/CMakeLists.txt
@@ -39,7 +39,6 @@ target_link_libraries(kparts ${KDE4_KDECORE_LIBS} kdeui kio)
target_link_libraries(kparts LINK_PUBLIC kio kdeui kdecore ${QT_QTCORE_LIBRARY} ${QT_QTGUI_LIBRARY} )
if(HAVE_NEPOMUK)
target_link_libraries(kparts LINK_PRIVATE nepomuk nepomukutils)
- target_link_libraries(kparts LINK_PUBLIC nepomuk nepomukutils )
endif(HAVE_NEPOMUK)
set_target_properties(kparts PROPERTIES VERSION ${GENERIC_LIB_VERSION}
--
1.9.3

View File

@ -1,40 +0,0 @@
From aaeae76bc3e5fa02601608bae85cdd1478843678 Mon Sep 17 00:00:00 2001
From: Rex Dieter <rdieter@math.unl.edu>
Date: Sat, 6 Apr 2013 05:10:39 -0500
Subject: [PATCH] FindSamba.cmake: help find samba4 more reliably
add PATH_SUFFIXES samba-4.0 and pkgconfig hints
---
cmake/modules/FindSamba.cmake | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/cmake/modules/FindSamba.cmake b/cmake/modules/FindSamba.cmake
index 16522c6..ec1179d 100644
--- a/cmake/modules/FindSamba.cmake
+++ b/cmake/modules/FindSamba.cmake
@@ -17,10 +17,20 @@ if(SAMBA_INCLUDE_DIR AND SAMBA_LIBRARIES)
set(Samba_FIND_QUIETLY TRUE)
endif(SAMBA_INCLUDE_DIR AND SAMBA_LIBRARIES)
-find_path(SAMBA_INCLUDE_DIR NAMES libsmbclient.h )
+# use pkg-config to get the directories and then use these values
+# in the FIND_PATH() and FIND_LIBRARY() calls
+find_package(PkgConfig)
+pkg_check_modules(PC_LIBSMBCLIENT QUIET smbclient)
-find_library(SAMBA_LIBRARIES NAMES smbclient )
+find_path(SAMBA_INCLUDE_DIR NAMES libsmbclient.h PATH_SUFFIXES samba-4.0
+ HINTS
+ ${PC_LIBSMBCLIENT_INCLUDEDIR}
+ ${PC_LIBSMBCLIENT_INCLUDE_DIRS})
+find_library(SAMBA_LIBRARIES NAMES smbclient
+ HINTS
+ ${PC_LIBSMBCLIENT_LIBDIR}
+ ${PC_LIBSMBCLIENT_LIB_DIRS})
if(SAMBA_INCLUDE_DIR AND SAMBA_LIBRARIES)
set(SAMBA_FOUND TRUE)
--
1.8.1.4

6
SOLID_HAL_LEGACY.sh Normal file
View File

@ -0,0 +1,6 @@
if [ -z "${SOLID_HAL_LEGACY}" ] ; then
SOLID_HAL_LEGACY=1
export SOLID_HAL_LEGACY
fi

View File

@ -1,61 +0,0 @@
From 2173580f070e806d4715e13048c697c49ec262e2 Mon Sep 17 00:00:00 2001
From: Aaron Seigo <aseigo@kde.org>
Date: Thu, 21 Feb 2013 17:59:58 +0100
Subject: [PATCH 047/111] coding style fixes
---
kdeui/icons/kiconloader.cpp | 27 ++++++++++++---------------
1 file changed, 12 insertions(+), 15 deletions(-)
diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
index 6fed667..dba474d 100644
--- a/kdeui/icons/kiconloader.cpp
+++ b/kdeui/icons/kiconloader.cpp
@@ -938,32 +938,29 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
}
}
- foreach (KIconThemeNode *themeNode, links)
- {
+ foreach (KIconThemeNode *themeNode, links) {
QString currentName = name;
- while (!currentName.isEmpty())
- {
-
+ while (!currentName.isEmpty()) {
//kDebug(264) << "Looking up" << currentName;
-// The following code has been commented out because the Qt SVG renderer needs
-// to be improved. If you are going to change/remove some code from this part,
-// please contact me before (ereslibre@kde.org), or kde-core-devel@kde.org. (ereslibre)
- for (int i = 0 ; i < 4 ; i++)
- {
+ for (int i = 0 ; i < 4 ; i++) {
icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchExact);
- if (icon.isValid())
- return icon;
+ if (icon.isValid()) {
+ break;
+ }
icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchBest);
- if (icon.isValid())
- return icon;
+ if (icon.isValid()) {
+ break;
+ }
}
+ //kDebug(264) << "Looking up" << currentName;
- if (genericFallback)
+ if (genericFallback) {
// we already tested the base name
break;
+ }
int rindex = currentName.lastIndexOf('-');
if (rindex > 1) { // > 1 so that we don't split x-content or x-epoc
--
1.8.1.4

15
kdelibs-4.11.3-arm.patch Normal file
View File

@ -0,0 +1,15 @@
diff -up kdelibs-4.11.3/plasma/corona.cpp.than kdelibs-4.11.3/plasma/corona.cpp
--- kdelibs-4.11.3/plasma/corona.cpp.than 2013-12-02 16:46:19.542820822 +0100
+++ kdelibs-4.11.3/plasma/corona.cpp 2013-12-02 17:53:04.919830893 +0100
@@ -388,7 +388,11 @@ void Corona::addOffscreenWidget(QGraphic
}
d->offscreenWidgets[i] = widget;
+#if defined(arm) || defined(__arm__)
+ widget->setPos((-i - 1) * 2000, -2000);
+#else
widget->setPos((-i - 1) * QWIDGETSIZE_MAX, -QWIDGETSIZE_MAX);
+#endif
QGraphicsWidget *pw = widget->parentWidget();
widget->setParentItem(0);

View File

@ -0,0 +1,54 @@
diff -up kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp.libexecdir kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp.libexecdir 2013-06-28 12:03:40.883340083 -0500
+++ kdelibs-4.11.3/kdecore/kernel/kstandarddirs.cpp 2013-11-01 15:44:00.780783690 -0500
@@ -1871,7 +1871,7 @@ void KStandardDirs::addKDEDefaults()
addResourceType(types_string + types_indices[index], 0, types_string + types_indices[index+1], true);
index+=2;
}
- addResourceType("exe", "lib", "kde4/libexec", true );
+ addResourceType("exe", 0, "libexec/kde4", true );
addResourceDir("home", QDir::homePath(), false);
diff -up kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp
--- kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir 2013-06-28 12:03:40.884340190 -0500
+++ kdelibs-4.11.3/kdecore/kernel/kstandarddirs_unix.cpp 2013-11-01 15:44:00.782783770 -0500
@@ -63,7 +63,7 @@ QString KStandardDirs::installPath(const
if (strcmp("lib", type) == 0)
return QFile::decodeName(LIB_INSTALL_DIR "/");
if (strcmp("libexec", type) == 0)
- return QFile::decodeName(KDEDIR "/lib" KDELIBSUFF "/kde4/libexec/");
+ return QFile::decodeName(LIBEXEC_INSTALL_DIR "/");
if (strcmp("locale", type) == 0)
return QFile::decodeName(LOCALE_INSTALL_DIR "/");
break;
diff -up kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp.libexecdir kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp
--- kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp.libexecdir 2013-11-01 10:45:56.409145508 -0500
+++ kdelibs-4.11.3/kdecore/tests/kstandarddirstest.cpp 2013-11-01 15:50:20.473658147 -0500
@@ -96,8 +96,9 @@ void KStandarddirsTest::testFindResource
#define KIOSLAVE "bin/kioslave.exe"
#else
#define EXT ""
-#define KIOSLAVE "kde4/libexec/kioslave"
+#define KIOSLAVE "libexec/kde4/kioslave"
#endif
+
const QString bin = KGlobal::dirs()->findResource( "exe", "kioslave" EXT );
QVERIFY( !bin.isEmpty() );
QVERIFY( bin.endsWith( KIOSLAVE ) );
@@ -248,11 +249,13 @@ void KStandarddirsTest::testFindExe()
// findExe with a result in libexec
const QString lnusertemp = KGlobal::dirs()->findExe( "lnusertemp" );
QVERIFY( !lnusertemp.isEmpty() );
- QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY ) );
+ QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY )
+ || lnusertemp.endsWith( "libexec/kde4/lnusertemp" EXT, PATH_SENSITIVITY ) );
// locate("exe") with a result in libexec
const QString locateExeResult = KGlobal::dirs()->locate("exe", "lnusertemp");
- QVERIFY(locateExeResult.endsWith("lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY));
+ QVERIFY(locateExeResult.endsWith("lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY)
+ || locateExeResult.endsWith("libexec/kde4/lnusertemp" EXT, PATH_SENSITIVITY) );
// findExe with relative path
const QString pwd = QDir::currentPath();

View File

@ -1,19 +1,18 @@
diff -up kdelibs-4.10.0/kdecore/kernel/kstandarddirs.cpp.kstandarddirs kdelibs-4.10.0/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.10.0/kdecore/kernel/kstandarddirs.cpp.kstandarddirs 2013-01-31 07:44:58.336676504 -0600
+++ kdelibs-4.10.0/kdecore/kernel/kstandarddirs.cpp 2013-01-31 07:44:58.340676454 -0600
@@ -1153,7 +1153,9 @@ QStringList KStandardDirs::KStandardDirs
diff -up kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp.kstandarddirs kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp.kstandarddirs 2013-11-30 21:24:01.637163800 -0600
+++ kdelibs-4.11.97/kdecore/kernel/kstandarddirs.cpp 2013-11-30 21:35:27.166292739 -0600
@@ -1149,7 +1149,8 @@ QStringList KStandardDirs::KStandardDirs
pit != prefixList->end();
++pit)
{
- if((*pit)!=installprefix||installdir.isEmpty())
+ // "exe" never has a custom install path, and the check triggers
+ // a false positive due to the libexecdir patch
+ if((*pit)!=installprefix||installdir.isEmpty()||!strcmp("exe", type))
- if((*pit).compare(installprefix, cs) != 0 || installdir.isEmpty())
+ // "exe" never has a custom install path, and the check triggers a false positive due to the libexecdir patch
+ if((*pit).compare(installprefix, cs) != 0 || installdir.isEmpty() || !strcmp("exe", type))
{
for (QStringList::ConstIterator it = dirs.constBegin();
it != dirs.constEnd(); ++it)
@@ -1171,6 +1173,11 @@ QStringList KStandardDirs::KStandardDirs
if ((local || testdir.exists()) && !candidates.contains(path))
@@ -1163,6 +1164,11 @@ QStringList KStandardDirs::KStandardDirs
if ((local || testdir.exists()) && !candidates.contains(path, cs))
candidates.append(path);
}
+ // special-case "config" (forward porting Chris Cheney's

12
kdelibs-4.12.90-dot.patch Normal file
View File

@ -0,0 +1,12 @@
diff -up kdelibs-4.12.90/doc/common/Doxyfile.global.dot kdelibs-4.12.90/doc/common/Doxyfile.global
--- kdelibs-4.12.90/doc/common/Doxyfile.global.dot 2014-03-17 13:15:23.252517997 -0500
+++ kdelibs-4.12.90/doc/common/Doxyfile.global 2014-03-17 13:16:02.472100942 -0500
@@ -1360,7 +1360,7 @@ HIDE_UNDOC_RELATIONS = NO
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
-HAVE_DOT = YES
+HAVE_DOT = NO
# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs.
# The default size is 10pt.

View File

@ -0,0 +1,17 @@
diff -up kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp.orig kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp
--- kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp.orig 2014-07-11 16:54:51.000000000 +0200
+++ kdelibs-4.13.2/kdecore/kernel/ktoolinvocation_x11.cpp 2014-07-11 16:57:31.000000000 +0200
@@ -412,11 +412,9 @@ void KToolInvocation::invokeTerminal(con
// directory before launching them, see below.
}
- QString error;
- if (self()->startServiceInternal("kdeinit_exec_with_workdir",
- cmd, cmdTokens, &error, 0, NULL, startup_id, false, workdir)) {
+ if (!QProcess::startDetached(cmd, cmdTokens)) {
KMessage::message(KMessage::Error,
- i18n("Could not launch the terminal client:\n\n%1", error),
+ i18n("Could not launch the terminal client"),
i18n("Could not launch Terminal Client"));
}
}

View File

@ -0,0 +1,12 @@
diff -up kdelibs-4.14.14/kded/vfolder_menu.cpp.vfolder_spam kdelibs-4.14.14/kded/vfolder_menu.cpp
--- kdelibs-4.14.14/kded/vfolder_menu.cpp.vfolder_spam 2015-11-04 16:29:10.000000000 -0600
+++ kdelibs-4.14.14/kded/vfolder_menu.cpp 2015-12-09 08:45:49.861988284 -0600
@@ -487,7 +487,7 @@ VFolderMenu::loadDoc()
int errorRow;
int errorCol;
if ( !doc.setContent( &file, &errorMsg, &errorRow, &errorCol ) ) {
- kWarning(7021) << "Parse error in " << m_docInfo.path << ", line " << errorRow << ", col " << errorCol << ": " << errorMsg;
+ kDebug(7021) << "Parse error in " << m_docInfo.path << ", line " << errorRow << ", col " << errorCol << ": " << errorMsg;
file.close();
return doc;
}

View File

@ -1,7 +1,7 @@
diff -up kdelibs-4.10.0/CMakeLists.txt.webkit kdelibs-4.10.0/CMakeLists.txt
--- kdelibs-4.10.0/CMakeLists.txt.webkit 2013-01-29 22:55:26.000000000 +0100
+++ kdelibs-4.10.0/CMakeLists.txt 2013-02-28 11:43:57.653616989 +0100
@@ -328,7 +328,6 @@ if(NOT WINCE)
diff -up kdelibs-4.14.16/CMakeLists.txt.webkit kdelibs-4.14.16/CMakeLists.txt
--- kdelibs-4.14.16/CMakeLists.txt.webkit 2016-01-07 00:02:22.000000000 +0100
+++ kdelibs-4.14.16/CMakeLists.txt 2016-01-28 13:03:53.556194927 +0100
@@ -363,7 +363,6 @@ if(NOT WINCE)
add_subdirectory( plasma )
endif(NOT WINCE)
add_subdirectory( kunitconversion )
@ -9,9 +9,9 @@ diff -up kdelibs-4.10.0/CMakeLists.txt.webkit kdelibs-4.10.0/CMakeLists.txt
add_subdirectory( includes )
add_subdirectory( experimental )
diff -up kdelibs-4.10.0/kdewidgets/CMakeLists.txt.webkit kdelibs-4.10.0/kdewidgets/CMakeLists.txt
--- kdelibs-4.10.0/kdewidgets/CMakeLists.txt.webkit 2013-02-28 11:43:57.589617095 +0100
+++ kdelibs-4.10.0/kdewidgets/CMakeLists.txt 2013-02-28 11:43:57.654616988 +0100
diff -up kdelibs-4.14.16/kdewidgets/CMakeLists.txt.webkit kdelibs-4.14.16/kdewidgets/CMakeLists.txt
--- kdelibs-4.14.16/kdewidgets/CMakeLists.txt.webkit 2016-01-28 13:03:53.527196020 +0100
+++ kdelibs-4.14.16/kdewidgets/CMakeLists.txt 2016-01-28 13:03:53.556194927 +0100
@@ -88,41 +88,6 @@ if(QT_QTDESIGNER_FOUND)
install(TARGETS kdedeprecated DESTINATION ${PLUGIN_INSTALL_DIR}/plugins/designer )
endif(NOT KDE_NO_DEPRECATED)
@ -54,19 +54,18 @@ diff -up kdelibs-4.10.0/kdewidgets/CMakeLists.txt.webkit kdelibs-4.10.0/kdewidge
if (QT_QT3SUPPORT_FOUND)
include_directories(
diff -up kdelibs-4.10.0/plasma/CMakeLists.txt.webkit kdelibs-4.10.0/plasma/CMakeLists.txt
--- kdelibs-4.10.0/plasma/CMakeLists.txt.webkit 2013-02-28 11:43:57.600617077 +0100
+++ kdelibs-4.10.0/plasma/CMakeLists.txt 2013-02-28 11:47:28.121778200 +0100
@@ -11,6 +11,8 @@ if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBL
set(PLASMA_NO_GLOBAL_SHORTCUTS TRUE)
diff -up kdelibs-4.14.16/plasma/CMakeLists.txt.webkit kdelibs-4.14.16/plasma/CMakeLists.txt
--- kdelibs-4.14.16/plasma/CMakeLists.txt.webkit 2016-01-07 00:02:22.000000000 +0100
+++ kdelibs-4.14.16/plasma/CMakeLists.txt 2016-01-28 13:26:55.730137496 +0100
@@ -11,6 +11,7 @@ if(KDE_PLATFORM_FEATURE_BINARY_COMPATIBL
endif(KDE_PLATFORM_FEATURE_BINARY_COMPATIBLE_FEATURE_REDUCTION)
set(PLASMA_NO_PACKAGEKIT TRUE)
+set(PLASMA_NO_KDEWEBKIT TRUE)
+
if(NOT Q_WS_X11)
set(PLASMA_NO_PACKAGEKIT TRUE)
endif(NOT Q_WS_X11)
@@ -124,7 +126,6 @@ set(plasma_LIB_SRCS
include_directories(${CMAKE_CURRENT_SOURCE_DIR}
${KDE4_KDECORE_INCLUDES}
@@ -121,7 +122,6 @@ set(plasma_LIB_SRCS
framesvg.cpp
plasma.cpp
popupapplet.cpp
@ -74,7 +73,7 @@ diff -up kdelibs-4.10.0/plasma/CMakeLists.txt.webkit kdelibs-4.10.0/plasma/CMake
private/applethandle.cpp
private/associatedapplicationmanager.cpp
private/componentinstaller.cpp
@@ -214,7 +215,6 @@ set(plasma_LIB_SRCS
@@ -211,7 +211,6 @@ set(plasma_LIB_SRCS
widgets/textbrowser.cpp
widgets/treeview.cpp
widgets/textedit.cpp
@ -82,16 +81,16 @@ diff -up kdelibs-4.10.0/plasma/CMakeLists.txt.webkit kdelibs-4.10.0/plasma/CMake
#Temporary QtJolie branch
private/qtjolie-branch/qtjolie/abstractadaptor.cpp
@@ -278,7 +278,7 @@ endif(PHONON_FOUND)
@@ -275,7 +274,7 @@ endif(PHONON_FOUND)
kde4_add_library(plasma ${LIBRARY_TYPE} ${plasma_LIB_SRCS})
-target_link_libraries(plasma ${QT_QTUITOOLS_LIBRARY} ${QT_QTWEBKIT_LIBRARY}
+target_link_libraries(plasma ${QT_QTUITOOLS_LIBRARY}
-target_link_libraries(plasma LINK_PRIVATE ${QT_QTUITOOLS_LIBRARY} ${QT_QTWEBKIT_LIBRARY}
+target_link_libraries(plasma LINK_PRIVATE ${QT_QTUITOOLS_LIBRARY}
${QT_QTSCRIPT_LIBRARY} ${QT_QTNETWORK_LIBRARY} ${QT_QTXML_LIBRARY} ${QT_QTSQL_LIBRARY} ${QT_QTDECLARATIVE_LIBRARY}
${KDE4_KDEUI_LIBS} ${KDE4_KDNSSD_LIBS} ${KDE4_THREADWEAVER_LIBS} ${PLASMA_EXTRA_LIBS})
@@ -430,7 +430,6 @@ install(FILES
@@ -415,7 +414,6 @@ install(FILES
widgets/textbrowser.h
widgets/treeview.h
widgets/textedit.h

View File

@ -0,0 +1,12 @@
diff -up kdelibs-4.14.17/khtml/dom/dom2_traversal.h.gcc6 kdelibs-4.14.17/khtml/dom/dom2_traversal.h
--- kdelibs-4.14.17/khtml/dom/dom2_traversal.h.gcc6 2016-02-12 19:27:45.874888043 -0600
+++ kdelibs-4.14.17/khtml/dom/dom2_traversal.h 2016-02-12 19:26:11.777418711 -0600
@@ -214,7 +214,7 @@ public:
*
*/
enum ShowCode {
- SHOW_ALL = 0xFFFFFFFF,
+ SHOW_ALL = (int)0xFFFFFFFF,
SHOW_ELEMENT = 0x00000001,
SHOW_ATTRIBUTE = 0x00000002,
SHOW_TEXT = 0x00000004,

View File

@ -0,0 +1,12 @@
diff -up kdelibs-4.14.17/ConfigureChecks.cmake.gcc6 kdelibs-4.14.17/ConfigureChecks.cmake
--- kdelibs-4.14.17/ConfigureChecks.cmake.gcc6 2016-02-11 23:06:08.000000000 -0600
+++ kdelibs-4.14.17/ConfigureChecks.cmake 2016-02-12 19:14:07.707788177 -0600
@@ -244,7 +244,7 @@ check_prototype_exists(unsetenv stdlib.h
check_prototype_exists(usleep unistd.h HAVE_USLEEP_PROTO)
check_prototype_exists(initgroups "unistd.h;sys/types.h;unistd.h;grp.h" HAVE_INITGROUPS_PROTO)
check_prototype_exists(setreuid unistd.h HAVE_SETREUID_PROTO)
-check_prototype_exists(trunc math.h HAVE_TRUNC)
+check_prototype_exists(truncf math.h HAVE_TRUNC)
# check for existing datatypes

View File

@ -0,0 +1,22 @@
diff -up kdelibs-4.14.25/kdeui/util/kcrash.cpp.plasma_drkonqi kdelibs-4.14.25/kdeui/util/kcrash.cpp
--- kdelibs-4.14.25/kdeui/util/kcrash.cpp.plasma_drkonqi 2016-10-10 01:09:37.000000000 -0500
+++ kdelibs-4.14.25/kdeui/util/kcrash.cpp 2016-11-10 11:18:40.617754077 -0600
@@ -205,11 +205,18 @@ void KCrash::setDrKonqiEnabled(bool enab
{
s_launchDrKonqi = enabled;
if (s_launchDrKonqi && !s_drkonqiPath) {
+
+ s_drkonqiPath = qstrdup(QFile::encodeName(KStandardDirs::findExe("drkonqi", QFile::decodeName("/usr/libexec/drkonqi"))).constData());
+
+ if (!s_drkonqiPath) {
+
s_drkonqiPath = qstrdup(QFile::encodeName(KStandardDirs::findExe("drkonqi")).constData());
if (!s_drkonqiPath) {
kError() << "Could not find drkonqi";
s_launchDrKonqi = false;
}
+
+ }
}
//we need at least the default crash handler to launch drkonqi

View File

@ -0,0 +1,999 @@
From a015996bb55bbd63d94b227a2c82d0d97cd86ae8 Mon Sep 17 00:00:00 2001
From: Wolfgang Bauer <wbauer@tmo.at>
Date: Wed, 25 Oct 2017 07:49:32 +0200
Subject: [PATCH] Make kssl compile against OpenSSL 1.1.0
OpenSSL 1.1.0 contains some source-incompatible changes, most notably
making most of the structures opaque and introducing new getter/setter
functions to modify the structures. This patch adds some of the newly
introduced functions to the KOpenSSL class and modifies the code to
call them. The implementation of those newly introduced methods
contains both OpenSSL < 1.1 compatible code (direct structure member
access) and calls to real functions resolved from OpenSSL>= 1.1
library. Which implementation is used is decided at compile time. Some
of the existing methods were renamed to match the OpenSSL 1.1 naming
and to avoid conflicts with backward-compatibility names provided by
OpenSSL 1.1.
KSSLCertificate::toNetscape() returns empty result when built against
OpenSSL 1.1 since I wasn't able to find a proper equivalent in OpenSSL
1.1 API (and there does not seem to be any).
(Backport of commit 9a990c69c606126bcd60cd7718462aec2a92460d from
kdelibs4support)
---
kio/kssl/kopenssl.cpp | 250 ++++++++++++++++++++++++++++++++++++++-----
kio/kssl/kopenssl.h | 80 ++++++++++++--
kio/kssl/kssl.cpp | 4 -
kio/kssl/ksslcallback.c | 6 +-
kio/kssl/ksslcertchain.cpp | 53 +++------
kio/kssl/ksslcertificate.cpp | 68 +++++++-----
6 files changed, 351 insertions(+), 110 deletions(-)
diff --git a/kio/kssl/kopenssl.cpp b/kio/kssl/kopenssl.cpp
index e3ca535b25..8f8b921159 100644
--- a/kio/kssl/kopenssl.cpp
+++ b/kio/kssl/kopenssl.cpp
@@ -75,18 +75,26 @@ static void (*K_X509_STORE_CTX_free) (X509_STORE_CTX *) = 0L;
static int (*K_X509_verify_cert) (X509_STORE_CTX *) = 0L;
static X509_STORE_CTX *(*K_X509_STORE_CTX_new) (void) = 0L;
static void (*K_X509_STORE_free) (X509_STORE *) = 0L;
+static void (*K_X509_STORE_set_verify_cb)(X509_STORE *, int (*)(int, X509_STORE_CTX *)) = 0L;
static X509_STORE *(*K_X509_STORE_new) (void) = 0L;
static void (*K_X509_free) (X509 *) = 0L;
static char *(*K_X509_NAME_oneline) (X509_NAME *,char *,int) = 0L;
static X509_NAME *(*K_X509_get_subject_name) (X509 *) = 0L;
static X509_NAME *(*K_X509_get_issuer_name) (X509 *) = 0L;
+static void (*K_X509_get0_signature)(const ASN1_BIT_STRING **psig, const X509_ALGOR **palg, const X509 *x) = 0L;
static X509_LOOKUP *(*K_X509_STORE_add_lookup) (X509_STORE *, X509_LOOKUP_METHOD *) = 0L;
static X509_LOOKUP_METHOD *(*K_X509_LOOKUP_file)(void) = 0L;
static void (*K_X509_LOOKUP_free)(X509_LOOKUP *) = 0L;
static int (*K_X509_LOOKUP_ctrl)(X509_LOOKUP *, int, const char *, long, char **) = 0L;
static void (*K_X509_STORE_CTX_init)(X509_STORE_CTX *, X509_STORE *, X509 *, STACK_OF(X509) *) = 0L;
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
static void (*K_CRYPTO_free) (void *) = 0L;
+#else
+static void (*K_CRYPTO_free)(void *, const char *, int) = 0L;
+#endif
static X509* (*K_X509_dup) (X509 *) = 0L;
+static ASN1_TIME *(*K_X509_getm_notBefore)(const X509 *) = 0L;
+static ASN1_TIME *(*K_X509_getm_notAfter)(const X509 *) = 0L;
static BIO_METHOD *(*K_BIO_s_mem) (void) = 0L;
static BIO* (*K_BIO_new) (BIO_METHOD *) = 0L;
static BIO* (*K_BIO_new_fp) (FILE *, int) = 0L;
@@ -118,13 +126,16 @@ static int (*K_SSL_get_error) (SSL*, int) = 0L;
static STACK_OF(X509)* (*K_SSL_get_peer_cert_chain) (SSL*) = 0L;
static void (*K_X509_STORE_CTX_set_chain) (X509_STORE_CTX *, STACK_OF(X509)*) = 0L;
static void (*K_X509_STORE_CTX_set_purpose) (X509_STORE_CTX *, int) = 0L;
-static void (*K_sk_free) (STACK*) = 0L;
-static int (*K_sk_num) (STACK*) = 0L;
-static char* (*K_sk_pop) (STACK*) = 0L;
-static char* (*K_sk_value) (STACK*, int) = 0L;
-static STACK* (*K_sk_new) (int (*)()) = 0L;
-static int (*K_sk_push) (STACK*, char*) = 0L;
-static STACK* (*K_sk_dup) (STACK *) = 0L;
+static X509 *(*K_X509_STORE_CTX_get_current_cert)(X509_STORE_CTX *) = 0L;
+static void (*K_X509_STORE_CTX_set_error)(X509_STORE_CTX *, int) = 0L;
+static int (*K_X509_STORE_CTX_get_error)(X509_STORE_CTX *) = 0L;
+static void (*K_OPENSSL_sk_free)(STACK *) = 0L;
+static int (*K_OPENSSL_sk_num)(STACK *) = 0L;
+static char *(*K_OPENSSL_sk_pop)(STACK *) = 0L;
+static char *(*K_OPENSSL_sk_value)(STACK *, int) = 0L;
+static STACK *(*K_OPENSSL_sk_new)(int (*)()) = 0L;
+static int (*K_OPENSSL_sk_push)(STACK *, char *) = 0L;
+static STACK *(*K_OPENSSL_sk_dup)(STACK *) = 0L;
static char * (*K_i2s_ASN1_INTEGER) (X509V3_EXT_METHOD *, ASN1_INTEGER *) =0L;
static ASN1_INTEGER * (*K_X509_get_serialNumber) (X509 *) = 0L;
static EVP_PKEY *(*K_X509_get_pubkey)(X509 *) = 0L;
@@ -164,6 +175,12 @@ static int (*K_X509_PURPOSE_get_id)(X509_PURPOSE *) = 0L;
static int (*K_X509_check_purpose)(X509*,int,int) = 0L;
static X509_PURPOSE* (*K_X509_PURPOSE_get0)(int) = 0L;
static int (*K_EVP_PKEY_assign)(EVP_PKEY*, int, char*) = 0L;
+static int (*K_EVP_PKEY_base_id)(EVP_PKEY *) = 0L;
+static RSA *(*K_EVP_PKEY_get0_RSA)(EVP_PKEY *) = 0L;
+static void (*K_RSA_get0_key)(RSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **) = 0L;
+static DSA *(*K_EVP_PKEY_get0_DSA)(EVP_PKEY *) = 0L;
+static void (*K_DSA_get0_pqg)(DSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **) = 0L;
+static void (*K_DSA_get0_key)(DSA *, const BIGNUM **, const BIGNUM **) = 0L;
static int (*K_X509_REQ_set_pubkey)(X509_REQ*, EVP_PKEY*) = 0L;
static RSA *(*K_RSA_generate_key)(int, unsigned long, void (*)(int,int,void *), void *) = 0L;
static int (*K_i2d_X509_REQ_fp)(FILE*, X509_REQ*) = 0L;
@@ -410,7 +427,11 @@ KOpenSSLProxy::KOpenSSLProxy()
K_RAND_load_file = (int (*)(const char *, long)) d->cryptoLib->resolveFunction("RAND_load_file");
K_RAND_file_name = (const char* (*)(char *, size_t)) d->cryptoLib->resolveFunction("RAND_file_name");
K_RAND_write_file = (int (*)(const char *)) d->cryptoLib->resolveFunction("RAND_write_file");
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
K_CRYPTO_free = (void (*) (void *)) d->cryptoLib->resolveFunction("CRYPTO_free");
+#else
+ K_CRYPTO_free = (void (*)(void *, const char *, int)) d->cryptoLib->resolveFunction("CRYPTO_free");
+#endif
K_d2i_X509 = (X509 * (*)(X509 **,unsigned char **,long)) d->cryptoLib->resolveFunction("d2i_X509");
K_i2d_X509 = (int (*)(X509 *,unsigned char **)) d->cryptoLib->resolveFunction("i2d_X509");
K_X509_cmp = (int (*)(X509 *, X509 *)) d->cryptoLib->resolveFunction("X509_cmp");
@@ -419,15 +440,19 @@ KOpenSSLProxy::KOpenSSLProxy()
K_X509_verify_cert = (int (*) (X509_STORE_CTX *)) d->cryptoLib->resolveFunction("X509_verify_cert");
K_X509_STORE_new = (X509_STORE * (*) (void)) d->cryptoLib->resolveFunction("X509_STORE_new");
K_X509_STORE_free = (void (*) (X509_STORE *)) d->cryptoLib->resolveFunction("X509_STORE_free");
+ K_X509_STORE_set_verify_cb = (void (*)(X509_STORE *, int (*)(int, X509_STORE_CTX *))) d->cryptoLib->resolveFunction("X509_STORE_set_verify_cb");
K_X509_NAME_oneline = (char * (*) (X509_NAME *,char *,int)) d->cryptoLib->resolveFunction("X509_NAME_oneline");
K_X509_get_subject_name = (X509_NAME * (*) (X509 *)) d->cryptoLib->resolveFunction("X509_get_subject_name");
K_X509_get_issuer_name = (X509_NAME * (*) (X509 *)) d->cryptoLib->resolveFunction("X509_get_issuer_name");
+ K_X509_get0_signature = (void (*)(const ASN1_BIT_STRING **, const X509_ALGOR **, const X509 *)) d->cryptoLib->resolveFunction("X509_get0_signature");
K_X509_STORE_add_lookup = (X509_LOOKUP *(*) (X509_STORE *, X509_LOOKUP_METHOD *)) d->cryptoLib->resolveFunction("X509_STORE_add_lookup");
K_X509_LOOKUP_file = (X509_LOOKUP_METHOD *(*)(void)) d->cryptoLib->resolveFunction("X509_LOOKUP_file");
K_X509_LOOKUP_free = (void (*)(X509_LOOKUP *)) d->cryptoLib->resolveFunction("X509_LOOKUP_free");
K_X509_LOOKUP_ctrl = (int (*)(X509_LOOKUP *, int, const char *, long, char **)) d->cryptoLib->resolveFunction("X509_LOOKUP_ctrl");
K_X509_STORE_CTX_init = (void (*)(X509_STORE_CTX *, X509_STORE *, X509 *, STACK_OF(X509) *)) d->cryptoLib->resolveFunction("X509_STORE_CTX_init");
K_X509_dup = (X509* (*)(X509*)) d->cryptoLib->resolveFunction("X509_dup");
+ K_X509_getm_notBefore = (ASN1_TIME *(*)(const X509 *)) d->cryptoLib->resolveFunction("X509_getm_notBefore");
+ K_X509_getm_notAfter = (ASN1_TIME *(*)(const X509 *)) d->cryptoLib->resolveFunction("X509_getm_notAfter");
K_BIO_s_mem = (BIO_METHOD *(*) (void)) d->cryptoLib->resolveFunction("BIO_s_mem");
K_BIO_new = (BIO* (*)(BIO_METHOD *)) d->cryptoLib->resolveFunction("BIO_new");
K_BIO_new_fp = (BIO* (*)(FILE*, int)) d->cryptoLib->resolveFunction("BIO_new_fp");
@@ -454,13 +479,26 @@ KOpenSSLProxy::KOpenSSLProxy()
K_X509_REQ_new = (X509_REQ* (*)()) d->cryptoLib->resolveFunction("X509_REQ_new");
K_X509_STORE_CTX_set_chain = (void (*)(X509_STORE_CTX *, STACK_OF(X509)*)) d->cryptoLib->resolveFunction("X509_STORE_CTX_set_chain");
K_X509_STORE_CTX_set_purpose = (void (*)(X509_STORE_CTX *, int)) d->cryptoLib->resolveFunction("X509_STORE_CTX_set_purpose");
- K_sk_free = (void (*) (STACK *)) d->cryptoLib->resolveFunction("sk_free");
- K_sk_num = (int (*) (STACK *)) d->cryptoLib->resolveFunction("sk_num");
- K_sk_pop = (char* (*) (STACK *)) d->cryptoLib->resolveFunction("sk_pop");
- K_sk_value = (char* (*) (STACK *, int)) d->cryptoLib->resolveFunction("sk_value");
- K_sk_new = (STACK* (*) (int (*)())) d->cryptoLib->resolveFunction("sk_new");
- K_sk_push = (int (*) (STACK*, char*)) d->cryptoLib->resolveFunction("sk_push");
- K_sk_dup = (STACK* (*) (STACK *)) d->cryptoLib->resolveFunction("sk_dup");
+ K_X509_STORE_CTX_get_current_cert = (X509 * (*)(X509_STORE_CTX *)) d->cryptoLib->resolveFunction("X509_STORE_CTX_get_current_cert");
+ K_X509_STORE_CTX_set_error = (void (*)(X509_STORE_CTX *, int)) d->cryptoLib->resolveFunction("X509_STORE_CTX_set_error");
+ K_X509_STORE_CTX_get_error = (int (*)(X509_STORE_CTX *)) d->cryptoLib->resolveFunction("X509_STORE_CTX_get_error");
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
+ K_OPENSSL_sk_free = (void (*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_free");
+ K_OPENSSL_sk_num = (int (*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_num");
+ K_OPENSSL_sk_pop = (char *(*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_pop");
+ K_OPENSSL_sk_value = (char *(*)(STACK *, int)) d->cryptoLib->resolveFunction("OPENSSL_sk_value");
+ K_OPENSSL_sk_new = (STACK * (*)(int (*)())) d->cryptoLib->resolveFunction("OPENSSL_sk_new");
+ K_OPENSSL_sk_push = (int (*)(STACK *, char *)) d->cryptoLib->resolveFunction("OPENSSL_sk_push");
+ K_OPENSSL_sk_dup = (STACK * (*)(STACK *)) d->cryptoLib->resolveFunction("OPENSSL_sk_dup");
+#else
+ K_OPENSSL_sk_free = (void (*)(STACK *)) d->cryptoLib->resolveFunction("sk_free");
+ K_OPENSSL_sk_num = (int (*)(STACK *)) d->cryptoLib->resolveFunction("sk_num");
+ K_OPENSSL_sk_pop = (char *(*)(STACK *)) d->cryptoLib->resolveFunction("sk_pop");
+ K_OPENSSL_sk_value = (char *(*)(STACK *, int)) d->cryptoLib->resolveFunction("sk_value");
+ K_OPENSSL_sk_new = (STACK * (*)(int (*)())) d->cryptoLib->resolveFunction("sk_new");
+ K_OPENSSL_sk_push = (int (*)(STACK *, char *)) d->cryptoLib->resolveFunction("sk_push");
+ K_OPENSSL_sk_dup = (STACK * (*)(STACK *)) d->cryptoLib->resolveFunction("sk_dup");
+#endif
K_i2s_ASN1_INTEGER = (char *(*) (X509V3_EXT_METHOD *, ASN1_INTEGER *)) d->cryptoLib->resolveFunction("i2s_ASN1_INTEGER");
K_X509_get_serialNumber = (ASN1_INTEGER * (*) (X509 *)) d->cryptoLib->resolveFunction("X509_get_serialNumber");
K_X509_get_pubkey = (EVP_PKEY *(*)(X509 *)) d->cryptoLib->resolveFunction("X509_get_pubkey");
@@ -504,6 +542,12 @@ KOpenSSLProxy::KOpenSSLProxy()
K_X509_check_purpose = (int (*)(X509*,int,int)) d->cryptoLib->resolveFunction("X509_check_purpose");
K_X509_PURPOSE_get0 = (X509_PURPOSE *(*)(int)) d->cryptoLib->resolveFunction("X509_PURPOSE_get0");
K_EVP_PKEY_assign = (int (*)(EVP_PKEY*, int, char*)) d->cryptoLib->resolveFunction("EVP_PKEY_assign");
+ K_EVP_PKEY_base_id = (int (*)(EVP_PKEY *)) d->cryptoLib->resolveFunction("EVP_PKEY_base_id");
+ K_EVP_PKEY_get0_RSA = (RSA *(*)(EVP_PKEY *)) d->cryptoLib->resolveFunction("EVP_PKEY_get0_RSA");
+ K_RSA_get0_key = (void (*)(RSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **)) d->cryptoLib->resolveFunction("ESA_get0_key");
+ K_EVP_PKEY_get0_DSA = (DSA *(*)(EVP_PKEY *)) d->cryptoLib->resolveFunction("EVP_PKEY_get0_DSA");
+ K_DSA_get0_pqg = (void (*)(DSA *, const BIGNUM **, const BIGNUM **, const BIGNUM **)) d->cryptoLib->resolveFunction("DSA_get0_pqg");
+ K_DSA_get0_key = (void (*)(DSA *, const BIGNUM **, const BIGNUM **)) d->cryptoLib->resolveFunction("DSA_get0_key");
K_X509_REQ_set_pubkey = (int (*)(X509_REQ*, EVP_PKEY*)) d->cryptoLib->resolveFunction("X509_REQ_set_pubkey");
K_RSA_generate_key = (RSA* (*)(int, unsigned long, void (*)(int,int,void *), void *)) d->cryptoLib->resolveFunction("RSA_generate_key");
K_i2d_X509_REQ_fp = (int (*)(FILE *, X509_REQ *)) d->cryptoLib->resolveFunction("i2d_X509_REQ_fp");
@@ -866,6 +910,16 @@ void KOpenSSLProxy::X509_STORE_free(X509_STORE *v) {
}
+void KOpenSSLProxy::X509_STORE_set_verify_cb(X509_STORE *store, int (*verify_cb)(int, X509_STORE_CTX *))
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ X509_STORE_set_verify_cb_func(store, verify_cb);
+#else
+ if (K_X509_STORE_set_verify_cb) (K_X509_STORE_set_verify_cb)(store, verify_cb);
+#endif
+}
+
+
X509_STORE_CTX *KOpenSSLProxy::X509_STORE_CTX_new(void) {
if (K_X509_STORE_CTX_new) return (K_X509_STORE_CTX_new)();
return 0L;
@@ -906,6 +960,17 @@ X509_NAME *KOpenSSLProxy::X509_get_issuer_name(X509 *a) {
}
+void KOpenSSLProxy::X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **algor, const X509 *x)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (psig) *psig = x->signature;
+ if (algor) *algor = x->sig_alg;
+#else
+ if (K_X509_get0_signature) return (K_X509_get0_signature)(psig, algor, x);
+#endif
+}
+
+
X509_LOOKUP *KOpenSSLProxy::X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m) {
if (K_X509_STORE_add_lookup) return (K_X509_STORE_add_lookup)(v,m);
return 0L;
@@ -934,9 +999,16 @@ void KOpenSSLProxy::X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store,
}
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
void KOpenSSLProxy::CRYPTO_free(void *x) {
if (K_CRYPTO_free) (K_CRYPTO_free)(x);
}
+#else
+void KOpenSSLProxy::CRYPTO_free(void *x, const char *file, int line)
+{
+ if (K_CRYPTO_free) K_CRYPTO_free(x, file, line);
+}
+#endif
X509 *KOpenSSLProxy::X509_dup(X509 *x509) {
@@ -945,6 +1017,28 @@ X509 *KOpenSSLProxy::X509_dup(X509 *x509) {
}
+ASN1_TIME *KOpenSSLProxy::X509_getm_notBefore(const X509 *x)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return X509_get_notBefore(x);
+#else
+ if (K_X509_getm_notBefore) return (K_X509_getm_notBefore)(x);
+ else return 0L;
+#endif
+}
+
+
+ASN1_TIME *KOpenSSLProxy::X509_getm_notAfter(const X509 *x)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return X509_get_notAfter(x);
+#else
+ if (K_X509_getm_notAfter) return (K_X509_getm_notAfter)(x);
+ else return 0L;
+#endif
+}
+
+
BIO *KOpenSSLProxy::BIO_new(BIO_METHOD *type) {
if (K_BIO_new) return (K_BIO_new)(type);
else return 0L;
@@ -1093,25 +1187,25 @@ STACK_OF(X509) *KOpenSSLProxy::SSL_get_peer_cert_chain(SSL *s) {
}
-void KOpenSSLProxy::sk_free(STACK *s) {
- if (K_sk_free) (K_sk_free)(s);
+void KOpenSSLProxy::OPENSSL_sk_free(STACK *s) {
+ if (K_OPENSSL_sk_free) (K_OPENSSL_sk_free)(s);
}
-int KOpenSSLProxy::sk_num(STACK *s) {
- if (K_sk_num) return (K_sk_num)(s);
+int KOpenSSLProxy::OPENSSL_sk_num(STACK *s) {
+ if (K_OPENSSL_sk_num) return (K_OPENSSL_sk_num)(s);
else return -1;
}
-char *KOpenSSLProxy::sk_pop(STACK *s) {
- if (K_sk_pop) return (K_sk_pop)(s);
+char *KOpenSSLProxy::OPENSSL_sk_pop(STACK *s) {
+ if (K_OPENSSL_sk_pop) return (K_OPENSSL_sk_pop)(s);
else return 0L;
}
-char *KOpenSSLProxy::sk_value(STACK *s, int n) {
- if (K_sk_value) return (K_sk_value)(s, n);
+char *KOpenSSLProxy::OPENSSL_sk_value(STACK *s, int n) {
+ if (K_OPENSSL_sk_value) return (K_OPENSSL_sk_value)(s, n);
else return 0L;
}
@@ -1125,20 +1219,52 @@ void KOpenSSLProxy::X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose) {
}
-STACK* KOpenSSLProxy::sk_dup(STACK *s) {
- if (K_sk_dup) return (K_sk_dup)(s);
+X509 *KOpenSSLProxy::X509_STORE_CTX_get_current_cert(X509_STORE_CTX *v)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return v->current_cert;
+#else
+ if (K_X509_STORE_CTX_get_current_cert) return (K_X509_STORE_CTX_get_current_cert)(v);
+ else return 0L;
+#endif
+}
+
+
+void KOpenSSLProxy::X509_STORE_CTX_set_error(X509_STORE_CTX *v, int error)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ v->error = error;
+#else
+ if (K_X509_STORE_CTX_set_error) (K_X509_STORE_CTX_set_error)(v, error);
+#endif
+}
+
+
+int KOpenSSLProxy::X509_STORE_CTX_get_error(X509_STORE_CTX *v)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return v->error;
+#else
+ if (K_X509_STORE_CTX_get_error) return (K_X509_STORE_CTX_get_error)(v);
+ else return 0;
+#endif
+}
+
+
+STACK* KOpenSSLProxy::OPENSSL_sk_dup(STACK *s) {
+ if (K_OPENSSL_sk_dup) return (K_OPENSSL_sk_dup)(s);
else return 0L;
}
-STACK* KOpenSSLProxy::sk_new(int (*cmp)()) {
- if (K_sk_new) return (K_sk_new)(cmp);
+STACK* KOpenSSLProxy::OPENSSL_sk_new(int (*cmp)()) {
+ if (K_OPENSSL_sk_new) return (K_OPENSSL_sk_new)(cmp);
else return 0L;
}
-int KOpenSSLProxy::sk_push(STACK* s, char* d) {
- if (K_sk_push) return (K_sk_push)(s,d);
+int KOpenSSLProxy::OPENSSL_sk_push(STACK* s, char* d) {
+ if (K_OPENSSL_sk_push) return (K_OPENSSL_sk_push)(s,d);
else return -1;
}
@@ -1423,6 +1549,74 @@ int KOpenSSLProxy::EVP_PKEY_assign(EVP_PKEY *pkey, int type, char *key) {
else return -1;
}
+
+int KOpenSSLProxy::EVP_PKEY_base_id(EVP_PKEY *pkey)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return pkey->type;
+#else
+ if (K_EVP_PKEY_base_id) return (K_EVP_PKEY_base_id)(pkey);
+ else return 0;
+#endif
+}
+
+
+RSA *KOpenSSLProxy::EVP_PKEY_get0_RSA(EVP_PKEY *pkey)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return pkey->pkey.rsa;
+#else
+ if (K_EVP_PKEY_get0_RSA) return (K_EVP_PKEY_get0_RSA)(pkey);
+ else return 0L;
+#endif
+}
+
+
+void KOpenSSLProxy::RSA_get0_key(RSA *rsa, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (n) *n = rsa->n;
+ if (e) *e = rsa->e;
+ if (d) *d = rsa->d;
+#else
+ if (K_RSA_get0_key) (K_RSA_get0_key)(rsa, n, e, d);
+#endif
+}
+
+
+DSA *KOpenSSLProxy::EVP_PKEY_get0_DSA(EVP_PKEY *pkey)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ return pkey->pkey.dsa;
+#else
+ if (K_EVP_PKEY_get0_DSA) return (K_EVP_PKEY_get0_DSA)(pkey);
+ else return 0L;
+#endif
+}
+
+
+void KOpenSSLProxy::DSA_get0_pqg(DSA *dsa, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (p) *p = dsa->p;
+ if (q) *q = dsa->q;
+ if (g) *g = dsa->g;
+#else
+ if (K_DSA_get0_pqg) (K_DSA_get0_pqg)(dsa, p, q, g);
+#endif
+}
+
+
+void KOpenSSLProxy::DSA_get0_key(DSA *dsa, const BIGNUM **pub_key, const BIGNUM **priv_key)
+{
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
+ if (pub_key) *pub_key = dsa->pub_key;
+ if (priv_key) *priv_key = dsa->priv_key;
+#else
+ if (K_DSA_get0_key) (K_DSA_get0_key)(dsa, pub_key, priv_key);
+#endif
+}
+
int KOpenSSLProxy::X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey) {
if (K_X509_REQ_set_pubkey) return (K_X509_REQ_set_pubkey)(x, pkey);
diff --git a/kio/kssl/kopenssl.h b/kio/kssl/kopenssl.h
index ab05486336..ae3398fbef 100644
--- a/kio/kssl/kopenssl.h
+++ b/kio/kssl/kopenssl.h
@@ -297,6 +297,18 @@ public:
/*
+ * X509_getm_notBefore - get validity start
+ */
+ ASN1_TIME *X509_getm_notBefore(const X509 *x);
+
+
+ /*
+ * X509_getm_notAfter - get validity end
+ */
+ ASN1_TIME *X509_getm_notAfter(const X509 *x);
+
+
+ /*
* X509_STORE_CTX_new - create an X509 store context
*/
X509_STORE_CTX *X509_STORE_CTX_new(void);
@@ -313,11 +325,31 @@ public:
*/
void X509_STORE_CTX_set_chain(X509_STORE_CTX *v, STACK_OF(X509)* x);
+
/*
* X509_STORE_CTX_set_purpose - set the purpose of the certificate
*/
void X509_STORE_CTX_set_purpose(X509_STORE_CTX *v, int purpose);
+
+ /*
+ * X509_STORE_CTX_get_current_cert - get the current certificate
+ */
+ X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *v);
+
+
+ /*
+ * X509_STORE_CTX_set_error - set certificate error
+ */
+ void X509_STORE_CTX_set_error(X509_STORE_CTX *v, int error);
+
+
+ /*
+ * X509_STORE_CTX_get_error - get certificate error
+ */
+ int X509_STORE_CTX_get_error(X509_STORE_CTX *v);
+
+
/*
* X509_verify_cert - verify the certificate
*/
@@ -337,6 +369,12 @@ public:
/*
+ * X509_STORE_set_verify_cb - set verify callback
+ */
+ void X509_STORE_set_verify_cb(X509_STORE *v, int (*verify_cb)(int, X509_STORE_CTX *));
+
+
+ /*
* X509_free - free up an X509
*/
void X509_free(X509 *v);
@@ -361,6 +399,12 @@ public:
/*
+ * X509_get0_signature - return X509 signature and signature algorithm
+ */
+ void X509_get0_signature(const ASN1_BIT_STRING **psig, const X509_ALGOR **palg, const X509 *x);
+
+
+ /*
* X509_STORE_add_lookup - add a lookup file/method to an X509 store
*/
X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m);
@@ -393,7 +437,11 @@ public:
/*
* CRYPTO_free - free up an internally allocated object
*/
+#if OPENSSL_VERSION_NUMBER < 0x10100000L
void CRYPTO_free(void *x);
+#else
+ void CRYPTO_free(void *x, const char *file, int line);
+#endif
/*
* BIO_new - create new BIO
@@ -505,53 +553,53 @@ public:
/*
* Pop off the stack
*/
- char *sk_pop(STACK *s);
+ char *OPENSSL_sk_pop(STACK *s);
/*
* Free the stack
*/
- void sk_free(STACK *s);
+ void OPENSSL_sk_free(STACK *s);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
- void sk_free(void *s) { return sk_free(reinterpret_cast<STACK*>(s)); }
+ void OPENSSL_sk_free(void *s) { return OPENSSL_sk_free(reinterpret_cast<STACK*>(s)); }
#endif
/*
* Number of elements in the stack
*/
- int sk_num(STACK *s);
+ int OPENSSL_sk_num(STACK *s);
/*
* Value of element n in the stack
*/
- char *sk_value(STACK *s, int n);
+ char *OPENSSL_sk_value(STACK *s, int n);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
- char *sk_value(void *s, int n) { return sk_value(reinterpret_cast<STACK*>(s), n); }
+ char *OPENSSL_sk_value(void *s, int n) { return OPENSSL_sk_value(reinterpret_cast<STACK*>(s), n); }
#endif
/*
* Create a new stack
*/
- STACK *sk_new(int (*cmp)());
+ STACK *OPENSSL_sk_new(int (*cmp)());
/*
* Add an element to the stack
*/
- int sk_push(STACK *s, char *d);
+ int OPENSSL_sk_push(STACK *s, char *d);
#if OPENSSL_VERSION_NUMBER >= 0x10000000L
- int sk_push(void *s, void *d) { return sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
+ int OPENSSL_sk_push(void *s, void *d) { return OPENSSL_sk_push(reinterpret_cast<STACK*>(s), reinterpret_cast<char*>(d)); }
#endif
/*
* Duplicate the stack
*/
- STACK *sk_dup(STACK *s);
+ STACK *OPENSSL_sk_dup(STACK *s);
/*
@@ -800,6 +848,18 @@ public:
/*
+ * Get key type
+ */
+ int EVP_PKEY_base_id(EVP_PKEY *pkey);
+
+ RSA *EVP_PKEY_get0_RSA(EVP_PKEY *pkey);
+ void RSA_get0_key(RSA *rsa, const BIGNUM **n, const BIGNUM **e, const BIGNUM **d);
+ DSA *EVP_PKEY_get0_DSA(EVP_PKEY *pkey);
+ void DSA_get0_pqg(DSA *dsa, const BIGNUM **p, const BIGNUM **q, const BIGNUM **g);
+ void DSA_get0_key(DSA *dsa, const BIGNUM **pub_key, const BIGNUM **priv_key);
+
+
+ /*
* Generate a RSA key
*/
RSA *RSA_generate_key(int bits, unsigned long e, void
diff --git a/kio/kssl/kssl.cpp b/kio/kssl/kssl.cpp
index c36db55a42..faba1bb5ab 100644
--- a/kio/kssl/kssl.cpp
+++ b/kio/kssl/kssl.cpp
@@ -55,8 +55,6 @@
#warning "kssl.cc needs to be ported to QSslSocket"
#endif
-#define sk_dup d->kossl->sk_dup
-
class KSSLPrivate {
public:
KSSLPrivate() {
@@ -212,5 +210,3 @@ bool KSSL::doesSSLWork() {
return m_bSSLWorks;
}
-#undef sk_dup
-
diff --git a/kio/kssl/ksslcallback.c b/kio/kssl/ksslcallback.c
index 516b916337..38e94356e8 100644
--- a/kio/kssl/ksslcallback.c
+++ b/kio/kssl/ksslcallback.c
@@ -28,7 +28,7 @@ bool KSSL_X509CallBack_ca_found;
extern "C" {
static int X509Callback(int ok, X509_STORE_CTX *ctx) {
- kDebug(7029) << "X509Callback: ok = " << ok << " error = " << ctx->error << " depth = " << ctx->error_depth;
+ //kDebug(7029) << "X509Callback: ok = " << ok << " error = " << ctx->error << " depth = " << ctx->error_depth;
// Here is how this works. We put "ok = 1;" in any case that we
// don't consider to be an error. In that case, it will return OK
// for the certificate check as long as there are no other critical
@@ -39,14 +39,14 @@ static int X509Callback(int ok, X509_STORE_CTX *ctx) {
if (KSSL_X509CallBack_ca)
{
- if (KOSSL::self()->X509_cmp(ctx->current_cert, KSSL_X509CallBack_ca) != 0)
+ if (KOSSL::self()->X509_cmp(KOSSL::self()->X509_STORE_CTX_get_current_cert(ctx), KSSL_X509CallBack_ca) != 0)
return 1; // Ignore errors for this certificate
KSSL_X509CallBack_ca_found = true;
}
if (!ok) {
- switch (ctx->error) {
+ switch (KOSSL::self()->X509_STORE_CTX_get_error(ctx)) {
case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:
case X509_V_ERR_UNABLE_TO_GET_CRL:
case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:
diff --git a/kio/kssl/ksslcertchain.cpp b/kio/kssl/ksslcertchain.cpp
index 2be7995bf8..cdfab2b5ae 100644
--- a/kio/kssl/ksslcertchain.cpp
+++ b/kio/kssl/ksslcertchain.cpp
@@ -44,16 +44,6 @@
#include <kdebug.h>
#include <QtCore/QStringList>
-#ifdef KSSL_HAVE_SSL
-#define sk_new d->kossl->sk_new
-#define sk_push d->kossl->sk_push
-#define sk_free d->kossl->sk_free
-#define sk_value d->kossl->sk_value
-#define sk_num d->kossl->sk_num
-#define sk_dup d->kossl->sk_dup
-#define sk_pop d->kossl->sk_pop
-#endif
-
class KSSLCertChainPrivate {
public:
KSSLCertChainPrivate() {
@@ -79,11 +69,11 @@ KSSLCertChain::~KSSLCertChain() {
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
for (;;) {
- X509* x5 = sk_X509_pop(x);
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_pop(reinterpret_cast<STACK *>(x)));
if (!x5) break;
d->kossl->X509_free(x5);
}
- sk_X509_free(x);
+ d->kossl->OPENSSL_sk_free(reinterpret_cast<STACK *>(x));
}
#endif
delete d;
@@ -106,7 +96,7 @@ KSSLCertChain *KSSLCertChain::replicate() {
int KSSLCertChain::depth() {
#ifdef KSSL_HAVE_SSL
- return sk_X509_num((STACK_OF(X509)*)_chain);
+ return d->kossl->OPENSSL_sk_num(static_cast<STACK *>(_chain));
#endif
return 0;
}
@@ -123,8 +113,8 @@ QList<KSSLCertificate *> KSSLCertChain::getChain() const {
#ifdef KSSL_HAVE_SSL
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
- for (int i = 0; i < sk_X509_num(x); i++) {
- X509* x5 = sk_X509_value(x, i);
+ for (int i = 0; i < d->kossl->OPENSSL_sk_num(reinterpret_cast<STACK *>(x)); i++) {
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_value(reinterpret_cast<STACK *>(x), i));
if (!x5) continue;
KSSLCertificate *nc = new KSSLCertificate;
nc->setCert(d->kossl->X509_dup(x5));
@@ -142,18 +132,18 @@ void KSSLCertChain::setChain(const QList<KSSLCertificate *>& chain) {
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
for (;;) {
- X509* x5 = sk_X509_pop(x);
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_pop(reinterpret_cast<STACK*>(x)));
if (!x5) break;
d->kossl->X509_free(x5);
}
- sk_X509_free(x);
- _chain = NULL;
+ d->kossl->OPENSSL_sk_free(reinterpret_cast<STACK*>(x));
+ _chain = NULL;
}
if (chain.isEmpty()) return;
- _chain = (void *)sk_new(NULL);
+ _chain = (void *)d->kossl->OPENSSL_sk_new(NULL);
foreach (KSSLCertificate *x, chain) {
- sk_X509_push((STACK_OF(X509)*)_chain, d->kossl->X509_dup(x->getCert()));
+ d->kossl->OPENSSL_sk_push(static_cast<STACK*>(_chain), d->kossl->X509_dup(x->getCert()));
}
#endif
@@ -166,23 +156,23 @@ if (_chain) {
STACK_OF(X509) *x = (STACK_OF(X509) *)_chain;
for (;;) {
- X509* x5 = sk_X509_pop(x);
+ X509 *x5 = reinterpret_cast<X509 *>(d->kossl->OPENSSL_sk_pop(reinterpret_cast<STACK *>(x)));
if (!x5) break;
d->kossl->X509_free(x5);
}
- sk_X509_free(x);
+ d->kossl->OPENSSL_sk_free(reinterpret_cast<STACK *>(x));
_chain = NULL;
}
if (!stack_of_x509) return;
-_chain = (void *)sk_new(NULL);
+_chain = (void *)d->kossl->OPENSSL_sk_new(NULL);
STACK_OF(X509) *x = (STACK_OF(X509) *)stack_of_x509;
- for (int i = 0; i < sk_X509_num(x); i++) {
- X509* x5 = sk_X509_value(x, i);
+ for (int i = 0; i < d->kossl->OPENSSL_sk_num(reinterpret_cast<STACK *>(x)); i++) {
+ X509 *x5 = reinterpret_cast<X509*>(d->kossl->OPENSSL_sk_value(reinterpret_cast<STACK *>(x), i));
if (!x5) continue;
- sk_X509_push((STACK_OF(X509)*)_chain,d->kossl->X509_dup(x5));
+ d->kossl->OPENSSL_sk_push(reinterpret_cast<STACK *>(_chain), d->kossl->X509_dup(x5));
}
#else
@@ -202,14 +192,3 @@ void KSSLCertChain::setCertChain(const QStringList& chain) {
setChain(cl);
}
-
-#ifdef KSSL_HAVE_SSL
-#undef sk_new
-#undef sk_push
-#undef sk_free
-#undef sk_value
-#undef sk_num
-#undef sk_dup
-#undef sk_pop
-#endif
-
diff --git a/kio/kssl/ksslcertificate.cpp b/kio/kssl/ksslcertificate.cpp
index 0d4fbd9cdc..c93d5c5b22 100644
--- a/kio/kssl/ksslcertificate.cpp
+++ b/kio/kssl/ksslcertificate.cpp
@@ -200,14 +200,17 @@ QString KSSLCertificate::getSignatureText() const {
char *s;
int n, i;
- i = d->kossl->OBJ_obj2nid(d->m_cert->sig_alg->algorithm);
+ const X509_ALGOR *algor;
+ const ASN1_BIT_STRING *sig;
+ d->kossl->X509_get0_signature(&sig, &algor, d->m_cert);
+ i = d->kossl->OBJ_obj2nid(algor->algorithm);
rc = i18n("Signature Algorithm: ");
rc += (i == NID_undef)?i18n("Unknown"):QString(d->kossl->OBJ_nid2ln(i));
rc += '\n';
rc += i18n("Signature Contents:");
- n = d->m_cert->signature->length;
- s = (char *)d->m_cert->signature->data;
+ n = sig->length;
+ s = (char *)sig->data;
for (i = 0; i < n; ++i) {
if (i%20 != 0) {
rc += ':';
@@ -233,9 +236,10 @@ void KSSLCertificate::getEmails(QStringList &to) const {
}
STACK *s = d->kossl->X509_get1_email(d->m_cert);
+ const int size = d->kossl->OPENSSL_sk_num(s);
if (s) {
- for(int n=0; n < s->num; n++) {
- to.append(d->kossl->sk_value(s,n));
+ for(int n=0; n < size; n++) {
+ to.append(d->kossl->OPENSSL_sk_value(s,n));
}
d->kossl->X509_email_free(s);
}
@@ -317,13 +321,13 @@ QString rc = "";
EVP_PKEY *pkey = d->kossl->X509_get_pubkey(d->m_cert);
if (pkey) {
#ifndef NO_RSA
- if (pkey->type == EVP_PKEY_RSA) {
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_RSA) {
rc = "RSA";
}
else
#endif
#ifndef NO_DSA
- if (pkey->type == EVP_PKEY_DSA) {
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_DSA) {
rc = "DSA";
}
else
@@ -347,8 +351,10 @@ char *x = NULL;
if (pkey) {
rc = i18nc("Unknown", "Unknown key algorithm");
#ifndef NO_RSA
- if (pkey->type == EVP_PKEY_RSA) {
- x = d->kossl->BN_bn2hex(pkey->pkey.rsa->n);
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_RSA) {
+ const BIGNUM *n, *e;
+ d->kossl->RSA_get0_key(d->kossl->EVP_PKEY_get0_RSA(pkey), &n, &e, NULL);
+ x = d->kossl->BN_bn2hex(n);
rc = i18n("Key type: RSA (%1 bit)", strlen(x)*4) + '\n';
rc += i18n("Modulus: ");
@@ -364,15 +370,18 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.rsa->e);
+ x = d->kossl->BN_bn2hex(e);
rc += i18n("Exponent: 0x") + QLatin1String(x) +
QLatin1String("\n");
d->kossl->OPENSSL_free(x);
}
#endif
#ifndef NO_DSA
- if (pkey->type == EVP_PKEY_DSA) {
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->p);
+ if (d->kossl->EVP_PKEY_base_id(pkey) == EVP_PKEY_DSA) {
+ DSA *dsa = d->kossl->EVP_PKEY_get0_DSA(pkey);
+ const BIGNUM *p, *q, *g;
+ d->kossl->DSA_get0_pqg(dsa, &p, &q, &g);
+ x = d->kossl->BN_bn2hex(p);
// hack - this may not be always accurate
rc = i18n("Key type: DSA (%1 bit)", strlen(x)*4) + '\n';
@@ -389,7 +398,7 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->q);
+ x = d->kossl->BN_bn2hex(q);
rc += i18n("160 bit prime factor: ");
for (unsigned int i = 0; i < strlen(x); i++) {
if (i%40 != 0 && i%2 == 0) {
@@ -403,7 +412,7 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->g);
+ x = d->kossl->BN_bn2hex(g);
rc += QString("g: ");
for (unsigned int i = 0; i < strlen(x); i++) {
if (i%40 != 0 && i%2 == 0) {
@@ -417,7 +426,9 @@ char *x = NULL;
rc += '\n';
d->kossl->OPENSSL_free(x);
- x = d->kossl->BN_bn2hex(pkey->pkey.dsa->pub_key);
+ const BIGNUM *pub_key;
+ d->kossl->DSA_get0_key(dsa, &pub_key, NULL);
+ x = d->kossl->BN_bn2hex(pub_key);
rc += i18n("Public key: ");
for (unsigned int i = 0; i < strlen(x); i++) {
if (i%40 != 0 && i%2 == 0) {
@@ -682,7 +693,7 @@ KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose(KSSLCertifi
return errors;
}
- X509_STORE_set_verify_cb_func(certStore, X509Callback);
+ d->kossl->X509_STORE_set_verify_cb(certStore, X509Callback);
certLookup = d->kossl->X509_STORE_add_lookup(certStore, d->kossl->X509_LOOKUP_file());
if (!certLookup) {
@@ -724,9 +735,9 @@ KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose(KSSLCertifi
KSSL_X509CallBack_ca = ca ? ca->d->m_cert : 0;
KSSL_X509CallBack_ca_found = false;
- certStoreCTX->error = X509_V_OK;
+ d->kossl->X509_STORE_CTX_set_error(certStoreCTX, X509_V_OK);
rc = d->kossl->X509_verify_cert(certStoreCTX);
- int errcode = certStoreCTX->error;
+ int errcode = d->kossl->X509_STORE_CTX_get_error(certStoreCTX);
if (ca && !KSSL_X509CallBack_ca_found) {
ksslv = KSSLCertificate::Irrelevant;
} else {
@@ -739,9 +750,9 @@ KSSLCertificate::KSSLValidationList KSSLCertificate::validateVerbose(KSSLCertifi
d->kossl->X509_STORE_CTX_set_purpose(certStoreCTX,
X509_PURPOSE_NS_SSL_SERVER);
- certStoreCTX->error = X509_V_OK;
+ d->kossl->X509_STORE_CTX_set_error(certStoreCTX, X509_V_OK);
rc = d->kossl->X509_verify_cert(certStoreCTX);
- errcode = certStoreCTX->error;
+ errcode = d->kossl->X509_STORE_CTX_get_error(certStoreCTX);
ksslv = processError(errcode);
}
d->kossl->X509_STORE_CTX_free(certStoreCTX);
@@ -978,7 +989,7 @@ KSSLCertificate::KSSLValidation KSSLCertificate::processError(int ec) {
QString KSSLCertificate::getNotBefore() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QString(X509_get_notBefore(d->m_cert));
+ return ASN1_UTCTIME_QString(d->kossl->X509_getm_notBefore(d->m_cert));
#else
return QString();
#endif
@@ -987,7 +998,7 @@ QString KSSLCertificate::getNotBefore() const {
QString KSSLCertificate::getNotAfter() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QString(X509_get_notAfter(d->m_cert));
+ return ASN1_UTCTIME_QString(d->kossl->X509_getm_notAfter(d->m_cert));
#else
return QString();
#endif
@@ -996,7 +1007,7 @@ QString KSSLCertificate::getNotAfter() const {
QDateTime KSSLCertificate::getQDTNotBefore() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QDateTime(X509_get_notBefore(d->m_cert), NULL);
+ return ASN1_UTCTIME_QDateTime(d->kossl->X509_getm_notBefore(d->m_cert), NULL);
#else
return QDateTime::currentDateTime();
#endif
@@ -1005,7 +1016,7 @@ QDateTime KSSLCertificate::getQDTNotBefore() const {
QDateTime KSSLCertificate::getQDTNotAfter() const {
#ifdef KSSL_HAVE_SSL
- return ASN1_UTCTIME_QDateTime(X509_get_notAfter(d->m_cert), NULL);
+ return ASN1_UTCTIME_QDateTime(d->kossl->X509_getm_notAfter(d->m_cert), NULL);
#else
return QDateTime::currentDateTime();
#endif
@@ -1210,7 +1221,8 @@ typedef struct NETSCAPE_X509_st
// what a piece of crap this is
QByteArray KSSLCertificate::toNetscape() {
QByteArray qba;
-#ifdef KSSL_HAVE_SSL
+ // no equivalent in OpenSSL 1.1.0 (?), so behave as if we had no OpenSSL at all
+#if KSSL_HAVE_SSL && OPENSSL_VERSION_NUMBER < 0x10100000L
NETSCAPE_X509 nx;
ASN1_OCTET_STRING hdr;
KTemporaryFile ktf;
@@ -1293,10 +1305,10 @@ QStringList KSSLCertificate::subjAltNames() const {
return rc;
}
- int cnt = d->kossl->sk_GENERAL_NAME_num(names);
+ int cnt = d->kossl->OPENSSL_sk_num((STACK *)names);
for (int i = 0; i < cnt; i++) {
- const GENERAL_NAME *val = (const GENERAL_NAME *)d->kossl->sk_value(names, i);
+ const GENERAL_NAME *val = (const GENERAL_NAME *)d->kossl->OPENSSL_sk_value(names, i);
if (val->type != GEN_DNS) {
continue;
}
@@ -1308,7 +1320,7 @@ QStringList KSSLCertificate::subjAltNames() const {
rc += s;
}
}
- d->kossl->sk_free(names);
+ d->kossl->OPENSSL_sk_free(names);
#endif
return rc;
}
--
2.13.6

View File

@ -0,0 +1,27 @@
diff -up kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp.myspell_paths kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp
--- kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp.myspell_paths 2015-05-28 20:27:39.000000000 -0500
+++ kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspellclient.cpp 2015-06-04 17:59:10.824869047 -0500
@@ -52,7 +52,7 @@ SpellerPlugin *HunspellClient::createSpe
QStringList HunspellClient::languages() const
{
QStringList lst;
- QDir dir("/usr/share/myspell/dicts/");
+ QDir dir("/usr/share/myspell/");
if(dir.exists())
{
QStringList lstDic = dir.entryList(QStringList("*.dic"), QDir::Files );
diff -up kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp.myspell_paths kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp
--- kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp.myspell_paths 2015-05-28 20:27:39.000000000 -0500
+++ kdelibs-4.14.9/sonnet/plugins/hunspell/kspell_hunspelldict.cpp 2015-06-04 17:58:49.055774079 -0500
@@ -31,9 +31,9 @@ HunspellDict::HunspellDict( const QStrin
: SpellerPlugin(lang), m_speller(0)
{
kDebug()<<" HunspellDict::HunspellDict( const QString& lang ):"<<lang;
- QString dic=QString("/usr/share/myspell/dicts/%1.dic").arg(lang);
+ QString dic=QString("/usr/share/myspell/%1.dic").arg(lang);
if (QFileInfo(dic).exists())
- m_speller = new Hunspell(QString("/usr/share/myspell/dicts/%1.aff").arg(lang).toUtf8().constData(),dic.toUtf8().constData());
+ m_speller = new Hunspell(QString("/usr/share/myspell/%1.aff").arg(lang).toUtf8().constData(),dic.toUtf8().constData());
else
m_speller = 0;
kDebug()<<" dddddd "<<m_speller;

View File

@ -1,12 +0,0 @@
diff -up kdelibs-4.9.3/doc/common/Doxyfile.global.me kdelibs-4.9.3/doc/common/Doxyfile.global
--- kdelibs-4.9.3/doc/common/Doxyfile.global.me 2012-12-04 16:57:09.239184154 +0100
+++ kdelibs-4.9.3/doc/common/Doxyfile.global 2012-12-04 16:57:13.157191451 +0100
@@ -1392,7 +1392,7 @@ HIDE_UNDOC_RELATIONS = NO
# toolkit from AT&T and Lucent Bell Labs. The other options in this section
# have no effect if this option is set to NO (the default)
-HAVE_DOT = YES
+HAVE_DOT = NO
# By default doxygen will write a font called FreeSans.ttf to the output
# directory and reference it in all dot files that doxygen generates. This

View File

@ -1,49 +0,0 @@
diff -up kdelibs-4.9.97/kdecore/kernel/kstandarddirs.cpp.libexecdir kdelibs-4.9.97/kdecore/kernel/kstandarddirs.cpp
--- kdelibs-4.9.97/kdecore/kernel/kstandarddirs.cpp.libexecdir 2012-12-17 08:14:17.000000000 -0600
+++ kdelibs-4.9.97/kdecore/kernel/kstandarddirs.cpp 2013-01-03 14:56:38.768459213 -0600
@@ -1871,7 +1871,7 @@ void KStandardDirs::addKDEDefaults()
addResourceType(types_string + types_indices[index], 0, types_string + types_indices[index+1], true);
index+=2;
}
- addResourceType("exe", "lib", "kde4/libexec", true );
+ addResourceType("exe", 0, "libexec/kde4", true );
addResourceDir("home", QDir::homePath(), false);
diff -up kdelibs-4.9.97/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir kdelibs-4.9.97/kdecore/kernel/kstandarddirs_unix.cpp
--- kdelibs-4.9.97/kdecore/kernel/kstandarddirs_unix.cpp.libexecdir 2012-12-17 08:14:16.000000000 -0600
+++ kdelibs-4.9.97/kdecore/kernel/kstandarddirs_unix.cpp 2013-01-03 14:56:38.768459213 -0600
@@ -63,7 +63,7 @@ QString KStandardDirs::installPath(const
if (strcmp("lib", type) == 0)
return QFile::decodeName(LIB_INSTALL_DIR "/");
if (strcmp("libexec", type) == 0)
- return QFile::decodeName(KDEDIR "/lib" KDELIBSUFF "/kde4/libexec/");
+ return QFile::decodeName(LIBEXEC_INSTALL_DIR "/");
if (strcmp("locale", type) == 0)
return QFile::decodeName(LOCALE_INSTALL_DIR "/");
break;
diff -up kdelibs-4.9.97/kdecore/tests/kstandarddirstest.cpp.libexecdir kdelibs-4.9.97/kdecore/tests/kstandarddirstest.cpp
--- kdelibs-4.9.97/kdecore/tests/kstandarddirstest.cpp.libexecdir 2012-12-17 08:14:17.000000000 -0600
+++ kdelibs-4.9.97/kdecore/tests/kstandarddirstest.cpp 2013-01-03 14:56:38.769459202 -0600
@@ -96,8 +96,9 @@ void KStandarddirsTest::testFindResource
#define KIOSLAVE "bin/kioslave.exe"
#else
#define EXT ""
-#define KIOSLAVE "kde4/libexec/kioslave"
+#define KIOSLAVE "libexec/kde4/kioslave"
#endif
+
const QString bin = KGlobal::dirs()->findResource( "exe", "kioslave" EXT );
QVERIFY( !bin.isEmpty() );
QVERIFY( bin.endsWith( KIOSLAVE ) );
@@ -231,7 +232,8 @@ void KStandarddirsTest::testFindExe()
// findExe with a result in libexec
const QString lnusertemp = KGlobal::dirs()->findExe( "lnusertemp" );
QVERIFY( !lnusertemp.isEmpty() );
- QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY ) );
+ QVERIFY( lnusertemp.endsWith( "lib" KDELIBSUFF "/kde4/libexec/lnusertemp" EXT, PATH_SENSITIVITY )
+ || lnusertemp.endsWith( "libexec/kde4/lnusertemp" EXT, PATH_SENSITIVITY ) );
#endif
#ifndef Q_OS_MAC // kdeinit4 is a bundle on Mac, so the below doesn't work
diff -up kdelibs-4.9.97/kio/tests/krununittest.cpp.libexecdir kdelibs-4.9.97/kio/tests/krununittest.cpp

View File

@ -0,0 +1,44 @@
diff --git a/solid/solid/backends/upower/upowerbattery.cpp b/solid/solid/backends/upower/upowerbattery.cpp
index 7b5bdc4..8bd9343 100644
--- a/solid/solid/backends/upower/upowerbattery.cpp
+++ b/solid/solid/backends/upower/upowerbattery.cpp
@@ -123,6 +123,7 @@ Solid::Battery::ChargeState Battery::chargeState() const
void Battery::slotChanged()
{
if (m_device) {
+ const QString udi = m_device.data()->udi();
const int old_chargePercent = m_chargePercent;
const int old_capacity = m_capacity;
const Solid::Battery::ChargeState old_chargeState = m_chargeState;
@@ -132,26 +133,26 @@ void Battery::slotChanged()
if (old_chargePercent != m_chargePercent)
{
- emit chargePercentChanged(m_chargePercent, m_device.data()->udi());
+ emit chargePercentChanged(m_chargePercent, udi);
}
if (old_capacity != m_capacity) {
- emit capacityChanged(m_capacity, m_device.data()->udi());
+ emit capacityChanged(m_capacity, udi);
}
if (old_chargeState != m_chargeState)
{
- emit chargeStateChanged(m_chargeState, m_device.data()->udi());
+ emit chargeStateChanged(m_chargeState, udi);
}
if (old_isPlugged != m_isPlugged)
{
- emit plugStateChanged(m_isPlugged, m_device.data()->udi());
+ emit plugStateChanged(m_isPlugged, udi);
}
if (old_isPowerSupply != m_isPowerSupply)
{
- emit powerSupplyStateChanged(m_isPowerSupply, m_device.data()->udi());
+ emit powerSupplyStateChanged(m_isPowerSupply, udi);
}
}
}

View File

@ -0,0 +1,128 @@
diff -up kdelibs-4.14.23/mimetypes/kde.xml.no_fake_mimetypes kdelibs-4.14.23/mimetypes/kde.xml
--- kdelibs-4.14.23/mimetypes/kde.xml.no_fake_mimetypes 2016-08-16 09:04:01.000000000 -0500
+++ kdelibs-4.14.23/mimetypes/kde.xml 2016-08-28 08:39:55.307237091 -0500
@@ -1786,124 +1786,6 @@ Notes:
<glob pattern="*.abc"/>
</mime-type>
- <!-- all/ fake mime types -->
- <mime-type type="all/all">
- <comment>all files and folders</comment>
- <comment xml:lang="ar">كل الملفات و المجلدات</comment>
- <comment xml:lang="ast">tolos ficheros y carpetes</comment>
- <comment xml:lang="bg">всички файлове и папки</comment>
- <comment xml:lang="bs">sve datoteke i direktorije</comment>
- <comment xml:lang="ca">tots els fitxers i carpetes</comment>
- <comment xml:lang="ca@valencia">tots els fitxers i carpetes</comment>
- <comment xml:lang="cs">všechny soubory a složky</comment>
- <comment xml:lang="da">alle filer og mapper</comment>
- <comment xml:lang="de">Alle Dateien und Ordner</comment>
- <comment xml:lang="el">Όλα τα αρχεία και οι φάκελοι</comment>
- <comment xml:lang="en_GB">all files and folders</comment>
- <comment xml:lang="es">todos los archivos y carpetas</comment>
- <comment xml:lang="et">kõik failid ja kataloogid</comment>
- <comment xml:lang="eu">fitxategi eta karpeta denak</comment>
- <comment xml:lang="fi">kaikki tiedostot ja kansiot</comment>
- <comment xml:lang="fr">Tous les fichiers et les dossiers</comment>
- <comment xml:lang="ga">gach comhad agus fillteán</comment>
- <comment xml:lang="gl">todos os ficheiros e cartafoles</comment>
- <comment xml:lang="hr">sve datoteke i direktoriji</comment>
- <comment xml:lang="hu">minden fájl és mappa</comment>
- <comment xml:lang="ia">omne files e dossieres</comment>
- <comment xml:lang="is">allar skrár og möppur</comment>
- <comment xml:lang="it">tutti i file e le cartelle</comment>
- <comment xml:lang="ja">すべてのファイルとフォルダ</comment>
- <comment xml:lang="kk">бүкіл файлдар мен қапшықтар</comment>
- <comment xml:lang="km">ឯកសារ និង​ថត​ទាំង​អស់</comment>
- <comment xml:lang="ko">모든 파일과 폴더</comment>
- <comment xml:lang="lt">visi failai ir aplankai</comment>
- <comment xml:lang="lv">visi faili un mapes</comment>
- <comment xml:lang="ml">എല്ലാ ഫയലും ഫോള്‍ഡറുകളും</comment>
- <comment xml:lang="mr">सर्व फाईल्स व संचयीका</comment>
- <comment xml:lang="nb">al.le filer og mapper</comment>
- <comment xml:lang="nds">All Dateien un Ornern</comment>
- <comment xml:lang="nl">alle bestanden en mappen</comment>
- <comment xml:lang="nn">alle filer og mapper</comment>
- <comment xml:lang="pa">ਸਭ ਫਾਇਲਾਂ ਅਤੇ ਫੋਲਡਰ</comment>
- <comment xml:lang="pl">wszystkie pliki i katalogi</comment>
- <comment xml:lang="pt">todos os ficheiros e pastas</comment>
- <comment xml:lang="pt_BR">todos os arquivos e pastas</comment>
- <comment xml:lang="ro">toate fișierele și dosarele</comment>
- <comment xml:lang="ru">все файлы и папки</comment>
- <comment xml:lang="se">buot fiillat ja máhpat</comment>
- <comment xml:lang="sk">všetky súbory a priečinky</comment>
- <comment xml:lang="sl">vse datoteke in mape</comment>
- <comment xml:lang="sr">сви фајлови и фасцикле</comment>
- <comment xml:lang="sr@ijekavian">сви фајлови и фасцикле</comment>
- <comment xml:lang="sr@ijekavianlatin">svi fajlovi i fascikle</comment>
- <comment xml:lang="sr@latin">svi fajlovi i fascikle</comment>
- <comment xml:lang="sv">alla filer och kataloger</comment>
- <comment xml:lang="th">แฟ้มและโฟลเดอร์ทั้งหมด</comment>
- <comment xml:lang="tr">tüm dosyalar ve dizinler</comment>
- <comment xml:lang="ug">ھەممە ھۆججەت ۋە قىسقۇچلار</comment>
- <comment xml:lang="uk">всі файли і теки</comment>
- <comment xml:lang="zh_CN">全部文件和文件夹</comment>
- <comment xml:lang="zh_TW">所有檔案與資料夾</comment>
- </mime-type>
- <mime-type type="all/allfiles">
- <comment>all files</comment>
- <comment xml:lang="ar">كل الملفات</comment>
- <comment xml:lang="ast">tolos ficheros</comment>
- <comment xml:lang="bg">всички файлове</comment>
- <comment xml:lang="bs">sve datoteke</comment>
- <comment xml:lang="ca">tots els fitxers</comment>
- <comment xml:lang="ca@valencia">tots els fitxers</comment>
- <comment xml:lang="cs">všechny soubory</comment>
- <comment xml:lang="da">alle filer</comment>
- <comment xml:lang="de">Alle Dateien</comment>
- <comment xml:lang="el">Όλα τα αρχεία</comment>
- <comment xml:lang="en_GB">all files</comment>
- <comment xml:lang="es">todos los archivos</comment>
- <comment xml:lang="et">kõik failid</comment>
- <comment xml:lang="eu">fitxategi denak</comment>
- <comment xml:lang="fi">kaikki tiedostot</comment>
- <comment xml:lang="fr">Tous les fichiers</comment>
- <comment xml:lang="ga">gach comhad</comment>
- <comment xml:lang="gl">todos os ficheiros</comment>
- <comment xml:lang="hr">sve datoteke</comment>
- <comment xml:lang="hu">minden fájl</comment>
- <comment xml:lang="ia">omne files</comment>
- <comment xml:lang="is">allar skrár</comment>
- <comment xml:lang="it">tutti i file</comment>
- <comment xml:lang="ja">すべてのファイル</comment>
- <comment xml:lang="kk">бүкіл файлдар</comment>
- <comment xml:lang="km">ឯកសារ​ទាំង​អស់</comment>
- <comment xml:lang="ko">모든 파일</comment>
- <comment xml:lang="lt">visi failai</comment>
- <comment xml:lang="lv">visi faili</comment>
- <comment xml:lang="ml">എല്ലാ ഫയലും</comment>
- <comment xml:lang="mr">सर्व फाईल्स</comment>
- <comment xml:lang="nb">alle filer</comment>
- <comment xml:lang="nds">All Dateien</comment>
- <comment xml:lang="nl">alle bestanden</comment>
- <comment xml:lang="nn">alle filer</comment>
- <comment xml:lang="pa">ਸਭ ਫਾਇਲਾਂ</comment>
- <comment xml:lang="pl">wszystkie pliki</comment>
- <comment xml:lang="pt">todos os ficheiros</comment>
- <comment xml:lang="pt_BR">todos os arquivos</comment>
- <comment xml:lang="ro">toate fișierele</comment>
- <comment xml:lang="ru">все файлы</comment>
- <comment xml:lang="se">buot fiillat</comment>
- <comment xml:lang="sk">všetky súbory</comment>
- <comment xml:lang="sl">vse datoteke</comment>
- <comment xml:lang="sr">сви фајлови</comment>
- <comment xml:lang="sr@ijekavian">сви фајлови</comment>
- <comment xml:lang="sr@ijekavianlatin">svi fajlovi</comment>
- <comment xml:lang="sr@latin">svi fajlovi</comment>
- <comment xml:lang="sv">alla filer</comment>
- <comment xml:lang="th">แฟ้มทั้งหมด</comment>
- <comment xml:lang="tr">tüm dosyalar</comment>
- <comment xml:lang="ug">ھەممە ھۆججەتلەر</comment>
- <comment xml:lang="uk">всі файли</comment>
- <comment xml:lang="zh_CN">全部文件</comment>
- <comment xml:lang="zh_TW">所有檔案</comment>
- </mime-type>
-
<mime-type type="application/vnd.kde.fontspackage">
<sub-class-of type="application/zip"/>
<comment>fonts package</comment>

File diff suppressed because it is too large Load Diff

14
macros.kde-apps Normal file
View File

@ -0,0 +1,14 @@
%kdelibs4 @@NAME@@
%kdelibs4_epoch @@EPOCH@@
%kdelibs4_version @@VERSION@@
%kdelibs4_evr @@EVR@@
%kdelibs4_requires \
Requires: kdelibs4%{?_isa} >= %{kdelibs4_version} \
%{nil}
%kde_applications_version @@KDE_APPLICATIONS_VERSION@@
%kde_runtime_requires \
Requires: kde-runtime >= %{kde_applications_version} \
%{nil}

View File

@ -1,55 +0,0 @@
From 613c951a1157df0d8a907a155a5eaa706816d5f9 Mon Sep 17 00:00:00 2001
From: Aaron Seigo <aseigo@kde.org>
Date: Thu, 21 Feb 2013 17:58:11 +0100
Subject: return application icons properly
BUG:315578
---
kdeui/icons/kiconloader.cpp | 31 ++++++++++++++++++++++++++++++-
1 file changed, 30 insertions(+), 1 deletion(-)
diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
index f65e941..6fed667 100644
--- a/kdeui/icons/kiconloader.cpp
+++ b/kdeui/icons/kiconloader.cpp
@@ -909,7 +909,36 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
const char * const ext[4] = { ".png", ".svgz", ".svg", ".xpm" };
bool genericFallback = name.endsWith(QLatin1String("-x-generic"));
- foreach(KIconThemeNode *themeNode, links)
+ // Do two passes through themeNodes.
+ //
+ // The first pass looks for an exact match in each themeNode one after the other.
+ // If one is found and it is an app icon then return that icon.
+ //
+ // In the next pass (assuming the first pass failed), it looks for exact matches
+ // and then generic fallbacks in each themeNode one after the other
+ //
+ // The reasoning is that application icons should always match exactly, all other
+ // icons may fallback. Since we do not know what the context is here when we start
+ // looking for it, we can only go by the path found.
+ foreach (KIconThemeNode *themeNode, links) {
+ for (int i = 0 ; i < 4 ; i++) {
+ icon = themeNode->theme->iconPath(name + ext[i], size, KIconLoader::MatchExact);
+ if (icon.isValid()) {
+ break;
+ }
+
+ icon = themeNode->theme->iconPath(name + ext[i], size, KIconLoader::MatchBest);
+ if (icon.isValid()) {
+ break;
+ }
+ }
+
+ if (icon.isValid() && icon.path.contains("/apps/")) {
+ return icon;
+ }
+ }
+
+ foreach (KIconThemeNode *themeNode, links)
{
QString currentName = name;
--
1.8.1.4

View File

@ -1,31 +0,0 @@
From 0edfd42151ad57322a10a24ab4971b638e220e6e Mon Sep 17 00:00:00 2001
From: Aaron Seigo <aseigo@kde.org>
Date: Thu, 21 Feb 2013 18:14:54 +0100
Subject: [PATCH 049/111] return, not break. copy/paste error
---
kdeui/icons/kiconloader.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/kdeui/icons/kiconloader.cpp b/kdeui/icons/kiconloader.cpp
index dba474d..ce6aeea 100644
--- a/kdeui/icons/kiconloader.cpp
+++ b/kdeui/icons/kiconloader.cpp
@@ -947,12 +947,12 @@ K3Icon KIconLoaderPrivate::findMatchingIcon(const QString& name, int size) const
for (int i = 0 ; i < 4 ; i++) {
icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchExact);
if (icon.isValid()) {
- break;
+ return icon;
}
icon = themeNode->theme->iconPath(currentName + ext[i], size, KIconLoader::MatchBest);
if (icon.isValid()) {
- break;
+ return icon;
}
}
//kDebug(264) << "Looking up" << currentName;
--
1.8.1.4

View File

@ -1 +1 @@
3e581954a6d82babfe6489905d0039c8 kdelibs-4.10.5.tar.xz
SHA512 (kdelibs-4.14.38.tar.xz) = 54fbbb9b2f12a47d5aca21c152164ed03cc6a6619bf285e2b93c8e9260042ffd728ef41e1badb217e552de6478687cab5d3caf14af7b32da8caca3468d469e45