From 34e8da00ccfbb0f6d50c78dfce6ada72a971c568 Mon Sep 17 00:00:00 2001 From: Peter-Levine Date: Thu, 13 Oct 2016 18:40:20 -0400 Subject: [PATCH] dev-libs/beecrypt: Allow for compiling with GCC 6 Gentoo-bug: 596904 * EAPI=6 * Improve DOCS and HTML_DOCS handling * Minor QA fixes Closes: https://github.com/gentoo/gentoo/pull/2551 Signed-off-by: David Seifert --- dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild | 91 +++++++++++++++++++ ...2.1-c++11-allow-throw-in-destructors.patch | 26 ++++++ .../files/beecrypt-4.2.1-gcc-4.7.patch | 4 +- 3 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild create mode 100755 dev-libs/beecrypt/files/beecrypt-4.2.1-c++11-allow-throw-in-destructors.patch diff --git a/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild b/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild new file mode 100644 index 0000000000000..fe156b42d4997 --- /dev/null +++ b/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild @@ -0,0 +1,91 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI=6 + +PYTHON_COMPAT=( python2_7 ) + +inherit autotools java-pkg-opt-2 python-single-r1 + +DESCRIPTION="General-purpose cryptography library" +HOMEPAGE="https://sourceforge.net/projects/beecrypt/" +SRC_URI="mirror://sourceforge/beecrypt/${P}.tar.gz" + +LICENSE="GPL-2 LGPL-2" +SLOT="0" +KEYWORDS="alpha amd64 arm hppa ~ia64 ppc ~ppc64 ~s390 ~sh ~sparc x86 ~x86-fbsd ~amd64-linux ~arm-linux ~x86-linux ~ppc-macos" +IUSE="+threads java cxx python static-libs doc" +REQUIRED_USE="cxx? ( threads ) + python? ( ${PYTHON_REQUIRED_USE} )" + +COMMON_DEPEND="!=dev-libs/icu-2.8:= ) + python? ( ${PYTHON_DEPS} )" + +DEPEND="${COMMON_DEPEND} + java? ( >=virtual/jdk-1.4 ) + doc? ( app-doc/doxygen + virtual/latex-base + dev-texlive/texlive-fontsextra + )" +RDEPEND="${COMMONDEPEND} + java? ( >=virtual/jre-1.4 )" + +DOCS=( BUGS README BENCHMARKS NEWS ) +PATCHES=( + "${FILESDIR}"/${P}-build-system.patch + "${FILESDIR}"/${P}-gcc-4.7.patch + + # Fixes bug 596904 + "${FILESDIR}"/${P}-c++11-allow-throw-in-destructors.patch +) + +pkg_setup() { + use python && python-single-r1_pkg_setup + use java && java-pkg-opt-2_pkg_setup +} + +src_prepare() { + default + eautoreconf +} + +src_configure() { + # cplusplus needs threads support + econf \ + --disable-expert-mode \ + $(use_enable static-libs static) \ + $(use_enable threads) \ + $(use_with python python "${PYTHON}") \ + $(use_with cxx cplusplus) \ + $(use_with java) +} + +src_compile() { + default + + if use doc; then + pushd include/beecrypt >/dev/null || die + doxygen || die "doxygen failed" + popd >/dev/null || die + HTML_DOCS=( docs/html/*.{css,html,js,png} ) + fi +} + +src_test() { + export BEECRYPT_CONF_FILE="${T}/beecrypt-test.conf" + echo "provider.1=${S}/c++/provider/.libs/base.so" > "${BEECRYPT_CONF_FILE}" || die + emake check bench +} + +src_install() { + default + + if python; then + rm -f "${D%/}$(python_get_sitedir)"/_bc.*a || die + fi + if ! use static-libs; then + find "${D}" -name '*.la' -delete || die + fi +} diff --git a/dev-libs/beecrypt/files/beecrypt-4.2.1-c++11-allow-throw-in-destructors.patch b/dev-libs/beecrypt/files/beecrypt-4.2.1-c++11-allow-throw-in-destructors.patch new file mode 100755 index 0000000000000..0cb291d8ff15c --- /dev/null +++ b/dev-libs/beecrypt/files/beecrypt-4.2.1-c++11-allow-throw-in-destructors.patch @@ -0,0 +1,26 @@ +--- beecrypt-4.2.1/include/beecrypt/c++/lang/Object.h.old 2016-10-12 18:40:10.878868563 -0400 ++++ beecrypt-4.2.1/include/beecrypt/c++/lang/Object.h 2016-10-12 19:17:22.508857979 -0400 +@@ -145,7 +145,11 @@ + waiter* prev; + + waiter(bc_threadid_t owner, unsigned int lock_count); ++#if __cplusplus < 201103L + ~waiter(); ++#else ++ ~waiter() noexcept(false); ++#endif + }; + + waiter* _lock_head; +--- beecrypt-4.2.1/c++/lang/Object.cxx.old 2016-10-12 18:40:39.024665316 -0400 ++++ beecrypt-4.2.1/c++/lang/Object.cxx 2016-10-12 19:14:41.630529720 -0400 +@@ -767,6 +767,9 @@ + } + + Object::FairMonitor::waiter::~waiter() ++#if __cplusplus >= 201103L ++noexcept(false) ++#endif + { + #if WIN32 + if (!CloseHandle(event)) diff --git a/dev-libs/beecrypt/files/beecrypt-4.2.1-gcc-4.7.patch b/dev-libs/beecrypt/files/beecrypt-4.2.1-gcc-4.7.patch index 64d513bde63f9..dff5d8c04ab9f 100644 --- a/dev-libs/beecrypt/files/beecrypt-4.2.1-gcc-4.7.patch +++ b/dev-libs/beecrypt/files/beecrypt-4.2.1-gcc-4.7.patch @@ -1,5 +1,5 @@ ---- include/beecrypt/c++/util/AbstractSet.h -+++ include/beecrypt/c++/util/AbstractSet.h +--- a/include/beecrypt/c++/util/AbstractSet.h ++++ b/include/beecrypt/c++/util/AbstractSet.h @@ -56,7 +56,7 @@ if (c->size() != size()) return false;