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