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%package devel 64Summary: NGINX Unit (development files) 65Version: %%VERSION%% 66Release: %%RELEASE%%%{?dist}.ngx 67Group: Development/Libraries 68%description devel 69Library and include files required for NGINX Unit modules development. 70 71%prep 72%setup -q 73 74%build 75./configure \ 76 %{CONFIGURE_ARGS} \ 77 --modules=%{_libdir}/unit/debug-modules \ 78 --libdir=%{_libdir} \ 79 --cc-opt="%{CC_OPT}" \ 80 --ld-opt="%{LD_OPT}" \ 81 --debug 82%{__make} %{?_smp_mflags} 83%{__make} %{?_smp_mflags} build/libunit.a 84%{__mv} build build-debug 85./configure \ 86 %{CONFIGURE_ARGS} \ 87 --modules=%{_libdir}/unit/modules \ 88 --libdir=%{_libdir} \ 89 --cc-opt="%{CC_OPT}" \ 90 --ld-opt="%{LD_OPT}" 91%{__make} %{?_smp_mflags} 92%{__mv} build build-nodebug 93 94%install 95%{__rm} -rf %{buildroot} 96%{__ln_s} build-nodebug build 97DESTDIR=%{buildroot} make unitd-install libunit-install 98%{__install} -m755 %{bdir}/build-debug/unitd \ 99 %{buildroot}%{_sbindir}/unitd-debug 100%{__install} -m644 %{bdir}/build-debug/libunit.a \ 101 %{buildroot}%{_libdir}/libunit-debug.a 102%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules 103%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules 104%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit 105%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig 106%{__install} -m 644 -p %{SOURCE3} \ 107 %{buildroot}%{_sysconfdir}/sysconfig/unit 108%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit 109%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples 110%{__install} -m 644 -p %{SOURCE4} \ 111 %{buildroot}%{_datadir}/doc/unit/examples/example.config 112%{__install} -m 644 -p CHANGES \ 113 %{buildroot}%{_datadir}/doc/unit/ 114%{__install} -m 644 -p NOTICE \ 115 %{buildroot}%{_datadir}/doc/unit/COPYRIGHT 116%{__install} -m 644 -p README \ 117 %{buildroot}%{_datadir}/doc/unit/ 118 119# init scripts 120%if %{use_systemd} 121%{__rm} -rf %{buildroot}%{_initrddir}/ 122%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service 123%else 124%{__mkdir} -p %{buildroot}%{_initrddir} 125%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit 126%endif 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 136%clean 137%{__rm} -rf %{buildroot} 138 139%post 140if [ $1 -eq 1 ]; then 141%if %{use_systemd} 142 /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||: 143%else 144 /sbin/chkconfig --add unit 145%endif 146 cat <<BANNER 147---------------------------------------------------------------------- 148 149Thank you for installing NGINX Unit! 150 151Additional modules are available in standalone packages. 152To see the available modules, run "yum list available unit-\*". 153 154Online documentation is available at https://unit.nginx.org/ 155 156---------------------------------------------------------------------- 157BANNER 158fi 159 160%preun 161if [ $1 -eq 0 ]; then 162%if %{use_systemd} 163 /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||: 164 /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||: 165%else 166 /sbin/service unit stop >/dev/null 2>&1 167 /sbin/chkconfig --del unit 168%endif 169fi 170 171%postun 172%if %{use_systemd} 173/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||: 174%endif 175if [ $1 -ge 1 ]; then 176%if %{use_systemd} 177 /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||: 178%else 179 /sbin/service unit condrestart >/dev/null 2>&1 ||: 180%endif 181fi 182 183%files 184%defattr(-,root,root,-) 185%attr(0755,root,root) %{_sbindir}/unitd 186%attr(0755,root,root) %{_sbindir}/unitd-debug 187%config(noreplace) %{_sysconfdir}/sysconfig/unit 188%dir %{_sysconfdir}/unit 189%if %{use_systemd} 190%{_unitdir}/unit.service 191%else 192%{_initrddir}/unit 193%endif 194%dir %{_datadir}/doc/unit 195%{_datadir}/doc/unit/* 196%dir %{_libdir}/unit/modules 197%dir %{_libdir}/unit/debug-modules 198%dir %{_sharedstatedir}/unit 199 200%files devel 201%{_libdir}/libunit.a 202%{_libdir}/libunit-debug.a 203%{_includedir}/nxt_*.h 204 205%changelog 206