diff --git a/dev-qt/qca2/patches/qca2-2.0.3.patch b/dev-qt/qca2/patches/qca2-2.0.3.patch new file mode 100644 index 000000000..d66df0a44 --- /dev/null +++ b/dev-qt/qca2/patches/qca2-2.0.3.patch @@ -0,0 +1,89 @@ +From 0da2415bc15c2abe6385e2048fecb8d42dc549b7 Mon Sep 17 00:00:00 2001 +From: Augustin Cavalier +Date: Fri, 11 Jul 2014 14:10:37 -0400 +Subject: [PATCH] QCA2: fix compilation on Haiku/GCC4. + +--- + src/botantools/botan/botan/secmem.h | 6 +++--- + src/botantools/botan/ml_unix/mlock.cpp | 4 ++++ + src/qca_tools.cpp | 2 ++ + src/support/console.cpp | 2 +- + 4 files changed, 10 insertions(+), 4 deletions(-) + +diff --git a/src/botantools/botan/botan/secmem.h b/src/botantools/botan/botan/secmem.h +index f421220..ddbb733 100644 +--- a/src/botantools/botan/botan/secmem.h ++++ b/src/botantools/botan/botan/secmem.h +@@ -214,11 +214,11 @@ class SecureVector : public MemoryRegion + + SecureVector(u32bit n = 0) { MemoryRegion::init(true, n); } + SecureVector(const T in[], u32bit n) +- { MemoryRegion::init(true); set(in, n); } ++ { MemoryRegion::init(true); this->set(in, n); } + SecureVector(const MemoryRegion& in) +- { MemoryRegion::init(true); set(in); } ++ { MemoryRegion::init(true); this->set(in); } + SecureVector(const MemoryRegion& in1, const MemoryRegion& in2) +- { MemoryRegion::init(true); set(in1); append(in2); } ++ { MemoryRegion::init(true); this->set(in1); append(in2); } + }; + + /************************************************* +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 8cb19dd..b6ffec6 100644 +--- a/src/support/console.cpp ++++ b/src/support/console.cpp +@@ -30,7 +30,7 @@ + #ifdef Q_OS_WIN + # include + #else +-# include ++# include + # include + # include + #endif +-- +1.8.3.4 + diff --git a/dev-qt/qca2/qca2-2.0.3.recipe b/dev-qt/qca2/qca2-2.0.3.recipe new file mode 100644 index 000000000..eb1c9ebe4 --- /dev/null +++ b/dev-qt/qca2/qca2-2.0.3.recipe @@ -0,0 +1,87 @@ +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/" +SRC_URI="https://delta.affinix.com/download/qca/2.0/qca-2.0.3.tar.bz2" +CHECKSUM_SHA256="8da20c89f390954fdcfcd3c4deef379213ddb5ae9d6b5e0c917d23f5e474895f" +SOURCE_DIR="qca-$portVersion" +REVISION="1" +LICENSE="GNU LGPL v2.1" +COPYRIGHT="2003-2014 Justin Karneges" + +PATCHES="qca2-$portVersion.patch" + +ARCHITECTURES="x86" +if [ $effectiveTargetArchitecture != x86_gcc2 ]; then + # x86_gcc2 is fine as primary target architecture as long as we're building + # for a different secondary architecture. + ARCHITECTURES="$ARCHITECTURES x86_gcc2" +fi +SECONDARY_ARCHITECTURES="x86" + +PROVIDES=" + qca2$secondaryArchSuffix = $portVersion + cmd:qcatool2$secondaryArchSuffix = $portVersion + lib:libqca$secondaryArchSuffix = $portVersion + " + +PROVIDES_devel=" + devel:libqca$secondaryArchSuffix + " + +REQUIRES=" + haiku$secondaryArchSuffix >= $haikuVersion + libqt4$secondaryArchSuffix >= 4.8 + ca_root_certificates + " + +REQUIRES_devel=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + libqt4${secondaryArchSuffix}_devel >= 4.8 + qca2$secondaryArchSuffix == $portVersion base + " + +BUILD_PREREQUIRES=" + cmd:which + cmd:qmake$secondaryArchSuffix + cmd:make + cmd:g++$secondaryArchSuffix + " + +BUILD_REQUIRES=" + haiku${secondaryArchSuffix}_devel >= $haikuVersion + libqt4${secondaryArchSuffix}_devel >= 4.8 + " + +BUILD() +{ + # not an autotools configure + ./configure --prefix=$prefix --bindir=$binDir --includedir=$includeDir \ + --libdir=$libDir --datadir=$dataDir --disable-tests --release \ + --certstore-path=/system/data/ssl/CARootCertificates.pem + make $jobArgs +} + +INSTALL() +{ + rm -f bin/qcatool2.debug + rm -f lib/libqca.so.2.0.3.debug + + make install + fixPkgconfig + + # manually copy the mkspec since "make install" tries to install it + # into a packaged directory and fails + mkdir -p $dataDir/Qt/mkspecs/features/ + cp -f crypto.prf $dataDir/Qt/mkspecs/features/ + + prepareInstalledDevelLibs libqca + packageEntries devel \ + $developDir \ + $dataDir/Qt/mkspecs/ +}