Shibboleth SP 2.5.3 fails to build with Boost 1.54

Russ Allbery rra at debian.org
Mon Mar 17 03:13:41 UTC 2014


"Cantor, Scott" <cantor.2 at osu.edu> writes:
> On 3/16/14, 10:37 PM, "Russ Allbery" <rra at debian.org> wrote:

>> When trying to build the new package with the libmemcached change, I
>> found that the 2.5.3 SP package will no longer build.  I thought it was
>> the C++11 change for libmemcached, but I dropped that again and it
>> still fails.  I'm fairly sure it's Boost, which was updated to use 1.54
>> by default in Debian recently.  It looks like something changed about
>> tuple handling that's causing problems.

> I know it's building against 1.55 on OS X, just off hand. At least I
> haven't been notified otherwise by macports. The Windows build was
> against 1.53, and most of the other builds would have been against
> older, so I don't have evidence on 1.54 either way.

It's probably also relevant that this is g++ 4.8.2.

It looks like the problems stem from:

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

I'm not sure what "argument 2" could be referring to, though, since the
arrow seems to be pointing at the vector instantiation, which only has one
argument.  A bunch of the remaining errors are from not being able to
create the m_regex object.

The error about tuple being ambiguous make me think that part of the code
is picking up the Boost tuple and part is picking up the C++ tuple and
they're somehow not compatible.  When I force everything to std::tuple
(I'm not sure if that's a meaningful thing to do, but thought I'd try it),
most of the errors go away, but I get a different error:

handler/impl/TransformSessionInitiator.cpp: In member function 'void shibsp::TransformSessionInitiator::doRequest(const shibsp::Application&, std::string&) const':
handler/impl/TransformSessionInitiator.cpp:259:38: error: 'const class std::tuple<bool, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> > >' has no member named 'get'
             RegularExpression exp(r->get<1>().c_str());
                                      ^

which is beyond my C++ knowledge to decipher.

-- 
Russ Allbery (rra at debian.org)               <http://www.eyrie.org/~eagle/>



More information about the Pkg-shibboleth-devel mailing list