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