summaryrefslogtreecommitdiff
path: root/dev-cpp/libcutl
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-07-14 21:03:06 +0100
commit8376ef56580626e9c0f796d5b85b53a0a1c7d5f5 (patch)
tree7681bbd4e8b05407772df40a4bf04cbbc8afc3fa /dev-cpp/libcutl
parent30a9caf154332f12ca60756e1b75d2f0e3e1822d (diff)
gentoo resync : 14.07.2018
Diffstat (limited to 'dev-cpp/libcutl')
-rw-r--r--dev-cpp/libcutl/Manifest5
-rw-r--r--dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch162
-rw-r--r--dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch53
-rw-r--r--dev-cpp/libcutl/libcutl-1.10.0.ebuild52
-rw-r--r--dev-cpp/libcutl/metadata.xml8
5 files changed, 280 insertions, 0 deletions
diff --git a/dev-cpp/libcutl/Manifest b/dev-cpp/libcutl/Manifest
new file mode 100644
index 000000000000..59c52d466548
--- /dev/null
+++ b/dev-cpp/libcutl/Manifest
@@ -0,0 +1,5 @@
+AUX libcutl-1.10.0-boost-1.65-tr1.patch 4688 BLAKE2B b896957b8a1ff399b51210052df2eb080ef52d887ad6e4734921945c497e172c8f9557c371947f4ba759d50911db4d9b99cd6a62a3765eabb29b0743fa407945 SHA512 0fc264a7e8b19c1da93384ec799cf2f8178af26f2baca53d92530ca6086371a6fc6ba5b7c8134b318846079b99fb2ba8872e1b14ab58da4422e0309bcbfe2b9f
+AUX libcutl-1.10.0-fix-c++14.patch 1045 BLAKE2B 91e954048739a53dc5dcf757ee7b3541b958fc30063df2da3ffe47f9c020ee8f80cfde07d351b21ac8ebabb00a84ed5f29b6063082fe18374172129537e0a6a0 SHA512 37033c583b55e66d4edc03e483f01e3c6d331862748eaa23cecc8a24614368d294193642c481ba91d9ee56eed952c6ad0f4997e30ace9e572653b3780be75cec
+DIST libcutl-1.10.0.tar.bz2 763920 BLAKE2B 8d6741b19cc7c1d320225b6f412c08d6dd1d975a9f1e2f55914a23b8813e42228616ea525905bcf456f4b6e60a72fbf4128a03275833975ce3b8c87d6e4cb631 SHA512 c03f39e87e660fdd07aa9cccb2d82d411ca8226b56475c74b7b2147b90cdb83d13246bc0c09513e407271bcf568d6a08f92c9006e48d1e7f06e4b18dde34dc5f
+EBUILD libcutl-1.10.0.ebuild 1027 BLAKE2B b9c108c5076b18a9b6e10cdd90a6180a0948ec0b39b2190d09a7c2979ecdecb5f12b9c4283d8e5fe78ec665495d6cef6eaa06f765364f9d9f198cd4f05e11bdc SHA512 c05e606af9647aa004d87986bdb2db55f5d58ba26103066df11f9c50f3cf909de7b28298023c61c5fd79c9c8f3430860a91b8203d0decd725c6f69d2c1f42dfd
+MISC metadata.xml 249 BLAKE2B 5791e38f31ac36bb4b94c03962980af247ea39c8af739a949749b1b3a7705ce4031ff53f620b1e4d30c44360e3d1d37ccb186ea109ecc1036977e4e0bb3a92e9 SHA512 0b2b2d015d6d3310efdedc20cd12cb2f587c105f1e84b243d3a7dc6337dde082c16683781eba9a0cb09341756f10f651579df35837ee232309a97017ec02cbee
diff --git a/dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch b/dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch
new file mode 100644
index 000000000000..ebb15ee9b404
--- /dev/null
+++ b/dev-cpp/libcutl/files/libcutl-1.10.0-boost-1.65-tr1.patch
@@ -0,0 +1,162 @@
+Use regex from C++11 instead of boost/tr1's version (the latter is gone as of boost 1.65).
+Patch: https://svnweb.freebsd.org/ports/head/devel/libcutl/files/patch-cutl_re_re.cxx?view=markup&pathrev=445764
+Bug: https://bugs.gentoo.org/show_bug.cgi?id=630016
+
+--- a/cutl/re/re.cxx
++++ b/cutl/re/re.cxx
+@@ -9,7 +9,7 @@
+ #ifndef LIBCUTL_EXTERNAL_BOOST
+ # include <cutl/details/boost/tr1/regex.hpp>
+ #else
+-# include <boost/tr1/regex.hpp>
++# include <regex>
+ #endif
+
+ using namespace std;
+@@ -40,17 +40,17 @@
+ struct basic_regex<C>::impl
+ {
+ typedef basic_string<C> string_type;
+- typedef tr1::basic_regex<C> regex_type;
++ typedef std::basic_regex<C> regex_type;
+ typedef typename regex_type::flag_type flag_type;
+
+ impl () {}
+ impl (regex_type const& r): r (r) {}
+ impl (string_type const& s, bool icase)
+ {
+- flag_type f (tr1::regex_constants::ECMAScript);
++ flag_type f (std::regex_constants::ECMAScript);
+
+ if (icase)
+- f |= tr1::regex_constants::icase;
++ f |= std::regex_constants::icase;
+
+ r.assign (s, f);
+ }
+@@ -118,15 +118,15 @@
+ impl_ = s == 0 ? new impl : new impl (*s, icase);
+ else
+ {
+- impl::flag_type f (tr1::regex_constants::ECMAScript);
++ impl::flag_type f (std::regex_constants::ECMAScript);
+
+ if (icase)
+- f |= tr1::regex_constants::icase;
++ f |= std::regex_constants::icase;
+
+ impl_->r.assign (*s, f);
+ }
+ }
+- catch (tr1::regex_error const& e)
++ catch (std::regex_error const& e)
+ {
+ throw basic_format<char> (s == 0 ? "" : *s, e.what ());
+ }
+@@ -146,15 +146,15 @@
+ impl_ = s == 0 ? new impl : new impl (*s, icase);
+ else
+ {
+- impl::flag_type f (tr1::regex_constants::ECMAScript);
++ impl::flag_type f (std::regex_constants::ECMAScript);
+
+ if (icase)
+- f |= tr1::regex_constants::icase;
++ f |= std::regex_constants::icase;
+
+ impl_->r.assign (*s, f);
+ }
+ }
+- catch (tr1::regex_error const& e)
++ catch (std::regex_error const& e)
+ {
+ throw basic_format<wchar_t> (s == 0 ? L"" : *s, e.what ());
+ }
+@@ -166,28 +166,28 @@
+ bool basic_regex<char>::
+ match (string_type const& s) const
+ {
+- return tr1::regex_match (s, impl_->r);
++ return std::regex_match (s, impl_->r);
+ }
+
+ template <>
+ bool basic_regex<wchar_t>::
+ match (string_type const& s) const
+ {
+- return tr1::regex_match (s, impl_->r);
++ return std::regex_match (s, impl_->r);
+ }
+
+ template <>
+ bool basic_regex<char>::
+ search (string_type const& s) const
+ {
+- return tr1::regex_search (s, impl_->r);
++ return std::regex_search (s, impl_->r);
+ }
+
+ template <>
+ bool basic_regex<wchar_t>::
+ search (string_type const& s) const
+ {
+- return tr1::regex_search (s, impl_->r);
++ return std::regex_search (s, impl_->r);
+ }
+
+ template <>
+@@ -196,13 +196,13 @@
+ string_type const& sub,
+ bool first_only) const
+ {
+- tr1::regex_constants::match_flag_type f (
+- tr1::regex_constants::format_default);
++ std::regex_constants::match_flag_type f (
++ std::regex_constants::format_default);
+
+ if (first_only)
+- f |= tr1::regex_constants::format_first_only;
++ f |= std::regex_constants::format_first_only;
+
+- return tr1::regex_replace (s, impl_->r, sub, f);
++ return std::regex_replace (s, impl_->r, sub, f);
+ }
+
+ template <>
+@@ -211,13 +211,13 @@
+ string_type const& sub,
+ bool first_only) const
+ {
+- tr1::regex_constants::match_flag_type f (
+- tr1::regex_constants::format_default);
++ std::regex_constants::match_flag_type f (
++ std::regex_constants::format_default);
+
+ if (first_only)
+- f |= tr1::regex_constants::format_first_only;
++ f |= std::regex_constants::format_first_only;
+
+- return tr1::regex_replace (s, impl_->r, sub, f);
++ return std::regex_replace (s, impl_->r, sub, f);
+ }
+ }
+ }
+--- a/m4/libboost.m4
++++ b/m4/libboost.m4
+@@ -129,13 +129,13 @@
+ AC_DEFUN([LIBBOOST_REGEX], [
+ LIBBOOST_LIB([regex],[
+ AC_LANG_SOURCE([
+-#include <boost/tr1/regex.hpp>
++#include <regex>
+
+ int
+ main ()
+ {
+- std::tr1::regex r ("te.t", std::tr1::regex_constants::ECMAScript);
+- return std::tr1::regex_match ("test", r) ? 0 : 1;
++ std::regex r ("te.t", std::regex_constants::ECMAScript);
++ return std::regex_match ("test", r) ? 0 : 1;
+ }
+ ])],
+ [$1],
diff --git a/dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch b/dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch
new file mode 100644
index 000000000000..a6f1a505485b
--- /dev/null
+++ b/dev-cpp/libcutl/files/libcutl-1.10.0-fix-c++14.patch
@@ -0,0 +1,53 @@
+Make dtors noexcept(false) when compiling in C++11 and above. This avoids silent
+breakage due to the semantic exception changes between C++98 and C++11.
+
+--- a/cutl/fs/auto-remove.cxx
++++ b/cutl/fs/auto-remove.cxx
+@@ -13,6 +13,9 @@
+ {
+ auto_remove::
+ ~auto_remove ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (!canceled_)
+ {
+@@ -23,6 +26,9 @@
+
+ auto_removes::
+ ~auto_removes ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
+ {
+ if (!canceled_)
+ {
+--- a/cutl/fs/auto-remove.hxx
++++ b/cutl/fs/auto-remove.hxx
+@@ -26,7 +26,11 @@
+ {
+ }
+
+- ~auto_remove ();
++ ~auto_remove ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ void
+ cancel ()
+@@ -51,7 +55,11 @@
+ struct LIBCUTL_EXPORT auto_removes
+ {
+ auto_removes (): canceled_ (false) {}
+- ~auto_removes ();
++ ~auto_removes ()
++#if __cplusplus >= 201103L
++ noexcept(false)
++#endif
++ ;
+
+ void
+ add (path const& p)
diff --git a/dev-cpp/libcutl/libcutl-1.10.0.ebuild b/dev-cpp/libcutl/libcutl-1.10.0.ebuild
new file mode 100644
index 000000000000..b88f5363b9ee
--- /dev/null
+++ b/dev-cpp/libcutl/libcutl-1.10.0.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit autotools flag-o-matic versionator
+
+DESCRIPTION="A collection of C++ libraries (successor of libcult)"
+HOMEPAGE="https://www.codesynthesis.com/projects/libcutl/"
+SRC_URI="https://www.codesynthesis.com/download/${PN}/$(get_version_component_range 1-2)/${P}.tar.bz2"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86"
+IUSE=""
+
+RDEPEND="
+ dev-libs/expat
+ dev-libs/boost:="
+DEPEND="${RDEPEND}"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-1.10.0-fix-c++14.patch
+ "${FILESDIR}"/${PN}-1.10.0-boost-1.65-tr1.patch
+)
+
+src_prepare() {
+ default
+
+ # remove bundled libs
+ rm -r cutl/details/{boost,expat} || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # ensure <regex> works on GCC 5 and below
+ # bug 630016
+ append-cxxflags -std=c++14
+
+ econf \
+ --disable-static \
+ --with-external-boost \
+ --with-external-expat
+}
+
+src_install() {
+ default
+
+ # package provides .pc files
+ find "${D}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/libcutl/metadata.xml b/dev-cpp/libcutl/metadata.xml
new file mode 100644
index 000000000000..d4905c84fc34
--- /dev/null
+++ b/dev-cpp/libcutl/metadata.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>cpp@gentoo.org</email>
+ <name>Gentoo C++ Project</name>
+ </maintainer>
+</pkgmetadata>