summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'dev-libs/cryptlib/cryptlib-3.4.4_beta.ebuild')
-rw-r--r--dev-libs/cryptlib/cryptlib-3.4.4_beta.ebuild150
1 files changed, 150 insertions, 0 deletions
diff --git a/dev-libs/cryptlib/cryptlib-3.4.4_beta.ebuild b/dev-libs/cryptlib/cryptlib-3.4.4_beta.ebuild
new file mode 100644
index 000000000000..7bca33567f3f
--- /dev/null
+++ b/dev-libs/cryptlib/cryptlib-3.4.4_beta.ebuild
@@ -0,0 +1,150 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 pypy )
+DISTUTILS_OPTIONAL=1
+
+inherit distutils-r1 flag-o-matic multilib toolchain-funcs versionator
+
+MY_PV="${PV//.}"
+MY_PV="${MY_PV//_}"
+
+DESCRIPTION="Powerful security toolkit for adding encryption to software"
+HOMEPAGE="http://www.cs.auckland.ac.nz/~pgut001/cryptlib/"
+DOC_PREFIX="${PN}-$(get_version_component_range 1-2 ${PV}).0"
+SRC_URI="http://www.cypherpunks.to/~peter/cl${MY_PV}.zip
+ doc? ( http://www.cypherpunks.to/~peter/manual.pdf -> ${P}-manual.pdf )"
+
+LICENSE="Sleepycat"
+KEYWORDS=""
+SLOT="0"
+IUSE="doc ldap odbc python static-libs test"
+REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
+
+S="${WORKDIR}"
+
+RDEPEND="sys-libs/zlib
+ ldap? ( net-nds/openldap )
+ odbc? ( dev-db/unixODBC )
+ python? ( ${PYTHON_DEPS} )"
+DEPEND="${RDEPEND}
+ app-arch/unzip"
+
+PATCHES=(
+ "${FILESDIR}/${P}-build.patch"
+)
+
+#
+# test access the network
+# upstream provides no way to disable these
+# tests
+#
+RESTRICT="test"
+
+src_unpack() {
+ # we need the -a option, so we can not use 'unpack'
+ unzip -qoa "${DISTDIR}/cl${MY_PV}.zip" || die
+}
+
+wrap_python() {
+ if use python; then
+ cd bindings || die
+ distutils-r1_${1}
+ fi
+}
+
+pkg_setup() {
+ #
+ # Disable upstream detection
+ # Non standard and hardcoded methods
+ #
+ export DISABLE_AUTODETECT=1
+
+ #
+ # Add our own CFLAGS/CPPFLAGS
+ #
+ export EXTRA_CFLAGS="${CPPFLAGS} ${CFLAGS}"
+}
+
+src_prepare() {
+ default
+
+ #
+ # Make sure we do not use the embedded zlib
+ #
+ rm -fr zlib || die "remove zlib"
+
+ #
+ # Upstream package should not set optimization flags
+ # Or at least allow simple method to disable behavior
+ #
+ sed -i -e "s:-fomit-frame-pointer::g" -e "s:-O2::g" \
+ -e "s:-O3::g" -e "s:-O4::g" makefile || die "sed makefile failed"
+ sed -i -e "s/-march=[[:alnum:]\.=-]*//g" -e "s/-mcpu=[[:alnum:]\.=-]*//g" \
+ -e "s:-O2::g" -e "s:-O3::g" tools/ccopts.sh || die "sed tools/ccopts.sh failed"
+
+ #
+ # Not sure why MAKE = make is required
+ # make sets this to correct value
+ #
+ sed -i -e "/^MAKE/d" makefile || die "sed makefile make failed"
+
+ wrap_python ${FUNCNAME}
+}
+
+src_compile() {
+ use ldap && append-cppflags -DHAS_LDAP
+ use odbc && append-cppflags -DHAS_ODBC
+
+ #
+ # Disable internal zlib dependnecies
+ # For some reason this applied also when
+ # System zlib is being used
+ #
+ COMMON_MAKE_OPTS="ZLIBOBJS= CC=$(tc-getCC) AR=$(tc-getAR) STRIP=true"
+ emake ${COMMON_MAKE_OPTS} shared
+ use static-libs && emake ${COMMON_MAKE_OPTS} default
+ use test && emake ${COMMON_MAKE_OPTS} stestlib
+
+ #
+ # Symlink the libraries.
+ #
+ # Without this:
+ # 1. python will link against the static lib
+ # 2. tests will not work find soname.
+ #
+ # Bad upstream behavior
+ #
+ local libname="libcl.so.$(get_version_component_range 1-3 ${PV})"
+ local solibname="libcl.so.$(get_version_component_range 1-2 ${PV})"
+ ln -s "${libname}" "${solibname}" || die
+ ln -s "${solibname}" libcl.so || die
+
+ if use python; then
+ wrap_python ${FUNCNAME}
+ fi
+}
+
+src_test() {
+ LD_LIBRARY_PATH="." ./stestlib || die "test failed"
+}
+
+src_install() {
+ einstalldocs
+
+ #
+ # Upstream does not provide
+ # a simple target for install
+ #
+ doheader cryptlib.h
+ dolib.so libcl.so*
+ use static-libs && dolib.a libcl.a
+
+ wrap_python ${FUNCNAME}
+
+ if use doc; then
+ newdoc "${DISTDIR}/${P}-manual.pdf" "manual.pdf"
+ fi
+}