<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/dad04b15bee6ca8f4d4f3e19ac1ed36c0e0282fb">https://github.com/macports/macports-ports/commit/dad04b15bee6ca8f4d4f3e19ac1ed36c0e0282fb</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new dad04b15bee qca: downgrade the Qt4 subports (qca, qca-ossl etc) to v2.2.1
</span>dad04b15bee is described below

<span style='display:block; white-space:pre;color:#808000;'>commit dad04b15bee6ca8f4d4f3e19ac1ed36c0e0282fb
</span>Author: RenĂ© Bertin <rjvbertin@gmail.com>
AuthorDate: Tue Nov 16 14:59:34 2021 +0100

<span style='display:block; white-space:pre;color:#404040;'>    qca: downgrade the Qt4 subports (qca, qca-ossl etc) to v2.2.1
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    That's the last version that has support for Qt4. The Portfile has been
</span><span style='display:block; white-space:pre;color:#404040;'>    overhauled so that all subports that require OpenSSL use the proper
</span><span style='display:block; white-space:pre;color:#404040;'>    version (i.e. port:openssl11 for qca v2.2.1).
</span><span style='display:block; white-space:pre;color:#404040;'>    I've also removed the obsolete/replaced_by logic for the former plugin
</span><span style='display:block; white-space:pre;color:#404040;'>    ports that have been rolled into the main port since 2.2.1
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes: #63940
</span><span style='display:block; white-space:pre;color:#404040;'>    Committed from host : Bola
</span>---
 devel/qca/Portfile                                |  83 ++++---
 devel/qca/files/patch-qca221-ossl.diff            |  85 +++++++
 devel/qca/files/patch-unique_ptr.diff             |  52 +++++
 devel/qca/files/qt4/patch-cmakeminver.diff        |  24 ++
 devel/qca/files/qt4/patch-installname.diff        |  14 ++
 devel/qca/files/{ => qt5}/patch-qca210-qt550.diff |   0
 devel/qca/files/qt5/patch-support-older-qt5.diff  | 258 ++++++++++++++++++++++
 7 files changed, 488 insertions(+), 28 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/Portfile b/devel/qca/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 843ff4bf255..8a1ca34538a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/qca/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/qca/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -3,7 +3,6 @@
</span> PortSystem              1.0
 
 name                    qca
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version                 2.3.4
</span> 
 # Qt version handling logic
 global Qt_Major
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -11,10 +10,21 @@ subport ${name}-qt5     {}
</span> 
 if {[string match "${name}-qt5*" ${subport}]} {
     PortGroup           qt5 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set Qt_Major        5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set Qt_Major        qt5
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version             2.3.4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums           rmd160  88589c5b4f2a87cb048b5a90ff39256ec996fdb1 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  6b695881a7e3fd95f73aaee6eaeab96f6ad17e515e9c2b3d4b3272d7862ff5c4 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    737072
</span> } else {
     PortGroup           qt4 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set Qt_Major        4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set Qt_Major        qt4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # last release with Qt4 support:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    version             2.2.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # set the epoch because we've had to downgrade
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    epoch               202111
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    checksums           rmd160  dddc3cf240dc5424b9df13fc1bf41c8e04f3b814 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        sha256  d716d2d8e3ed8d95bbdb061f03081d7d032206f746a30a4d29d72196f50e7b02 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        size    691676
</span> }
 # best included after the required Qt PG
 PortGroup               cmake 1.1
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,18 +42,43 @@ platforms               darwin
</span> homepage                https://userbase.kde.org/QCA
 master_sites            https://download.kde.org/stable/qca/${version}
 use_xz                  yes
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums               rmd160  88589c5b4f2a87cb048b5a90ff39256ec996fdb1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        sha256  6b695881a7e3fd95f73aaee6eaeab96f6ad17e515e9c2b3d4b3272d7862ff5c4 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        size    737072
</span> 
 patch.pre_args          -Np1
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles-append       patch-qca-ossl.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+switch ${Qt_Major} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    qt4 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-qca221-ossl.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        qt4/patch-installname.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        qt4/patch-cmakeminver.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DQT4_BUILD:BOOL=ON
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    qt5 {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${os.platform} eq "darwin" && ${os.major} < 11 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            ui_warn "This port currently requires Qt 5.6 or up, so OS X 10.7 or newer"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            known_fail yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        patchfiles-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-qca-ossl.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        patch-unique_ptr.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        qt5/patch-qca210-qt550.diff \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        qt5/patch-support-older-qt5.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.args-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        -DQCA_SUFFIX:STRING="qt5"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build.post_args-append -wk
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        ui_error "unsupported Qt version \"${Qt_Major}\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return -code error "Unsupported Qt version"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 # the QCA plugins have been rolled into the main source tarball and are built by default
 # when their dependencies are available. Allow this for all plugins that were not already
 # available through an individual port; no reason to impose new dependencies on our dependents.
 # This is mostly of interest for Qt5-based dependents, evidently.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args          -DCMAKE_INSTALL_PREFIX:PATH=${qt_dir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args-append   -DCMAKE_INSTALL_PREFIX:PATH=${qt_dir} \
</span>                         -DQCA_PLUGINS_INSTALL_DIR:PATH=${qt_plugins_dir} \
                         -DQCA_LIBRARY_INSTALL_DIR:PATH=${qt_libs_dir} \
                         -DQCA_BINARY_INSTALL_DIR:PATH=${qt_bins_dir} \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,15 +95,6 @@ compiler.cxx_standard   2011
</span> configure.cxxflags-append \
                         -std=c++11
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${Qt_Major} eq "4"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DQT4_BUILD:BOOL=ON
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-} elseif {${Qt_Major} eq "5"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    patchfiles-append   patch-qca210-qt550.diff
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    configure.args-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        -DQCA_SUFFIX:STRING="qt5"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> post-destroot {
     if {${subport} eq ${name} || ${subport} eq "${subport}-qt5"} {
         # install docs
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -118,9 +144,12 @@ foreach qv ${qt.versions} {
</span> 
     # plugins depend on the corresponding main port and the libraries of which they expose the Functionality
     subport ${name}${qv}-ossl {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup               openssl 1.0
</span>         license                 LGPL-2.1+
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib             port:${name}${qv} path:lib/libssl.dylib:openssl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib             port:${name}${qv}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${Qt_Major} eq "qt4"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            openssl.branch      1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         configure.args-append   -DBUILD_PLUGINS:STRING="ossl"
         build.dir               ${workpath}/build/plugins/qca-ossl
     }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -137,21 +166,19 @@ foreach qv ${qt.versions} {
</span>         build.dir               ${workpath}/build/plugins/qca-gnupg
     }
     subport ${name}${qv}-pkcs11 {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        revision                0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        PortGroup               openssl 1.0
</span>         license                 LGPL-2.1+
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        depends_lib             port:${name}${qv} path:lib/libssl.dylib:openssl port:nss port:pkcs11-helper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        depends_lib             port:${name}${qv} port:nss port:pkcs11-helper
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {${Qt_Major} eq "qt4"} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # qca-pkcs11 will build (and link) against OpenSSL3 but its dependencies don't
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            # so it seems wise to avoid mixing OpenSSL versions.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            openssl.branch      1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span>         configure.args-append   -DBUILD_PLUGINS:STRING="pkcs11"
         build.dir               ${workpath}/build/plugins/qca-pkcs11
     }
 }
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach virtual {"botan" "gcrypt" "logger" "nss" "softstore"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    subport ${name}-${virtual} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        replaced_by         qca
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        PortGroup           obsolete 1.0
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> livecheck.type  regex
 livecheck.url   https://download.kde.org/stable/qca
 livecheck.regex "(2\\.\\d+(?:\\.\\d+)+(?:\\.\\d+)*)\\/"
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/files/patch-qca221-ossl.diff b/devel/qca/files/patch-qca221-ossl.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..28f561abea3
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/qca/files/patch-qca221-ossl.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,85 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 11ecdc9d2c34f639a8515ac3fe7a12400590ac29..59e2135209b481ba60ebb32b6cb7f2af33d42188 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/plugins/qca-ossl/qca-ossl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/plugins/qca-ossl/qca-ossl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2102,7 +2102,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   md = EVP_sha1();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if(alg == EMSA3_MD5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   md = EVP_md5();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if(alg == EMSA3_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   md = EVP_md2();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -2130,7 +2130,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   md = EVP_sha1();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if(alg == EMSA3_MD5)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   md = EVP_md5();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if(alg == EMSA3_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   md = EVP_md2();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -3848,7 +3848,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case NID_md5WithRSAEncryption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   p.sigalgo = QCA::EMSA3_MD5;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case NID_md2WithRSAEncryption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   p.sigalgo = QCA::EMSA3_MD2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4351,7 +4351,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case NID_md5WithRSAEncryption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   p.sigalgo = QCA::EMSA3_MD5;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case NID_md2WithRSAEncryption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   p.sigalgo = QCA::EMSA3_MD2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -4548,7 +4548,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case NID_md5WithRSAEncryption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   p.sigalgo = QCA::EMSA3_MD5;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           case NID_md2WithRSAEncryption:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   p.sigalgo = QCA::EMSA3_MD2;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   break;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7176,7 +7176,7 @@ static QStringList all_hash_types()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list += "sha0";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list += "ripemd160";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list += "md2";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   list += "md4";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7411,7 +7411,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           list += all_hash_types();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           list += all_mac_types();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           list += all_cipher_types();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           list += "pbkdf1(md2)";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           list += "pbkdf1(sha1)";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7451,7 +7451,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if ( type == "ripemd160" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return new opensslHashContext( EVP_ripemd160(), this, type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if ( type == "md2" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return new opensslHashContext( EVP_md2(), this, type);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -7483,7 +7483,7 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ */
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if ( type == "pbkdf1(sha1)" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return new opensslPbkdf1Context( EVP_sha1(), this, type );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-#ifdef HAVE_OPENSSL_MD2
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if defined(HAVE_OPENSSL_MD2) && !defined(OPENSSL_NO_MD2)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+           else if ( type == "pbkdf1(md2)" )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                   return new opensslPbkdf1Context( EVP_md2(), this, type );
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/files/patch-unique_ptr.diff b/devel/qca/files/patch-unique_ptr.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..60128111e29
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/qca/files/patch-unique_ptr.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,52 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/unittest/keybundle/keybundle.cpp b/unittest/keybundle/keybundle.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f624a36d487998e5cab608644d7b5c07fb77032d..83b378242637433af1b5c81453f669a5497600ac 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/unittest/keybundle/keybundle.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/unittest/keybundle/keybundle.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,6 +30,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "import_plugins.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class KeyBundleTest : public QObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_OBJECT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/unittest/pipeunittest/pipeunittest.cpp b/unittest/pipeunittest/pipeunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 278931a9f9c8dffe6e21a4d71fcd09813bf4b0d2..5925c72cf2ee7d5cea6ad9a83715c4929b5962b1 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/unittest/pipeunittest/pipeunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/unittest/pipeunittest/pipeunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,6 +30,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "import_plugins.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class PipeUnitTest : public QObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_OBJECT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/unittest/tls/tlsunittest.cpp b/unittest/tls/tlsunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index e7bbd06c982e5e5d7ef31b15020dbf038f9c20a9..8734fd2d20f0739a69c97d79d76ae9b910309e94 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/unittest/tls/tlsunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/unittest/tls/tlsunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,6 +30,8 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "import_plugins.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class TLSUnitTest : public QObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_OBJECT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 9c81746844f9d8543f7e9eff8603662f495d7a1e..aa8c1dd78eac220278834f0ff340f26eb2f647ba 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/plugins/qca-ossl/qca-ossl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/plugins/qca-ossl/qca-ossl.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,6 +32,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdio>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdlib>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <iostream>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#include <memory>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/err.h>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <openssl/opensslv.h>
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/files/qt4/patch-cmakeminver.diff b/devel/qca/files/qt4/patch-cmakeminver.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..b0ff5fffbe1
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/qca/files/qt4/patch-cmakeminver.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,24 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2f2b5d0b538db93c03c3724904357d1cf12fb892..ef4b825e842bc42905996283c9081239c29d67ea 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1,4 +1,4 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-# Checking for user explicity defined CMAKE_INSTALL_PREFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# Checking for user explicitly defined CMAKE_INSTALL_PREFIX
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # It must be done before project(...)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if(NOT CMAKE_INSTALL_PREFIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(QCA_INSTALL_IN_QT_PREFIX ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -6,10 +6,11 @@ if(NOT CMAKE_INSTALL_PREFIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   unset(CMAKE_INSTALL_PREFIX CACHE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif(NOT CMAKE_INSTALL_PREFIX)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-project(qca)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++# The cmake min. version should be set before calling project(...) too
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cmake_minimum_required(VERSION 3.4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++project(qca)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(QCA_LIB_MAJOR_VERSION "2")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(QCA_LIB_MINOR_VERSION "2")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(QCA_LIB_PATCH_VERSION "1")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/files/qt4/patch-installname.diff b/devel/qca/files/qt4/patch-installname.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..53b70341505
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/qca/files/qt4/patch-installname.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 2e819743d615314a30c0ccf66d122e49fbd7f333..6c721e56cee6305c3362f2652c3b44e7ffcd086d 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -152,7 +152,7 @@ if(APPLE)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(COREFOUNDATION_LIBRARY_SECURITY "-framework Security")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   TARGET_LINK_LIBRARIES(${QCA_LIB_NAME} ${COREFOUNDATION_LIBRARY} ${COREFOUNDATION_LIBRARY_SECURITY})
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  if(OSX_FRAMEWORK AND NOT USE_RELATIVE_PATHS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  if(NOT USE_RELATIVE_PATHS)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     set_target_properties(${QCA_LIB_NAME} PROPERTIES
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                           INSTALL_NAME_DIR "${QCA_LIBRARY_INSTALL_DIR}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     )
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/files/patch-qca210-qt550.diff b/devel/qca/files/qt5/patch-qca210-qt550.diff
</span>similarity index 100%
rename from devel/qca/files/patch-qca210-qt550.diff
rename to devel/qca/files/qt5/patch-qca210-qt550.diff
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/qca/files/qt5/patch-support-older-qt5.diff b/devel/qca/files/qt5/patch-support-older-qt5.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..fca91eff922
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/qca/files/qt5/patch-support-older-qt5.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,258 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/CMakeLists.txt b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 6e290245cb9d4c7b6a208dbe245aab3105f4fd0a..ffaeaf43d6d8da08084dabe9a649827427946537 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/CMakeLists.txt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -50,7 +50,8 @@ if(QT6)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ else()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   message(STATUS "Building Qt 5 version")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+   set(Qt5_NO_LINK_QTMAIN ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-  find_package(Qt5 5.14 REQUIRED Core)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  # Support down to Qt 5.6 (aka OS X 10.7)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++  find_package(Qt5 5.6 REQUIRED Core)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ endif()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set(CMAKE_AUTOMOC ON)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/plugins/qca-gnupg/gpgaction.cpp b/plugins/qca-gnupg/gpgaction.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index c739dd1a7f63c18fe68f256ac91622299460215e..22efab0d2a0171da55173269d4a785d36cc2d501 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/plugins/qca-gnupg/gpgaction.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/plugins/qca-gnupg/gpgaction.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -586,6 +586,12 @@ void GpgAction::processStatusLine(const QString &line)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QString s, rest;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     s = nextArg(line, &rest);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const auto splitPars = Qt::SkipEmptyParts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const auto splitPars = QString::SkipEmptyParts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (s == QLatin1String("NODATA")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         // only set this if it'll make it better
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (curError == GpgOp::ErrorUnknown)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -665,12 +671,12 @@ void GpgAction::processStatusLine(const QString &line)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output.verifyResult = GpgOp::VerifyBad;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (s == QLatin1String("ERRSIG")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output.wasSigned       = true;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        const QStringList list = rest.split(QLatin1Char(' '), Qt::SkipEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        const QStringList list = rest.split(QLatin1Char(' '), splitPars);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output.signerId        = list[0];
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output.timestamp       = getTimestamp(list[4]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output.verifyResult    = GpgOp::VerifyNoKey;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (s == QLatin1String("VALIDSIG")) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        const QStringList list = rest.split(QLatin1Char(' '), Qt::SkipEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        const QStringList list = rest.split(QLatin1Char(' '), splitPars);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         output.timestamp       = getTimestamp(list[2]);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/plugins/qca-gnupg/utils.cpp b/plugins/qca-gnupg/utils.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index f4ecffa013e51d505938b9393a8196edff252583..8ee4fc3fb987b3dea78f910ef995c16487b65158 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/plugins/qca-gnupg/utils.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/plugins/qca-gnupg/utils.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -130,7 +130,12 @@ QString find_bin()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     const QString pathSep = QStringLiteral(":");
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    QStringList paths = QString::fromLocal8Bit(qgetenv("PATH")).split(pathSep, Qt::SkipEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const auto splitPars = Qt::SkipEmptyParts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const auto splitPars = QString::SkipEmptyParts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    QStringList paths = QString::fromLocal8Bit(qgetenv("PATH")).split(pathSep, splitPars);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #ifdef Q_OS_MAC
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // On Mac OS bundled always uses system default PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/plugins/qca-logger/qca-logger.cpp b/plugins/qca-logger/qca-logger.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a80cc365e268f5d88a8eed988ee8cfc61008a6b6..e77afdf9a4fd3c5160224e8facb422815c872fdd 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/plugins/qca-logger/qca-logger.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/plugins/qca-logger/qca-logger.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -25,6 +25,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdlib>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define ENDL Qt::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define ENDL endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ using namespace QCA;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace loggerQCAPlugin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -47,14 +53,14 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void logTextMessage(const QString &message, enum QCA::Logger::Severity severity) override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        _stream << now() << " " << severityName(severity) << " " << message << Qt::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _stream << now() << " " << severityName(severity) << " " << message << ENDL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void logBinaryMessage(const QByteArray &blob, enum QCA::Logger::Severity severity) override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         Q_UNUSED(blob);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         _stream << now() << " " << severityName(severity) << " "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                << "Binary blob not implemented yet" << Qt::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                << "Binary blob not implemented yet" << ENDL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/qca_cert.cpp b/src/qca_cert.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 610cd1f1a66c9b793274678786b64f480b48516a..12b4663c1a113865923001d5bc851471c826405c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/qca_cert.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/qca_cert.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -32,6 +32,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include <cstdlib>
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define SPLITPARS Qt::KeepEmptyParts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define SPLITPARS QString::KeepEmptyParts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ namespace QCA {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ Provider::Context *getContext(const QString &type, const QString &provider);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1250,7 +1256,7 @@ static QByteArray ipaddr_str2bin(const QString &str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // ipv6
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (str.contains(QLatin1Char(':'))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        const QStringList parts = str.split(QLatin1Char(':'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        const QStringList parts = str.split(QLatin1Char(':'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (parts.count() < 3 || parts.count() > 8)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return QByteArray();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1307,7 +1313,7 @@ static QByteArray ipaddr_str2bin(const QString &str)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return ipv6;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     } else if (str.contains(QLatin1Char('.'))) {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        const QStringList parts = str.split(QLatin1Char('.'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        const QStringList parts = str.split(QLatin1Char('.'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         if (parts.count() != 4)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             return QByteArray();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1349,7 +1355,7 @@ static bool cert_match_domain(const QString &certname, const QString &acedomain)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // hack into parts, and require at least 1 part
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    const QStringList parts_name = name.split(QLatin1Char('.'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const QStringList parts_name = name.split(QLatin1Char('.'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (parts_name.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -1361,7 +1367,7 @@ static bool cert_match_domain(const QString &certname, const QString &acedomain)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (parts_name.count() >= 2 && parts_name[parts_name.count() - 2].contains(QLatin1Char('*')))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    const QStringList parts_compare = acedomain.split(QLatin1Char('.'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const QStringList parts_compare = acedomain.split(QLatin1Char('.'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (parts_compare.isEmpty())
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         return false;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/src/qca_core.cpp b/src/qca_core.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index 19cbff9afcd89b6e99a60f17786a3f9102c63a42..1be2cb895ef6d844b4130a36342743335ec9654c 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/src/qca_core.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/src/qca_core.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -353,7 +353,12 @@ bool isSupported(const QStringList &features, const QString &provider)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ bool isSupported(const char *features, const QString &provider)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    return isSupported(QString::fromLatin1(features).split(QLatin1Char(','), Qt::SkipEmptyParts), provider);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const auto splitPars = Qt::SkipEmptyParts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const auto splitPars = QString::SkipEmptyParts;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    return isSupported(QString::fromLatin1(features).split(QLatin1Char(','), splitPars), provider);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ QStringList supportedFeatures()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/tools/qcatool/main.cpp b/tools/qcatool/main.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index b9ad99742df241d95745d362898b52675a22e3d6..ba009b9832ecf8e862bf89263ffcec5362f59b06 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/tools/qcatool/main.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/tools/qcatool/main.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -31,6 +31,14 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "import_plugins.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define ENDL Qt::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define SPLITPARS Qt::KeepEmptyParts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define ENDL endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define SPLITPARS QString::KeepEmptyParts
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *const APPNAME = "qcatool";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *const EXENAME = "qcatool";
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ const char *const VERSION = QCA_VERSION_STR;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -85,14 +93,14 @@ public:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void logTextMessage(const QString &message, enum QCA::Logger::Severity severity) override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-        _stream << now() << " " << severityName(severity) << " " << message << Qt::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        _stream << now() << " " << severityName(severity) << " " << message << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     void logBinaryMessage(const QByteArray &blob, enum QCA::Logger::Severity severity) override
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         Q_UNUSED(blob);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         _stream << now() << " " << severityName(severity) << " "
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-                << "Binary blob not implemented yet" << Qt::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++                << "Binary blob not implemented yet" << endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ private:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -124,7 +132,7 @@ static void output_plugin_diagnostic_text()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QCA::clearPluginDiagnosticText();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (str[str.length() - 1] == QLatin1Char('\n'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         str.truncate(str.length() - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    const QStringList lines = str.split(QLatin1Char('\n'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const QStringList lines = str.split(QLatin1Char('\n'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (int n = 0; n < lines.count(); ++n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fprintf(stderr, "plugin: %s\n", qPrintable(lines[n]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -135,7 +143,7 @@ static void output_keystore_diagnostic_text()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QCA::KeyStoreManager::clearDiagnosticText();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (str[str.length() - 1] == QLatin1Char('\n'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         str.truncate(str.length() - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    const QStringList lines = str.split(QLatin1Char('\n'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const QStringList lines = str.split(QLatin1Char('\n'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (int n = 0; n < lines.count(); ++n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fprintf(stderr, "keystore: %s\n", qPrintable(lines[n]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -145,7 +153,7 @@ static void output_message_diagnostic_text(QCA::SecureMessage *msg)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QString str = msg->diagnosticText();
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     if (str[str.length() - 1] == QLatin1Char('\n'))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         str.truncate(str.length() - 1);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    const QStringList lines = str.split(QLatin1Char('\n'), Qt::KeepEmptyParts);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    const QStringList lines = str.split(QLatin1Char('\n'), SPLITPARS);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     for (int n = 0; n < lines.count(); ++n)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         fprintf(stderr, "message: %s\n", qPrintable(lines[n]));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+diff --git a/unittest/bigintunittest/bigintunittest.cpp b/unittest/bigintunittest/bigintunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+index a94d15cc4db598d42b6d6d884be9a6186d27e76c..c4b6812034f50e6206d83e3d292df60cf315b5b6 100644
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- a/unittest/bigintunittest/bigintunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ b/unittest/bigintunittest/bigintunittest.cpp
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -30,6 +30,12 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #include "import_plugins.h"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ #endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#if QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define ENDL Qt::endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#   define ENDL endl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++#endif
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ class BigIntUnitTest : public QObject
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     Q_OBJECT
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -87,7 +93,7 @@ void BigIntUnitTest::allTests()
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Check if the stream operator is any good
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QString     testString;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QTextStream ts(&testString, QIODevice::WriteOnly);
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    ts << a << b << c << Qt::endl;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    ts << a << b << c << ENDL;
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     QCOMPARE(testString, QStringLiteral("4000000000000-40000000000002000000000000\n"));
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     // Botan's addition tests
</span></pre><pre style='margin:0'>

</pre>