dev-cpp/commoncpp2: Allow for compiling with GCC 6
authorDavid Seifert <soap@gentoo.org>
Thu, 29 Sep 2016 19:36:34 +0000 (21:36 +0200)
committerDavid Seifert <soap@gentoo.org>
Thu, 29 Sep 2016 19:42:14 +0000 (21:42 +0200)
Gentoo-bug: 595422
* EAPI=6
* Make PATCHES -p1 compliant

Package-Manager: portage-2.3.1

dev-cpp/commoncpp2/commoncpp2-1.8.1-r2.ebuild [new file with mode: 0644]
dev-cpp/commoncpp2/files/1.8.0-glibc212.patch
dev-cpp/commoncpp2/files/1.8.1-autoconf-update.patch
dev-cpp/commoncpp2/files/1.8.1-fix-c++14.patch [new file with mode: 0644]
dev-cpp/commoncpp2/files/1.8.1-libgcrypt.patch
dev-cpp/commoncpp2/files/1.8.1-parallel-build.patch

diff --git a/dev-cpp/commoncpp2/commoncpp2-1.8.1-r2.ebuild b/dev-cpp/commoncpp2/commoncpp2-1.8.1-r2.ebuild
new file mode 100644 (file)
index 0000000..4cf6353
--- /dev/null
@@ -0,0 +1,71 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit autotools
+
+DESCRIPTION="C++ library offering portable support for system-related services"
+SRC_URI="mirror://gnu/commoncpp/${P}.tar.gz"
+HOMEPAGE="https://www.gnu.org/software/commoncpp/"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~ppc64 ~x86"
+IUSE="debug doc examples ipv6 gnutls ssl static-libs"
+REQUIRED_USE="gnutls? ( ssl )"
+
+RDEPEND="ssl? ( gnutls? ( dev-libs/libgcrypt:0
+                       net-libs/gnutls )
+               !gnutls? ( dev-libs/openssl:0 ) )
+       sys-libs/zlib"
+DEPEND="doc? ( >=app-doc/doxygen-1.3.6 )
+       ${RDEPEND}"
+
+PATCHES=(
+       "${FILESDIR}/1.8.1-configure_detect_netfilter.patch"
+       "${FILESDIR}/1.8.0-glibc212.patch"
+       "${FILESDIR}/1.8.1-autoconf-update.patch"
+       "${FILESDIR}/1.8.1-fix-buffer-overflow.patch"
+       "${FILESDIR}/1.8.1-parallel-build.patch"
+       "${FILESDIR}/1.8.1-libgcrypt.patch"
+       "${FILESDIR}/1.8.1-fix-c++14.patch"
+)
+
+src_prepare() {
+       default
+       eautoreconf
+}
+
+src_configure() {
+       local myconf
+       if use gnutls; then
+               myconf+="--with-gnutls"
+       else
+               use ssl && myconf+="--with-openssl"
+       fi
+
+       econf \
+               $(use_enable debug) \
+               $(use_with ipv6) \
+               $(use_enable static-libs static) \
+               $(use_with doc doxygen) \
+               ${myconf}
+}
+
+src_install () {
+       # Only install html docs
+       # man and latex available, but seems a little wasteful
+       use doc && HTML_DOCS=( doc/html/. )
+       default
+       dodoc COPYING.addendum
+
+       if use examples; then
+               docinto examples
+               dodoc demo/{*.cpp,*.h,*.xml,README}
+               docompress -x /usr/share/doc/${PF}/examples
+       fi
+
+       # package provides .pc files
+       find "${D}" -name '*.la' -delete || die
+}
index a29e154a20eed0c93ce5a4960921922256ae0a10..5132554aea1cbc743801e02de7ffbd2f83fb8513 100644 (file)
@@ -1,7 +1,7 @@
 http://bugs.gentoo.org/334135
 
---- src/applog.cpp
-+++ src/applog.cpp
+--- a/src/applog.cpp
++++ b/src/applog.cpp
 @@ -44,6 +44,7 @@
  #include <cstdio>
  #include <stdarg.h>
index d50a3405ee6c72fb4f9716a99aeed491dcec4c4c..c64ba2f65fa9319fcc006bed2c1bb41227d22ac0 100644 (file)
@@ -1,5 +1,3 @@
-diff --git a/configure.ac b/configure.ac
-index 80518db..64221e0 100644
 --- a/configure.ac
 +++ b/configure.ac
 @@ -9,7 +9,8 @@
@@ -12,7 +10,7 @@ index 80518db..64221e0 100644
  AC_CONFIG_MACRO_DIR([m4])
  m4_pattern_allow(LT_VERSION)
  
-@@ -81,17 +82,17 @@ fi
+@@ -81,17 +82,17 @@
  AC_SUBST(ccincludedir)
  
  AC_CONFIG_AUX_DIR(autoconf)
@@ -34,7 +32,21 @@ index 80518db..64221e0 100644
  
  AC_C_RESTRICT
  AC_C_VOLATILE
-@@ -408,10 +409,11 @@ LIB_MAJOR=`echo $LT_VERSION | sed -e 's/[:].*$//'`
+@@ -395,10 +396,11 @@
+ #endif
+ 
+ ])
+-
++AC_ARG_WITH([doxygen],
++    AS_HELP_STRING([--without-doxygen], [Do not build documentation]))
+ AC_PATH_PROG(DOXYGEN, doxygen, no)
+ AC_SUBST(DOXYGEN)
+-AM_CONDITIONAL(DOXY, test "$DOXYGEN" != "no")
++AM_CONDITIONAL([DOXY], [test "x$with_doxygen" != "xno"])
+ 
+ AM_CONDITIONAL(GETOPT_LONG, [test ! -z "$LIBGETOPTOBJS"])
+ 
+@@ -408,10 +410,11 @@
  AC_SUBST(LIB_VERSION)
  AC_SUBST(LIB_MAJOR)
  
diff --git a/dev-cpp/commoncpp2/files/1.8.1-fix-c++14.patch b/dev-cpp/commoncpp2/files/1.8.1-fix-c++14.patch
new file mode 100644 (file)
index 0000000..cc92106
--- /dev/null
@@ -0,0 +1,52 @@
+Fix building with C++14, which errors out due changed noexcept()
+semantics for dtors caught by -Werror=terminate.
+
+See also: https://bugs.gentoo.org/show_bug.cgi?id=595422
+
+--- a/src/nat.cpp
++++ b/src/nat.cpp
+@@ -145,11 +145,11 @@
+     "nat lookup successful",
+     "nat address not in table",
+     "nat not supported/implemented",
+-    "unable to open device "NAT_DEVICE,
++    "unable to open device " NAT_DEVICE,
+     "unable to get socket name",
+     "unable to get peer name",
+     "unable to get socket type",
+-    "unable to lookup, nat "NAT_SYSCALL" failed",
++    "unable to lookup, nat " NAT_SYSCALL " failed",
+     "unkown nat error code"
+ };
+ 
+--- a/src/socket.cpp
++++ b/src/socket.cpp
+@@ -2971,12 +2971,7 @@
+ 
+ TCPStream::~TCPStream()
+ {
+-#ifdef  CCXX_EXCEPTIONS
+-        try { endStream(); }
+-        catch( ... ) { if ( ! std::uncaught_exception()) throw;};
+-#else
+-        endStream();
+-#endif
++    endStream();
+ }
+ 
+ #ifdef  HAVE_GETADDRINFO
+--- a/src/ssl.cpp
++++ b/src/ssl.cpp
+@@ -441,12 +441,7 @@
+ 
+ SSLStream::~SSLStream()
+ {
+-#ifdef  CCXX_EXCEPTIONS
+-    try { endStream(); }
+-    catch( ...) { if ( ! std::uncaught_exception()) throw;};
+-#else
+     endStream();
+-#endif
+ }
+ 
+ #ifdef  CCXX_NAMESPACES
index d83ff9117aaf8315426d71ac1650f708a3ce9c29..08e24e1a06a918fbe2e86e8ba3ef493712285412 100644 (file)
@@ -1,5 +1,5 @@
---- src/ssl.cpp.orig   2010-11-01 03:42:51.000000000 +0300
-+++ src/ssl.cpp        2015-11-25 15:32:23.923057317 +0300
+--- a/src/ssl.cpp
++++ b/src/ssl.cpp
 @@ -99,35 +99,7 @@
      return 0;
  }
index f131ee1c2c015c4bcabae90271ea88e31a35dc8a..149677ca89b4843f7d829a48683bd781e12cce4d 100644 (file)
@@ -1,5 +1,5 @@
---- src/Makefile.am
-+++ src/Makefile.am
+--- a/src/Makefile.am
++++ b/src/Makefile.am
 @@ -47,6 +47,7 @@
  
  if EXTRAS