diff --git a/server/auth/libpwquality/actions.py b/server/auth/libpwquality/actions.py
new file mode 100644
index 0000000000..57d01c98bb
--- /dev/null
+++ b/server/auth/libpwquality/actions.py
@@ -0,0 +1,25 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/copyleft/gpl.txt
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import get
+from pisi.actionsapi import pisitools
+
+def setup():
+ autotools.configure("--prefix=/usr \
+ --sysconfdir=/etc \
+ --with-securedir=/lib/security \
+ --disable-python-bindings \
+ --disable-static")
+
+ pisitools.dosed("libtool", " -shared ", " -Wl,-O1,--as-needed -shared ")
+
+def build():
+ autotools.make()
+
+def install():
+ autotools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ pisitools.dodoc("ABOUT*", "AUTHORS", "ChangeLog", "COPYING", "README")
diff --git a/server/auth/libpwquality/pspec.xml b/server/auth/libpwquality/pspec.xml
new file mode 100644
index 0000000000..b07d9a70ae
--- /dev/null
+++ b/server/auth/libpwquality/pspec.xml
@@ -0,0 +1,104 @@
+
+
+
+
+ libpwquality
+ https://fedorahosted.org/libpwquality/
+
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+ GPLv2
+ library
+ Password quality checking
+ The libpwquality package contains a library used for password quality checking and generation of random passwords that pass the checks
+ https://fedorahosted.org/releases/l/i/libpwquality/libpwquality-1.2.4.tar.bz2
+
+ cracklib-devel
+ pam-devel
+
+
+
+
+ libpwquality
+
+ cracklib
+ pam
+
+
+ /lib
+ /etc/security
+ /usr/lib
+ /usr/share/man/man1
+ /usr/share/man/man5
+ /usr/share/man/man8
+ /usr/share/doc/libpwquality
+ /usr/share/locale
+ /usr/bin
+
+
+
+
+ libpwquality-devel
+ libpwquality için geliştirme dosyaları
+
+ libpwquality
+
+
+ /usr/include
+ /usr/lib/pkgconfig
+
+
+
+
+
+ 2015-01-23
+ 1.2.4
+ Version bump.
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+ 2014-06-01
+ 1.2.3
+ Version bump.
+ Alihan Öztürk
+ alihan@pisilinux.org
+
+
+ 2014-02-20
+ 1.2.2
+ Rebuild Unused
+ Varol Maksutoğlu
+ waroi@pisilinux.org
+
+
+ 2013-10-12
+ 1.2.2
+ V.Bump
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+ 2013-07-28
+ 1.2.1
+ Move pc files to devel pack, rebuild
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+ 2013-03-04
+ 1.2.1
+ Version bump.
+ Yusuf Aydemir
+ yusuf.aydemir@pisilinux.org
+
+
+ 2012-10-01
+ 1.2.0
+ First release
+ Osman Erkan
+ osman.erkan@pisilinux.org
+
+
+
diff --git a/server/auth/libpwquality/translations.xml b/server/auth/libpwquality/translations.xml
new file mode 100644
index 0000000000..f27e356444
--- /dev/null
+++ b/server/auth/libpwquality/translations.xml
@@ -0,0 +1,13 @@
+
+
+
+ libpwquality
+ Password quality checking
+ The libpwquality package contains a library used for password quality checking and generation of random passwords that pass the checks.
+
+
+
+ libpwquality-devel
+ libpwquality için geliştirme dosyaları
+
+
diff --git a/util/crypt/qca2-qt5/actions.py b/util/crypt/qca2-qt5/actions.py
new file mode 100644
index 0000000000..382f3b7686
--- /dev/null
+++ b/util/crypt/qca2-qt5/actions.py
@@ -0,0 +1,35 @@
+#!/usr/bin/python
+# -*- coding: utf-8 -*-
+#
+# Licensed under the GNU General Public License, version 3.
+# See the file http://www.gnu.org/copyleft/gpl.txt.
+
+from pisi.actionsapi import autotools
+from pisi.actionsapi import pisitools
+from pisi.actionsapi import get
+from pisi.actionsapi import cmaketools
+from pisi.actionsapi import shelltools
+
+def setup():
+ shelltools.makedirs("build")
+
+ shelltools.cd("build")
+ cmaketools.configure("-DCMAKE_INSTALL_PREFIX=/usr \
+ -DBUILD_TESTS=OFF \
+ -DQCA_SUFFIX=qt5 \
+ -DQCA_INSTALL_IN_QT_PREFIX=ON", sourceDir="..")
+
+
+def build():
+ shelltools.cd("build")
+ cmaketools.make()
+
+def install():
+ shelltools.cd("build")
+ cmaketools.rawInstall("DESTDIR=%s" % get.installDIR())
+
+ shelltools.cd("..")
+ pisitools.dodoc("README", "TODO", "COPYING")
+
+ pisitools.domove("/usr/share/qt5/man/man1/qcatool-qt5.1", "/usr/share/man/man1/qcatool-qt5.1")
+ pisitools.removeDir("/usr/share/qt5")
diff --git a/util/crypt/qca2-qt5/files/qca-2.0.3+gcc-4.7.patch b/util/crypt/qca2-qt5/files/qca-2.0.3+gcc-4.7.patch
new file mode 100644
index 0000000000..f2ed73fca2
--- /dev/null
+++ b/util/crypt/qca2-qt5/files/qca-2.0.3+gcc-4.7.patch
@@ -0,0 +1,59 @@
+--- src/botantools/botan/botan/secmem.h.orig 2012/01/14 16:09:19 1273507
++++ src/botantools/botan/botan/secmem.h 2012/01/14 17:12:15 1273508
+@@ -191,15 +191,15 @@
+ {
+ public:
+ MemoryVector& operator=(const MemoryRegion& in)
+- { if(this != &in) set(in); return (*this); }
++ { if(this != &in) this->set(in); return (*this); }
+
+ MemoryVector(u32bit n = 0) { MemoryRegion::init(false, n); }
+ MemoryVector(const T in[], u32bit n)
+- { MemoryRegion::init(false); set(in, n); }
++ { MemoryRegion::init(false); this->set(in, n); }
+ MemoryVector(const MemoryRegion& in)
+- { MemoryRegion::init(false); set(in); }
++ { MemoryRegion::init(false); this->set(in); }
+ MemoryVector(const MemoryRegion& in1, const MemoryRegion& in2)
+- { MemoryRegion::init(false); set(in1); append(in2); }
++ { MemoryRegion::init(false); this->set(in1); append(in2); }
+ };
+
+ /*************************************************
+@@ -210,15 +210,15 @@
+ {
+ public:
+ SecureVector& operator=(const MemoryRegion& in)
+- { if(this != &in) set(in); return (*this); }
++ { if(this != &in) this->set(in); return (*this); }
+
+ 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); }
+ };
+
+ /*************************************************
+@@ -229,14 +229,14 @@
+ {
+ public:
+ SecureBuffer& operator=(const SecureBuffer& in)
+- { if(this != &in) set(in); return (*this); }
++ { if(this != &in) this->set(in); return (*this); }
+
+ SecureBuffer() { MemoryRegion::init(true, L); }
+ SecureBuffer(const T in[], u32bit n)
+ { MemoryRegion::init(true, L); copy(in, n); }
+ private:
+ SecureBuffer& operator=(const MemoryRegion& in)
+- { if(this != &in) set(in); return (*this); }
++ { if(this != &in) this->set(in); return (*this); }
+ };
+
+ }
diff --git a/util/crypt/qca2-qt5/files/qca2-sha2-digest-support-kde-svn-992617.diff b/util/crypt/qca2-qt5/files/qca2-sha2-digest-support-kde-svn-992617.diff
new file mode 100644
index 0000000000..43b60692ef
--- /dev/null
+++ b/util/crypt/qca2-qt5/files/qca2-sha2-digest-support-kde-svn-992617.diff
@@ -0,0 +1,15 @@
+--- trunk/kdesupport/qca/include/QtCrypto/qca_publickey.h 2008/05/16 20:41:50 808523
++++ trunk/kdesupport/qca/include/QtCrypto/qca_publickey.h 2009/07/07 12:24:51 992617
+@@ -68,7 +68,11 @@
+ EMSA3_MD5, ///< MD5, with EMSA3 (ie PKCS#1 Version 1.5) encoding (this is the usual RSA algorithm)
+ EMSA3_MD2, ///< MD2, with EMSA3 (ie PKCS#1 Version 1.5) encoding
+ EMSA3_RIPEMD160, ///< RIPEMD160, with EMSA3 (ie PKCS#1 Version 1.5) encoding
+- EMSA3_Raw ///< EMSA3 without computing a message digest or a DigestInfo encoding (identical to PKCS#11's CKM_RSA_PKCS mechanism)
++ EMSA3_Raw, ///< EMSA3 without computing a message digest or a DigestInfo encoding (identical to PKCS#11's CKM_RSA_PKCS mechanism)
++ EMSA3_SHA224, ///< SHA224, with EMSA3 (ie PKCS#1 Version 1.5) encoding
++ EMSA3_SHA256, ///< SHA256, with EMSA3 (ie PKCS#1 Version 1.5) encoding
++ EMSA3_SHA384, ///< SHA384, with EMSA3 (ie PKCS#1 Version 1.5) encoding
++ EMSA3_SHA512 ///< SHA512, with EMSA3 (ie PKCS#1 Version 1.5) encoding
+ };
+
+ /**
diff --git a/util/crypt/qca2-qt5/files/qiodevice.patch b/util/crypt/qca2-qt5/files/qiodevice.patch
new file mode 100644
index 0000000000..e6b18a2da9
--- /dev/null
+++ b/util/crypt/qca2-qt5/files/qiodevice.patch
@@ -0,0 +1,23 @@
+From: Hrvoje Senjan
+Date: Sat, 17 Jan 2015 19:12:18 +0000
+Subject: Add missing QIODevice include
+X-Git-Url: http://quickgit.kde.org/?p=qca.git&a=commitdiff&h=7207e6285e932044cd66d49d0dc484666cfb0092
+---
+Add missing QIODevice include
+
+Fixes build with Qt 5.5
+---
+
+
+--- a/include/QtCrypto/qca_basic.h
++++ b/include/QtCrypto/qca_basic.h
+@@ -35,6 +35,8 @@
+
+ #include "qca_core.h"
+
++#include
++
+ // Qt5 comes with QStringLiteral for wrapping string literals, which Qt4 does
+ // not have. It is needed if the headers are built with QT_NO_CAST_FROM_ASCII.
+ // Defining it here as QString::fromUtf8 for convenience.
+
diff --git a/util/crypt/qca2-qt5/pspec.xml b/util/crypt/qca2-qt5/pspec.xml
new file mode 100644
index 0000000000..5d72b4024c
--- /dev/null
+++ b/util/crypt/qca2-qt5/pspec.xml
@@ -0,0 +1,67 @@
+
+
+
+
+ qca2-qt5
+ http://delta.affinix.com/download/qca/2.0/
+
+ PisiLinux Community
+ admins@pisilinux.org
+
+ LGPLv2.1
+ library
+ Cryptographic Architecture for QT4
+ 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. QCA2 has been re-written for QT4.
+ http://delta.affinix.com/download/qca/2.0/qca-2.1.0.tar.gz
+
+ qt5-base-devel
+ nss-devel
+ doxygen
+ cmake
+
+
+
+
+
+
+
+ qca2-qt5
+
+ qt5-base
+ nss
+
+
+ /usr/bin
+ /usr/qt/4/bin
+ /usr/lib
+ /usr/share/doc
+ /usr/share/man
+ /usr/share/qca
+
+
+
+
+ qca2-qt5-devel
+ Development files for qca2
+
+ qca2-qt5
+ qt5-base-devel
+
+
+ /usr/include/qt5/QtCrypto
+ /usr/lib/pkgconfig/qca2.pc
+ /usr/share/qt4/mkspecs/features
+
+
+
+
+
+ 2015-07-23
+ 2.1.0
+ First release
+ Ertuğrul Erata
+ ertugrulerata@gmail.com
+
+
+
diff --git a/util/crypt/qca2-qt5/translations.xml b/util/crypt/qca2-qt5/translations.xml
new file mode 100644
index 0000000000..3322233183
--- /dev/null
+++ b/util/crypt/qca2-qt5/translations.xml
@@ -0,0 +1,13 @@
+
+
+
+ qca2
+ QT4 için Kriptografik Mimari
+ QCA Qt veri tiplerini kullanarak platform bağımsız bir kripto uygulama programlama arayüzü oluşturmayı amaçlar.
+
+
+
+ qca2-devel
+ qca2 için geliştirme dosyaları
+
+