xref: /unit/pkg/rpm/unit.spec.in (revision 786:274c304d7f85)
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%prep
64%setup -q
65
66%build
67./configure \
68	%{CONFIGURE_ARGS} \
69	--modules=%{_libdir}/unit/debug-modules \
70	--cc-opt="%{CC_OPT}" \
71	--ld-opt="%{LD_OPT}" \
72	--debug
73%{__make} %{?_smp_mflags}
74%{__mv} build build-debug
75./configure \
76	%{CONFIGURE_ARGS} \
77	--modules=%{_libdir}/unit/modules \
78	--cc-opt="%{CC_OPT}" \
79	--ld-opt="%{LD_OPT}"
80%{__make} %{?_smp_mflags}
81%{__mv} build build-nodebug
82
83%install
84%{__rm} -rf %{buildroot}
85%{__ln_s} build-nodebug build
86DESTDIR=%{buildroot} make unitd-install
87%{__install} -m755 %{bdir}/build-debug/unitd \
88    %{buildroot}%{_sbindir}/unitd-debug
89%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules
90%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules
91%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit
92%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig
93%{__install} -m 644 -p %{SOURCE3} \
94    %{buildroot}%{_sysconfdir}/sysconfig/unit
95%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit
96%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples
97%{__install} -m 644 -p %{SOURCE4} \
98    %{buildroot}%{_datadir}/doc/unit/examples/example.config
99%{__install} -m 644 -p CHANGES \
100    %{buildroot}%{_datadir}/doc/unit/
101%{__install} -m 644 -p NOTICE \
102    %{buildroot}%{_datadir}/doc/unit/COPYRIGHT
103%{__install} -m 644 -p README \
104    %{buildroot}%{_datadir}/doc/unit/
105
106# init scripts
107%if %{use_systemd}
108%{__rm} -rf %{buildroot}%{_initrddir}/
109%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service
110%else
111%{__mkdir} -p %{buildroot}%{_initrddir}
112%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit
113%endif
114
115QA_SKIP_BUILD_ROOT=1
116export QA_SKIP_BUILD_ROOT
117
118%check
119%if %{dotests}
120cd %{bdir} && make tests && ./build/tests
121%endif
122
123%clean
124%{__rm} -rf %{buildroot}
125
126%post
127if [ $1 -eq 1 ]; then
128%if %{use_systemd}
129    /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||:
130%else
131    /sbin/chkconfig --add unit
132%endif
133    cat <<BANNER
134----------------------------------------------------------------------
135
136Thank you for installing NGINX Unit!
137
138Additional modules are available in standalone packages.
139To see the available modules, run "yum list available unit-\*".
140
141Online documentation is available at https://unit.nginx.org/
142
143----------------------------------------------------------------------
144BANNER
145fi
146
147%preun
148if [ $1 -eq 0 ]; then
149%if %{use_systemd}
150    /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||:
151    /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||:
152%else
153    /sbin/service unit stop >/dev/null 2>&1
154    /sbin/chkconfig --del unit
155%endif
156fi
157
158%postun
159%if %{use_systemd}
160/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
161%endif
162if [ $1 -ge 1 ]; then
163%if %{use_systemd}
164    /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||:
165%else
166    /sbin/service unit condrestart >/dev/null 2>&1 ||:
167%endif
168fi
169
170%files
171%defattr(-,root,root,-)
172%attr(0755,root,root) %{_sbindir}/unitd
173%attr(0755,root,root) %{_sbindir}/unitd-debug
174%config(noreplace) %{_sysconfdir}/sysconfig/unit
175%dir %{_sysconfdir}/unit
176%if %{use_systemd}
177%{_unitdir}/unit.service
178%else
179%{_initrddir}/unit
180%endif
181%dir %{_datadir}/doc/unit
182%{_datadir}/doc/unit/*
183%dir %{_libdir}/unit/modules
184%dir %{_libdir}/unit/debug-modules
185%dir %{_sharedstatedir}/unit
186
187%changelog
188