summaryrefslogtreecommitdiffhomepage
path: root/pkg/rpm
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/rpm')
-rw-r--r--pkg/rpm/Makefile27
-rw-r--r--pkg/rpm/Makefile.python31155
-rw-r--r--pkg/rpm/Makefile.python3853
-rw-r--r--pkg/rpm/rpmbuild/SOURCES/unit.example-python311-config16
-rw-r--r--pkg/rpm/rpmbuild/SOURCES/unit.example-python38-config16
-rw-r--r--pkg/rpm/unit.module.spec.in2
-rw-r--r--pkg/rpm/unit.spec.in8
7 files changed, 172 insertions, 5 deletions
diff --git a/pkg/rpm/Makefile b/pkg/rpm/Makefile
index bbe44fe5..d00a25ac 100644
--- a/pkg/rpm/Makefile
+++ b/pkg/rpm/Makefile
@@ -18,8 +18,10 @@ else ifeq ($(shell rpm --eval "%{?rhel}"), 9)
OSVER = centos9
else ifeq ($(shell rpm --eval "%{?amzn}"), 2)
OSVER = amazonlinux2
-else ifeq ($(shell test `rpm --eval '0%{?fedora} -ge 35'`; echo $$?),0)
+else ifeq ($(shell test `rpm --eval '0%{?fedora} -ge 35 -a 0%{?fedora} -le 36'`; echo $$?),0)
OSVER = fedora
+else ifeq ($(shell test `rpm --eval '0%{?fedora} -ge 37'`; echo $$?),0)
+OSVER = fedora37
endif
BUILD_DEPENDS_unit = gcc rpm-build rpmlint
@@ -53,6 +55,8 @@ ifeq ($(OSVER), centos8)
include Makefile.php
include Makefile.python27
include Makefile.python36
+include Makefile.python38
+include Makefile.python39
include Makefile.go
include Makefile.perl
include Makefile.jsc-common
@@ -91,7 +95,18 @@ include Makefile.jsc8
include Makefile.jsc11
endif
-CONFIGURE_ARGS=\
+ifeq ($(OSVER), fedora37)
+include Makefile.php
+include Makefile.python311
+include Makefile.go
+include Makefile.perl
+include Makefile.ruby
+include Makefile.jsc-common
+include Makefile.jsc8
+include Makefile.jsc11
+endif
+
+CONFIGURE_ARGS_COMMON=\
--prefix=/usr \
--state=%{_sharedstatedir}/unit \
--control="unix:/var/run/unit/control.sock" \
@@ -103,6 +118,10 @@ CONFIGURE_ARGS=\
--tests \
--openssl
+CONFIGURE_ARGS=\
+ $(CONFIGURE_ARGS_COMMON) \
+ --njs
+
export CR=\\n
default:
@@ -161,7 +180,7 @@ endif
rpmbuild/SOURCES/unit-$(VERSION).tar.gz:
cd ../.. && tar -czf pkg/rpm/rpmbuild/SOURCES/unit-$(VERSION).tar.gz \
--transform "s#^#unit-$(VERSION)/#" \
- LICENSE NOTICE CHANGES README.md CONTRIBUTING.md configure auto src test version go docs/man/unitd.8.in
+ LICENSE NOTICE CHANGES README.md CONTRIBUTING.md configure auto src test version go pkg/contrib docs/man/unitd.8.in
unit: check-build-depends-unit rpmbuild/SPECS/unit.spec rpmbuild/SOURCES/unit-$(VERSION).tar.gz
@echo "===> Building $@ package" ; \
@@ -197,7 +216,7 @@ rpmbuild/SPECS/unit-%.spec: unit.module.spec.in ../../docs/changes.xml | rpmbuil
-e "s#%%UNIT_RELEASE%%#$(RELEASE)#g" \
-e "s#%%PACKAGE_VENDOR%%#$(PACKAGE_VENDOR)#g" \
-e "s#%%MODULE_SOURCES%%#$${sources}#g" \
- -e "s#%%CONFIGURE_ARGS%%#$(CONFIGURE_ARGS)#g" \
+ -e "s#%%CONFIGURE_ARGS%%#$(CONFIGURE_ARGS_COMMON)#g" \
-e "s#%%MODULE_CONFARGS%%#$(MODULE_CONFARGS_$*)#g" \
-e "s#%%MODULE_MAKEARGS%%#$(MODULE_MAKEARGS_$*)#g" \
-e "s#%%MODULE_INSTARGS%%#$(MODULE_INSTARGS_$*)#g" \
diff --git a/pkg/rpm/Makefile.python311 b/pkg/rpm/Makefile.python311
new file mode 100644
index 00000000..a8bee943
--- /dev/null
+++ b/pkg/rpm/Makefile.python311
@@ -0,0 +1,55 @@
+MODULES+= python311
+MODULE_SUFFIX_python311= python3.11
+
+MODULE_SUMMARY_python311= Python 3.11 module for NGINX Unit
+
+MODULE_VERSION_python311= $(VERSION)
+MODULE_RELEASE_python311= 1
+
+MODULE_CONFARGS_python311= python --config=python3.11-config
+MODULE_MAKEARGS_python311= python3.11
+MODULE_INSTARGS_python311= python3.11-install
+
+MODULE_SOURCES_python311= unit.example-python-app \
+ unit.example-python311-config
+
+ifneq (,$(findstring $(OSVER),fedora37))
+BUILD_DEPENDS_python311= python3-devel
+endif
+
+BUILD_DEPENDS+= $(BUILD_DEPENDS_python311)
+
+define MODULE_PREINSTALL_python311
+%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit-python311/examples/python-app
+%{__install} -m 644 -p %{SOURCE100} \
+ %{buildroot}%{_datadir}/doc/unit-python311/examples/python-app/wsgi.py
+%{__install} -m 644 -p %{SOURCE101} \
+ %{buildroot}%{_datadir}/doc/unit-python311/examples/unit.config
+endef
+export MODULE_PREINSTALL_python311
+
+define MODULE_FILES_python311
+%{_libdir}/unit/modules/*
+%{_libdir}/unit/debug-modules/*
+endef
+export MODULE_FILES_python311
+
+define MODULE_POST_python311
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_python311) has been installed.
+
+To check the sample app, run these commands:
+
+ sudo service unit start
+ cd /usr/share/doc/%{name}/examples
+ sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
+ curl http://localhost:8400/
+
+Online documentation is available at https://unit.nginx.org
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_python311
diff --git a/pkg/rpm/Makefile.python38 b/pkg/rpm/Makefile.python38
new file mode 100644
index 00000000..3f3657e2
--- /dev/null
+++ b/pkg/rpm/Makefile.python38
@@ -0,0 +1,53 @@
+MODULES+= python38
+MODULE_SUFFIX_python38= python3.8
+
+MODULE_SUMMARY_python38= Python 3.8 module for NGINX Unit
+
+MODULE_VERSION_python38= $(VERSION)
+MODULE_RELEASE_python38= 1
+
+MODULE_CONFARGS_python38= python --config=python3.8-config
+MODULE_MAKEARGS_python38= python3.8
+MODULE_INSTARGS_python38= python3.8-install
+
+MODULE_SOURCES_python38= unit.example-python-app \
+ unit.example-python38-config
+
+BUILD_DEPENDS_python38= python38-devel
+
+BUILD_DEPENDS+= $(BUILD_DEPENDS_python38)
+
+define MODULE_PREINSTALL_python38
+%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit-python38/examples/python-app
+%{__install} -m 644 -p %{SOURCE100} \
+ %{buildroot}%{_datadir}/doc/unit-python38/examples/python-app/wsgi.py
+%{__install} -m 644 -p %{SOURCE101} \
+ %{buildroot}%{_datadir}/doc/unit-python38/examples/unit.config
+endef
+export MODULE_PREINSTALL_python38
+
+define MODULE_FILES_python38
+%{_libdir}/unit/modules/*
+%{_libdir}/unit/debug-modules/*
+endef
+export MODULE_FILES_python38
+
+define MODULE_POST_python38
+cat <<BANNER
+----------------------------------------------------------------------
+
+The $(MODULE_SUMMARY_python38) has been installed.
+
+To check the sample app, run these commands:
+
+ sudo service unit start
+ cd /usr/share/doc/%{name}/examples
+ sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
+ curl http://localhost:8400/
+
+Online documentation is available at https://unit.nginx.org
+
+----------------------------------------------------------------------
+BANNER
+endef
+export MODULE_POST_python38
diff --git a/pkg/rpm/rpmbuild/SOURCES/unit.example-python311-config b/pkg/rpm/rpmbuild/SOURCES/unit.example-python311-config
new file mode 100644
index 00000000..ee653db6
--- /dev/null
+++ b/pkg/rpm/rpmbuild/SOURCES/unit.example-python311-config
@@ -0,0 +1,16 @@
+{
+ "applications": {
+ "example_python": {
+ "type": "python 3.11",
+ "processes": 2,
+ "path": "/usr/share/doc/unit-python311/examples/python-app",
+ "module": "wsgi"
+ }
+ },
+
+ "listeners": {
+ "*:8400": {
+ "pass": "applications/example_python"
+ }
+ }
+}
diff --git a/pkg/rpm/rpmbuild/SOURCES/unit.example-python38-config b/pkg/rpm/rpmbuild/SOURCES/unit.example-python38-config
new file mode 100644
index 00000000..c98d1a52
--- /dev/null
+++ b/pkg/rpm/rpmbuild/SOURCES/unit.example-python38-config
@@ -0,0 +1,16 @@
+{
+ "applications": {
+ "example_python": {
+ "type": "python 3.8",
+ "processes": 2,
+ "path": "/usr/share/doc/unit-python38/examples/python-app",
+ "module": "wsgi"
+ }
+ },
+
+ "listeners": {
+ "*:8400": {
+ "pass": "applications/example_python"
+ }
+ }
+}
diff --git a/pkg/rpm/unit.module.spec.in b/pkg/rpm/unit.module.spec.in
index 88a1c33e..bc68a254 100644
--- a/pkg/rpm/unit.module.spec.in
+++ b/pkg/rpm/unit.module.spec.in
@@ -39,7 +39,7 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: pcre2-devel
-Requires: unit == %%UNIT_VERSION%%-%%UNIT_RELEASE%%%{?dist}.ngx
+Requires: unit-r%%UNIT_VERSION%%
%description
NGINX Unit is a runtime and delivery environment for modern distributed
diff --git a/pkg/rpm/unit.spec.in b/pkg/rpm/unit.spec.in
index 01c08bb8..06880fcf 100644
--- a/pkg/rpm/unit.spec.in
+++ b/pkg/rpm/unit.spec.in
@@ -46,6 +46,9 @@ Requires(preun): systemd
Requires(postun): systemd
BuildRequires: pcre2-devel
+BuildRequires: pkgconfig
+
+Provides: unit-r%{version}
%description
NGINX Unit is a runtime and delivery environment for modern distributed
@@ -72,6 +75,9 @@ Library and include files required for NGINX Unit modules development.
%setup -q
%build
+%{__make} %{?_smp_mflags} -C pkg/contrib .njs
+
+PKG_CONFIG_PATH=%{bdir}/pkg/contrib/njs/build \
./configure \
%{CONFIGURE_ARGS} \
--modules=%{_libdir}/unit/debug-modules \
@@ -82,6 +88,8 @@ Library and include files required for NGINX Unit modules development.
%{__make} %{?_smp_mflags}
%{__make} %{?_smp_mflags} build/libunit.a
%{__mv} build build-debug
+
+PKG_CONFIG_PATH=%{bdir}/pkg/contrib/njs/build \
./configure \
%{CONFIGURE_ARGS} \
--modules=%{_libdir}/unit/modules \