Packages: added wasm module packaging for rpm-based distros.

This commit is contained in:
Konstantin Pavlov 2023-08-22 14:55:10 -07:00
parent 1a31863f82
commit d5c2ed1755
3 changed files with 60 additions and 0 deletions

View file

@ -64,6 +64,7 @@ include Makefile.perl
include Makefile.jsc-common
include Makefile.jsc8
include Makefile.jsc11
include Makefile.wasm
endif
ifeq ($(OSVER), centos9)
@ -74,6 +75,7 @@ include Makefile.perl
include Makefile.jsc-common
include Makefile.jsc8
include Makefile.jsc11
include Makefile.wasm
endif
ifeq ($(OSVER), amazonlinux2)
@ -84,6 +86,7 @@ include Makefile.go
include Makefile.perl
include Makefile.jsc-common
include Makefile.jsc8
include Makefile.wasm
endif
ifeq ($(OSVER), amazonlinux2023)
@ -94,6 +97,7 @@ include Makefile.go
include Makefile.perl
include Makefile.jsc-common
include Makefile.jsc17
include Makefile.wasm
endif
ifeq ($(OSVER), fedora)
@ -105,6 +109,7 @@ include Makefile.ruby
include Makefile.jsc-common
include Makefile.jsc8
include Makefile.jsc11
include Makefile.wasm
endif
ifeq ($(OSVER), fedora37)
@ -116,6 +121,7 @@ include Makefile.ruby
include Makefile.jsc-common
include Makefile.jsc8
include Makefile.jsc11
include Makefile.wasm
endif
CONFIGURE_ARGS_COMMON=\
@ -216,6 +222,7 @@ rpmbuild/SPECS/unit-%.spec: unit.module.spec.in ../../docs/changes.xml | rpmbuil
done ; \
pkgname=$(shell echo $@ | cut -d '/' -f 3 | tr '_' '-' | cut -d '.' -f 1) ; \
definitions=`echo "$$MODULE_DEFINITIONS_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
prebuild=`echo "$$MODULE_PREBUILD_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
preinstall=`echo "$$MODULE_PREINSTALL_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
postinstall=`echo "$$MODULE_POSTINSTALL_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
files=`echo "$$MODULE_FILES_$*" | sed -e ':a' -e 'N' -e '$$!ba' -e "s/\n/\$$CR/g"` ; \
@ -234,6 +241,7 @@ rpmbuild/SPECS/unit-%.spec: unit.module.spec.in ../../docs/changes.xml | rpmbuil
-e "s#%%MODULE_MAKEARGS%%#$(MODULE_MAKEARGS_$*)#g" \
-e "s#%%MODULE_INSTARGS%%#$(MODULE_INSTARGS_$*)#g" \
-e "s#%%MODULE_DEFINITIONS%%#$${definitions}#g" \
-e "s#%%MODULE_PREBUILD%%#$${prebuild}#g" \
-e "s#%%MODULE_PREINSTALL%%#$${preinstall}#g" \
-e "s#%%MODULE_POSTINSTALL%%#$${postinstall}#g" \
-e "s#%%MODULE_FILES%%#$${files}#g" \

51
pkg/rpm/Makefile.wasm Normal file
View file

@ -0,0 +1,51 @@
MODULES+= wasm
MODULE_SUFFIX_wasm= wasm
MODULE_SUMMARY_wasm= WASM module for NGINX Unit
MODULE_VERSION_wasm= $(VERSION)
MODULE_RELEASE_wasm= 1
MODULE_CONFARGS_wasm= wasm --include-path=\`pwd\`/pkg/contrib/wasmtime/crates/c-api/include --lib-path=\`pwd\`/pkg/contrib/wasmtime/target/release
MODULE_MAKEARGS_wasm= wasm
MODULE_INSTARGS_wasm= wasm-install
MODULE_SOURCES_wasm=
BUILD_DEPENDS_wasm=
BUILD_DEPENDS+= $(BUILD_DEPENDS_wasm)
define MODULE_PREBUILD_wasm
%{__make} -C pkg/contrib .wasmtime
endef
export MODULE_PREBUILD_wasm
define MODULE_PREINSTALL_wasm
endef
export MODULE_PREINSTALL_wasm
define MODULE_POSTINSTALL_wasm
%{__install} -m 755 -p pkg/contrib/wasmtime/target/release/libwasmtime.so %{buildroot}%{_libdir}/
endef
export MODULE_POSTINSTALL_wasm
define MODULE_FILES_wasm
%{_libdir}/libwasmtime.so
%{_libdir}/unit/modules/*
%{_libdir}/unit/debug-modules/*
endef
export MODULE_FILES_wasm
define MODULE_POST_wasm
cat <<BANNER
----------------------------------------------------------------------
The $(MODULE_SUMMARY_wasm) has been installed.
Online documentation is available at https://unit.nginx.org
----------------------------------------------------------------------
BANNER
endef
export MODULE_POST_wasm

View file

@ -59,6 +59,7 @@ This package contains %%SUMMARY%%.
tar --strip-components=1 -zxf %{SOURCE0}
%build
%%MODULE_PREBUILD%%
./configure \
%{CONFIGURE_ARGS} \
--modulesdir=%{_libdir}/unit/debug-modules \