parent
9f50345e00
commit
d6fe012f93
4 changed files with 108 additions and 58 deletions
|
@ -1,50 +0,0 @@
|
|||
--- /dev/null
|
||||
+++ b/Makefile
|
||||
@@ -0,0 +1,47 @@
|
||||
+PROG = mongoose
|
||||
+LIB = lib$(PROG).so.0
|
||||
+
|
||||
+ifndef PREFIX
|
||||
+ PREFIX=/usr/local
|
||||
+endif
|
||||
+
|
||||
+ifndef DOCDIR
|
||||
+ DOCDIR=$(PREFIX)/share/$(PROG)/doc
|
||||
+endif
|
||||
+
|
||||
+CPPFLAGS+=-DMONGOOSE_ENABLE_THREADS -DMG_ENABLE_SSL
|
||||
+CFLAGS+=-fPIC -c -Wall
|
||||
+LDFLAGS+=-shared -lssl -pthread -lcrypto
|
||||
+
|
||||
+SRCS=mongoose.c
|
||||
+OBJS=mongoose.o
|
||||
+INCLUDE=.
|
||||
+
|
||||
+all: $(LIB)
|
||||
+
|
||||
+$(LIB): $(OBJS)
|
||||
+ $(CC) $(OBJS) $(LDFLAGS) -o $(LIB)
|
||||
+
|
||||
+$(OBJS): $(SRCS)
|
||||
+ $(CC) $(CPPFLAGS) $(CFLAGS) -I$(INCLUDE) $(SRCS) -o $(OBJS)
|
||||
+
|
||||
+install:
|
||||
+ install -d $(DESTDIR)$(PREFIX)/include
|
||||
+ install -m644 mongoose.h $(DESTDIR)$(PREFIX)/include
|
||||
+ install -d $(DESTDIR)$(PREFIX)/lib
|
||||
+ ln -sf $(LIB) $(LIB).0; cp -a $(LIB).0 $(DESTDIR)$(PREFIX)/lib
|
||||
+ ln -sf $(LIB) libmongoose.so; cp -a libmongoose.so $(DESTDIR)$(PREFIX)/lib
|
||||
+ install -m755 $(LIB) $(DESTDIR)$(PREFIX)/lib
|
||||
+ install -dm755 $(DESTDIR)$(DOCDIR)
|
||||
+ cp -a examples $(DESTDIR)$(DOCDIR)
|
||||
+ cp -a docs/* $(DESTDIR)$(DOCDIR)/
|
||||
+
|
||||
+
|
||||
+test:
|
||||
+ $(MAKE) -C test/
|
||||
+clean:
|
||||
+ rm -f $(OBJS) $(LIB)
|
||||
+ $(MAKE) -C test/ clean
|
||||
+
|
||||
+.PHONY: clean test all
|
||||
+
|
59
srcpkgs/mongoose/patches/fix-makefile.patch
Normal file
59
srcpkgs/mongoose/patches/fix-makefile.patch
Normal file
|
@ -0,0 +1,59 @@
|
|||
--- a/Makefile
|
||||
+++ b/Makefile
|
||||
@@ -5,5 +5,5 @@ SRCS = mongoose.c test/unit_test.c test/packed_fs.c
|
||||
OPTS ?= -O3 -g3
|
||||
INCS ?= -Isrc -I.
|
||||
-CFLAGS ?= $(OPTS) $(WARN) $(INCS) $(DEFS) $(TFLAGS) $(EXTRA)
|
||||
+CFLAGS := $(OPTS) $(WARN) $(INCS) $(DEFS) $(TFLAGS) $(CFLAGS)
|
||||
SSL ?= MBEDTLS
|
||||
CWD ?= $(realpath $(CURDIR))
|
||||
@@ -10,6 +10,9 @@ CWD ?= $(realpath $(CURDIR))
|
||||
DOCKER ?= docker run --rm -e Tmp=. -e WINEDEBUG=-all -v $(CWD):$(CWD) -w $(CWD)
|
||||
VCFLAGS = /nologo /W3 /O2 /I. $(DEFS) $(TFLAGS)
|
||||
IPV6 ?= 1
|
||||
+ifneq "$(NO_SANITIZE)" "1"
|
||||
+SANITIZE = -fsanitize=address,undefined
|
||||
+endif
|
||||
ASAN_OPTIONS ?=
|
||||
EXAMPLES := $(wildcard examples/*)
|
||||
PREFIX ?= /usr/local
|
||||
@@ -19,12 +22,12 @@ VERSION ?= $(shell cut -d'"' -f2 src/version.h)
|
||||
ifeq "$(SSL)" "MBEDTLS"
|
||||
MBEDTLS ?= /usr
|
||||
CFLAGS += -DMG_ENABLE_MBEDTLS=1 -I$(MBEDTLS)/include -I/usr/include
|
||||
-LDFLAGS ?= -L$(MBEDTLS)/lib -lmbedtls -lmbedcrypto -lmbedx509
|
||||
+LDFLAGS += -L$(MBEDTLS)/lib -lmbedtls -lmbedcrypto -lmbedx509
|
||||
endif
|
||||
ifeq "$(SSL)" "OPENSSL"
|
||||
OPENSSL ?= /usr
|
||||
CFLAGS += -DMG_ENABLE_OPENSSL=1 -I$(OPENSSL)/include
|
||||
-LDFLAGS ?= -L$(OPENSSL)/lib -lssl -lcrypto
|
||||
+LDFLAGS += -L$(OPENSSL)/lib -lssl -lcrypto
|
||||
endif
|
||||
|
||||
all: mg_prefix unamalgamated unpacked test test++ arm examples vc98 vc2017 mingw mingw++ linux linux++ fuzz
|
||||
@@ -59,7 +62,7 @@ fuzz: fuzzer
|
||||
$(RUN) ./fuzzer
|
||||
|
||||
# make CC=/usr/local/opt/llvm\@8/bin/clang ASAN_OPTIONS=detect_leaks=1
|
||||
-test: CFLAGS += -DMG_ENABLE_IPV6=$(IPV6) -fsanitize=address,undefined
|
||||
+test: CFLAGS += -DMG_ENABLE_IPV6=$(IPV6) $(SANITIZE)
|
||||
test: mongoose.h Makefile $(SRCS)
|
||||
$(CC) $(SRCS) $(CFLAGS) -coverage $(LDFLAGS) -g -o unit_test
|
||||
ASAN_OPTIONS=$(ASAN_OPTIONS) $(RUN) ./unit_test
|
||||
@@ -108,10 +111,12 @@ linux++: CC = g++
|
||||
linux++: WARN += -Wno-missing-field-initializers
|
||||
linux++: linux
|
||||
|
||||
-linux-libs: CFLAGS += -fPIC
|
||||
-linux-libs: mongoose.o
|
||||
- $(CC) mongoose.o $(LDFLAGS) -shared -o libmongoose.so.$(VERSION)
|
||||
+.PHONY: linux-libs
|
||||
+linux-libs: libmongoose.a libmongoose.so.$(VERSION)
|
||||
+libmongoose.a: mongoose.o
|
||||
$(AR) rcs libmongoose.a mongoose.o
|
||||
+libmongoose.so.$(VERSION): mongoose.o
|
||||
+ $(CC) mongoose.o $(LDFLAGS) -shared -o libmongoose.so.$(VERSION)
|
||||
|
||||
install: linux-libs
|
||||
install -Dm644 libmongoose.a libmongoose.so.$(VERSION) $(DESTDIR)$(PREFIX)/lib
|
17
srcpkgs/mongoose/patches/fix-tests.patch
Normal file
17
srcpkgs/mongoose/patches/fix-tests.patch
Normal file
|
@ -0,0 +1,17 @@
|
|||
Skip tests that want to connect to the internet
|
||||
|
||||
--- a/test/unit_test.c
|
||||
+++ b/test/unit_test.c
|
||||
@@ -1680,11 +1562,9 @@ int main(void) {
|
||||
test_ws();
|
||||
test_ws_fragmentation();
|
||||
test_http_server();
|
||||
- test_http_client();
|
||||
test_http_no_content_length();
|
||||
test_http_pipeline();
|
||||
test_http_range();
|
||||
- test_mqtt();
|
||||
printf("SUCCESS. Total tests: %d\n", s_num_tests);
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
|
@ -1,22 +1,44 @@
|
|||
# Template file for 'mongoose'
|
||||
pkgname=mongoose
|
||||
version=6.18
|
||||
revision=4
|
||||
version=7.6
|
||||
revision=1
|
||||
build_style=gnu-makefile
|
||||
make_use_env=compliant
|
||||
make_use_env=yes
|
||||
make_check_target=test
|
||||
make_build_target=linux-libs
|
||||
makedepends="openssl-devel"
|
||||
short_desc="Easy to use Web server"
|
||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
||||
checkdepends="openssl-devel"
|
||||
short_desc="Embedded HTTP/WebSocket/MQTT library for C/C++"
|
||||
maintainer="Subhaditya Nath <sn03.general@gmail.com>"
|
||||
license="GPL-2.0-only"
|
||||
homepage="https://cesanta.com/"
|
||||
homepage="https://mongoose.ws/"
|
||||
distfiles="https://github.com/cesanta/mongoose/archive/${version}.tar.gz"
|
||||
checksum=f5c10346abc9c72f7cac7885d853ca064fb09aad57580433941a8fd7a3543769
|
||||
checksum=1ef09d971b6de1a6317c109980d6fb5a9c19b39efef2506d6b76869644b3dafa
|
||||
|
||||
# -Wno-error=unused-function: patched tests leave some functions unused
|
||||
# -Wno-error=sign-conversion: GCC falsely flags musl FD_{SET,ISSET,CLR}
|
||||
CFLAGS="-fPIC -Wno-error=sign-conversion -Wno-error=unused-function"
|
||||
|
||||
export SSL=OPENSSL
|
||||
|
||||
# libsanitizer-devel is currenly not available on musl
|
||||
if [ "$XBPS_TARGET_LIBC" = musl ]; then
|
||||
make_check_args+=" NO_SANITIZE=1"
|
||||
else
|
||||
checkdepends+=" libsanitizer-devel"
|
||||
fi
|
||||
|
||||
# GitHub CI runner doesn't support IPv6, causing tests to fail
|
||||
if [ "$XBPS_BUILD_ENVIRONMENT" = "void-packages-ci" ]; then
|
||||
make_check_args+=" IPV6=0"
|
||||
fi
|
||||
|
||||
mongoose-devel_package() {
|
||||
depends="${sourcepkg}>=${version}_${revision}"
|
||||
short_desc+=" - development files"
|
||||
pkg_install() {
|
||||
vmove usr/include
|
||||
vmove "usr/lib/*.a"
|
||||
vmove "usr/lib/*.so"
|
||||
}
|
||||
}
|
||||
|
@ -24,6 +46,8 @@ mongoose-devel_package() {
|
|||
mongoose-doc_package() {
|
||||
short_desc+=" - documentation"
|
||||
pkg_install() {
|
||||
vmove usr/share
|
||||
vmkdir "usr/share/${sourcepkg}/doc"
|
||||
vcopy examples "usr/share/${sourcepkg}/doc"
|
||||
vcopy "docs/*" "usr/share/${sourcepkg}/doc"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue