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