public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: dev-libs/beecrypt/files/, dev-libs/beecrypt/
@ 2016-10-23 14:18 David Seifert
  0 siblings, 0 replies; 2+ messages in thread
From: David Seifert @ 2016-10-23 14:18 UTC (permalink / raw
  To: gentoo-commits

commit:     34e8da00ccfbb0f6d50c78dfce6ada72a971c568
Author:     Peter-Levine <plevine457 <AT> gmail <DOT> com>
AuthorDate: Thu Oct 13 22:40:20 2016 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Sun Oct 23 14:17:06 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=34e8da00

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 <soap <AT> gentoo.org>

 dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild         | 91 ++++++++++++++++++++++
 ...pt-4.2.1-c++11-allow-throw-in-destructors.patch | 26 +++++++
 .../beecrypt/files/beecrypt-4.2.1-gcc-4.7.patch    |  4 +-
 3 files changed, 119 insertions(+), 2 deletions(-)

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 00000000..fe156b4
--- /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="!<app-arch/rpm-4.2.1
+	cxx? ( >=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 00000000..0cb291d
--- /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 64d513b..dff5d8c 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;


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* [gentoo-commits] repo/gentoo:master commit in: dev-libs/beecrypt/files/, dev-libs/beecrypt/
@ 2017-12-01 20:25 Ulrich Müller
  0 siblings, 0 replies; 2+ messages in thread
From: Ulrich Müller @ 2017-12-01 20:25 UTC (permalink / raw
  To: gentoo-commits

commit:     e91c58f05f9ebb9cf9d15a1132356051b928fe22
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Fri Dec  1 20:23:04 2017 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Fri Dec  1 20:23:04 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e91c58f0

dev-libs/beecrypt: Fix compilation with >=dev-libs/icu-59.

Closes: https://bugs.gentoo.org/618676
Package-Manager: Portage-2.3.16, Repoman-2.3.6

 dev-libs/beecrypt/Manifest                         |   2 +-
 dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild         |   1 +
 .../beecrypt/files/beecrypt-4.2.1-cast-uchar.patch | 214 +++++++++++++++++++++
 3 files changed, 216 insertions(+), 1 deletion(-)

diff --git a/dev-libs/beecrypt/Manifest b/dev-libs/beecrypt/Manifest
index de57828f34d..0fc625fdb93 100644
--- a/dev-libs/beecrypt/Manifest
+++ b/dev-libs/beecrypt/Manifest
@@ -1 +1 @@
-DIST beecrypt-4.2.1.tar.gz 882758 SHA256 286f1f56080d1a6b1d024003a5fa2158f4ff82cae0c6829d3c476a4b5898c55d SHA512 59995d53c024efe6344a21ac0d6d55fbe652488a4a22cc6719f9fc3851d56697fa8738937d48aa1e6f9ebe749de61ac3c79a5f0cea793872213c3bdf922e71bc WHIRLPOOL c4a0371d8e2cf37194800867c58e77d72bb59ab464fdff9c561230ece0f288dabdebfdd0ac13382c9ebe45b455ffbfdd81e6a15969dcb86d3d8c8e6635e294bb
+DIST beecrypt-4.2.1.tar.gz 882758 BLAKE2B 7ca25613cf95df8657c762d932618979783ea2ddfbaecdf066701d61a5f9ac76bd474a51eb65e140c83ef01880477cb7104e3d67c2fc078ae7b710637d18bb53 SHA512 59995d53c024efe6344a21ac0d6d55fbe652488a4a22cc6719f9fc3851d56697fa8738937d48aa1e6f9ebe749de61ac3c79a5f0cea793872213c3bdf922e71bc

diff --git a/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild b/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild
index 4d835cb2cd9..69a3ccb8f34 100644
--- a/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild
+++ b/dev-libs/beecrypt/beecrypt-4.2.1-r4.ebuild
@@ -38,6 +38,7 @@ PATCHES=(
 
 	# Fixes bug 596904
 	"${FILESDIR}"/${P}-c++11-allow-throw-in-destructors.patch
+	"${FILESDIR}"/${P}-cast-uchar.patch #618676
 )
 
 pkg_setup() {

diff --git a/dev-libs/beecrypt/files/beecrypt-4.2.1-cast-uchar.patch b/dev-libs/beecrypt/files/beecrypt-4.2.1-cast-uchar.patch
new file mode 100644
index 00000000000..8efedc01e4a
--- /dev/null
+++ b/dev-libs/beecrypt/files/beecrypt-4.2.1-cast-uchar.patch
@@ -0,0 +1,214 @@
+beecrypt's c++ api uses jchar arrays for strings, while ICU 59 expects
+char16_t type
+
+In practice these both seem to be defined as short int on amd64 so it
+might be okay to just reinterpret_cast them? There's probably no easy
+way out on a platform where char16_t won't match jchar
+
+Patch by Valeriy Malov <jazzvoid@gmail.com>
+https://bugs.gentoo.org/618676
+
+--- a/c++/io/DataInputStream.cxx
++++ b/c++/io/DataInputStream.cxx
+@@ -201,7 +201,7 @@ String DataInputStream::readUTF() throw (IOException)
+ 		jchar* buffer = new jchar[ulen+1];
+ 
+ 		status = U_ZERO_ERROR;
+-		ucnv_toUChars(_utf, buffer, ulen+1, (const char*) data, (jint) utflen, &status);
++		ucnv_toUChars(_utf, reinterpret_cast<UChar*>(buffer), ulen+1, (const char*) data, (jint) utflen, &status);
+ 
+ 		delete[] data;
+ 
+@@ -232,7 +232,7 @@ String DataInputStream::readLine() throw (IOException)
+ 
+ 	array<jchar> target_buffer(80);
+ 	jint         target_offset = 0;
+-	      UChar* target = target_buffer.data();
++		  UChar* target = reinterpret_cast<UChar*>(target_buffer.data());
+ 	const UChar* target_limit = target+1;
+ 	      char  source_buffer[MAX_BYTES_PER_CHARACTER];
+ 	const char* source = source_buffer;
+--- a/c++/io/DataOutputStream.cxx
++++ b/c++/io/DataOutputStream.cxx
+@@ -187,7 +187,7 @@ void DataOutputStream::writeUTF(const String& str) throw (IOException)
+ 	const array<jchar>& src = str.toCharArray();
+ 
+ 	// the expected status code here is U_BUFFER_OVERFLOW_ERROR
+-	jint need = ucnv_fromUChars(_utf, 0, 0, src.data(), src.size(), &status);
++	jint need = ucnv_fromUChars(_utf, 0, 0, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 	if (U_FAILURE(status))
+ 		if (status != U_BUFFER_OVERFLOW_ERROR)
+ 			throw IOException("ucnv_fromUChars failed");
+@@ -200,7 +200,7 @@ void DataOutputStream::writeUTF(const String& str) throw (IOException)
+ 	status = U_ZERO_ERROR;
+ 
+ 	// the expected status code here is U_STRING_NOT_TERMINATED_WARNING
+-	ucnv_fromUChars(_utf, (char*) buffer, need, src.data(), src.size(), &status);
++	ucnv_fromUChars(_utf, (char*) buffer, need, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 	if (status != U_STRING_NOT_TERMINATED_WARNING)
+ 	{
+ 		delete[] buffer;
+--- a/c++/io/PrintStream.cxx
++++ b/c++/io/PrintStream.cxx
+@@ -191,7 +191,7 @@ void PrintStream::print(jchar ch) throw ()
+ 			UErrorCode status = U_ZERO_ERROR;
+ 
+ 			// do conversion of one character
+-			size_t used = ucnv_fromUChars(_loc, buffer, 8, &ch, 1, &status);
++			size_t used = ucnv_fromUChars(_loc, buffer, 8, reinterpret_cast<UChar*>(&ch), 1, &status);
+ 			if (U_FAILURE(status))
+ 				throw IOException("failure in ucnv_fromUChars");
+ 
+@@ -268,14 +268,14 @@ void PrintStream::print(jlong x) throw ()
+ 
+ void PrintStream::print(const array<jchar>& chars) throw ()
+ {
+-	print(chars.data(), chars.size());
++	print(reinterpret_cast<const UChar*>(chars.data()), chars.size());
+ }
+ 
+ void PrintStream::print(const String& str) throw ()
+ {
+ 	const array<jchar>& tmp = str.toCharArray();
+ 
+-	print(tmp.data(), tmp.size());
++	print(reinterpret_cast<const UChar*>(tmp.data()), tmp.size());
+ }
+ 
+ void PrintStream::println() throw ()
+--- a/c++/lang/String.cxx
++++ b/c++/lang/String.cxx
+@@ -33,6 +33,8 @@ using namespace beecrypt::lang;
+ #include <unicode/ustdio.h>
+ #include <unicode/ustring.h>
+ 
++static_assert(sizeof(jchar) == sizeof(UChar), "jchar and UChar sizes mismatch");
++
+ String::String(array<jchar>& swapWith)
+ {
+ 	assert(swapWith.size() <= Integer::MAX_VALUE);
+@@ -56,7 +58,7 @@ String::String()
+ 
+ String::String(char c) : _value(1)
+ {
+-	u_charsToUChars(&c, _value.data(), 1);
++	u_charsToUChars(&c, reinterpret_cast<UChar*>(_value.data()), 1);
+ }
+ 
+ String::String(jchar c) : _value(&c, 1)
+@@ -67,7 +69,7 @@ String::String(const char* value) : _value(::strlen(value))
+ {
+ 	assert(_value.size() <= Integer::MAX_VALUE);
+ 
+-	u_charsToUChars(value, _value.data(), _value.size());
++	u_charsToUChars(value, reinterpret_cast<UChar*>(_value.data()), _value.size());
+ }
+ 
+ String::String(const jchar* value, int offset, int length) : _value(value+offset, length)
+@@ -449,7 +451,7 @@ std::ostream& beecrypt::lang::operator<<(std::ostream& stream, const String& str
+ 		if (U_FAILURE(status))
+ 			throw RuntimeException("ucnv_open failed");
+ 
+-		int need = ucnv_fromUChars(loc, 0, 0, src.data(), src.size(), &status);
++		int need = ucnv_fromUChars(loc, 0, 0, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 		if (U_FAILURE(status))
+ 			if (status != U_BUFFER_OVERFLOW_ERROR)
+ 				throw RuntimeException("ucnv_fromUChars failed");
+@@ -458,7 +460,7 @@ std::ostream& beecrypt::lang::operator<<(std::ostream& stream, const String& str
+ 
+ 		status = U_ZERO_ERROR;
+ 
+-		ucnv_fromUChars(loc, out, need+1, src.data(), src.size(), &status);
++		ucnv_fromUChars(loc, out, need+1, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 		if (U_FAILURE(status))
+ 			throw RuntimeException("ucnv_fromUChars failed");
+ 
+--- a/c++/lang/StringBuffer.cxx
++++ b/c++/lang/StringBuffer.cxx
+@@ -35,7 +35,7 @@ StringBuffer::StringBuffer() : _buffer(16)
+ 
+ StringBuffer::StringBuffer(const char* s) : _buffer(16 + strlen(s))
+ {
+-	u_charsToUChars(s, _buffer.data(), _used = strlen(s));
++	u_charsToUChars(s, reinterpret_cast<UChar*>(_buffer.data()), _used = strlen(s));
+ }
+ 
+ StringBuffer::StringBuffer(const String& s) : _buffer(16 + s._value.size())
+@@ -53,7 +53,7 @@ StringBuffer& StringBuffer::append(char c)
+ 	synchronized (this)
+ 	{
+ 		core_ensureCapacity(_used+1);
+-		u_charsToUChars(&c, _buffer.data() + _used++, 1);
++		u_charsToUChars(&c, reinterpret_cast<UChar*>(_buffer.data() + _used++), 1);
+ 	}
+ 	return *this;
+ }
+@@ -88,7 +88,7 @@ StringBuffer& StringBuffer::append(const char* s)
+ 		jint need = strlen(s);
+ 
+ 		core_ensureCapacity(_used + need);
+-		u_charsToUChars(s, _buffer.data() + _used, need);
++		u_charsToUChars(s, reinterpret_cast<UChar*>(_buffer.data() + _used), need);
+ 
+ 		_used += need;
+ 	}
+--- a/c++/lang/StringBuilder.cxx
++++ b/c++/lang/StringBuilder.cxx
+@@ -38,7 +38,7 @@ StringBuilder::StringBuilder() : _buffer(16)
+ 
+ StringBuilder::StringBuilder(const char* s) : _buffer(16 + strlen(s))
+ {
+-	u_charsToUChars(s, _buffer.data(), _used = strlen(s));
++	u_charsToUChars(s, reinterpret_cast<UChar*>(_buffer.data()), _used = strlen(s));
+ }
+ 
+ StringBuilder::StringBuilder(const String& s) : _buffer(16 + s._value.size())
+@@ -55,7 +55,7 @@ StringBuilder& StringBuilder::append(char c)
+ {
+ 	ensureCapacity(_used+1);
+ 
+-	u_charsToUChars(&c, _buffer.data() + _used++, 1);
++	u_charsToUChars(&c, reinterpret_cast<UChar*>(_buffer.data() + _used++), 1);
+ 
+ 	return *this;
+ }
+@@ -97,7 +97,7 @@ StringBuilder& StringBuilder::append(const char* s)
+ 
+ 	ensureCapacity(_used + need);
+ 
+-	u_charsToUChars(s, _buffer.data() + _used, need);
++	u_charsToUChars(s, reinterpret_cast<UChar*>(_buffer.data() + _used), need);
+ 
+ 	_used += need;
+ 
+--- a/c++/security/Provider.cxx
++++ b/c++/security/Provider.cxx
+@@ -90,7 +90,7 @@ Object* Provider::setProperty(const String& key, const String& value)
+ 
+ 			UErrorCode status = U_ZERO_ERROR;
+ 
+-			ucnv_fromUChars(_conv, symname, 1024, src.data(), src.size(), &status);
++			ucnv_fromUChars(_conv, symname, 1024, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 
+ 			if (status != U_ZERO_ERROR)
+ 					throw RuntimeException("error in ucnv_fromUChars");
+--- a/c++/security/Security.cxx
++++ b/c++/security/Security.cxx
+@@ -104,7 +104,7 @@ void Security::initialize()
+ 
+ 					const array<jchar>& src = value->toCharArray();
+ 
+-					int need = ucnv_fromUChars(_loc, 0, 0, src.data(), src.size(), &status);
++					int need = ucnv_fromUChars(_loc, 0, 0, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 					if (U_FAILURE(status))
+ 						if (status != U_BUFFER_OVERFLOW_ERROR)
+ 							throw RuntimeException("ucnv_fromUChars failed");
+@@ -112,7 +112,7 @@ void Security::initialize()
+ 					char* shared_library = new char[need+1];
+ 
+ 					status = U_ZERO_ERROR;
+-					ucnv_fromUChars(_loc, shared_library, need+1, src.data(), src.size(), &status);
++					ucnv_fromUChars(_loc, shared_library, need+1, reinterpret_cast<const UChar*>(src.data()), src.size(), &status);
+ 					if (U_FAILURE(status))
+ 						throw RuntimeException("ucnv_fromUChars failed");
+ 


^ permalink raw reply related	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2017-12-01 20:25 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-12-01 20:25 [gentoo-commits] repo/gentoo:master commit in: dev-libs/beecrypt/files/, dev-libs/beecrypt/ Ulrich Müller
  -- strict thread matches above, loose matches on Subject: below --
2016-10-23 14:18 David Seifert

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox