[packages/cpprestsdk] - added boost fixes, release 2

qboosh qboosh at pld-linux.org
Sat May 16 22:38:43 CEST 2026


commit d00c10b3beeb0f3ca486871e0b07095a354e657b
Author: Jakub Bogusz <qboosh at pld-linux.org>
Date:   Sat May 16 22:38:40 2026 +0200

    - added boost fixes, release 2

 cpprestsdk-boost-asio.patch | 367 ++++++++++++++++++++++++++++++++++++++++++++
 cpprestsdk-boost.patch      |  50 ++++++
 cpprestsdk.spec             |  18 ++-
 3 files changed, 429 insertions(+), 6 deletions(-)
---
diff --git a/cpprestsdk.spec b/cpprestsdk.spec
index ae98ecc..4f3d4c4 100644
--- a/cpprestsdk.spec
+++ b/cpprestsdk.spec
@@ -2,16 +2,19 @@ Summary:	C++ Rest SDK
 Summary(pl.UTF-8):	Pakiet programistyczny C++ Rest
 Name:		cpprestsdk
 Version:	2.10.19
-Release:	1
+Release:	2
 License:	MIT
 Group:		Libraries
 Source0:	https://github.com/microsoft/cpprestsdk/archive/v%{version}/%{name}-%{version}.tar.gz
 # Source0-md5:	a7f8a8b55cd2f799cb9d712f172b1af1
 Patch0:		%{name}-truncation.patch
+# https://github.com/microsoft/vcpkg/blob/master/ports/cpprestsdk/fix-asio-error.patch
+Patch1:		%{name}-boost-asio.patch
+Patch2:		%{name}-boost.patch
 URL:		https://github.com/microsoft/cpprestsdk
-BuildRequires:	boost-devel
+BuildRequires:	boost-devel >= 1.66
 BuildRequires:	cmake >= 3.9
-BuildRequires:	libstdc++-devel >= 6:4.7
+BuildRequires:	libstdc++-devel >= 6:5
 BuildRequires:	openssl-devel
 BuildRequires:	rpmbuild(macros) >= 1.605
 BuildRequires:	websocketpp-devel
@@ -43,7 +46,8 @@ Summary:	Header files for cpprest library
 Summary(pl.UTF-8):	Pliki nagłówkowe biblioteki cpprest
 Group:		Development/Libraries
 Requires:	%{name} = %{version}-%{release}
-Requires:	libstdc++-devel >= 6:4.7
+Requires:	boost-devel >= 1.66
+Requires:	libstdc++-devel >= 6:5
 
 %description devel
 Header files for cpprest library.
@@ -54,6 +58,8 @@ Pliki nagłówkowe biblioteki cpprest.
 %prep
 %setup -q
 %patch -P0 -p1
+%patch -P1 -p1
+%patch -P2 -p1
 
 %build
 install -d build
@@ -77,11 +83,11 @@ rm -rf $RPM_BUILD_ROOT
 %files
 %defattr(644,root,root,755)
 %doc CONTRIBUTORS.txt README.md SECURITY.md ThirdPartyNotices.txt changelog.md license.txt
-%attr(755,root,root) %{_libdir}/libcpprest.so.2.10
+%{_libdir}/libcpprest.so.2.10
 
 %files devel
 %defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libcpprest.so
+%{_libdir}/libcpprest.so
 %{_includedir}/cpprest
 %{_includedir}/pplx
 %{_libdir}/cmake/cpprestsdk
diff --git a/cpprestsdk-boost-asio.patch b/cpprestsdk-boost-asio.patch
new file mode 100644
index 0000000..dcc5052
--- /dev/null
+++ b/cpprestsdk-boost-asio.patch
@@ -0,0 +1,367 @@
+diff --git a/Release/include/pplx/threadpool.h b/Release/include/pplx/threadpool.h
+index b297ff6..56ea475 100644
+--- a/Release/include/pplx/threadpool.h
++++ b/Release/include/pplx/threadpool.h
+@@ -69,15 +69,15 @@ public:
+     CASABLANCA_DEPRECATED("Use `.service().post(task)` directly.")
+     void schedule(T task)
+     {
+-        service().post(task);
++        boost::asio::post(service(), task);
+     }
+ 
+-    boost::asio::io_service& service() { return m_service; }
++    boost::asio::io_context& service() { return m_service; }
+ 
+ protected:
+     threadpool(size_t num_threads) : m_service(static_cast<int>(num_threads)) {}
+ 
+-    boost::asio::io_service m_service;
++    boost::asio::io_context m_service;
+ };
+ 
+ } // namespace crossplat
+diff --git a/Release/src/http/client/http_client_asio.cpp b/Release/src/http/client/http_client_asio.cpp
+index 07bb488..f9c7c51 100644
+--- a/Release/src/http/client/http_client_asio.cpp
++++ b/Release/src/http/client/http_client_asio.cpp
+@@ -146,9 +146,9 @@ class asio_connection
+     friend class asio_client;
+ 
+ public:
+-    asio_connection(boost::asio::io_service& io_service)
++    asio_connection(boost::asio::io_context& io_context)
+         : m_socket_lock()
+-        , m_socket(io_service)
++        , m_socket(io_context)
+         , m_ssl_stream()
+         , m_cn_hostname()
+         , m_is_reused(false)
+@@ -429,7 +429,7 @@ private:
+         auto& self = *pool;
+         std::weak_ptr<asio_connection_pool> weak_pool = pool;
+ 
+-        self.m_pool_epoch_timer.expires_from_now(boost::posix_time::seconds(30));
++        self.m_pool_epoch_timer.expires_after(std::chrono::seconds(30));
+         self.m_pool_epoch_timer.async_wait([weak_pool](const boost::system::error_code& ec) {
+             if (ec)
+             {
+@@ -467,7 +467,7 @@ private:
+     std::mutex m_lock;
+     std::map<std::string, connection_pool_stack<asio_connection>> m_connections;
+     bool m_is_timer_running;
+-    boost::asio::deadline_timer m_pool_epoch_timer;
++    boost::asio::system_timer m_pool_epoch_timer;
+ };
+ 
+ class asio_client final : public _http_client_communicator
+@@ -581,18 +581,16 @@ public:
+ 
+             m_context->m_timer.start();
+ 
+-            tcp::resolver::query query(utility::conversions::to_utf8string(proxy_host), to_string(proxy_port));
+-
+             auto client = std::static_pointer_cast<asio_client>(m_context->m_http_client);
+-            m_context->m_resolver.async_resolve(query,
+-                                                boost::bind(&ssl_proxy_tunnel::handle_resolve,
+-                                                            shared_from_this(),
+-                                                            boost::asio::placeholders::error,
+-                                                            boost::asio::placeholders::iterator));
++            m_context->m_resolver.async_resolve(utility::conversions::to_utf8string(proxy_host), to_string(proxy_port),
++                [self = shared_from_this()](const boost::system::error_code& error, tcp::resolver::results_type results){
++                    self->handle_resolve(error, results.begin());
++                }
++            );
+         }
+ 
+     private:
+-        void handle_resolve(const boost::system::error_code& ec, tcp::resolver::iterator endpoints)
++        void handle_resolve(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints)
+         {
+             if (ec)
+             {
+@@ -610,7 +608,7 @@ public:
+             }
+         }
+ 
+-        void handle_tcp_connect(const boost::system::error_code& ec, tcp::resolver::iterator endpoints)
++        void handle_tcp_connect(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints)
+         {
+             if (!ec)
+             {
+@@ -621,7 +619,7 @@ public:
+                                                                  shared_from_this(),
+                                                                  boost::asio::placeholders::error));
+             }
+-            else if (endpoints == tcp::resolver::iterator())
++            else if (endpoints == tcp::resolver::results_type::iterator())
+             {
+                 m_context->report_error(
+                     "Failed to connect to any resolved proxy endpoint", ec, httpclient_errorcode_context::connect);
+@@ -885,12 +883,11 @@ public:
+                 auto tcp_host = proxy_type == http_proxy_type::http ? proxy_host : host;
+                 auto tcp_port = proxy_type == http_proxy_type::http ? proxy_port : port;
+ 
+-                tcp::resolver::query query(tcp_host, to_string(tcp_port));
+-                ctx->m_resolver.async_resolve(query,
+-                                              boost::bind(&asio_context::handle_resolve,
+-                                                          ctx,
+-                                                          boost::asio::placeholders::error,
+-                                                          boost::asio::placeholders::iterator));
++                ctx->m_resolver.async_resolve(tcp_host, to_string(tcp_port),
++                    [ctx](const boost::system::error_code& error, tcp::resolver::results_type results){
++                        ctx->handle_resolve(error, results.begin());
++                    }
++                );
+             }
+ 
+             // Register for notification on cancellation to abort this request.
+@@ -1006,7 +1003,7 @@ private:
+         request_context::report_error(errorcodeValue, message);
+     }
+ 
+-    void handle_connect(const boost::system::error_code& ec, tcp::resolver::iterator endpoints)
++    void handle_connect(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints)
+     {
+         m_timer.reset();
+         if (!ec)
+@@ -1019,7 +1016,7 @@ private:
+         {
+             report_error("Request canceled by user.", ec, httpclient_errorcode_context::connect);
+         }
+-        else if (endpoints == tcp::resolver::iterator())
++        else if (endpoints == tcp::resolver::results_type::iterator())
+         {
+             report_error("Failed to connect to any resolved endpoint", ec, httpclient_errorcode_context::connect);
+         }
+@@ -1045,13 +1042,13 @@ private:
+         }
+     }
+ 
+-    void handle_resolve(const boost::system::error_code& ec, tcp::resolver::iterator endpoints)
++    void handle_resolve(const boost::system::error_code& ec, tcp::resolver::results_type::iterator endpoints)
+     {
+         if (ec)
+         {
+             report_error("Error resolving address", ec, httpclient_errorcode_context::connect);
+         }
+-        else if (endpoints == tcp::resolver::iterator())
++        else if (endpoints == tcp::resolver::results_type::iterator())
+         {
+             report_error("Failed to resolve address", ec, httpclient_errorcode_context::connect);
+         }
+@@ -1134,7 +1131,7 @@ private:
+         }
+ #endif // CPPREST_PLATFORM_ASIO_CERT_VERIFICATION_AVAILABLE
+ 
+-        boost::asio::ssl::rfc2818_verification rfc2818(m_connection->cn_hostname());
++        boost::asio::ssl::host_name_verification rfc2818(m_connection->cn_hostname());
+         return rfc2818(preverified, verifyCtx);
+     }
+ 
+@@ -1182,8 +1179,8 @@ private:
+ 
+         const auto& chunkSize = m_http_client->client_config().chunksize();
+         auto readbuf = _get_readbuffer();
+-        uint8_t* buf = boost::asio::buffer_cast<uint8_t*>(
+-            m_body_buf.prepare(chunkSize + http::details::chunked_encoding::additional_encoding_space));
++        uint8_t* buf = static_cast<uint8_t*>(
++            m_body_buf.prepare(chunkSize + http::details::chunked_encoding::additional_encoding_space).data());
+         const auto this_request = shared_from_this();
+         readbuf.getn(buf + http::details::chunked_encoding::data_offset, chunkSize)
+             .then([this_request, buf, chunkSize AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task<size_t> op) {
+@@ -1247,7 +1244,7 @@ private:
+         const auto readSize = static_cast<size_t>((std::min)(
+             static_cast<uint64_t>(m_http_client->client_config().chunksize()), m_content_length - m_uploaded));
+         auto readbuf = _get_readbuffer();
+-        readbuf.getn(boost::asio::buffer_cast<uint8_t*>(m_body_buf.prepare(readSize)), readSize)
++        readbuf.getn(static_cast<uint8_t*>(m_body_buf.prepare(readSize).data()), readSize)
+             .then([this_request AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task<size_t> op) {
+                 try
+                 {
+@@ -1639,7 +1636,7 @@ private:
+                     std::vector<uint8_t> decompressed;
+ 
+                     bool boo =
+-                        decompress(boost::asio::buffer_cast<const uint8_t*>(m_body_buf.data()), to_read, decompressed);
++                        decompress(static_cast<const uint8_t*>(m_body_buf.data().data()), to_read, decompressed);
+                     if (!boo)
+                     {
+                         report_exception(std::runtime_error("Failed to decompress the response body"));
+@@ -1687,7 +1684,7 @@ private:
+                 }
+                 else
+                 {
+-                    writeBuffer.putn_nocopy(boost::asio::buffer_cast<const uint8_t*>(m_body_buf.data()), to_read)
++                    writeBuffer.putn_nocopy(static_cast<const uint8_t*>(m_body_buf.data().data()), to_read)
+                         .then([this_request, to_read AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task<size_t> op) {
+                             try
+                             {
+@@ -1759,7 +1756,7 @@ private:
+                 std::vector<uint8_t> decompressed;
+ 
+                 bool boo =
+-                    decompress(boost::asio::buffer_cast<const uint8_t*>(m_body_buf.data()), read_size, decompressed);
++                    decompress(static_cast<const uint8_t*>(m_body_buf.data().data()), read_size, decompressed);
+                 if (!boo)
+                 {
+                     this_request->report_exception(std::runtime_error("Failed to decompress the response body"));
+@@ -1821,7 +1818,7 @@ private:
+             }
+             else
+             {
+-                writeBuffer.putn_nocopy(boost::asio::buffer_cast<const uint8_t*>(m_body_buf.data()), read_size)
++                writeBuffer.putn_nocopy(static_cast<const uint8_t*>(m_body_buf.data().data()), read_size)
+                     .then([this_request AND_CAPTURE_MEMBER_FUNCTION_POINTERS](pplx::task<size_t> op) {
+                         size_t writtenSize = 0;
+                         try
+@@ -1870,7 +1867,7 @@ private:
+             assert(!m_ctx.expired());
+             m_state = started;
+ 
+-            m_timer.expires_from_now(m_duration);
++            m_timer.expires_after(m_duration);
+             auto ctx = m_ctx;
+             m_timer.async_wait([ctx AND_CAPTURE_MEMBER_FUNCTION_POINTERS](const boost::system::error_code& ec) {
+                 handle_timeout(ec, ctx);
+@@ -1881,7 +1878,7 @@ private:
+         {
+             assert(m_state == started || m_state == timedout);
+             assert(!m_ctx.expired());
+-            if (m_timer.expires_from_now(m_duration) > 0)
++            if (m_timer.expires_after(m_duration) > 0)
+             {
+                 // The existing handler was canceled so schedule a new one.
+                 assert(m_state == started);
+diff --git a/Release/src/http/client/x509_cert_utilities.cpp b/Release/src/http/client/x509_cert_utilities.cpp
+index 67fc5ac..7239f97 100644
+--- a/Release/src/http/client/x509_cert_utilities.cpp
++++ b/Release/src/http/client/x509_cert_utilities.cpp
+@@ -95,7 +95,7 @@ bool verify_cert_chain_platform_specific(boost::asio::ssl::verify_context& verif
+ #if defined(_WIN32)
+     if (verify_result)
+     {
+-        boost::asio::ssl::rfc2818_verification rfc2818(hostName);
++        boost::asio::ssl::host_name_verification rfc2818(hostName);
+         verify_result = rfc2818(verify_result, verifyCtx);
+     }
+ #endif
+diff --git a/Release/src/http/listener/http_server_asio.cpp b/Release/src/http/listener/http_server_asio.cpp
+index e83b9ff..14aadfb 100644
+--- a/Release/src/http/listener/http_server_asio.cpp
++++ b/Release/src/http/listener/http_server_asio.cpp
+@@ -520,17 +520,14 @@ void hostport_listener::start()
+     auto& service = crossplat::threadpool::shared_instance().service();
+     tcp::resolver resolver(service);
+     // #446: boost resolver does not recognize "+" as a host wildchar
+-    tcp::resolver::query query =
+-        ("+" == m_host) ? tcp::resolver::query(m_port, boost::asio::ip::resolver_query_base::flags())
+-                        : tcp::resolver::query(m_host, m_port, boost::asio::ip::resolver_query_base::flags());
+-
+-    tcp::endpoint endpoint = *resolver.resolve(query);
+-
++    auto host = ("+" == m_host) ? "" : m_host;
++    auto results = resolver.resolve(host, m_port, boost::asio::ip::resolver_query_base::flags());
++    tcp::endpoint endpoint = *results.begin();
+     m_acceptor.reset(new tcp::acceptor(service));
+     m_acceptor->open(endpoint.protocol());
+     m_acceptor->set_option(socket_base::reuse_address(true));
+     m_acceptor->bind(endpoint);
+-    m_acceptor->listen(0 != m_backlog ? m_backlog : socket_base::max_connections);
++    m_acceptor->listen(0 != m_backlog ? m_backlog : socket_base::max_listen_connections);
+ 
+     auto socket = new ip::tcp::socket(service);
+     std::unique_ptr<ip::tcp::socket> usocket(socket);
+@@ -881,7 +878,7 @@ will_deref_t asio_server_connection::handle_chunked_body(const boost::system::er
+     else
+     {
+         auto writebuf = requestImpl->outstream().streambuf();
+-        writebuf.putn_nocopy(buffer_cast<const uint8_t*>(m_request_buf.data()), toWrite)
++        writebuf.putn_nocopy(static_cast<const uint8_t*>(m_request_buf.data().data()), toWrite)
+             .then([=](pplx::task<size_t> writeChunkTask) -> will_deref_t {
+                 try
+                 {
+@@ -913,7 +910,7 @@ will_deref_t asio_server_connection::handle_body(const boost::system::error_code
+     {
+         auto writebuf = requestImpl->outstream().streambuf();
+         writebuf
+-            .putn_nocopy(boost::asio::buffer_cast<const uint8_t*>(m_request_buf.data()),
++            .putn_nocopy(static_cast<const uint8_t*>(m_request_buf.data().data()),
+                          (std::min)(m_request_buf.size(), m_read_size - m_read))
+             .then([this](pplx::task<size_t> writtenSizeTask) -> will_deref_t {
+                 size_t writtenSize = 0;
+@@ -1134,7 +1131,7 @@ will_deref_and_erase_t asio_server_connection::handle_write_chunked_response(con
+     }
+     auto membuf = m_response_buf.prepare(ChunkSize + chunked_encoding::additional_encoding_space);
+ 
+-    readbuf.getn(buffer_cast<uint8_t*>(membuf) + chunked_encoding::data_offset, ChunkSize)
++    readbuf.getn(static_cast<uint8_t*>(membuf.data()) + chunked_encoding::data_offset, ChunkSize)
+         .then([=](pplx::task<size_t> actualSizeTask) -> will_deref_and_erase_t {
+             size_t actualSize = 0;
+             try
+@@ -1146,7 +1143,7 @@ will_deref_and_erase_t asio_server_connection::handle_write_chunked_response(con
+                 return cancel_sending_response_with_error(response, std::current_exception());
+             }
+             size_t offset = chunked_encoding::add_chunked_delimiters(
+-                buffer_cast<uint8_t*>(membuf), ChunkSize + chunked_encoding::additional_encoding_space, actualSize);
++                static_cast<uint8_t*>(membuf.data()), ChunkSize + chunked_encoding::additional_encoding_space, actualSize);
+             m_response_buf.commit(actualSize + chunked_encoding::additional_encoding_space);
+             m_response_buf.consume(offset);
+             if (actualSize == 0)
+@@ -1167,7 +1164,7 @@ will_deref_and_erase_t asio_server_connection::handle_write_large_response(const
+         return cancel_sending_response_with_error(
+             response, std::make_exception_ptr(http_exception("Response stream close early!")));
+     size_t readBytes = (std::min)(ChunkSize, m_write_size - m_write);
+-    readbuf.getn(buffer_cast<uint8_t*>(m_response_buf.prepare(readBytes)), readBytes)
++    readbuf.getn(static_cast<uint8_t*>(m_response_buf.prepare(readBytes).data()), readBytes)
+         .then([=](pplx::task<size_t> actualSizeTask) -> will_deref_and_erase_t {
+             size_t actualSize = 0;
+             try
+diff --git a/Release/src/pplx/pplxlinux.cpp b/Release/src/pplx/pplxlinux.cpp
+index 630a9e4..65625b6 100644
+--- a/Release/src/pplx/pplxlinux.cpp
++++ b/Release/src/pplx/pplxlinux.cpp
+@@ -35,7 +35,7 @@ _PPLXIMP void YieldExecution() { std::this_thread::yield(); }
+ 
+ _PPLXIMP void linux_scheduler::schedule(TaskProc_t proc, void* param)
+ {
+-    crossplat::threadpool::shared_instance().service().post(boost::bind(proc, param));
++    boost::asio::post(crossplat::threadpool::shared_instance().service(), boost::bind(proc, param));
+ }
+ 
+ } // namespace details
+diff --git a/Release/src/pplx/threadpool.cpp b/Release/src/pplx/threadpool.cpp
+index ba38a1a..e12e48d 100644
+--- a/Release/src/pplx/threadpool.cpp
++++ b/Release/src/pplx/threadpool.cpp
+@@ -37,7 +37,7 @@ static void abort_if_no_jvm()
+ 
+ struct threadpool_impl final : crossplat::threadpool
+ {
+-    threadpool_impl(size_t n) : crossplat::threadpool(n), m_work(m_service)
++    threadpool_impl(size_t n) : crossplat::threadpool(n), m_work(m_service.get_executor())
+     {
+         for (size_t i = 0; i < n; i++)
+             add_thread();
+@@ -84,7 +84,7 @@ private:
+     }
+ 
+     std::vector<std::unique_ptr<boost::asio::detail::thread>> m_threads;
+-    boost::asio::io_service::work m_work;
++    boost::asio::executor_work_guard<boost::asio::io_context::executor_type> m_work;
+ };
+ 
+ #if defined(_WIN32)
+diff --git a/Release/src/websockets/client/ws_client_wspp.cpp b/Release/src/websockets/client/ws_client_wspp.cpp
+index d7c31c4..8dfa815 100644
+--- a/Release/src/websockets/client/ws_client_wspp.cpp
++++ b/Release/src/websockets/client/ws_client_wspp.cpp
+@@ -225,7 +225,7 @@ public:
+                             verifyCtx, utility::conversions::to_utf8string(m_uri.host()));
+                     }
+ #endif
+-                    boost::asio::ssl::rfc2818_verification rfc2818(utility::conversions::to_utf8string(m_uri.host()));
++                    boost::asio::ssl::host_name_verification rfc2818(utility::conversions::to_utf8string(m_uri.host()));
+                     return rfc2818(preverified, verifyCtx);
+                 });
+ 
diff --git a/cpprestsdk-boost.patch b/cpprestsdk-boost.patch
new file mode 100644
index 0000000..d06e63b
--- /dev/null
+++ b/cpprestsdk-boost.patch
@@ -0,0 +1,50 @@
+--- cpprestsdk-2.10.19/Release/cmake/cpprest_find_boost.cmake.orig	2026-05-16 19:17:07.871660659 +0200
++++ cpprestsdk-2.10.19/Release/cmake/cpprest_find_boost.cmake	2026-05-16 19:17:41.148147052 +0200
+@@ -27,11 +27,11 @@ function(cpprest_find_boost)
+     if (EXISTS "${PROJECT_SOURCE_DIR}/../Build_iOS/boost")
+       set(IOS_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../Build_iOS")
+       set(Boost_LIBRARIES "${IOS_SOURCE_DIR}/boost/lib" CACHE INTERNAL "")
+-      set(Boost_INCLUDE_DIR "${IOS_SOURCE_DIR}/boost/include" CACHE INTERNAL "")
++      set(Boost_INCLUDE_DIRS "${IOS_SOURCE_DIR}/boost/include" CACHE INTERNAL "")
+     else()
+       set(IOS_SOURCE_DIR "${PROJECT_SOURCE_DIR}/../Build_iOS")
+       set(Boost_LIBRARIES "${IOS_SOURCE_DIR}/boost.framework/boost" CACHE INTERNAL "")
+-      set(Boost_INCLUDE_DIR "${IOS_SOURCE_DIR}/boost.framework/Headers" CACHE INTERNAL "")
++      set(Boost_INCLUDE_DIRS "${IOS_SOURCE_DIR}/boost.framework/Headers" CACHE INTERNAL "")
+     endif()
+   elseif(ANDROID)
+     set(Boost_COMPILER "-clang")
+@@ -54,7 +54,7 @@ function(cpprest_find_boost)
+   add_library(cpprestsdk_boost_internal INTERFACE)
+   # FindBoost continually breaks imported targets whenever boost updates.
+   if(1)
+-    target_include_directories(cpprestsdk_boost_internal INTERFACE "$<BUILD_INTERFACE:${Boost_INCLUDE_DIR}>")
++    target_include_directories(cpprestsdk_boost_internal INTERFACE "$<BUILD_INTERFACE:${Boost_INCLUDE_DIRS}>")
+     set(_prev)
+     set(_libs)
+     foreach(_lib ${Boost_LIBRARIES})
+--- cpprestsdk-2.10.19/Release/CMakeLists.txt.orig	2026-05-16 21:19:08.095336937 +0200
++++ cpprestsdk-2.10.19/Release/CMakeLists.txt	2026-05-16 21:19:25.855240723 +0200
+@@ -168,10 +168,7 @@ elseif(CMAKE_CXX_COMPILER_ID MATCHES "GN
+   set(WARNINGS -Wall -Wextra -Wunused-parameter -Wcast-align -Wcast-qual -Wconversion -Wformat=2 -Winit-self -Winvalid-pch -Wmissing-format-attribute -Wmissing-include-dirs -Wpacked -Wredundant-decls -Wunreachable-code)
+   set(LD_FLAGS "${LD_FLAGS} -Wl,-z,defs")
+ 
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -fno-strict-aliasing")
+-  if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.8)
+-    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive -D_GLIBCXX_USE_SCHED_YIELD -D_GLIBCXX_USE_NANOSLEEP")
+-  endif()
++  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++14 -fno-strict-aliasing")
+ 
+ elseif(CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
+   message("-- Setting msvc options")
+--- cpprestsdk-2.10.19/Release/tests/functional/pplx/pplx_test/pplx_op_test.cpp.orig	2026-05-16 21:39:17.785450149 +0200
++++ cpprestsdk-2.10.19/Release/tests/functional/pplx/pplx_test/pplx_op_test.cpp	2026-05-16 21:39:53.685255663 +0200
+@@ -57,7 +57,7 @@ class pplx_dflt_scheduler : public pplx:
+     virtual void schedule(pplx::TaskProc_t proc, void* param)
+     {
+         pplx::details::atomic_increment(s_flag);
+-        m_pool->service().post([=]() -> void { proc(param); });
++        boost::asio::post(m_pool->service(), [=]() -> void { proc(param); });
+     }
+ 
+ public:
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/cpprestsdk.git/commitdiff/d00c10b3beeb0f3ca486871e0b07095a354e657b



More information about the pld-cvs-commit mailing list