Bug 222439

Summary: databases/clickhouse: fails to build with system boost 1.65
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: Jan Beich <jbeich>
Status: Closed FIXED    
Severity: Affects Only Me CC: proler
Priority: --- Keywords: needs-patch
Version: LatestFlags: bugzilla: maintainer-feedback? (proler)
jbeich: merge-quarterly+
Hardware: Any   
OS: Any   
Bug Depends on: 218841    
Bug Blocks: 220714    

Description Jan Beich freebsd_committer freebsd_triage 2017-09-19 01:10:23 UTC
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
In file included from /usr/local/include/boost/rational.hpp:82:
/usr/local/include/boost/integer/common_factor_rt.hpp:447:44: error: no member named 'min' in 'std::__1::numeric_limits<__uint128_t>'
    if(a == (std::numeric_limits<Integer>::min)())
             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
/usr/local/include/boost/rational.hpp:854:26: note: in instantiation of function template specialization 'boost::integer::gcd<unsigned __int128>' requested here
    IntType g = integer::gcd(num, den);
                         ^
/usr/local/include/boost/rational.hpp:163:8: note: in instantiation of member function 'boost::rational<unsigned __int128>::normalize' requested here
       normalize();
       ^
/usr/local/include/boost/rational.hpp:251:23: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::rational<unsigned __int128, unsigned __int128>' requested here
       return *this = rational<IntType>(static_cast<IntType>(n), static_cast<IntType>(d));
                      ^
/usr/local/include/boost/rational.hpp:211:8: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::assign<int, int>' requested here
       assign(n, static_cast<T>(1));
       ^
dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:122:16: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::rational<int>' requested here
        return 1;
               ^
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
/usr/local/include/boost/rational.hpp:834:45: error: no matching function for call to 'gcd'
    return ( this->den > int_type(0) ) && ( integer::gcd(this->num, this->den) ==
                                            ^~~~~~~~~~~~
/usr/local/include/boost/rational.hpp:872:25: note: in instantiation of member function 'boost::rational<unsigned __int128>::test_invariant' requested here
    BOOST_ASSERT( this->test_invariant() );
                        ^
/usr/local/include/boost/rational.hpp:163:8: note: in instantiation of member function 'boost::rational<unsigned __int128>::normalize' requested here
       normalize();
       ^
/usr/local/include/boost/rational.hpp:251:23: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::rational<unsigned __int128, unsigned __int128>' requested here
       return *this = rational<IntType>(static_cast<IntType>(n), static_cast<IntType>(d));
                      ^
/usr/local/include/boost/rational.hpp:211:8: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::assign<int, int>' requested here
       assign(n, static_cast<T>(1));
       ^
dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:122:16: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::rational<int>' requested here
        return 1;
               ^
/usr/local/include/boost/integer/common_factor_rt.hpp:445:38: note: candidate template ignored: substitution failure [with Integer = unsigned __int128]
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
/usr/local/include/boost/integer/common_factor_rt.hpp:481:115: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'const unsigned __int128'
inline typename boost::enable_if_c<std::numeric_limits<Integer>::is_specialized, boost::rational<Integer> >::type gcd(boost::rational<Integer> const &a, boost::rational<Integer> const &b)
                                                                                                                  ^
/usr/local/include/boost/integer/common_factor_rt.hpp:465:38: note: candidate function template not viable: requires at least 3 arguments, but 2 were provided
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b, const Integer& c, Args const&... args) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
/usr/local/include/boost/rational.hpp:575:20: error: no matching function for call to 'gcd'
    IntType gcd1 = integer::gcd(num, r_num);
                   ^~~~~~~~~~~~
dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:368:34: note: in instantiation of member function 'boost::rational<unsigned __int128>::operator/=' requested here
            relative_sample_size /= settings.parallel_replicas_count.value;
                                 ^
/usr/local/include/boost/integer/common_factor_rt.hpp:445:38: note: candidate template ignored: substitution failure [with Integer = unsigned __int128]
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
/usr/local/include/boost/integer/common_factor_rt.hpp:481:115: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'unsigned __int128'
inline typename boost::enable_if_c<std::numeric_limits<Integer>::is_specialized, boost::rational<Integer> >::type gcd(boost::rational<Integer> const &a, boost::rational<Integer> const &b)
                                                                                                                  ^
/usr/local/include/boost/integer/common_factor_rt.hpp:465:38: note: candidate function template not viable: requires at least 3 arguments, but 2 were provided
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b, const Integer& c, Args const&... args) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
/usr/local/include/boost/rational.hpp:576:20: error: no matching function for call to 'gcd'
    IntType gcd2 = integer::gcd(r_den, den);
                   ^~~~~~~~~~~~
/usr/local/include/boost/integer/common_factor_rt.hpp:445:38: note: candidate template ignored: substitution failure [with Integer = unsigned __int128]
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
/usr/local/include/boost/integer/common_factor_rt.hpp:481:115: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'unsigned __int128'
inline typename boost::enable_if_c<std::numeric_limits<Integer>::is_specialized, boost::rational<Integer> >::type gcd(boost::rational<Integer> const &a, boost::rational<Integer> const &b)
                                                                                                                  ^
/usr/local/include/boost/integer/common_factor_rt.hpp:465:38: note: candidate function template not viable: requires at least 3 arguments, but 2 were provided
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b, const Integer& c, Args const&... args) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
/usr/local/include/boost/rational.hpp:551:20: error: no matching function for call to 'gcd'
    IntType gcd1 = integer::gcd(num, r_den);
                   ^~~~~~~~~~~~
/usr/local/include/boost/rational.hpp:643:16: note: in instantiation of member function 'boost::rational<unsigned __int128>::operator*=' requested here
      return t *= b;
               ^
dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:369:60: note: in instantiation of function template specialization 'boost::operator*<unsigned __int128, boost::rational<unsigned __int128> >' requested here
            relative_sample_offset += relative_sample_size * RelativeSize(settings.parallel_replica_offset.value);
                                                           ^
/usr/local/include/boost/integer/common_factor_rt.hpp:445:38: note: candidate template ignored: substitution failure [with Integer = unsigned __int128]
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
/usr/local/include/boost/integer/common_factor_rt.hpp:481:115: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'unsigned __int128'
inline typename boost::enable_if_c<std::numeric_limits<Integer>::is_specialized, boost::rational<Integer> >::type gcd(boost::rational<Integer> const &a, boost::rational<Integer> const &b)
                                                                                                                  ^
/usr/local/include/boost/integer/common_factor_rt.hpp:465:38: note: candidate function template not viable: requires at least 3 arguments, but 2 were provided
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b, const Integer& c, Args const&... args) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
/usr/local/include/boost/rational.hpp:552:20: error: no matching function for call to 'gcd'
    IntType gcd2 = integer::gcd(r_num, den);
                   ^~~~~~~~~~~~
/usr/local/include/boost/integer/common_factor_rt.hpp:445:38: note: candidate template ignored: substitution failure [with Integer = unsigned __int128]
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
/usr/local/include/boost/integer/common_factor_rt.hpp:481:115: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'unsigned __int128'
inline typename boost::enable_if_c<std::numeric_limits<Integer>::is_specialized, boost::rational<Integer> >::type gcd(boost::rational<Integer> const &a, boost::rational<Integer> const &b)
                                                                                                                  ^
/usr/local/include/boost/integer/common_factor_rt.hpp:465:38: note: candidate function template not viable: requires at least 3 arguments, but 2 were provided
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b, const Integer& c, Args const&... args) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
/usr/local/include/boost/rational.hpp:514:17: error: no matching function for call to 'gcd'
    IntType g = integer::gcd(den, r_den);
                ^~~~~~~~~~~~
dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:369:36: note: in instantiation of member function 'boost::rational<unsigned __int128>::operator+=' requested here
            relative_sample_offset += relative_sample_size * RelativeSize(settings.parallel_replica_offset.value);
                                   ^
/usr/local/include/boost/integer/common_factor_rt.hpp:445:38: note: candidate template ignored: substitution failure [with Integer = unsigned __int128]
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
/usr/local/include/boost/integer/common_factor_rt.hpp:481:115: note: candidate template ignored: could not match 'rational<type-parameter-0-0>' against 'unsigned __int128'
inline typename boost::enable_if_c<std::numeric_limits<Integer>::is_specialized, boost::rational<Integer> >::type gcd(boost::rational<Integer> const &a, boost::rational<Integer> const &b)
                                                                                                                  ^
/usr/local/include/boost/integer/common_factor_rt.hpp:465:38: note: candidate function template not viable: requires at least 3 arguments, but 2 were provided
inline BOOST_CXX14_CONSTEXPR Integer gcd(Integer const &a, Integer const &b, const Integer& c, Args const&... args) BOOST_GCD_NOEXCEPT(Integer)
                                     ^
7 errors generated.

build log: http://tpaste.us/5vx0
Comment 1 commit-hook freebsd_committer freebsd_triage 2017-09-25 00:57:51 UTC
A commit references this bug:

Author: jbeich
Date: Mon Sep 25 00:57:35 UTC 2017
New revision: 450563
URL: https://svnweb.freebsd.org/changeset/ports/450563

Log:
  databases/clickhouse: mark BROKEN after r450560

  In file included from dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:19:
  In file included from contrib/libboost/boost_1_65_0/boost/rational.hpp:82:
  contrib/libboost/boost_1_65_0/boost/integer/common_factor_rt.hpp:447:44: error: no member named 'min' in 'std::__1::numeric_limits<__uint128_t>'
      if(a == (std::numeric_limits<Integer>::min)())
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
  contrib/libboost/boost_1_65_0/boost/rational.hpp:854:26: note: in instantiation of function template specialization 'boost::integer::gcd<unsigned __int128>' requested here
      IntType g = integer::gcd(num, den);
                           ^
  contrib/libboost/boost_1_65_0/boost/rational.hpp:163:8: note: in instantiation of member function 'boost::rational<unsigned __int128>::normalize' requested here
         normalize();
         ^
  contrib/libboost/boost_1_65_0/boost/rational.hpp:251:23: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::rational<unsigned __int128, unsigned __int128>' requested here
         return *this = rational<IntType>(static_cast<IntType>(n), static_cast<IntType>(d));
                        ^
  contrib/libboost/boost_1_65_0/boost/rational.hpp:211:8: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::assign<int, int>' requested here
         assign(n, static_cast<T>(1));
         ^
  dbms/src/Storages/MergeTree/MergeTreeDataSelectExecutor.cpp:122:16: note: in instantiation of function template specialization 'boost::rational<unsigned __int128>::rational<int>' requested here
          return 1;
                 ^
  [...]

  PR:		222439
  Pointy hat to:	jbeich (bundled boost didn't help)

Changes:
  head/databases/clickhouse/Makefile
Comment 3 Jan Beich freebsd_committer freebsd_triage 2017-10-06 16:16:30 UTC
Do you want me to apply the fix now or wait until it's reviewed/landed upstream? The package cluster runs bulk builds every 2 days, the next one is going to start around 2017-10-07 01:00 UTC.
Comment 4 commit-hook freebsd_committer freebsd_triage 2017-10-06 18:23:38 UTC
A commit references this bug:

Author: jbeich
Date: Fri Oct  6 18:23:08 UTC 2017
New revision: 451394
URL: https://svnweb.freebsd.org/changeset/ports/451394

Log:
  databases/clickhouse: unbreak after r450560

  PR:		222439
  Obtained from:	upstream
  Submitted by:	proler@gmail.com (maintainer)

Changes:
  head/databases/clickhouse/Makefile
  head/databases/clickhouse/distinfo
Comment 5 commit-hook freebsd_committer freebsd_triage 2017-10-06 18:24:41 UTC
A commit references this bug:

Author: jbeich
Date: Fri Oct  6 18:24:34 UTC 2017
New revision: 451395
URL: https://svnweb.freebsd.org/changeset/ports/451395

Log:
  MFH: r451394

  databases/clickhouse: unbreak after r450560

  PR:		222439
  Obtained from:	upstream
  Submitted by:	proler@gmail.com (maintainer)
  Approved by:	ports-secteam blanket

Changes:
_U  branches/2017Q4/
  branches/2017Q4/databases/clickhouse/Makefile
  branches/2017Q4/databases/clickhouse/distinfo