diff options
Diffstat (limited to 'ports/wt')
| -rw-r--r-- | ports/wt/0001-boost-1.66.patch | 370 | ||||
| -rw-r--r-- | ports/wt/0002-link-glew.patch | 23 | ||||
| -rw-r--r-- | ports/wt/0003-disable-boost-autolink.patch | 22 | ||||
| -rw-r--r-- | ports/wt/CONTROL | 4 | ||||
| -rw-r--r-- | ports/wt/add-disable-boost-autolink-option.patch | 26 | ||||
| -rw-r--r-- | ports/wt/portfile.cmake | 35 |
6 files changed, 442 insertions, 38 deletions
diff --git a/ports/wt/0001-boost-1.66.patch b/ports/wt/0001-boost-1.66.patch new file mode 100644 index 000000000..b11ffdb05 --- /dev/null +++ b/ports/wt/0001-boost-1.66.patch @@ -0,0 +1,370 @@ +From a0fd67d85947c835cd55078edacf3c2ac84ca53f Mon Sep 17 00:00:00 2001 +From: Robert Schumacher <roschuma@microsoft.com> +Date: Fri, 23 Feb 2018 03:12:00 -0800 +Subject: [PATCH 1/3] boost 1.66 + + +diff --git a/src/Wt/Http/Client.C b/src/Wt/Http/Client.C +index 85230d1..a2c893e 100644 +--- a/src/Wt/Http/Client.C ++++ b/src/Wt/Http/Client.C +@@ -642,7 +642,7 @@ private: + + protected: + asio::io_service& ioService_; +- asio::strand strand_; ++ asio::io_context::strand strand_; + tcp::resolver resolver_; + asio::streambuf requestBuf_; + asio::streambuf responseBuf_; +diff --git a/src/Wt/Http/Client.h b/src/Wt/Http/Client.h +index f3c7169..0f638e8 100644 +--- a/src/Wt/Http/Client.h ++++ b/src/Wt/Http/Client.h +@@ -21,11 +21,7 @@ + #include <string> + + #ifdef WT_ASIO_IS_BOOST_ASIO +-namespace boost { +- namespace asio { +- class io_service; +- } +-} ++#include <boost/asio/io_service.hpp> + #else // WT_ASIO_IS_STANDALONE_ASIO + namespace asio { + class io_service; +diff --git a/src/http/Connection.C b/src/http/Connection.C +index cab7708..cca4e0a 100644 +--- a/src/http/Connection.C ++++ b/src/http/Connection.C +@@ -78,7 +78,7 @@ void Connection::scheduleStop() + + void Connection::start() + { +- LOG_DEBUG(socket().native() << ": start()"); ++ LOG_DEBUG(socket().native_handle() << ": start()"); + + request_parser_.reset(); + request_.reset(); +@@ -106,7 +106,7 @@ void Connection::stop() + void Connection::setReadTimeout(int seconds) + { + if (seconds != 0) { +- LOG_DEBUG(socket().native() << " setting read timeout (ws: " ++ LOG_DEBUG(socket().native_handle() << " setting read timeout (ws: " + << request_.webSocketVersion << ")"); + state_ |= Reading; + +@@ -118,7 +118,7 @@ void Connection::setReadTimeout(int seconds) + + void Connection::setWriteTimeout(int seconds) + { +- LOG_DEBUG(socket().native() << " setting write timeout (ws: " ++ LOG_DEBUG(socket().native_handle() << " setting write timeout (ws: " + << request_.webSocketVersion << ")"); + state_ |= Writing; + +@@ -129,7 +129,7 @@ void Connection::setWriteTimeout(int seconds) + + void Connection::cancelReadTimer() + { +- LOG_DEBUG(socket().native() << " cancel read timeout"); ++ LOG_DEBUG(socket().native_handle() << " cancel read timeout"); + state_.clear(Reading); + + readTimer_.cancel(); +@@ -137,7 +137,7 @@ void Connection::cancelReadTimer() + + void Connection::cancelWriteTimer() + { +- LOG_DEBUG(socket().native() << " cancel write timeout"); ++ LOG_DEBUG(socket().native_handle() << " cancel write timeout"); + state_.clear(Writing); + + writeTimer_.cancel(); +@@ -163,7 +163,7 @@ void Connection::handleReadRequest0() + + #ifdef DEBUG + try { +- LOG_DEBUG(socket().native() << "incoming request: " ++ LOG_DEBUG(socket().native_handle() << "incoming request: " + << socket().remote_endpoint().port() << " (avail= " + << (rcv_buffer_size_ - (rcv_remaining_ - buffer.data())) << "): " + << std::string(rcv_remaining_, +@@ -189,7 +189,7 @@ void Connection::handleReadRequest0() + if (doWebSockets) + request_.enableWebSocket(); + +- LOG_DEBUG(socket().native() << "request: " << status); ++ LOG_DEBUG(socket().native_handle() << "request: " << status); + + if (status >= 300) + sendStockReply(status); +@@ -242,7 +242,7 @@ void Connection::sendStockReply(StockReply::status_type status) + void Connection::handleReadRequest(const Wt::AsioWrapper::error_code& e, + std::size_t bytes_transferred) + { +- LOG_DEBUG(socket().native() << ": handleReadRequest(): " << e.message()); ++ LOG_DEBUG(socket().native_handle() << ": handleReadRequest(): " << e.message()); + + cancelReadTimer(); + +@@ -261,7 +261,7 @@ void Connection::close() + cancelReadTimer(); + cancelWriteTimer(); + +- LOG_DEBUG(socket().native() << ": close()"); ++ LOG_DEBUG(socket().native_handle() << ": close()"); + + ConnectionManager_.stop(shared_from_this()); + } +@@ -274,7 +274,7 @@ bool Connection::closed() const + + void Connection::handleError(const Wt::AsioWrapper::error_code& e) + { +- LOG_DEBUG(socket().native() << ": error: " << e.message()); ++ LOG_DEBUG(socket().native_handle() << ": error: " << e.message()); + + close(); + } +@@ -349,7 +349,7 @@ void Connection::handleReadBody0(ReplyPtr reply, + const Wt::AsioWrapper::error_code& e, + std::size_t bytes_transferred) + { +- LOG_DEBUG(socket().native() << ": handleReadBody0(): " << e.message()); ++ LOG_DEBUG(socket().native_handle() << ": handleReadBody0(): " << e.message()); + + if (disconnectCallback_) { + if (e && e != asio::error::operation_aborted) { +@@ -357,7 +357,7 @@ void Connection::handleReadBody0(ReplyPtr reply, + disconnectCallback_ = boost::function<void()>(); + f(); + } else if (!e) { +- LOG_ERROR(socket().native() ++ LOG_ERROR(socket().native_handle() + << ": handleReadBody(): while waiting for disconnect, " + "received unexpected data, closing"); + close(); +@@ -403,14 +403,14 @@ void Connection::startWriteResponse(ReplyPtr reply) + int size = asio::buffer_size(buffers[i]); + s += size; + #ifdef DEBUG_DUMP +- char *data = (char *)asio::detail::buffer_cast_helper(buffers[i]); ++ char *data = asio::buffer_cast<char*>(buffers[i]); + for (int j = 0; j < size; ++j) + std::cerr << data[j]; + #endif + } + #endif + +- LOG_DEBUG(socket().native() << " sending: " << s << "(buffers: " ++ LOG_DEBUG(socket().native_handle() << " sending: " << s << "(buffers: " + << buffers.size() << ")"); + + if (!buffers.empty()) { +@@ -423,7 +423,7 @@ void Connection::startWriteResponse(ReplyPtr reply) + + void Connection::handleWriteResponse(ReplyPtr reply) + { +- LOG_DEBUG(socket().native() << ": handleWriteResponse() " << ++ LOG_DEBUG(socket().native_handle() << ": handleWriteResponse() " << + haveResponse_ << " " << responseDone_); + if (haveResponse_) + startWriteResponse(reply); +@@ -458,7 +458,7 @@ void Connection::handleWriteResponse0(ReplyPtr reply, + const Wt::AsioWrapper::error_code& e, + std::size_t bytes_transferred) + { +- LOG_DEBUG(socket().native() << ": handleWriteResponse0(): " ++ LOG_DEBUG(socket().native_handle() << ": handleWriteResponse0(): " + << bytes_transferred << " ; " << e.message()); + + cancelWriteTimer(); +diff --git a/src/http/Connection.h b/src/http/Connection.h +index b0b71a3..bc0b6ed 100644 +--- a/src/http/Connection.h ++++ b/src/http/Connection.h +@@ -61,7 +61,7 @@ public: + virtual ~Connection(); + + Server *server() const { return server_; } +- asio::strand& strand() { return strand_; } ++ asio::io_context::strand& strand() { return strand_; } + + /// Stop all asynchronous operations associated with the connection. + void scheduleStop(); +@@ -104,7 +104,7 @@ protected: + /// The manager for this connection. + ConnectionManager& ConnectionManager_; + +- asio::strand strand_; ++ asio::io_context::strand strand_; + + void finishReply(); + +diff --git a/src/http/Reply.C b/src/http/Reply.C +index 0d79e39..5e6c615 100644 +--- a/src/http/Reply.C ++++ b/src/http/Reply.C +@@ -596,7 +596,7 @@ bool Reply::encodeNextContentBuffer( + originalSize += bs; + + gzipStrm_.avail_in = bs; +- gzipStrm_.next_in = (unsigned char *)asio::detail::buffer_cast_helper(b); ++ gzipStrm_.next_in = (unsigned char *)b.data(); + + unsigned char out[16*1024]; + do { +diff --git a/src/http/Server.h b/src/http/Server.h +index 3d3229a..373073f 100644 +--- a/src/http/Server.h ++++ b/src/http/Server.h +@@ -129,7 +129,7 @@ private: + Wt::WLogger accessLogger_; + + /// The strand for handleTcpAccept(), handleSslAccept() and handleStop() +- asio::strand accept_strand_; ++ asio::io_context::strand accept_strand_; + + /// Acceptors used to listen for incoming http connections. + std::vector<TcpListener> tcp_listeners_; +diff --git a/src/http/SessionProcess.C b/src/http/SessionProcess.C +index 72d9a88..92320b0 100644 +--- a/src/http/SessionProcess.C ++++ b/src/http/SessionProcess.C +@@ -80,7 +80,7 @@ void SessionProcess::asyncExec(const Configuration &config, + if (!ec) + acceptor_->listen(0, ec); + #ifndef WT_WIN32 +- fcntl(acceptor_->native(), F_SETFD, FD_CLOEXEC); ++ fcntl(acceptor_->native_handle(), F_SETFD, FD_CLOEXEC); + #endif // !WT_WIN32 + if (ec) { + LOG_ERROR("Couldn't create listening socket: " << ec.message()); +diff --git a/src/http/SslConnection.C b/src/http/SslConnection.C +index 74c8642..2c34b53 100644 +--- a/src/http/SslConnection.C ++++ b/src/http/SslConnection.C +@@ -81,9 +81,9 @@ void SslConnection::handleHandshake(const Wt::AsioWrapper::error_code& error) + + void SslConnection::stop() + { +- LOG_DEBUG(socket().native() << ": stop()"); ++ LOG_DEBUG(socket().native_handle() << ": stop()"); + finishReply(); +- LOG_DEBUG(socket().native() << ": SSL shutdown"); ++ LOG_DEBUG(socket().native_handle() << ": SSL shutdown"); + + Connection::stop(); + +@@ -108,20 +108,20 @@ void SslConnection::stopNextLayer(const Wt::AsioWrapper::error_code& ec) + // In case of timeout, we will get here twice. + sslShutdownTimer_.cancel(); + if (ec) { +- LOG_DEBUG(socket().native() << ": ssl_shutdown failed:" ++ LOG_DEBUG(socket().native_handle() << ": ssl_shutdown failed:" + << ec.message()); + } + try { + if (socket().is_open()) { + Wt::AsioWrapper::error_code ignored_ec; +- LOG_DEBUG(socket().native() << ": socket shutdown"); ++ LOG_DEBUG(socket().native_handle() << ": socket shutdown"); + socket().shutdown(asio::ip::tcp::socket::shutdown_both, + ignored_ec); +- LOG_DEBUG(socket().native() << "closing socket"); ++ LOG_DEBUG(socket().native_handle() << "closing socket"); + socket().close(); + } + } catch (Wt::AsioWrapper::system_error& e) { +- LOG_DEBUG(socket().native() << ": error " << e.what()); ++ LOG_DEBUG(socket().native_handle() << ": error " << e.what()); + } + } + +@@ -161,7 +161,7 @@ void SslConnection::startAsyncReadBody(ReplyPtr reply, + Buffer& buffer, int timeout) + { + if (state_ & Reading) { +- LOG_DEBUG(socket().native() << ": state_ = " ++ LOG_DEBUG(socket().native_handle() << ": state_ = " + << (state_ & Reading ? "reading " : "") + << (state_ & Writing ? "writing " : "")); + stop(); +@@ -198,7 +198,7 @@ void SslConnection + int timeout) + { + if (state_ & Writing) { +- LOG_DEBUG(socket().native() << ": state_ = " ++ LOG_DEBUG(socket().native_handle() << ": state_ = " + << (state_ & Reading ? "reading " : "") + << (state_ & Writing ? "writing " : "")); + stop(); +diff --git a/src/http/TcpConnection.C b/src/http/TcpConnection.C +index ad73164..4eaf83b 100644 +--- a/src/http/TcpConnection.C ++++ b/src/http/TcpConnection.C +@@ -38,17 +38,17 @@ asio::ip::tcp::socket& TcpConnection::socket() + + void TcpConnection::stop() + { +- LOG_DEBUG(socket().native() << ": stop()"); ++ LOG_DEBUG(socket().native_handle() << ": stop()"); + + finishReply(); + + try { + Wt::AsioWrapper::error_code ignored_ec; + socket_.shutdown(asio::ip::tcp::socket::shutdown_both, ignored_ec); +- LOG_DEBUG(socket().native() << ": closing socket"); ++ LOG_DEBUG(socket().native_handle() << ": closing socket"); + socket_.close(); + } catch (Wt::AsioWrapper::system_error& e) { +- LOG_DEBUG(socket().native() << ": error " << e.what()); ++ LOG_DEBUG(socket().native_handle() << ": error " << e.what()); + } + + Connection::stop(); +@@ -56,10 +56,10 @@ void TcpConnection::stop() + + void TcpConnection::startAsyncReadRequest(Buffer& buffer, int timeout) + { +- LOG_DEBUG(socket().native() << ": startAsyncReadRequest"); ++ LOG_DEBUG(socket().native_handle() << ": startAsyncReadRequest"); + + if (state_ & Reading) { +- LOG_DEBUG(socket().native() << ": state_ = " ++ LOG_DEBUG(socket().native_handle() << ": state_ = " + << (state_ & Reading ? "reading " : "") + << (state_ & Writing ? "writing " : "")); + stop(); +@@ -81,10 +81,10 @@ void TcpConnection::startAsyncReadRequest(Buffer& buffer, int timeout) + void TcpConnection::startAsyncReadBody(ReplyPtr reply, + Buffer& buffer, int timeout) + { +- LOG_DEBUG(socket().native() << ": startAsyncReadBody"); ++ LOG_DEBUG(socket().native_handle() << ": startAsyncReadBody"); + + if (state_ & Reading) { +- LOG_DEBUG(socket().native() << ": state_ = " ++ LOG_DEBUG(socket().native_handle() << ": state_ = " + << (state_ & Reading ? "reading " : "") + << (state_ & Writing ? "writing " : "")); + stop(); +@@ -109,10 +109,10 @@ void TcpConnection::startAsyncWriteResponse + const std::vector<asio::const_buffer>& buffers, + int timeout) + { +- LOG_DEBUG(socket().native() << ": startAsyncWriteResponse"); ++ LOG_DEBUG(socket().native_handle() << ": startAsyncWriteResponse"); + + if (state_ & Writing) { +- LOG_DEBUG(socket().native() << ": state_ = " ++ LOG_DEBUG(socket().native_handle() << ": state_ = " + << (state_ & Reading ? "reading " : "") + << (state_ & Writing ? "writing " : "")); + stop(); +-- +2.16.2.windows.1 + diff --git a/ports/wt/0002-link-glew.patch b/ports/wt/0002-link-glew.patch new file mode 100644 index 000000000..af441e81f --- /dev/null +++ b/ports/wt/0002-link-glew.patch @@ -0,0 +1,23 @@ +From 6301c4ccaf8d3b6982898fed84e691ab8ddd7a4f Mon Sep 17 00:00:00 2001 +From: Robert Schumacher <roschuma@microsoft.com> +Date: Fri, 23 Feb 2018 03:12:45 -0800 +Subject: [PATCH 2/3] link glew + + +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 80734fb..70e755b 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -556,7 +556,8 @@ ENDIF("${WT_WRASTERIMAGE_IMPLEMENTATION}" STREQUAL "GraphicsMagick") + IF(HAVE_GL) + INCLUDE_DIRECTORIES(${GL_INCLUDE_DIRS}) + IF(USE_SYSTEM_GLEW) +- TARGET_LINK_LIBRARIES(wt PRIVATE GLEW) ++ find_package(glew REQUIRED) ++ TARGET_LINK_LIBRARIES(wt PRIVATE GLEW::GLEW) + ENDIF(USE_SYSTEM_GLEW) + TARGET_LINK_LIBRARIES(wt PRIVATE ${GL_LIBRARIES}) + ELSE(HAVE_GL) +-- +2.16.2.windows.1 + diff --git a/ports/wt/0003-disable-boost-autolink.patch b/ports/wt/0003-disable-boost-autolink.patch new file mode 100644 index 000000000..910fbf800 --- /dev/null +++ b/ports/wt/0003-disable-boost-autolink.patch @@ -0,0 +1,22 @@ +From 21dd691c8ac8d60f49cd051193402187f6912f92 Mon Sep 17 00:00:00 2001 +From: Robert Schumacher <roschuma@microsoft.com> +Date: Fri, 23 Feb 2018 03:29:09 -0800 +Subject: [PATCH 3/3] disable boost autolink + + +diff --git a/cmake/WtFindBoost-cmake.txt b/cmake/WtFindBoost-cmake.txt +index b708803..b0c2846 100644 +--- a/cmake/WtFindBoost-cmake.txt ++++ b/cmake/WtFindBoost-cmake.txt +@@ -89,7 +89,7 @@ IF (Boost_FOUND) + SET(BOOST_WTHTTP_MT_FOUND TRUE) + SET(BOOST_WTHTTP_FOUND TRUE) + +- IF(MSVC) ++ IF(MSVC AND 0) + # use autolink + SET(BOOST_WT_LIBRARIES "") + SET(BOOST_WTHTTP_LIBRARIES "") +-- +2.16.2.windows.1 + diff --git a/ports/wt/CONTROL b/ports/wt/CONTROL index 24b87df83..d3a707343 100644 --- a/ports/wt/CONTROL +++ b/ports/wt/CONTROL @@ -1,4 +1,4 @@ Source: wt -Version: 3.3.7 +Version: 4.0.3 Description: Wt is a C++ library for developing web applications -Build-Depends: boost, openssl +Build-Depends: openssl, sqlite3, libpq, pango, glew, boost-date-time, boost-regex, boost-program-options, boost-signals, boost-system, boost-filesystem, boost-thread, boost-random, boost-multi-index, boost-signals2, boost-asio, boost-ublas, boost-conversion, boost-array, boost-smart-ptr, boost-tuple, boost-algorithm, boost-logic diff --git a/ports/wt/add-disable-boost-autolink-option.patch b/ports/wt/add-disable-boost-autolink-option.patch deleted file mode 100644 index 57cb3ed99..000000000 --- a/ports/wt/add-disable-boost-autolink-option.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff --git a/cmake/WtFindBoost-cmake.txt b/cmake/WtFindBoost-cmake.txt -index b66741f..377cede 100644 ---- a/cmake/WtFindBoost-cmake.txt -+++ b/cmake/WtFindBoost-cmake.txt -@@ -99,7 +99,7 @@ IF (Boost_FOUND) - SET(BOOST_WTHTTP_MT_FOUND TRUE) - SET(BOOST_WTHTTP_FOUND TRUE) - -- IF(MSVC) -+ IF(MSVC AND NOT DISABLE_BOOST_AUTOLINK) - # use autolink - SET(BOOST_WT_LIBRARIES "") - SET(BOOST_WTHTTP_LIBRARIES "") -diff --git a/src/wt/Dbo/CMakeLists.txt b/src/wt/Dbo/CMakeLists.txt -index 64d3af2..f9c31e0 100644 ---- a/src/wt/Dbo/CMakeLists.txt -+++ b/src/wt/Dbo/CMakeLists.txt -@@ -31,7 +31,7 @@ IF(ENABLE_LIBWTDBO) - StringStream.C - ) - -- IF(MSVC) -+ IF(MSVC AND NOT DISABLE_BOOST_AUTOLINK) - #win32 links automatically against boost libs; specifying too much causes - #trouble - IF(MULTI_THREADED_BUILD) diff --git a/ports/wt/portfile.cmake b/ports/wt/portfile.cmake index e5cded5ec..b33e9110b 100644 --- a/ports/wt/portfile.cmake +++ b/ports/wt/portfile.cmake @@ -3,35 +3,50 @@ include(vcpkg_common_functions) vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO emweb/wt - REF 3.3.7 - SHA512 f179b42eedcfd2e61f26ef92c6aad40c55c76c9a688269c4d5bd55dd48381073d6269d9c2ab305f15ef455616d48183a3fc0ba08c740a8e18318a2ad2fb13826 + REF 4.0.3 + SHA512 5985f72cbd3065ac696aad4d11711f2d69e066ee17141b56fd7c2616c7f7353586ab8d13db2baa90fa8f3cb116aa7c9044ee3cc42e99e8f5c8704f886ac3b2b6 HEAD_REF master ) vcpkg_apply_patches( SOURCE_PATH ${SOURCE_PATH} - PATCHES ${CMAKE_CURRENT_LIST_DIR}/add-disable-boost-autolink-option.patch + PATCHES + ${CMAKE_CURRENT_LIST_DIR}/0001-boost-1.66.patch + ${CMAKE_CURRENT_LIST_DIR}/0002-link-glew.patch + ${CMAKE_CURRENT_LIST_DIR}/0003-disable-boost-autolink.patch ) +string(COMPARE EQUAL "${VCPKG_LIBRARY_LINKAGE}" "dynamic" SHARED_LIBS) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA OPTIONS - -DSHARED_LIBS=ON - -DENABLE_SSL=ON + -DSHARED_LIBS=${SHARED_LIBS} + -DBOOST_DYNAMIC=ON + -DDISABLE_BOOST_AUTOLINK=ON -DBUILD_EXAMPLES=OFF - -DENABLE_POSTGRES=OFF + + -DENABLE_SSL=ON + -DENABLE_HARU=OFF + -DENABLE_PANGO=ON + -DENABLE_SQLITE=ON + -DENABLE_POSTGRES=ON -DENABLE_FIREBIRD=OFF -DENABLE_MYSQL=OFF -DENABLE_QT4=OFF - -DBOOST_DYNAMIC=ON - -DDISABLE_BOOST_AUTOLINK=ON -DENABLE_LIBWTTEST=OFF + -DENABLE_OPENGL=ON + + -DUSE_SYSTEM_SQLITE3=ON + -DUSE_SYSTEM_GLEW=ON ) vcpkg_install_cmake() +vcpkg_fixup_cmake_targets(CONFIG_PATH lib/cmake/wt) + # There is no way to suppress installation of the headers and resource files in debug build. -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include) -file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/share) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share) file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/wt RENAME copyright) vcpkg_copy_pdbs() |
