From f4ebf02f1dba05e3d0b88887cffe29e689e5087a Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Thu, 24 Sep 2020 09:50:33 +0200 Subject: [PATCH 01/11] libjuice port --- ports/libjuice/CONTROL | 7 ++ ports/libjuice/fix-for-vcpkg.patch | 102 +++++++++++++++++++++++++++++ ports/libjuice/portfile.cmake | 33 ++++++++++ ports/libjuice/usage | 4 ++ 4 files changed, 146 insertions(+) create mode 100644 ports/libjuice/CONTROL create mode 100644 ports/libjuice/fix-for-vcpkg.patch create mode 100644 ports/libjuice/portfile.cmake create mode 100644 ports/libjuice/usage diff --git a/ports/libjuice/CONTROL b/ports/libjuice/CONTROL new file mode 100644 index 00000000000000..a8552cd26408dd --- /dev/null +++ b/ports/libjuice/CONTROL @@ -0,0 +1,7 @@ +Source: libjuice +Version: 0.4.6 +Port-Version: 1 +Build-Depends: openssl +Homepage: https://github.com/paullouisageneau/libjuice +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. +Default-Features: \ No newline at end of file diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch new file mode 100644 index 00000000000000..0956a6b723920d --- /dev/null +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -0,0 +1,102 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7e059c1..1aad4f4 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,11 @@ set(LIBJUICE_SOURCES + ) + + set(LIBJUICE_HEADERS +- ${CMAKE_CURRENT_SOURCE_DIR}/include/juice.h ++ ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h ++) ++ ++set(LIBJUICE_PRIVATE_HEADERS ++ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h + ) + + set(TESTS_SOURCES +@@ -56,75 +60,53 @@ find_package(Threads REQUIRED) + add_library(juice SHARED ${LIBJUICE_SOURCES}) + set_target_properties(juice PROPERTIES VERSION ${PROJECT_VERSION}) + +-target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) ++#target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) ++target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) + 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) + +-add_library(juice-static STATIC EXCLUDE_FROM_ALL ${LIBJUICE_SOURCES}) +-set_target_properties(juice-static PROPERTIES VERSION ${PROJECT_VERSION}) +- +-target_include_directories(juice-static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +-target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) +-target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) +-target_link_libraries(juice-static PUBLIC Threads::Threads) +- + if(WIN32) + target_link_libraries(juice PRIVATE wsock32 ws2_32) # winsock2 +- target_link_libraries(juice-static PRIVATE wsock32 ws2_32) # winsock2 + endif() + + if (USE_NETTLE) + find_package(Nettle REQUIRED) + target_compile_definitions(juice PRIVATE USE_NETTLE=1) + target_link_libraries(juice PRIVATE Nettle::Nettle) +- target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) +- target_link_libraries(juice-static PRIVATE Nettle::Nettle) + else() + find_package(OpenSSL REQUIRED) + target_compile_definitions(juice PRIVATE USE_NETTLE=0) + target_link_libraries(juice PRIVATE OpenSSL::SSL) +- target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) +- target_link_libraries(juice-static PRIVATE OpenSSL::SSL) + endif() + + if (NO_ATOMICS) + target_compile_definitions(juice PRIVATE NO_ATOMICS) +- target_compile_definitions(juice-static PRIVATE NO_ATOMICS) + endif() + + if(APPLE) + # This seems to be necessary on MacOS + target_include_directories(juice PRIVATE /usr/local/include) +- target_include_directories(juice-static PRIVATE /usr/local/include) + 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 LIBRARY 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) +- target_compile_options(juice-static PRIVATE -Wall -Wextra) + endif() + + if(WARNINGS_AS_ERRORS) + if(MSVC) + target_compile_options(juice PRIVATE /WX) +- target_compile_options(juice-static PRIVATE /WX) + else() + target_compile_options(juice PRIVATE -Werror) +- target_compile_options(juice-static PRIVATE -Werror) + endif() + endif() + +-# Main Test +-add_executable(juice-tests ${TESTS_SOURCES}) +-target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) +-target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) +-set_target_properties(juice-tests PROPERTIES VERSION ${PROJECT_VERSION}) +-set_target_properties(juice-tests PROPERTIES OUTPUT_NAME tests) +-target_link_libraries(juice-tests juice) +- ++install( ++ EXPORT libjuice-config ++ NAMESPACE LibJuice:: ++ DESTINATION share/cmake/libjuice ++) diff --git a/ports/libjuice/portfile.cmake b/ports/libjuice/portfile.cmake new file mode 100644 index 00000000000000..ddc00b0337682f --- /dev/null +++ b/ports/libjuice/portfile.cmake @@ -0,0 +1,33 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO paullouisageneau/libjuice + REF v0.4.6 + SHA512 621756116f36a0506fa2755d8baf4df2908a1b2955fe8fab60d5c2f58a5b98389dd5518acc4ab9b998b6f7c1499a19796ddf11eda320473b2c81f69353b05a8f + HEAD_REF master + PATCHES + fix-for-vcpkg.patch +) + +vcpkg_configure_cmake( + SOURCE_PATH ${SOURCE_PATH} + PREFER_NINJA + OPTIONS + #-DENABLE_DEBUG=ON +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + set(FILE "${SOURCE_PATH}/CMakeLists.txt") + file(READ ${FILE} _contents) + string(REPLACE "add_library(juice SHARED" "add_library(juice STATIC" _contents "${_contents}") + file(WRITE ${FILE} "${_contents}") +endif() + +vcpkg_install_cmake() + +file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") + +vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/libjuice) +vcpkg_fixup_pkgconfig() + +file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) \ No newline at end of file diff --git a/ports/libjuice/usage b/ports/libjuice/usage new file mode 100644 index 00000000000000..c65bbf2719bf10 --- /dev/null +++ b/ports/libjuice/usage @@ -0,0 +1,4 @@ +The package libjuice is compatible with built-in CMake targets: + + find_package(libjuice CONFIG REQUIRED) + target_link_libraries(main PRIVATE LibJuice::juice) \ No newline at end of file From a3cd2670a1fbc92796bde7287d6677b1fa9c82b9 Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Fri, 25 Sep 2020 11:35:13 +0200 Subject: [PATCH 02/11] Various fix from pr. --- ports/libjuice/CONTROL | 13 +- ports/libjuice/fix-for-vcpkg.patch | 215 +++++++++++++++-------------- ports/libjuice/portfile.cmake | 8 +- ports/libjuice/usage | 4 - scripts/ci.baseline.txt | 3 + 5 files changed, 132 insertions(+), 111 deletions(-) delete mode 100644 ports/libjuice/usage diff --git a/ports/libjuice/CONTROL b/ports/libjuice/CONTROL index a8552cd26408dd..402b4384ad7bda 100644 --- a/ports/libjuice/CONTROL +++ b/ports/libjuice/CONTROL @@ -1,7 +1,14 @@ Source: libjuice Version: 0.4.6 -Port-Version: 1 -Build-Depends: openssl Homepage: https://github.com/paullouisageneau/libjuice 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. -Default-Features: \ No newline at end of file +Default-Features: openssl + +Feature: openssl +Build-Depends: openssl +Description: Use openssl for HMAC computation + +Feature: nettle +Build-Depends: nettle +Description: Use nettle for HMAC computation instead of OpenSSL + diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index 0956a6b723920d..e12c6e3c3499d7 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,102 +1,113 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7e059c1..1aad4f4 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -38,7 +38,11 @@ set(LIBJUICE_SOURCES - ) - - set(LIBJUICE_HEADERS -- ${CMAKE_CURRENT_SOURCE_DIR}/include/juice.h -+ ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h -+) -+ -+set(LIBJUICE_PRIVATE_HEADERS -+ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h - ) - - set(TESTS_SOURCES -@@ -56,75 +60,53 @@ find_package(Threads REQUIRED) - add_library(juice SHARED ${LIBJUICE_SOURCES}) - set_target_properties(juice PROPERTIES VERSION ${PROJECT_VERSION}) - --target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -+#target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -+target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) - 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) - --add_library(juice-static STATIC EXCLUDE_FROM_ALL ${LIBJUICE_SOURCES}) --set_target_properties(juice-static PROPERTIES VERSION ${PROJECT_VERSION}) -- --target_include_directories(juice-static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) --target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) --target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) --target_link_libraries(juice-static PUBLIC Threads::Threads) -- - if(WIN32) - target_link_libraries(juice PRIVATE wsock32 ws2_32) # winsock2 -- target_link_libraries(juice-static PRIVATE wsock32 ws2_32) # winsock2 - endif() - - if (USE_NETTLE) - find_package(Nettle REQUIRED) - target_compile_definitions(juice PRIVATE USE_NETTLE=1) - target_link_libraries(juice PRIVATE Nettle::Nettle) -- target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) -- target_link_libraries(juice-static PRIVATE Nettle::Nettle) - else() - find_package(OpenSSL REQUIRED) - target_compile_definitions(juice PRIVATE USE_NETTLE=0) - target_link_libraries(juice PRIVATE OpenSSL::SSL) -- target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) -- target_link_libraries(juice-static PRIVATE OpenSSL::SSL) - endif() - - if (NO_ATOMICS) - target_compile_definitions(juice PRIVATE NO_ATOMICS) -- target_compile_definitions(juice-static PRIVATE NO_ATOMICS) - endif() - - if(APPLE) - # This seems to be necessary on MacOS - target_include_directories(juice PRIVATE /usr/local/include) -- target_include_directories(juice-static PRIVATE /usr/local/include) - 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 LIBRARY 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) -- target_compile_options(juice-static PRIVATE -Wall -Wextra) - endif() - - if(WARNINGS_AS_ERRORS) - if(MSVC) - target_compile_options(juice PRIVATE /WX) -- target_compile_options(juice-static PRIVATE /WX) - else() - target_compile_options(juice PRIVATE -Werror) -- target_compile_options(juice-static PRIVATE -Werror) - endif() - endif() - --# Main Test --add_executable(juice-tests ${TESTS_SOURCES}) --target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) --target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) --set_target_properties(juice-tests PROPERTIES VERSION ${PROJECT_VERSION}) --set_target_properties(juice-tests PROPERTIES OUTPUT_NAME tests) --target_link_libraries(juice-tests juice) -- -+install( -+ EXPORT libjuice-config -+ NAMESPACE LibJuice:: -+ DESTINATION share/cmake/libjuice -+) +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7e059c1..2a082eb 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -38,7 +38,11 @@ set(LIBJUICE_SOURCES + ) + + set(LIBJUICE_HEADERS +- ${CMAKE_CURRENT_SOURCE_DIR}/include/juice.h ++ ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h ++) ++ ++set(LIBJUICE_PRIVATE_HEADERS ++ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h + ) + + set(TESTS_SOURCES +@@ -53,78 +57,63 @@ set(TESTS_SOURCES + set(THREADS_PREFER_PTHREAD_FLAG ON) + find_package(Threads REQUIRED) + +-add_library(juice SHARED ${LIBJUICE_SOURCES}) ++if(BUILD_SHARED_LIBS) ++ add_library(juice SHARED ${LIBJUICE_SOURCES}) ++else() ++ add_library(juice STATIC ${LIBJUICE_SOURCES}) ++endif() + set_target_properties(juice PROPERTIES VERSION ${PROJECT_VERSION}) + +-target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) ++target_include_directories(juice PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include) + 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) + +-add_library(juice-static STATIC EXCLUDE_FROM_ALL ${LIBJUICE_SOURCES}) +-set_target_properties(juice-static PROPERTIES VERSION ${PROJECT_VERSION}) +- +-target_include_directories(juice-static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) +-target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) +-target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) +-target_link_libraries(juice-static PUBLIC Threads::Threads) +- + if(WIN32) + target_link_libraries(juice PRIVATE wsock32 ws2_32) # winsock2 +- target_link_libraries(juice-static PRIVATE wsock32 ws2_32) # winsock2 + endif() + + if (USE_NETTLE) + find_package(Nettle REQUIRED) + target_compile_definitions(juice PRIVATE USE_NETTLE=1) + target_link_libraries(juice PRIVATE Nettle::Nettle) +- target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) +- target_link_libraries(juice-static PRIVATE Nettle::Nettle) + else() + find_package(OpenSSL REQUIRED) + target_compile_definitions(juice PRIVATE USE_NETTLE=0) + target_link_libraries(juice PRIVATE OpenSSL::SSL) +- target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) +- target_link_libraries(juice-static PRIVATE OpenSSL::SSL) + endif() + + if (NO_ATOMICS) + target_compile_definitions(juice PRIVATE NO_ATOMICS) +- target_compile_definitions(juice-static PRIVATE NO_ATOMICS) + endif() + + if(APPLE) + # This seems to be necessary on MacOS + target_include_directories(juice PRIVATE /usr/local/include) +- target_include_directories(juice-static PRIVATE /usr/local/include) + 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) +- target_compile_options(juice-static PRIVATE -Wall -Wextra) + endif() + + if(WARNINGS_AS_ERRORS) + if(MSVC) + target_compile_options(juice PRIVATE /WX) +- target_compile_options(juice-static PRIVATE /WX) + else() + target_compile_options(juice PRIVATE -Werror) +- target_compile_options(juice-static PRIVATE -Werror) + endif() + endif() + +-# Main Test +-add_executable(juice-tests ${TESTS_SOURCES}) +-target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) +-target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) +-set_target_properties(juice-tests PROPERTIES VERSION ${PROJECT_VERSION}) +-set_target_properties(juice-tests PROPERTIES OUTPUT_NAME tests) +-target_link_libraries(juice-tests juice) +- ++install( ++ EXPORT libjuice-config ++ NAMESPACE LibJuice:: ++ DESTINATION share/cmake/libjuice ++) diff --git a/ports/libjuice/portfile.cmake b/ports/libjuice/portfile.cmake index ddc00b0337682f..5834e2a415c084 100644 --- a/ports/libjuice/portfile.cmake +++ b/ports/libjuice/portfile.cmake @@ -8,11 +8,16 @@ vcpkg_from_github( fix-for-vcpkg.patch ) +vcpkg_check_features(OUT_FEATURE_OPTIONS FEATURE_OPTIONS + FEATURES + nettle USE_NETTLE +) + vcpkg_configure_cmake( SOURCE_PATH ${SOURCE_PATH} PREFER_NINJA OPTIONS - #-DENABLE_DEBUG=ON + ${FEATURE_OPTIONS} ) if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") @@ -30,4 +35,3 @@ vcpkg_fixup_cmake_targets(CONFIG_PATH share/cmake/libjuice) vcpkg_fixup_pkgconfig() file(INSTALL ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) -file(COPY ${CMAKE_CURRENT_LIST_DIR}/usage DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}) \ No newline at end of file diff --git a/ports/libjuice/usage b/ports/libjuice/usage deleted file mode 100644 index c65bbf2719bf10..00000000000000 --- a/ports/libjuice/usage +++ /dev/null @@ -1,4 +0,0 @@ -The package libjuice is compatible with built-in CMake targets: - - find_package(libjuice CONFIG REQUIRED) - target_link_libraries(main PRIVATE LibJuice::juice) \ No newline at end of file diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index 114b12d468165b..d8f9efe269f560 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1884,3 +1884,6 @@ clapack:x86-windows=skip clapack:x64-uwp=skip lapack-reference:arm64-windows=skip lapack-reference:arm-uwp=skip + +libjuice:arm-uwp=fail +libjuice:x64-uwp=fail From 5f7ba072ff95fd375bd1a5dc0c3e721ae1a3db6f Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Fri, 25 Sep 2020 12:06:39 +0200 Subject: [PATCH 03/11] Remove unused code --- ports/libjuice/portfile.cmake | 7 ------- 1 file changed, 7 deletions(-) diff --git a/ports/libjuice/portfile.cmake b/ports/libjuice/portfile.cmake index 5834e2a415c084..dfd2a386c61c3f 100644 --- a/ports/libjuice/portfile.cmake +++ b/ports/libjuice/portfile.cmake @@ -20,13 +20,6 @@ vcpkg_configure_cmake( ${FEATURE_OPTIONS} ) -if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - set(FILE "${SOURCE_PATH}/CMakeLists.txt") - file(READ ${FILE} _contents) - string(REPLACE "add_library(juice SHARED" "add_library(juice STATIC" _contents "${_contents}") - file(WRITE ${FILE} "${_contents}") -endif() - vcpkg_install_cmake() file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include") From 1aca81c8e38b7cca5e417166d16c910f4fd4948c Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Thu, 1 Oct 2020 07:22:06 +0200 Subject: [PATCH 04/11] Update to v0.5.2 --- ports/libjuice/CONTROL | 9 ++------ ports/libjuice/fix-for-vcpkg.patch | 33 ++++++------------------------ ports/libjuice/portfile.cmake | 5 +++-- 3 files changed, 11 insertions(+), 36 deletions(-) diff --git a/ports/libjuice/CONTROL b/ports/libjuice/CONTROL index 402b4384ad7bda..d8dbfc4c95fc16 100644 --- a/ports/libjuice/CONTROL +++ b/ports/libjuice/CONTROL @@ -1,14 +1,9 @@ Source: libjuice -Version: 0.4.6 +Version: 0.5.2 Homepage: https://github.com/paullouisageneau/libjuice 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. -Default-Features: openssl - -Feature: openssl -Build-Depends: openssl -Description: Use openssl for HMAC computation Feature: nettle Build-Depends: nettle -Description: Use nettle for HMAC computation instead of OpenSSL +Description: Use nettle for HMAC computation instead of the Builtin diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index e12c6e3c3499d7..b24e73cc35c19b 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,21 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 7e059c1..2a082eb 100644 +index be72a2a..faae908 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -38,7 +38,11 @@ set(LIBJUICE_SOURCES - ) - - set(LIBJUICE_HEADERS -- ${CMAKE_CURRENT_SOURCE_DIR}/include/juice.h -+ ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h -+) -+ -+set(LIBJUICE_PRIVATE_HEADERS -+ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h - ) - - set(TESTS_SOURCES -@@ -53,78 +57,63 @@ set(TESTS_SOURCES +@@ -54,67 +54,55 @@ set(TESTS_SOURCES set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) @@ -53,11 +40,8 @@ index 7e059c1..2a082eb 100644 - target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) - target_link_libraries(juice-static PRIVATE Nettle::Nettle) else() - find_package(OpenSSL REQUIRED) target_compile_definitions(juice PRIVATE USE_NETTLE=0) - target_link_libraries(juice PRIVATE OpenSSL::SSL) - target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) -- target_link_libraries(juice-static PRIVATE OpenSSL::SSL) endif() if (NO_ATOMICS) @@ -81,7 +65,6 @@ index 7e059c1..2a082eb 100644 + 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) @@ -98,14 +81,10 @@ index 7e059c1..2a082eb 100644 endif() endif() --# Main Test --add_executable(juice-tests ${TESTS_SOURCES}) --target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) --target_include_directories(juice-tests PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) --set_target_properties(juice-tests PROPERTIES VERSION ${PROJECT_VERSION}) --set_target_properties(juice-tests PROPERTIES OUTPUT_NAME tests) --target_link_libraries(juice-tests juice) -- +@@ -128,3 +116,8 @@ if(NOT NO_TESTS) + target_link_libraries(juice-tests juice) + endif() + +install( + EXPORT libjuice-config + NAMESPACE LibJuice:: diff --git a/ports/libjuice/portfile.cmake b/ports/libjuice/portfile.cmake index dfd2a386c61c3f..104f84de90ea95 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.4.6 - SHA512 621756116f36a0506fa2755d8baf4df2908a1b2955fe8fab60d5c2f58a5b98389dd5518acc4ab9b998b6f7c1499a19796ddf11eda320473b2c81f69353b05a8f + REF v0.5.2 + SHA512 c96bf8d26a8f760ed0593d0e150a6dc410490daf8bab6c1f0abcce6082fbd71886ff6f966dc7031c1cb9c83ebd6e9dd5de9f61492f4265410a50465924b37027 HEAD_REF master PATCHES fix-for-vcpkg.patch @@ -18,6 +18,7 @@ vcpkg_configure_cmake( PREFER_NINJA OPTIONS ${FEATURE_OPTIONS} + -DNO_TESTS=ON ) vcpkg_install_cmake() From 93465e65ef809f587a2a8566dd7b752849564e2b Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Thu, 1 Oct 2020 08:09:42 +0200 Subject: [PATCH 05/11] Add the private include file for datachannel --- ports/libjuice/fix-for-vcpkg.patch | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index b24e73cc35c19b..1eb210ca3321b3 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,8 +1,18 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index be72a2a..faae908 100644 +index be72a2a..9221da9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -54,67 +54,55 @@ set(TESTS_SOURCES +@@ -41,6 +41,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 +@@ -54,67 +57,56 @@ set(TESTS_SOURCES set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) @@ -65,6 +75,7 @@ index be72a2a..faae908 100644 + 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) @@ -81,7 +92,7 @@ index be72a2a..faae908 100644 endif() endif() -@@ -128,3 +116,8 @@ if(NOT NO_TESTS) +@@ -128,3 +120,8 @@ if(NOT NO_TESTS) target_link_libraries(juice-tests juice) endif() From de486690925871d95f2040c60c1b6db2868aed0c Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Wed, 7 Oct 2020 10:30:25 +0200 Subject: [PATCH 06/11] Smaller patch for vcpkg --- ports/libjuice/fix-for-vcpkg.patch | 70 ++++-------------------------- 1 file changed, 9 insertions(+), 61 deletions(-) diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index 1eb210ca3321b3..3f9d24e0a32682 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index be72a2a..9221da9 100644 +index be72a2a..299fee5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,9 @@ set(LIBJUICE_SOURCES @@ -7,67 +7,28 @@ index be72a2a..9221da9 100644 ${CMAKE_CURRENT_SOURCE_DIR}/include/juice/juice.h ) +set(LIBJUICE_PRIVATE_HEADERS -+ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h ++ ${CMAKE_CURRENT_SOURCE_DIR}/src/socket.h +) set(TESTS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/test/main.c -@@ -54,67 +57,56 @@ set(TESTS_SOURCES +@@ -54,10 +57,10 @@ set(TESTS_SOURCES set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED) -add_library(juice SHARED ${LIBJUICE_SOURCES}) -+if(BUILD_SHARED_LIBS) -+ add_library(juice SHARED ${LIBJUICE_SOURCES}) -+else() -+ add_library(juice STATIC ${LIBJUICE_SOURCES}) -+endif() ++add_library(juice ${LIBJUICE_SOURCES}) set_target_properties(juice PROPERTIES VERSION ${PROJECT_VERSION}) -target_include_directories(juice PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) -+target_include_directories(juice PRIVATE ${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) +@@ -100,8 +103,13 @@ endif() + add_library(LibJuice::LibJuice ALIAS juice) + add_library(LibJuice::LibJuiceStatic ALIAS juice-static) --add_library(juice-static STATIC EXCLUDE_FROM_ALL ${LIBJUICE_SOURCES}) --set_target_properties(juice-static PROPERTIES VERSION ${PROJECT_VERSION}) -- --target_include_directories(juice-static PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include) --target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/juice) --target_include_directories(juice-static PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src) --target_link_libraries(juice-static PUBLIC Threads::Threads) -- - if(WIN32) - target_link_libraries(juice PRIVATE wsock32 ws2_32) # winsock2 -- target_link_libraries(juice-static PRIVATE wsock32 ws2_32) # winsock2 - endif() - - if (USE_NETTLE) - find_package(Nettle REQUIRED) - target_compile_definitions(juice PRIVATE USE_NETTLE=1) - target_link_libraries(juice PRIVATE Nettle::Nettle) -- target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) -- target_link_libraries(juice-static PRIVATE Nettle::Nettle) - else() - target_compile_definitions(juice PRIVATE USE_NETTLE=0) -- target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) - endif() - - if (NO_ATOMICS) - target_compile_definitions(juice PRIVATE NO_ATOMICS) -- target_compile_definitions(juice-static PRIVATE NO_ATOMICS) - endif() - - if(APPLE) - # This seems to be necessary on MacOS - target_include_directories(juice PRIVATE /usr/local/include) -- target_include_directories(juice-static PRIVATE /usr/local/include) - 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 @@ -79,20 +40,7 @@ index be72a2a..9221da9 100644 if(NOT MSVC) target_compile_options(juice PRIVATE -Wall -Wextra) -- target_compile_options(juice-static PRIVATE -Wall -Wextra) - endif() - - if(WARNINGS_AS_ERRORS) - if(MSVC) - target_compile_options(juice PRIVATE /WX) -- target_compile_options(juice-static PRIVATE /WX) - else() - target_compile_options(juice PRIVATE -Werror) -- target_compile_options(juice-static PRIVATE -Werror) - endif() - endif() - -@@ -128,3 +120,8 @@ if(NOT NO_TESTS) +@@ -128,3 +136,8 @@ if(NOT NO_TESTS) target_link_libraries(juice-tests juice) endif() From e4c9e86d52e3dccb934d4eb2add66e07d11e468d Mon Sep 17 00:00:00 2001 From: Nemirtingas <9432037+Nemirtingas@users.noreply.github.com> Date: Fri, 9 Oct 2020 11:09:37 +0200 Subject: [PATCH 07/11] Update ports/libjuice/CONTROL Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> --- ports/libjuice/CONTROL | 1 - 1 file changed, 1 deletion(-) diff --git a/ports/libjuice/CONTROL b/ports/libjuice/CONTROL index d8dbfc4c95fc16..5901d8d74fa9c6 100644 --- a/ports/libjuice/CONTROL +++ b/ports/libjuice/CONTROL @@ -6,4 +6,3 @@ Description: The library is a simplified implementation of the Interactive Conne Feature: nettle Build-Depends: nettle Description: Use nettle for HMAC computation instead of the Builtin - From 85b76528f62f102df0d25963d075b96eb66cb767 Mon Sep 17 00:00:00 2001 From: Nemirtingas <9432037+Nemirtingas@users.noreply.github.com> Date: Fri, 9 Oct 2020 11:09:50 +0200 Subject: [PATCH 08/11] Update scripts/ci.baseline.txt Co-authored-by: NancyLi1013 <46708020+NancyLi1013@users.noreply.github.com> --- scripts/ci.baseline.txt | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/ci.baseline.txt b/scripts/ci.baseline.txt index d8f9efe269f560..114b12d468165b 100644 --- a/scripts/ci.baseline.txt +++ b/scripts/ci.baseline.txt @@ -1884,6 +1884,3 @@ clapack:x86-windows=skip clapack:x64-uwp=skip lapack-reference:arm64-windows=skip lapack-reference:arm-uwp=skip - -libjuice:arm-uwp=fail -libjuice:x64-uwp=fail From b4891672b984919e491b27ca4acce2a2e18b93f7 Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Tue, 13 Oct 2020 12:42:49 +0200 Subject: [PATCH 09/11] Update libjuice to support uwp ? --- ports/libjuice/portfile.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ports/libjuice/portfile.cmake b/ports/libjuice/portfile.cmake index 104f84de90ea95..68770243fe566d 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.5.2 - SHA512 c96bf8d26a8f760ed0593d0e150a6dc410490daf8bab6c1f0abcce6082fbd71886ff6f966dc7031c1cb9c83ebd6e9dd5de9f61492f4265410a50465924b37027 + REF 92fc9e7a9d8cd19a5c5d59cbc0a11cc9f684483b + SHA512 80e9898c51bc98a60ca317030bc5394fda412c2bc822adc656f88bfa60b42501d4945a8692771afb8241ec7994fbe48c3e8360f919a0859cfb47288fd3292dd4 HEAD_REF master PATCHES fix-for-vcpkg.patch From 0118824fb44bc14e1844dbb8517ca6350aeed852 Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Wed, 14 Oct 2020 04:52:59 +0200 Subject: [PATCH 10/11] Add nettle include path --- ports/libjuice/fix-for-vcpkg.patch | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index 3f9d24e0a32682..07b75a9a96413e 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index be72a2a..299fee5 100644 +index be72a2a..b4ab395 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,9 @@ set(LIBJUICE_SOURCES @@ -25,7 +25,18 @@ index be72a2a..299fee5 100644 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) -@@ -100,8 +103,13 @@ endif() +@@ -77,6 +80,10 @@ endif() + + if (USE_NETTLE) + find_package(Nettle REQUIRED) ++ find_path(NETTLE_INCLUDE_PATH "nettle/hmac.h" 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_compile_definitions(juice-static PRIVATE USE_NETTLE=1) +@@ -100,8 +107,13 @@ endif() add_library(LibJuice::LibJuice ALIAS juice) add_library(LibJuice::LibJuiceStatic ALIAS juice-static) @@ -40,7 +51,7 @@ index be72a2a..299fee5 100644 if(NOT MSVC) target_compile_options(juice PRIVATE -Wall -Wextra) -@@ -128,3 +136,8 @@ if(NOT NO_TESTS) +@@ -128,3 +140,8 @@ if(NOT NO_TESTS) target_link_libraries(juice-tests juice) endif() From c6aa8805a039d056c6282251cc5cb2e2a3ef9681 Mon Sep 17 00:00:00 2001 From: Nemirtingas Date: Wed, 14 Oct 2020 11:30:24 +0200 Subject: [PATCH 11/11] Fix the nettle library name --- ports/libjuice/fix-for-vcpkg.patch | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/ports/libjuice/fix-for-vcpkg.patch b/ports/libjuice/fix-for-vcpkg.patch index 07b75a9a96413e..6bbfd837f05b78 100644 --- a/ports/libjuice/fix-for-vcpkg.patch +++ b/ports/libjuice/fix-for-vcpkg.patch @@ -1,5 +1,5 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index be72a2a..b4ab395 100644 +index be72a2a..8a631e8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,9 @@ set(LIBJUICE_SOURCES @@ -25,17 +25,23 @@ index be72a2a..b4ab395 100644 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) -@@ -77,6 +80,10 @@ endif() +@@ -77,10 +80,14 @@ endif() if (USE_NETTLE) find_package(Nettle REQUIRED) -+ find_path(NETTLE_INCLUDE_PATH "nettle/hmac.h" REQUIRED) ++ find_path(NETTLE_INCLUDE_PATH "nettle/hmac.h" 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::Nettle) ++ target_link_libraries(juice PRIVATE nettle) target_compile_definitions(juice-static PRIVATE USE_NETTLE=1) +- target_link_libraries(juice-static PRIVATE Nettle::Nettle) ++ target_link_libraries(juice-static PRIVATE nettle) + else() + target_compile_definitions(juice PRIVATE USE_NETTLE=0) + target_compile_definitions(juice-static PRIVATE USE_NETTLE=0) @@ -100,8 +107,13 @@ endif() add_library(LibJuice::LibJuice ALIAS juice) add_library(LibJuice::LibJuiceStatic ALIAS juice-static)