xref: /unit/pkg/rpm/unit.spec.in (revision 778:e79dfec13786)
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.saveconfig.sh
48Source5: unit.loadconfig.sh
49Source6: unit.example.config
50
51BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
52
53%description
54NGINX Unit is a runtime and delivery environment for modern distributed
55applications. It runs the application code in multiple languages
56(PHP, Python, Go, etc.), and tightly couples it with traffic delivery
57in and out of the application. Take this application server and proxy
58directly in the cloud / container environments and fully control your app
59dynamically via an API.
60
61%if 0%{?suse_version}
62%debug_package
63%endif
64
65%prep
66%setup -q
67
68%build
69./configure \
70	%{CONFIGURE_ARGS} \
71	--modules=%{_libdir}/unit/debug-modules \
72	--cc-opt="%{CC_OPT}" \
73	--ld-opt="%{LD_OPT}" \
74	--debug
75%{__make} %{?_smp_mflags}
76%{__mv} build build-debug
77./configure \
78	%{CONFIGURE_ARGS} \
79	--modules=%{_libdir}/unit/modules \
80	--cc-opt="%{CC_OPT}" \
81	--ld-opt="%{LD_OPT}"
82%{__make} %{?_smp_mflags}
83%{__mv} build build-nodebug
84
85%install
86%{__rm} -rf %{buildroot}
87%{__ln_s} build-nodebug build
88DESTDIR=%{buildroot} make unitd-install
89%{__install} -m755 %{bdir}/build-debug/unitd \
90    %{buildroot}%{_sbindir}/unitd-debug
91%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules
92%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules
93%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit
94%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig
95%{__install} -m 644 -p %{SOURCE3} \
96    %{buildroot}%{_sysconfdir}/sysconfig/unit
97%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit
98%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples
99%{__install} -m 644 -p %{SOURCE6} \
100    %{buildroot}%{_datadir}/doc/unit/examples/example.config
101%{__install} -m 644 -p CHANGES \
102    %{buildroot}%{_datadir}/doc/unit/
103%{__install} -m 644 -p NOTICE \
104    %{buildroot}%{_datadir}/doc/unit/COPYRIGHT
105%{__install} -m 644 -p README \
106    %{buildroot}%{_datadir}/doc/unit/
107
108# init scripts
109%if %{use_systemd}
110%{__rm} -rf %{buildroot}%{_initrddir}/
111%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service
112%{__mkdir} -p %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit
113%{__install} -m755 %SOURCE4 \
114    %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/saveconfig
115%{__install} -m755 %SOURCE5 \
116    %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/loadconfig
117%else
118%{__mkdir} -p %{buildroot}%{_initrddir}
119%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit
120%endif
121
122QA_SKIP_BUILD_ROOT=1
123export QA_SKIP_BUILD_ROOT
124
125%check
126%if %{dotests}
127cd %{bdir} && make tests && ./build/tests
128%endif
129
130%clean
131%{__rm} -rf %{buildroot}
132
133%post
134if [ $1 -eq 1 ]; then
135%if %{use_systemd}
136    /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||:
137%else
138    /sbin/chkconfig --add unit
139%endif
140    cat <<BANNER
141----------------------------------------------------------------------
142
143Thank you for installing NGINX Unit!
144
145Additional modules are available in standalone packages.
146To see the available modules, run "yum list available unit-\*".
147
148Online documentation is available at https://unit.nginx.org/
149
150----------------------------------------------------------------------
151BANNER
152fi
153
154%preun
155if [ $1 -eq 0 ]; then
156%if %{use_systemd}
157    /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||:
158    /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||:
159%else
160    /sbin/service unit stop >/dev/null 2>&1
161    /sbin/chkconfig --del unit
162%endif
163fi
164
165%postun
166%if %{use_systemd}
167/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
168%endif
169if [ $1 -ge 1 ]; then
170%if %{use_systemd}
171    /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||:
172%else
173    /sbin/service unit condrestart >/dev/null 2>&1 ||:
174%endif
175fi
176
177%files
178%defattr(-,root,root,-)
179%attr(0755,root,root) %{_sbindir}/unitd
180%attr(0755,root,root) %{_sbindir}/unitd-debug
181%config(noreplace) %{_sysconfdir}/sysconfig/unit
182%dir %{_sysconfdir}/unit
183%if %{use_systemd}
184%{_unitdir}/unit.service
185%dir %{_libexecdir}/initscripts/legacy-actions/unit
186%{_libexecdir}/initscripts/legacy-actions/unit/*
187%else
188%{_initrddir}/unit
189%endif
190%dir %{_datadir}/doc/unit
191%{_datadir}/doc/unit/*
192%dir %{_libdir}/unit/modules
193%dir %{_libdir}/unit/debug-modules
194%dir %{_sharedstatedir}/unit
195
196%changelog
197