git: db009eb902b0 - main - net/iwnet: new port had been added (+)

From: Alexey Dokuchaev <danfe_at_FreeBSD.org>
Date: Sun, 01 May 2022 09:53:57 UTC
The branch main has been updated by danfe:

URL: https://cgit.FreeBSD.org/ports/commit/?id=db009eb902b0ad5b1867e5e9e0aeee3656394068

commit db009eb902b0ad5b1867e5e9e0aeee3656394068
Author:     Alexey Dokuchaev <danfe@FreeBSD.org>
AuthorDate: 2022-05-01 09:52:56 +0000
Commit:     Alexey Dokuchaev <danfe@FreeBSD.org>
CommitDate: 2022-05-01 09:52:56 +0000

    net/iwnet: new port had been added (+)
    
    Asynchronous HTTP library with websockets, SSL, routing.
    54% tests pass, 6 tests currently fail out of 13.
    
    WWW: https://github.com/Softmotions/iwnet
---
 net/Makefile                             |  1 +
 net/iwnet/Makefile                       | 28 +++++++++++++++++
 net/iwnet/distinfo                       |  3 ++
 net/iwnet/files/patch-src_CMakeLists.txt | 25 +++++++++++++++
 net/iwnet/pkg-descr                      | 12 ++++++++
 net/iwnet/pkg-plist                      | 53 ++++++++++++++++++++++++++++++++
 6 files changed, 122 insertions(+)

diff --git a/net/Makefile b/net/Makefile
index 4b1a89dccda2..42d5c3d040de 100644
--- a/net/Makefile
+++ b/net/Makefile
@@ -286,6 +286,7 @@
     SUBDIR += isc-dhcp44-relay
     SUBDIR += isc-dhcp44-server
     SUBDIR += istgt
+    SUBDIR += iwnet
     SUBDIR += java-beepcore
     SUBDIR += jcifs
     SUBDIR += jgroups
diff --git a/net/iwnet/Makefile b/net/iwnet/Makefile
new file mode 100644
index 000000000000..b16a0ea17c25
--- /dev/null
+++ b/net/iwnet/Makefile
@@ -0,0 +1,28 @@
+# Created by: Alexey Dokuchaev <danfe@FreeBSD.org>
+
+PORTNAME=	iwnet
+PORTVERSION=	g20220223
+CATEGORIES=	net www
+
+MAINTAINER=	danfe@FreeBSD.org
+COMMENT=	Asynchronous HTTP library with websockets, SSL, routing
+
+LICENSE=	MIT
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+BUILD_DEPENDS=	${LOCALBASE}/include/iowow/iowow.h:databases/iowow
+
+USES=		cmake compiler:c11
+USE_GITHUB=	yes
+GH_ACCOUNT=	Softmotions
+GH_TAGNAME=	0569ab0
+USE_LDCONFIG=	yes
+
+CMAKE_ARGS=	-DBUILD_SHARED_LIBS:BOOL=ON -DBUILD_TESTS:BOOL=ON
+
+OPTIONS_DEFINE=	DOCS
+
+do-test:
+	@cd ${TEST_WRKSRC} && ctest -C ${CMAKE_BUILD_TYPE} ${_MAKE_JOBS}
+
+.include <bsd.port.mk>
diff --git a/net/iwnet/distinfo b/net/iwnet/distinfo
new file mode 100644
index 000000000000..626054bcc71a
--- /dev/null
+++ b/net/iwnet/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1645609680
+SHA256 (Softmotions-iwnet-g20220223-0569ab0_GH0.tar.gz) = 9d4808d5739bf1ffa6d07f82c12a733759eb11565360d485ef0f6d2c1db28ace
+SIZE (Softmotions-iwnet-g20220223-0569ab0_GH0.tar.gz) = 798342
diff --git a/net/iwnet/files/patch-src_CMakeLists.txt b/net/iwnet/files/patch-src_CMakeLists.txt
new file mode 100644
index 000000000000..dce86d7fd320
--- /dev/null
+++ b/net/iwnet/files/patch-src_CMakeLists.txt
@@ -0,0 +1,25 @@
+--- src/CMakeLists.txt.orig	2022-02-23 09:48:00 UTC
++++ src/CMakeLists.txt
+@@ -52,7 +52,7 @@ endif()
+ set(CMAKE_C_FLAGS_DEBUG
+     "${CMAKE_C_ASAN} -O0 -g -ggdb -Werror -DDEBUG -D_DEBUG -UNDEBUG -Wno-unused-variable"
+ )
+-set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_ASAN} -O3 -DNDEBUG")
++set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} ${CMAKE_C_ASAN} -DNDEBUG")
+ set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-Wl,-s")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELEASE} -g")
+ set(CMAKE_C_FLAGS_RELEASEWITHDEBINFO ${CMAKE_C_FLAGS_RELWITHDEBINFO})
+@@ -174,13 +174,6 @@ if(BUILD_SHARED_LIBS)
+                SOVERSION ${PROJECT_VERSION_MAJOR}
+                PUBLIC_HEADER "${PUB_HDRS}"
+                DEFINE_SYMBOL IW_API_EXPORTS)
+-
+-  if(CMAKE_BUILD_TYPE STREQUAL "Release")
+-    add_custom_command(
+-      TARGET iwnet
+-      POST_BUILD
+-      COMMAND ${STRIP_CMD} $<TARGET_FILE:iwnet>)
+-  endif()
+ 
+   set_target_properties(
+     iwnet_s
diff --git a/net/iwnet/pkg-descr b/net/iwnet/pkg-descr
new file mode 100644
index 000000000000..bdb60c4460e4
--- /dev/null
+++ b/net/iwnet/pkg-descr
@@ -0,0 +1,12 @@
+Pure C asynchronous HTTP framework with support for websockets,
+client/server, TLS 1.2 (SSL), routing.
+
+  - Fast asynchronous HTTP server (iwn_http_server.h)
+  - Web framework based on HTTP server (iwn_wf.h)
+  - Websocket client and server (iwn_ws_server.h, iwn_ws_client.h)
+  - Poller reactor (iwn_poller.h)
+  - SSL layer is based on BearSSL (iwn_brssl_poller_adapter.h)
+  - Manager of child processes (iwn_proc.h)
+  - Timer (iwn_scheduler.h)
+
+WWW: https://github.com/Softmotions/iwnet
diff --git a/net/iwnet/pkg-plist b/net/iwnet/pkg-plist
new file mode 100644
index 000000000000..25171f63f79a
--- /dev/null
+++ b/net/iwnet/pkg-plist
@@ -0,0 +1,53 @@
+include/iwnet/base64.h
+include/iwnet/bearssl.h
+include/iwnet/bearssl_aead.h
+include/iwnet/bearssl_block.h
+include/iwnet/bearssl_ec.h
+include/iwnet/bearssl_hash.h
+include/iwnet/bearssl_hmac.h
+include/iwnet/bearssl_kdf.h
+include/iwnet/bearssl_pem.h
+include/iwnet/bearssl_prf.h
+include/iwnet/bearssl_rand.h
+include/iwnet/bearssl_rsa.h
+include/iwnet/bearssl_ssl.h
+include/iwnet/bearssl_x509.h
+include/iwnet/bre.h
+include/iwnet/bre_asn1.h
+include/iwnet/bre_base.h
+include/iwnet/bre_base64.h
+include/iwnet/bre_pkcs10.h
+include/iwnet/bre_pool.h
+include/iwnet/bre_utils.h
+include/iwnet/brssl.h
+include/iwnet/brssl_poller_adapter.h
+include/iwnet/codec.h
+include/iwnet/direct_poller_adapter.h
+include/iwnet/http_server.h
+include/iwnet/iwnet.h
+include/iwnet/mimetypes.h
+include/iwnet/pairs.h
+include/iwnet/poller.h
+include/iwnet/poller_adapter.h
+include/iwnet/proc.h
+include/iwnet/scheduler.h
+include/iwnet/url.h
+include/iwnet/utils.h
+include/iwnet/wf.h
+include/iwnet/wf_files.h
+include/iwnet/wf_sst_inmem.h
+include/iwnet/ws.h
+include/iwnet/ws_client.h
+include/iwnet/ws_server.h
+include/iwnet/xcurl.h
+lib/libiwnet-1.a
+lib/libiwnet.so
+lib/libiwnet.so.1
+lib/libiwnet.so.1.0.0
+%%PORTDOCS%%%%DOCSDIR%%/Changelog
+%%PORTDOCS%%%%DOCSDIR%%/LICENSE
+%%PORTDOCS%%%%DOCSDIR%%/README
+%%DATADIR%%/iwnet-exports-%%CMAKE_BUILD_TYPE%%.cmake
+%%DATADIR%%/iwnet-exports.cmake
+%%DATADIR%%/iwnet-static-exports-%%CMAKE_BUILD_TYPE%%.cmake
+%%DATADIR%%/iwnet-static-exports.cmake