summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKacper Kołodziej <kacper@kolodziej.in>2016-09-25 16:05:22 +0200
committerDavid Seifert <soap@gentoo.org>2016-09-28 23:02:06 +0200
commit03eaa0cf8c05dc6b3398c08aef0101dcebb6e72a (patch)
tree8b31796e7a5685ad2870ecc1e7186e42a9b9dfae /app-text/bact
parentsci-electronics/freehdl: Version bump to 0.0.8 (diff)
downloadgentoo-03eaa0cf8c05dc6b3398c08aef0101dcebb6e72a.tar.gz
gentoo-03eaa0cf8c05dc6b3398c08aef0101dcebb6e72a.tar.bz2
gentoo-03eaa0cf8c05dc6b3398c08aef0101dcebb6e72a.zip
app-text/bact: fix cpp14 compilation errors; bug #594312
Closes: https://github.com/gentoo/gentoo/pull/2409 Signed-off-by: David Seifert <soap@gentoo.org>
Diffstat (limited to 'app-text/bact')
-rw-r--r--app-text/bact/bact-0.13.ebuild6
-rw-r--r--app-text/bact/files/bact-0.13-cpp14.patch44
2 files changed, 49 insertions, 1 deletions
diff --git a/app-text/bact/bact-0.13.ebuild b/app-text/bact/bact-0.13.ebuild
index 98d29fb5500b..00cd99778b7c 100644
--- a/app-text/bact/bact-0.13.ebuild
+++ b/app-text/bact/bact-0.13.ebuild
@@ -4,7 +4,7 @@
EAPI=4
-inherit toolchain-funcs
+inherit eutils toolchain-funcs
DESCRIPTION="Boosting Algorithm for Classification of Trees"
HOMEPAGE="http://chasen.org/~taku/software/bact/"
@@ -18,6 +18,10 @@ IUSE=""
DEPEND=""
RDEPEND="${DEPEND}"
+src_prepare() {
+ epatch "${FILESDIR}/${P}-cpp14.patch" # bug #594312
+}
+
src_compile() {
emake CXX="$(tc-getCXX)" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}"
}
diff --git a/app-text/bact/files/bact-0.13-cpp14.patch b/app-text/bact/files/bact-0.13-cpp14.patch
new file mode 100644
index 000000000000..fa083c223b12
--- /dev/null
+++ b/app-text/bact/files/bact-0.13-cpp14.patch
@@ -0,0 +1,44 @@
+Fix C++14 compilation errors -- since C++11 make_pair<T1,T2> is resolved to
+make_pair(T1&&, T2&&). Types should be deduced.
+Gentoo bug: https://bugs.gentoo.org/show_bug.cgi?id=594312
+
+--- a/bact_classify.cpp
++++ b/bact_classify.cpp
+@@ -86,7 +86,7 @@
+ if (id == -2) continue;
+ if (id != -1) {
+ if (userule)
+- rules.insert (std::make_pair <std::string, double> (item, alpha[id]));
++ rules.insert (std::make_pair(item, alpha[id]));
+ result.push_back (id);
+ }
+ project (item, size+1, newdepth, l, new_trie_pos, new_str_pos);
+@@ -138,7 +138,7 @@
+ if (id == -2) continue;
+ if (id >= 0) {
+ if (userule)
+- rules.insert (std::make_pair <std::string, double> (tree[i].val.key(), alpha[id]));
++ rules.insert (std::make_pair(tree[i].val.key(), alpha[id]));
+ result.push_back (id);
+ }
+ project (tree[i].val.key(), 1, 0, i, 0, 0);
+@@ -158,7 +158,7 @@
+
+ for (std::map <std::string, double>::iterator it = rules.begin();
+ it != rules.end(); ++it)
+- tmp.push_back (std::make_pair <std::string, double> (it->first, it->second));
++ tmp.push_back (std::make_pair(it->first, it->second));
+
+ std::sort (tmp.begin(), tmp.end(), pair_2nd_cmp<std::string, double>());
+
+--- a/bact_mkmodel.cpp
++++ b/bact_mkmodel.cpp
+@@ -111,7 +111,7 @@
+
+ for (std::map<std::string, double>::iterator it = rules.begin(); it != rules.end(); ++it) {
+ double a = it->second / alpha_sum;
+- ary2.push_back (std::make_pair <const char*, double>(it->first.c_str(), a));
++ ary2.push_back (std::make_pair(it->first.c_str(), a));
+ ary.push_back ((Darts::DoubleArray::key_type *)it->first.c_str());
+ alpha.push_back (a);
+ }