xref: /unit/pkg/rpm/unit.spec.in (revision 562:406b163dad62)
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
8%endif
9
10%if 0%{?rhel} == 7
11Requires: systemd
12BuildRequires: systemd-units
13%if 0%{?amzn} == 0
14%define dist .el7
15%endif
16%endif
17
18%if 0%{?suse_version} == 1315
19BuildRequires: systemd
20Requires: systemd
21%endif
22
23%define CC_OPT %{optflags} -fPIC
24%define LD_OPT -Wl,-z,relro -Wl,-z,now -pie
25
26%define CONFIGURE_ARGS $(echo "%%CONFIGURE_ARGS%%")
27
28Provides: nginx-unit
29
30Name: unit
31Summary: NGINX Unit
32Version: %%VERSION%%
33Release: %%RELEASE%%%{?dist}.ngx
34License: ASL 2.0
35Vendor: Nginx Software, Inc.
36URL: https://unit.nginx.org/
37Packager: Nginx Software, Inc. <https://www.nginx.com>
38Group: System Environment/Daemons
39
40Source0: unit-%{version}.tar.gz
41Source1: unit.service
42Source2: unit.init
43Source3: unit.sysconf
44Source4: unit.saveconfig.sh
45Source5: unit.loadconfig.sh
46Source6: unit.example.config
47
48BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
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%prep
63%setup -q
64
65%build
66./configure \
67	%{CONFIGURE_ARGS} \
68	--modules=%{_libdir}/unit/debug-modules \
69	--cc-opt="%{CC_OPT}" \
70	--ld-opt="%{LD_OPT}" \
71	--debug
72%{__make} %{?_smp_mflags}
73%{__mv} build build-debug
74./configure \
75	%{CONFIGURE_ARGS} \
76	--modules=%{_libdir}/unit/modules \
77	--cc-opt="%{CC_OPT}" \
78	--ld-opt="%{LD_OPT}"
79%{__make} %{?_smp_mflags}
80%{__mv} build build-nodebug
81
82%install
83%{__rm} -rf %{buildroot}
84%{__ln_s} build-nodebug build
85DESTDIR=%{buildroot} make unitd-install
86%{__install} -m755 %{bdir}/build-debug/unitd \
87    %{buildroot}%{_sbindir}/unitd-debug
88%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules
89%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules
90%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit
91%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig
92%{__install} -m 644 -p %{SOURCE3} \
93    %{buildroot}%{_sysconfdir}/sysconfig/unit
94%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit
95%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples
96%{__install} -m 644 -p %{SOURCE6} \
97    %{buildroot}%{_datadir}/doc/unit/examples/example.config
98%{__install} -m 644 -p CHANGES \
99    %{buildroot}%{_datadir}/doc/unit/
100%{__install} -m 644 -p NOTICE \
101    %{buildroot}%{_datadir}/doc/unit/COPYRIGHT
102%{__install} -m 644 -p README \
103    %{buildroot}%{_datadir}/doc/unit/
104
105# init scripts
106%if %{use_systemd}
107%{__rm} -rf %{buildroot}%{_initrddir}/
108%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service
109%{__mkdir} -p %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit
110%{__install} -m755 %SOURCE4 \
111    %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/saveconfig
112%{__install} -m755 %SOURCE5 \
113    %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/loadconfig
114%else
115%{__mkdir} -p %{buildroot}%{_initrddir}
116%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit
117%endif
118
119QA_SKIP_BUILD_ROOT=1
120export QA_SKIP_BUILD_ROOT
121
122%check
123%if %{dotests}
124cd %{bdir} && make tests && ./build/tests
125%endif
126
127%clean
128%{__rm} -rf %{buildroot}
129
130%post
131if [ $1 -eq 1 ]; then
132%if %{use_systemd}
133    /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||:
134%else
135    /sbin/chkconfig --add unit
136%endif
137    cat <<BANNER
138----------------------------------------------------------------------
139
140Thank you for installing NGINX Unit!
141
142Additional modules are available in standalone packages.
143To see the available modules, run "yum list available unit-\*".
144
145Online documentation is available at https://unit.nginx.org/
146
147----------------------------------------------------------------------
148BANNER
149fi
150
151%preun
152if [ $1 -eq 0 ]; then
153%if %{use_systemd}
154    /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||:
155    /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||:
156%else
157    /sbin/service unit stop >/dev/null 2>&1
158    /sbin/chkconfig --del unit
159%endif
160fi
161
162%postun
163%if %{use_systemd}
164/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
165%endif
166if [ $1 -ge 1 ]; then
167%if %{use_systemd}
168    /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||:
169%else
170    /sbin/service unit condrestart >/dev/null 2>&1 ||:
171%endif
172fi
173
174%files
175%defattr(-,root,root,-)
176%attr(0755,root,root) %{_sbindir}/unitd
177%attr(0755,root,root) %{_sbindir}/unitd-debug
178%config(noreplace) %{_sysconfdir}/sysconfig/unit
179%dir %{_sysconfdir}/unit
180%if %{use_systemd}
181%{_unitdir}/unit.service
182%dir %{_libexecdir}/initscripts/legacy-actions/unit
183%{_libexecdir}/initscripts/legacy-actions/unit/*
184%else
185%{_initrddir}/unit
186%endif
187%dir %{_datadir}/doc/unit
188%{_datadir}/doc/unit/*
189%dir %{_libdir}/unit/modules
190%dir %{_libdir}/unit/debug-modules
191%dir %{_sharedstatedir}/unit
192
193%changelog
194