Skip to contentSkip to conversation

ustream-ssl: new package

PATCH Superseded Rahul Jain 3 participants 8 messages Sep 16, 2016 – Sep 23, 2016

v1 of 4 Superseded Latest is v4 →

lore
Share & tools
lore

Rahul Jain

author
#0 lore raw

PATCH 1/4 ustream-ssl: new package

ustream-ssl has support for polarssl and cyassl
but since polarssl is made obsolete by mbedtls and cyassl is not present in buildroot, we have not added support for it.

---
 package/Config.in                  |  1 +
 package/ustream-ssl/Config.in      | 12 ++++++++++++
 package/ustream-ssl/ustream-ssl.mk | 20 ++++++++++++++++++++
 3 files changed, 33 insertions(+)
 create mode 100644 package/ustream-ssl/Config.in
 create mode 100644 package/ustream-ssl/ustream-ssl.mk
package/Config.in +1 -0
index 2b5a4d1..6437f35 100644
@@ -893,6 +893,7 @@ menu "Crypto"
 	source "package/polarssl/Config.in"
 	source "package/tinydtls/Config.in"
 	source "package/trousers/Config.in"
+	source "package/ustream-ssl/Config.in"
 endmenu
 
 menu "Database"
package/ustream-ssl/Config.in new file +12 -0
new file mode 100644
index 0000000..540e436
@@ -0,0 +1,12 @@
+config BR2_PACKAGE_USTREAM_SSL
+	bool "ustream-ssl"
+	depends on !BR2_STATIC_LIBS #libubox
+	select BR2_PACKAGE_LIBUBOX
+	select BR2_PACKAGE_OPENSSL if !BR2_PACKAGE_MBEDTLS
+	help
+	  ustream SSL wrapper
+
+	  https://git.openwrt.org/?p=project/ustream-ssl.git;a=summary
+
+comment "ustream-ssl needs a toolchain w/ dynamic library"
+	depends on BR2_STATIC_LIBS
package/ustream-ssl/ustream-ssl.mk new file +20 -0
new file mode 100644
index 0000000..d8f8aed
@@ -0,0 +1,20 @@
+################################################################################
+#
+# ustream-ssl
+#
+################################################################################
+
+USTREAM_SSL_VERSION = ec80adaa1b47f28d426fa19c692011ce60b992d6
+USTREAM_SSL_SITE = git://git.openwrt.org/project/ustream-ssl.git
+USTREAM_SSL_LICENSE = ISC
+USTREAM_SSL_INSTALL_STAGING = YES
+USTREAM_SSL_DEPENDENCIES = libubox
+
+ifeq ($(BR2_PACKAGE_MBEDTLS),y)
+USTREAM_SSL_DEPENDENCIES += mbedtls
+USTREAM_SSL_CONF_OPTS += -DMBEDTLS=ON
+else
+USTREAM_SSL_DEPENDENCIES += openssl
+endif
+
+$(eval $(cmake-package))
Signature · 1 line
2.6.2
author
#1 lore raw

PATCH 2/4 libubox: bump version

---
 package/libubox/libubox.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/libubox/libubox.mk +1 -1
index 4c56951..67451fe 100644
@@ -4,7 +4,7 @@
 #
 ################################################################################
 
-LIBUBOX_VERSION = e88d816d6e462180f0337565e04e36be58a63309
+LIBUBOX_VERSION = 290c64ef5b5c3e75be851594f269d6a9568e64e5
 LIBUBOX_SITE = git://git.openwrt.org/project/libubox.git
 LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
 LIBUBOX_INSTALL_STAGING = YES
Signature · 1 line
2.6.2
#2 lore raw

PATCH 2/4 libubox: bump version

Hello,

Quoted 6 lines · Rahul Jain
---
 package/libubox/libubox.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
author
#3 lore raw

PATCH 3/4 libubox: update legal info

In reply to Rahul Jain

From: Rahul Jain <[email protected]>

---
 package/libubox/libubox.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
package/libubox/libubox.mk +1 -1
index 67451fe..00392c3 100644
@@ -6,7 +6,7 @@
 
 LIBUBOX_VERSION = 290c64ef5b5c3e75be851594f269d6a9568e64e5
 LIBUBOX_SITE = git://git.openwrt.org/project/libubox.git
-LIBUBOX_LICENSE = LGPLv2.1, GPLv2, BSD-3c, MIT
+LIBUBOX_LICENSE = ISC, BSD-3c
 LIBUBOX_INSTALL_STAGING = YES
 LIBUBOX_DEPENDENCIES = $(if $(BR2_PACKAGE_JSON_C),json-c)
 
Signature · 1 line
2.6.2
#4 lore raw

PATCH 3/4 libubox: update legal info

Hello,

Quoted 8 lines · Rahul Jain

From: Rahul Jain <[email protected]>

---
 package/libubox/libubox.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Applied to master, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
author
#5 lore raw

PATCH 4/4 uhttpd: new package

In reply to Rahul Jain
---
 package/Config.in        |  1 +
 package/uhttpd/Config.in | 18 ++++++++++++++++++
 package/uhttpd/uhttpd.mk | 32 ++++++++++++++++++++++++++++++++
 3 files changed, 51 insertions(+)
 create mode 100644 package/uhttpd/Config.in
 create mode 100644 package/uhttpd/uhttpd.mk
package/Config.in +1 -0
index 6437f35..43a8c8b 100644
@@ -1596,6 +1596,7 @@ endif
 	source "package/tunctl/Config.in"
 	source "package/tvheadend/Config.in"
 	source "package/udpcast/Config.in"
+	source "package/uhttpd/Config.in"
 	source "package/ulogd/Config.in"
 	source "package/ushare/Config.in"
 	source "package/ussp-push/Config.in"
package/uhttpd/Config.in new file +18 -0
new file mode 100644
index 0000000..ec105ee
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_UHTTPD
+	bool "uhttpd"
+	depends on !BR2_STATIC_LIBS # dlopen()
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
+	depends on BR2_USE_MMU # fork()
+	select BR2_PACKAGE_LIBUBOX
+	select BR2_PACKAGE_JSON_C
+	help
+	  uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
+	  support. It is intended as a drop-in replacement for the Busybox
+	  HTTP daemon.
+
+	  https://git.openwrt.org/?p=project/uhttpd.git;a=summary
+
+comment "uhttpd needs a toolchain w/ dynamic library"
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on BR2_USE_MMU
+	depends on BR2_STATIC_LIBS
package/uhttpd/uhttpd.mk new file +32 -0
new file mode 100644
index 0000000..d336ff1
@@ -0,0 +1,32 @@
+################################################################################
+#
+# uhttpd
+#
+################################################################################
+
+UHTTPD_VERSION = 59e0c739634f46a164d939e54416287b91ff8a9b
+UHTTPD_SITE = git://git.openwrt.org/project/uhttpd.git
+UHTTPD_LICENSE = ISC
+UHTTPD_DEPENDENCIES = libubox json-c
+
+ifeq ($(BR2_PACKAGE_LUA_5_1),y)
+UHTTPD_DEPENDENCIES += lua
+UHTTPD_CONF_OPTS += -DLUAPATH=/usr/lib/lua/$(LUAINTERPRETER_ABIVER) \
+	-DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include
+else
+UHTTPD_CONF_OPTS += -DLUA_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_USTREAM_SSL),y)
+UHTTPD_DEPENDENCIES += ustream-ssl
+else
+UHTTPD_CONF_OPTS += -DTLS_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_UBUS),y)
+UHTTPD_DEPENDENCIES += ubus
+else
+UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=OFF
+endif
+
+$(eval $(cmake-package))
Signature · 1 line
2.6.2
#6 lore raw

PATCH 4/4 uhttpd: new package

Hi Rahul,

Just a few small remarks, otherwise looks good.

On 16-09-16 11:16, Rahul Jain wrote:
[snip]

package/uhttpd/Config.in line 5

Quoted 11 lines
package/uhttpd/Config.in new file +5 -0
new file mode 100644
index 0000000..ec105ee
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_UHTTPD
+	bool "uhttpd"
+	depends on !BR2_STATIC_LIBS # dlopen()
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
+	depends on BR2_USE_MMU # fork()

It's incredible that a tiny HTTP server has all these arch dependencies :-)

package/uhttpd/Config.in line 13

Quoted 8 lines
package/uhttpd/Config.in new file +8 -0
+	select BR2_PACKAGE_LIBUBOX
+	select BR2_PACKAGE_JSON_C
+	help
+	  uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
+	  support. It is intended as a drop-in replacement for the Busybox
+	  HTTP daemon.
+
+	  https://git.openwrt.org/?p=project/uhttpd.git;a=summary

Perhaps this is a slightly more useful URL:

https://wiki.openwrt.org/doc/howto/http.uhttpd

Quoted 11 lines
package/uhttpd/Config.in new file +5 -0
+
+comment "uhttpd needs a toolchain w/ dynamic library"
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on BR2_USE_MMU
+	depends on BR2_STATIC_LIBS
package/uhttpd/uhttpd.mk new file +0 -0
new file mode 100644
index 0000000..d336ff1

package/uhttpd/uhttpd.mk line 8

Quoted 8 lines
package/uhttpd/uhttpd.mk new file +8 -0
@@ -0,0 +1,32 @@
+################################################################################
+#
+# uhttpd
+#
+################################################################################
+
+UHTTPD_VERSION = 59e0c739634f46a164d939e54416287b91ff8a9b
+UHTTPD_SITE = git://git.openwrt.org/project/uhttpd.git

We prefer http URLs, they have a better chance of passing company firewalls.

Also, please add a hash file.

package/uhttpd/uhttpd.mk line 12

Quoted 4 lines
package/uhttpd/uhttpd.mk new file +4 -0
+UHTTPD_LICENSE = ISC
+UHTTPD_DEPENDENCIES = libubox json-c
+
+ifeq ($(BR2_PACKAGE_LUA_5_1),y)

Does it work with luajit as well? We don't do it anywhere else at the moment,
but perhaps a condition like

ifeq ($(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION),"5.1")

would be fitting.

package/uhttpd/uhttpd.mk line 14

Quoted 2 lines
package/uhttpd/uhttpd.mk new file +2 -0
+UHTTPD_DEPENDENCIES += lua
+UHTTPD_CONF_OPTS += -DLUAPATH=/usr/lib/lua/$(LUAINTERPRETER_ABIVER) \

I don't see LUAPATH used anywhere?

I would add an explicit -DLUA_SUPPORT=ON

package/uhttpd/uhttpd.mk line 15

Quoted 1 line
package/uhttpd/uhttpd.mk new file +1 -0
+	-DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include

Is this really needed? It looks like CMakeLists will discover this itself with
its home-grown variant of pkg_check_modules. And you don't specify LUA_LIBS so it will use pkg-config for that anyway.

package/uhttpd/uhttpd.mk line 21

Quoted 6 lines
package/uhttpd/uhttpd.mk new file +6 -0
+else
+UHTTPD_CONF_OPTS += -DLUA_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_USTREAM_SSL),y)
+UHTTPD_DEPENDENCIES += ustream-ssl

Explicit -DTLS_SUPPORT=ON

package/uhttpd/uhttpd.mk line 27

Quoted 6 lines
package/uhttpd/uhttpd.mk new file +6 -0
+else
+UHTTPD_CONF_OPTS += -DTLS_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_UBUS),y)
+UHTTPD_DEPENDENCIES += ubus

Same here.

Regards,
Arnout

Quoted 6 lines
package/uhttpd/uhttpd.mk new file +5 -0
+else
+UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=OFF
+endif
+
+$(eval $(cmake-package))
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
author
#7 lore raw

PATCH 4/4 uhttpd: new package

Hi Arnout,

Thanks for your review comments.

Quoted 1 line

Does it work with luajit as well?

yes

I have fixed review comments in following patch
http://patchwork.ozlabs.org/patch/673249/

Thanks,
Rahul Jain

Quoted 110 lines · Arnout Vandecappelle

Hi Rahul,

Just a few small remarks, otherwise looks good.

On 16-09-16 11:16, Rahul Jain wrote:
[snip]

package/uhttpd/Config.in line 5

Quoted 11 lines
package/uhttpd/Config.in new file +5 -0
new file mode 100644
index 0000000..ec105ee
@@ -0,0 +1,18 @@
+config BR2_PACKAGE_UHTTPD
+	bool "uhttpd"
+	depends on !BR2_STATIC_LIBS # dlopen()
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4 # json-c
+	depends on BR2_USE_MMU # fork()

It's incredible that a tiny HTTP server has all these arch dependencies :-)

package/uhttpd/Config.in line 13

Quoted 8 lines
package/uhttpd/Config.in new file +8 -0
+	select BR2_PACKAGE_LIBUBOX
+	select BR2_PACKAGE_JSON_C
+	help
+	  uHTTPd is a tiny single threaded HTTP server with TLS, CGI and Lua
+	  support. It is intended as a drop-in replacement for the Busybox
+	  HTTP daemon.
+
+	  https://git.openwrt.org/?p=project/uhttpd.git;a=summary

Perhaps this is a slightly more useful URL:

https://wiki.openwrt.org/doc/howto/http.uhttpd

Quoted 11 lines
package/uhttpd/Config.in new file +5 -0
+
+comment "uhttpd needs a toolchain w/ dynamic library"
+	depends on BR2_TOOLCHAIN_HAS_SYNC_4
+	depends on BR2_USE_MMU
+	depends on BR2_STATIC_LIBS
package/uhttpd/uhttpd.mk new file +0 -0
new file mode 100644
index 0000000..d336ff1

package/uhttpd/uhttpd.mk line 8

Quoted 8 lines
package/uhttpd/uhttpd.mk new file +8 -0
@@ -0,0 +1,32 @@
+################################################################################
+#
+# uhttpd
+#
+################################################################################
+
+UHTTPD_VERSION = 59e0c739634f46a164d939e54416287b91ff8a9b
+UHTTPD_SITE = git://git.openwrt.org/project/uhttpd.git

We prefer http URLs, they have a better chance of passing company firewalls.

Also, please add a hash file.

package/uhttpd/uhttpd.mk line 12

Quoted 4 lines
package/uhttpd/uhttpd.mk new file +4 -0
+UHTTPD_LICENSE = ISC
+UHTTPD_DEPENDENCIES = libubox json-c
+
+ifeq ($(BR2_PACKAGE_LUA_5_1),y)

Does it work with luajit as well? We don't do it anywhere else at the moment,
but perhaps a condition like

ifeq ($(BR2_PACKAGE_LUAINTERPRETER_ABI_VERSION),"5.1")

would be fitting.

package/uhttpd/uhttpd.mk line 14

Quoted 2 lines
package/uhttpd/uhttpd.mk new file +2 -0
+UHTTPD_DEPENDENCIES += lua
+UHTTPD_CONF_OPTS += -DLUAPATH=/usr/lib/lua/$(LUAINTERPRETER_ABIVER) \

I don't see LUAPATH used anywhere?

I would add an explicit -DLUA_SUPPORT=ON

package/uhttpd/uhttpd.mk line 15

Quoted 1 line
package/uhttpd/uhttpd.mk new file +1 -0
+	-DLUA_CFLAGS=-I$(STAGING_DIR)/usr/include

Is this really needed? It looks like CMakeLists will discover this itself with
its home-grown variant of pkg_check_modules. And you don't specify LUA_LIBS so it will use pkg-config for that anyway.

package/uhttpd/uhttpd.mk line 21

Quoted 6 lines
package/uhttpd/uhttpd.mk new file +6 -0
+else
+UHTTPD_CONF_OPTS += -DLUA_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_USTREAM_SSL),y)
+UHTTPD_DEPENDENCIES += ustream-ssl

Explicit -DTLS_SUPPORT=ON

package/uhttpd/uhttpd.mk line 27

Quoted 6 lines
package/uhttpd/uhttpd.mk new file +6 -0
+else
+UHTTPD_CONF_OPTS += -DTLS_SUPPORT=OFF
+endif
+
+ifeq ($(BR2_PACKAGE_UBUS),y)
+UHTTPD_DEPENDENCIES += ubus

Same here.

Regards,
Arnout

Quoted 6 lines
package/uhttpd/uhttpd.mk new file +5 -0
+else
+UHTTPD_CONF_OPTS += -DUBUS_SUPPORT=OFF
+endif
+
+$(eval $(cmake-package))