diff options
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-support/cpprest')
8 files changed, 357 insertions, 34 deletions
diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch deleted file mode 100644 index 0feafef5bf..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest-2.10.2/fix-cmake-install.patch +++ /dev/null @@ -1,17 +0,0 @@ -Description: install cmake files into /usr/lib/cmake/cpprestsdk -Author: Gianfranco Costamagna <locutusofborg@debian.org> -Upstream-Status: https://github.com/Microsoft/cpprestsdk/pull/737 -Forwarded: https://github.com/Microsoft/cpprestsdk/pull/737 -Last-Update: 2018-04-19 - ---- cpprest-2.10.2.orig/CMakeLists.txt -+++ cpprest-2.10.2/CMakeLists.txt -@@ -18,7 +18,7 @@ enable_testing() - set(WERROR ON CACHE BOOL "Treat Warnings as Errors.") - set(CPPREST_EXCLUDE_WEBSOCKETS OFF CACHE BOOL "Exclude websockets functionality.") - set(CPPREST_EXCLUDE_COMPRESSION OFF CACHE BOOL "Exclude compression functionality.") --set(CPPREST_EXPORT_DIR lib/cpprestsdk CACHE STRING "Directory to install CMake config files.") -+set(CPPREST_EXPORT_DIR lib/cmake/cpprestsdk CACHE STRING "Directory to install CMake config files.") - set(CPPREST_INSTALL_HEADERS ON CACHE BOOL "Install header files.") - set(CPPREST_INSTALL ON CACHE BOOL "Add install commands.") - diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch new file mode 100644 index 0000000000..3ae46a1159 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/950-fix.patch @@ -0,0 +1,26 @@ +Origin: upstream +Bug: https://github.com/Microsoft/cpprestsdk/issues/950 +Last-Update: 2018-11-04 + +Index: cpprest/Release/src/utilities/asyncrt_utils.cpp +=================================================================== +--- cpprest.orig/Release/src/utilities/asyncrt_utils.cpp ++++ cpprest/Release/src/utilities/asyncrt_utils.cpp +@@ -356,7 +356,7 @@ + inline size_t count_utf8_to_utf16(const std::string& s) + { + const size_t sSize = s.size(); +- auto sData = reinterpret_cast<const UtilCharInternal_t* const>(s.data()); ++ auto const sData = reinterpret_cast<const UtilCharInternal_t*>(s.data()); + size_t result{ sSize }; + + for (size_t index = 0; index < sSize;) +@@ -441,7 +441,7 @@ + { + // Save repeated heap allocations, use the length of resulting sequence. + const size_t srcSize = s.size(); +- auto srcData = reinterpret_cast<const UtilCharInternal_t* const>(s.data()); ++ auto const srcData = reinterpret_cast<const UtilCharInternal_t*>(s.data()); + utf16string dest(count_utf8_to_utf16(s), L'\0'); + utf16string::value_type* const destData = &dest[0]; + size_t destIndex = 0; diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch new file mode 100644 index 0000000000..75f74ec658 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-float-tests.patch @@ -0,0 +1,25 @@ +Description: new toolchain might have increased the float precision +Author: Gianfranco Costamagna <locutusofborg@debian.org> +Last-Update: 2017-10-28 +Forwarded: https://github.com/Microsoft/cpprestsdk/issues/576 + +--- casablanca-2.10.0.orig/Release/tests/functional/streams/istream_tests.cpp ++++ casablanca-2.10.0/Release/tests/functional/streams/istream_tests.cpp +@@ -1302,7 +1302,7 @@ void compare_float(float expected, float + { + compare_floating(expected, actual, FLT_EPSILON); + } +- ++/* + TEST(extract_floating_point) + { + std::string test_string; +@@ -1349,7 +1349,7 @@ TEST(extract_floating_point) + VERIFY_ARE_EQUAL(1 / expected, 1 / actual); + } while (!std_istream.eof()); + } +- ++*/ + TEST(extract_floating_point_with_exceptions) + { + std::vector<std::pair<std::string, std::string>> tests; diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch new file mode 100644 index 0000000000..2dff0d97c7 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-outside-tests.patch @@ -0,0 +1,142 @@ +Description: Debian forbids calls to external websites. + +Author: Gianfranco Costamagna <locutus@debian.org> +Origin: Debian +Forwarded: not-needed +Reviewed-By: Gianfranco Costamagna <locutusofborg@debian.org> +Last-Update: 2015-11-25 + +Index: casablanca/Release/tests/functional/http/client/CMakeLists.txt +=================================================================== +--- casablanca.orig/Release/tests/functional/http/client/CMakeLists.txt ++++ casablanca/Release/tests/functional/http/client/CMakeLists.txt +@@ -12,7 +12,6 @@ + multiple_requests.cpp + oauth1_tests.cpp + oauth2_tests.cpp +- outside_tests.cpp + pipeline_stage_tests.cpp + progress_handler_tests.cpp + proxy_tests.cpp +Index: casablanca/Release/tests/functional/http/client/authentication_tests.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/http/client/authentication_tests.cpp ++++ casablanca/Release/tests/functional/http/client/authentication_tests.cpp +@@ -663,15 +663,19 @@ + VERIFY_ARE_EQUAL(return_code, response.status_code()); + } + ++/* + TEST(auth_no_data) + { + auth_test_impl(false); + } ++*/ + ++/* + TEST(unsuccessful_auth_with_basic_cred) + { + auth_test_impl(true); + } ++*/ + + TEST_FIXTURE(uri_address, set_user_options_asio_http) + { +@@ -692,7 +696,7 @@ + auto response = client.request(methods::GET).get(); + VERIFY_ARE_EQUAL(200, response.status_code()); + } +- ++/* + TEST_FIXTURE(uri_address, set_user_options_asio_https) + { + handle_timeout([] +@@ -714,7 +718,7 @@ + VERIFY_IS_FALSE(v.empty()); + }); + } +- ++*/ + #endif + + } // SUITE(authentication_tests) +Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp ++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp +@@ -86,7 +86,7 @@ + } + return false; + } +- ++/* + TEST(ssl_test) + { + websocket_client client; +@@ -122,7 +122,7 @@ + throw; + } + } +- ++*/ + // These tests are specific to our websocketpp based implementation. + #if !defined(__cplusplus_winrt) + +@@ -153,14 +153,15 @@ + throw; + } + } +- ++/* + // Test specifically for server SignalR team hit interesting cases with. + TEST(sni_with_older_server_test) + { + websocket_client client; + sni_test_impl(client); + } +- ++*/ ++/* + // WinRT doesn't expose option for disabling. + // No stable server is available to reliably test this. + // The configuration below relies on a timeout in the success case. +@@ -188,7 +189,8 @@ + throw; + } + } +- ++*/ ++/* + // Winrt doesn't allow explicitly setting server host for SNI. + TEST(sni_explicit_hostname) + { +@@ -199,7 +201,7 @@ + websocket_client client(config); + sni_test_impl(client); + } +- ++*/ + void handshake_error_test_impl(const ::utility::string_t &host) + { + websocket_client client; +Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp ++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp +@@ -415,6 +415,7 @@ + } + #endif + ++/* + // Try to connect to a server on a closed port and cancel the operation. + TEST_FIXTURE(uri_address, cancel_bad_port) + { +@@ -446,7 +447,7 @@ + + VERIFY_THROWS_HTTP_ERROR_CODE(t.get(), std::errc::operation_canceled); + } +- ++*/ + } // SUITE(connections_and_errors) + + }}}} diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch new file mode 100644 index 0000000000..93c3e8a269 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/disable-test-timeouts.patch @@ -0,0 +1,103 @@ +Description: Some tests takes too long on slow architectures and timeouts + We can safely disable them. + e.g. + Release/tests/functional/http/client/connections_and_errors.cpp:142: error: Failure in request_timeout_microsecond: Test case timed out and is hung. Aborting all remaining test cases. Expected under 180000ms. FAILED + +Index: casablanca/Release/tests/functional/http/client/connections_and_errors.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/http/client/connections_and_errors.cpp ++++ casablanca/Release/tests/functional/http/client/connections_and_errors.cpp +@@ -127,7 +127,7 @@ + // Try sending another request. + VERIFY_THROWS(client.request(methods::GET).wait(), web::http::http_exception); + } +- ++/* + TEST_FIXTURE(uri_address, request_timeout) + { + test_http_server::scoped_server scoped(m_uri); +@@ -146,7 +146,8 @@ + #endif + t.get(); + } +- ++*/ ++/* + TEST_FIXTURE(uri_address, request_timeout_microsecond) + { + pplx::task<test_request*> t; +@@ -168,7 +169,7 @@ + try { t.get(); } + catch (...) {} + } +- ++*/ + TEST_FIXTURE(uri_address, invalid_method) + { + web::http::uri uri(U("http://www.bing.com/")); +Index: casablanca/Release/tests/functional/http/listener/requests_tests.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/http/listener/requests_tests.cpp ++++ casablanca/Release/tests/functional/http/listener/requests_tests.cpp +@@ -173,7 +173,7 @@ + + listener.close().wait(); + } +- ++/* + TEST_FIXTURE(uri_address, response_order) + { + http_listener listener(m_uri); +@@ -217,7 +217,7 @@ + + listener.close().wait(); + } +- ++*/ + TEST_FIXTURE(uri_address, uri_encoding, "Ignore", "Codeplex 201") + { + http_listener listener(m_uri); +Index: casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/websockets/client/authentication_tests.cpp ++++ casablanca/Release/tests/functional/websockets/client/authentication_tests.cpp +@@ -221,7 +221,7 @@ + VERIFY_ARE_EQUAL("TLS handshake failed", e.error_code().message()); + } + } +- ++/* + TEST(self_signed_cert) + { + handshake_error_test_impl(U("wss://self-signed.badssl.com/")); +@@ -236,7 +236,7 @@ + { + handshake_error_test_impl(U("wss://expired.badssl.com/")); + } +- ++*/ + #endif + + } // SUITE(authentication_tests) +Index: casablanca/Release/tests/functional/websockets/client/client_construction.cpp +=================================================================== +--- casablanca.orig/Release/tests/functional/websockets/client/client_construction.cpp ++++ casablanca/Release/tests/functional/websockets/client/client_construction.cpp +@@ -81,7 +81,7 @@ + VERIFY_ARE_EQUAL(config2.credentials().username(), cred.username()); + } + +- ++/* + // Verify that we can get the baseuri from websocket_client connect. + TEST_FIXTURE(uri_address, uri_test) + { +@@ -101,7 +101,7 @@ + VERIFY_ARE_EQUAL(client2.uri(), m_uri); + client2.close().wait(); + } +- ++*/ + TEST_FIXTURE(uri_address, move_operations) + { + std::string body("hello"); diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch new file mode 100644 index 0000000000..e6f64772d4 --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest/system-brotli.patch @@ -0,0 +1,38 @@ +Description: Find system brotli +Author: Gianfranco Costamagna <locutusofborg@debian.org> +Forwarded: https://github.com/Microsoft/cpprestsdk/pull/952 +Last-Update: 2018-11-05 + +--- cpprest-2.10.7.orig/Release/cmake/cpprest_find_brotli.cmake ++++ cpprest-2.10.7/Release/cmake/cpprest_find_brotli.cmake +@@ -3,8 +3,17 @@ function(cpprest_find_brotli) + return() + endif() + +- find_package(unofficial-brotli REQUIRED) + +- add_library(cpprestsdk_brotli_internal INTERFACE) +- target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon) ++ find_package(PkgConfig) ++ pkg_check_modules(BROTLIENC libbrotlienc) ++ pkg_check_modules(BROTLIDEC libbrotlidec) ++ if(BROTLIDEC_FOUND AND BROTLIENC_FOUND) ++ target_link_libraries(cpprest PRIVATE ${BROTLIDEC_LDFLAGS} ${BROTLIENC_LDFLAGS}) ++ else(BROTLIDEC_FOUND AND BROTLIENC_FOUND) ++ find_package(unofficial-brotli REQUIRED) ++ add_library(cpprestsdk_brotli_internal INTERFACE) ++ target_link_libraries(cpprestsdk_brotli_internal INTERFACE unofficial::brotli::brotlienc unofficial::brotli::brotlidec unofficial::brotli::brotlicommon) ++ target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal) ++ endif(BROTLIDEC_FOUND AND BROTLIENC_FOUND) ++ + endfunction() +--- cpprest-2.10.7.orig/Release/src/CMakeLists.txt ++++ cpprest-2.10.7/Release/src/CMakeLists.txt +@@ -84,7 +84,6 @@ else() + target_compile_definitions(cpprest PRIVATE -DCPPREST_EXCLUDE_BROTLI=1) + else() + cpprest_find_brotli() +- target_link_libraries(cpprest PRIVATE cpprestsdk_brotli_internal) + endif() + endif() + diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb deleted file mode 100644 index 2ba6fc66cc..0000000000 --- a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.2.bb +++ /dev/null @@ -1,17 +0,0 @@ -SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design." -SECTION = "libs/network" -HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/" -LICENSE = "MIT" -LIC_FILES_CHKSUM = "file://${S}/../license.txt;md5=a2e15b954769218ff912468eecd6a02f" -DEPENDS = "openssl websocketpp zlib boost" - -SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master" - -SRC_URI += "file://fix-cmake-install.patch" - -# tag 2.10.2 -SRCREV= "fea848e2a77563cf2a6f28f8eab396fd6e787fbf" - -S = "${WORKDIR}/git/Release" - -inherit cmake diff --git a/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb new file mode 100644 index 0000000000..5cc6385dfb --- /dev/null +++ b/meta-openembedded/meta-oe/recipes-support/cpprest/cpprest_2.10.7.bb @@ -0,0 +1,23 @@ +SUMMARY = "Microsoft project for cloud-based client-server communication in native code using a modern asynchronous C++ API design." +SECTION = "libs/network" +HOMEPAGE = "https://github.com/Microsoft/cpprestsdk/" +LICENSE = "MIT" +LIC_FILES_CHKSUM = "file://${S}/license.txt;md5=a2e15b954769218ff912468eecd6a02f" +DEPENDS = "openssl websocketpp zlib boost brotli" + +EXTRA_OECMAKE = "-DCPPREST_EXPORT_DIR=cmake -DCPPREST_EXCLUDE_BROTLI=OFF" + +SRC_URI = "git://github.com/Microsoft/cpprestsdk.git;protocol=https;branch=master \ + file://disable-outside-tests.patch \ + file://disable-test-timeouts.patch \ + file://disable-float-tests.patch \ + file://950-fix.patch \ + file://system-brotli.patch \ + " + +# tag 2.10.7 +SRCREV= "c4cef129e880a3f9c23a480e8c983793963173bb" + +S = "${WORKDIR}/git" + +inherit cmake |