xref: /unit/pkg/rpm/unit.spec.in (revision 1016:05ce902a063b)
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