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