FS#31408 - [mongodb] dropped boost-1.50.patch causes link failures with libmongoclient.a

Attached to Project: Community Packages
Opened by Dror Levin (spatz) - Tuesday, 04 September 2012, 08:21 GMT
Last edited by Sven-Hendrik Haase (Svenstaro) - Monday, 01 October 2012, 05:30 GMT
Task Type Bug Report
Category Packages
Status Closed
Assigned To Sven-Hendrik Haase (Svenstaro)
Architecture All
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 4
Private No

Details

Description:
With mongodb-2.2.0-1 and boost-libs-1.50.0-2 installed (latest available), linking with libmongoclient.a and libboost_filesystem causes link failures:

/usr/lib/libmongoclient.a(log.o): In function `boost::enable_if<boost::filesystem2::is_basic_path<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >, bool>::type boost::filesystem2::exists<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >(boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> const&)':
(.text._ZN5boost11filesystem26existsINS0_10basic_pathISsNS0_11path_traitsEEEEENS_9enable_ifINS0_13is_basic_pathIT_EEbE4typeERKS7_[_ZN5boost11filesystem26existsINS0_10basic_pathISsNS0_11path_traitsEEEEENS_9enable_ifINS0_13is_basic_pathIT_EEbE4typeERKS7_]+0x6d): undefined reference to `boost::filesystem2::detail::status_api(std::string const&, boost::system::error_code&)'
/usr/lib/libmongoclient.a(log.o): In function `boost::enable_if<boost::filesystem2::is_basic_path<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >, bool>::type boost::filesystem2::is_directory<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >(boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> const&)':
(.text._ZN5boost11filesystem212is_directoryINS0_10basic_pathISsNS0_11path_traitsEEEEENS_9enable_ifINS0_13is_basic_pathIT_EEbE4typeERKS7_[_ZN5boost11filesystem212is_directoryINS0_10basic_pathISsNS0_11path_traitsEEEEENS_9enable_ifINS0_13is_basic_pathIT_EEbE4typeERKS7_]+0x6d): undefined reference to `boost::filesystem2::detail::status_api(std::string const&, boost::system::error_code&)'
/usr/lib/libmongoclient.a(log.o): In function `boost::enable_if<boost::filesystem2::is_basic_path<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >, bool>::type boost::filesystem2::is_regular<boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> >(boost::filesystem2::basic_path<std::string, boost::filesystem2::path_traits> const&)':
(.text._ZN5boost11filesystem210is_regularINS0_10basic_pathISsNS0_11path_traitsEEEEENS_9enable_ifINS0_13is_basic_pathIT_EEbE4typeERKS7_[_ZN5boost11filesystem210is_regularINS0_10basic_pathISsNS0_11path_traitsEEEEENS_9enable_ifINS0_13is_basic_pathIT_EEbE4typeERKS7_]+0x6d): undefined reference to `boost::filesystem2::detail::status_api(std::string const&, boost::system::error_code&)'

With mongodb-2.0.7-1 this works as expected.
This task depends upon

Closed by  Sven-Hendrik Haase (Svenstaro)
Monday, 01 October 2012, 05:30 GMT
Reason for closing:  Fixed
Comment by Sven-Hendrik Haase (Svenstaro) - Wednesday, 05 September 2012, 03:45 GMT
This is due to duplicate symbols as it is linking against another version of boost internally.
Comment by Mathias Rohnstock (drmonty) - Wednesday, 05 September 2012, 10:38 GMT
Using cxx-driver of mongodb from http://dl.mongodb.org/dl/cxx-driver generates the correct libmongoclient.a.
pch.h patch is required: sed -i 's/BOOST_FILESYSTEM_VERSION 2/BOOST_FILESYSTEM_VERSION 3/' src/mongo/pch.h
Comment by Sven-Hendrik Haase (Svenstaro) - Wednesday, 05 September 2012, 14:25 GMT
No, a much larger patch is actually necessary to properly use the system's boost. I got this.
Comment by Sven-Hendrik Haase (Svenstaro) - Thursday, 06 September 2012, 01:23 GMT
Can you try this one? http://ompldr.org/vZmRxMg
Comment by Gigi (gigitek) - Thursday, 06 September 2012, 05:22 GMT
Installed and not working:
/usr/bin/ld: cannot find -lmongoclient
collect2: error: ld returned 1 exit status

There is no libmongoclient.so in /usr/lib.
Comment by Gigi (gigitek) - Monday, 10 September 2012, 06:40 GMT
Any news about this issue ? I still have to use the older version, 2.0.7-1.
Comment by Aleeex87 (aleeex87) - Tuesday, 18 September 2012, 07:10 GMT
Any feedback's about the bug? it's starting to get annoying, that there is no progress...
Comment by Sven-Hendrik Haase (Svenstaro) - Thursday, 20 September 2012, 10:08 GMT
I'm working on it but the bug is annoying and upstream is uncommunicative.
Comment by Sven-Hendrik Haase (Svenstaro) - Sunday, 30 September 2012, 05:24 GMT
Alright, please test this and provide feedback: http://ompldr.org/vZnAwMw
Comment by Aleeex87 (aleeex87) - Monday, 01 October 2012, 05:28 GMT
I have tested the package provided, but it lakes the dynamic libraries. The project in which I work needs the dynamic libraries of MongoDB.
Comment by Sven-Hendrik Haase (Svenstaro) - Monday, 01 October 2012, 05:30 GMT
We can't currently provide the dynamic libraries as building mongo with shared library support completely fails. Please take that problem upstream.

Loading...