From f2e53addee85fb94e1597b438ae65767efad6288 Mon Sep 17 00:00:00 2001 From: Nemirtingas <9432037+Nemirtingas@users.noreply.github.com> Date: Thu, 5 Aug 2021 12:09:16 +0200 Subject: [libdatachannel][libjuice] Update libdatachannel to 0.14.1 and libjuice to 0.8.4. (#19305) * Update libjuice and libdatachannel * Update libjuice * Update baseline * Update libdatachannel to 0.14.1 Fixes *-uwp. * Update baseline. * Fix nettle discovery * Fix usrsctp library path. * Fix libdatachannel not being built SHARED. * Update baseline. Co-authored-by: Nemirtingas --- ...XX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING.patch | 25 ----- ports/libdatachannel/fix-for-vcpkg.patch | 107 ++++++++------------- ports/libdatachannel/portfile.cmake | 7 +- ports/libdatachannel/vcpkg.json | 3 +- ports/libjuice/fix-for-vcpkg.patch | 55 ++--------- ports/libjuice/portfile.cmake | 4 +- ports/libjuice/vcpkg.json | 2 +- versions/baseline.json | 6 +- versions/l-/libdatachannel.json | 5 + versions/l-/libjuice.json | 5 + 10 files changed, 68 insertions(+), 151 deletions(-) delete mode 100644 ports/libdatachannel/CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING.patch diff --git a/ports/libdatachannel/CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING.patch b/ports/libdatachannel/CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING.patch deleted file mode 100644 index f41945c28..000000000 --- a/ports/libdatachannel/CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff --git a/include/rtc/utils.hpp b/include/rtc/utils.hpp -index f1a82acb..e882042c 100644 ---- a/include/rtc/utils.hpp -+++ b/include/rtc/utils.hpp -@@ -25,6 +25,7 @@ - #include - #include - #include -+#include - - namespace rtc { - -@@ -34,11 +35,10 @@ template overloaded(Ts...) -> overloaded; - // weak_ptr bind helper - template auto weak_bind(F &&f, T *t, Args &&..._args) { - return [bound = std::bind(f, t, _args...), weak_this = t->weak_from_this()](auto &&...args) { -- using result_type = typename decltype(bound)::result_type; - if (auto shared_this = weak_this.lock()) - return bound(args...); - else -- return static_cast(false); -+ return static_cast(false); - }; - } - diff --git a/ports/libdatachannel/fix-for-vcpkg.patch b/ports/libdatachannel/fix-for-vcpkg.patch index c86fef232..075b7baf2 100644 --- a/ports/libdatachannel/fix-for-vcpkg.patch +++ b/ports/libdatachannel/fix-for-vcpkg.patch @@ -1,15 +1,20 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 14c1ecc..1a46b84 100644 +index beb5000..d6c26cf 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -181,21 +181,10 @@ set(THREADS_PREFER_PTHREAD_FLAG TRUE) - find_package(Threads REQUIRED) +@@ -30,5 +30,4 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(CMAKE_POSITION_INDEPENDENT_CODE ON) + set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules) +-set(BUILD_SHARED_LIBS OFF) # to force usrsctp to be built static - set(CMAKE_POLICY_DEFAULT_CMP0048 NEW) --add_subdirectory(deps/plog) -+find_library(USRSCTP_LIBRARY usrsctp REQUIRED) -+find_path(PLOG_INCLUDE_DIRS "plog/Appenders/AndroidAppender.h") + if(WIN32) +@@ -196,22 +196,10 @@ set(CMAKE_THREAD_PREFER_PTHREAD TRUE) + set(THREADS_PREFER_PTHREAD_FLAG TRUE) + find_package(Threads REQUIRED) +-set(CMAKE_POLICY_DEFAULT_CMP0048 NEW) +-add_subdirectory(deps/plog EXCLUDE_FROM_ALL) +- -option(sctp_build_programs 0) -option(sctp_build_shared_lib 0) -set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) @@ -21,82 +26,46 @@ index 14c1ecc..1a46b84 100644 - target_compile_options(usrsctp PRIVATE -Wno-error=format-truncation) -endif() -add_library(Usrsctp::Usrsctp ALIAS usrsctp) -- ++find_library(USRSCTP_LIBRARY usrsctp REQUIRED) ++find_path(PLOG_INCLUDE_DIRS "plog/Appenders/AndroidAppender.h") + -add_library(datachannel SHARED +add_library(datachannel ${LIBDATACHANNEL_SOURCES} ${LIBDATACHANNEL_HEADERS} ${LIBDATACHANNEL_IMPL_SOURCES} -@@ -213,17 +202,17 @@ set_target_properties(datachannel-static PROPERTIES - VERSION ${PROJECT_VERSION} - CXX_STANDARD 17) - --target_include_directories(datachannel PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -+target_include_directories(datachannel PUBLIC $ $) +@@ -232,14 +220,16 @@ set_target_properties(datachannel-static PROPERTIES + target_include_directories(datachannel PUBLIC $) target_include_directories(datachannel PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc) target_include_directories(datachannel PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) --target_link_libraries(datachannel PUBLIC Threads::Threads plog::plog) --target_link_libraries(datachannel PRIVATE Usrsctp::Usrsctp) +target_include_directories(datachannel PRIVATE ${PLOG_INCLUDE_DIRS}) -+target_link_libraries(datachannel PUBLIC Threads::Threads ${USRSCTP_LIBRARY}) + target_link_libraries(datachannel PUBLIC Threads::Threads) +-target_link_libraries(datachannel PRIVATE Usrsctp::Usrsctp plog::plog) ++target_link_libraries(datachannel PRIVATE ${USRSCTP_LIBRARY}) target_include_directories(datachannel-static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) target_include_directories(datachannel-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/rtc) target_include_directories(datachannel-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) --target_link_libraries(datachannel-static PUBLIC Threads::Threads plog::plog) --target_link_libraries(datachannel-static PRIVATE Usrsctp::Usrsctp) -+target_include_directories(datachannel-static PRIVATE ${PLOG_INCLUDE_DIRS}) -+target_link_libraries(datachannel-static PUBLIC Threads::Threads ${USRSCTP_LIBRARY}) ++target_include_directories(datachannel PRIVATE ${PLOG_INCLUDE_DIRS}) + target_link_libraries(datachannel-static PUBLIC Threads::Threads) +-target_link_libraries(datachannel-static PRIVATE Usrsctp::Usrsctp plog::plog) ++target_link_libraries(datachannel-static PRIVATE ${USRSCTP_LIBRARY}) if(WIN32) target_link_libraries(datachannel PUBLIC ws2_32) # winsock2 -@@ -295,11 +284,11 @@ if (USE_NICE) - target_link_libraries(datachannel PRIVATE LibNice::LibNice) - target_link_libraries(datachannel-static PRIVATE LibNice::LibNice) - else() -- add_subdirectory(deps/libjuice EXCLUDE_FROM_ALL) -+ find_package(libjuice CONFIG REQUIRED) - target_compile_definitions(datachannel PRIVATE USE_NICE=0) - target_compile_definitions(datachannel-static PRIVATE USE_NICE=0) -- target_link_libraries(datachannel PRIVATE LibJuice::LibJuiceStatic) -- target_link_libraries(datachannel-static PRIVATE LibJuice::LibJuiceStatic) -+ target_link_libraries(datachannel PRIVATE LibJuice::juice) -+ target_link_libraries(datachannel-static PRIVATE LibJuice::juice) +@@ -334,11 +324,11 @@ else() + target_link_libraries(datachannel PRIVATE LibJuice::LibJuice) + target_link_libraries(datachannel-static PRIVATE LibJuice::LibJuice) + else() +- add_subdirectory(deps/libjuice EXCLUDE_FROM_ALL) ++ find_package(libjuice CONFIG REQUIRED) + target_compile_definitions(datachannel PRIVATE RTC_SYSTEM_JUICE=0) + target_compile_definitions(datachannel-static PRIVATE RTC_SYSTEM_JUICE=0) +- target_link_libraries(datachannel PRIVATE LibJuice::LibJuiceStatic) +- target_link_libraries(datachannel-static PRIVATE LibJuice::LibJuiceStatic) ++ target_link_libraries(datachannel PRIVATE LibJuice::juice) ++ target_link_libraries(datachannel-static PRIVATE LibJuice::juice) + endif() endif() - if(CAPI_STDCALL) -@@ -310,7 +299,11 @@ endif() - add_library(LibDataChannel::LibDataChannel ALIAS datachannel) - add_library(LibDataChannel::LibDataChannelStatic ALIAS datachannel-static) - --install(TARGETS datachannel LIBRARY DESTINATION lib) -+install(TARGETS datachannel EXPORT libdatachannel-config -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib -+) - install(FILES ${LIBDATACHANNEL_HEADERS} DESTINATION include/rtc) - - if(NOT MSVC) -@@ -374,3 +367,8 @@ endif() - add_subdirectory(examples/copy-paste-capi) - endif() - -+install( -+ EXPORT libdatachannel-config -+ NAMESPACE LibDatachannel:: -+ DESTINATION share/cmake/libdatachannel -+) -diff --git a/src/impl/tcptransport.hpp b/src/impl/tcptransport.hpp -index f091fa2..8bcfbe7 100644 ---- a/src/impl/tcptransport.hpp -+++ b/src/impl/tcptransport.hpp -@@ -29,7 +29,7 @@ - #include - - // Use the socket defines from libjuice --#include "../deps/libjuice/src/socket.h" -+#include - - namespace rtc::impl { - + diff --git a/ports/libdatachannel/portfile.cmake b/ports/libdatachannel/portfile.cmake index 4104d890a..902220a90 100644 --- a/ports/libdatachannel/portfile.cmake +++ b/ports/libdatachannel/portfile.cmake @@ -1,12 +1,11 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO paullouisageneau/libdatachannel - REF 655175d21e58281031c940a94042d5d1fd46efb3 # v 0.12.2 - SHA512 e1e228bf720ef57130fbb9cc33310cebbdbd16c001455cd56e8746b6ee41bac56da5e5a90235e0a826b52711dc3c95b9d9f56d9e406999f9fd384aee2892578d + REF v0.14.1 + SHA512 a0eb834eacdb5aef644fc4456b5087742aab37ac58e2871daa7ba2ac25cab4ddb530bd0a12cf5f4754c28749a2f59fc2fb3e2ae945b867cec8aaad22f4ac71c6 HEAD_REF master PATCHES fix-for-vcpkg.patch - CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING.patch # submitted upstream as https://github.com/paullouisageneau/libdatachannel/pull/413 ) vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS @@ -42,4 +41,4 @@ find_dependency(OpenSSL) find_dependency(libjuice) ${DATACHANNEL_CONFIG}") -file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) \ No newline at end of file +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) diff --git a/ports/libdatachannel/vcpkg.json b/ports/libdatachannel/vcpkg.json index 903b99403..d657a3841 100644 --- a/ports/libdatachannel/vcpkg.json +++ b/ports/libdatachannel/vcpkg.json @@ -1,7 +1,6 @@ { "name": "libdatachannel", - "version-semver": "0.12.2", - "port-version": 1, + "version-semver": "0.14.1", "description": "libdatachannel is a standalone implementation of WebRTC Data Channels, WebRTC Media Transport, and WebSockets in C++17 with C bindings for POSIX platforms (including GNU/Linux, Android, and Apple macOS) and Microsoft Windows.", "homepage": "https://github.com/paullouisageneau/libdatachannel", "dependencies": [ diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index 72ef83d0b..75ab492a0 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,68 +1,33 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 6142f91..cfdfa40 100644 +index aedb557..89c701b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -53,6 +53,9 @@ set(LIBJUICE_SOURCES - set(LIBJUICE_HEADERS - ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h - ) -+set(LIBJUICE_PRIVATE_HEADERS -+ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h -+) - - set(TESTS_SOURCES - ${CMAKE_CURRENT_SOURCE_DIR}/test/main.c -@@ -70,10 +73,10 @@ set(TESTS_SOURCES +@@ -72,7 +72,7 @@ set(TESTS_SOURCES set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -add_library(juice SHARED ${LIBJUICE_SOURCES}) +add_library(juice ${LIBJUICE_SOURCES}) set_target_properties(juice PROPERTIES VERSION ${PROJECT_VERSION}) + target_compile_definitions(juice PRIVATE $<$:RELEASE=1>) --target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -+target_include_directories(juice PUBLIC $ $) - target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) - target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) - target_link_libraries(juice PUBLIC Threads::Threads) -@@ -97,10 +100,14 @@ endif() +@@ -100,11 +100,15 @@ if(WIN32) + endif() if (USE_NETTLE) - find_package(Nettle REQUIRED) +- find_package(Nettle REQUIRED) + find_path(NETTLE_INCLUDE_PATH "nettle/hmac.h" REQUIRED) ++ find_library(NETTLE_LIBRARY_PATH NAMES nettle libnettle REQUIRED) + target_include_directories(juice PRIVATE ${NETTLE_INCLUDE_PATH}) + target_include_directories(juice-static PRIVATE ${NETTLE_INCLUDE_PATH}) + target_compile_definitions(juice PRIVATE USE_NETTLE=1) - target_link_libraries(juice PRIVATE Nettle::Nettle) -+ target_link_libraries(juice PRIVATE nettle) ++ target_link_libraries(juice PRIVATE ${NETTLE_LIBRARY_PATH}) target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) - target_link_libraries(juice-static PRIVATE Nettle::Nettle) -+ target_link_libraries(juice-static PRIVATE nettle) ++ target_link_libraries(juice-static PRIVATE ${NETTLE_LIBRARY_PATH}) else() target_compile_definitions(juice PRIVATE USE_NETTLE=0) target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) -@@ -125,8 +132,13 @@ endif() - add_library(LibJuice::LibJuice ALIAS juice) - add_library(LibJuice::LibJuiceStatic ALIAS juice-static) - --install(TARGETS juice LIBRARY DESTINATION lib) -+install(TARGETS juice EXPORT libjuice-config -+ RUNTIME DESTINATION bin -+ LIBRARY DESTINATION lib -+ ARCHIVE DESTINATION lib -+) - install(FILES ${LIBJUICE_HEADERS} DESTINATION include/juice) -+install(FILES ${LIBJUICE_PRIVATE_HEADERS} DESTINATION include/juice/src) - - if(NOT MSVC) - target_compile_options(juice PRIVATE -Wall -Wextra) -@@ -161,3 +173,8 @@ if(NOT NO_TESTS) - target_link_libraries(juice-tests juice) - endif() - -+install( -+ EXPORT libjuice-config -+ NAMESPACE LibJuice:: -+ DESTINATION share/cmake/libjuice -+) + diff --git a/ports/libjuice/portfile.cmake b/ports/libjuice/portfile.cmake index 16c83d189..bbe0d1db2 100644 --- a/ports/libjuice/portfile.cmake +++ b/ports/libjuice/portfile.cmake @@ -1,8 +1,8 @@ vcpkg_from_github( OUT_SOURCE_PATH SOURCE_PATH REPO paullouisageneau/libjuice - REF v0.7.1 - SHA512 4a8a8705d8ee5f6d242e4463e13fbd45ec86145bf17f9c4f755e60922166b3cb12773296fac34f02cbe4ac79f91d73f2bc6406445cfe9520bf09e10d1606bc7e + REF v0.8.4 + SHA512 c33fc237ff0acb6b9cb37143d1f5a22f20670c8e32200d79c45c8473e1b0e1174926706876a1c37a51ba9ec6ec935337fd87512211eaaf8652f73d4934038834 HEAD_REF master PATCHES fix-for-vcpkg.patch diff --git a/ports/libjuice/vcpkg.json b/ports/libjuice/vcpkg.json index 7aa06acb5..6ba94b4cc 100644 --- a/ports/libjuice/vcpkg.json +++ b/ports/libjuice/vcpkg.json @@ -1,6 +1,6 @@ { "name": "libjuice", - "version": "0.7.1", + "version": "0.8.4", "description": "The library is a simplified implementation of the Interactive Connectivity Establishment (ICE) protocol in C for POSIX platforms (including Linux and Apple macOS) and Microsoft Windows.", "homepage": "https://github.com/paullouisageneau/libjuice", "features": { diff --git a/versions/baseline.json b/versions/baseline.json index 39e52b6a1..e02e21b7b 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -3129,8 +3129,8 @@ "port-version": 0 }, "libdatachannel": { - "baseline": "0.12.2", - "port-version": 1 + "baseline": "0.14.1", + "port-version": 0 }, "libdatrie": { "baseline": "0.2.10-3", @@ -3317,7 +3317,7 @@ "port-version": 0 }, "libjuice": { - "baseline": "0.7.1", + "baseline": "0.8.4", "port-version": 0 }, "libkeyfinder": { diff --git a/versions/l-/libdatachannel.json b/versions/l-/libdatachannel.json index ea8a70416..7592d1161 100644 --- a/versions/l-/libdatachannel.json +++ b/versions/l-/libdatachannel.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "a58c126e0f1be88bc997210e63fe2e07cf64d1e5", + "version-semver": "0.14.1", + "port-version": 0 + }, { "git-tree": "a13526e9cfc5bfca3aa00e95afa184b498890f69", "version-semver": "0.12.2", diff --git a/versions/l-/libjuice.json b/versions/l-/libjuice.json index 04ae9e972..acff7a474 100644 --- a/versions/l-/libjuice.json +++ b/versions/l-/libjuice.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "077151e85bf11cabc11d0f1c46b778b5a21829dd", + "version": "0.8.4", + "port-version": 0 + }, { "git-tree": "42cecee2b8da92c2c8c120c09bd663b20f2c947a", "version": "0.7.1", -- cgit v1.2.3