From 859e9edcc3887ef7d6d569b476e970032a2c55ab Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 28 Oct 2026 08:01:33 +0000 Subject: automatic import of opennjet --- opennjet.spec | 136 +++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 93 insertions(+), 43 deletions(-) (limited to 'opennjet.spec') diff --git a/opennjet.spec b/opennjet.spec index 03a559f..88651d7 100644 --- a/opennjet.spec +++ b/opennjet.spec @@ -1,36 +1,89 @@ -Name: opennjet -Version: 4.0.2.0 -Release: 1%{?dist} - -Summary: OpenNJet Application Engine -License: MulanPSL-2.0 -URL: https://gitee.com/njet-rd/njet - -SOURCE0: https://github.com/OpenNJet/OpenNJet/archive/refs/tags/v%{version}.tar.gz -Patch0: fix-cmake4.patch -Patch1: fix-llhttp-avail.patch - -Requires(pre): shadow-utils -BuildRequires: systemd make gcc gcc-c++ vim-common m4 autoconf automake cmake zlib-devel openssl-devel pcre-devel libtool libtool-ltdl pkgconfig patch +# topdir: opennjet-4.0.2.0 +# OpenNJet is an nginx-derived application engine for cloud-native applications. +# Built via upstream build_cc.sh which bundles tongsuo/openssl, luajit, pcre, etc. +# Binary and service retain upstream name "njet"; package name is "opennjet". + +Name: opennjet +Version: 4.0.2.0 +Release: 1%{?dist} +Summary: OpenNJet Application Engine - nginx-derived cloud-native runtime + +License: MulanPSL-2.0 +URL: https://github.com/OpenNJet/OpenNJet +Source0: https://github.com/OpenNJet/OpenNJet/archive/refs/tags/v%{version}.tar.gz#/%{name}-%{version}.tar.gz + +Group: System Environment/Daemons +Packager: openEuler Builder + +BuildRequires: gcc +BuildRequires: gcc-c++ +BuildRequires: make +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +BuildRequires: libtool-ltdl-devel +BuildRequires: m4 +BuildRequires: cmake +BuildRequires: perl +BuildRequires: pkgconfig +BuildRequires: vim-common +BuildRequires: pcre-devel +BuildRequires: zlib-devel +BuildRequires: openssl-devel +BuildRequires: systemd + +Requires(pre): shadow-utils +Requires(post): systemd +Requires(post): libcap +Requires(preun): systemd +Requires(postun): systemd %description -OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序,作为底层引擎,OpenNJet 实现了NGINX 云原生功能增强、安全加固和代码重构,利用动态加载机制可以实现不同的产品形态,如Web服务器、流媒体服务器、负载均衡、代理(Proxy)、应用中间件、API网关、消息队列等产品形态等等。 +OpenNJet is a high-performance, lightweight web application and proxy software. +As a cloud-native service mesh data plane, NJet provides dynamic configuration +loading, active health checks, cluster high availability, and declarative API. +Through the CoPilot co-pilot service framework, it achieves high extensibility +while isolating control plane and data plane. + +OpenNJet 应用引擎是基于 NGINX 的面向互联网和云原生应用提供的运行时组态服务程序, +作为底层引擎,OpenNJet 实现了 NGINX 云原生功能增强、安全加固和代码重构, +利用动态加载机制可以实现不同的产品形态,如 Web 服务器、流媒体服务器、负载均衡、 +代理(Proxy)、应用中间件、API 网关、消息队列等产品形态。 %prep -%autosetup -p1 -n OpenNJet-%{version} +%autosetup -n %{name}-%{version} %build -sed -i 's/--strict-warnings//g' ./build_cc.sh && ./build_cc.sh conf && make -j `nproc` +# Remove --strict-warnings from openssl build options (compiler compatibility) +sed -i 's/--strict-warnings//g' ./build_cc.sh + +# Configure (bundles tongsuo/openssl, luajit, etc. from auto/lib/) +./build_cc.sh conf + +# Build njet main binary +make -j $(nproc) + +# Build auxiliary tools (agw_passwd, etc.) make tools + +# Compile lua scripts to bytecode and shared objects ./build_lua.sh %install rm -rf %{buildroot} mkdir -p %{buildroot}/usr/local/njet/{apps,logs,data,modules,lib/tcc,sbin,lualib/lib,lualib/clib} mkdir -p %{buildroot}/var/log/njet/logs + +# Install njet binary, libraries, and bundled components DESTDIR=%{buildroot} ./build_cc.sh install + +# Copy pre-built configuration files and systemd unit from upstream rpm layout cp -a build/rpm/njet.conf.files/* %{buildroot} + +# Remove static libraries from lib/ (preserve lib/tcc/*.a needed at runtime) rm -f %{buildroot}/usr/local/njet/lib/*.a + +# Copy compiled lua bytecode modules cp -a objs/scripts/so/* %{buildroot}/usr/local/njet/lualib/clib/ rm -rf objs/scripts/so cp -a objs/scripts/* %{buildroot}/usr/local/njet/modules/ @@ -46,35 +99,44 @@ if [ "$1" -eq 1 ]; then fi %post - -grep -q /usr/local/lib /etc/ld.so.conf - +grep -q /usr/local/lib /etc/ld.so.conf 2>/dev/null if [ $? != 0 ] ; then echo "/usr/local/lib" >> /etc/ld.so.conf fi -/bin/chmod a+x /usr/local/njet/sbin/agw_passwd -/usr/local/njet/sbin/agw_passwd /usr/local/njet/apigw_data/api_gateway.db +if [ -x /usr/local/njet/sbin/agw_passwd ]; then + /bin/chmod a+x /usr/local/njet/sbin/agw_passwd + /usr/local/njet/sbin/agw_passwd /usr/local/njet/apigw_data/api_gateway.db || true +fi ldconfig +systemctl daemon-reload || true +systemctl enable njet.service || true -systemctl daemon-reload -systemctl enable njet.service - -/usr/sbin/setcap cap_dac_override,cap_dac_read_search,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_setuid=eip /usr/local/njet/sbin/njet +if [ -x /usr/sbin/setcap ] && [ -x /usr/local/njet/sbin/njet ]; then + /usr/sbin/setcap cap_dac_override,cap_dac_read_search,cap_net_bind_service,cap_net_admin,cap_net_raw,cap_setuid=eip /usr/local/njet/sbin/njet || true +fi %preun -systemctl stop njet.service >/dev/null 2>&1 -systemctl disable njet.service -systemctl daemon-reload +if [ "$1" -eq 0 ]; then + systemctl stop njet.service >/dev/null 2>&1 || true + systemctl disable njet.service || true + systemctl daemon-reload || true +fi %postun +if [ "$1" -ge 1 ]; then + systemctl daemon-reload || true +fi +ldconfig 2>/dev/null || true %clean rm -rf %{buildroot} %files %defattr(-,root,root,-) +%license LICENSE +%doc README.md CHANGES NOTICE /etc/systemd/system/njet.service.d/filelimit.conf /etc/ld.so.conf.d/njet.conf %{_unitdir}/njet.service @@ -89,17 +151,5 @@ rm -rf %{buildroot} %config(noreplace) /usr/local/njet/html/index.html %changelog -* Wed Oct 21 2026 unac <1317113781@qq.com> - 4.0.2.0-1 -- update to 4.0.2.0 - -* Fri Dec 29 2023 hongxina - 2.0.0-1 -- update to 2.0.0 - -* Wed Nov 8 2023 hongxina - 1.2.3-1 -- update to 1.2.3 - -* Wed Oct 18 2023 hongxina - 1.2.2-1 -- DESC: update to 1.2.2-1 - -* Tue Aug 15 2023 hongxina - 1.1.2-1 -- init +* Wed Oct 28 2026 openEuler Builder - 4.0.2.0-1 +- Initial package for openEuler based on OpenNJet 4.0.2.0 -- cgit v1.2.3