1# distribution specific definitions 2%define bdir %{_builddir}/%{name}-%{version} 3%define dotests 0 4 5%if 0%{?rhel}%{?fedora} 6BuildRequires: gcc 7BuildRequires: openssl-devel 8%endif 9 10%if 0%{?rhel} 11%if 0%{?amzn} == 0 12%define dist .el%{?rhel} 13%endif 14%endif 15 16%if 0%{?suse_version} >= 1315 17BuildRequires: libopenssl-devel 18%endif 19 20%define CC_OPT %{optflags} -fPIC 21%define LD_OPT -Wl,-z,relro -Wl,-z,now -pie 22 23%define CONFIGURE_ARGS $(echo "%%CONFIGURE_ARGS%%") 24 25Provides: nginx-unit 26 27Name: unit 28Summary: NGINX Unit 29Version: %%VERSION%% 30Release: %%RELEASE%%%{?dist}.ngx 31License: ASL 2.0 32Vendor: Nginx Software, Inc. 33URL: https://unit.nginx.org/ 34Packager: Nginx Software, Inc. <https://www.nginx.com> 35Group: System Environment/Daemons 36 37Source0: unit-%{version}.tar.gz 38Source1: unit.service 39Source2: unit.example.config 40Source3: unit.logrotate 41 42BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 43BuildRequires: systemd 44Requires(post): systemd 45Requires(preun): systemd 46Requires(postun): systemd 47 48BuildRequires: pcre2-devel 49 50%description 51NGINX Unit is a runtime and delivery environment for modern distributed 52applications. It runs the application code in multiple languages 53(PHP, Python, Go, etc.), and tightly couples it with traffic delivery 54in and out of the application. Take this application server and proxy 55directly in the cloud / container environments and fully control your app 56dynamically via an API. 57 58%if 0%{?suse_version} 59%debug_package 60%endif 61 62%if (0%{?fedora}) || (0%{?rhel} >= 8) 63%define _debugsource_template %{nil} 64%endif 65 66%package devel 67Summary: NGINX Unit (development files) 68Version: %%VERSION%% 69Release: %%RELEASE%%%{?dist}.ngx 70Group: Development/Libraries 71Requires: unit == %%VERSION%%-%%RELEASE%%%{?dist}.ngx 72%description devel 73Library and include files required for NGINX Unit modules development. 74 75%prep 76%setup -q 77 78%build 79./configure \ 80 %{CONFIGURE_ARGS} \ 81 --modules=%{_libdir}/unit/debug-modules \ 82 --libdir=%{_libdir} \ 83 --cc-opt="%{CC_OPT}" \ 84 --ld-opt="%{LD_OPT}" \ 85 --debug 86%{__make} %{?_smp_mflags} 87%{__make} %{?_smp_mflags} build/libunit.a 88%{__mv} build build-debug 89./configure \ 90 %{CONFIGURE_ARGS} \ 91 --modules=%{_libdir}/unit/modules \ 92 --libdir=%{_libdir} \ 93 --cc-opt="%{CC_OPT}" \ 94 --ld-opt="%{LD_OPT}" 95%{__make} %{?_smp_mflags} 96%{__mv} build build-nodebug 97 98%install 99%{__rm} -rf %{buildroot} 100%{__ln_s} build-nodebug build 101DESTDIR=%{buildroot} make unitd-install libunit-install manpage-install 102%{__install} -m755 %{bdir}/build-debug/unitd \ 103 %{buildroot}%{_sbindir}/unitd-debug 104%{__install} -m644 %{bdir}/build-debug/libunit.a \ 105 %{buildroot}%{_libdir}/libunit-debug.a 106%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules 107%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules 108%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit 109%{__mkdir} -p %{buildroot}%{_localstatedir}/log/unit 110%{__mkdir} -p %{buildroot}%{_localstatedir}/run/unit 111%{__mkdir} -p %{buildroot}%{_sysconfdir}/logrotate.d 112%{__install} -m 644 -p %{SOURCE3} \ 113 %{buildroot}%{_sysconfdir}/logrotate.d/unit 114%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit 115%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples 116%{__install} -m 644 -p %{SOURCE2} \ 117 %{buildroot}%{_datadir}/doc/unit/examples/example.config 118%{__install} -m 644 -p CHANGES \ 119 %{buildroot}%{_datadir}/doc/unit/ 120%{__install} -m 644 -p NOTICE \ 121 %{buildroot}%{_datadir}/doc/unit/COPYRIGHT 122%{__install} -m 644 -p README \ 123 %{buildroot}%{_datadir}/doc/unit/ 124 125%{__rm} -rf %{buildroot}%{_initrddir}/ 126%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service 127 128QA_SKIP_BUILD_ROOT=1 129export QA_SKIP_BUILD_ROOT 130 131%check 132%if %{dotests} 133cd %{bdir} && make tests && ./build/tests 134%endif 135%{__rm} -rf %{buildroot}/usr/src 136cd %{bdir} 137grep -v 'usr/src' debugfiles.list > debugfiles.list.new && mv debugfiles.list.new debugfiles.list 138cat /dev/null > debugsources.list 139%if 0%{?suse_version} >= 1500 140cat /dev/null > debugsourcefiles.list 141%endif 142 143%clean 144%{__rm} -rf %{buildroot} 145 146%post 147getent group unit >/dev/null || groupadd -r unit 148getent passwd unit >/dev/null || \ 149 useradd -r -g unit -s /sbin/nologin \ 150 -d /nonexistent -c "unit user" unit 151if [ $1 -eq 1 ]; then 152 /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||: 153 cat <<BANNER 154---------------------------------------------------------------------- 155 156Thank you for installing NGINX Unit! 157 158Additional modules are available in standalone packages. 159To see the available modules, run "yum list available unit-\*". 160 161Online documentation is available at https://unit.nginx.org/ 162 163---------------------------------------------------------------------- 164BANNER 165fi 166 167%preun 168if [ $1 -eq 0 ]; then 169 /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||: 170 /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||: 171fi 172 173%postun 174/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||: 175if [ $1 -ge 1 ]; then 176 /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||: 177fi 178 179%triggerpostun -- unit < 1.22.0 180cat <<BANNER 181---------------------------------------------------------------------- 182 183WARNING: 184 185Since version 1.22.0, Unit's non-privileged processes run as unit:unit by 186default. Review your system permissions and Unit configuration so apps and 187routes that relied on these processes running as nobody:nogroup stay working. 188 189More info: https://unit.nginx.org/installation/#official-packages 190 191---------------------------------------------------------------------- 192BANNER 193 194%files 195%defattr(-,root,root,-) 196%attr(0755,root,root) %{_sbindir}/unitd 197%attr(0755,root,root) %{_sbindir}/unitd-debug 198%dir %{_sysconfdir}/unit 199%{_unitdir}/unit.service 200%dir %attr(0755,root,root) %ghost %{_localstatedir}/run/unit 201%dir %{_datadir}/doc/unit 202%{_datadir}/doc/unit/* 203%dir %{_libdir}/unit/modules 204%dir %{_libdir}/unit/debug-modules 205%dir %{_sharedstatedir}/unit 206%dir %attr(0700,root,root) %{_localstatedir}/log/unit 207%config(noreplace) %{_sysconfdir}/logrotate.d/%{name} 208%{_mandir}/man8/unitd.8* 209 210%files devel 211%{_libdir}/libunit.a 212%{_libdir}/libunit-debug.a 213%{_includedir}/nxt_*.h 214 215%changelog 216