oxen-io / lokinet

Lokinet is an anonymous, decentralized and IP based overlay network for the internet.
https://lokinet.org/
GNU General Public License v3.0
1.71k stars 220 forks source link

Incompatibility with UVW 3.0.0? error: 'AsyncHandle' is not a member of 'uvw'; did you mean 'async_handle'? etc. #2197

Closed barracuda156 closed 3 months ago

barracuda156 commented 11 months ago
[  9%] Building CXX object llarp/CMakeFiles/lokinet-platform.dir/ev/ev.cpp.o
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/build/llarp && /opt/local/bin/g++-mp-12 -DPOSIX -DUNIX -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/crypto/libntrup/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/external/uvw/src -pipe -I/opt/local/libexec/openssl3/include -Os -I/opt/local/include/libfmt10 -DNDEBUG -I/opt/local/libexec/openssl3/include -isystem/opt/local/include/LegacySupport -isystem/opt/local/include -DUVW_AS_LIB -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 -arch ppc -mmacosx-version-min=10.6 -fPIC -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-function -Werror=vla -Wno-deprecated-declarations -MD -MT llarp/CMakeFiles/lokinet-platform.dir/ev/ev.cpp.o -MF CMakeFiles/lokinet-platform.dir/ev/ev.cpp.o.d -o CMakeFiles/lokinet-platform.dir/ev/ev.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.cpp
[  9%] Building CXX object llarp/CMakeFiles/lokinet-platform.dir/net/interface_info.cpp.o
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/build/llarp && /opt/local/bin/g++-mp-12 -DPOSIX -DUNIX -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/crypto/libntrup/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/external/uvw/src -pipe -I/opt/local/libexec/openssl3/include -Os -I/opt/local/include/libfmt10 -DNDEBUG -I/opt/local/libexec/openssl3/include -isystem/opt/local/include/LegacySupport -isystem/opt/local/include -DUVW_AS_LIB -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 -arch ppc -mmacosx-version-min=10.6 -fPIC -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-function -Werror=vla -Wno-deprecated-declarations -MD -MT llarp/CMakeFiles/lokinet-platform.dir/net/interface_info.cpp.o -MF CMakeFiles/lokinet-platform.dir/net/interface_info.cpp.o.d -o CMakeFiles/lokinet-platform.dir/net/interface_info.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/interface_info.cpp
[  9%] Building CXX object llarp/CMakeFiles/lokinet-platform.dir/net/ip_range.cpp.o
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/build/llarp && /opt/local/bin/g++-mp-12 -DPOSIX -DUNIX -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/crypto/libntrup/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/external/uvw/src -pipe -I/opt/local/libexec/openssl3/include -Os -I/opt/local/include/libfmt10 -DNDEBUG -I/opt/local/libexec/openssl3/include -isystem/opt/local/include/LegacySupport -isystem/opt/local/include -DUVW_AS_LIB -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 -arch ppc -mmacosx-version-min=10.6 -fPIC -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-function -Werror=vla -Wno-deprecated-declarations -MD -MT llarp/CMakeFiles/lokinet-platform.dir/net/ip_range.cpp.o -MF CMakeFiles/lokinet-platform.dir/net/ip_range.cpp.o.d -o CMakeFiles/lokinet-platform.dir/net/ip_range.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/ip_range.cpp
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:1:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:83:26: error: 'AsyncHandle' is not a member of 'uvw'; did you mean 'async_handle'?
   83 |     std::shared_ptr<uvw::AsyncHandle> m_WakeUp;
      |                          ^~~~~~~~~~~
      |                          async_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:83:37: error: template argument 1 is invalid
   83 |     std::shared_ptr<uvw::AsyncHandle> m_WakeUp;
      |                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:50: error: 'PollHandle' is not a member of 'uvw'; did you mean 'poll_handle'?
   96 |     std::unordered_map<int, std::shared_ptr<uvw::PollHandle>> m_Polls;
      |                                                  ^~~~~~~~~~
      |                                                  poll_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:50: error: template argument 1 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:60: error: template argument 2 is invalid
   96 |     std::unordered_map<int, std::shared_ptr<uvw::PollHandle>> m_Polls;
      |                                                            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:60: error: template argument 5 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp: In member function 'virtual llarp_time_t llarp::uv::Loop::time_now() const':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:37:20: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   37 |       return m_Impl->now();
      |                    ^~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:2:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.cpp:9:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:83:26: error: 'AsyncHandle' is not a member of 'uvw'; did you mean 'async_handle'?
   83 |     std::shared_ptr<uvw::AsyncHandle> m_WakeUp;
      |                          ^~~~~~~~~~~
      |                          async_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:83:37: error: template argument 1 is invalid
   83 |     std::shared_ptr<uvw::AsyncHandle> m_WakeUp;
      |                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:50: error: 'PollHandle' is not a member of 'uvw'; did you mean 'poll_handle'?
   96 |     std::unordered_map<int, std::shared_ptr<uvw::PollHandle>> m_Polls;
      |                                                  ^~~~~~~~~~
      |                                                  poll_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:50: error: template argument 1 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:60: error: template argument 2 is invalid
   96 |     std::unordered_map<int, std::shared_ptr<uvw::PollHandle>> m_Polls;
      |                                                            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:96:60: error: template argument 5 is invalid
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp: In member function 'virtual llarp_time_t llarp::uv::Loop::time_now() const':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.hpp:37:20: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   37 |       return m_Impl->now();
      |                    ^~
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.cpp:1:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
[ 10%] Building CXX object llarp/CMakeFiles/lokinet-platform.dir/net/net_int.cpp.o
cd /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/build/llarp && /opt/local/bin/g++-mp-12 -DPOSIX -DUNIX -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/crypto/libntrup/include -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/external/uvw/src -pipe -I/opt/local/libexec/openssl3/include -Os -I/opt/local/include/libfmt10 -DNDEBUG -I/opt/local/libexec/openssl3/include -isystem/opt/local/include/LegacySupport -isystem/opt/local/include -DUVW_AS_LIB -D_GLIBCXX_USE_CXX11_ABI=0 -std=c++17 -arch ppc -mmacosx-version-min=10.6 -fPIC -Wall -Wextra -Wno-unknown-pragmas -Wno-unused-function -Werror=vla -Wno-deprecated-declarations -MD -MT llarp/CMakeFiles/lokinet-platform.dir/net/net_int.cpp.o -MF CMakeFiles/lokinet-platform.dir/net/net_int.cpp.o.d -o CMakeFiles/lokinet-platform.dir/net/net_int.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/net_int.cpp
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: At global scope:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:23:26: error: 'AsyncHandle' is not a member of 'uvw'; did you mean 'async_handle'?
   23 |     std::shared_ptr<uvw::AsyncHandle> async;
      |                          ^~~~~~~~~~~
      |                          async_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:23:37: error: template argument 1 is invalid
   23 |     std::shared_ptr<uvw::AsyncHandle> async;
      |                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In constructor 'llarp::uv::UVWakeup::UVWakeup(uvw::Loop&, std::function<void()>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:27:17: error: invalid use of incomplete type 'class uvw::Loop'
   27 |         : async{loop.resource<uvw::AsyncHandle>()}
      |                 ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'class uvw::Loop'
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:27:36: error: 'AsyncHandle' is not a member of 'uvw'; did you mean 'async_handle'?
   27 |         : async{loop.resource<uvw::AsyncHandle>()}
      |                                    ^~~~~~~~~~~
      |                                    async_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:27:49: error: expected primary-expression before ')' token
   27 |         : async{loop.resource<uvw::AsyncHandle>()}
      |                                                 ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:27:11: error: cannot convert '<brace-enclosed initializer list>' to 'int' in initialization
   27 |         : async{loop.resource<uvw::AsyncHandle>()}
      |           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:29:12: error: base operand of '->' is not a pointer
   29 |       async->on<uvw::AsyncEvent>([f = std::move(callback)](auto&, auto&) { f(); });
      |            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:29:22: error: 'AsyncEvent' is not a member of 'uvw'; did you mean 'async_event'?
   29 |       async->on<uvw::AsyncEvent>([f = std::move(callback)](auto&, auto&) { f(); });
      |                      ^~~~~~~~~~
      |                      async_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::UVWakeup::Trigger()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:35:12: error: base operand of '->' is not a pointer
   35 |       async->send();
      |            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In destructor 'virtual llarp::uv::UVWakeup::~UVWakeup()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:40:12: error: base operand of '->' is not a pointer
   40 |       async->close();
      |            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: At global scope:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:46:26: error: 'TimerHandle' is not a member of 'uvw'; did you mean 'timer_handle'?
   46 |     std::shared_ptr<uvw::TimerHandle> timer;
      |                          ^~~~~~~~~~~
      |                          timer_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:46:37: error: template argument 1 is invalid
   46 |     std::shared_ptr<uvw::TimerHandle> timer;
      |                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In constructor 'llarp::uv::UVRepeater::UVRepeater(uvw::Loop&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:49:41: error: invalid use of incomplete type 'class uvw::Loop'
   49 |     UVRepeater(uvw::Loop& loop) : timer{loop.resource<uvw::TimerHandle>()}
      |                                         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'class uvw::Loop'
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:49:60: error: 'TimerHandle' is not a member of 'uvw'; did you mean 'timer_handle'?
   49 |     UVRepeater(uvw::Loop& loop) : timer{loop.resource<uvw::TimerHandle>()}
      |                                                            ^~~~~~~~~~~
      |                                                            timer_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:49:73: error: expected primary-expression before ')' token
   49 |     UVRepeater(uvw::Loop& loop) : timer{loop.resource<uvw::TimerHandle>()}
      |                                                                         ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:49:35: error: cannot convert '<brace-enclosed initializer list>' to 'int' in initialization
   49 |     UVRepeater(uvw::Loop& loop) : timer{loop.resource<uvw::TimerHandle>()}
      |                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::UVRepeater::start(llarp_time_t, std::function<void()>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:55:12: error: base operand of '->' is not a pointer
   55 |       timer->start(every, every);
      |            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:56:12: error: base operand of '->' is not a pointer
   56 |       timer->on<uvw::TimerEvent>([task = std::move(task)](auto&, auto&) { task(); });
      |            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:56:22: error: 'TimerEvent' is not a member of 'uvw'; did you mean 'timer_event'?
   56 |       timer->on<uvw::TimerEvent>([task = std::move(task)](auto&, auto&) { task(); });
      |                      ^~~~~~~~~~
      |                      timer_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In destructor 'virtual llarp::uv::UVRepeater::~UVRepeater()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:61:12: error: base operand of '->' is not a pointer
   61 |       timer->stop();
      |            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: At global scope:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:98:26: error: 'UDPHandle' is not a member of 'uvw'; did you mean 'udp_handle'?
   98 |     std::shared_ptr<uvw::UDPHandle> handle;
      |                          ^~~~~~~~~
      |                          udp_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:98:35: error: template argument 1 is invalid
   98 |     std::shared_ptr<uvw::UDPHandle> handle;
      |                                   ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual std::optional<llarp::SockAddr> llarp::uv::UDPHandle::LocalAddr() const':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:78:25: error: base operand of '->' is not a pointer
   78 |       auto addr = handle->sock<uvw::IPv4>();
      |                         ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:78:37: error: 'IPv4' is not a member of 'uvw'; did you mean 'ipv4'?
   78 |       auto addr = handle->sock<uvw::IPv4>();
      |                                     ^~~~
      |                                     ipv4
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:78:43: error: expected primary-expression before ')' token
   78 |       auto addr = handle->sock<uvw::IPv4>();
      |                                           ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:79:75: error: no matching function for call to 'llarp::SockAddr::SockAddr(<brace-enclosed initializer list>)'
   79 |       return SockAddr{addr.ip, huint16_t{static_cast<uint16_t>(addr.port)}};
      |                                                                           ^
In file included from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/ip_address.hpp:3,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/address_info.hpp:4,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/net.hpp:4,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/ip_packet.hpp:5,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/vpn/platform.hpp:4,
                 from /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:9:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:60:5: note: candidate: 'llarp::SockAddr::SockAddr(const in6_addr&)'
   60 |     SockAddr(const in6_addr& addr);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:60:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:56:5: note: candidate: 'llarp::SockAddr::SockAddr(const sockaddr_in6&)'
   56 |     SockAddr(const sockaddr_in6& addr);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:56:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:52:5: note: candidate: 'llarp::SockAddr::SockAddr(const sockaddr_in&)'
   52 |     SockAddr(const sockaddr_in& addr);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:52:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:48:5: note: candidate: 'llarp::SockAddr::SockAddr(const sockaddr&)'
   48 |     SockAddr(const sockaddr& addr);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:48:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:44:5: note: candidate: 'llarp::SockAddr::SockAddr(const llarp::SockAddr&)'
   44 |     SockAddr(const SockAddr&);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:44:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:42:5: note: candidate: 'llarp::SockAddr::SockAddr(const llarp::AddressInfo&)'
   42 |     SockAddr(const AddressInfo&);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:42:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:40:5: note: candidate: 'llarp::SockAddr::SockAddr(std::string_view, llarp::huint16_t)'
   40 |     SockAddr(std::string_view addr, huint16_t port);  // port is in native (host) order
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:40:5: note:   conversion of argument 1 would be ill-formed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:39:5: note: candidate: 'llarp::SockAddr::SockAddr(std::string_view)'
   39 |     SockAddr(std::string_view addr);
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:39:5: note:   candidate expects 1 argument, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:36:5: note: candidate: 'llarp::SockAddr::SockAddr(llarp::nuint128_t, llarp::nuint16_t)'
   36 |     SockAddr(nuint128_t ip, nuint16_t port = {0});
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:36:5: note:   conversion of argument 1 would be ill-formed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:33:5: note: candidate: 'llarp::SockAddr::SockAddr(llarp::huint128_t, llarp::huint16_t)'
   33 |     SockAddr(huint128_t ip, huint16_t port = {0});
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:33:5: note:   conversion of argument 1 would be ill-formed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:30:5: note: candidate: 'llarp::SockAddr::SockAddr(llarp::huint32_t, llarp::huint16_t)'
   30 |     SockAddr(huint32_t ip, huint16_t port = {0});
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:30:5: note:   conversion of argument 1 would be ill-formed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:29:5: note: candidate: 'llarp::SockAddr::SockAddr(llarp::nuint32_t, llarp::nuint16_t)'
   29 |     SockAddr(nuint32_t ip, nuint16_t port = {0});
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:29:5: note:   conversion of argument 1 would be ill-formed:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:28:5: note: candidate: 'llarp::SockAddr::SockAddr(uint8_t, uint8_t, uint8_t, uint8_t, llarp::huint16_t)'
   28 |     SockAddr(uint8_t a, uint8_t b, uint8_t c, uint8_t d, huint16_t port = {0});
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:28:5: note:   candidate expects 5 arguments, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:26:5: note: candidate: 'llarp::SockAddr::SockAddr()'
   26 |     SockAddr();
      |     ^~~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/net/sock_addr.hpp:26:5: note:   candidate expects 0 arguments, 2 provided
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual std::optional<int> llarp::uv::UDPHandle::file_descriptor()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:86:26: error: base operand of '->' is not a pointer
   86 |       if (int fd = handle->fd(); fd >= 0)
      |                          ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In constructor 'llarp::uv::Loop::Loop(size_t)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:125:31: error: incomplete type 'uvw::Loop' used in nested name specifier
  125 |     if (!(m_Impl = uvw::Loop::create()))
      |                               ^~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:139:28: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  139 |     if (!(m_WakeUp = m_Impl->resource<uvw::AsyncHandle>()))
      |                            ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:139:44: error: 'AsyncHandle' is not a member of 'uvw'; did you mean 'async_handle'?
  139 |     if (!(m_WakeUp = m_Impl->resource<uvw::AsyncHandle>()))
      |                                            ^~~~~~~~~~~
      |                                            async_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:139:57: error: expected primary-expression before ')' token
  139 |     if (!(m_WakeUp = m_Impl->resource<uvw::AsyncHandle>()))
      |                                                         ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:141:13: error: base operand of '->' is not a pointer
  141 |     m_WakeUp->on<uvw::AsyncEvent>([this](const auto&, auto&) { tick_event_loop(); });
      |             ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:141:23: error: 'AsyncEvent' is not a member of 'uvw'; did you mean 'async_event'?
  141 |     m_WakeUp->on<uvw::AsyncEvent>([this](const auto&, auto&) { tick_event_loop(); });
      |                       ^~~~~~~~~~
      |                       async_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::Loop::run()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:155:11: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  155 |     m_Impl->run();
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:156:11: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  156 |     m_Impl->close();
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::Loop::wakeup()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:164:13: error: base operand of '->' is not a pointer
  164 |     m_WakeUp->send();
      |             ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In function 'void llarp::uv::setup_oneshot_timer(uvw::Loop&, llarp_time_t, std::function<void()>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:177:18: error: invalid use of incomplete type 'class uvw::Loop'
  177 |     auto timer = loop.resource<uvw::TimerHandle>();
      |                  ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'class uvw::Loop'
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:177:37: error: 'TimerHandle' is not a member of 'uvw'; did you mean 'timer_handle'?
  177 |     auto timer = loop.resource<uvw::TimerHandle>();
      |                                     ^~~~~~~~~~~
      |                                     timer_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:177:50: error: expected primary-expression before ')' token
  177 |     auto timer = loop.resource<uvw::TimerHandle>();
      |                                                  ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:178:20: error: 'TimerEvent' is not a member of 'uvw'; did you mean 'timer_event'?
  178 |     timer->on<uvw::TimerEvent>([f = std::move(callback)](const auto&, auto& timer) {
      |                    ^~~~~~~~~~
      |                    timer_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::Loop::stop()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:219:13: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  219 |       m_Impl->walk([](auto&& handle) {
      |             ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:224:13: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  224 |       m_Impl->stop();
      |             ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual bool llarp::uv::Loop::add_ticker(std::function<void()>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:233:24: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  233 |     auto check = m_Impl->resource<uvw::CheckHandle>();
      |                        ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:233:40: error: 'CheckHandle' is not a member of 'uvw'; did you mean 'check_handle'?
  233 |     auto check = m_Impl->resource<uvw::CheckHandle>();
      |                                        ^~~~~~~~~~~
      |                                        check_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:233:53: error: expected primary-expression before ')' token
  233 |     auto check = m_Impl->resource<uvw::CheckHandle>();
      |                                                     ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:234:20: error: 'CheckEvent' is not a member of 'uvw'; did you mean 'check_event'?
  234 |     check->on<uvw::CheckEvent>([f = std::move(func)](auto&, auto&) { f(); });
      |                    ^~~~~~~~~~
      |                    check_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual bool llarp::uv::Loop::add_network_interface(std::shared_ptr<llarp::vpn::NetworkInterface>, std::function<void(llarp::net::IPPacket)>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:251:26: error: 'PrepareEvent' in namespace 'uvw' does not name a type; did you mean 'prepare_event'?
  251 |     using event_t = uvw::PrepareEvent;
      |                          ^~~~~~~~~~~~
      |                          prepare_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:252:25: error: invalid use of incomplete type 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
  252 |     auto handle = m_Impl->resource<uvw::PrepareHandle>();
      |                         ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'using element_type = class uvw::Loop' {aka 'class uvw::Loop'}
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:252:41: error: 'PrepareHandle' is not a member of 'uvw'; did you mean 'prepare_handle'?
  252 |     auto handle = m_Impl->resource<uvw::PrepareHandle>();
      |                                         ^~~~~~~~~~~~~
      |                                         prepare_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:252:56: error: expected primary-expression before ')' token
  252 |     auto handle = m_Impl->resource<uvw::PrepareHandle>();
      |                                                        ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:258:16: error: 'event_t' was not declared in this scope
  258 |     handle->on<event_t>([netif = std::move(netif), handler = std::move(handler)](
      |                ^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:259:35: error: 'event_t' does not name a type
  259 |                             const event_t&, [[maybe_unused]] auto& handle) {
      |                                   ^~~~~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In lambda function:
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:271:7: error: expected '{' before ';' token
  271 |     });
      |       ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual bool llarp::uv::Loop::add_network_interface(std::shared_ptr<llarp::vpn::NetworkInterface>, std::function<void(llarp::net::IPPacket)>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:271:7: error: expected ')' before ';' token
  271 |     });
      |       ^
      |       )
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:258:24: note: to match this '('
  258 |     handle->on<event_t>([netif = std::move(netif), handler = std::move(handler)](
      |                        ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::Loop::call_soon(std::function<void()>)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:288:15: error: base operand of '->' is not a pointer
  288 |       m_WakeUp->send();
      |               ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:297:13: error: base operand of '->' is not a pointer
  297 |     m_WakeUp->send();
      |             ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'void llarp::uv::UDPHandle::reset_handle(uvw::Loop&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:306:13: error: base operand of '->' is not a pointer
  306 |       handle->close();
      |             ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:307:14: error: invalid use of incomplete type 'class uvw::Loop'
  307 |     handle = loop.resource<uvw::UDPHandle>();
      |              ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/ev.hpp:16:9: note: forward declaration of 'class uvw::Loop'
   16 |   class Loop;
      |         ^~~~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:307:33: error: 'UDPHandle' is not a member of 'uvw'; did you mean 'udp_handle'?
  307 |     handle = loop.resource<uvw::UDPHandle>();
      |                                 ^~~~~~~~~
      |                                 udp_handle
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:307:44: error: expected primary-expression before ')' token
  307 |     handle = loop.resource<uvw::UDPHandle>();
      |                                            ^
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:308:11: error: base operand of '->' is not a pointer
  308 |     handle->on<uvw::UDPDataEvent>([this](auto& event, auto& /*handle*/) {
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:308:21: error: 'UDPDataEvent' is not a member of 'uvw'; did you mean 'udp_data_event'?
  308 |     handle->on<uvw::UDPDataEvent>([this](auto& event, auto& /*handle*/) {
      |                     ^~~~~~~~~~~~
      |                     udp_data_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual bool llarp::uv::UDPHandle::listen(const llarp::SockAddr&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:324:15: error: base operand of '->' is not a pointer
  324 |     if (handle->active())
      |               ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:325:26: error: base operand of '->' is not a pointer
  325 |       reset_handle(handle->loop());
      |                          ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:327:22: error: base operand of '->' is not a pointer
  327 |     auto err = handle->on<uvw::ErrorEvent>([addr](auto& event, auto&) {
      |                      ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:327:32: error: 'ErrorEvent' is not a member of 'uvw'; did you mean 'error_event'?
  327 |     auto err = handle->on<uvw::ErrorEvent>([addr](auto& event, auto&) {
      |                                ^~~~~~~~~~
      |                                error_event
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:331:11: error: base operand of '->' is not a pointer
  331 |     handle->bind(*static_cast<const sockaddr*>(addr));
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:332:11: error: base operand of '->' is not a pointer
  332 |     handle->recv();
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:333:11: error: base operand of '->' is not a pointer
  333 |     handle->erase(err);
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual bool llarp::uv::UDPHandle::send(const llarp::SockAddr&, const llarp_buffer_t&)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:340:18: error: base operand of '->' is not a pointer
  340 |     return handle->trySend(
      |                  ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp: In member function 'virtual void llarp::uv::UDPHandle::close()':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:350:11: error: base operand of '->' is not a pointer
  350 |     handle->close();
      |           ^~
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_security_lokinet/lokinet/work/lokinet-559fa8aec4f0bdcb6be3eb7d6e77e9982242551f/llarp/ev/libuv.cpp:351:12: error: request for member 'reset' in '((llarp::uv::UDPHandle*)this)->llarp::uv::UDPHandle::handle', which is of non-class type 'int'
  351 |     handle.reset();
      |            ^~~~~
dr7ana commented 10 months ago

uvw updated their entire API to go from camelcase -> snakecase. Will version bump uvw and throw down a PR for this soon, thanks @barracuda156

jagerman commented 10 months ago

We spent a little time looking at this today, and unfortunately uvw v3 is a completely incompatible rewrite of uvw v2, without any sort of attempt at backwards compatibility, that at the moment we don't/can't easily support. The v3 rewrite has also proven buggy and limiting (we started with it in libquic, but eventually switched to libevent because of multiple frustrations with uvw and libuv). Hopefully macports can recognize this difference and package uvw2/uvw3 separately, but for the short term we're going to have to stick with uvw v2 in Lokinet.

Medium term, upstream's uvw changes here (and in the past) are more than a little frustrating and are making me contemplate alternatives such as either straight libuv, or perhaps switching to libevent (as we did in https://github.com/oxen-io/oxen-libquic because of similar frustrations and limitations when we started out with uvw v3 there).

barracuda156 commented 10 months ago

@jagerman Thank you for the update, this is really helpful. Saves time on trying to fix the unfixable. No issues, I will make a port for uvw2. Given different API, we will want to be able to install both versions simultaneously, so I will perhaps move installation into libexec sub-prefix to avoid conflicts. That will also ensure no opportunistic linking with a wrong version happens.

Does it matter, in your opinion, whether dynamic or static libs are used?

Also, ngtcp2 currently installs without support for QUIC for us, since OpenSSL 3 does not yet support it. Not sure if that is a stopper for lokinet and how you go around this.

jagerman commented 10 months ago

Also, ngtcp2 currently installs without support for QUIC for us, since OpenSSL 3 does not yet support it. Not sure if that is a stopper for lokinet and how you go around this.

I'm not sure I understand what you mean here; ngtcp2 is a QUIC implementation.

However as to OpenSSL, our current implementation (oxen-libquic) does not use openssl for ngtcp2/QUIC traffic, but rather gnutls.

barracuda156 commented 10 months ago

@jagerman I guess I misunderstood configure output in fact: https://trac.macports.org/ticket/67762 It appears to be relevant only for OpenSSL indeed.

dr7ana commented 3 months ago

@barracuda156 the redesigned lokinet will be uvw free and entirely libevent based

barracuda156 commented 3 months ago

@dr7ana Sounds good! I hope we could do away with Apple security extension dependency… :)

barracuda156 commented 3 months ago

P. S. On a side note, it would be nice to have a new release, rather than using a random commit for a port.

jagerman commented 3 months ago

P. S. On a side note, it would be nice to have a new release, rather than using a random commit for a port.

Indeed, but the ongoing 0.10 work is a significant refactor and not ready for a production release yet.

As to uvw: yes, uvw 3.0.0 completely broke all API compatibility by changing the naming style of all ClassName to class_name without any backwards compatibility attempt at all, and thus really shouldn't be considered the same library.