airdcpp-web / airdcpp-webclient

Communal peer-to-peer file sharing application for file servers/NAS devices
https://airdcpp-web.github.io
173 stars 31 forks source link

Unable to compile 2.12.2 due to to error "no member named 'find' in namespace 'std::ranges'" #472

Closed 35gh closed 1 month ago

35gh commented 2 months ago

Current UI and client versions:

Web Client 2.12.2

Operating system:

FreeBSD 13.1-RELEASE-p9

Steps to reproduce the issue:

Pulled the latest source code from github after release of Web Client 2.12.2 and tried to compile

Logs

[  0%] Building CXX object airdcpp-core/CMakeFiles/airdcpp.dir/cmake_pch.hxx.pch
[  1%] Building CXX object airdcpp-core/CMakeFiles/airdcpp.dir/airdcpp/ActivityManager.cpp.o
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/ActivityManager.cpp:21:
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/ActivityManager.h:27:
/root/airdcpp-webclient/airdcpp-core/airdcpp/Speaker.h:53:6: error: no member named 'find' in namespace 'std::ranges'; did you mean simply 'find'?
                if(ranges::find(listeners, aListener) == listeners.end())
                   ^~~~~~~~~~~~
                   find
/usr/include/c++/v1/__algorithm/find.h:23:1: note: 'find' declared here
find(_InputIterator __first, _InputIterator __last, const _Tp& __value_) {
^
maksis commented 2 months ago

What's the compiler version (most likely clang -v)?

35gh commented 2 months ago

FreeBSD clang version 14.0.5 (https://github.com/llvm/llvm-project.git llvmorg-14.0.5-0-gc12386ae247c) Target: x86_64-unknown-freebsd13.2 Thread model: posix InstalledDir: /usr/bin

maksis commented 2 months ago

I've only tested compiling on FreeBSD 14. Are you able to upgrade to version 13.3 or 14.1?

maksis commented 2 months ago

You can also try removing the old cached build files first (git clean -fdx)

35gh commented 2 months ago

Cleaned the build cache and created another jail on FreeBSD 13.3 I'm running Truenas Core which runs on 13.1 stable / 13.3.0 beta atm , but there is no plan from IXsystems to update to FreeBSD 14.

on 13.2: still failing with the same error

on 13.3: compile worked but with a lot of warnings (partial log):

In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/TransferInfoManager.cpp:28:
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/QueueManager.h:35:
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/FileQueue.h:26:
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/DirectoryListing.h:31:
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/DispatcherQueue.h:26:
In file included from /root/airdcpp-webclient/airdcpp-core/airdcpp/concurrency.h:26:
In file included from /usr/local/include/tbb/task_group.h:23:
In file included from /usr/local/include/tbb/task.h:36:
In file included from /usr/local/include/tbb/tbb_profiling.h:123:
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile long long' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<long long>::converter<const volatile long long>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile long long]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:454:1: note: in instantiation of member function 'tbb::internal::atomic_impl<long long>::operator long long' requested here
  454 | __TBB_DECL_ATOMIC(__TBB_LONG_LONG)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile unsigned long long' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<unsigned long long>::converter<const volatile unsigned long long>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile unsigned long long]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:455:1: note: in instantiation of member function 'tbb::internal::atomic_impl<unsigned long long>::operator unsigned long long' requested here
  455 | __TBB_DECL_ATOMIC(unsigned __TBB_LONG_LONG)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile long' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<long>::converter<const volatile long>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile long]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:459:1: note: in instantiation of member function 'tbb::internal::atomic_impl<long>::operator long' requested here
  459 | __TBB_DECL_ATOMIC(long)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile unsigned long' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<unsigned long>::converter<const volatile unsigned long>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile unsigned long]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:460:1: note: in instantiation of member function 'tbb::internal::atomic_impl<unsigned long>::operator unsigned long' requested here
  460 | __TBB_DECL_ATOMIC(unsigned long)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile unsigned int' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<unsigned int>::converter<const volatile unsigned int>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile unsigned int]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:491:1: note: in instantiation of member function 'tbb::internal::atomic_impl<unsigned int>::operator unsigned int' requested here
  491 | __TBB_DECL_ATOMIC(unsigned)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile int' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<int>::converter<const volatile int>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile int]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:492:1: note: in instantiation of member function 'tbb::internal::atomic_impl<int>::operator int' requested here
  492 | __TBB_DECL_ATOMIC(int)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile unsigned short' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<unsigned short>::converter<const volatile unsigned short>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile unsigned short]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:495:1: note: in instantiation of member function 'tbb::internal::atomic_impl<unsigned short>::operator unsigned short' requested here
  495 | __TBB_DECL_ATOMIC(unsigned short)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile short' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<short>::converter<const volatile short>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile short]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:496:1: note: in instantiation of member function 'tbb::internal::atomic_impl<short>::operator short' requested here
  496 | __TBB_DECL_ATOMIC(short)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile char' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<char>::converter<const volatile char>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile char]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:497:1: note: in instantiation of member function 'tbb::internal::atomic_impl<char>::operator char' requested here
  497 | __TBB_DECL_ATOMIC(char)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile signed char' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<signed char>::converter<const volatile signed char>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile signed char]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:498:1: note: in instantiation of member function 'tbb::internal::atomic_impl<signed char>::operator signed char' requested here
  498 | __TBB_DECL_ATOMIC(signed char)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile unsigned char' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<unsigned char>::converter<const volatile unsigned char>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile unsigned char]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:499:1: note: in instantiation of member function 'tbb::internal::atomic_impl<unsigned char>::operator unsigned char' requested here
  499 | __TBB_DECL_ATOMIC(unsigned char)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile wchar_t' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<wchar_t>::converter<const volatile wchar_t>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile wchar_t]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:502:1: note: in instantiation of member function 'tbb::internal::atomic_impl<wchar_t>::operator wchar_t' requested here
  502 | __TBB_DECL_ATOMIC(wchar_t)
      | ^
/usr/local/include/tbb/atomic.h:441:78: note: expanded from macro '__TBB_DECL_ATOMIC'
  441 |             atomic<T>& operator=( const atomic<T>& rhs ) {store_with_release(rhs); return *this;}   \
      |                                                                              ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'void *const volatile' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<void *>::converter<void *const volatile>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = void *const volatile]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/atomic.h:538:34: note: in instantiation of member function 'tbb::internal::atomic_impl<void *>::operator void *' requested here
  538 |         this->store_with_release(rhs); return *this;
      |                                  ^
/usr/local/include/tbb/atomic.h:240:18: warning: volatile-qualified parameter type 'const volatile bool' is deprecated [-Wdeprecated-volatile]
  240 |         converter(value_type a_value) : value(a_value) {}
      |                  ^
/usr/local/include/tbb/atomic.h:269:21: note: in instantiation of template class 'tbb::internal::atomic_impl<bool>::converter<const volatile bool>' requested here
  269 |     static typename converter<value_t>::bits_type & to_bits_ref(value_t& value){
      |                     ^
/usr/local/include/tbb/atomic.h:311:42: note: while substituting deduced template arguments into function template 'to_bits_ref' [with value_t = const volatile bool]
  311 |                 __TBB_load_with_acquire( to_bits_ref(my_storage.my_value) )
      |                                          ^
/usr/local/include/tbb/partitioner.h:143:16: note: in instantiation of member function 'tbb::internal::atomic_impl<bool>::operator bool' requested here
  143 |         return static_cast<flag_task*>(t.parent())->my_child_stolen;
      |                ^
maksis commented 1 month ago

Yeah there are quite a few harmless warnings but those are produced by an external library (TBB), not the code of this application