diff --git a/net-libs/ixwebsocket/Manifest b/net-libs/ixwebsocket/Manifest new file mode 100644 index 0000000000..a2f68d56b8 --- /dev/null +++ b/net-libs/ixwebsocket/Manifest @@ -0,0 +1 @@ +DIST ixwebsocket-11.2.8.tar.gz 583075 BLAKE2B 014af74ec236a49b8bad574761e6d861348ef22f3cbda798862f87591c27c2ee8b94f740d534ed7f6fc0736ea2e06788c64a208dab65575aa815d40472c6c50d SHA512 7938c2b59b5f310afa1a0c94171dd55a4e8821ac0763feb11528d520f1d3bf1037bb8d53d31eec1952888f601f597c00c9490e15cfca7f9c3aa6d80614d7b1f5 diff --git a/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-remove-deflate.patch b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-remove-deflate.patch new file mode 100644 index 0000000000..fffedc6b77 --- /dev/null +++ b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-remove-deflate.patch @@ -0,0 +1,19 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 77d2f6b..665c35f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -206,14 +206,6 @@ if (USE_ZLIB) + target_compile_definitions(ixwebsocket PUBLIC IXWEBSOCKET_USE_ZLIB) + endif() + +-# brew install libdeflate +-find_package(Deflate) +-if (DEFLATE_FOUND) +- include_directories(${DEFLATE_INCLUDE_DIRS}) +- target_link_libraries(ixwebsocket ${DEFLATE_LIBRARIES}) +- target_compile_definitions(ixwebsocket PUBLIC IXWEBSOCKET_USE_DEFLATE) +-endif() +- + if (WIN32) + target_link_libraries(ixwebsocket wsock32 ws2_32 shlwapi) + add_definitions(-D_CRT_SECURE_NO_WARNINGS) diff --git a/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-remove-network-tests.patch b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-remove-network-tests.patch new file mode 100644 index 0000000000..a2d1360cb4 --- /dev/null +++ b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-remove-network-tests.patch @@ -0,0 +1,28 @@ +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 661aebb..bab73c7 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -11,15 +11,12 @@ option(USE_TLS "Add TLS support" ON) + + # Shared sources + set (TEST_TARGET_NAMES +- IXSocketTest + IXSocketConnectTest + IXWebSocketServerTest + IXWebSocketTestConnectionDisconnection + IXUrlParserTest +- IXHttpClientTest + IXUnityBuildsTest + IXHttpTest +- IXDNSLookupTest + IXWebSocketSubProtocolTest + # IXWebSocketBroadcastTest ## FIXME was depending on cobra / take a broadcast server from ws + IXStrCaseCompareTest +@@ -33,7 +30,6 @@ if (UNIX) + + # Fail on Windows in CI probably because the pathing is wrong and + # some resource files cannot be found +- IXHttpServerTest + IXWebSocketChatTest + ) + endif() diff --git a/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-use-gnuinstalldirs.patch b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-use-gnuinstalldirs.patch new file mode 100644 index 0000000000..a7e2b6ba8e --- /dev/null +++ b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-use-gnuinstalldirs.patch @@ -0,0 +1,34 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 77d2f6b..4c64106 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -238,23 +238,25 @@ if (CMAKE_CXX_COMPILER_ID MATCHES "MSVC") + target_compile_options(ixwebsocket PRIVATE /MP) + endif() + ++include(GNUInstallDirs) ++ + target_include_directories(ixwebsocket PUBLIC + $ +- $ ++ $ + ) + + set_target_properties(ixwebsocket PROPERTIES PUBLIC_HEADER "${IXWEBSOCKET_HEADERS}") + + install(TARGETS ixwebsocket + EXPORT ixwebsocket +- ARCHIVE DESTINATION lib +- PUBLIC_HEADER DESTINATION include/ixwebsocket/ ++ ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} ++ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ixwebsocket/ + ) + + install(EXPORT ixwebsocket + FILE ixwebsocket-config.cmake + NAMESPACE ixwebsocket:: +- DESTINATION lib/cmake/ixwebsocket) ++ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ixwebsocket) + + if (USE_WS OR USE_TEST) + include(FetchContent) diff --git a/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-use-system-spdlog.patch b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-use-system-spdlog.patch new file mode 100644 index 0000000000..ed329b41de --- /dev/null +++ b/net-libs/ixwebsocket/files/ixwebsocket-11.2.8-use-system-spdlog.patch @@ -0,0 +1,55 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 77d2f6b..86c7172 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -257,13 +257,9 @@ install(EXPORT ixwebsocket + DESTINATION lib/cmake/ixwebsocket) + + if (USE_WS OR USE_TEST) +- include(FetchContent) +- FetchContent_Declare(spdlog +- GIT_REPOSITORY "https://github.com/gabime/spdlog" +- GIT_TAG "v1.8.0" +- GIT_SHALLOW 1) +- +- FetchContent_MakeAvailable(spdlog) ++ find_package(spdlog REQUIRED) ++ find_package(fmt REQUIRED) ++ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DSPDLOG_FMT_EXTERNAL") + + if (USE_WS) + add_subdirectory(ws) +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 661aebb..ab0c92e 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -66,7 +66,7 @@ target_include_directories(ixwebsocket_test PRIVATE + ../third_party + ) + target_link_libraries(ixwebsocket_test ixwebsocket) +-target_link_libraries(ixwebsocket_test spdlog) ++target_link_libraries(ixwebsocket_test spdlog::spdlog fmt::fmt) + + foreach(TEST_TARGET_NAME ${TEST_TARGET_NAMES}) + add_executable(${TEST_TARGET_NAME} +@@ -89,7 +89,7 @@ foreach(TEST_TARGET_NAME ${TEST_TARGET_NAMES}) + target_link_libraries(${TEST_TARGET_NAME} ixwebsocket_test) + target_link_libraries(${TEST_TARGET_NAME} ixwebsocket) + +- target_link_libraries(${TEST_TARGET_NAME} spdlog) ++ target_link_libraries(${TEST_TARGET_NAME} spdlog fmt) + + add_test(NAME ${TEST_TARGET_NAME} + COMMAND ${TEST_TARGET_NAME} +diff --git a/ws/CMakeLists.txt b/ws/CMakeLists.txt +index 98f15de..10834e5 100644 +--- a/ws/CMakeLists.txt ++++ b/ws/CMakeLists.txt +@@ -31,6 +31,6 @@ add_executable(ws + # library with the most dependencies come first + target_link_libraries(ws ixwebsocket) + +-target_link_libraries(ws spdlog) ++target_link_libraries(ws spdlog::spdlog fmt::fmt) + + install(TARGETS ws RUNTIME DESTINATION bin) diff --git a/net-libs/ixwebsocket/ixwebsocket-11.2.8.ebuild b/net-libs/ixwebsocket/ixwebsocket-11.2.8.ebuild new file mode 100644 index 0000000000..43bcde9170 --- /dev/null +++ b/net-libs/ixwebsocket/ixwebsocket-11.2.8.ebuild @@ -0,0 +1,62 @@ +# Copyright 2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +inherit cmake + +MY_P="IXWebSocket-${PV}" + +DESCRIPTION="C++ websocket client and server library" +HOMEPAGE="https://github.com/machinezone/IXWebSocket" +SRC_URI="https://github.com/machinezone/IXWebSocket/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="+ssl test zlib ws" + +DEPEND=" + sys-libs/zlib:= + + ws? ( + >=dev-libs/spdlog-1.8.0:= + ) + test? ( + >=dev-libs/spdlog-1.8.0:= + ) +" +RDEPEND=" + sys-libs/zlib:= +" +BDEPEND="" + +S="${WORKDIR}/${MY_P}" + +RESTRICT="!test? ( test )" + +PATCHES=( + # Upstream installs to hardcoded lib- and include-dirs + "${FILESDIR}/${P}-use-gnuinstalldirs.patch" + # Some tests require network connectivity + "${FILESDIR}/${P}-remove-network-tests.patch" + # Upstream uses git submodules + "${FILESDIR}/${P}-use-system-spdlog.patch" + # Upstream detects deflate dynamically, so let's remove it + "${FILESDIR}/${P}-remove-deflate.patch" +) + +src_configure() { + local mycmakeargs=( + -DUSE_TLS="$(usex ssl)" + -DUSE_ZLIB="$(usex zlib)" + -DUSE_WS="$(usex ws)" + -DUSE_TEST="$(usex test)" + ) + cmake_src_configure +} + +src_test() { + cd "${BUILD_DIR}" || die + ctest --output-on-failure || die +} diff --git a/net-libs/ixwebsocket/metadata.xml b/net-libs/ixwebsocket/metadata.xml new file mode 100644 index 0000000000..1d44d14fb7 --- /dev/null +++ b/net-libs/ixwebsocket/metadata.xml @@ -0,0 +1,11 @@ + + + + + Adrian Schollmeyer + nex+b-g-o@nexadn.de + + + Build the ws utility + +