Package: shibboleth-sp2
Version: 2.5.3+dfsg-2.1
Severity: important
User: debian-...@lists.debian.org
Usertags: ftbfs-gcc-6 gcc-6-invalid-template-argument

This package fails to build with GCC 6.  GCC 6 has not been released
yet, but it's expected that GCC 6 will become the default compiler for
stretch.

Note that only the first error is reported; there might be more.  You
can find a snapshot of GCC 6 in experimental.  To build with GCC 6,
you can set CC=gcc-6 CXX=g++-6 explicitly.

You may be able to find out more about this issue at
https://gcc.gnu.org/gcc-6/changes.html

> sbuild (Debian sbuild) 0.67.0 (26 Dec 2015) on dl580gen9-02.hlinux
...
> /bin/bash ../libtool  --tag=CXX   --mode=compile g++ -DHAVE_CONFIG_H -I. -I.. 
>   -Wdate-time -D_FORTIFY_SOURCE=2 -isystem /usr/include/mit-krb5  -pthread 
> -Wall -g -O2 -fPIE -fstack-protector-strong -Wformat -Werror=format-security 
> -O2 -DNDEBUG -c -o TransformSessionInitiator.lo `test -f 
> 'handler/impl/TransformSessionInitiator.cpp' || echo 
> './'`handler/impl/TransformSessionInitiator.cpp
> libtool: compile:  g++ -DHAVE_CONFIG_H -I. -I.. -Wdate-time 
> -D_FORTIFY_SOURCE=2 -isystem /usr/include/mit-krb5 -pthread -Wall -g -O2 
> -fstack-protector-strong -Wformat -Werror=format-security -O2 -DNDEBUG -c 
> handler/impl/TransformSessionInitiator.cpp  -fPIC -DPIC -o 
> .libs/TransformSessionInitiator.o
> handler/impl/TransformSessionInitiator.cpp:136:43: error: template argument 1 
> is invalid
>          vector< tuple<bool,string,string> > m_regex;
>                                            ^
> 
> handler/impl/TransformSessionInitiator.cpp:136:43: error: template argument 2 
> is invalid
> handler/impl/TransformSessionInitiator.cpp: In constructor 
> 'shibsp::TransformSessionInitiator::TransformSessionInitiator(const 
> xercesc_3_1::DOMElement*, const char*)':
> handler/impl/TransformSessionInitiator.cpp:112:41: error: request for member 
> 'push_back' in 
> '((shibsp::TransformSessionInitiator*)this)->shibsp::TransformSessionInitiator::m_regex',
>  which is of non-class type 'int'
>                                  
> m_regex.push_back(tuple<bool,string,string>(flag, m.get(), repl.get()));
>                                          ^~~~~~~~~
> 
> handler/impl/TransformSessionInitiator.cpp:112:51: error: reference to 
> 'tuple' is ambiguous
>                                  
> m_regex.push_back(tuple<bool,string,string>(flag, m.get(), repl.get()));
>                                                    ^~~~~
> 
> In file included from /usr/include/c++/6/utility:70:0,
>                  from /usr/include/xmltooling/base.h:1983,
>                  from /usr/include/saml/base.h:31,
>                  from ./base.h:35,
>                  from ./internal.h:47,
>                  from handler/impl/TransformSessionInitiator.cpp:27:
> /usr/include/c++/6/bits/stl_pair.h:83:11: note: candidates are: 
> template<class ...> class std::tuple
>      class tuple;
>            ^~~~~
> 
> In file included from /usr/include/boost/tuple/tuple.hpp:28:0,
>                  from handler/impl/TransformSessionInitiator.cpp:41:
> /usr/include/boost/tuple/detail/tuple_basic.hpp:81:7: note:                 
> template<class T0, class T1, class T2, class T3, class T4, class T5, class 
> T6, class T7, class T8, class T9> class boost::tuples::tuple
>  class tuple;
>        ^~~~~
> 
> handler/impl/TransformSessionInitiator.cpp:112:57: error: expected 
> primary-expression before 'bool'
>                                  
> m_regex.push_back(tuple<bool,string,string>(flag, m.get(), repl.get()));
>                                                          ^~~~
> 
> handler/impl/TransformSessionInitiator.cpp:112:68: error: expected 
> primary-expression before ',' token
>                                  
> m_regex.push_back(tuple<bool,string,string>(flag, m.get(), repl.get()));
>                                                                     ^
> 
> handler/impl/TransformSessionInitiator.cpp:112:75: error: expected 
> primary-expression before '>' token
>                                  
> m_regex.push_back(tuple<bool,string,string>(flag, m.get(), repl.get()));
>                                                                            ^
> 
> handler/impl/TransformSessionInitiator.cpp:112:89: warning: left operand of 
> comma operator has no effect [-Wunused-value]
>                                  
> m_regex.push_back(tuple<bool,string,string>(flag, m.get(), repl.get()));
>                                                                               
>            ^
> 
> handler/impl/TransformSessionInitiator.cpp: In member function 'void 
> shibsp::TransformSessionInitiator::doRequest(const shibsp::Application&, 
> std::__cxx11::string&) const':
> handler/impl/TransformSessionInitiator.cpp:257:44: error: template argument 1 
> is invalid
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                             ^
> 
> handler/impl/TransformSessionInitiator.cpp:257:44: error: template argument 2 
> is invalid
> handler/impl/TransformSessionInitiator.cpp:257:62: error: qualified-id in 
> declaration before 'r'
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                                               ^
> 
> handler/impl/TransformSessionInitiator.cpp:257:62: error: expected ';' before 
> 'r'
> handler/impl/TransformSessionInitiator.cpp:257:62: error: 'r' was not 
> declared in this scope
> handler/impl/TransformSessionInitiator.cpp:257:74: error: request for member 
> 'begin' in '((const 
> shibsp::TransformSessionInitiator*)this)->shibsp::TransformSessionInitiator::m_regex',
>  which is of non-class type 'const int'
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                                                           
> ^~~~~
> 
> handler/impl/TransformSessionInitiator.cpp:257:96: error: request for member 
> 'end' in '((const 
> shibsp::TransformSessionInitiator*)this)->shibsp::TransformSessionInitiator::m_regex',
>  which is of non-class type 'const int'
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                                                               
>                   ^~~
> 
> handler/impl/TransformSessionInitiator.cpp:257:101: error: expected ')' 
> before ';' token
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                                                               
>                        ^
> 
> handler/impl/TransformSessionInitiator.cpp:257:103: warning: statement is 
> indented as if it were guarded by... [-Wmisleading-indentation]
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                                                               
>                          ^~
> 
> handler/impl/TransformSessionInitiator.cpp:257:5: note: ...this 'for' clause, 
> but it is not
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>      ^~~
> 
> handler/impl/TransformSessionInitiator.cpp:257:105: error: 'r' was not 
> declared in this scope
>      for (vector< tuple<bool,string,string> >::const_iterator r = 
> m_regex.begin(); r != m_regex.end(); ++r) {
>                                                                               
>                            ^
> 
> Makefile:1750: recipe for target 'TransformSessionInitiator.lo' failed

-- 
Martin Michlmayr
Linux for HPE Helion, Hewlett Packard Enterprise

Reply via email to