commit:     c31efdd2b1cd740923f9d3d2c14870309df3cf20
Author:     Alon Bar-Lev <alonbl <AT> gentoo <DOT> org>
AuthorDate: Thu Dec  1 20:11:29 2016 +0000
Commit:     Alon Bar-Lev <alonbl <AT> gentoo <DOT> org>
CommitDate: Thu Dec  1 20:13:12 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c31efdd2

dev-libs/botan: version bump

Package-Manager: portage-2.3.0

 dev-libs/botan/Manifest                      |   1 +
 dev-libs/botan/botan-1.11.34.ebuild          | 140 +++++++++++++++++++++++++++
 dev-libs/botan/files/botan-1.11.34-rng.patch |  30 ++++++
 3 files changed, 171 insertions(+)

diff --git a/dev-libs/botan/Manifest b/dev-libs/botan/Manifest
index d5f8885..b9053b3 100644
--- a/dev-libs/botan/Manifest
+++ b/dev-libs/botan/Manifest
@@ -2,3 +2,4 @@ DIST Botan-1.10.12.tgz 2707397 SHA256 
affc3a79919577943f896e64d3e4a4dcc4970c5bf8
 DIST Botan-1.10.13.tgz 2710181 SHA256 
23ec973d4b4a4fe04f490d409e08ac5638afe3aa09acd7f520daaff38ba19b90 SHA512 
a09d2cb5dda21bf384b81675025f249abdfe232c95dc3383f0baebc2bf1603b2ed1e2aec9a81aae95df592ec2eeae8906c63474a6da42ad3701669a5d8f14656
 WHIRLPOOL 
4161d689205f02ed8b97bb371be47829d11dee744a024e24bb834264cfa6143c8a9fb7df969410975e4bf2b708063e3c05b6106c4dbe7f5566e3331ee5e901a9
 DIST Botan-1.10.14.tgz 2710757 SHA256 
10ed0b394db165733ac9557d8656356b7e9744d38c61c2b9c44cba6d84ff4c1c SHA512 
ae524653a99b02d6d8d7bb2b88a446c066fe1044d8fd2708ea2a4cd5aafbe2b0d165d2ce1730669a4df18013cf5b6540bb5944bafea512b4957e3417de512e95
 WHIRLPOOL 
51aa1d68757ad515f65c255c585be8050efed085800340d43fa068b48647ef8c50fc9e284ac16d0cef3d874f5fa44f143210dcc004561807e1d1b307d89cff9d
 DIST Botan-1.11.33.tgz 4329671 SHA256 
d65f95399dc5710aea90d682d65e554fed4571115f1382416e9142370a47e949 SHA512 
49bb4485663897dd07bb7982771befacc50bfabef5806dc802cbd4d39f5d641b08a264824b5b1b96421e810811353deea15e728c5d08ce2932cf0e4602ae099d
 WHIRLPOOL 
86154158915e29eef7753797df037d560078bda4ecfaafffba1064a238618b1ec10e0712b85cd64537ca3dfbac5ce38bf1323456d30b2bd5a51c0dae7f81d339
+DIST Botan-1.11.34.tgz 4908624 SHA256 
59ad548f8ddb967737f102b252bab30ca0b49f039f204502394cf506ae731f16 SHA512 
c3dad24872f726c62fd302cf05e4a67985e8d6e00b6bdfc9852abe2204329f794b656e9ee89470b76ea16426371ef5b1729626c36d9a2b89e1939172382f192c
 WHIRLPOOL 
ba1db76068ae8e55169cba19597be159de1999555ff64ba95a7b80a38ed25d6170be9c2586ca680323340774784fad96b9ca83ff0b17a5b162ba11014e2641a4

diff --git a/dev-libs/botan/botan-1.11.34.ebuild 
b/dev-libs/botan/botan-1.11.34.ebuild
new file mode 100644
index 00000000..87dc9d5
--- /dev/null
+++ b/dev-libs/botan/botan-1.11.34.ebuild
@@ -0,0 +1,140 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+PYTHON_COMPAT=( python{2_7,3_4,3_5} )
+
+inherit eutils multilib python-r1 toolchain-funcs
+
+MY_PN="Botan"
+MY_P="${MY_PN}-${PV}"
+DESCRIPTION="A C++ crypto library"
+HOMEPAGE="http://botan.randombit.net/";
+SRC_URI="http://botan.randombit.net/releases/${MY_P}.tgz";
+
+KEYWORDS="~amd64 ~arm ~hppa ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~ppc-macos"
+SLOT="0"
+LICENSE="BSD"
+IUSE="bindist doc boost python bzip2 libressl lzma sqlite ssl static-libs zlib"
+
+S="${WORKDIR}/${MY_P}"
+
+REQUIRED_USE="python? ( boost )"
+
+RDEPEND="bzip2? ( >=app-arch/bzip2-1.0.5 )
+       zlib? ( >=sys-libs/zlib-1.2.3 )
+       boost? ( ${PYTHON_DEPS} >=dev-libs/boost-1.48[python?,${PYTHON_USEDEP}] 
)
+       lzma? ( app-arch/xz-utils )
+       sqlite? ( dev-db/sqlite:3 )
+       ssl? (
+               !libressl? ( >=dev-libs/openssl-0.9.8g:0[bindist=] )
+               libressl? ( dev-libs/libressl )
+       )"
+DEPEND="${RDEPEND}
+       doc? ( dev-python/sphinx )"
+
+PATCHES=(
+       "${FILESDIR}/${P}-rng.patch"
+)
+
+pkg_pretend() {
+       # Botan 1.11 requires -std=c++11
+       if [[ ${MERGE_TYPE} != binary ]]; then
+               [[ $(gcc-major-version) -lt 4 ]] || \
+               ( [[ $(gcc-major-version) -eq 4 && $(gcc-minor-version) -lt 7 
]] ) \
+               && die "Sorry, but gcc 4.7 or higher is required."
+       fi
+}
+
+src_prepare() {
+       default
+       sed \
+               -e "/^install:/s/ docs//" \
+               -i src/build-data/makefile/gmake.in || die "sed failed"
+       use python && python_copy_sources
+}
+
+src_configure() {
+       local disable_modules=( proc_walk unix_procs )
+       use boost || disable_modules+=( "boost" )
+       use bindist && disable_modules+=( "ecdsa" )
+       use python || disable_modules+=( "ffi" )
+       elog "Disabling modules: ${disable_modules[@]}"
+
+       # Enable v9 instructions for sparc64
+       if [[ "${PROFILE_ARCH}" = "sparc64" ]]; then
+               CHOSTARCH="sparc32-v9"
+       else
+               CHOSTARCH="${CHOST%%-*}"
+       fi
+
+       local myos=
+       case ${CHOST} in
+               *-darwin*)   myos=darwin ;;
+               *)           myos=linux  ;;
+       esac
+
+       local pythonvers=()
+       if use python; then
+               append() {
+                       pythonvers+=( ${EPYTHON/python/} )
+               }
+               python_foreach_impl append
+       fi
+
+       ./configure.py \
+               --prefix="${EPREFIX}/usr" \
+               --destdir="${D}/${EPREFIX}/usr" \
+               --libdir=$(get_libdir) \
+               --docdir=share/doc \
+               --cc=gcc \
+               --os=${myos} \
+               --cpu=${CHOSTARCH} \
+               --with-endian="$(tc-endian)" \
+               --without-sphinx \
+               $(use_with bzip2) \
+               $(use_with lzma) \
+               $(use_with sqlite sqlite3) \
+               $(use_with ssl openssl) \
+               $(use_with zlib) \
+               $(use_with boost) \
+               --with-python-version=$(IFS=","; echo "${pythonvers[*]}" ) \
+               --disable-modules=$(IFS=","; echo "${disable_modules[*]}" ) \
+               || die "configure.py failed"
+}
+
+src_compile() {
+       emake CXX="$(tc-getCXX) -pthread" AR="$(tc-getAR) crs" LIB_OPT="-c 
${CXXFLAGS}"
+       if use doc; then
+               einfo "Generation of documentation"
+               sphinx-build doc doc_output
+       fi
+}
+
+src_test() {
+       LD_LIBRARY_PATH="${S}" ./botan-test || die "Validation tests failed"
+}
+
+src_install() {
+       emake install
+
+       if ! use static-libs; then
+               rm "${ED}usr/$(get_libdir)/libbotan"*.a || die 'remove of 
static libs failed'
+       fi
+
+       # Add compatibility symlinks.
+       [[ -e "${ED}usr/bin/botan-config" ]] && die "Compatibility code no 
longer needed"
+       [[ -e "${ED}usr/$(get_libdir)/pkgconfig/botan.pc" ]] && die 
"Compatibility code no longer needed"
+       dosym botan-config-1.11 /usr/bin/botan-config
+       dosym botan-1.11.pc /usr/$(get_libdir)/pkgconfig/botan.pc
+
+       use python && python_foreach_impl python_optimize
+
+       if use doc; then
+               pushd doc_output > /dev/null
+               insinto /usr/share/doc/${PF}/html
+               doins -r [a-z]* _static
+               popd > /dev/null
+       fi
+}

diff --git a/dev-libs/botan/files/botan-1.11.34-rng.patch 
b/dev-libs/botan/files/botan-1.11.34-rng.patch
new file mode 100644
index 00000000..da814f1
--- /dev/null
+++ b/dev-libs/botan/files/botan-1.11.34-rng.patch
@@ -0,0 +1,30 @@
+From 2b72637f06ad35bd5458372a964bf30a0b4f7cf9 Mon Sep 17 00:00:00 2001
+From: Alon Bar-Lev <alon.bar...@gmail.com>
+Date: Thu, 1 Dec 2016 21:55:17 +0200
+Subject: [PATCH] system_rng: workaround read only urandom
+
+Signed-off-by: Alon Bar-Lev <alon.bar...@gmail.com>
+---
+ src/lib/rng/system_rng/system_rng.cpp | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/src/lib/rng/system_rng/system_rng.cpp 
b/src/lib/rng/system_rng/system_rng.cpp
+index eaba382..12b0876 100644
+--- a/src/lib/rng/system_rng/system_rng.cpp
++++ b/src/lib/rng/system_rng/system_rng.cpp
+@@ -135,8 +135,11 @@ void System_RNG_Impl::add_entropy(const uint8_t input[], 
size_t len)
+          * by the OS or sysadmin that additional entropy is not wanted
+          * in the system pool, so we accept that and return here,
+          * since there is no corrective action possible.
++       *
++       * In Linux EBADF or EPERM is returned if m_fd is not opened for
++       * writing.
+          */
+-         if(errno == EPERM)
++         if(errno == EPERM || errno == EBADF)
+             return;
+ 
+          // maybe just ignore any failure here and return?
+-- 
+2.7.3
+

Reply via email to