uwsgi: add modular package superseeding uwsgi-cgi
Provide the minimal applications and plugins for: cgi, filelog, syslog and python3. More plugins can be added if needed by other packages. Autostart uwsgi in emperor mode loading vassals on demand. For now, include luci-support (maybe it will be moved to another package), which uses the syslog plugin by default. Signed-off-by: Peter Stadler <peter.stadler@student.uibk.ac.at>
This commit is contained in:
parent
6990e2a1e5
commit
96d1910d81
14 changed files with 226 additions and 100 deletions
|
@ -1,71 +0,0 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=uwsgi-cgi
|
||||
PKG_VERSION:=2.0.18
|
||||
PKG_RELEASE:=4
|
||||
|
||||
PKG_SOURCE_URL= \
|
||||
https://projects.unbit.it/downloads \
|
||||
https://codeload.github.com/unbit/uwsgi/tar.gz/$(PKG_VERSION)?
|
||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||
PKG_HASH:=4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/uwsgi-$(PKG_VERSION)
|
||||
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
PKG_BUILD_DEPENDS:=python3/host
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
|
||||
define Package/uwsgi-cgi
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=The uWSGI server
|
||||
URL:=https://projects.unbit.it/uwsgi
|
||||
DEPENDS:=+libcap +jansson +libuuid
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi-luci-support
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=Support files for LuCI on Nginx
|
||||
DEPENDS:=+uwsgi-cgi
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi/description
|
||||
The uWSGI project build with cgi profile
|
||||
endef
|
||||
|
||||
MAKE_VARS+=\
|
||||
CPP=$(TARGET_CROSS)cpp \
|
||||
PYTHON=$(STAGING_DIR_HOSTPKG)/bin/python3
|
||||
|
||||
define Build/Compile
|
||||
$(call Build/Compile/Default,PROFILE=cgi)
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uwsgi $(1)/usr/sbin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/uwsgi.init $(1)/etc/init.d/uwsgi
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/uwsgi
|
||||
$(INSTALL_DATA) ./files/emperor.ini $(1)/etc/uwsgi/emperor.ini
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/uwsgi/vassals
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi-luci-support/install
|
||||
$(INSTALL_DIR) $(1)/etc/uwsgi/vassals
|
||||
$(INSTALL_DATA) ./files-luci-support/luci-webui.ini $(1)/etc/uwsgi/vassals/luci-webui.ini
|
||||
$(INSTALL_DATA) ./files-luci-support/luci-cgi_io.ini $(1)/etc/uwsgi/vassals/luci-cgi_io.ini
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,uwsgi-cgi))
|
||||
$(eval $(call BuildPackage,uwsgi-cgi-luci-support))
|
|
@ -1,17 +0,0 @@
|
|||
--- a/buildconf/base.ini
|
||||
+++ b/buildconf/base.ini
|
||||
@@ -1,9 +1,9 @@
|
||||
[uwsgi]
|
||||
-xml = auto
|
||||
-yaml = true
|
||||
-json = auto
|
||||
-ssl = auto
|
||||
-pcre = auto
|
||||
+xml = false
|
||||
+yaml = embedded
|
||||
+json = jansson
|
||||
+ssl = false
|
||||
+pcre = false
|
||||
routing = auto
|
||||
debug = false
|
||||
unbit = false
|
168
net/uwsgi/Makefile
Normal file
168
net/uwsgi/Makefile
Normal file
|
@ -0,0 +1,168 @@
|
|||
include $(TOPDIR)/rules.mk
|
||||
|
||||
PKG_NAME:=uwsgi
|
||||
PKG_VERSION:=2.0.18
|
||||
PKG_RELEASE:=1
|
||||
|
||||
PKG_SOURCE:=uwsgi-$(PKG_VERSION).tar.gz
|
||||
PKG_SOURCE_URL=https://files.pythonhosted.org/packages/source/u/uwsgi/
|
||||
PKG_HASH:=4972ac538800fb2d421027f49b4a1869b66048839507ccf0aa2fda792d99f583
|
||||
PKG_BUILD_DIR:=$(BUILD_DIR)/uwsgi-$(PKG_VERSION)
|
||||
PKG_BUILD_DEPENDS:=python3/host
|
||||
|
||||
PKG_LICENSE:=GPL-2.0-or-later
|
||||
PKG_LICENSE_FILES:=LICENSE
|
||||
PKG_MAINTAINER:=Ansuel Smith <ansuelsmth@gmail.com>
|
||||
|
||||
include $(INCLUDE_DIR)/package.mk
|
||||
include ../../lang/python/python3-package.mk
|
||||
#for LINUX_UNAME_VERSION:
|
||||
include $(INCLUDE_DIR)/kernel.mk
|
||||
|
||||
define Package/uwsgi
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=The uWSGI server
|
||||
URL:=https://uwsgi-docs.readthedocs.io/en/latest/
|
||||
DEPENDS:=+libpcre +libcap +libuuid
|
||||
MENU:=1
|
||||
endef
|
||||
|
||||
define Package/uwsgi-logfile-plugin
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=The Logfile plugin for the uWSGI server
|
||||
DEPENDS:=uwsgi
|
||||
MDEPENDS:=uwsgi
|
||||
endef
|
||||
|
||||
define Package/uwsgi-syslog-plugin
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=The Syslog plugin for the uWSGI server
|
||||
DEPENDS:=uwsgi
|
||||
MDEPENDS:=uwsgi
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi-plugin
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=The CGI plugin for the uWSGI server
|
||||
DEPENDS:=uwsgi
|
||||
MDEPENDS:=uwsgi
|
||||
endef
|
||||
|
||||
define Package/uwsgi-python3-plugin
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=The Python3 plugin for the uWSGI server
|
||||
DEPENDS:=uwsgi +python3-light
|
||||
MDEPENDS:=uwsgi
|
||||
endef
|
||||
|
||||
define Package/uwsgi-luci-support
|
||||
SECTION:=net
|
||||
CATEGORY:=Network
|
||||
SUBMENU:=Web Servers/Proxies
|
||||
TITLE:=Support files for LuCI on Nginx
|
||||
DEPENDS:=uwsgi +uwsgi-syslog-plugin +uwsgi-cgi-plugin
|
||||
MDEPENDS:=uwsgi
|
||||
endef
|
||||
|
||||
define Package/uwsgi/description
|
||||
The uWSGI project (to be used together with nginx or nginx-ssl).
|
||||
endef
|
||||
|
||||
define Package/uwsgi-logfile-plugin/description
|
||||
The Logfile plugin for the uWSGI project.
|
||||
endef
|
||||
|
||||
define Package/uwsgi-syslog-plugin/description
|
||||
The Syslog plugin for the uWSGI project.
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi-plugin/description
|
||||
The CGI plugin for the uWSGI project.
|
||||
endef
|
||||
|
||||
define Package/uwsgi-python3-plugin/description
|
||||
The Python3 plugin for the uWSGI project.
|
||||
endef
|
||||
|
||||
define Package/uwsgi-luci-support/description
|
||||
Support files for LuCI on Nginx
|
||||
endef
|
||||
|
||||
MAKE_VARS+=\
|
||||
CPP=$(TARGET_CROSS)cpp \
|
||||
PYTHON=$(STAGING_DIR_HOSTPKG)/bin/python3 \
|
||||
LINUX_UNAME_VERSION=$(LINUX_UNAME_VERSION)
|
||||
|
||||
define Build/Compile
|
||||
$(call Build/Compile/Default,PROFILE=openwrt)
|
||||
$(call Build/Compile/Default,plugin.logfile PROFILE=openwrt)
|
||||
$(call Build/Compile/Default,plugin.syslog PROFILE=openwrt)
|
||||
$(call Build/Compile/Default,plugin.cgi PROFILE=openwrt)
|
||||
$(call Build/Compile/HostPy3RunTarget, \
|
||||
cd $(PKG_BUILD_DIR), \
|
||||
uwsgiconfig.py --plugin plugins/python openwrt, \
|
||||
CPP="$(TARGET_CROSS)cpp" \
|
||||
LINUX_UNAME_VERSION=$(LINUX_UNAME_VERSION) \
|
||||
CFLAGS="$(TARGET_CPPFLAGS) -I$(PYTHON3_INC_DIR) $(TARGET_CFLAGS)" \
|
||||
)
|
||||
endef
|
||||
|
||||
define Package/uwsgi/install
|
||||
$(INSTALL_DIR) $(1)/usr/sbin
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/uwsgi $(1)/usr/sbin/
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/init.d
|
||||
$(INSTALL_BIN) ./files/uwsgi.init $(1)/etc/init.d/uwsgi
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/uwsgi
|
||||
$(INSTALL_CONF) ./files/emperor.ini $(1)/etc/uwsgi/emperor.ini
|
||||
|
||||
$(INSTALL_DIR) $(1)/etc/uwsgi/vassals
|
||||
endef
|
||||
|
||||
define Package/uwsgi/conffiles
|
||||
/etc/uwsgi/emperor.ini
|
||||
endef
|
||||
|
||||
define Package/uwsgi-logfile-plugin/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/uwsgi
|
||||
$(CP) $(PKG_BUILD_DIR)/logfile_plugin.so $(1)/usr/lib/uwsgi/
|
||||
endef
|
||||
|
||||
define Package/uwsgi-syslog-plugin/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/uwsgi
|
||||
$(CP) $(PKG_BUILD_DIR)/syslog_plugin.so $(1)/usr/lib/uwsgi/
|
||||
endef
|
||||
|
||||
define Package/uwsgi-cgi-plugin/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/uwsgi
|
||||
$(CP) $(PKG_BUILD_DIR)/cgi_plugin.so $(1)/usr/lib/uwsgi/
|
||||
endef
|
||||
|
||||
define Package/uwsgi-python3-plugin/install
|
||||
$(INSTALL_DIR) $(1)/usr/lib/uwsgi
|
||||
$(INSTALL_BIN) $(PKG_BUILD_DIR)/python_plugin.so $(1)/usr/lib/uwsgi/
|
||||
endef
|
||||
|
||||
define Package/uwsgi-luci-support/install
|
||||
$(INSTALL_DIR) $(1)/etc/uwsgi/vassals
|
||||
$(INSTALL_DATA) ./files-luci-support/luci-webui.ini $(1)/etc/uwsgi/vassals/luci-webui.ini
|
||||
$(INSTALL_DATA) ./files-luci-support/luci-cgi_io.ini $(1)/etc/uwsgi/vassals/luci-cgi_io.ini
|
||||
endef
|
||||
|
||||
$(eval $(call BuildPackage,uwsgi))
|
||||
$(eval $(call BuildPackage,uwsgi-logfile-plugin))
|
||||
$(eval $(call BuildPackage,uwsgi-syslog-plugin))
|
||||
$(eval $(call BuildPackage,uwsgi-cgi-plugin))
|
||||
$(eval $(call BuildPackage,uwsgi-python3-plugin))
|
||||
$(eval $(call BuildPackage,uwsgi-luci-support))
|
|
@ -1,7 +1,14 @@
|
|||
[uwsgi]
|
||||
strict = true
|
||||
if-not-env = UWSGI_EMPEROR_FD
|
||||
socket = /var/run/luci-cgi_io.socket
|
||||
chmod-socket = 666
|
||||
cheap = true
|
||||
end-if =
|
||||
plugin = cgi
|
||||
cgi-mode = true
|
||||
cgi = /www/
|
||||
chdir = /usr/lib/lua/luci/
|
||||
buffer-size = 10000
|
||||
reload-mercy = 8
|
||||
max-requests = 2000
|
||||
|
@ -12,11 +19,13 @@ no-orphans = true
|
|||
post-buffering = 8192
|
||||
socket-timeout = 120
|
||||
thunder-lock = true
|
||||
#logger = syslog:uwsgi-luci-cgi_io
|
||||
plugin = syslog
|
||||
disable-logging = true
|
||||
req-logger = syslog:uwsgi-luci-cgi_io
|
||||
log-format=%(method) %(uri) => return %(status) (%(rsize) bytes in %(msecs) ms)
|
||||
chmod-socket = 666
|
||||
cgi-safe = /usr/libexec/cgi-io
|
||||
cgi-dontresolve = true
|
||||
cgi-close-stdin-on-eof = true
|
||||
cheap = true
|
||||
idle = 360
|
||||
idle = 360
|
|
@ -1,5 +1,11 @@
|
|||
[uwsgi]
|
||||
strict = true
|
||||
if-not-env = UWSGI_EMPEROR_FD
|
||||
socket = /var/run/luci-webui.socket
|
||||
chmod-socket = 666
|
||||
cheap = true
|
||||
end-if =
|
||||
plugin = cgi
|
||||
cgi-mode = true
|
||||
cgi = /www/
|
||||
chdir = /usr/lib/lua/luci/
|
||||
|
@ -13,16 +19,17 @@ enable-threads = true
|
|||
post-buffering = 8192
|
||||
socket-timeout = 120
|
||||
thunder-lock = true
|
||||
#logger = syslog:uwsgi-luci
|
||||
plugin = syslog
|
||||
logger = luci syslog:uwsgi-luci
|
||||
log-route = luci luci:
|
||||
disable-logging = true
|
||||
log-format = %(addr) %(method) %(uri) => generated %(rsize) bytes in %(msecs) msecs
|
||||
req-logger = syslog:uwsgi-luci
|
||||
log-format=%(method) %(uri) => return %(status) (%(rsize) bytes in %(msecs) ms)
|
||||
threads = 3
|
||||
processes = 3
|
||||
chmod-socket = 666
|
||||
cheap = true
|
||||
cheaper-algo = spare
|
||||
cheaper = 1
|
||||
cheaper-initial = 2
|
||||
cheaper-initial = 1
|
||||
cheaper-step = 1
|
||||
master = true
|
||||
idle = 360
|
||||
idle = 360
|
|
@ -1,10 +1,9 @@
|
|||
[uwsgi]
|
||||
strict = true
|
||||
pidfile = /var/run/uwsgi.pid
|
||||
pidfile = /var/run/uwsgi.pid
|
||||
emperor = /etc/uwsgi/vassals/*.ini
|
||||
logger = syslog:uwsgi-emperor
|
||||
early-emperor = true
|
||||
vacuum = true
|
||||
emperor-on-demand-directory = /var/run/
|
||||
emperor-required-heartbeat = 99
|
||||
vassal-set = die-on-idle=true
|
||||
#disable-logging = true
|
|
@ -6,6 +6,7 @@ USE_PROCD=1
|
|||
start_service() {
|
||||
procd_open_instance
|
||||
procd_set_param command /usr/sbin/uwsgi --ini /etc/uwsgi/emperor.ini
|
||||
procd_set_param stderr 1
|
||||
procd_set_param file /etc/uwsgi/emperor.ini
|
||||
procd_set_param respawn
|
||||
procd_close_instance
|
|
@ -8,7 +8,7 @@
|
|||
-uwsgi_os_k = re.split('[-+_]', os.uname()[2])[0]
|
||||
-uwsgi_os_v = os.uname()[3]
|
||||
+uwsgi_os = "Linux"
|
||||
+uwsgi_os_k = "4.4.0"
|
||||
+uwsgi_os_k = os.environ['LINUX_UNAME_VERSION']
|
||||
+uwsgi_os_v = "Linux"
|
||||
uwsgi_cpu = os.uname()[4]
|
||||
|
30
net/uwsgi/src/buildconf/openwrt.ini
Normal file
30
net/uwsgi/src/buildconf/openwrt.ini
Normal file
|
@ -0,0 +1,30 @@
|
|||
[uwsgi]
|
||||
xml = false
|
||||
yaml = false
|
||||
json = false
|
||||
ssl = false
|
||||
pcre = true
|
||||
routing = auto
|
||||
debug = false
|
||||
unbit = false
|
||||
malloc_implementation = libc
|
||||
extras =
|
||||
plugins =
|
||||
bin_name = uwsgi
|
||||
append_version =
|
||||
plugin_dir = /usr/lib/uwsgi
|
||||
plugin_build_dir = .
|
||||
embedded_plugins =
|
||||
as_shared_library = false
|
||||
|
||||
locking = auto
|
||||
event = auto
|
||||
timer = auto
|
||||
filemonitor = auto
|
||||
|
||||
blacklist =
|
||||
whitelist =
|
||||
|
||||
embed_files =
|
||||
|
||||
embed_config =
|
Loading…
Reference in a new issue