mongoose: bump to version 5.3
PATCH 1/2 mongoose: bump to version 5.3
From: Davide Viti <[email protected]>
---
Mongoose has changed quite drastically in the last months. Here is a list of changes which had to be applied:
- Bump version from 3.7 to 5.3
- use tarball download via github helper iso git clone
- need largefile support
- compilation takes place into "examples"
- weberver source is now "server.c"
- adapt to new command line options
- SSL support now controlled via NS_ENABLE_SSL
I'd appreciate some feedback in particular on the SSL change: the old NO_SSL_DL and NO_SSL macros have been removed and the only SSL-related macro is now NS_ENABLE_SSL.
regards,
Davide
package/mongoose/Config.in | 5 +++-- package/mongoose/S85mongoose | 2 +- package/mongoose/mongoose.mk | 15 ++++++--------- 3 files changed, 10 insertions(+), 12 deletions(-)
package/mongoose/Config.in +3 -2
@@ -1,5 +1,6 @@ config BR2_PACKAGE_MONGOOSE bool "mongoose" + depends on BR2_LARGEFILE depends on BR2_TOOLCHAIN_HAS_THREADS depends on BR2_USE_MMU # fork() help
@@ -7,6 +8,6 @@ config BR2_PACKAGE_MONGOOSE https://github.com/valenok/mongoose -comment "mongoose needs a toolchain w/ threads" +comment "mongoose needs a toolchain w/ threads, largefile" depends on BR2_USE_MMU - depends on !BR2_TOOLCHAIN_HAS_THREADS + depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE
package/mongoose/S85mongoose +1 -1
@@ -10,7 +10,7 @@ NAME=mongoose DESC="Mongoose HTTP server" DAEMON=`which mongoose` -OPTIONS="-num_threads 3 -document_root /var/www -listening_ports 80" +OPTIONS="-document_root /var/www -listening_port 80" [ -e /etc/default/mongoose ] && . /etc/default/mongoose
package/mongoose/mongoose.mk +6 -9
@@ -4,9 +4,8 @@ # ################################################################################ -MONGOOSE_VERSION = 3.7 -MONGOOSE_SOURCE = mongoose-$(MONGOOSE_VERSION).tgz -MONGOOSE_SITE = https://mongoose.googlecode.com/files +MONGOOSE_VERSION = 5.3 +MONGOOSE_SITE = $(call github,cesanta,mongoose,$(MONGOOSE_VERSION)) MONGOOSE_LICENSE = MIT MONGOOSE_LICENSE_FILES = LICENSE
@@ -15,18 +14,16 @@ MONGOOSE_CFLAGS = $(TARGET_CFLAGS) $(TARGET_LDFLAGS) ifeq ($(BR2_PACKAGE_OPENSSL),y) MONGOOSE_DEPENDENCIES += openssl # directly linked -MONGOOSE_CFLAGS += -DNO_SSL_DL -lssl -lcrypto -lz -else -MONGOOSE_CFLAGS += -DNO_SSL +MONGOOSE_CFLAGS += -DNS_ENABLE_SSL -lssl -lcrypto -lz endif define MONGOOSE_BUILD_CMDS - $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D) \ - linux COPT="$(MONGOOSE_CFLAGS)" + $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D)/examples \ + COPT="$(MONGOOSE_CFLAGS)" endef define MONGOOSE_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 755 $(@D)/mongoose $(TARGET_DIR)/usr/sbin/mongoose + $(INSTALL) -D -m 755 $(@D)/examples/server $(TARGET_DIR)/usr/sbin/mongoose $(INSTALL) -D -m 755 package/mongoose/S85mongoose \ $(TARGET_DIR)/etc/init.d/S85mongoose endef
Signature · 1 line
1.7.10.4
PATCH 2/2 mongoose: optionally provide shared library
From: Davide Viti <[email protected]>
---
mongoose package can provide a webserver and, optionally, a shared
library: this is what Centos, among other distros, is doing.
It's now possible to include in the build both the mongoose executable and libmongoose.so
Not too sure how should be handled the situation where mongoose is select and neither the webserver nor libmongoose.so are not selected
I'd also appreciate some feedback on the shared library compilation flags
regards,
Davide
package/mongoose/Config.in | 14 ++++++++++++++ package/mongoose/mongoose.mk | 32 +++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 3 deletions(-)
package/mongoose/Config.in +14 -0
@@ -8,6 +8,20 @@ config BR2_PACKAGE_MONGOOSE https://github.com/valenok/mongoose +if BR2_PACKAGE_MONGOOSE + +config BR2_PACKAGE_MONGOOSE_INSTALL_WEBSERVER + bool "Install standalone webserver" + help + Install mongoose webserver + +config BR2_PACKAGE_MONGOOSE_INSTALL_SHARED_LIBRARY + bool "Install shared library" + help + Install shared library + +endif + comment "mongoose needs a toolchain w/ threads, largefile" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE
package/mongoose/mongoose.mk +29 -3
@@ -8,6 +8,7 @@ MONGOOSE_VERSION = 5.3 MONGOOSE_SITE = $(call github,cesanta,mongoose,$(MONGOOSE_VERSION)) MONGOOSE_LICENSE = MIT MONGOOSE_LICENSE_FILES = LICENSE +MONGOOSE_INSTALL_STAGING = YES MONGOOSE_CFLAGS = $(TARGET_CFLAGS) $(TARGET_LDFLAGS)
@@ -17,15 +18,40 @@ MONGOOSE_DEPENDENCIES += openssl MONGOOSE_CFLAGS += -DNS_ENABLE_SSL -lssl -lcrypto -lz endif +ifeq ($(BR2_PACKAGE_MONGOOSE_INSTALL_SHARED_LIBRARY),y) +define MONGOOSE_INSTALL_SHARED_LIBRARY_CMDS + $(INSTALL) -D -m 755 $(@D)/libmongoose.so $(TARGET_DIR)/usr/lib +endef + +define MONGOOSE_INSTALL_STAGING_SHARED_LIBRARY_CMDS + $(INSTALL) -D -m 755 $(@D)/libmongoose.so $(STAGING_DIR)/usr/lib + $(INSTALL) -D -m 644 $(@D)/mongoose.h $(STAGING_DIR)/usr/include +endef + +endif + +ifeq ($(BR2_PACKAGE_MONGOOSE_INSTALL_WEBSERVER),y) +define MONGOOSE_INSTALL_WEBSERVER_CMDS + $(INSTALL) -D -m 755 $(@D)/mongoose $(TARGET_DIR)/usr/sbin + $(INSTALL) -D -m 755 package/mongoose/S85mongoose \ + $(TARGET_DIR)/etc/init.d +endef +endif + define MONGOOSE_BUILD_CMDS $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D)/examples \ COPT="$(MONGOOSE_CFLAGS)" + $(TARGET_CC) $(@D)/mongoose.c -shared -fpic \ + -o $(@D)/libmongoose.so -pthread -ldl endef define MONGOOSE_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 755 $(@D)/examples/server $(TARGET_DIR)/usr/sbin/mongoose - $(INSTALL) -D -m 755 package/mongoose/S85mongoose \ - $(TARGET_DIR)/etc/init.d/S85mongoose + $(MONGOOSE_INSTALL_SHARED_LIBRARY_CMDS) + $(MONGOOSE_INSTALL_WEBSERVER_CMDS) +endef + +define MONGOOSE_INSTALL_STAGING_CMDS + $(MONGOOSE_INSTALL_STAGING_SHARED_LIBRARY_CMDS) endef $(eval $(generic-package))
Signature · 1 line
1.7.10.4
PATCH 2/2 mongoose: optionally provide shared library
In reply to Davide VitiFrom: Davide Viti <[email protected]>
--- package/mongoose/Config.in | 14 ++++++++++++++ package/mongoose/mongoose.mk | 32 +++++++++++++++++++++++++++++--- 2 files changed, 43 insertions(+), 3 deletions(-)
package/mongoose/Config.in +14 -0
@@ -8,6 +8,20 @@ config BR2_PACKAGE_MONGOOSE https://github.com/valenok/mongoose +if BR2_PACKAGE_MONGOOSE + +config BR2_PACKAGE_MONGOOSE_INSTALL_WEBSERVER + bool "Install standalone webserver" + help + Install mongoose webserver + +config BR2_PACKAGE_MONGOOSE_INSTALL_SHARED_LIBRARY + bool "Install shared library" + help + Install shared library + +endif + comment "mongoose needs a toolchain w/ threads, largefile" depends on BR2_USE_MMU depends on !BR2_TOOLCHAIN_HAS_THREADS || !BR2_LARGEFILE
package/mongoose/mongoose.mk +29 -3
@@ -8,6 +8,7 @@ MONGOOSE_VERSION = 5.3 MONGOOSE_SITE = $(call github,cesanta,mongoose,$(MONGOOSE_VERSION)) MONGOOSE_LICENSE = MIT MONGOOSE_LICENSE_FILES = LICENSE +MONGOOSE_INSTALL_STAGING = YES MONGOOSE_CFLAGS = $(TARGET_CFLAGS) $(TARGET_LDFLAGS)
@@ -17,15 +18,40 @@ MONGOOSE_DEPENDENCIES += openssl MONGOOSE_CFLAGS += -DNS_ENABLE_SSL -lssl -lcrypto -lz endif +ifeq ($(BR2_PACKAGE_MONGOOSE_INSTALL_SHARED_LIBRARY),y) +define MONGOOSE_INSTALL_SHARED_LIBRARY_CMDS + $(INSTALL) -D -m 755 $(@D)/libmongoose.so $(TARGET_DIR)/usr/lib +endef + +define MONGOOSE_INSTALL_STAGING_SHARED_LIBRARY_CMDS + $(INSTALL) -D -m 755 $(@D)/libmongoose.so $(STAGING_DIR)/usr/lib + $(INSTALL) -D -m 644 $(@D)/mongoose.h $(STAGING_DIR)/usr/include +endef + +endif + +ifeq ($(BR2_PACKAGE_MONGOOSE_INSTALL_WEBSERVER),y) +define MONGOOSE_INSTALL_WEBSERVER_CMDS + $(INSTALL) -D -m 755 $(@D)/mongoose $(TARGET_DIR)/usr/sbin + $(INSTALL) -D -m 755 package/mongoose/S85mongoose \ + $(TARGET_DIR)/etc/init.d +endef +endif + define MONGOOSE_BUILD_CMDS $(MAKE) CC="$(TARGET_CC)" LD="$(TARGET_LD)" -C $(@D)/examples \ COPT="$(MONGOOSE_CFLAGS)" + $(TARGET_CC) $(@D)/mongoose.c -shared -fpic \ + -o $(@D)/libmongoose.so -pthread -ldl endef define MONGOOSE_INSTALL_TARGET_CMDS - $(INSTALL) -D -m 755 $(@D)/examples/server $(TARGET_DIR)/usr/sbin/mongoose - $(INSTALL) -D -m 755 package/mongoose/S85mongoose \ - $(TARGET_DIR)/etc/init.d/S85mongoose + $(MONGOOSE_INSTALL_SHARED_LIBRARY_CMDS) + $(MONGOOSE_INSTALL_WEBSERVER_CMDS) +endef + +define MONGOOSE_INSTALL_STAGING_CMDS + $(MONGOOSE_INSTALL_STAGING_SHARED_LIBRARY_CMDS) endef $(eval $(generic-package))
Signature · 1 line
1.7.10.4
PATCH 2/2 mongoose: optionally provide shared library
Davide, All,
On 2014-05-11 13:24 +0200, Davide Viti spake thusly:
Quoted 3 lines
From: Davide Viti <[email protected]>
Signed-off-by Davide Viti <[email protected]>
As discussed on IRC: I marked this duplicate as Rejected.
Regards,
Yann E. MORIN.
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/2 mongoose: bump to version 5.3
In reply to Davide VitiQuoted 16 lines · Davide Viti
From: Davide Viti <[email protected]>
Signed-off-by Davide Viti <[email protected]>---
Mongoose has changed quite drastically in the last months. Here is a list of changes which had to be applied:- Bump version from 3.7 to 5.3
- use tarball download via github helper iso git clone
- need largefile support
- compilation takes place into "examples"
- weberver source is now "server.c"
- adapt to new command line options
- SSL support now controlled viaNS_ENABLE_SSL
Quoted 4 lines
I'd appreciate some feedback in particular on the SSL change: the old
NO_SSL_DLandNO_SSLmacros have been removed and the only SSL-related macro is nowNS_ENABLE_SSL.
Minot point, the new version of mongoose changes the license to GPLv2.
Regards
Will
Signature · 5 lines
------------------------------------------------------------------------ Will Wagner will_wagner at carallon.com Development Manager Office Tel: +44 (0)20 7471 9224 Carallon Ltd, Studio G20, Shepherds Building, Rockley Rd, London W14 0DA ------------------------------------------------------------------------