Backporting problems for ceph 12.2.2 (Xenial)

Asked by Alin Trăistaru on 2018-03-09

I'm trying to backport ceph from Artful to Xenial with:

# backportpackage -s artful -d xenial -w . -U -u ppa:alindt/ceph-xenial https://launchpad.net/ubuntu/+archive/primary/+files/ceph_12.2.2-0ubuntu0.17.10.1.dsc

...here: https://launchpad.net/~alindt/+archive/ubuntu/ceph-xenial/+packages

All dependencies are satisfied (from what I can tell) but building fails with libboost errors:

=====
/usr/bin/ld: cannot find -lBoost::thread
/usr/bin/ld: cannot find -lBoost::system
/usr/bin/ld: cannot find -lBoost::regex
/usr/bin/ld: cannot find -lBoost::random
/usr/bin/ld: cannot find -lBoost::program_options
/usr/bin/ld: cannot find -lBoost::date_time
/usr/bin/ld: cannot find -lBoost::iostreams
collect2: error: ld returned 1 exit status
src/CMakeFiles/ceph-common.dir/build.make:427: recipe for target 'lib/libceph-common.so.0' failed
=====

Buildlog here: https://launchpadlibrarian.net/360102297/buildlog_ubuntu-xenial-amd64.ceph_12.2.2-0ubuntu0.17.10.1~ubuntu16.04.1~alindt3_BUILDING.txt.gz

Any ideas?

Question information

Language:
English Edit question
Status:
Solved
For:
Ubuntu ceph Edit question
Assignee:
No assignee Edit question
Solved by:
Manfred Hampl
Solved:
2018-03-10
Last query:
2018-03-10
Last reply:
2018-03-09
Best Manfred Hampl (m-hampl) said : #1

web search for
"Target "ceph-fuse" links to target "Boost::thread" but the target was not
  found. Perhaps a find_package() call is missing for an IMPORTED target, or
  an ALIAS target is missing?"
indicates that you might need a newer version of cmake
see e.g.
https://github.com/Microsoft/vcpkg/issues/2459

This might be confirmed by the change log of cmake in Ubuntu:
"...
3.6.2-2ubuntu3
...
  * cherry-pick upstream patches to add support for new boost1.62 modules:
..."

Alin Trăistaru (alindt) said : #2

Indeed, backporting cmake from Artful results in the build process not spewing the same error about boost, instead another boost hiccup appears:

======
../lib/libcommon.a(options.cc.o): In function `boost::cpp_regex_traits<char>::transform_primary(char const*, char const*) const':
/usr/include/boost/regex/v4/cpp_regex_traits.hpp:966: undefined reference to `boost::re_detail_106200::cpp_regex_traits_implementation<char>::transform_primary(char const*, char const*) const'
../lib/libcommon.a(options.cc.o): In function `boost::cpp_regex_traits<char>::transform(char const*, char const*) const':
/usr/include/boost/regex/v4/cpp_regex_traits.hpp:962: undefined reference to `boost::re_detail_106200::cpp_regex_traits_implementation<char>::transform(char const*, char const*) const'
collect2: error: ld returned 1 exit status
======

Buildlog here: https://launchpadlibrarian.net/360119765/buildlog_ubuntu-xenial-amd64.ceph_12.2.2-0ubuntu0.17.10.1~ubuntu16.04.1~alindt3_BUILDING.txt.gz

There's also a 1.63 version of boost in Artful - I'll try backporting that too and rebuilding ceph.

Alin Trăistaru (alindt) said : #3

It seems that the fix for this last problem is to compile with GCC 6+.

Alin Trăistaru (alindt) said : #4

Thanks Manfred Hampl, that solved my question.