From 759b5cd87570597cd3364ede331a53e383661ff1 Mon Sep 17 00:00:00 2001 From: Silvan Calarco Date: Fri, 5 Jan 2024 18:53:24 +0100 Subject: [PATCH] package created using the webbuild interface [release 2.0.19.1-1mamba;Sat Sep 18 2021] --- README.md | 2 + emperor.ini | 2 + emperor.uwsgi.service | 15 +++ emperor.uwsgi.socket | 9 ++ uwsgi-openmamba.ini | 6 + uwsgi.logrotate | 10 ++ uwsgi.spec | 265 ++++++++++++++++++++++++++++++++++++++++++ uwsgi.sysusers | 1 + uwsgi.tmpfiles | 1 + uwsgi_at.service | 15 +++ uwsgi_at.socket | 9 ++ 11 files changed, 335 insertions(+) create mode 100644 emperor.ini create mode 100644 emperor.uwsgi.service create mode 100644 emperor.uwsgi.socket create mode 100644 uwsgi-openmamba.ini create mode 100644 uwsgi.logrotate create mode 100644 uwsgi.spec create mode 100644 uwsgi.sysusers create mode 100644 uwsgi.tmpfiles create mode 100644 uwsgi_at.service create mode 100644 uwsgi_at.socket diff --git a/README.md b/README.md index 469ea90..5250654 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,4 @@ # uwsgi +A full stack for building hosting services. + diff --git a/emperor.ini b/emperor.ini new file mode 100644 index 0000000..ea2c3e6 --- /dev/null +++ b/emperor.ini @@ -0,0 +1,2 @@ +[uwsgi] +emperor = /etc/uwsgi/vassals diff --git a/emperor.uwsgi.service b/emperor.uwsgi.service new file mode 100644 index 0000000..e338afc --- /dev/null +++ b/emperor.uwsgi.service @@ -0,0 +1,15 @@ +[Unit] +Description=uWSGI Emperor +After=syslog.target + +[Service] +ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/emperor.ini +ExecReload=/bin/kill -HUP $MAINPID +ExecStop=/bin/kill -INT $MAINPID +Restart=always +Type=notify +NotifyAccess=all +KillSignal=SIGQUIT + +[Install] +WantedBy=multi-user.target diff --git a/emperor.uwsgi.socket b/emperor.uwsgi.socket new file mode 100644 index 0000000..3ef78a2 --- /dev/null +++ b/emperor.uwsgi.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Socket for uWSGI Emperor + +[Socket] +# Change this to your uwsgi application port or unix socket location +ListenStream=/run/uwsgi/emperor.sock + +[Install] +WantedBy=sockets.target diff --git a/uwsgi-openmamba.ini b/uwsgi-openmamba.ini new file mode 100644 index 0000000..2833dea --- /dev/null +++ b/uwsgi-openmamba.ini @@ -0,0 +1,6 @@ +[uwsgi] +plugin_build_dir = . +plugin_dir = @LIBDIR@/uwsgi +plugins = asyncio, cgi, fiber, gevent, greenlet, php, lua, mono, notfound, psgi, pypy, python, rack, rbthreads, webdav, zabbix +main_plugin = systemd_logger,pam +inherit = base diff --git a/uwsgi.logrotate b/uwsgi.logrotate new file mode 100644 index 0000000..3e8a5b9 --- /dev/null +++ b/uwsgi.logrotate @@ -0,0 +1,10 @@ +/var/log/uwsgi/*.log /var/log/uwsgi/*/*.log { + copytruncate + daily + rotate 7 + compress + delaycompress + missingok + notifempty + su root uwsgi +} diff --git a/uwsgi.spec b/uwsgi.spec new file mode 100644 index 0000000..f912aba --- /dev/null +++ b/uwsgi.spec @@ -0,0 +1,265 @@ +Name: uwsgi +Version: 2.0.19.1 +Release: 1mamba +Summary: A full stack for building hosting services +Group: System/Servers +Vendor: openmamba +Distribution: openmamba +Packager: Silvan Calarco +URL: https://uwsgi-docs.readthedocs.io/en/latest/ +Source: https://github.com/unbit/uwsgi.git/%{version}/uwsgi-%{version}.tar.bz2 +Source1: uwsgi-openmamba.ini +Source2: uwsgi.tmpfiles +Source3: uwsgi.sysusers +Source4: uwsgi_at.service +Source5: uwsgi_at.socket +Source6: uwsgi.logrotate +Source7: emperor.uwsgi.service +Source8: emperor.uwsgi.socket +Source9: emperor.ini +License: GPL +## AUTOBUILDREQ-BEGIN +BuildRequires: apache-mod_php +BuildRequires: glibc-devel +BuildRequires: libacl-devel +BuildRequires: libbzip2-devel +BuildRequires: libcap-devel +BuildRequires: libcurl-devel +BuildRequires: libdb53-devel +BuildRequires: libgd-devel +BuildRequires: libicu-devel +BuildRequires: libjansson-devel +BuildRequires: liblua-devel +BuildRequires: liblzma-devel +BuildRequires: libnsl-devel +BuildRequires: libonig-devel +BuildRequires: libopenssl-devel +BuildRequires: libpam-devel +BuildRequires: libpcre-devel +BuildRequires: libperl +BuildRequires: libpython3-devel +BuildRequires: libreadline-devel +BuildRequires: libruby-devel +BuildRequires: libstdc++6-devel +BuildRequires: libsystemd-devel +BuildRequires: libuuid-devel +BuildRequires: libxml2-devel +BuildRequires: libz-devel +BuildRequires: mono-devel +## AUTOBUILDREQ-END +BuildRequires: python-greenlet-py3 + +%description +A full stack for building hosting services. + +%package plugin-cgi +Group: System/Libraries +Summary: CGI plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description plugin-cgi +This package contains the CGI plugin for %{name}. + +%package plugin-rack +Group: System/Libraries +Summary: Ruby rack plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: ruby + +%description plugin-rack +This package contains the Ruby rack plugin for %{name}. + +%package plugin-psgi +Group: System/Libraries +Summary: Perl psgi plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: perl + +%description plugin-psgi +This package contains the Perl psgi plugin for %{name}. + +%package plugin-python +Group: System/Libraries +Summary: Python plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: python3 +Requires: python-greenlet-py3 + +%description plugin-python +This package contains the Python plugin for %{name}. + +%package plugin-pypy +Group: System/Libraries +Summary: Pypy plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description plugin-pypy +This package contains the Pypy plugin for %{name}. + +%package plugin-lua +Group: System/Libraries +Summary: LUA plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: lua + +%description plugin-lua +This package contains the LUA plugin for %{name}. + +%package plugin-php +Group: System/Libraries +Summary: PHP plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: php + +%description plugin-php +This package contains the PHP plugin for %{name}. + +%package plugin-mono +Group: System/Libraries +Summary: mono plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} +Requires: mono + +%description plugin-mono +This package contains the mono plugin for %{name}. + +%package plugin-webdav +Group: System/Libraries +Summary: WebDav plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description plugin-webdav +This package contains the WebDav plugin for %{name}. + +%package plugin-zabbix +Group: System/Libraries +Summary: Zabbix plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description plugin-zabbix +This package contains the Zabbix plugin for %{name}. + +%package plugin-notfound +Group: System/Libraries +Summary: notfound plugin for %{name} +Requires: %{name} = %{?epoch:%epoch:}%{version}-%{release} + +%description plugin-notfound +This package contains the notfound plugin for %{name}. + +%debug_package + +%prep +%setup -q + +cp %{SOURCE1} buildconf/openmamba.ini +sed -i "s|@LIBDIR@|%{_libdir}|" buildconf/openmamba.ini +# Fix linking to libphp7.so +sed -i "s|ld_run_path = None|ld_run_path = '%{_libdir}/apache'|" plugins/php/uwsgiplugin.py + +%build +export UWSGICONFIG_PHPLIBDIR=%{_libdir}/apache/libphp7.so +%make PYTHON=%{__python3} PROFILE=openmamba + +%install +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +install -D -m0755 uwsgi %{buildroot}%{_bindir}/uwsgi +install -D -m0644 %{SOURCE4} %{buildroot}%{_unitdir}/uwsgi@.service +install -D -m0644 %{SOURCE5} %{buildroot}%{_unitdir}/uwsgi@.socket +install -D -m0644 %{SOURCE2} %{buildroot}%{_tpmfilesdir}/uwsgi.conf +install -D -m0644 %{SOURCE6} %{buildroot}%{_sysconfdir}/logrotate.d/uwsgi +install -D -m0644 %{SOURCE3} %{buildroot}%{_sysusersdir}/uwsgi.conf +install -D -m0644 %{SOURCE7} %{buildroot}%{_unitdir}/emperor.uwsgi.service +install -D -m0644 %{SOURCE8} %{buildroot}%{_unitdir}/emperor.uwsgi.socket +install -D -m0644 %{SOURCE9} %{buildroot}%{_sysconfdir}/uwsgi/emperor.ini + +# Install plugins +install -D -m0755 *_plugin.so -t %{buildroot}%{_libdir}/uwsgi/ + +# Python +install -D -m0644 uwsgidecorators.py %{buildroot}%{python3_sitearch}/uwsgidecorators.py +%{__python3} -m compileall %{buildroot}%{python3_sitearch} +%{__python3} -O -m compileall %{buildroot}%{python3_sitearch} + +# Pypy +install -D -m0644 uwsgidecorators.py %{buildroot}/opt/pypy/site-packages/uwsgidecorators.py +%{__python3} -m compileall %{buildroot}/opt/pypy/site-packages +%{__python3} -O -m compileall %{buildroot}/opt/pypy/site-packages + +# Mono +install -D -m0755 plugins/mono/uwsgi.dll %{buildroot}%{_prefix}/lib/mono/2.0/uwsgi.dll + +%clean +[ "%{buildroot}" != / ] && rm -rf "%{buildroot}" + +%files +%defattr(-,root,root) +%dir %{_sysconfdir}/uwsgi +%config(noreplace) %{_sysconfdir}/uwsgi/emperor.ini +%{_sysconfdir}/logrotate.d/uwsgi +%{_bindir}/uwsgi +%{_unitdir}/uwsgi@.service +%{_unitdir}/uwsgi@.socket +%{_unitdir}/emperor.uwsgi.service +%{_unitdir}/emperor.uwsgi.socket +%{_sysusersdir}/uwsgi.conf +%doc LICENSE + +%files plugin-cgi +%defattr(-,root,root) +%{_libdir}/uwsgi/cgi_plugin.so + +%files plugin-rack +%defattr(-,root,root) +%{_libdir}/uwsgi/rack_plugin.so +%{_libdir}/uwsgi/fiber_plugin.so +%{_libdir}/uwsgi/rbthreads_plugin.so + +%files plugin-psgi +%defattr(-,root,root) +%{_libdir}/uwsgi/psgi_plugin.so + +%files plugin-python +%defattr(-,root,root) +%{_libdir}/uwsgi/asyncio_plugin.so +%{_libdir}/uwsgi/gevent_plugin.so +%{_libdir}/uwsgi/greenlet_plugin.so +%{_libdir}/uwsgi/python_plugin.so +%{python3_sitearch}/uwsgidecorators.py +%{python3_sitearch}/__pycache__/uwsgidecorators.cpython*pyc + +%files plugin-pypy +%defattr(-,root,root) +%{_libdir}/uwsgi/pypy_plugin.so +/opt/pypy/site-packages/uwsgidecorators.py +/opt/pypy/site-packages/__pycache__/uwsgidecorators.cpython*pyc + +%files plugin-lua +%defattr(-,root,root) +%{_libdir}/uwsgi/lua_plugin.so + +%files plugin-php +%defattr(-,root,root) +%{_libdir}/uwsgi/php_plugin.so + +%files plugin-mono +%defattr(-,root,root) +%{_libdir}/uwsgi/mono_plugin.so +%{_prefix}/lib/mono/2.0/uwsgi.dll + +%files plugin-webdav +%defattr(-,root,root) +%{_libdir}/uwsgi/webdav_plugin.so + +%files plugin-zabbix +%defattr(-,root,root) +%{_libdir}/uwsgi/zabbix_plugin.so + +%files plugin-notfound +%defattr(-,root,root) +%{_libdir}/uwsgi/notfound_plugin.so + +%changelog +* Sat Sep 18 2021 Silvan Calarco 2.0.19.1-1mamba +- package created using the webbuild interface diff --git a/uwsgi.sysusers b/uwsgi.sysusers new file mode 100644 index 0000000..ef56ea8 --- /dev/null +++ b/uwsgi.sysusers @@ -0,0 +1 @@ +g uwsgi - - diff --git a/uwsgi.tmpfiles b/uwsgi.tmpfiles new file mode 100644 index 0000000..52ec437 --- /dev/null +++ b/uwsgi.tmpfiles @@ -0,0 +1 @@ +d /run/uwsgi 0775 root nobody - - diff --git a/uwsgi_at.service b/uwsgi_at.service new file mode 100644 index 0000000..9776cb5 --- /dev/null +++ b/uwsgi_at.service @@ -0,0 +1,15 @@ +[Unit] +Description=uWSGI service unit +After=syslog.target + +[Service] +ExecStart=/usr/bin/uwsgi --ini /etc/uwsgi/%I.ini +ExecReload=/bin/kill -HUP $MAINPID +ExecStop=/bin/kill -INT $MAINPID +Restart=always +Type=notify +NotifyAccess=all +KillSignal=SIGQUIT + +[Install] +WantedBy=multi-user.target diff --git a/uwsgi_at.socket b/uwsgi_at.socket new file mode 100644 index 0000000..641182e --- /dev/null +++ b/uwsgi_at.socket @@ -0,0 +1,9 @@ +[Unit] +Description=Socket for uWSGI %I + +[Socket] +# Change this to your uwsgi application port or unix socket location +ListenStream=/run/uwsgi/%I.sock + +[Install] +WantedBy=sockets.target