3c4858eeb2
Support the usage of the OpenSSL command-line tool for generating the SSL certificate for uhttpd. Traditionally 'px5g' based on PolarSSL (or mbedTLS in LEDE), has been used for the creation. uhttpd init script is enhanced by adding detection of an installed openssl command-line binary (provided by 'openssl-util' package), and if found, the tool is used for certificate generation. Note: After this patch the script prefers to use the OpenSSL tool if both it and px5g are installed. This enables creating a truly OpenSSL-only version of LuCI without dependency to PolarSSL/mbedTLS based px5g. Signed-off-by: Hannu Nyman <hannu.nyman@iki.fi>
153 lines
3.7 KiB
Makefile
153 lines
3.7 KiB
Makefile
#
|
|
# Copyright (C) 2010-2015 Jo-Philipp Wich <jo@mein.io>
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=uhttpd
|
|
PKG_VERSION:=2016-10-04
|
|
PKG_RELEASE=$(PKG_SOURCE_VERSION)
|
|
|
|
PKG_SOURCE_PROTO:=git
|
|
PKG_SOURCE_URL=$(LEDE_GIT)/project/uhttpd.git
|
|
PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_VERSION)
|
|
PKG_SOURCE_VERSION:=9d9f07142bbef1c63a79620967a847a9493105e5
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
|
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
|
PKG_LICENSE:=ISC
|
|
|
|
PKG_BUILD_DEPENDS = ustream-ssl
|
|
|
|
include $(INCLUDE_DIR)/package.mk
|
|
include $(INCLUDE_DIR)/cmake.mk
|
|
include $(INCLUDE_DIR)/version.mk
|
|
|
|
define Package/uhttpd/default
|
|
SECTION:=net
|
|
CATEGORY:=Network
|
|
SUBMENU:=Web Servers/Proxies
|
|
TITLE:=uHTTPd - tiny, single threaded HTTP server
|
|
endef
|
|
|
|
define Package/uhttpd
|
|
$(Package/uhttpd/default)
|
|
DEPENDS:=+libubox +libblobmsg-json +libjson-script
|
|
endef
|
|
|
|
define Package/uhttpd/description
|
|
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.
|
|
endef
|
|
|
|
define Package/uhttpd/config
|
|
config PACKAGE_uhttpd_debug
|
|
bool "Build with debug messages"
|
|
default n
|
|
endef
|
|
|
|
|
|
define Package/uhttpd-mod-tls
|
|
$(Package/uhttpd/default)
|
|
TITLE+= (TLS plugin)
|
|
DEPENDS:=uhttpd \
|
|
+PACKAGE_uhttpd-mod-tls_polarssl:libustream-polarssl \
|
|
+PACKAGE_uhttpd-mod-tls_mbedtls:libustream-mbedtls \
|
|
+PACKAGE_uhttpd-mod-tls_cyassl:libustream-cyassl \
|
|
+PACKAGE_uhttpd-mod-tls_openssl:libustream-openssl
|
|
endef
|
|
|
|
define Package/uhttpd-mod-tls/description
|
|
The TLS plugin adds HTTPS support to uHTTPd.
|
|
endef
|
|
|
|
define Package/uhttpd-mod-tls/config
|
|
choice
|
|
depends on PACKAGE_uhttpd-mod-tls
|
|
prompt "TLS Provider"
|
|
default PACKAGE_uhttpd-mod-tls_polarssl
|
|
|
|
config PACKAGE_uhttpd-mod-tls_mbedtls
|
|
bool "mbedTLS"
|
|
|
|
config PACKAGE_uhttpd-mod-tls_polarssl
|
|
bool "PolarSSL"
|
|
|
|
config PACKAGE_uhttpd-mod-tls_cyassl
|
|
bool "CyaSSL"
|
|
|
|
config PACKAGE_uhttpd-mod-tls_openssl
|
|
bool "OpenSSL"
|
|
endchoice
|
|
endef
|
|
|
|
define Package/uhttpd-mod-lua
|
|
$(Package/uhttpd/default)
|
|
TITLE+= (Lua plugin)
|
|
DEPENDS:=uhttpd +liblua
|
|
endef
|
|
|
|
define Package/uhttpd-mod-lua/description
|
|
The Lua plugin adds a CGI-like Lua runtime interface to uHTTPd.
|
|
endef
|
|
|
|
|
|
define Package/uhttpd-mod-ubus
|
|
$(Package/uhttpd/default)
|
|
TITLE+= (ubus plugin)
|
|
DEPENDS:=uhttpd +libubus +libblobmsg-json
|
|
endef
|
|
|
|
define Package/uhttpd-mod-ubus/description
|
|
The ubus plugin adds a HTTP/JSON RPC proxy for ubus and publishes the
|
|
session.* namespace and procedures.
|
|
endef
|
|
|
|
define Package/uhttpd/conffiles
|
|
/etc/config/uhttpd
|
|
/etc/uhttpd.crt
|
|
/etc/uhttpd.key
|
|
endef
|
|
|
|
ifneq ($(CONFIG_USE_GLIBC),)
|
|
TARGET_CFLAGS += -D_DEFAULT_SOURCE
|
|
endif
|
|
|
|
TARGET_LDFLAGS += -lcrypt
|
|
|
|
CMAKE_OPTIONS = -DTLS_SUPPORT=on
|
|
|
|
define Package/uhttpd/install
|
|
$(INSTALL_DIR) $(1)/etc/init.d
|
|
$(INSTALL_BIN) ./files/uhttpd.init $(1)/etc/init.d/uhttpd
|
|
$(INSTALL_DIR) $(1)/etc/config
|
|
$(INSTALL_CONF) ./files/uhttpd.config $(1)/etc/config/uhttpd
|
|
$(VERSION_SED_SCRIPT) $(1)/etc/config/uhttpd
|
|
$(INSTALL_DIR) $(1)/usr/sbin
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd $(1)/usr/sbin/uhttpd
|
|
endef
|
|
|
|
define Package/uhttpd-mod-tls/install
|
|
true
|
|
endef
|
|
|
|
define Package/uhttpd-mod-lua/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_lua.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/uhttpd-mod-ubus/install
|
|
$(INSTALL_DIR) $(1)/usr/lib $(1)/etc/uci-defaults
|
|
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uhttpd_ubus.so $(1)/usr/lib/
|
|
$(INSTALL_DATA) ./files/ubus.default $(1)/etc/uci-defaults/00_uhttpd_ubus
|
|
endef
|
|
|
|
|
|
$(eval $(call BuildPackage,uhttpd))
|
|
$(eval $(call BuildPackage,uhttpd-mod-tls))
|
|
$(eval $(call BuildPackage,uhttpd-mod-lua))
|
|
$(eval $(call BuildPackage,uhttpd-mod-ubus))
|