git: 5b44e5d58747 - main - net/pichi: Fix building failures based of Boost/1.80.0

From: Neel Chauhan <nc_at_FreeBSD.org>
Date: Mon, 19 Sep 2022 16:38:28 UTC
The branch main has been updated by nc:

URL: https://cgit.FreeBSD.org/ports/commit/?id=5b44e5d587471b9bfa60d7314a7626e40df0a52c

commit 5b44e5d587471b9bfa60d7314a7626e40df0a52c
Author:     Pichi <pichi@elude.in>
AuthorDate: 2022-09-19 16:37:19 +0000
Commit:     Neel Chauhan <nc@FreeBSD.org>
CommitDate: 2022-09-19 16:38:20 +0000

    net/pichi: Fix building failures based of Boost/1.80.0
    
    PR:     266483
---
 .../files/patch-include_pichi_common_config.hpp.in | 79 ++++++++++++++++++++++
 net/pichi/files/patch-src_net_adapter.cpp          | 67 ++++++++++++++++++
 2 files changed, 146 insertions(+)

diff --git a/net/pichi/files/patch-include_pichi_common_config.hpp.in b/net/pichi/files/patch-include_pichi_common_config.hpp.in
new file mode 100644
index 000000000000..fcc42ad57a0e
--- /dev/null
+++ b/net/pichi/files/patch-include_pichi_common_config.hpp.in
@@ -0,0 +1,79 @@
+--- include/pichi/common/config.hpp.in.orig
++++ include/pichi/common/config.hpp.in
+@@ -15,48 +15,39 @@
+ #cmakedefine HAS_SETSID
+ #cmakedefine HAS_CLOSE
+ 
+-#cmakedefine NO_IGNORED_ATTRIBUTES_FOR_SODIUM
+-#cmakedefine DEPRECATED_RFC2818_CLASS
++#ifdef __GNUC__
+ 
+-#cmakedefine DISABLE_SHORTEN_64_TO_32_WARNING
+-#if defined(DISABLE_SHORTEN_64_TO_32_WARNING) && defined(__clang__)
+-#pragma clang diagnostic push
+-#pragma clang diagnostic ignored "-Wshorten-64-to-32"
+-#include <boost/asio/basic_socket.hpp>
+-#include <boost/asio/ssl/impl/context.ipp>
+-#include <boost/beast/zlib/detail/deflate_stream.ipp>
+-#pragma clang diagnostic pop
+-#endif  // DISABLE_SHORTEN_64_TO_32_WARNING && __clang__
++#if __GNUC__ >= 8
++#pragma GCC diagnostic ignored "-Wclass-memaccess"
++#endif  // __GNUC__ >= 8
+ 
+-#ifdef _MSC_VER
+-#pragma warning(push)
+-#pragma warning(disable : 4702)
+-#include <boost/beast/http/fields.hpp>
+-#pragma warning(pop)
+-#endif  // _MSC_VER
++#cmakedefine DISABLE_GCC_IGNORED_ATTRIBUTES
++#ifdef DISABLE_GCC_IGNORED_ATTRIBUTES
++#pragma GCC diagnostic ignored "-Wignored-attributes"
++#endif  // DISABLE_GCC_IGNORED_ATTRIBUTES
+ 
+-#cmakedefine HAS_SP_COUNTED_BASE_CLANG_HPP
+-#if defined(HAS_SP_COUNTED_BASE_CLANG_HPP) && defined(__clang__)
+-#if !__has_feature(c_atomic)
+-#pragma clang diagnostic push
+-#pragma clang diagnostic ignored "-Wc11-extensions"
+-#include <boost/smart_ptr/detail/sp_counted_base_clang.hpp>
+-#pragma clang diagnostic pop
+-#endif  // !__has_feature(c_atomic)
+-#endif  // HAS_SP_COUNTED_BASE_CLANG_HPP && __clang__
++#endif  // __GNUC__
+ 
+-#cmakedefine DEPRECATED_ALLOCATOR_VOID
+-#if defined(DEPRECATED_ALLOCATOR_VOID) && defined(__clang__)
+-#pragma clang diagnostic push
++#ifdef __clang__
++
++#if (defined(__APPLE__) && __clang_major__ >= 12) || __clang_major__ >= 11
+ #pragma clang diagnostic ignored "-Wdeprecated-declarations"
+-#include <boost/asio/associated_allocator.hpp>
+-#include <boost/asio/impl/compose.hpp>
+-#include <boost/asio/impl/executor.hpp>
+-#include <boost/asio/io_context.hpp>
+-#include <boost/asio/strand.hpp>
+-#include <boost/beast/core/async_base.hpp>
+-#pragma clang diagnostic pop
+-#endif  // DEPRECATED_ALLOCATOR_VOID && __clang__
++#endif
++
++#cmakedefine DISABLE_CLANG_C11_EXTENTIONS
++#if !__has_feature(c_atomic) && defined(DISABLE_CLANG_C11_EXTENTIONS)
++#pragma clang diagnostic ignored "-Wc11-extensions"
++#endif  // !__has_feature(c_atomic) && defined(DISABLE_CLANG_C11_EXTENTIONS)
++
++#endif  // __clang__
++
++#ifdef _MSC_VER
++
++#pragma warning(disable : 4459)
++#pragma warning(disable : 4646)
++#pragma warning(disable : 4702)
++
++#endif  // _MSC_VER
+ 
+ #cmakedefine CMAKE_INSTALL_PREFIX "@CMAKE_INSTALL_PREFIX@"
+ 
diff --git a/net/pichi/files/patch-src_net_adapter.cpp b/net/pichi/files/patch-src_net_adapter.cpp
new file mode 100644
index 000000000000..359dc4ee1bff
--- /dev/null
+++ b/net/pichi/files/patch-src_net_adapter.cpp
@@ -0,0 +1,67 @@
+--- src/net/adapter.cpp.orig
++++ src/net/adapter.cpp
+@@ -27,11 +27,12 @@
+ #include <pichi/vo/messages.hpp>
+ #include <pichi/vo/options.hpp>
+ 
+-#ifdef DEPRECATED_RFC2818_CLASS
++#include <boost/version.hpp>
++#if BOOST_VERSION >= 107300
+ #include <boost/asio/ssl/host_name_verification.hpp>
+-#else  // DEPRECATED_RFC2818_CLASS
++#else  // BOOST_VERSION >= 107300
+ #include <boost/asio/ssl/rfc2818_verification.hpp>
+-#endif  // DEPRECATED_RFC2818_CLASS
++#endif  // BOOST_VERSION >= 107300
+ 
+ using namespace std;
+ namespace asio = boost::asio;
+@@ -67,11 +68,11 @@ static auto createTlsContext(vo::TlsEgressOption const
+     ctx.load_verify_file(*option.caFile_);
+   else {
+     ctx.set_default_verify_paths();
+-#ifdef DEPRECATED_RFC2818_CLASS
++#if BOOST_VERSION >= 107300
+     ctx.set_verify_callback(ssl::host_name_verification{option.serverName_.value_or(serverName)});
+-#else   // DEPRECATED_RFC2818_CLASS
++#else   // BOOST_VERSION >= 107300
+     ctx.set_verify_callback(ssl::rfc2818_verification{option.serverName_.value_or(serverName)});
+-#endif  // DEPRECATED_RFC2818_CLASS
++#endif  // BOOST_VERSION >= 107300
+   }
+   return ctx;
+ }
+@@ -95,16 +96,10 @@ unique_ptr<Ingress> makeShadowsocksIngress(Socket&& s,
+   psk = {container,
+          crypto::generateKey(option.method_, ConstBuffer<uint8_t>{option.password_}, container)};
+   switch (option.method_) {
+-#if MBEDTLS_VERSION_MAJOR < 3
+   case CryptoMethod::RC4_MD5:
+     return make_unique<SSStreamAdapter<CryptoMethod::RC4_MD5, Socket>>(psk, forward<Socket>(s));
+   case CryptoMethod::BF_CFB:
+     return make_unique<SSStreamAdapter<CryptoMethod::BF_CFB, Socket>>(psk, forward<Socket>(s));
+-#else   // MBEDTLS_VERSION_MAJOR < 3
+-  case CryptoMethod::RC4_MD5:
+-  case CryptoMethod::BF_CFB:
+-    fail(PichiError::SEMANTIC_ERROR, vo::msg::DEPRECATED_METHOD);
+-#endif  // MBEDTLS_VERSION_MAJOR < 3
+   case CryptoMethod::AES_128_CTR:
+     return make_unique<SSStreamAdapter<CryptoMethod::AES_128_CTR, Socket>>(psk, forward<Socket>(s));
+   case CryptoMethod::AES_192_CTR:
+@@ -158,16 +153,10 @@ static unique_ptr<Egress> makeShadowsocksEgress(vo::Sh
+   auto psk = MutableBuffer<uint8_t>{container, len};
+ 
+   switch (option.method_) {
+-#if MBEDTLS_VERSION_MAJOR < 3
+   case CryptoMethod::RC4_MD5:
+     return make_unique<SSStreamAdapter<CryptoMethod::RC4_MD5, TCPSocket>>(psk, io);
+   case CryptoMethod::BF_CFB:
+     return make_unique<SSStreamAdapter<CryptoMethod::BF_CFB, TCPSocket>>(psk, io);
+-#else   // MBEDTLS_VERSION_MAJOR < 3
+-  case CryptoMethod::RC4_MD5:
+-  case CryptoMethod::BF_CFB:
+-    fail(PichiError::SEMANTIC_ERROR, vo::msg::DEPRECATED_METHOD);
+-#endif  // MBEDTLS_VERSION_MAJOR < 3
+   case CryptoMethod::AES_128_CTR:
+     return make_unique<SSStreamAdapter<CryptoMethod::AES_128_CTR, TCPSocket>>(psk, io);
+   case CryptoMethod::AES_192_CTR: