FTBFS on CentOS 6.5 in Boost::program_options
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Quantum wells, wires and dots |
Won't Fix
|
Critical
|
Alex Valavanis |
Bug Description
Hello,
I'm trying to compile qwwad-1.4.0 from source code on CentOS 6.5 system during the compilation I'm getting the below error
Can you please advise how to debug this issue ?
In file included from /usr/local/
/usr/local/
template<
CXX src/qwwad-debye.lo
CXX src/qwwad/
CXX src/qwwad/
CXX src/qwwad/
CXX src/qwwad/mesh.lo
CXX src/qwwad/
CXX src/qwwad/
CXX src/qwwad/
../src/
../src/
In file included from /usr/include/
/usr/include/
const option_description& find(const std::string& name, bool approx)
/usr/include/
make[1]: *** [src/qwwad/
make[1]: Leaving directory `/tmp/devl/
make: *** [all] Error 2
Thanks in advance,
Badies
Related branches
Changed in qwwad: | |
importance: | Undecided → Critical |
tags: | added: build |
Changed in qwwad: | |
status: | New → Triaged |
Changed in qwwad: | |
status: | Triaged → In Progress |
Changed in qwwad: | |
status: | In Progress → Fix Committed |
milestone: | none → 1.5 |
This looks like it was caused by an API change in the Boost:: program_ options library.
CentOS 6.5 provides Boost 1.41 [1], while I'm currently using Boost 1.53 in CentOS 7 [2].
The change seems to be in the options_ description. find() function.
In Boost 1.41 [3]:
const option_description & find(const std::string & name, bool approx) const;
In Boost 1.42 and higher [4]:
const option_description &
find(const std::string & name, bool approx, bool long_ignore_case = false,
bool short_ignore_case = false) const;
We use the latter form, but only state a requirement for Boost 1.35 or higher.
There are three options for fixing the issue:
1. End support for Boost < 1.42 (but this would kill CentOS 6 support)
2. Stop using the "long_ignore_case" option. This would make the long-option names case-sensitive, which maybe wouldn't be such a bad thing
3. Provide a conditional build that would allow case-insensitive option naming on systems with Boost >= 1.42
I think I prefer Option 2 as it would allow users of older operating systems to carry on using QWWAD and would make the option parsing a bit stricter.
[1] http:// mirror. centos. org/centos/ 6/os/x86_ 64/Packages/ mirror. centos. org/centos/ 7/os/x86_ 64/Packages/ www.boost. org/doc/ libs/1_ 41_0/doc/ html/boost/ program_ options/ options_ description. html#id884352- bb www.boost. org/doc/ libs/1_ 42_0/doc/ html/boost/ program_ options/ options_ description. html#id884352- bb
[2] http://
[3] http://
[4] http://