Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 647050 - dev-libs/leatherman and dev-ruby/facter need to rebuild whenever dev-libs/boost is updated
Summary: dev-libs/leatherman and dev-ruby/facter need to rebuild whenever dev-libs/boo...
Status: RESOLVED DUPLICATE of bug 637644
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-08 20:14 UTC by Alan Hodgson
Modified: 2018-02-10 12:57 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Alan Hodgson 2018-02-08 20:14:57 UTC
Almost invariably, updating dev-libs/boost breaks dev-libs/leatherman, linker failures that one sees when next building dev-ruby/facter.

@preserved-rebuild finds that facter needs to be rebuilt, but not leatherman, I think probably because leatherman is statically linked

Reproducible: Always

Steps to Reproduce:
1. Update dev-libs/boost
2. Run emerge @preserved-rebuild
Actual Results:  
# emerge -uDNav --with-bdeps y --backtrack 100 @world
Calculating dependencies... done!
[ebuild     U  ] dev-util/boost-build-1.65.0::gentoo [1.63.0::gentoo] USE="python -examples {-test}" PYTHON_TARGETS="python2_7" 80,662 KiB
[ebuild  r  U  ] dev-libs/boost-1.65.0:0/1.65.0::gentoo [1.63.0:0/1.63.0::gentoo] USE="icu nls python threads tools -context -debug -doc -mpi -static-libs" PYTHON_TARGETS="python2_7 python3_4 -python3_5 -python3_6" 0 KiB
[ebuild     U ~] app-admin/puppet-5.3.4::gentoo [5.3.3-r1::gentoo] USE="augeas ldap sqlite vim-syntax -diff -doc -emacs -rrdtool (-selinux) -shadow {-test}" RUBY_TARGETS="ruby23 -ruby22 -ruby24" 2,822 KiB
...

# emerge -j1 @preserved-rebuild

Calculating dependencies... done!
>>> Verifying ebuild manifests
>>> Emerging (1 of 1) dev-ruby/facter-3.9.2::gentoo

...

/usr/lib64/leatherman_curl.a(client.cc.o): In function `boost::re_detail_106300::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::unwind_extra_block(bool)':
(.text._ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE18unwind_extra_blockEb[_ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE18unwind_extra_blockEb]+0x3b): undefined reference to `boost::re_detail_106300::put_mem_block(void*)'
/usr/lib64/leatherman_curl.a(client.cc.o): In function `__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > boost::re_detail_106300::re_is_set_member<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, char, boost::regex_traits<char, boost::cpp_regex_traits<char> >, unsigned int>(__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, __gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, boost::re_detail_106300::re_set_long<unsigned int> const*, boost::re_detail_106300::regex_data<char, boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, bool)':
(.text._ZN5boost16re_detail_10630016re_is_set_memberIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_SH_SH_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb[_ZN5boost16re_detail_10630016re_is_set_memberIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_SH_SH_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb]+0x19d): undefined reference to `boost::re_detail_106300::cpp_regex_traits_implementation<char>::transform_primary[abi:cxx11](char const*, char const*) const'
(.text._ZN5boost16re_detail_10630016re_is_set_memberIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_SH_SH_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb[_ZN5boost16re_detail_10630016re_is_set_memberIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEcNS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEjEET_SH_SH_PKNS0_11re_set_longIT2_EERKNS0_10regex_dataIT0_T1_EEb]+0x2e0): undefined reference to `boost::re_detail_106300::cpp_regex_traits_implementation<char>::transform[abi:cxx11](char const*, char const*) const'
/usr/lib64/leatherman_curl.a(client.cc.o): In function `boost::re_detail_106300::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::find_imp()':
(.text._ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv[_ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv]+0x19): undefined reference to `boost::re_detail_106300::get_mem_block()'
(.text._ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv[_ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv]+0x13f): undefined reference to `boost::re_detail_106300::verify_options(unsigned int, boost::regex_constants::_match_flags)'
(.text._ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv[_ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv]+0x186): undefined reference to `boost::re_detail_106300::put_mem_block(void*)'
(.text._ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv[_ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE8find_impEv]+0x2ed): undefined reference to `boost::re_detail_106300::put_mem_block(void*)'
/usr/lib64/leatherman_curl.a(client.cc.o): In function `void boost::re_detail_106300::raise_error<boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > >(boost::regex_traits_wrapper<boost::regex_traits<char, boost::cpp_regex_traits<char> > > const&, boost::regex_constants::error_type)':
(.text._ZN5boost16re_detail_10630011raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[_ZN5boost16re_detail_10630011raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE]+0xbd): undefined reference to `boost::re_detail_106300::raise_runtime_error(std::runtime_error const&)'
(.text._ZN5boost16re_detail_10630011raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[_ZN5boost16re_detail_10630011raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE]+0xd8): undefined reference to `boost::re_detail_106300::get_default_error_string(boost::regex_constants::error_type)'
(.text._ZN5boost16re_detail_10630011raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE[_ZN5boost16re_detail_10630011raise_errorINS_20regex_traits_wrapperINS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEEEEEvRKT_NS_15regex_constants10error_typeE]+0x118): undefined reference to `boost::re_detail_106300::get_default_error_string(boost::regex_constants::error_type)'
/usr/lib64/leatherman_curl.a(client.cc.o): In function `boost::re_detail_106300::perl_matcher<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<boost::sub_match<__gnu_cxx::__normal_iterator<char const*, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > >, boost::regex_traits<char, boost::cpp_regex_traits<char> > >::extend_stack()':
(.text._ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12extend_stackEv[_ZN5boost16re_detail_10630012perl_matcherIN9__gnu_cxx17__normal_iteratorIPKcNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEESaINS_9sub_matchISC_EEENS_12regex_traitsIcNS_16cpp_regex_traitsIcEEEEE12extend_stackEv]+0x2b): undefined reference to `boost::re_detail_106300::get_mem_block()'
collect2: error: ld returned 1 exit status
make[2]: *** [lib/tests/CMakeFiles/libfacter_test.dir/build.make:1669: bin/libfacter_test] Error 1
make[2]: Leaving directory '/var/tmp/portage/dev-ruby/facter-3.9.2/work/facter-3.9.2_build'
make[1]: *** [CMakeFiles/Makefile2:252: lib/tests/CMakeFiles/libfacter_test.dir/all] Error 2
make[1]: Leaving directory '/var/tmp/portage/dev-ruby/facter-3.9.2/work/facter-3.9.2_build'
make: *** [Makefile:144: all] Error 2
 * ERROR: dev-ruby/facter-3.9.2::gentoo failed (compile phase):
 *   emake failed
 * 
 * If you need support, post the output of `emerge --info '=dev-ruby/facter-3.9.2::gentoo'`,
 * the complete build log and the output of `emerge -pqv '=dev-ruby/facter-3.9.2::gentoo'`.
 * The complete build log is located at '/var/tmp/portage/dev-ruby/facter-3.9.2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/dev-ruby/facter-3.9.2/temp/environment'.
 * Working directory: '/var/tmp/portage/dev-ruby/facter-3.9.2/work/facter-3.9.2_build'
 * S: '/var/tmp/portage/dev-ruby/facter-3.9.2/work/all/facter-3.9.2'
!!! When you file a bug report, please include the following information:
GENTOO_VM=  CLASSPATH="" JAVA_HOME="/usr"
JAVACFLAGS="" COMPILER=""
and of course, the output of emerge --info =facter-3.9.2

>>> Failed to emerge dev-ruby/facter-3.9.2, Log file:

>>>  '/var/tmp/portage/dev-ruby/facter-3.9.2/temp/build.log'


# to fix : emerge -1 leatherman facter

Calculating dependencies... done!
>>> Verifying ebuild manifests
>>> Emerging (1 of 2) dev-libs/leatherman-1.3.0::gentoo
>>> Installing (1 of 2) dev-libs/leatherman-1.3.0::gentoo
>>> Emerging (2 of 2) dev-ruby/facter-3.9.2::gentoo
>>> Installing (2 of 2) dev-ruby/facter-3.9.2::gentoo
>>> Jobs: 2 of 2 complete

Expected Results:  
1) Updating boost should force a rebuild of dev-libs/leatherman and dev-ruby/facter

or

2) @preserved-rebuild should update both dev-libs/leatherman and dev-ruby/facter after boost updates

my package.keywords contains:

app-admin/puppet ~amd64
=dev-ruby/facter-3.6.3-r1 ~amd64
=dev-ruby/hocon-1.2.5 ~amd64
Comment 1 Alan Hodgson 2018-02-09 19:02:53 UTC
This appears to be fixed in dev-libs/leatherman-1.3.0-r1, at least with the default keywords, as it installs shared libraries that are correctly found by @preserved-rebuild after future boost updates.
Comment 2 Jeroen Roovers (RETIRED) gentoo-dev 2018-02-10 12:57:07 UTC

*** This bug has been marked as a duplicate of bug 637644 ***