From e8ae6f8f4cc406bf0e2cbdee10d4d45d1b21d485 Mon Sep 17 00:00:00 2001 From: Sergei Reznikov Date: Tue, 3 Nov 2015 13:11:56 +0300 Subject: [PATCH] qca: add recipe and patch for version 2.1.1 --- app-crypt/qca/patches/qca-2.1.1.patchset | 77 ++++++++++++++++++++ app-crypt/qca/qca-2.1.1.recipe | 91 ++++++++++++++++++++++++ 2 files changed, 168 insertions(+) create mode 100644 app-crypt/qca/patches/qca-2.1.1.patchset create mode 100644 app-crypt/qca/qca-2.1.1.recipe diff --git a/app-crypt/qca/patches/qca-2.1.1.patchset b/app-crypt/qca/patches/qca-2.1.1.patchset new file mode 100644 index 000000000..6e99800e1 --- /dev/null +++ b/app-crypt/qca/patches/qca-2.1.1.patchset @@ -0,0 +1,77 @@ +From fc1d9a0c193fbe837e386e4d3b0dd3db296f354b Mon Sep 17 00:00:00 2001 +From: Sergei Reznikov +Date: Tue, 13 Oct 2015 12:07:31 +0300 +Subject: QCA2: fix compilation on Haiku/GCC4. + + +diff --git a/plugins/qca-ossl/qca-ossl.cpp b/plugins/qca-ossl/qca-ossl.cpp +index cfb1e9f..95b2bc4 100644 +--- a/plugins/qca-ossl/qca-ossl.cpp ++++ b/plugins/qca-ossl/qca-ossl.cpp +@@ -5805,7 +5805,7 @@ public: + { + SessionInfo sessInfo; + +- sessInfo.isCompressed = (0 != SSL_SESSION_get_compress_id(ssl->session)); ++ sessInfo.isCompressed = (0 != ssl->session->compress_meth); + + if (ssl->version == TLS1_VERSION) + sessInfo.version = TLS::TLS_v1; +diff --git a/src/botantools/botan/ml_unix/mlock.cpp b/src/botantools/botan/ml_unix/mlock.cpp +index 109609c..c88b23b 100644 +--- a/src/botantools/botan/ml_unix/mlock.cpp ++++ b/src/botantools/botan/ml_unix/mlock.cpp +@@ -52,7 +52,9 @@ namespace Botan { + *************************************************/ + void lock_mem(void* ptr, u32bit bytes) + { ++ #ifndef __HAIKU__ + mlock(ptr, bytes); ++ #endif + } + + /************************************************* +@@ -60,7 +62,9 @@ void lock_mem(void* ptr, u32bit bytes) + *************************************************/ + void unlock_mem(void* ptr, u32bit bytes) + { ++ #ifndef __HAIKU__ + munlock(ptr, bytes); ++ #endif + } + + } +diff --git a/src/qca_tools.cpp b/src/qca_tools.cpp +index cef2b79..44357c0 100644 +--- a/src/qca_tools.cpp ++++ b/src/qca_tools.cpp +@@ -44,11 +44,13 @@ static bool can_lock() + #endif + + MLOCK_TYPE d = MLOCK_TYPE_CAST malloc(256); ++ #ifndef __HAIKU__ + if(mlock(d, 256) == 0) + { + munlock(d, 256); + ok = true; + } ++ #endif + free(d); + return ok; + #else +diff --git a/src/support/console.cpp b/src/support/console.cpp +index c3c5570..0d5c5d2 100644 +--- a/src/support/console.cpp ++++ b/src/support/console.cpp +@@ -30,7 +30,7 @@ + #ifdef Q_OS_WIN + # include + #else +-# ifdef Q_OS_ANDROID ++# if defined(Q_OS_ANDROID) || defined(Q_OS_HAIKU) + # include + # else + # include +-- +2.2.2 + diff --git a/app-crypt/qca/qca-2.1.1.recipe b/app-crypt/qca/qca-2.1.1.recipe new file mode 100644 index 000000000..2150609ac --- /dev/null +++ b/app-crypt/qca/qca-2.1.1.recipe @@ -0,0 +1,91 @@ +SUMMARY="Qt Cryptographic Architecture" +DESCRIPTION="QCA aims to provide a straightforward and cross-platform \ +crypto API, using Qt datatypes and conventions. QCA separates the API from \ +the implementation, using plugins known as Providers. The advantage of this \ +model is to allow applications to avoid linking to or explicitly depending \ +on any particular cryptographic library. This allows one to easily change or \ +upgrade crypto implementations without even needing to recompile the \ +application!" +HOMEPAGE="http://delta.affinix.com/qca/" +SOURCE_URI="http://download.kde.org/stable/qca/2.1.1/src/qca-$portVersion.tar.xz" +CHECKSUM_SHA256="95de3e7910b5f9ec7084169989c9d98bfb527e6a4865fe17269c3b24308be983" +SOURCE_DIR="qca-$portVersion" +REVISION="1" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2003-2015 Justin Karneges" + +PATCHES="qca-$portVersion.patchset" + +ARCHITECTURES="!x86_gcc2 x86 x86_64" +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qca2$secondaryArchSuffix = $portVersion + cmd:mozcerts_qt5$secondaryArchSuffix = $portVersion + cmd:qcatool_qt5$secondaryArchSuffix = $portVersion + cmd:qcatool2$secondaryArchSuffix = $portVersion + lib:libqca$secondaryArchSuffix = $portVersion + " +PROVIDES_devel=" + libqca${secondaryArchSuffix}_devel + devel:libqca$secondaryArchSuffix + " +REQUIRES=" + haiku$secondaryArchSuffix + lib:libqca_qt5_x86$secondaryArchSuffix + ca_root_certificates + " +REQUIRES_devel=" + haiku${secondaryArchSuffix}_devel + qca2$secondaryArchSuffix == $portVersion base + " +BUILD_PREREQUIRES=" + cmd:which + cmd:cmake + cmd:make + cmd:g++$secondaryArchSuffix + cmd:pkg_config$secondaryArchSuffix + " +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel + devel:libqt5$secondaryArchSuffix + devel:libssl$secondaryArchSuffix + devel:libgsasl$secondaryArchSuffix + devel:libnss3$secondaryArchSuffix + " + +BUILD() +{ + #TODO: remove when Qt5 package is fixed + export Qt5Core_DIR=/system/data/cmake/Modules/Qt5Core + export Qt5Network_DIR=/system/data/cmake/Modules/Qt5Network + export Qt5Test_DIR=/system/data/cmake/Modules/Qt5Test + + export QC_CERTSTORE_PATH=/system/data/ssl/CARootCertificates.pem + + cmake . -DCMAKE_INSTALL_PREFIX=$prefix \ + -DQCA_PLUGINS_INSTALL_DIR=$libDir \ + -DQCA_BINARY_INSTALL_DIR=$binDir \ + -DQCA_LIBRARY_INSTALL_DIR=$libDir \ + -DQCA_FEATURE_INSTALL_DIR=$dataDir/Qt/mkspecs/features \ + -DQCA_INCLUDE_INSTALL_DIR=$includeDir \ + -DQCA_PRIVATE_INCLUDE_INSTALL_DIR=$includeDir \ + -DQCA_DOC_INSTALL_DIR=$docDir \ + -DQCA_MAN_INSTALL_DIR=$manDir \ + -DPKGCONFIG_INSTALL_PREFIX=$developLibDir/pkgconfig + + make $jobArgs +} + +INSTALL() +{ + rm -f bin/qcatool2.debug + rm -f lib/libqca.so.2.0.3.debug + + make install + fixPkgconfig + + packageEntries devel \ + $developDir \ + $dataDir/Qt/mkspecs +}