From 64c090a890bfbc09c9c1825f1e141c84a409c68e Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 22 Oct 2024 13:40:31 +0100 Subject: [PATCH 01/22] Rebuild for Jansson 2.14 (https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/3PYINSQGKQ4BB25NQUI2A2UCGGLAG5ND/) --- uwsgi.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index 9add041..78f54df 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.27 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1967,6 +1967,10 @@ exit 0 %changelog +* 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 From b7b8802b0f317fe41c69877f54d0ddb282f77626 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sat, 2 Nov 2024 21:24:40 +0100 Subject: [PATCH 02/22] Update to 2.0.28, drop merged patches --- .gitignore | 2 ++ sources | 4 ++-- uwsgi.spec | 12 ++++++------ 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 793b016..159e647 100644 --- a/.gitignore +++ b/.gitignore @@ -62,3 +62,5 @@ /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 diff --git a/sources b/sources index 6892f4e..b5af45c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (2.0.27.tar.gz) = 78de6b8aa401ca5e27204cc68dec540617407dc9a0dad2c785a7eadc449889aad4eb516d4d8d257dc46e5b91b6c2d85be5953b19e0897375a7f0fecaa298d066 -SHA512 (uwsgi-docs-c0f17cd.tar.gz) = ae5483f0d0bbbe417e11ed83bf0f9f89a0bd742f201f4bc243c1a084274f8abb2f26d7176150a8a875a6408a328ac935357af40e1e2efb815d8fb51da12b9566 +SHA512 (2.0.28.tar.gz) = e5e8a4a21c590a2bc4023879fbf4c29ec4ed7a7dc201e76ff738a3bb5730bd3844ae39d2bf4fcd20be3935c54c5dcea9a785ede1ecf02225646342cbe70c4c72 +SHA512 (uwsgi-docs-9606cb0.tar.gz) = be8dccf6839e5162e1ab1ab0d84c7ba2cc7a36fa752be8667ebf10bd796ebd217900328b87946bc2ec107b45aff0080b24961c2ba8aced30a33853029c1ac923 diff --git a/uwsgi.spec b/uwsgi.spec index 78f54df..bef664e 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -1,5 +1,5 @@ # Documentation sources: -%global commit c0f17cd25b0f2fd60312e9d7194cf7cdfd39303a +%global commit 9606cb0ee032e77113a043b21fcc386738de301b %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -249,8 +249,8 @@ %endif Name: uwsgi -Version: 2.0.27 -Release: 5%{?dist} +Version: 2.0.28 +Release: 1%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -280,8 +280,6 @@ 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 @@ -1341,7 +1339,6 @@ 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 @@ -1967,6 +1964,9 @@ exit 0 %changelog +* 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/) From 6fe6c653dd390b11b1476b705d88036110be03bb Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Wed, 8 Jan 2025 10:41:52 +0900 Subject: [PATCH 03/22] Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_3.4 --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index bef664e..79153f0 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.28 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1964,6 +1964,9 @@ exit 0 %changelog +* 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 From 19e19698a5fea1a95781f5370e617359fda97de2 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:01:56 +0000 Subject: [PATCH 04/22] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index 79153f0..cdf2d9f 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.28 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1964,6 +1964,9 @@ exit 0 %changelog +* 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 From 6e2e54ccb9a7d1a536de205f08fb4bc46375b130 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Fri, 24 Jan 2025 21:14:49 +0100 Subject: [PATCH 05/22] Fix type errors flagged by GCC15 --- uwsgi.spec | 7 +- uwsgi_gcc15-signal-handler.patch | 341 +++++++++++++++++++++++++++++++ 2 files changed, 347 insertions(+), 1 deletion(-) create mode 100644 uwsgi_gcc15-signal-handler.patch diff --git a/uwsgi.spec b/uwsgi.spec index cdf2d9f..f1cdceb 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.28 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -280,6 +280,7 @@ Patch6: uwsgi_v8-314_compatibility.patch Patch7: uwsgi_fix_mono.patch Patch13: uwsgi_fix_chroot_chdir.patch Patch14: uwsgi_python312-2.patch +Patch15: uwsgi_gcc15-signal-handler.patch BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel BuildRequires: libyaml-devel, ruby-devel @@ -1339,6 +1340,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 @@ -1964,6 +1966,9 @@ exit 0 %changelog +* 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 diff --git a/uwsgi_gcc15-signal-handler.patch b/uwsgi_gcc15-signal-handler.patch new file mode 100644 index 0000000..b63250a --- /dev/null +++ b/uwsgi_gcc15-signal-handler.patch @@ -0,0 +1,341 @@ +diff -uNr a/core/emperor.c b/core/emperor.c +--- a/core/emperor.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/emperor.c 2025-01-24 19:16:51.668840358 +0100 +@@ -598,7 +598,7 @@ + } + + +-static void emperor_stats() { ++static void emperor_stats(int sn) { + + struct uwsgi_instance *c_ui = ui->ui_next; + +diff -uNr a/core/fifo.c b/core/fifo.c +--- a/core/fifo.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/fifo.c 2025-01-24 19:52:16.760905071 +0100 +@@ -26,18 +26,18 @@ + + #define announce_fifo uwsgi_log_verbose("active master fifo is now %s\n", uwsgi_fifo_by_slot()) + +-static void uwsgi_fifo_set_slot_zero() { uwsgi.master_fifo_slot = 0; announce_fifo; } +-static void uwsgi_fifo_set_slot_one() { uwsgi.master_fifo_slot = 1; announce_fifo; } +-static void uwsgi_fifo_set_slot_two() { uwsgi.master_fifo_slot = 2; announce_fifo; } +-static void uwsgi_fifo_set_slot_three() { uwsgi.master_fifo_slot = 3; announce_fifo; } +-static void uwsgi_fifo_set_slot_four() { uwsgi.master_fifo_slot = 4; announce_fifo; } +-static void uwsgi_fifo_set_slot_five() { uwsgi.master_fifo_slot = 5; announce_fifo; } +-static void uwsgi_fifo_set_slot_six() { uwsgi.master_fifo_slot = 6; announce_fifo; } +-static void uwsgi_fifo_set_slot_seven() { uwsgi.master_fifo_slot = 7; announce_fifo; } +-static void uwsgi_fifo_set_slot_eight() { uwsgi.master_fifo_slot = 8; announce_fifo; } +-static void uwsgi_fifo_set_slot_nine() { uwsgi.master_fifo_slot = 9; announce_fifo; } ++static void uwsgi_fifo_set_slot_zero(int _) { uwsgi.master_fifo_slot = 0; announce_fifo; } ++static void uwsgi_fifo_set_slot_one(int _) { uwsgi.master_fifo_slot = 1; announce_fifo; } ++static void uwsgi_fifo_set_slot_two(int _) { uwsgi.master_fifo_slot = 2; announce_fifo; } ++static void uwsgi_fifo_set_slot_three(int _) { uwsgi.master_fifo_slot = 3; announce_fifo; } ++static void uwsgi_fifo_set_slot_four(int _) { uwsgi.master_fifo_slot = 4; announce_fifo; } ++static void uwsgi_fifo_set_slot_five(int _) { uwsgi.master_fifo_slot = 5; announce_fifo; } ++static void uwsgi_fifo_set_slot_six(int _) { uwsgi.master_fifo_slot = 6; announce_fifo; } ++static void uwsgi_fifo_set_slot_seven(int _) { uwsgi.master_fifo_slot = 7; announce_fifo; } ++static void uwsgi_fifo_set_slot_eight(int _) { uwsgi.master_fifo_slot = 8; announce_fifo; } ++static void uwsgi_fifo_set_slot_nine(int _) { uwsgi.master_fifo_slot = 9; announce_fifo; } + +-static void subscriptions_blocker() { ++static void subscriptions_blocker(int _) { + if (uwsgi.subscriptions_blocked) { + uwsgi_log_verbose("subscriptions re-enabled\n"); + uwsgi.subscriptions_blocked = 0; +@@ -48,7 +48,7 @@ + } + } + +-static void emperor_rescan() { ++static void emperor_rescan(int _) { + if (uwsgi.emperor_pid > 0) { + if (kill(uwsgi.emperor_pid, SIGWINCH)) { + uwsgi_error("emperor_rescan()/kill()"); +diff -uNr a/core/logging.c b/core/logging.c +--- a/core/logging.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/logging.c 2025-01-24 19:38:12.555044665 +0100 +@@ -509,10 +509,10 @@ + } + + if (need_rotation) { +- uwsgi_log_rotate(); ++ uwsgi_log_rotate(0); + } + else if (need_reopen) { +- uwsgi_log_reopen(); ++ uwsgi_log_reopen(0); + } + } + +@@ -552,13 +552,13 @@ + free(rot_name); + } + +-void uwsgi_log_rotate() { ++void uwsgi_log_rotate(int _) { + if (!uwsgi.logfile) + return; + uwsgi_log_do_rotate(uwsgi.logfile, uwsgi.log_backupname, uwsgi.shared->logsize, uwsgi.original_log_fd); + } + +-void uwsgi_log_reopen() { ++void uwsgi_log_reopen(int _) { + char message[1024]; + if (!uwsgi.logfile) return; + int ret = snprintf(message, 1024, "[%d] logsize: %llu, triggering log-reopen...\n", (int) uwsgi_now(), (unsigned long long) uwsgi.shared->logsize); +diff -uNr a/core/master.c b/core/master.c +--- a/core/master.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/master.c 2025-01-24 19:44:56.074389538 +0100 +@@ -26,7 +26,7 @@ + if (uwsgi.vassal_sos) { + if (uwsgi.current_time - last_sos > uwsgi.vassal_sos) { + uwsgi_log_verbose("asking Emperor for reinforcements (overload: %llu)...\n", (unsigned long long) ushared->overloaded); +- vassal_sos(); ++ vassal_sos(0); + last_sos = uwsgi.current_time; + } + } +@@ -294,12 +294,12 @@ + if (uwsgi.shared->backlog >= (uint64_t) uwsgi.vassal_sos_backlog) { + // ask emperor for help + uwsgi_log_verbose("asking Emperor for reinforcements (backlog: %llu)...\n", (unsigned long long) uwsgi.shared->backlog); +- vassal_sos(); ++ vassal_sos(0); + } + } + } + +-void vassal_sos() { ++void vassal_sos(int _) { + if (!uwsgi.has_emperor) { + uwsgi_log("[broodlord] instance not governed by an Emperor !!!\n"); + return; +@@ -835,19 +835,19 @@ + touched = uwsgi_check_touches(uwsgi.touch_workers_reload); + if (touched) { + uwsgi_log_verbose("*** %s has been touched... workers reload !!! ***\n", touched); +- uwsgi_reload_workers(); ++ uwsgi_reload_workers(0); + continue; + } + touched = uwsgi_check_touches(uwsgi.touch_mules_reload); + if (touched) { + uwsgi_log_verbose("*** %s has been touched... mules reload !!! ***\n", touched); +- uwsgi_reload_mules(); ++ uwsgi_reload_mules(0); + continue; + } + touched = uwsgi_check_touches(uwsgi.touch_spoolers_reload); + if (touched) { + uwsgi_log_verbose("*** %s has been touched... spoolers reload !!! ***\n", touched); +- uwsgi_reload_spoolers(); ++ uwsgi_reload_spoolers(0); + continue; + } + touched = uwsgi_check_touches(uwsgi.touch_chain_reload); +@@ -1090,7 +1090,7 @@ + // never here + } + +-void uwsgi_reload_workers() { ++void uwsgi_reload_workers(int _) { + int i; + uwsgi_block_signal(SIGHUP); + for (i = 1; i <= uwsgi.numproc; i++) { +@@ -1101,7 +1101,7 @@ + uwsgi_unblock_signal(SIGHUP); + } + +-void uwsgi_reload_mules() { ++void uwsgi_reload_mules(int _) { + int i; + + uwsgi_block_signal(SIGHUP); +@@ -1113,7 +1113,7 @@ + uwsgi_unblock_signal(SIGHUP); + } + +-void uwsgi_reload_spoolers() { ++void uwsgi_reload_spoolers(int _) { + struct uwsgi_spooler *us; + + uwsgi_block_signal(SIGHUP); +@@ -1127,7 +1127,7 @@ + uwsgi_unblock_signal(SIGHUP); + } + +-void uwsgi_chain_reload() { ++void uwsgi_chain_reload(int _) { + if (!uwsgi.status.chain_reloading) { + uwsgi_log_verbose("chain reload starting...\n"); + uwsgi.status.chain_reloading = 1; +@@ -1137,7 +1137,7 @@ + } + } + +-void uwsgi_brutally_reload_workers() { ++void uwsgi_brutally_reload_workers(int _) { + int i; + for (i = 1; i <= uwsgi.numproc; i++) { + if (uwsgi.workers[i].pid > 0) { +diff -uNr a/core/master_utils.c b/core/master_utils.c +--- a/core/master_utils.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/master_utils.c 2025-01-24 19:49:28.710316162 +0100 +@@ -2,7 +2,7 @@ + + extern struct uwsgi_server uwsgi; + +-void worker_wakeup() { ++void worker_wakeup(int sn) { + } + + uint64_t uwsgi_worker_exceptions(int wid) { +@@ -1725,7 +1725,7 @@ + add_reload_fds(uwsgi.brutal_reload_on_fd, "brutal"); + } + +-void uwsgi_refork_master() { ++void uwsgi_refork_master(int _) { + pid_t pid = fork(); + if (pid < 0) { + uwsgi_error("uwsgi_refork_master()/fork()"); +@@ -1746,15 +1746,15 @@ + exit(1); + } + +-void uwsgi_cheaper_increase() { ++void uwsgi_cheaper_increase(int _) { + uwsgi.cheaper_fifo_delta++; + } + +-void uwsgi_cheaper_decrease() { ++void uwsgi_cheaper_decrease(int _) { + uwsgi.cheaper_fifo_delta--; + } + +-void uwsgi_go_cheap() { ++void uwsgi_go_cheap(int _) { + int i; + int waitpid_status; + if (uwsgi.status.is_cheap) return; +diff -uNr a/core/spooler.c b/core/spooler.c +--- a/core/spooler.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/spooler.c 2025-01-24 19:56:28.472783607 +0100 +@@ -12,7 +12,7 @@ + static uint64_t wakeup = 0; + + // function to allow waking up the spooler if blocked in event_wait +-void spooler_wakeup() { ++void spooler_wakeup(int sn) { + wakeup++; + } + +diff -uNr a/core/uwsgi.c b/core/uwsgi.c +--- a/core/uwsgi.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/core/uwsgi.c 2025-01-24 19:59:45.448471107 +0100 +@@ -4957,7 +4957,7 @@ + exit(0); + } + +-void uwsgi_update_pidfiles() { ++void uwsgi_update_pidfiles(int _) { + if (uwsgi.pidfile) { + uwsgi_write_pidfile(uwsgi.pidfile); + } +diff -uNr a/plugins/fiber/fiber.c b/plugins/fiber/fiber.c +--- a/plugins/fiber/fiber.c 2024-10-26 11:59:26.000000000 +0200 ++++ b/plugins/fiber/fiber.c 2025-01-24 20:18:47.222902654 +0100 +@@ -15,12 +15,12 @@ + }; + + +-VALUE uwsgi_fiber_request() { ++VALUE uwsgi_fiber_request(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg) { + async_schedule_to_req_green(); + return Qnil; + } + +-VALUE rb_fiber_schedule_to_req() { ++VALUE rb_fiber_schedule_to_req(VALUE args) { + int id = uwsgi.wsgi_req->async_id; + + if (!uwsgi.wsgi_req->suspended) { +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 _) { + // 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; + +diff -uNr a/uwsgi.h b/uwsgi.h +--- a/uwsgi.h 2024-10-26 11:59:26.000000000 +0200 ++++ b/uwsgi.h 2025-01-24 20:44:03.648790992 +0100 +@@ -4787,20 +4787,20 @@ + int uwsgi_master_fifo_manage(int); + + void uwsgi_log_do_rotate(char *, char *, off_t, int); +-void uwsgi_log_rotate(); +-void uwsgi_log_reopen(); +-void uwsgi_reload_workers(); +-void uwsgi_reload_mules(); +-void uwsgi_reload_spoolers(); +-void uwsgi_chain_reload(); +-void uwsgi_refork_master(); +-void uwsgi_update_pidfiles(); ++void uwsgi_log_rotate(int); ++void uwsgi_log_reopen(int); ++void uwsgi_reload_workers(int); ++void uwsgi_reload_mules(int); ++void uwsgi_reload_spoolers(int); ++void uwsgi_chain_reload(int); ++void uwsgi_refork_master(int); ++void uwsgi_update_pidfiles(int); + void gracefully_kill_them_all(int); +-void uwsgi_brutally_reload_workers(); ++void uwsgi_brutally_reload_workers(int); + +-void uwsgi_cheaper_increase(); +-void uwsgi_cheaper_decrease(); +-void uwsgi_go_cheap(); ++void uwsgi_cheaper_increase(int); ++void uwsgi_cheaper_decrease(int); ++void uwsgi_go_cheap(int); + + char **uwsgi_split_quoted(char *, size_t, char *, size_t *); + +@@ -4987,7 +4987,7 @@ + + int uwsgi_notify_socket_manage(int); + int uwsgi_notify_msg(char *, char *, size_t); +-void vassal_sos(); ++void vassal_sos(int); + + int uwsgi_wait_for_fs(char *, int); + int uwsgi_wait_for_mountpoint(char *); From 72801155cd17bd2ef4c49f529ebd40ec9fdd993e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Esser?= Date: Sat, 1 Feb 2025 19:58:05 +0100 Subject: [PATCH 06/22] Add explicit BR: libxcrypt-devel MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Björn Esser --- uwsgi.spec | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index f1cdceb..82bf618 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.28 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -284,6 +284,7 @@ Patch15: uwsgi_gcc15-signal-handler.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 @@ -1966,6 +1967,9 @@ exit 0 %changelog +* 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 From e82e663aebe013fe8418c8e8af3e2bbe1f957ed1 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Tue, 18 Feb 2025 22:23:30 +0100 Subject: [PATCH 07/22] Add sysusers.d config file to allow rpm to create users/groups automatically --- uwsgi.spec | 16 +++++++--------- uwsgi.sysusers | 1 + 2 files changed, 8 insertions(+), 9 deletions(-) create mode 100644 uwsgi.sysusers diff --git a/uwsgi.spec b/uwsgi.spec index 82bf618..d5ae8ea 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.28 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -267,6 +267,7 @@ 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 @@ -372,7 +373,6 @@ 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} @@ -1500,13 +1500,7 @@ 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 - -%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 +install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %post %systemd_post uwsgi.service @@ -1526,6 +1520,7 @@ exit 0 %dir %{_sysconfdir}/uwsgi.d %doc README README.Fedora CHANGELOG %license LICENSE +%{_sysusersdir}/uwsgi.conf %files -n uwsgi-devel %{_includedir}/uwsgi @@ -1967,6 +1962,9 @@ exit 0 %changelog +* 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 diff --git a/uwsgi.sysusers b/uwsgi.sysusers new file mode 100644 index 0000000..30b5692 --- /dev/null +++ b/uwsgi.sysusers @@ -0,0 +1 @@ +u uwsgi - 'uWSGI daemon user' /run/uwsgi - From 2cad1e43b7b3a07ee3a55ea199a5f46af53d0066 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Mon, 24 Mar 2025 19:45:33 +0100 Subject: [PATCH 08/22] Rebuild for new libgo --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index d5ae8ea..1f6b02c 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.28 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From b0edddcb6b83b67aea1f98bd223ac30bed15a0cc Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sat, 12 Apr 2025 12:57:47 +0200 Subject: [PATCH 09/22] Update to 2.0.29 --- .gitignore | 2 + sources | 4 +- uwsgi.spec | 9 +- uwsgi_gcc15-signal-handler.patch | 310 +------------------------------ 4 files changed, 11 insertions(+), 314 deletions(-) diff --git a/.gitignore b/.gitignore index 159e647..0561e1e 100644 --- a/.gitignore +++ b/.gitignore @@ -64,3 +64,5 @@ /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 diff --git a/sources b/sources index b5af45c..4451a97 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (2.0.28.tar.gz) = e5e8a4a21c590a2bc4023879fbf4c29ec4ed7a7dc201e76ff738a3bb5730bd3844ae39d2bf4fcd20be3935c54c5dcea9a785ede1ecf02225646342cbe70c4c72 -SHA512 (uwsgi-docs-9606cb0.tar.gz) = be8dccf6839e5162e1ab1ab0d84c7ba2cc7a36fa752be8667ebf10bd796ebd217900328b87946bc2ec107b45aff0080b24961c2ba8aced30a33853029c1ac923 +SHA512 (2.0.29.tar.gz) = 6aaaaae9e067814e430dd80e5ac44e806f937c84f0b38a7ac3f399e92a392a426fe41c23c76371203a31625f985a3f5b397a3294b634c1c7a1280981023bdad1 +SHA512 (uwsgi-docs-b9da5ea.tar.gz) = 94756864572994feb0387d7712bc19538f5a8cf6eed57c6171ee12cb8b7a3e268b2d9695c0d4205c4972401fd2a246badfbb118880f3e531c2803dd3431c8420 diff --git a/uwsgi.spec b/uwsgi.spec index 1f6b02c..17ba2cb 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -1,5 +1,5 @@ # Documentation sources: -%global commit 9606cb0ee032e77113a043b21fcc386738de301b +%global commit b9da5eadc78985ec6dff7e3a755ca7be42f9f4c2 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -249,8 +249,8 @@ %endif Name: uwsgi -Version: 2.0.28 -Release: 7%{?dist} +Version: 2.0.29 +Release: 1%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 diff --git a/uwsgi_gcc15-signal-handler.patch b/uwsgi_gcc15-signal-handler.patch index b63250a..a36dc99 100644 --- a/uwsgi_gcc15-signal-handler.patch +++ b/uwsgi_gcc15-signal-handler.patch @@ -1,266 +1,3 @@ -diff -uNr a/core/emperor.c b/core/emperor.c ---- a/core/emperor.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/emperor.c 2025-01-24 19:16:51.668840358 +0100 -@@ -598,7 +598,7 @@ - } - - --static void emperor_stats() { -+static void emperor_stats(int sn) { - - struct uwsgi_instance *c_ui = ui->ui_next; - -diff -uNr a/core/fifo.c b/core/fifo.c ---- a/core/fifo.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/fifo.c 2025-01-24 19:52:16.760905071 +0100 -@@ -26,18 +26,18 @@ - - #define announce_fifo uwsgi_log_verbose("active master fifo is now %s\n", uwsgi_fifo_by_slot()) - --static void uwsgi_fifo_set_slot_zero() { uwsgi.master_fifo_slot = 0; announce_fifo; } --static void uwsgi_fifo_set_slot_one() { uwsgi.master_fifo_slot = 1; announce_fifo; } --static void uwsgi_fifo_set_slot_two() { uwsgi.master_fifo_slot = 2; announce_fifo; } --static void uwsgi_fifo_set_slot_three() { uwsgi.master_fifo_slot = 3; announce_fifo; } --static void uwsgi_fifo_set_slot_four() { uwsgi.master_fifo_slot = 4; announce_fifo; } --static void uwsgi_fifo_set_slot_five() { uwsgi.master_fifo_slot = 5; announce_fifo; } --static void uwsgi_fifo_set_slot_six() { uwsgi.master_fifo_slot = 6; announce_fifo; } --static void uwsgi_fifo_set_slot_seven() { uwsgi.master_fifo_slot = 7; announce_fifo; } --static void uwsgi_fifo_set_slot_eight() { uwsgi.master_fifo_slot = 8; announce_fifo; } --static void uwsgi_fifo_set_slot_nine() { uwsgi.master_fifo_slot = 9; announce_fifo; } -+static void uwsgi_fifo_set_slot_zero(int _) { uwsgi.master_fifo_slot = 0; announce_fifo; } -+static void uwsgi_fifo_set_slot_one(int _) { uwsgi.master_fifo_slot = 1; announce_fifo; } -+static void uwsgi_fifo_set_slot_two(int _) { uwsgi.master_fifo_slot = 2; announce_fifo; } -+static void uwsgi_fifo_set_slot_three(int _) { uwsgi.master_fifo_slot = 3; announce_fifo; } -+static void uwsgi_fifo_set_slot_four(int _) { uwsgi.master_fifo_slot = 4; announce_fifo; } -+static void uwsgi_fifo_set_slot_five(int _) { uwsgi.master_fifo_slot = 5; announce_fifo; } -+static void uwsgi_fifo_set_slot_six(int _) { uwsgi.master_fifo_slot = 6; announce_fifo; } -+static void uwsgi_fifo_set_slot_seven(int _) { uwsgi.master_fifo_slot = 7; announce_fifo; } -+static void uwsgi_fifo_set_slot_eight(int _) { uwsgi.master_fifo_slot = 8; announce_fifo; } -+static void uwsgi_fifo_set_slot_nine(int _) { uwsgi.master_fifo_slot = 9; announce_fifo; } - --static void subscriptions_blocker() { -+static void subscriptions_blocker(int _) { - if (uwsgi.subscriptions_blocked) { - uwsgi_log_verbose("subscriptions re-enabled\n"); - uwsgi.subscriptions_blocked = 0; -@@ -48,7 +48,7 @@ - } - } - --static void emperor_rescan() { -+static void emperor_rescan(int _) { - if (uwsgi.emperor_pid > 0) { - if (kill(uwsgi.emperor_pid, SIGWINCH)) { - uwsgi_error("emperor_rescan()/kill()"); -diff -uNr a/core/logging.c b/core/logging.c ---- a/core/logging.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/logging.c 2025-01-24 19:38:12.555044665 +0100 -@@ -509,10 +509,10 @@ - } - - if (need_rotation) { -- uwsgi_log_rotate(); -+ uwsgi_log_rotate(0); - } - else if (need_reopen) { -- uwsgi_log_reopen(); -+ uwsgi_log_reopen(0); - } - } - -@@ -552,13 +552,13 @@ - free(rot_name); - } - --void uwsgi_log_rotate() { -+void uwsgi_log_rotate(int _) { - if (!uwsgi.logfile) - return; - uwsgi_log_do_rotate(uwsgi.logfile, uwsgi.log_backupname, uwsgi.shared->logsize, uwsgi.original_log_fd); - } - --void uwsgi_log_reopen() { -+void uwsgi_log_reopen(int _) { - char message[1024]; - if (!uwsgi.logfile) return; - int ret = snprintf(message, 1024, "[%d] logsize: %llu, triggering log-reopen...\n", (int) uwsgi_now(), (unsigned long long) uwsgi.shared->logsize); -diff -uNr a/core/master.c b/core/master.c ---- a/core/master.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/master.c 2025-01-24 19:44:56.074389538 +0100 -@@ -26,7 +26,7 @@ - if (uwsgi.vassal_sos) { - if (uwsgi.current_time - last_sos > uwsgi.vassal_sos) { - uwsgi_log_verbose("asking Emperor for reinforcements (overload: %llu)...\n", (unsigned long long) ushared->overloaded); -- vassal_sos(); -+ vassal_sos(0); - last_sos = uwsgi.current_time; - } - } -@@ -294,12 +294,12 @@ - if (uwsgi.shared->backlog >= (uint64_t) uwsgi.vassal_sos_backlog) { - // ask emperor for help - uwsgi_log_verbose("asking Emperor for reinforcements (backlog: %llu)...\n", (unsigned long long) uwsgi.shared->backlog); -- vassal_sos(); -+ vassal_sos(0); - } - } - } - --void vassal_sos() { -+void vassal_sos(int _) { - if (!uwsgi.has_emperor) { - uwsgi_log("[broodlord] instance not governed by an Emperor !!!\n"); - return; -@@ -835,19 +835,19 @@ - touched = uwsgi_check_touches(uwsgi.touch_workers_reload); - if (touched) { - uwsgi_log_verbose("*** %s has been touched... workers reload !!! ***\n", touched); -- uwsgi_reload_workers(); -+ uwsgi_reload_workers(0); - continue; - } - touched = uwsgi_check_touches(uwsgi.touch_mules_reload); - if (touched) { - uwsgi_log_verbose("*** %s has been touched... mules reload !!! ***\n", touched); -- uwsgi_reload_mules(); -+ uwsgi_reload_mules(0); - continue; - } - touched = uwsgi_check_touches(uwsgi.touch_spoolers_reload); - if (touched) { - uwsgi_log_verbose("*** %s has been touched... spoolers reload !!! ***\n", touched); -- uwsgi_reload_spoolers(); -+ uwsgi_reload_spoolers(0); - continue; - } - touched = uwsgi_check_touches(uwsgi.touch_chain_reload); -@@ -1090,7 +1090,7 @@ - // never here - } - --void uwsgi_reload_workers() { -+void uwsgi_reload_workers(int _) { - int i; - uwsgi_block_signal(SIGHUP); - for (i = 1; i <= uwsgi.numproc; i++) { -@@ -1101,7 +1101,7 @@ - uwsgi_unblock_signal(SIGHUP); - } - --void uwsgi_reload_mules() { -+void uwsgi_reload_mules(int _) { - int i; - - uwsgi_block_signal(SIGHUP); -@@ -1113,7 +1113,7 @@ - uwsgi_unblock_signal(SIGHUP); - } - --void uwsgi_reload_spoolers() { -+void uwsgi_reload_spoolers(int _) { - struct uwsgi_spooler *us; - - uwsgi_block_signal(SIGHUP); -@@ -1127,7 +1127,7 @@ - uwsgi_unblock_signal(SIGHUP); - } - --void uwsgi_chain_reload() { -+void uwsgi_chain_reload(int _) { - if (!uwsgi.status.chain_reloading) { - uwsgi_log_verbose("chain reload starting...\n"); - uwsgi.status.chain_reloading = 1; -@@ -1137,7 +1137,7 @@ - } - } - --void uwsgi_brutally_reload_workers() { -+void uwsgi_brutally_reload_workers(int _) { - int i; - for (i = 1; i <= uwsgi.numproc; i++) { - if (uwsgi.workers[i].pid > 0) { -diff -uNr a/core/master_utils.c b/core/master_utils.c ---- a/core/master_utils.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/master_utils.c 2025-01-24 19:49:28.710316162 +0100 -@@ -2,7 +2,7 @@ - - extern struct uwsgi_server uwsgi; - --void worker_wakeup() { -+void worker_wakeup(int sn) { - } - - uint64_t uwsgi_worker_exceptions(int wid) { -@@ -1725,7 +1725,7 @@ - add_reload_fds(uwsgi.brutal_reload_on_fd, "brutal"); - } - --void uwsgi_refork_master() { -+void uwsgi_refork_master(int _) { - pid_t pid = fork(); - if (pid < 0) { - uwsgi_error("uwsgi_refork_master()/fork()"); -@@ -1746,15 +1746,15 @@ - exit(1); - } - --void uwsgi_cheaper_increase() { -+void uwsgi_cheaper_increase(int _) { - uwsgi.cheaper_fifo_delta++; - } - --void uwsgi_cheaper_decrease() { -+void uwsgi_cheaper_decrease(int _) { - uwsgi.cheaper_fifo_delta--; - } - --void uwsgi_go_cheap() { -+void uwsgi_go_cheap(int _) { - int i; - int waitpid_status; - if (uwsgi.status.is_cheap) return; -diff -uNr a/core/spooler.c b/core/spooler.c ---- a/core/spooler.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/spooler.c 2025-01-24 19:56:28.472783607 +0100 -@@ -12,7 +12,7 @@ - static uint64_t wakeup = 0; - - // function to allow waking up the spooler if blocked in event_wait --void spooler_wakeup() { -+void spooler_wakeup(int sn) { - wakeup++; - } - -diff -uNr a/core/uwsgi.c b/core/uwsgi.c ---- a/core/uwsgi.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/core/uwsgi.c 2025-01-24 19:59:45.448471107 +0100 -@@ -4957,7 +4957,7 @@ - exit(0); - } - --void uwsgi_update_pidfiles() { -+void uwsgi_update_pidfiles(int _) { - if (uwsgi.pidfile) { - uwsgi_write_pidfile(uwsgi.pidfile); - } -diff -uNr a/plugins/fiber/fiber.c b/plugins/fiber/fiber.c ---- a/plugins/fiber/fiber.c 2024-10-26 11:59:26.000000000 +0200 -+++ b/plugins/fiber/fiber.c 2025-01-24 20:18:47.222902654 +0100 -@@ -15,12 +15,12 @@ - }; - - --VALUE uwsgi_fiber_request() { -+VALUE uwsgi_fiber_request(VALUE yielded_arg, VALUE callback_arg, int argc, const VALUE *argv, VALUE blockarg) { - async_schedule_to_req_green(); - return Qnil; - } - --VALUE rb_fiber_schedule_to_req() { -+VALUE rb_fiber_schedule_to_req(VALUE args) { - int id = uwsgi.wsgi_req->async_id; - - if (!uwsgi.wsgi_req->suspended) { 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 @@ -269,7 +6,7 @@ diff -uNr a/plugins/pty/pty.c b/plugins/pty/pty.c } -static void uwsgi_pty_winch() { -+static void uwsgi_pty_winch(int _) { ++static void uwsgi_pty_winch(int signum) { // 2 uwsgi packets char uwsgi_pkt[8]; #ifdef TIOCGWINSZ @@ -294,48 +31,3 @@ diff -uNr a/plugins/tuntap/tuntap.c b/plugins/tuntap/tuntap.c if (!utt.routers) return; -diff -uNr a/uwsgi.h b/uwsgi.h ---- a/uwsgi.h 2024-10-26 11:59:26.000000000 +0200 -+++ b/uwsgi.h 2025-01-24 20:44:03.648790992 +0100 -@@ -4787,20 +4787,20 @@ - int uwsgi_master_fifo_manage(int); - - void uwsgi_log_do_rotate(char *, char *, off_t, int); --void uwsgi_log_rotate(); --void uwsgi_log_reopen(); --void uwsgi_reload_workers(); --void uwsgi_reload_mules(); --void uwsgi_reload_spoolers(); --void uwsgi_chain_reload(); --void uwsgi_refork_master(); --void uwsgi_update_pidfiles(); -+void uwsgi_log_rotate(int); -+void uwsgi_log_reopen(int); -+void uwsgi_reload_workers(int); -+void uwsgi_reload_mules(int); -+void uwsgi_reload_spoolers(int); -+void uwsgi_chain_reload(int); -+void uwsgi_refork_master(int); -+void uwsgi_update_pidfiles(int); - void gracefully_kill_them_all(int); --void uwsgi_brutally_reload_workers(); -+void uwsgi_brutally_reload_workers(int); - --void uwsgi_cheaper_increase(); --void uwsgi_cheaper_decrease(); --void uwsgi_go_cheap(); -+void uwsgi_cheaper_increase(int); -+void uwsgi_cheaper_decrease(int); -+void uwsgi_go_cheap(int); - - char **uwsgi_split_quoted(char *, size_t, char *, size_t *); - -@@ -4987,7 +4987,7 @@ - - int uwsgi_notify_socket_manage(int); - int uwsgi_notify_msg(char *, char *, size_t); --void vassal_sos(); -+void vassal_sos(int); - - int uwsgi_wait_for_fs(char *, int); - int uwsgi_wait_for_mountpoint(char *); From f6a6568654ed64290635e2a2142027f40440df32 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Tue, 3 Jun 2025 15:52:55 +0200 Subject: [PATCH 10/22] Rebuilt for Python 3.14 --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index 17ba2cb..65df39b 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.29 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 7fdcfd0cd4fcba663aae9158b19b07dfbedd1199 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sun, 8 Jun 2025 18:37:32 +0200 Subject: [PATCH 11/22] Update to 2.0.30 --- .gitignore | 2 ++ sources | 4 ++-- uwsgi.spec | 9 ++++++--- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 0561e1e..3fb1840 100644 --- a/.gitignore +++ b/.gitignore @@ -66,3 +66,5 @@ /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 diff --git a/sources b/sources index 4451a97..3f730d8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (2.0.29.tar.gz) = 6aaaaae9e067814e430dd80e5ac44e806f937c84f0b38a7ac3f399e92a392a426fe41c23c76371203a31625f985a3f5b397a3294b634c1c7a1280981023bdad1 -SHA512 (uwsgi-docs-b9da5ea.tar.gz) = 94756864572994feb0387d7712bc19538f5a8cf6eed57c6171ee12cb8b7a3e268b2d9695c0d4205c4972401fd2a246badfbb118880f3e531c2803dd3431c8420 +SHA512 (2.0.30.tar.gz) = a8ff667e55956285427d440cf40c552ad6628c192e3b4d0a3d8d5f96aec09c18466feb64f4b305d84194a7d5e2bb15a49a1d6b807af538e474e72867ceb7f644 +SHA512 (uwsgi-docs-f728a25.tar.gz) = d9c43572ea325fc841b929d82f24fd2ec6e798899b7f0d2a74936ad51967f71c09d759f1a2cfb7708a2f9828ac46d06c50c81c9a72828c160231fa281f317415 diff --git a/uwsgi.spec b/uwsgi.spec index 65df39b..b7c1705 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -1,5 +1,5 @@ # Documentation sources: -%global commit b9da5eadc78985ec6dff7e3a755ca7be42f9f4c2 +%global commit f728a2505313a928413af07720db7b261e8adcd4 %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -249,8 +249,8 @@ %endif Name: uwsgi -Version: 2.0.29 -Release: 2%{?dist} +Version: 2.0.30 +Release: 1%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 14c9d4c7a604d9a891aef8204487a3aa7c8e2772 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Mon, 9 Jun 2025 07:43:54 +0200 Subject: [PATCH 12/22] Rebuilt for Python 3.14 --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index b7c1705..b51c235 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.30 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 0d453e9ae85969e96ee89b3ab13d196e95790ce2 Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 8 Jul 2025 14:25:37 +0200 Subject: [PATCH 13/22] Perl 5.42 rebuild --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index b51c235..7d8dfd2 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.30 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 1e2ce24bb0e5b19136360a1d70c997de2f7aba6b Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Thu, 24 Jul 2025 16:11:11 +0200 Subject: [PATCH 14/22] Disable perl-Coro for rawhide, as this blocks rebuilding for perl 5.42 (see https://bugzilla.redhat.com/show_bug.cgi?id=2379448) --- uwsgi.spec | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/uwsgi.spec b/uwsgi.spec index 7d8dfd2..dbb8684 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -26,7 +26,7 @@ %bcond_without tuntap %bcond_without zeromq %bcond_without perl -%bcond_without perlcoro +%bcond_with perlcoro %bcond_without glusterfs %bcond_without php %bcond_without pq @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.30 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,10 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 06e8062cb468efd5e498b8c2eea38383ac6ed92b Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 15 Aug 2025 15:21:55 +0200 Subject: [PATCH 15/22] Rebuilt for Python 3.14.0rc2 bytecode --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index dbb8684..e682c26 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -250,7 +250,7 @@ Name: uwsgi Version: 2.0.30 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -1962,6 +1962,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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) From 305e1c563fe8c061bf748b964c904750c45c511b Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Wed, 20 Aug 2025 20:35:03 +0200 Subject: [PATCH 16/22] Add python3.13 module for EL9 --- uwsgi.spec | 75 +++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 74 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index e682c26..3269d84 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -160,6 +160,14 @@ %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 @@ -239,6 +247,9 @@ %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 @@ -247,10 +258,11 @@ %endif %endif %endif +%endif Name: uwsgi Version: 2.0.30 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -307,6 +319,9 @@ 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 @@ -451,6 +466,17 @@ 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 @@ -810,6 +836,15 @@ 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 @@ -978,6 +1013,15 @@ 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 @@ -1363,6 +1407,10 @@ 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 @@ -1487,6 +1535,12 @@ 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 @@ -1549,6 +1603,12 @@ 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 @@ -1721,6 +1781,11 @@ 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 @@ -1805,6 +1870,11 @@ 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 @@ -1962,6 +2032,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From fce9901ade52fe029f1d1cd63e99bb6c0a340424 Mon Sep 17 00:00:00 2001 From: Python Maint Date: Fri, 19 Sep 2025 15:01:52 +0200 Subject: [PATCH 17/22] Rebuilt for Python 3.14.0rc3 bytecode --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index 3269d84..790480e 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -262,7 +262,7 @@ Name: uwsgi Version: 2.0.30 -Release: 6%{?dist} +Release: 7%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -2032,6 +2032,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 451e6fd8be531397ba8abcf742efaf50176a5078 Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sun, 12 Oct 2025 16:53:42 +0200 Subject: [PATCH 18/22] Update to 2.0.31, drop merged patches --- .gitignore | 2 ++ sources | 4 ++-- uwsgi.spec | 11 ++++++----- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/.gitignore b/.gitignore index 3fb1840..cceb6ff 100644 --- a/.gitignore +++ b/.gitignore @@ -68,3 +68,5 @@ /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/sources b/sources index 3f730d8..6394bca 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (2.0.30.tar.gz) = a8ff667e55956285427d440cf40c552ad6628c192e3b4d0a3d8d5f96aec09c18466feb64f4b305d84194a7d5e2bb15a49a1d6b807af538e474e72867ceb7f644 -SHA512 (uwsgi-docs-f728a25.tar.gz) = d9c43572ea325fc841b929d82f24fd2ec6e798899b7f0d2a74936ad51967f71c09d759f1a2cfb7708a2f9828ac46d06c50c81c9a72828c160231fa281f317415 +SHA512 (uwsgi-docs-5784c30.tar.gz) = 4f966da4a867e45043a0eb4a123b439c8ab1f7ce6e8b32d770545ff7fae586e4e7dd011106aa6ed0ec82a6c6192937e0fd12ed681443332205566fc329e11cd8 +SHA512 (2.0.31.tar.gz) = d4d327f36455438e165298cb5a7d483c951f4acd3d834b46ceeda105bd3664792ead226b02e06db62e92c210544778119bf75a55d9d4f30f8fba896c7de51e6d diff --git a/uwsgi.spec b/uwsgi.spec index 790480e..3359e4c 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -1,5 +1,5 @@ # Documentation sources: -%global commit f728a2505313a928413af07720db7b261e8adcd4 +%global commit 5784c30866a94942a5200db4d5f6c2850afb1caa %global shortcommit %(c=%{commit}; echo ${c:0:7}) %global docrepo uwsgi-docs @@ -261,8 +261,8 @@ %endif Name: uwsgi -Version: 2.0.30 -Release: 7%{?dist} +Version: 2.0.31 +Release: 1%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -293,7 +293,6 @@ Patch6: uwsgi_v8-314_compatibility.patch Patch7: uwsgi_fix_mono.patch Patch13: uwsgi_fix_chroot_chdir.patch Patch14: uwsgi_python312-2.patch -Patch15: uwsgi_gcc15-signal-handler.patch BuildRequires: curl, libxml2-devel, libuuid-devel, jansson-devel BuildRequires: libyaml-devel, ruby-devel @@ -1385,7 +1384,6 @@ 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 @@ -2032,6 +2030,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From b2673a41cc434fed2eb1a4a4a8952b5fa91b646c Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 15 Oct 2025 07:59:30 +0200 Subject: [PATCH 19/22] rebuild for https://fedoraproject.org/wiki/Changes/php85 --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index 3359e4c..decf399 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -262,7 +262,7 @@ Name: uwsgi Version: 2.0.31 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -2030,6 +2030,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 87e2b9fbb4ab9498c5f49e87addb776fe0b007fe Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Wed, 26 Nov 2025 21:49:21 +0100 Subject: [PATCH 20/22] Fix path errors for EPEL9 uwsgidecorator packages --- uwsgi.spec | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/uwsgi.spec b/uwsgi.spec index decf399..f32fc84 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -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,7 +156,7 @@ %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 @@ -164,7 +164,7 @@ %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_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 @@ -262,7 +262,7 @@ Name: uwsgi Version: 2.0.31 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -2030,6 +2030,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From 4f78b765d16702a889e6149633461ba77ae46bd8 Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Thu, 8 Jan 2026 20:15:17 +0900 Subject: [PATCH 21/22] Rebuild for https://fedoraproject.org/wiki/Changes/Ruby_4.0 --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index f32fc84..338f608 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -262,7 +262,7 @@ Name: uwsgi Version: 2.0.31 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -2030,6 +2030,9 @@ install -m0644 -D %{SOURCE8} %{buildroot}%{_sysusersdir}/uwsgi.conf %changelog +* 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 From dd58e131b7f1e4ab706a7ff635210214351a5a7e Mon Sep 17 00:00:00 2001 From: Ralf Ertzinger Date: Sun, 11 Jan 2026 18:29:57 +0100 Subject: [PATCH 22/22] Rebuild for new gccgo libraries --- uwsgi.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/uwsgi.spec b/uwsgi.spec index 338f608..424e718 100644 --- a/uwsgi.spec +++ b/uwsgi.spec @@ -262,7 +262,7 @@ Name: uwsgi Version: 2.0.31 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Fast, self-healing, application container server # uwsgi is licensed under GPLv2 with a linking exception # docs are licensed under MIT @@ -2030,6 +2030,9 @@ 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