unit icon indicating copy to clipboard operation
unit copied to clipboard

Support Python 3.11/3.12 on RHEL 8/9

Open tjmullicani opened this issue 1 year ago • 4 comments

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)

tjmullicani avatar Jul 23 '24 22:07 tjmullicani

pinging @thresheek as you have the appropriate context to help us with this

javorszky avatar Jul 29 '24 15:07 javorszky

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.

thresheek avatar Jul 29 '24 20:07 thresheek

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.

VS-labs-za avatar Sep 08 '25 06:09 VS-labs-za

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.

ac000 avatar Sep 08 '25 15:09 ac000