commit:     8aeb28a1a899987c2556491da2fe2eaff6a141a8
Author:     Peter Levine <plevine457 <AT> gmail <DOT> com>
AuthorDate: Sun May 28 22:16:54 2017 +0000
Commit:     David Seifert <soap <AT> gentoo <DOT> org>
CommitDate: Fri Jun  2 06:58:37 2017 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8aeb28a1

sci-physics/reduze: Fix building with GCC-6

Bug: https://bugs.gentoo.org/show_bug.cgi?id=594900
Package-Manager: Portage-2.3.6, Repoman-2.3.2
Closes: https://github.com/gentoo/gentoo/pull/4796

 sci-physics/reduze/files/reduze-2.0.9-gcc6.patch | 58 ++++++++++++++++++++++++
 sci-physics/reduze/files/reduze-2.1-gcc6.patch   | 29 ++++++++++++
 sci-physics/reduze/reduze-2.0.9.ebuild           |  4 +-
 sci-physics/reduze/reduze-2.1.ebuild             |  4 +-
 4 files changed, 93 insertions(+), 2 deletions(-)

diff --git a/sci-physics/reduze/files/reduze-2.0.9-gcc6.patch 
b/sci-physics/reduze/files/reduze-2.0.9-gcc6.patch
new file mode 100644
index 00000000000..9864163cdec
--- /dev/null
+++ b/sci-physics/reduze/files/reduze-2.0.9-gcc6.patch
@@ -0,0 +1,58 @@
+--- a/reduze/amplitude.cpp
++++ b/reduze/amplitude.cpp
+@@ -782,7 +782,7 @@
+ 
+       ex resultLeadingNc = result;
+       for (exset::const_iterator it = found.begin(); it != found.end(); ++it) 
{
+-              VERIFY(is_a<function>(*it) && ex_to<function>(*it).get_name() 
== "Color");
++              VERIFY(is_a<GiNaC::function>(*it) && 
ex_to<GiNaC::function>(*it).get_name() == "Color");
+               VERIFY(is_a<lst>(it->op(0)));
+               ex res(1);
+               for (size_t i = 0; i < it->op(0).nops(); ++i)
+@@ -823,7 +823,7 @@
+       timer.restart();
+       exmap m;
+       for (exset::const_iterator it = found.begin(); it != found.end(); ++it) 
{
+-              VERIFY(is_a<function>(*it) && ex_to<function>(*it).get_name() 
== "Lorentz");
++              VERIFY(is_a<GiNaC::function>(*it) && 
ex_to<GiNaC::function>(*it).get_name() == "Lorentz");
+               VERIFY(is_a<lst>(it->op(0)));
+ 
+               ex res(1);
+--- a/reduze/files.cpp
++++ b/reduze/files.cpp
+@@ -420,7 +420,7 @@
+                       get_filename_sectormappings(m.integralfamily()->name());
+       ofstream file(file_name.c_str());
+       if (!file)
+-              ABORT("Can't write to " << file);
++              ABORT("Can't write to " << file_name);
+       os << YAML::BeginMap << YAML::Key << "sectormappings" << YAML::Value;
+       os << m << YAML::EndMap;
+       file << os.c_str();
+@@ -617,7 +617,7 @@
+ 
+ bool is_readable_file(const string& filename) {
+       ifstream is(filename.c_str());
+-      bool ok = is;
++      bool ok = !is.fail();
+       is.close();
+       return ok;
+ }
+--- a/reduze/sectormappings.cpp
++++ b/reduze/sectormappings.cpp
+@@ -757,13 +757,13 @@
+       const Node& z_node = node["zero_sectors"];
+       for (Iterator n = z_node.begin(); n != z_node.end(); ++n)
+               for (Iterator s = n.second().begin(); s != n.second().end(); 
++s)
+-                      m.zero_sectors_.insert(*s);
++                      m.zero_sectors_.insert((const int) *s);
+ 
+       if (node.FindValue("sectors_without_graph")) {
+               const Node& ng_node = node["sectors_without_graph"];
+               for (Iterator n = ng_node.begin(); n != ng_node.end(); ++n)
+                       for (Iterator s = n.second().begin(); s != 
n.second().end(); ++s)
+-                              m.sectors_without_graph_.insert(*s);
++                              m.sectors_without_graph_.insert((const int) *s);
+       }
+ 
+       const Node& rel_node = node["sector_relations"];

diff --git a/sci-physics/reduze/files/reduze-2.1-gcc6.patch 
b/sci-physics/reduze/files/reduze-2.1-gcc6.patch
new file mode 100644
index 00000000000..3b347ef413c
--- /dev/null
+++ b/sci-physics/reduze/files/reduze-2.1-gcc6.patch
@@ -0,0 +1,29 @@
+--- a/reduze/files.cpp
++++ b/reduze/files.cpp
+@@ -723,7 +723,7 @@
+       string file_name_tmp = file_name + ".tmp";
+       ofstream file(file_name_tmp.c_str());
+       if (!file)
+-              ABORT("Can't write to " << file);
++              ABORT("Can't write to " << file_name_tmp);
+       Emitter os;
+       os << BeginMap;
+       os << Key << "crossings" << Value;
+@@ -752,7 +752,7 @@
+       string file_name_tmp = file_name + ".tmp";
+       ofstream file(file_name_tmp.c_str());
+       if (!file)
+-              ABORT("Can't write to " << file);
++              ABORT("Can't write to " << file_name_tmp);
+       os << YAML::BeginMap << YAML::Key << "sectormappings" << YAML::Value;
+       os << m << YAML::EndMap;
+       file << os.c_str();
+@@ -1036,7 +1036,7 @@
+ 
+ bool is_readable_file(const string& filename) {
+       ifstream is(filename.c_str());
+-      bool ok = is;
++      bool ok = !is.fail();
+       is.close();
+       return ok && !is_readable_directory(filename);
+ }

diff --git a/sci-physics/reduze/reduze-2.0.9.ebuild 
b/sci-physics/reduze/reduze-2.0.9.ebuild
index 1055762ebeb..3c0713e8e16 100644
--- a/sci-physics/reduze/reduze-2.0.9.ebuild
+++ b/sci-physics/reduze/reduze-2.0.9.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2013 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=5
@@ -25,6 +25,8 @@ DEPEND="${RDEPEND}
 DOCS=( ChangeLog README )
 
 src_prepare() {
+       epatch "${FILESDIR}"/${P}-gcc6.patch
+
        # gentoo doc directory
        sed -i \
                -e "s:share/reduze:share/doc/${PF}:g" \

diff --git a/sci-physics/reduze/reduze-2.1.ebuild 
b/sci-physics/reduze/reduze-2.1.ebuild
index 9e78238cc71..ad6f52292b4 100644
--- a/sci-physics/reduze/reduze-2.1.ebuild
+++ b/sci-physics/reduze/reduze-2.1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2016 Gentoo Foundation
+# Copyright 1999-2017 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -22,6 +22,8 @@ DEPEND="${RDEPEND}
        virtual/pkgconfig
        doc? ( app-doc/doxygen )"
 
+PATCHES=( "${FILESDIR}"/${P}-gcc6.patch )
+
 src_prepare() {
        cmake-utils_src_prepare
        # gentoo doc directory

Reply via email to