# 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 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 -n %{name}-%{version} %build # 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/ %pre if [ "$1" -eq 1 ]; then if ! getent group njet >/dev/null 2>&1; then /usr/sbin/groupadd njet fi if ! getent passwd njet >/dev/null 2>&1; then /usr/sbin/useradd njet -g njet -M -s /sbin/nologin fi fi %post grep -q /usr/local/lib /etc/ld.so.conf 2>/dev/null if [ $? != 0 ] ; then echo "/usr/local/lib" >> /etc/ld.so.conf fi 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 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 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 %attr(-,njet,njet) /usr/local/njet/ %attr(777,njet,njet) /var/log/njet/logs/ %config(noreplace) /usr/local/njet/conf/ctrl_kv.conf %config(noreplace) /usr/local/njet/conf/goaccess.conf %config(noreplace) /usr/local/njet/conf/njet.conf %config(noreplace) /usr/local/njet/conf/njet_ctrl.conf %config(noreplace) /usr/local/njet/html/50x.html %config(noreplace) /usr/local/njet/html/index.html %changelog * Wed Oct 28 2026 openEuler Builder - 4.0.2.0-1 - Initial package for openEuler based on OpenNJet 4.0.2.0