xref: /unit/pkg/rpm/unit.spec.in (revision 1752:e8e3d17a8168)
1# distribution specific definitions
2%define bdir %{_builddir}/%{name}-%{version}
3%define dotests 0
4
5%if 0%{?rhel}%{?fedora}
6BuildRequires: gcc
7BuildRequires: openssl-devel
8%endif
9
10%if 0%{?rhel}
11%if 0%{?amzn} == 0
12%define dist .el%{?rhel}
13%endif
14%endif
15
16%if 0%{?suse_version} >= 1315
17BuildRequires: libopenssl-devel
18%endif
19
20%define CC_OPT %{optflags} -fPIC
21%define LD_OPT -Wl,-z,relro -Wl,-z,now -pie
22
23%define CONFIGURE_ARGS $(echo "%%CONFIGURE_ARGS%%")
24
25Provides: nginx-unit
26
27Name: unit
28Summary: NGINX Unit
29Version: %%VERSION%%
30Release: %%RELEASE%%%{?dist}.ngx
31License: ASL 2.0
32Vendor: Nginx Software, Inc.
33URL: https://unit.nginx.org/
34Packager: Nginx Software, Inc. <https://www.nginx.com>
35Group: System Environment/Daemons
36
37Source0: unit-%{version}.tar.gz
38Source1: unit.service
39Source2: unit.example.config
40Source3: unit.logrotate
41
42BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
43BuildRequires: systemd
44Requires(post):    systemd
45Requires(preun):   systemd
46Requires(postun):  systemd
47
48BuildRequires: pcre2-devel
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%if (0%{?fedora}) || (0%{?rhel} >= 8)
63%define _debugsource_template %{nil}
64%endif
65
66%package devel
67Summary: NGINX Unit (development files)
68Version: %%VERSION%%
69Release: %%RELEASE%%%{?dist}.ngx
70Group: Development/Libraries
71Requires: unit == %%VERSION%%-%%RELEASE%%%{?dist}.ngx
72%description devel
73Library and include files required for NGINX Unit modules development.
74
75%prep
76%setup -q
77
78%build
79./configure \
80	%{CONFIGURE_ARGS} \
81	--modules=%{_libdir}/unit/debug-modules \
82	--libdir=%{_libdir} \
83	--cc-opt="%{CC_OPT}" \
84	--ld-opt="%{LD_OPT}" \
85	--debug
86%{__make} %{?_smp_mflags}
87%{__make} %{?_smp_mflags} build/libunit.a
88%{__mv} build build-debug
89./configure \
90	%{CONFIGURE_ARGS} \
91	--modules=%{_libdir}/unit/modules \
92	--libdir=%{_libdir} \
93	--cc-opt="%{CC_OPT}" \
94	--ld-opt="%{LD_OPT}"
95%{__make} %{?_smp_mflags}
96%{__mv} build build-nodebug
97
98%install
99%{__rm} -rf %{buildroot}
100%{__ln_s} build-nodebug build
101DESTDIR=%{buildroot} make unitd-install libunit-install
102%{__install} -m755 %{bdir}/build-debug/unitd \
103    %{buildroot}%{_sbindir}/unitd-debug
104%{__install} -m644 %{bdir}/build-debug/libunit.a \
105    %{buildroot}%{_libdir}/libunit-debug.a
106%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules
107%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules
108%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit
109%{__mkdir} -p %{buildroot}%{_localstatedir}/log/unit
110%{__mkdir} -p %{buildroot}%{_localstatedir}/run/unit
111%{__mkdir} -p %{buildroot}%{_sysconfdir}/logrotate.d
112%{__install} -m 644 -p %{SOURCE3} \
113    %{buildroot}%{_sysconfdir}/logrotate.d/unit
114%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit
115%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples
116%{__install} -m 644 -p %{SOURCE2} \
117    %{buildroot}%{_datadir}/doc/unit/examples/example.config
118%{__install} -m 644 -p CHANGES \
119    %{buildroot}%{_datadir}/doc/unit/
120%{__install} -m 644 -p NOTICE \
121    %{buildroot}%{_datadir}/doc/unit/COPYRIGHT
122%{__install} -m 644 -p README \
123    %{buildroot}%{_datadir}/doc/unit/
124
125%{__rm} -rf %{buildroot}%{_initrddir}/
126%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service
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%{__rm} -rf %{buildroot}/usr/src
136cd %{bdir}
137grep -v 'usr/src' debugfiles.list > debugfiles.list.new && mv debugfiles.list.new debugfiles.list
138cat /dev/null > debugsources.list
139%if 0%{?suse_version} >= 1500
140cat /dev/null > debugsourcefiles.list
141%endif
142
143%clean
144%{__rm} -rf %{buildroot}
145
146%post
147if [ $1 -eq 1 ]; then
148    /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||:
149    cat <<BANNER
150----------------------------------------------------------------------
151
152Thank you for installing NGINX Unit!
153
154Additional modules are available in standalone packages.
155To see the available modules, run "yum list available unit-\*".
156
157Online documentation is available at https://unit.nginx.org/
158
159----------------------------------------------------------------------
160BANNER
161fi
162
163%preun
164if [ $1 -eq 0 ]; then
165    /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||:
166    /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||:
167fi
168
169%postun
170/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
171if [ $1 -ge 1 ]; then
172    /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||:
173fi
174
175%files
176%defattr(-,root,root,-)
177%attr(0755,root,root) %{_sbindir}/unitd
178%attr(0755,root,root) %{_sbindir}/unitd-debug
179%dir %{_sysconfdir}/unit
180%{_unitdir}/unit.service
181%dir %attr(0755,root,root) %ghost %{_localstatedir}/run/unit
182%dir %{_datadir}/doc/unit
183%{_datadir}/doc/unit/*
184%dir %{_libdir}/unit/modules
185%dir %{_libdir}/unit/debug-modules
186%dir %{_sharedstatedir}/unit
187%dir %attr(0700,root,root) %{_localstatedir}/log/unit
188%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
189
190%files devel
191%{_libdir}/libunit.a
192%{_libdir}/libunit-debug.a
193%{_includedir}/nxt_*.h
194
195%changelog
196