summaryrefslogblamecommitdiffhomepage
path: root/pkg/rpm/unit.spec.in
blob: b510d069ae877d5cf00d74145b1d86daa88fdcc5 (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11
12











                                                                                
                  

                 
      





                             


                                           










































                                                                         

                              




                           


                                           
                         
                           


                        
                             












































































































                                                                           
# distribution specific definitions
%define use_systemd (0%{?rhel} && 0%{?rhel} >= 7) || (0%{?suse_version} == 1315)
%define bdir %{_builddir}/%{name}-%{version}
%define dotests 0

%if ( 0%{?rhel} == 5 || 0%{?rhel} == 6 )
Requires: initscripts >= 8.36
%endif

%if 0%{?rhel} == 7
Requires: systemd
BuildRequires: systemd-units
%if 0%{?amzn} == 0
%define dist .el7
%endif
%endif

%if 0%{?suse_version} == 1315
BuildRequires: systemd
Requires: systemd
%endif

%define CC_OPT %{optflags} -fPIC
%define LD_OPT -Wl,-z,relro -Wl,-z,now -pie

%define CONFIGURE_ARGS $(echo "%%CONFIGURE_ARGS%%")

Provides: nginx-unit

Name: unit
Summary: NGINX Unit
Version: %%VERSION%%
Release: %%RELEASE%%%{?dist}.ngx
License: ASL 2.0
Vendor: Nginx Software, Inc.
URL: https://unit.nginx.org/
Packager: Nginx Software, Inc. <https://www.nginx.com>
Group: System Environment/Daemons

Source0: unit-%{version}.tar.gz
Source1: unit.service
Source2: unit.init
Source3: unit.sysconf
Source4: unit.saveconfig.sh
Source5: unit.loadconfig.sh
Source6: unit.example.config

BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)

%description
NGINX Unit is a runtime and delivery environment for modern distributed
applications. It runs the application code in multiple languages
(PHP, Python, Go, etc.), and tightly couples it with traffic delivery
in and out of the application. Take this application server and proxy
directly in the cloud / container environments and fully control your app
dynamically via an API.

%if 0%{?suse_version}
%debug_package
%endif

%prep
%setup -q

%build
./configure \
	%{CONFIGURE_ARGS} \
	--modules=%{_libdir}/unit/debug-modules \
	--cc-opt="%{CC_OPT}" \
	--ld-opt="%{LD_OPT}" \
	--debug
%{__make} %{?_smp_mflags}
%{__mv} build build-debug
./configure \
	%{CONFIGURE_ARGS} \
	--modules=%{_libdir}/unit/modules \
	--cc-opt="%{CC_OPT}" \
	--ld-opt="%{LD_OPT}"
%{__make} %{?_smp_mflags}
%{__mv} build build-nodebug

%install
%{__rm} -rf %{buildroot}
%{__ln_s} build-nodebug build
DESTDIR=%{buildroot} make unitd-install
%{__install} -m755 %{bdir}/build-debug/unitd \
    %{buildroot}%{_sbindir}/unitd-debug
%{__mkdir} -p %{buildroot}%{_libdir}/unit/modules
%{__mkdir} -p %{buildroot}%{_libdir}/unit/debug-modules
%{__mkdir} -p %{buildroot}%{_sharedstatedir}/unit
%{__mkdir} -p %{buildroot}%{_sysconfdir}/sysconfig
%{__install} -m 644 -p %{SOURCE3} \
    %{buildroot}%{_sysconfdir}/sysconfig/unit
%{__mkdir} -p %{buildroot}%{_sysconfdir}/unit
%{__mkdir} -p %{buildroot}%{_datadir}/doc/unit/examples
%{__install} -m 644 -p %{SOURCE6} \
    %{buildroot}%{_datadir}/doc/unit/examples/example.config
%{__install} -m 644 -p CHANGES \
    %{buildroot}%{_datadir}/doc/unit/
%{__install} -m 644 -p NOTICE \
    %{buildroot}%{_datadir}/doc/unit/COPYRIGHT
%{__install} -m 644 -p README \
    %{buildroot}%{_datadir}/doc/unit/

# init scripts
%if %{use_systemd}
%{__rm} -rf %{buildroot}%{_initrddir}/
%{__install} -p -D -m 0644 %{SOURCE1} %{buildroot}%{_unitdir}/unit.service
%{__mkdir} -p %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit
%{__install} -m755 %SOURCE4 \
    %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/saveconfig
%{__install} -m755 %SOURCE5 \
    %{buildroot}%{_libexecdir}/initscripts/legacy-actions/unit/loadconfig
%else
%{__mkdir} -p %{buildroot}%{_initrddir}
%{__install} -p -D -m 0755 %{SOURCE2} %{buildroot}%{_initrddir}/unit
%endif

QA_SKIP_BUILD_ROOT=1
export QA_SKIP_BUILD_ROOT

%check
%if %{dotests}
cd %{bdir} && make tests && ./build/tests
%endif

%clean
%{__rm} -rf %{buildroot}

%post
if [ $1 -eq 1 ]; then
%if %{use_systemd}
    /usr/bin/systemctl preset unit.service >/dev/null 2>&1 ||:
%else
    /sbin/chkconfig --add unit
%endif
    cat <<BANNER
----------------------------------------------------------------------

Thank you for installing NGINX Unit!

Additional modules are available in standalone packages.
To see the available modules, run "yum list available unit-\*".

Online documentation is available at https://unit.nginx.org/

----------------------------------------------------------------------
BANNER
fi

%preun
if [ $1 -eq 0 ]; then
%if %{use_systemd}
    /usr/bin/systemctl --no-reload disable unit.service >/dev/null 2>&1 ||:
    /usr/bin/systemctl stop unit.service >/dev/null 2>&1 ||:
%else
    /sbin/service unit stop >/dev/null 2>&1
    /sbin/chkconfig --del unit
%endif
fi

%postun
%if %{use_systemd}
/usr/bin/systemctl daemon-reload >/dev/null 2>&1 ||:
%endif
if [ $1 -ge 1 ]; then
%if %{use_systemd}
    /usr/bin/systemctl try-restart unit.service >/dev/null 2>&1 ||:
%else
    /sbin/service unit condrestart >/dev/null 2>&1 ||:
%endif
fi

%files
%defattr(-,root,root,-)
%attr(0755,root,root) %{_sbindir}/unitd
%attr(0755,root,root) %{_sbindir}/unitd-debug
%config(noreplace) %{_sysconfdir}/sysconfig/unit
%dir %{_sysconfdir}/unit
%if %{use_systemd}
%{_unitdir}/unit.service
%dir %{_libexecdir}/initscripts/legacy-actions/unit
%{_libexecdir}/initscripts/legacy-actions/unit/*
%else
%{_initrddir}/unit
%endif
%dir %{_datadir}/doc/unit
%{_datadir}/doc/unit/*
%dir %{_libdir}/unit/modules
%dir %{_libdir}/unit/debug-modules
%dir %{_sharedstatedir}/unit

%changelog