parent
9f50345e00
commit
d6fe012f93
|
@ -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'
|
# Template file for 'mongoose'
|
||||||
pkgname=mongoose
|
pkgname=mongoose
|
||||||
version=6.18
|
version=7.6
|
||||||
revision=4
|
revision=1
|
||||||
build_style=gnu-makefile
|
build_style=gnu-makefile
|
||||||
make_use_env=compliant
|
make_use_env=yes
|
||||||
|
make_check_target=test
|
||||||
|
make_build_target=linux-libs
|
||||||
makedepends="openssl-devel"
|
makedepends="openssl-devel"
|
||||||
short_desc="Easy to use Web server"
|
checkdepends="openssl-devel"
|
||||||
maintainer="Orphaned <orphan@voidlinux.org>"
|
short_desc="Embedded HTTP/WebSocket/MQTT library for C/C++"
|
||||||
|
maintainer="Subhaditya Nath <sn03.general@gmail.com>"
|
||||||
license="GPL-2.0-only"
|
license="GPL-2.0-only"
|
||||||
homepage="https://cesanta.com/"
|
homepage="https://mongoose.ws/"
|
||||||
distfiles="https://github.com/cesanta/mongoose/archive/${version}.tar.gz"
|
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() {
|
mongoose-devel_package() {
|
||||||
depends="${sourcepkg}>=${version}_${revision}"
|
depends="${sourcepkg}>=${version}_${revision}"
|
||||||
short_desc+=" - development files"
|
short_desc+=" - development files"
|
||||||
pkg_install() {
|
pkg_install() {
|
||||||
vmove usr/include
|
vmove usr/include
|
||||||
|
vmove "usr/lib/*.a"
|
||||||
vmove "usr/lib/*.so"
|
vmove "usr/lib/*.so"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -24,6 +46,8 @@ mongoose-devel_package() {
|
||||||
mongoose-doc_package() {
|
mongoose-doc_package() {
|
||||||
short_desc+=" - documentation"
|
short_desc+=" - documentation"
|
||||||
pkg_install() {
|
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