Browse Source

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>
lilik-openwrt-22.03
Peter Stadler 5 years ago
parent
commit
96d1910d81
14 changed files with 226 additions and 100 deletions
  1. +0
    -71
      net/uwsgi-cgi/Makefile
  2. +0
    -17
      net/uwsgi-cgi/patches/001-remove-unused-deps.patch
  3. +168
    -0
      net/uwsgi/Makefile
  4. +11
    -2
      net/uwsgi/files-luci-support/luci-cgi_io.ini
  5. +13
    -6
      net/uwsgi/files-luci-support/luci-webui.ini
  6. +2
    -3
      net/uwsgi/files/emperor.ini
  7. +1
    -0
      net/uwsgi/files/uwsgi.init
  8. +0
    -0
      net/uwsgi/patches/001-dont-hardcode-zlib.patch
  9. +0
    -0
      net/uwsgi/patches/002-dont-override-toolchain-optimization.patch
  10. +1
    -1
      net/uwsgi/patches/003-hard-code-Linux-as-compilation-os.patch
  11. +0
    -0
      net/uwsgi/patches/010-uclibc-ng.patch
  12. +0
    -0
      net/uwsgi/patches/020-uwsgiconfig-system-python3.patch
  13. +0
    -0
      net/uwsgi/patches/030-plugins-cgi_adds_dontresolve_option.patch
  14. +30
    -0
      net/uwsgi/src/buildconf/openwrt.ini

+ 0
- 71
net/uwsgi-cgi/Makefile View File

@ -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))

+ 0
- 17
net/uwsgi-cgi/patches/001-remove-unused-deps.patch View File

@ -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
- 0
net/uwsgi/Makefile View 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))

net/uwsgi-cgi/files-luci-support/luci-cgi_io.ini → net/uwsgi/files-luci-support/luci-cgi_io.ini View File


net/uwsgi-cgi/files-luci-support/luci-webui.ini → net/uwsgi/files-luci-support/luci-webui.ini View File


net/uwsgi-cgi/files/emperor.ini → net/uwsgi/files/emperor.ini View File


net/uwsgi-cgi/files/uwsgi.init → net/uwsgi/files/uwsgi.init View File


net/uwsgi-cgi/patches/002-dont-hardcode-zlib.patch → net/uwsgi/patches/001-dont-hardcode-zlib.patch View File


net/uwsgi-cgi/patches/003-dont-override-toolchain-optimization.patch → net/uwsgi/patches/002-dont-override-toolchain-optimization.patch View File


net/uwsgi-cgi/patches/004-hard-code-Linux-as-compilation-os.patch → net/uwsgi/patches/003-hard-code-Linux-as-compilation-os.patch View File


net/uwsgi-cgi/patches/010-uclibc-ng.patch → net/uwsgi/patches/010-uclibc-ng.patch View File


net/uwsgi-cgi/patches/020-uwsgiconfig-system-python3.patch → net/uwsgi/patches/020-uwsgiconfig-system-python3.patch View File


net/uwsgi-cgi/patches/030-plugins-cgi_adds_dontresolve_option.patch → net/uwsgi/patches/030-plugins-cgi_adds_dontresolve_option.patch View File


+ 30
- 0
net/uwsgi/src/buildconf/openwrt.ini View 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…
Cancel
Save