# distribution specific definitions %define use_systemd (0%{?rhel} && 0%{?rhel} >= 7) || (0%{?suse_version} >= 1315) %define bdir %{_builddir}/%{name}-%{version} %define dotests 0 %if ( 0%{?rhel} == 5 || 0%{?rhel} == 6 ) Requires: initscripts >= 8.36 BuildRequires: openssl-devel %endif %if 0%{?rhel} == 7 Requires: systemd BuildRequires: systemd-units BuildRequires: openssl-devel %if 0%{?amzn} == 0 %define dist .el7 %endif %endif %if 0%{?suse_version} >= 1315 BuildRequires: systemd Requires: systemd BuildRequires: libopenssl-devel %endif %define CC_OPT %{optflags} -fPIC %define LD_OPT -Wl,-z,relro -Wl,-z,now -pie %define CONFIGURE_ARGS $(echo "%%CONFIGURE_ARGS%%") Provides: nginx-unit Name: unit Summary: NGINX Unit Version: %%VERSION%% Release: %%RELEASE%%%{?dist}.ngx License: ASL 2.0 Vendor: Nginx Software, Inc. URL: https://unit.nginx.org/ Packager: Nginx Software, Inc. Group: System Environment/Daemons Source0: unit-%{version}.tar.gz Source1: unit.service Source2: unit.init Source3: unit.sysconf Source4: unit.example.config BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) %description NGINX Unit is a runtime and delivery environment for modern distributed applications. It runs the application code in multiple languages (PHP, Python, Go, etc.), and tightly couples it with traffic delivery in and out of the application. Take this application server and proxy directly in the cloud / container environments and fully control your app dynamically via an API. %if 0%{?suse_version} %debug_package %endif %prep %setup -q %build ./configure \ %{CONFIGURE_ARGS} \ --modules=%{_libdir}/unit/debug-modules \ --cc-opt="%{CC_OPT}" \ --ld-opt="%{LD_OPT}" \ --debug %{__make} %{?_smp_mflags} %{__mv} build build-debug ./configure \ %{CONFIGURE_ARGS} \ --modules=%{_libdir}/unit/modules \ --cc-opt="%{CC_OPT}" \ --ld-opt="%{LD_OPT}" %{__make} %{?_smp_mflags} %{__mv} build build-nodebug %install %{__rm} -rf %{buildroot} %{__ln_s} build-nodebug build DESTDIR=%{buildroot} make unitd-install %{__install} -m755 %{bdir}/build-debug/unitd \ %{buildroot}%{_sbindir}/unitd-debug %{__mkdir} -p %{buildroot}%{_libdir}/unit/modules %{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules %{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit %{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig %{__install} -m 644 -p %{SOURCE3} \ %{buildroot}%{_sysconfdir}/sysconfig/unit %{__mkdir} -p %{buildroot}%{_sysconfdir}/unit %{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples %{__install} -m 644 -p %{SOURCE4} \ %{buildroot}%{_datadir}/doc/unit/examples/example.config %{__install} -m 644 -p CHANGES \ %{buildroot}%{_datadir}/doc/unit/ %{__install} -m 644 -p NOTICE \ %{buildroot}%{_datadir}/doc/unit/COPYRIGHT %{__install} -m 644 -p README \ %{buildroot}%{_datadir}/doc/unit/ # init scripts %if %{use_systemd} %{__rm} -rf %{buildroot}%{_initrddir}/ %{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service %else %{__mkdir} -p %{buildroot}%{_initrddir} %{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit %endif QA_SKIP_BUILD_ROOT=1 export QA_SKIP_BUILD_ROOT %check %if %{dotests} cd %{bdir} && make tests && ./build/tests %endif %clean %{__rm} -rf %{buildroot} %post if [ $1 -eq 1 ]; then %if %{use_systemd} /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||: %else /sbin/chkconfig --add unit %endif cat </dev/null 2>&1 ||: /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||: %else /sbin/service unit stop >/dev/null 2>&1 /sbin/chkconfig --del unit %endif fi %postun %if %{use_systemd} /usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||: %endif if [ $1 -ge 1 ]; then %if %{use_systemd} /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||: %else /sbin/service unit condrestart >/dev/null 2>&1 ||: %endif fi %files %defattr(-,root,root,-) %attr(0755,root,root) %{_sbindir}/unitd %attr(0755,root,root) %{_sbindir}/unitd-debug %config(noreplace) %{_sysconfdir}/sysconfig/unit %dir %{_sysconfdir}/unit %if %{use_systemd} %{_unitdir}/unit.service %else %{_initrddir}/unit %endif %dir %{_datadir}/doc/unit %{_datadir}/doc/unit/* %dir %{_libdir}/unit/modules %dir %{_libdir}/unit/debug-modules %dir %{_sharedstatedir}/unit %changelog