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.saveconfig.sh 48Source5: unit.loadconfig.sh 49Source6: unit.example.config 50 51BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) 52 53%description 54NGINX Unit is a runtime and delivery environment for modern distributed 55applications. It runs the application code in multiple languages 56(PHP, Python, Go, etc.), and tightly couples it with traffic delivery 57in and out of the application. Take this application server and proxy 58directly in the cloud / container environments and fully control your app 59dynamically via an API. 60 61%if 0%{?suse_version} 62%debug_package 63%endif 64 65%prep 66%setup -q 67 68%build 69./configure \ 70 %{CONFIGURE_ARGS} \ 71 --modules=%{_libdir}/unit/debug-modules \ 72 --cc-opt="%{CC_OPT}" \ 73 --ld-opt="%{LD_OPT}" \ 74 --debug 75%{__make} %{?_smp_mflags} 76%{__mv} build build-debug 77./configure \ 78 %{CONFIGURE_ARGS} \ 79 --modules=%{_libdir}/unit/modules \ 80 --cc-opt="%{CC_OPT}" \ 81 --ld-opt="%{LD_OPT}" 82%{__make} %{?_smp_mflags} 83%{__mv} build build-nodebug 84 85%install 86%{__rm} -rf %{buildroot} 87%{__ln_s} build-nodebug build 88DESTDIR=%{buildroot} make unitd-install 89%{__install} -m755 %{bdir}/build-debug/unitd \ 90 %{buildroot}%{_sbindir}/unitd-debug 91%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules 92%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules 93%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit 94%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig 95%{__install} -m 644 -p %{SOURCE3} \ 96 %{buildroot}%{_sysconfdir}/sysconfig/unit 97%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit 98%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples 99%{__install} -m 644 -p %{SOURCE6} \ 100 %{buildroot}%{_datadir}/doc/unit/examples/example.config 101%{__install} -m 644 -p CHANGES \ 102 %{buildroot}%{_datadir}/doc/unit/ 103%{__install} -m 644 -p NOTICE \ 104 %{buildroot}%{_datadir}/doc/unit/COPYRIGHT 105%{__install} -m 644 -p README \ 106 %{buildroot}%{_datadir}/doc/unit/ 107 108# init scripts 109%if %{use_systemd} 110%{__rm} -rf %{buildroot}%{_initrddir}/ 111%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service 112%{__mkdir} -p %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit 113%{__install} -m755 %SOURCE4 \ 114 %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/saveconfig 115%{__install} -m755 %SOURCE5 \ 116 %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/loadconfig 117%else 118%{__mkdir} -p %{buildroot}%{_initrddir} 119%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit 120%endif 121 122QA_SKIP_BUILD_ROOT=1 123export QA_SKIP_BUILD_ROOT 124 125%check 126%if %{dotests} 127cd %{bdir} && make tests && ./build/tests 128%endif 129 130%clean 131%{__rm} -rf %{buildroot} 132 133%post 134if [ $1 -eq 1 ]; then 135%if %{use_systemd} 136 /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||: 137%else 138 /sbin/chkconfig --add unit 139%endif 140 cat <<BANNER 141---------------------------------------------------------------------- 142 143Thank you for installing NGINX Unit! 144 145Additional modules are available in standalone packages. 146To see the available modules, run "yum list available unit-\*". 147 148Online documentation is available at https://unit.nginx.org/ 149 150---------------------------------------------------------------------- 151BANNER 152fi 153 154%preun 155if [ $1 -eq 0 ]; then 156%if %{use_systemd} 157 /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||: 158 /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||: 159%else 160 /sbin/service unit stop >/dev/null 2>&1 161 /sbin/chkconfig --del unit 162%endif 163fi 164 165%postun 166%if %{use_systemd} 167/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||: 168%endif 169if [ $1 -ge 1 ]; then 170%if %{use_systemd} 171 /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||: 172%else 173 /sbin/service unit condrestart >/dev/null 2>&1 ||: 174%endif 175fi 176 177%files 178%defattr(-,root,root,-) 179%attr(0755,root,root) %{_sbindir}/unitd 180%attr(0755,root,root) %{_sbindir}/unitd-debug 181%config(noreplace) %{_sysconfdir}/sysconfig/unit 182%dir %{_sysconfdir}/unit 183%if %{use_systemd} 184%{_unitdir}/unit.service 185%dir %{_libexecdir}/initscripts/legacy-actions/unit 186%{_libexecdir}/initscripts/legacy-actions/unit/* 187%else 188%{_initrddir}/unit 189%endif 190%dir %{_datadir}/doc/unit 191%{_datadir}/doc/unit/* 192%dir %{_libdir}/unit/modules 193%dir %{_libdir}/unit/debug-modules 194%dir %{_sharedstatedir}/unit 195 196%changelog 197