Merge pull request #9855 from peter-stadler/uwsgi
uwsgi: add package with modules (currently cgi and python plugin) [RFC]
This commit is contained in:
commit
e020c10eb2
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]
|
[uwsgi]
|
||||||
strict = true
|
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-mode = true
|
||||||
cgi = /www/
|
cgi = /www/
|
||||||
|
chdir = /usr/lib/lua/luci/
|
||||||
buffer-size = 10000
|
buffer-size = 10000
|
||||||
reload-mercy = 8
|
reload-mercy = 8
|
||||||
max-requests = 2000
|
max-requests = 2000
|
||||||
|
@ -12,11 +19,13 @@ no-orphans = true
|
||||||
post-buffering = 8192
|
post-buffering = 8192
|
||||||
socket-timeout = 120
|
socket-timeout = 120
|
||||||
thunder-lock = true
|
thunder-lock = true
|
||||||
#logger = syslog:uwsgi-luci-cgi_io
|
plugin = syslog
|
||||||
disable-logging = true
|
disable-logging = true
|
||||||
|
req-logger = syslog:uwsgi-luci-cgi_io
|
||||||
|
log-format=%(method) %(uri) => return %(status) (%(rsize) bytes in %(msecs) ms)
|
||||||
chmod-socket = 666
|
chmod-socket = 666
|
||||||
cgi-safe = /usr/libexec/cgi-io
|
cgi-safe = /usr/libexec/cgi-io
|
||||||
cgi-dontresolve = true
|
cgi-dontresolve = true
|
||||||
cgi-close-stdin-on-eof = true
|
cgi-close-stdin-on-eof = true
|
||||||
cheap = true
|
cheap = true
|
||||||
idle = 360
|
idle = 360
|
|
@ -1,5 +1,11 @@
|
||||||
[uwsgi]
|
[uwsgi]
|
||||||
strict = true
|
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-mode = true
|
||||||
cgi = /www/
|
cgi = /www/
|
||||||
chdir = /usr/lib/lua/luci/
|
chdir = /usr/lib/lua/luci/
|
||||||
|
@ -13,16 +19,17 @@ enable-threads = true
|
||||||
post-buffering = 8192
|
post-buffering = 8192
|
||||||
socket-timeout = 120
|
socket-timeout = 120
|
||||||
thunder-lock = true
|
thunder-lock = true
|
||||||
#logger = syslog:uwsgi-luci
|
plugin = syslog
|
||||||
|
logger = luci syslog:uwsgi-luci
|
||||||
|
log-route = luci luci:
|
||||||
disable-logging = true
|
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
|
threads = 3
|
||||||
processes = 3
|
processes = 3
|
||||||
chmod-socket = 666
|
|
||||||
cheap = true
|
|
||||||
cheaper-algo = spare
|
cheaper-algo = spare
|
||||||
cheaper = 1
|
cheaper = 1
|
||||||
cheaper-initial = 2
|
cheaper-initial = 1
|
||||||
cheaper-step = 1
|
cheaper-step = 1
|
||||||
master = true
|
master = true
|
||||||
idle = 360
|
idle = 360
|
|
@ -1,10 +1,9 @@
|
||||||
[uwsgi]
|
[uwsgi]
|
||||||
strict = true
|
strict = true
|
||||||
pidfile = /var/run/uwsgi.pid
|
pidfile = /var/run/uwsgi.pid
|
||||||
emperor = /etc/uwsgi/vassals/*.ini
|
emperor = /etc/uwsgi/vassals/*.ini
|
||||||
logger = syslog:uwsgi-emperor
|
early-emperor = true
|
||||||
vacuum = true
|
vacuum = true
|
||||||
emperor-on-demand-directory = /var/run/
|
emperor-on-demand-directory = /var/run/
|
||||||
emperor-required-heartbeat = 99
|
emperor-required-heartbeat = 99
|
||||||
vassal-set = die-on-idle=true
|
vassal-set = die-on-idle=true
|
||||||
#disable-logging = true
|
|
|
@ -6,6 +6,7 @@ USE_PROCD=1
|
||||||
start_service() {
|
start_service() {
|
||||||
procd_open_instance
|
procd_open_instance
|
||||||
procd_set_param command /usr/sbin/uwsgi --ini /etc/uwsgi/emperor.ini
|
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 file /etc/uwsgi/emperor.ini
|
||||||
procd_set_param respawn
|
procd_set_param respawn
|
||||||
procd_close_instance
|
procd_close_instance
|
|
@ -8,7 +8,7 @@
|
||||||
-uwsgi_os_k = re.split('[-+_]', os.uname()[2])[0]
|
-uwsgi_os_k = re.split('[-+_]', os.uname()[2])[0]
|
||||||
-uwsgi_os_v = os.uname()[3]
|
-uwsgi_os_v = os.uname()[3]
|
||||||
+uwsgi_os = "Linux"
|
+uwsgi_os = "Linux"
|
||||||
+uwsgi_os_k = "4.4.0"
|
+uwsgi_os_k = os.environ['LINUX_UNAME_VERSION']
|
||||||
+uwsgi_os_v = "Linux"
|
+uwsgi_os_v = "Linux"
|
||||||
uwsgi_cpu = os.uname()[4]
|
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