Compare commits

...

55 Commits
f22 ... 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
8 changed files with 1323 additions and 136 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
/kdelibs-4.14.18.tar.xz /kdelibs-4.14.38.tar.xz

View File

@ -1,51 +0,0 @@
commit 4f7ea2f770cf062ef22293fbb21a086f3e0cbfcb
Author: Allen Winter <winter@kde.org>
Date: Tue Oct 20 16:36:32 2015 -0400
backport commit b72fc5e56579035bf987075e16324ef95ef8e3d4
Author: Alex Merry <alex.merry@kde.org>
Date: Mon Oct 19 20:54:13 2015 +0100
Use deleteLater in Part::slotWidgetDestroyed().
When a part's main widget is destroyed, we should not delete the part
immediately - both because deleting an object from inside one of its
signals is not safe generally, and because derived classes may well hold
QPointers to the widgets, expecting them to be cleared between the
widget being destroyed and the part being destroyed.
MERGE: none
diff --git a/kparts/part.cpp b/kparts/part.cpp
index 20089d4..2cfee81 100644
--- a/kparts/part.cpp
+++ b/kparts/part.cpp
@@ -350,7 +350,7 @@ void Part::slotWidgetDestroyed()
d->m_widget = 0;
if (d->m_autoDeletePart) {
kDebug(1000) << "deleting part" << objectName();
- delete this; // ouch, this should probably be deleteLater()
+ this->deleteLater();
}
}
diff --git a/kparts/tests/parttest.cpp b/kparts/tests/parttest.cpp
index e48b578..232aa07 100644
--- a/kparts/tests/parttest.cpp
+++ b/kparts/tests/parttest.cpp
@@ -48,6 +48,7 @@ void PartTest::testAutoDeletePart()
KParts::Part* part = new TestPart(0, 0);
QPointer<KParts::Part> partPointer(part);
delete part->widget();
+ QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
QVERIFY(partPointer.isNull());
}
@@ -57,6 +58,7 @@ void PartTest::testAutoDeleteWidget()
QPointer<KParts::Part> partPointer(part);
QPointer<QWidget> widgetPointer(part->widget());
delete part;
+ QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
QVERIFY(widgetPointer.isNull());
}

View File

@ -1,43 +0,0 @@
diff -up kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp.gcc6 kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp
--- kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp.gcc6 2016-02-11 23:06:08.000000000 -0600
+++ kdelibs-4.14.17/solid/solid/backends/shared/cpufeatures.cpp 2016-02-12 19:14:07.708788182 -0600
@@ -51,23 +51,23 @@ static void sighandler( int )
#endif
#ifdef __i386__
- #define ASM_REG(reg) "%e"reg
- #define ASM_POP(reg) "popl %%e"reg" \n\t"
- #define ASM_PUSH(reg) "pushl %%e"reg" \n\t"
- #define ASM_XOR_REG(reg1, reg2) "xorl %%e"reg1", %%e"reg2" \n\t"
- #define ASM_XOR_VAR(var, reg) "xorl "var", %%e"reg" \n\t"
- #define ASM_CMP_REG(reg1, reg2) "cmpl %%e"reg1", %%e"reg2" \n\t"
- #define ASM_MOV_REG(reg1, reg2) "movl %%e"reg1", %%e"reg2" \n\t"
- #define ASM_MOV_VAR(var, reg) "movl "var", %%e"reg" \n\t"
+ #define ASM_REG(reg) "%e" reg
+ #define ASM_POP(reg) "popl %%e" reg " \n\t"
+ #define ASM_PUSH(reg) "pushl %%e" reg " \n\t"
+ #define ASM_XOR_REG(reg1, reg2) "xorl %%e" reg1 ", %%e" reg2 " \n\t"
+ #define ASM_XOR_VAR(var, reg) "xorl " var ", %%e" reg " \n\t"
+ #define ASM_CMP_REG(reg1, reg2) "cmpl %%e" reg1 ", %%e" reg2 " \n\t"
+ #define ASM_MOV_REG(reg1, reg2) "movl %%e" reg1 ", %%e" reg2 " \n\t"
+ #define ASM_MOV_VAR(var, reg) "movl " var ", %%e" reg " \n\t"
#elif defined(__x86_64__)
- #define ASM_REG(reg) "%r"reg
- #define ASM_POP(reg) "popq %%r"reg" \n\t"
- #define ASM_PUSH(reg) "pushq %%r"reg" \n\t"
- #define ASM_XOR_REG(reg1, reg2) "xorq %%r"reg1", %%r"reg2" \n\t"
- #define ASM_XOR_VAR(var, reg) "xorq "var", %%r"reg" \n\t"
- #define ASM_CMP_REG(reg1, reg2) "cmpq %%r"reg1", %%r"reg2" \n\t"
- #define ASM_MOV_REG(reg1, reg2) "movq %%r"reg1", %%r"reg2" \n\t"
- #define ASM_MOV_VAR(var, reg) "movq "var", %%r"reg" \n\t"
+ #define ASM_REG(reg) "%r" reg
+ #define ASM_POP(reg) "popq %%r" reg " \n\t"
+ #define ASM_PUSH(reg) "pushq %%r" reg " \n\t"
+ #define ASM_XOR_REG(reg1, reg2) "xorq %%r" reg1 ", %%r" reg2 " \n\t"
+ #define ASM_XOR_VAR(var, reg) "xorq " var ", %%r" reg " \n\t"
+ #define ASM_CMP_REG(reg1, reg2) "cmpq %%r" reg1 ", %%r" reg2 " \n\t"
+ #define ASM_MOV_REG(reg1, reg2) "movq %%r" reg1 ", %%r" reg2 " \n\t"
+ #define ASM_MOV_VAR(var, reg) "movq " var ", %%r" reg " \n\t"
#endif
#ifdef __PPC__

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,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>

View File

@ -6,7 +6,6 @@
%define dbusmenu_qt_ver 0.9.0 %define dbusmenu_qt_ver 0.9.0
%define phonon_ver 4.6.0 %define phonon_ver 4.6.0
%define qt4_ver 4.8.1 %define qt4_ver 4.8.1
%define strigi_ver 0.7.0
%if ! 0%{?bootstrap} %if ! 0%{?bootstrap}
%define apidocs 1 %define apidocs 1
%endif %endif
@ -19,6 +18,9 @@
%if 0%{?fedora} < 24 %if 0%{?fedora} < 24
%define nepomuk 1 %define nepomuk 1
%endif %endif
%if 0%{?fedora} < 25
%define strigi 1
%endif
# to build/include QCH apidocs or not (currently broken) # to build/include QCH apidocs or not (currently broken)
#define apidocs_qch 1 #define apidocs_qch 1
%if 0%{?rhel} > 6 || 0%{?fedora} > 17 %if 0%{?rhel} > 6 || 0%{?fedora} > 17
@ -39,7 +41,6 @@
%global _hardened_build 1 %global _hardened_build 1
%global phonon_version %(pkg-config --modversion phonon 2>/dev/null || echo %{phonon_ver}) %global phonon_version %(pkg-config --modversion phonon 2>/dev/null || echo %{phonon_ver})
%global strigi_version %(pkg-config --modversion libstreams 2>/dev/null || echo %{strigi_ver})
%global dbusmenu_qt_version %(pkg-config --modversion dbusmenu-qt 2>/dev/null || echo %{dbusmenu_qt_ver}) %global dbusmenu_qt_version %(pkg-config --modversion dbusmenu-qt 2>/dev/null || echo %{dbusmenu_qt_ver})
%global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d) %global rpm_macros_dir %(d=%{_rpmconfigdir}/macros.d; [ -d $d ] || d=%{_sysconfdir}/rpm; echo $d)
@ -48,9 +49,9 @@
Summary: KDE Libraries Summary: KDE Libraries
# shipped with kde applications, version... # shipped with kde applications, version...
%global apps_version 15.12.3 %global apps_version 17.08.3
Version: 4.14.18 Version: 4.14.38
Release: 1%{?dist} Release: 7%{?dist}
Name: kdelibs Name: kdelibs
Epoch: 6 Epoch: 6
@ -78,6 +79,7 @@ BuildRequires: kde-filesystem >= 4-23
# for the RPM dependency generators # for the RPM dependency generators
BuildRequires: kde-settings BuildRequires: kde-settings
BuildRequires: docbook-dtds docbook-style-xsl BuildRequires: docbook-dtds docbook-style-xsl
BuildRequires: perl-generators
Requires: ca-certificates Requires: ca-certificates
Requires: dbusmenu-qt%{?_isa} >= %{dbusmenu_qt_version} Requires: dbusmenu-qt%{?_isa} >= %{dbusmenu_qt_version}
Requires: docbook-dtds docbook-style-xsl Requires: docbook-dtds docbook-style-xsl
@ -95,19 +97,29 @@ Requires: kde-l10n
%endif %endif
Requires: phonon%{?_isa} >= %{phonon_version} Requires: phonon%{?_isa} >= %{phonon_version}
Requires: shared-mime-info Requires: shared-mime-info
Requires: strigi-libs%{?_isa} >= %{strigi_version}
%if 0%{?fedora} > 22 %if 0%{?fedora} > 22
Requires: (kde-platform-plugin%{?_isa} if plasma-workspace) # Rich deps are currently problematic
Requires: (kde-style-breeze%{?_isa} if plasma-desktop) # for any yum-based tools, see https://bugzilla.redhat.com/show_bug.cgi?id=1317481
#Requires: (kde-platform-plugin%{?_isa} if plasma-workspace)
#Requires: (kde-style-breeze%{?_isa} if plasma-desktop)
Recommends: kde-platform-plugin%{?_isa}
Recommends: kde-style-breeze%{?_isa}
%endif %endif
# make kdelibs-devel parallel-installable with kdelibs3-devel # make kdelibs-devel parallel-installable with kdelibs3-devel
Patch0: kdelibs-4.9.95-parallel_devel.patch Patch0: kdelibs-4.9.95-parallel_devel.patch
# backport: omit fake mimetypes
# https://git.reviewboard.kde.org/r/117135/
Patch1: kdelibs-no_fake_mimetypes.patch
# fix http://bugs.kde.org/149705 # fix http://bugs.kde.org/149705
Patch2: kdelibs-4.10.0-kde149705.patch Patch2: kdelibs-4.10.0-kde149705.patch
# search for plasma5 drkonqi too
Patch3: kdelibs-4.14.25-plasma_drkonqi.patch
# install all .css files and Doxyfile.global in kdelibs-common to build # install all .css files and Doxyfile.global in kdelibs-common to build
# kdepimlibs-apidocs against # kdepimlibs-apidocs against
Patch8: kdelibs-4.3.90-install_all_css.patch Patch8: kdelibs-4.3.90-install_all_css.patch
@ -181,17 +193,16 @@ Patch62: kdelibs-4.11.3-arm.patch
# opening a terminal in Konqueror / Dolphin does not inherit environment variables # opening a terminal in Konqueror / Dolphin does not inherit environment variables
Patch64: kdelibs-4.13.2-invokeTerminal.patch Patch64: kdelibs-4.13.2-invokeTerminal.patch
# newer glibc has 2 prototypes for trunc, check for ftrunc instead
Patch65: kdelibs-4.14.17-glibc_trunc.patch
# gcc6 FTBFS: literals
Patch66: kdelibs-4.14.17-gcc6_literals.patch
# gcc6 FTBFS: maybe easier/cleaner to build with: -std=gnu++98 or -Wno-error-narrowing # gcc6 FTBFS: maybe easier/cleaner to build with: -std=gnu++98 or -Wno-error-narrowing
Patch67: kdelibs-4.14.17-gcc6_narrowing_hack.patch Patch67: kdelibs-4.14.17-gcc6_narrowing_hack.patch
# build against OpenSSL 1.1 (patch by Wolfgang Bauer from openSUSE)
# (The patch is a backport of the upstream KF5 patch by Daniel Vrátil.)
# https://build.opensuse.org/package/view_file/openSUSE:Factory/kdelibs4/0001-Make-kssl-compile-against-OpenSSL-1.1.0.patch?expand=1
Patch68: kdelibs-4.14.38-openssl-1.1.patch
## upstream ## upstream
# 4.14 branch # 4.14 branch (lookaside cache)
## security fix ## security fix
@ -221,6 +232,7 @@ BuildRequires: bison flex
BuildRequires: bzip2-devel BuildRequires: bzip2-devel
BuildRequires: cmake >= 2.8.9 BuildRequires: cmake >= 2.8.9
BuildRequires: cups-devel cups BuildRequires: cups-devel cups
BuildRequires: gcc-c++
BuildRequires: gettext-devel BuildRequires: gettext-devel
BuildRequires: giflib-devel BuildRequires: giflib-devel
BuildRequires: grantlee-devel BuildRequires: grantlee-devel
@ -248,11 +260,14 @@ BuildRequires: pkgconfig(jasper)
BuildRequires: pkgconfig(libattica) >= %{attica_ver} BuildRequires: pkgconfig(libattica) >= %{attica_ver}
BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(liblzma)
BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libpcre)
BuildRequires: pkgconfig(libstreams) >= %{strigi_ver} %if 0%{?strigi}
BuildRequires: pkgconfig(libstreams)
%endif
BuildRequires: pkgconfig(libudev) BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0) BuildRequires: pkgconfig(libxslt) pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(OpenEXR) BuildRequires: pkgconfig(OpenEXR)
BuildRequires: pkgconfig(openssl) BuildRequires: openssl-devel
BuildRequires: perl(Getopt::Long)
BuildRequires: pkgconfig(phonon) >= %{phonon_ver} BuildRequires: pkgconfig(phonon) >= %{phonon_ver}
BuildRequires: pkgconfig(polkit-qt-1) BuildRequires: pkgconfig(polkit-qt-1)
BuildRequires: pkgconfig(qca2) BuildRequires: pkgconfig(qca2)
@ -333,8 +348,9 @@ Obsoletes: kdelibs-nepomuk-devel < %{?epoch:%{epoch}:}%{version}-%{release}
%endif %endif
Requires: automoc4 >= 0.9.88 Requires: automoc4 >= 0.9.88
Requires: cmake >= 2.8.9 Requires: cmake >= 2.8.9
Requires: gcc-c++
Requires: pkgconfig(libattica) >= %{attica_ver} Requires: pkgconfig(libattica) >= %{attica_ver}
Requires: pkgconfig(openssl) Requires: openssl-devel
Requires: pkgconfig(phonon) Requires: pkgconfig(phonon)
Requires: qt4-devel Requires: qt4-devel
%{?x_deps:Requires: %{x_deps}} %{?x_deps:Requires: %{x_deps}}
@ -442,7 +458,11 @@ format for use with the Qt 4 Assistant or KDevelop 4.
%setup -q -n kdelibs-%{version} %setup -q -n kdelibs-%{version}
%patch0 -p1 -b .parallel_devel %patch0 -p1 -b .parallel_devel
%if 0%{?fedora} > 23
%patch1 -p1 -b .no_fake_mimetypes
%endif
%patch2 -p1 -b .kde149705 %patch2 -p1 -b .kde149705
%patch3 -p1 -b .plasma_drkonqi
%patch8 -p1 -b .install_all_css %patch8 -p1 -b .install_all_css
%patch9 -p1 -b .branding %patch9 -p1 -b .branding
# add release version as part of branding (suggested by cailon) # add release version as part of branding (suggested by cailon)
@ -470,9 +490,8 @@ sed -i -e "s|@@VERSION_RELEASE@@|%{version}-%{release}|" kio/kio/kprotocolmanage
%patch61 -p1 -b .dot %patch61 -p1 -b .dot
%patch62 -p1 -b .arm-plasma %patch62 -p1 -b .arm-plasma
%patch64 -p1 -b .invokeTerminal %patch64 -p1 -b .invokeTerminal
%patch65 -p1 -b .glibc_trunc
%patch66 -p1 -b .gcc6_literals
%patch67 -p1 -b .gcc6_narrowing_hack %patch67 -p1 -b .gcc6_narrowing_hack
%patch68 -p1 -b .openssl-1.1
# upstream patches # upstream patches
@ -605,25 +624,10 @@ time xvfb-run -a dbus-launch --exit-with-session make -C %{_target_platform}/ te
%endif %endif
%post %post -p /sbin/ldconfig
/sbin/ldconfig
touch --no-create %{_kde4_iconsdir}/hicolor &> /dev/null || :
touch --no-create %{_datadir}/mime/packages &> /dev/null || :
%postun %postun
/sbin/ldconfig ||: /sbin/ldconfig ||:
if [ $1 -eq 0 ] ; then
touch --no-create %{_kde4_iconsdir}/hicolor &> /dev/null
gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
update-desktop-database -q &> /dev/null
touch --no-create %{_datadir}/mime/packages &> /dev/null || :
update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
fi
%posttrans
gtk-update-icon-cache %{_kde4_iconsdir}/hicolor &> /dev/null || :
update-desktop-database -q &> /dev/null
update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
%files %files
%doc AUTHORS README TODO %doc AUTHORS README TODO
@ -857,10 +861,138 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
%changelog %changelog
* Tue Feb 20 2018 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.38-7
- BR: gcc-c++, -devel: Requires: gcc-c++
* Sun Feb 11 2018 Sandro Mani <manisandro@gmail.com> - 6:4.14.38-6
- Rebuild (giflib)
* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6:4.14.38-5
- Escape macros in %%changelog
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 6:4.14.38-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Thu Jan 11 2018 Igor Gnatenko <ignatenkobrain@fedoraproject.org> - 6:4.14.38-3
- Remove obsolete scriptlets
* 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)
* Wed Nov 08 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.38-1
- 4.14.38 (kde-apps-17.08.3)
* Wed Oct 11 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.37-1
- 4.14.37 (kde-apps-17.08.2)
* Tue Sep 05 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.36-1
- 4.14.36 (kde-apps-17.08.1)
* Sat Aug 26 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.35-1
- 4.14.35 (kde-apps-17.08.0)
* Mon Aug 07 2017 Björn Esser <besser82@fedoraproject.org> - 6:4.14.34-2
- Rebuilt for AutoReq cmake-filesystem
* Fri Jul 28 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.34-1
- 4.14.34 (kde-apps-17.04.3)
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 6:4.14.33-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
* Thu Jun 08 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.33-1
- 4.14.33 (kde-apps-17.04.2)
* Wed May 10 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.32-1
- 4.14.32 (kde-apps-17.04.1)
* Wed May 10 2017 Than Ngo <than@redhat.com> - 6:4.14.31-2
- security fix, CVE-2017-8422
* Fri Apr 14 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.31-1
- 4.14.31 (kde-apps-17.04.0)
* Wed Mar 08 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.30-1
- 4.14.30 (kde-apps-16.12.3)
* Thu Mar 02 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.29-2
- CVE-2017-6410 (#1427808)
* Wed Feb 08 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.29-1
- 4.14.29 (kde-apps-16.12.2)
* Tue Jan 10 2017 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.28-1
- 4.14.28 (kde-apps-16.12.1)
* Thu Dec 22 2016 Rex Dieter <rdieter@math.unl.edu> - 6:4.14.27-2
- re-enable -apidocs
* Thu Dec 22 2016 Rex Dieter <rdieter@math.unl.edu> - 6:4.14.27-1
- 4.14.27 (kde-apps-16.12.0)
- disable apidocs (rawhide doxygen broken deps)
* Fri Dec 09 2016 Kevin Kofler <Kevin@tigcc.ticalc.org> - 6:4.14.26-2
- reenable WebKit support
* Wed Nov 30 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.26-1
- 4.14.26 (kde-apps-16.08.3)
- disable WebKit support due to moc-related FTBFS
* Thu Nov 10 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.25-2
- support use of plasma-desktop-drkonqi too
* Sun Oct 16 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.25-1
- 4.14.25 (kde-apps-16.08.2)
* Tue Sep 06 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.24-1
- 4.14.24 (kde-apps-16.08.1)
* Sun Aug 28 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.23-5
- backport no_fake_mimetypes fix for f24+ (reviewboard#117135)
* Thu Aug 18 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.23-4
- pull in upstream fixes
* Tue Aug 16 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.23-3
- respin
* Tue Aug 16 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.23-2
- fix gcc6 visibility support detection (review#128697)
* Fri Aug 12 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.23-1
- 4.14.23 (kde-apps-16.08.0)
* Fri Jul 08 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.22-1
- 4.14.22 (kde-apps-16.04.3)
* Sun Jun 12 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.21-1
- 4.14.21 (kde-apps-16.04.2)
* Sun May 08 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.20-1
- 4.14.20 (kde-apps-16.04.1)
* Fri May 06 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.19-4
- drop strigi support (f25+)
* Wed Apr 20 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.19-3
- rebuild (qt)
* Mon Apr 18 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.19-2
- rebuild (qt)
* Fri Apr 15 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.19-1
- 4.14.19 (kde-apps-16.04.0)
* Mon Apr 11 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.18-3
- Recommends: kde-platform-plugin kde-style-breeze, moved soft dep here, workaround bug #1325471
* Mon Mar 14 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.18-2
- drop Requires: (...rich deps...) (#1317481)
* Sat Mar 12 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.18-1 * Sat Mar 12 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.18-1
- 4.14.18 (kde-apps-15.12.3) - 4.14.18 (kde-apps-15.12.3)
- Requires: (kde-platform-plugin%{?_isa} if plasma-workspace), f23+ - Requires: (kde-platform-plugin%%{?_isa} if plasma-workspace), f23+
- Requires: (kde-style-breeze%{?_isa} if plasma-desktop), f23+ - Requires: (kde-style-breeze%%{?_isa} if plasma-desktop), f23+
* Fri Feb 26 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.17-5 * Fri Feb 26 2016 Rex Dieter <rdieter@fedoraproject.org> - 6:4.14.17-5
- -nepomuk(-devel) subpkgs on < f24, drop on f24+ - -nepomuk(-devel) subpkgs on < f24, drop on f24+
@ -1979,7 +2111,7 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
- KDE 4.4 beta1 (4.3.80) - KDE 4.4 beta1 (4.3.80)
* Wed Nov 25 2009 Rex Dieter <rdieter@fedoraproject.org> - 4.3.75-0.2.svn1048496 * Wed Nov 25 2009 Rex Dieter <rdieter@fedoraproject.org> - 4.3.75-0.2.svn1048496
- -devel: Provides: kdelibs4-devel%{?_isa} ... - -devel: Provides: kdelibs4-devel%%{?_isa} ...
- Obsoletes: kdelibs-experimental(-devel) < 4.3.75 - Obsoletes: kdelibs-experimental(-devel) < 4.3.75
* Fri Nov 20 2009 Ben Boeckel <MathStuf@gmail.com> - 4.3.75-0.1.svn1048496 * Fri Nov 20 2009 Ben Boeckel <MathStuf@gmail.com> - 4.3.75-0.1.svn1048496
@ -2451,7 +2583,7 @@ update-mime-database %{?fedora:-n} %{_datadir}/mime &> /dev/null || :
- fix kstandarddirs patch so /usr/libexec/kde4 is found (#453063) - fix kstandarddirs patch so /usr/libexec/kde4 is found (#453063)
* Wed Jun 25 2008 Rex Dieter <rdieter@fedoraproject.org> 4.0.83-2 * Wed Jun 25 2008 Rex Dieter <rdieter@fedoraproject.org> 4.0.83-2
- -common: move %{_kde4_docdir}/HTML/en/sonnet/ here (#341751) - -common: move %%{_kde4_docdir}/HTML/en/sonnet/ here (#341751)
* Thu Jun 19 2008 Than Ngo <than@redhat.com> 4.0.83-1 * Thu Jun 19 2008 Than Ngo <than@redhat.com> 4.0.83-1
- 4.0.83 (beta2) - 4.0.83 (beta2)

View File

@ -1 +1 @@
9a4c194ee49e6e3836515389385d77cc kdelibs-4.14.18.tar.xz SHA512 (kdelibs-4.14.38.tar.xz) = 54fbbb9b2f12a47d5aca21c152164ed03cc6a6619bf285e2b93c8e9260042ffd728ef41e1badb217e552de6478687cab5d3caf14af7b32da8caca3468d469e45