diff --git a/.gitignore b/.gitignore index cceb6ff..793b016 100644 --- a/.gitignore +++ b/.gitignore @@ -62,11 +62,3 @@ /uwsgi-docs-59e6cd1.tar.gz /2.0.27.tar.gz /uwsgi-docs-c0f17cd.tar.gz -/2.0.28.tar.gz -/uwsgi-docs-9606cb0.tar.gz -/2.0.29.tar.gz -/uwsgi-docs-b9da5ea.tar.gz -/2.0.30.tar.gz -/uwsgi-docs-f728a25.tar.gz -/uwsgi-docs-5784c30.tar.gz -/2.0.31.tar.gz diff --git a/package.cfg b/package.cfg new file mode 100644 index 0000000..b728443 --- /dev/null +++ b/package.cfg @@ -0,0 +1,2 @@ +[koji] +targets = epel8 diff --git a/sources b/sources index 6394bca..6892f4e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (uwsgi-docs-5784c30.tar.gz) = 4f966da4a867e45043a0eb4a123b439c8ab1f7ce6e8b32d770545ff7fae586e4e7dd011106aa6ed0ec82a6c6192937e0fd12ed681443332205566fc329e11cd8 -SHA512 (2.0.31.tar.gz) = d4d327f36455438e165298cb5a7d483c951f4acd3d834b46ceeda105bd3664792ead226b02e06db62e92c210544778119bf75a55d9d4f30f8fba896c7de51e6d +SHA512 (2.0.27.tar.gz) = 78de6b8aa401ca5e27204cc68dec540617407dc9a0dad2c785a7eadc449889aad4eb516d4d8d257dc46e5b91b6c2d85be5953b19e0897375a7f0fecaa298d066 +SHA512 (uwsgi-docs-c0f17cd.tar.gz) = ae5483f0d0bbbe417e11ed83bf0f9f89a0bd742f201f4bc243c1a084274f8abb2f26d7176150a8a875a6408a328ac935357af40e1e2efb815d8fb51da12b9566 diff --git a/uwsgi.spec b/uwsgi.spec index 424e718..9add041 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -1,5 +1,5 @@ # Documentation sources: -%global commit 5784c30866a94942a5200db4d5f6c2850afb1caa +%global commit c0f17cd25b0f2fd60312e9d7194cf7cdfd39303a %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -26,7 +26,7 @@ %bcond_without tuntap %bcond_without zeromq %bcond_without perl -%bcond_with perlcoro +%bcond_without perlcoro %bcond_without glusterfs %bcond_without php %bcond_without pq @@ -148,7 +148,7 @@ %if %{with python3_alternate1} %global python3_alternate1_pkgname python3.11 %global __python3_alternate1 python3.11 -%global python3_alternate1_sitelib %(RPM_BUILD_ROOT= %{__python3_alternate1} -Ic "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '%{_prefix}', 'base': '%{_prefix}'}))") +%global python3_alternate1_sitelib %(RPM_BUILD_ROOT= %{__python3_alternate1} -Ic "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '%{_prefix}', 'base': '%{_prefix}'}))")} %global python3_alternate1_version 3.11 %global python3_alternate1_version_nodots 311 %endif @@ -156,18 +156,10 @@ %if %{with python3_alternate2} %global python3_alternate2_pkgname python3.12 %global __python3_alternate2 python3.12 -%global python3_alternate2_sitelib %(RPM_BUILD_ROOT= %{__python3_alternate2} -Ic "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '%{_prefix}', 'base': '%{_prefix}'}))") +%global python3_alternate2_sitelib %(RPM_BUILD_ROOT= %{__python3_alternate2} -Ic "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '%{_prefix}', 'base': '%{_prefix}'}))")} %global python3_alternate2_version 3.12 %global python3_alternate2_version_nodots 312 %endif -%bcond_without python3_alternate3 -%if %{with python3_alternate3} -%global python3_alternate3_pkgname python3.13 -%global __python3_alternate3 python3.13 -%global python3_alternate3_sitelib %(RPM_BUILD_ROOT= %{__python3_alternate3} -Ic "import sysconfig; print(sysconfig.get_path('purelib', vars={'platbase': '%{_prefix}', 'base': '%{_prefix}'}))") -%global python3_alternate3_version 3.13 -%global python3_alternate3_version_nodots 313 -%endif #EL9 endif %endif @@ -247,9 +239,6 @@ %if %{with python3_alternate2} %global __python %{__python3_alternate2} %else -%if %{with python3_alternate3} -%global __python %{__python3_alternate3} -%else %if %{with python2} %global __python %{__python2} %else @@ -258,11 +247,10 @@ %endif %endif %endif -%endif Name: uwsgi -Version: 2.0.31 -Release: 5%{?dist} +Version: 2.0.27 +Release: 4%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -279,7 +267,6 @@ Source3: emperor.ini Source4: https://github.com/unbit/%{docrepo}/archive/%{commit}/%{docrepo}-%{shortcommit}.tar.gz Source5: README.Fedora Source7: uwsgi.tmpfiles -Source8: uwsgi.sysusers # When adding patches please add to the end, don't # reuse intermediate numbers @@ -293,10 +280,11 @@ Patch6: uwsgi_v8-314_compatibility.patch Patch7: uwsgi_fix_mono.patch Patch13: uwsgi_fix_chroot_chdir.patch Patch14: uwsgi_python312-2.patch +# https://github.com/unbit/uwsgi/issues/2681 +Patch15: uwsgi-2.0.27-graceful-reload.patch BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel BuildRequires: libyaml-devel, ruby-devel -BuildRequires: libxcrypt-devel %if %{with tcp_wrappers} BuildRequires: tcp_wrappers-devel %endif @@ -318,9 +306,6 @@ BuildRequires: %{python3_alternate1_pkgname}-devel %if %{with python3_alternate2} BuildRequires: %{python3_alternate2_pkgname}-devel %endif -%if %{with python3_alternate3} -BuildRequires: %{python3_alternate3_pkgname}-devel -%endif %if %{with glusterfs} BuildRequires: glusterfs-devel, glusterfs-api-devel %endif @@ -387,6 +372,7 @@ Obsoletes: uwsgi-routers <= 2.0.6 Obsoletes: uwsgi-plugin-erlang <= 1.9.20-1 Obsoletes: uwsgi-plugin-admin <= 2.0.6 +Requires(pre): shadow-utils %{?systemd_requires} %filter_requires_in %{_usrsrc} @@ -465,17 +451,6 @@ The uwsgidecorators Python %{python3_alternate2_version} module provides higher-level access to the uWSGI API. %endif -%if %{with python3_alternate3} -%package -n %{python3_alternate3_pkgname}-uwsgidecorators -Summary: Python %{python3_alternate3_version} decorators providing access to the uwsgi API -Requires: uwsgi = %{version}-%{release} -Requires: uwsgi-plugin-python%{python3_alternate3_version_nodots} = %{version}-%{release} - -%description -n %{python3_alternate3_pkgname}-uwsgidecorators -The uwsgidecorators Python %{python3_alternate3_version} module provides -higher-level access to the uWSGI API. -%endif - %package -n uwsgi-docs Summary: uWSGI - Documentation Requires: uwsgi @@ -835,15 +810,6 @@ Requires: uwsgi-plugin-python%{python3_alternate2_version_nodots} = %{version}-% This package contains the Python %{python3_alternate2_version} gevent plugin for uWSGI %endif -%if %{with python3_alternate3} -%package -n uwsgi-plugin-python%{python3_alternate3_version_nodots}-gevent -Summary: uWSGI - Plugin for Python %{python3_alternate3_version} GEvent support -Requires: uwsgi-plugin-python%{python3_alternate3_version_nodots} = %{version}-%{release}, libevent - -%description -n uwsgi-plugin-python%{python3_alternate3_version_nodots}-gevent -This package contains the Python %{python3_alternate3_version} gevent plugin for uWSGI -%endif - %if %{with glusterfs} %package -n uwsgi-plugin-glusterfs Summary: uWSGI - Plugin for GlusterFS support @@ -1012,15 +978,6 @@ Requires: %{python3_alternate2_pkgname}, uwsgi-plugin-common = %{version}-%{rele This package contains the Python %{python3_alternate2_version} plugin for uWSGI %endif -%if %{with python3_alternate3} -%package -n uwsgi-plugin-python%{python3_alternate3_version_nodots} -Summary: uWSGI - Plugin for Python %{python3_alternate3_version} support -Requires: %{python3_alternate3_pkgname}, uwsgi-plugin-common = %{version}-%{release} - -%description -n uwsgi-plugin-python%{python3_alternate3_version_nodots} -This package contains the Python %{python3_alternate3_version} plugin for uWSGI -%endif - %if %{with ruby_rack} %package -n uwsgi-plugin-rack Summary: uWSGI - Ruby rack plugin @@ -1384,6 +1341,7 @@ cp -p %{SOURCE5} README.Fedora %endif %patch -P13 -p1 %patch -P14 -p1 +%patch -P15 -p1 %build CFLAGS="%{optflags} -Wno-error -Wno-unused-but-set-variable -fPIC" %{__python} uwsgiconfig.py --verbose --build fedora.ini @@ -1405,10 +1363,6 @@ CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python3_alternate1} uwsgic CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python3_alternate2} uwsgiconfig.py --verbose --plugin plugins/python fedora python%{python3_alternate2_version_nodots} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python3_alternate2} uwsgiconfig.py --verbose --plugin plugins/gevent fedora python%{python3_alternate2_version_nodots}_gevent %endif -%if %{with python3_alternate3} -CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python3_alternate3} uwsgiconfig.py --verbose --plugin plugins/python fedora python%{python3_alternate3_version_nodots} -CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python3_alternate3} uwsgiconfig.py --verbose --plugin plugins/gevent fedora python%{python3_alternate3_version_nodots}_gevent -%endif %if %{with mongodblibs} CFLAGS="%{optflags} -Wno-unused-but-set-variable" %{__python} uwsgiconfig.py --verbose --plugin plugins/mongodblog fedora CFLAGS="%{optflags} -Wno-unused-but-set-variable -std=gnu++11 -Wno-error" %{__python2} uwsgiconfig.py --verbose --plugin plugins/stats_pusher_mongodb fedora @@ -1533,12 +1487,6 @@ install -D -p -m 0644 uwsgidecorators.py %{buildroot}%{python3_alternate2_siteli %py_byte_compile %{__python3_alternate2} %{buildroot}%{python3_alternate2_sitelib}/uwsgidecorators.py %endif %endif -%if %{with python3_alternate3} -install -D -p -m 0644 uwsgidecorators.py %{buildroot}%{python3_alternate3_sitelib}/uwsgidecorators.py -%if %{manual_py_compile} == 1 -%py_byte_compile %{__python3_alternate3} %{buildroot}%{python3_alternate3_sitelib}/uwsgidecorators.py -%endif -%endif %if %{with java} install -D -p -m 0644 plugins/jvm/uwsgi.jar %{buildroot}%{_javadir}/uwsgi.jar %endif @@ -1552,7 +1500,13 @@ install -D -p -m 0644 %{SOURCE7} %{buildroot}%{_tmpfilesdir}/uwsgi.conf install -D -p -m 0755 apache2/.libs/mod_proxy_uwsgi.so %{buildroot}%{_httpd_moddir}/mod_proxy_uwsgi.so %endif -install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf + +%pre +getent group uwsgi >/dev/null || groupadd -r uwsgi +getent passwd uwsgi >/dev/null || \ + useradd -r -g uwsgi -d /run/uwsgi -s /sbin/nologin \ + -c "uWSGI daemon user" uwsgi +exit 0 %post %systemd_post uwsgi.service @@ -1572,7 +1526,6 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %dir %{_sysconfdir}/uwsgi.d %doc README README.Fedora CHANGELOG %license LICENSE -%{_sysusersdir}/uwsgi.conf %files -n uwsgi-devel %{_includedir}/uwsgi @@ -1601,12 +1554,6 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %{python3_alternate2_sitelib}/__pycache__/uwsgidecorators.cpython-%{python3_alternate2_version_nodots}*.py* %endif -%if %{with python3_alternate3} -%files -n %{python3_alternate3_pkgname}-uwsgidecorators -%{python3_alternate3_sitelib}/uwsgidecorators.py -%{python3_alternate3_sitelib}/__pycache__/uwsgidecorators.cpython-%{python3_alternate3_version_nodots}*.py* -%endif - %files -n uwsgi-docs %doc docs @@ -1779,11 +1726,6 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %{_libdir}/uwsgi/python%{python3_alternate2_version_nodots}_gevent_plugin.so %endif -%if %{with python3_alternate3} -%files -n uwsgi-plugin-python%{python3_alternate3_version_nodots}-gevent -%{_libdir}/uwsgi/python%{python3_alternate3_version_nodots}_gevent_plugin.so -%endif - %if %{with glusterfs} %files -n uwsgi-plugin-glusterfs %{_libdir}/uwsgi/glusterfs_plugin.so @@ -1868,11 +1810,6 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %{_libdir}/uwsgi/python%{python3_alternate2_version_nodots}_plugin.so %endif -%if %{with python3_alternate3} -%files -n uwsgi-plugin-python%{python3_alternate3_version_nodots} -%{_libdir}/uwsgi/python%{python3_alternate3_version_nodots}_plugin.so -%endif - %if %{with ruby_rack} %files -n uwsgi-plugin-rack %{_libdir}/uwsgi/rack_plugin.so @@ -2030,74 +1967,6 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog -* Sun Jan 11 2026 Ralf Ertzinger - 2.0.31-5 -- Rebuild for new gccgo libraries - -* Thu Jan 08 2026 Mamoru TASAKA - 2.0.31-4 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 - -* Wed Nov 26 2025 Ralf Ertzinger - 2.0.31-3 -- Fix path errors for EPEL9 uwsgidecorator packages - -* Wed Oct 15 2025 Remi Collet - 2.0.31-2 -- rebuild for https://fedoraproject.org/wiki/Changes/php85 - -* Sun Oct 12 2025 Ralf Ertzinger - 2.0.31-1 -- Update to 2.0.31, drop merged patches - -* Fri Sep 19 2025 Python Maint - 2.0.30-7 -- Rebuilt for Python 3.14.0rc3 bytecode - -* Tue Aug 19 2025 Ralf Ertzinger - 2.0.30-6 -- Add python3.13 module for EL9 - -* Fri Aug 15 2025 Python Maint - 2.0.30-5 -- Rebuilt for Python 3.14.0rc2 bytecode - -* Thu Jul 24 2025 Ralf Ertzinger - 2.0.30-4 -- Disable perl-Coro for rawhide, as this blocks rebuilding - for perl 5.42 (see https://bugzilla.redhat.com/show_bug.cgi?id=2379448) - -* Tue Jul 08 2025 Jitka Plesnikova - 2.0.30-3 -- Perl 5.42 rebuild - -* Mon Jun 09 2025 Python Maint - 2.0.30-2 -- Rebuilt for Python 3.14 - -* Sun Jun 08 2025 Ralf Ertzinger - 2.0.30-1 -- Update to 2.0.30 - -* Tue Jun 03 2025 Python Maint - 2.0.29-2 -- Rebuilt for Python 3.14 - -* Sat Apr 12 2025 Ralf Ertzinger - 2.0.29-1 -- Update to 2.0.29 - -* Mon Mar 24 2025 Ralf Ertzinger - 2.0.28-7 -- Rebuild for new libgo - -* Tue Feb 11 2025 Zbigniew Jędrzejewski-Szmek - 2.0.28-6 -- Add sysusers.d config file to allow rpm to create users/groups automatically - -* Sat Feb 01 2025 Björn Esser - 2.0.28-5 -- Add explicit BR: libxcrypt-devel - -* Fri Jan 24 2025 Ralf Ertzinger - 2.0.28-4 -- Fix type errors flagged by GCC15 - -* Sun Jan 19 2025 Fedora Release Engineering - 2.0.28-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Wed Jan 08 2025 Mamoru TASAKA - 2.0.28-2 -- Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4 - -* Sun Oct 27 2024 Ralf Ertzinger - 2.0.28-1 -- Update to 2.0.28, drop merged patches - -* Tue Oct 22 2024 Richard W.M. Jones - 2.0.27-5 -- Rebuild for Jansson 2.14 - (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/) - * Mon Oct 14 2024 Ralf Ertzinger - 2.0.27-4 - Fix uWSGI auto-reloading on config change diff --git a/uwsgi.sysusers b/uwsgi.sysusers deleted file mode 100644 index 30b5692..0000000 --- a/uwsgi.sysusers +++ /dev/null @@ -1 +0,0 @@ -u uwsgi - 'uWSGI daemon user' /run/uwsgi - diff --git a/uwsgi_gcc15-signal-handler.patch b/uwsgi_gcc15-signal-handler.patch deleted file mode 100644 index a36dc99..0000000 --- a/uwsgi_gcc15-signal-handler.patch +++ /dev/null @@ -1,33 +0,0 @@ -diff -uNr a/plugins/pty/pty.c b/plugins/pty/pty.c ---- a/plugins/pty/pty.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/plugins/pty/pty.c 2025-01-24 20:04:55.952597269 +0100 -@@ -259,7 +259,7 @@ - - } - --static void uwsgi_pty_winch() { -+static void uwsgi_pty_winch(int signum) { - // 2 uwsgi packets - char uwsgi_pkt[8]; - #ifdef TIOCGWINSZ -@@ -309,7 +309,7 @@ - if (upty.uremote) { - signal(SIGWINCH, uwsgi_pty_winch); - // send current terminal size -- uwsgi_pty_winch(); -+ uwsgi_pty_winch(0); - } - - upty.queue = event_queue_init(); -diff -uNr a/plugins/tuntap/tuntap.c b/plugins/tuntap/tuntap.c ---- a/plugins/tuntap/tuntap.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/plugins/tuntap/tuntap.c 2025-01-24 20:33:49.513449322 +0100 -@@ -409,7 +409,7 @@ - } - } - --static void uwsgi_tuntap_router() { -+static void uwsgi_tuntap_router(int (*_)(void *), char ** __) { - - if (!utt.routers) return; -