commit:     7c5af05fefeba5081e616ef27362d2f080f909c9
Author:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
AuthorDate: Tue Apr 30 23:54:25 2024 +0000
Commit:     Aisha Tammy <gentoo <AT> aisha <DOT> cc>
CommitDate: Tue Apr 30 23:54:38 2024 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=7c5af05f

net-libs/usockets: update to 0.8.8

Signed-off-by: Aisha Tammy <gentoo <AT> aisha.cc>

 net-libs/usockets/Manifest                         |   1 +
 .../usockets/files/usockets-0.8.8-Makefile.patch   | 172 +++++++++++++++++++++
 .../files/usockets-0.8.8-hammer-test.patch         |  16 ++
 ...{usockets-9999.ebuild => usockets-0.8.8.ebuild} |  11 +-
 net-libs/usockets/usockets-9999.ebuild             |  11 +-
 5 files changed, 199 insertions(+), 12 deletions(-)

diff --git a/net-libs/usockets/Manifest b/net-libs/usockets/Manifest
index ff0b57d33f..c4055eecc2 100644
--- a/net-libs/usockets/Manifest
+++ b/net-libs/usockets/Manifest
@@ -1 +1,2 @@
 DIST usockets-0.8.1_p20211023.tar.gz 66346 BLAKE2B 
1833d1d3981fd5cf7f48794b183426341d7dd0b36654a528335c61a2495a59e54bad6f634ec14ccf8b33895091cc48306d7d7b90031888ba661a2db8019f30e9
 SHA512 
146c130731ac8f071f339e71c8cd45f319e837d333a36c6f578a2d7d9546267660ad0d3f82505d3f5d33b0494ec26b2d7b7eba3756d62ecc883b1afbf6c5bfb2
+DIST usockets-0.8.8.tar.gz 90860 BLAKE2B 
9a0886cf9446e67d8026419b353472d68f74045346c9e92b7ebb4f626580e1150ec555e6b56fbfad217ef38cc3b2c9d6148743033d0e42839eca998294393935
 SHA512 
726b1665209d0006d6621352c12019bbab22bed75450c5ef1509b409d3c19c059caf94775439d3b910676fa2a4a790d490c3e25e5b8141423d88823642be7ac7

diff --git a/net-libs/usockets/files/usockets-0.8.8-Makefile.patch 
b/net-libs/usockets/files/usockets-0.8.8-Makefile.patch
new file mode 100644
index 0000000000..6fe86246e4
--- /dev/null
+++ b/net-libs/usockets/files/usockets-0.8.8-Makefile.patch
@@ -0,0 +1,172 @@
+diff --git a/Makefile b/Makefile
+index aa874b9..13f9b34 100644
+--- a/Makefile
++++ b/Makefile
+@@ -1,109 +1,90 @@
+-# By default we use LTO, but Windows does not support it
+-ifneq ($(WITH_LTO),0)
+-      override CFLAGS += -flto
+-endif
++VERSION ?=    0.0
+ 
+-# WITH_BORINGSSL=1 enables BoringSSL support, linked statically (preferred 
over OpenSSL)
+-# You need to call "make boringssl" before
+-ifeq ($(WITH_BORINGSSL),1)
+-      override CFLAGS += -Iboringssl/include -pthread -DLIBUS_USE_OPENSSL
+-      override LDFLAGS += -pthread boringssl/build/ssl/libssl.a 
boringssl/build/crypto/libcrypto.a -lstdc++
+-else
+-      # WITH_OPENSSL=1 enables OpenSSL 1.1+ support
+-      # For now we need to link with C++ for OpenSSL support, but should be 
removed with time
+-      ifeq ($(WITH_OPENSSL),1)
+-              override CFLAGS += -DLIBUS_USE_OPENSSL
+-              # With problems on macOS, make sure to pass needed LDFLAGS 
required to find these
+-              override LDFLAGS += -lssl -lcrypto -lstdc++
+-      else
+-              # WITH_WOLFSSL=1 enables WolfSSL 4.2.0 support (mutually 
exclusive with OpenSSL)
+-              ifeq ($(WITH_WOLFSSL),1)
+-                      # todo: change these
+-                      override CFLAGS += -DLIBUS_USE_WOLFSSL 
-I/usr/local/include
+-                      override LDFLAGS += -L/usr/local/lib -lwolfssl
+-              else
+-                      override CFLAGS += -DLIBUS_NO_SSL
+-              endif
+-      endif
+-endif
++PREFIX ?=     /usr
++LIB ?=                lib
++LIBDIR ?=     $(PREFIX)/$(LIB)
++INCDIR ?=     $(PREFIX)/include
+ 
+-# WITH_IO_URING=1 builds with io_uring as event-loop and network 
implementation
+-ifeq ($(WITH_IO_URING),1)
+-      override CFLAGS += -DLIBUS_USE_IO_URING
+-      # override LDFLAGS += -l
++PKG_CONFIG ?= pkg-config
++
++LIBTARGET =   libusockets.so
++LIBTARGETV =  $(LIBTARGET).$(VERSION)
++
++REQUIRES =
++COMMON_FLAGS =        -fPIC -Isrc
++
++# WITH_OPENSSL=1 enables OpenSSL 1.1+ support or BoringSSL
++# For now we need to link with C++ for OpenSSL support, but should be removed 
with time
++ifeq ($(WITH_OPENSSL),1)
++COMMON_FLAGS +=       -DLIBUS_USE_OPENSSL
++REQUIRES +=   libssl libcrypto
+ endif
+ 
+ # WITH_LIBUV=1 builds with libuv as event-loop
+ ifeq ($(WITH_LIBUV),1)
+-      override CFLAGS += -DLIBUS_USE_LIBUV
+-      override LDFLAGS += -luv
+-endif
+-
+-# WITH_ASIO builds with boot asio event-loop
+-ifeq ($(WITH_ASIO),1)
+-      override CFLAGS += -DLIBUS_USE_ASIO
+-      override LDFLAGS += -lstdc++ -lpthread
+-      override CXXFLAGS += -pthread -DLIBUS_USE_ASIO
++COMMON_FLAGS +=       -DLIBUS_USE_LIBUV
++REQUIRES +=   libuv
+ endif
+ 
+-# WITH_GCD=1 builds with libdispatch as event-loop
+-ifeq ($(WITH_GCD),1)
+-      override CFLAGS += -DLIBUS_USE_GCD
+-      override LDFLAGS += -framework CoreFoundation
++# WITH_IO_URING=1 builds with io_uring as event-loop and network 
implementation
++ifeq ($(WITH_IO_URING),1)
++COMMON_FLAGS +=       -DLIBUS_USE_IO_URING
++REQUIRES +=   liburing
+ endif
+ 
+-# WITH_ASAN builds with sanitizers
+-ifeq ($(WITH_ASAN),1)
+-      override CFLAGS += -fsanitize=address -g
+-      override LDFLAGS += -fsanitize=address
++# WITH_ASIO=1 builds with boost asio event-loop
++ifeq ($(WITH_ASIO),1)
++COMMON_FLAGS +=       -pthread -DLIBUS_USE_ASIO
+ endif
+ 
+ ifeq ($(WITH_QUIC),1)
+-      override CFLAGS += -DLIBUS_USE_QUIC -pthread -std=c11 -Isrc 
-Ilsquic/include
+-      override LDFLAGS += -pthread -lz -lm uSockets.a 
lsquic/src/liblsquic/liblsquic.a
+-else
+-      override CFLAGS += -std=c11 -Isrc
+-      override LDFLAGS += uSockets.a
++override CFLAGS += -DLIBUS_USE_QUIC -pthread -std=c11 -Isrc -Ilsquic/include
++override LDFLAGS += -pthread -lz -lm uSockets.a 
lsquic/src/liblsquic/liblsquic.a
+ endif
+ 
+-# Also link liburing for io_uring support
+-ifeq ($(WITH_IO_URING),1)
+-      override LDFLAGS += /usr/lib/liburing.a
+-endif
++CFLAGS +=     -std=c11 $(COMMON_FLAGS)
++CXXFLAGS +=   -std=c++17 $(COMMON_FLAGS)
++
+ 
+-# By default we build the uSockets.a static library
+ default:
+-      rm -f *.o
+-      $(CC) $(CFLAGS) -O3 -c src/*.c src/eventing/*.c src/crypto/*.c 
src/io_uring/*.c
+-# Also link in Boost Asio support
++      $(CC) $(CFLAGS) -c src/*.c src/eventing/*.c src/crypto/*.c
+ ifeq ($(WITH_ASIO),1)
+-      $(CXX) $(CXXFLAGS) -Isrc -std=c++14 -flto -O3 -c src/eventing/asio.cpp
++      $(CXX) $(CXXFLAGS) -c src/eventing/asio.cpp
+ endif
+-
+ # For now we do rely on C++17 for OpenSSL support but we will be porting this 
work to C11
+ ifeq ($(WITH_OPENSSL),1)
+-      $(CXX) $(CXXFLAGS) -std=c++17 -flto -O3 -c src/crypto/*.cpp
++      $(CXX) $(CXXFLAGS) -c src/crypto/*.cpp
+ endif
+ ifeq ($(WITH_BORINGSSL),1)
+       $(CXX) $(CXXFLAGS) -std=c++17 -flto -O3 -c src/crypto/*.cpp
+ endif
+-# Create a static library (try windows, then unix)
+-      lib.exe /out:uSockets.a *.o || $(AR) rvs uSockets.a *.o
++      $(AR) rvs libusockets.a *.o
++      $(CXX) $(CXXFLAGS) -shared -o $(LIBTARGETV) *.o 
-Wl,-soname,$(LIBTARGET) `$(PKG_CONFIG) --libs $(REQUIRES)` $(LDFLAGS)
++      sed -e "s:@PREFIX@:$(PREFIX):" -e "s:@REQUIRES@:$(REQUIRES):" \
++      -e "s:@LIB@:$(LIB):" -e "s:@VERSION@:$(VERSION):" libusockets.pc.in > 
libusockets.pc
+ 
+-# BoringSSL needs cmake and golang
+-.PHONY: boringssl
+-boringssl:
+-      cd boringssl && mkdir -p build && cd build && cmake 
-DCMAKE_BUILD_TYPE=Release .. && make -j8
+ 
+-# Builds all examples
+-.PHONY: examples
+-examples: default
+-      for f in examples/*.c; do $(CC) -O3 $(CFLAGS) -o $$(basename "$$f" 
".c")$(EXEC_SUFFIX) "$$f" $(LDFLAGS); done
++install:
++      install -d "$(DESTDIR)$(LIBDIR)/pkgconfig" "$(DESTDIR)$(INCDIR)"
++      install -m 644 src/libusockets.h "$(DESTDIR)$(INCDIR)/"
++      install -m 644 $(LIBTARGETV) "$(DESTDIR)$(LIBDIR)"
++      ln -sf $(LIBTARGETV) "$(DESTDIR)$(LIBDIR)/$(LIBTARGET)"
++      install -m 644 libusockets.a "$(DESTDIR)$(LIBDIR)/"
++      install -m 644 libusockets.pc "$(DESTDIR)$(LIBDIR)/pkgconfig/"
++
++
++test:
++      rm -f localhost.pem localhost.crt
++      openssl req -x509 -out localhost.crt -keyout localhost.pem -newkey 
rsa:2048 -nodes -sha256 -subj '/CN=localhost' -extensions EXT -config 
localhost.conf
++      $(CXX) $(CXXFLAGS) examples/hammer_test.c libusockets.a -o hammer_test 
`$(PKG_CONFIG) --libs $(REQUIRES)` $(LDFLAGS)
++      ./hammer_test
+ 
+-swift_examples:
+-      swiftc -O -I . examples/swift_http_server/main.swift uSockets.a -o 
swift_http_server
+ 
+ clean:
+       rm -f *.o
+       rm -f *.a
+-      rm -rf .certs
++      rm -f *.so
++      rm -f localhost.pem localhost.crt
++      rm -f libusockets.pc
++
++.PHONY: default install clean test

diff --git a/net-libs/usockets/files/usockets-0.8.8-hammer-test.patch 
b/net-libs/usockets/files/usockets-0.8.8-hammer-test.patch
new file mode 100644
index 0000000000..a23a8e8269
--- /dev/null
+++ b/net-libs/usockets/files/usockets-0.8.8-hammer-test.patch
@@ -0,0 +1,16 @@
+diff --git a/examples/hammer_test.c b/examples/hammer_test.c
+index 010e232..0837b8d 100644
+--- a/examples/hammer_test.c
++++ b/examples/hammer_test.c
+@@ -406,9 +406,8 @@ int main() {
+     // these are ignored for non-SSL
+     struct us_socket_context_options_t options;
+     memset(&options, 0, sizeof(struct us_socket_context_options_t));
+-    options.key_file_name = "/home/alexhultman/uWebSockets.js/misc/key.pem";
+-    options.cert_file_name = "/home/alexhultman/uWebSockets.js/misc/cert.pem";
+-    options.passphrase = "1234";
++    options.key_file_name = "localhost.pem";
++    options.cert_file_name = "localhost.crt";
+ 
+     http_context = us_create_socket_context(SSL, loop, sizeof(struct 
http_context), options);
+ 

diff --git a/net-libs/usockets/usockets-9999.ebuild 
b/net-libs/usockets/usockets-0.8.8.ebuild
similarity index 77%
copy from net-libs/usockets/usockets-9999.ebuild
copy to net-libs/usockets/usockets-0.8.8.ebuild
index 58b0422a0b..07a9276ef2 100644
--- a/net-libs/usockets/usockets-9999.ebuild
+++ b/net-libs/usockets/usockets-0.8.8.ebuild
@@ -12,10 +12,9 @@ if [[ ${PV} == 9999 ]]; then
        inherit git-r3
        EGIT_REPO_URI="https://github.com/uNetworking/uSockets.git";
 else
-       COMMIT="c2c1bbfa1644f1f6eb7fc9375650f41c5f9b7b06"
-       
SRC_URI="https://github.com/uNetworking/uSockets/archive/${COMMIT}.tar.gz -> 
${P}.tar.gz"
+       SRC_URI="https://github.com/uNetworking/uSockets/archive/v${PV}.tar.gz 
-> ${P}.tar.gz"
        KEYWORDS="~amd64 ~arm64 ~x86"
-       S="${WORKDIR}/uSockets-${COMMIT}"
+       S="${WORKDIR}/uSockets-${PV}"
 fi
 
 LICENSE="Apache-2.0"
@@ -25,17 +24,17 @@ REQUIRED_USE="?? ( asio libuv ) test? ( ssl )"
 RESTRICT="!test? ( test )"
 
 DEPEND="
-       asio? ( dev-cpp/asio[ssl(+)?] )
+       asio? ( dev-cpp/asio[ssl(+)?]:= )
        libuv? ( dev-libs/libuv )
        ssl? ( >=dev-libs/openssl-1.1.0 )
 "
 RDEPEND="${DEPEND}"
 
 PATCHES=(
-       "${FILESDIR}/${PN}-0.8.1_p20211023-Makefile.patch"
+       "${FILESDIR}/${PN}-0.8.8-Makefile.patch"
        "${FILESDIR}/${PN}-0.8.1_p20211023-pkg-config.patch"
        "${FILESDIR}/${PN}-0.8.1_p20211023-gen-ssl-config.patch"
-       "${FILESDIR}/${PN}-0.8.1_p20211023-hammer-test.patch"
+       "${FILESDIR}/${PN}-0.8.8-hammer-test.patch"
 )
 
 src_configure() {

diff --git a/net-libs/usockets/usockets-9999.ebuild 
b/net-libs/usockets/usockets-9999.ebuild
index 58b0422a0b..07a9276ef2 100644
--- a/net-libs/usockets/usockets-9999.ebuild
+++ b/net-libs/usockets/usockets-9999.ebuild
@@ -12,10 +12,9 @@ if [[ ${PV} == 9999 ]]; then
        inherit git-r3
        EGIT_REPO_URI="https://github.com/uNetworking/uSockets.git";
 else
-       COMMIT="c2c1bbfa1644f1f6eb7fc9375650f41c5f9b7b06"
-       
SRC_URI="https://github.com/uNetworking/uSockets/archive/${COMMIT}.tar.gz -> 
${P}.tar.gz"
+       SRC_URI="https://github.com/uNetworking/uSockets/archive/v${PV}.tar.gz 
-> ${P}.tar.gz"
        KEYWORDS="~amd64 ~arm64 ~x86"
-       S="${WORKDIR}/uSockets-${COMMIT}"
+       S="${WORKDIR}/uSockets-${PV}"
 fi
 
 LICENSE="Apache-2.0"
@@ -25,17 +24,17 @@ REQUIRED_USE="?? ( asio libuv ) test? ( ssl )"
 RESTRICT="!test? ( test )"
 
 DEPEND="
-       asio? ( dev-cpp/asio[ssl(+)?] )
+       asio? ( dev-cpp/asio[ssl(+)?]:= )
        libuv? ( dev-libs/libuv )
        ssl? ( >=dev-libs/openssl-1.1.0 )
 "
 RDEPEND="${DEPEND}"
 
 PATCHES=(
-       "${FILESDIR}/${PN}-0.8.1_p20211023-Makefile.patch"
+       "${FILESDIR}/${PN}-0.8.8-Makefile.patch"
        "${FILESDIR}/${PN}-0.8.1_p20211023-pkg-config.patch"
        "${FILESDIR}/${PN}-0.8.1_p20211023-gen-ssl-config.patch"
-       "${FILESDIR}/${PN}-0.8.1_p20211023-hammer-test.patch"
+       "${FILESDIR}/${PN}-0.8.8-hammer-test.patch"
 )
 
 src_configure() {

Reply via email to