Support Python 3.11/3.12 on RHEL 8/9
RHEL (and clones) have Python 3.11/3.12 packages in the AppStream repo. It should be easy to add RPMs for these versions.
Example RPMs:
- https://download.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/Packages/p/python3.11-3.11.7-1.el8.x86_64.rpm
- https://download.rockylinux.org/pub/rocky/8/AppStream/x86_64/os/Packages/p/python3.12-3.12.1-4.el8.x86_64.rpm
- https://download.rockylinux.org/pub/rocky/9/AppStream/x86_64/os/Packages/p/python3.11-3.11.7-1.el9_4.1.x86_64.rpm
- https://download.rockylinux.org/pub/rocky/9/AppStream/x86_64/os/Packages/p/python3.12-3.12.1-4.el9.x86_64.rpm
One issue I see is that Fedora 39 does not have a python3.12 RPM, since it appears to be the default python3 RPM. This will cause issues setting the value of BUILD_DEPENDS_python312 between RHEL and Fedora.
diff --git a/pkg/rpm/Makefile b/pkg/rpm/Makefile
index f00b336a..9796dfd0 100644
--- a/pkg/rpm/Makefile
+++ b/pkg/rpm/Makefile
@@ -40,6 +40,8 @@ include Makefile.python27
include Makefile.python36
include Makefile.python38
include Makefile.python39
+include Makefile.python311
+include Makefile.python312
include Makefile.go
include Makefile.perl
include Makefile.jsc-common
@@ -51,6 +53,8 @@ endif
ifeq ($(OSVER), centos9)
include Makefile.php
include Makefile.python39
+include Makefile.python311
+include Makefile.python312
include Makefile.go
include Makefile.perl
include Makefile.jsc-common
diff --git a/pkg/rpm/Makefile.python312 b/pkg/rpm/Makefile.python312
index c37069eb..e60f116d 100644
--- a/pkg/rpm/Makefile.python312
+++ b/pkg/rpm/Makefile.python312
@@ -13,7 +13,7 @@ MODULE_INSTARGS_python312= python3.12-install
MODULE_SOURCES_python312= unit.example-python-app \
unit.example-python312-config
-BUILD_DEPENDS_python312= python3-devel
+BUILD_DEPENDS_python312= python3.12-devel
BUILD_DEPENDS+= $(BUILD_DEPENDS_python312)
pinging @thresheek as you have the appropriate context to help us with this
Thanks for the suggestion @tjmullicani
I think we can adapt RHEL builds to this change; we can use OSVER to distinguish between those in the Makefiles..
I need to check what steps we need to make on our packaging infra to get this done, but I think it's doable in general.
Any update yet as to when we can expect Unit support for python 3.11, 3.12, and 3.13 in RHEL9/OL9?
https://packages.nginx.org/unit/rhel/9/x86_64/RPMS/ only lists python 3.9.
Would be very nice if that love could be extended to later python versions too.
Thanks.
OK, so I'll cut straight to the chase.
Unit development is on indefinite hiatus.
Admittedly this may not be entirely clear as we currently have from the README
A repostatus badge of Unsupported
and
NGINX Unit is actively seeking contributors and maintainers.
But then from SUPPORT.md
The team is focusing its limited capacity to keep NGINX Unit stable, secure and high-quality. Its focus will be on critical maintenance, such as for security issues, dependency upgrades, and resolving crashes or undefined behavior.
Which is in contradiction to the above repostatus, (though the README was updated after the SUPPORT.md was added).
There will be one final tagged release (1.35.0) but no packaging will be performed.