1# distribution specific definitions 2%define use_systemd (0%{?rhel} && 0%{?rhel} >= 7) || (0%{?suse_version} >= 1315) 3%define bdir %{_builddir}/%{name}-%{version} 4%define dotests 0 5 6%if ( 0%{?rhel} == 5 || 0%{?rhel} == 6 ) 7Requires: initscripts >= 8.36 8BuildRequires: openssl-devel 9%endif 10 11%if 0%{?rhel} == 7 12Requires: systemd 13BuildRequires: systemd-units 14BuildRequires: openssl-devel 15%if 0%{?amzn} == 0 16%define dist .el7 17%endif 18%endif 19 20%if 0%{?suse_version} >= 1315 21BuildRequires: systemd 22Requires: systemd 23BuildRequires: libopenssl-devel 24%endif 25 26%define CC_OPT %{optflags} -fPIC 27%define LD_OPT -Wl,-z,relro -Wl,-z,now -pie 28 29%define CONFIGURE_ARGS $(echo "%%CONFIGURE_ARGS%%") 30 31Provides: nginx-unit 32 33Name: unit 34Summary: NGINX Unit 35Version: %%VERSION%% 36Release: %%RELEASE%%%{?dist}.ngx 37License: ASL 2.0 38Vendor: Nginx Software, Inc. 39URL: https://unit.nginx.org/ 40Packager: Nginx Software, Inc. <https://www.nginx.com> 41Group: System Environment/Daemons 42 43Source0: unit-%{version}.tar.gz 44Source1: unit.service 45Source2: unit.init 46Source3: unit.sysconf 47Source4: unit.example.config 48 49BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 50 51%description 52NGINX Unit is a runtime and delivery environment for modern distributed 53applications. It runs the application code in multiple languages 54(PHP, Python, Go, etc.), and tightly couples it with traffic delivery 55in and out of the application. Take this application server and proxy 56directly in the cloud / container environments and fully control your app 57dynamically via an API. 58 59%if 0%{?suse_version} 60%debug_package 61%endif 62 63%prep 64%setup -q 65 66%build 67./configure \ 68 %{CONFIGURE_ARGS} \ 69 --modules=%{_libdir}/unit/debug-modules \ 70 --cc-opt="%{CC_OPT}" \ 71 --ld-opt="%{LD_OPT}" \ 72 --debug 73%{__make} %{?_smp_mflags} 74%{__mv} build build-debug 75./configure \ 76 %{CONFIGURE_ARGS} \ 77 --modules=%{_libdir}/unit/modules \ 78 --cc-opt="%{CC_OPT}" \ 79 --ld-opt="%{LD_OPT}" 80%{__make} %{?_smp_mflags} 81%{__mv} build build-nodebug 82 83%install 84%{__rm} -rf %{buildroot} 85%{__ln_s} build-nodebug build 86DESTDIR=%{buildroot} make unitd-install 87%{__install} -m755 %{bdir}/build-debug/unitd \ 88 %{buildroot}%{_sbindir}/unitd-debug 89%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules 90%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules 91%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit 92%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig 93%{__install} -m 644 -p %{SOURCE3} \ 94 %{buildroot}%{_sysconfdir}/sysconfig/unit 95%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit 96%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples 97%{__install} -m 644 -p %{SOURCE4} \ 98 %{buildroot}%{_datadir}/doc/unit/examples/example.config 99%{__install} -m 644 -p CHANGES \ 100 %{buildroot}%{_datadir}/doc/unit/ 101%{__install} -m 644 -p NOTICE \ 102 %{buildroot}%{_datadir}/doc/unit/COPYRIGHT 103%{__install} -m 644 -p README \ 104 %{buildroot}%{_datadir}/doc/unit/ 105 106# init scripts 107%if %{use_systemd} 108%{__rm} -rf %{buildroot}%{_initrddir}/ 109%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service 110%else 111%{__mkdir} -p %{buildroot}%{_initrddir} 112%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit 113%endif 114 115QA_SKIP_BUILD_ROOT=1 116export QA_SKIP_BUILD_ROOT 117 118%check 119%if %{dotests} 120cd %{bdir} && make tests && ./build/tests 121%endif 122 123%clean 124%{__rm} -rf %{buildroot} 125 126%post 127if [ $1 -eq 1 ]; then 128%if %{use_systemd} 129 /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||: 130%else 131 /sbin/chkconfig --add unit 132%endif 133 cat <<BANNER 134---------------------------------------------------------------------- 135 136Thank you for installing NGINX Unit! 137 138Additional modules are available in standalone packages. 139To see the available modules, run "yum list available unit-\*". 140 141Online documentation is available at https://unit.nginx.org/ 142 143---------------------------------------------------------------------- 144BANNER 145fi 146 147%preun 148if [ $1 -eq 0 ]; then 149%if %{use_systemd} 150 /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||: 151 /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||: 152%else 153 /sbin/service unit stop >/dev/null 2>&1 154 /sbin/chkconfig --del unit 155%endif 156fi 157 158%postun 159%if %{use_systemd} 160/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||: 161%endif 162if [ $1 -ge 1 ]; then 163%if %{use_systemd} 164 /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||: 165%else 166 /sbin/service unit condrestart >/dev/null 2>&1 ||: 167%endif 168fi 169 170%files 171%defattr(-,root,root,-) 172%attr(0755,root,root) %{_sbindir}/unitd 173%attr(0755,root,root) %{_sbindir}/unitd-debug 174%config(noreplace) %{_sysconfdir}/sysconfig/unit 175%dir %{_sysconfdir}/unit 176%if %{use_systemd} 177%{_unitdir}/unit.service 178%else 179%{_initrddir}/unit 180%endif 181%dir %{_datadir}/doc/unit 182%{_datadir}/doc/unit/* 183%dir %{_libdir}/unit/modules 184%dir %{_libdir}/unit/debug-modules 185%dir %{_sharedstatedir}/unit 186 187%changelog 188