nginx.spec

%define realname nginx
%define realver  1.4.2
%define srcext   tar.gz

%define page_speed_commit cd80e92
%define psolver           1.6.29.3

%if 0%{?suse_version}
%define USER   wwwrun
%define GROUP  www
%define PREFIX /srv/www
%define WEB_USER_HOME /var/lib/lighttpd
%else
%define USER   apache
%define GROUP  apache
%define PREFIX /var/www
%define WEB_USER_HOME /var/www
%endif

%define CONF_FILE %{_sysconfdir}/%{name}/%{name}.conf

# Common info
Name:          %{realname}
Version:       %{realver}
Release:       16.1
License:       BSD-2-Clause
Group:         Productivity/Networking/Web/Servers
URL:           http://nginx.org/
Summary:       HTTP and reverse proxy server, as well as a mail proxy server

# Install-time parameters
Provides:      httpd http_daemon webserver %{?suse_version:suse_help_viewer}
Requires:      logrotate

# Build-time parameters
BuildRequires: gcc-c++ libstdc++-devel
BuildRequires: dos2unix
BuildRequires: zlib-devel openssl-devel pcre-devel
BuildRequires: libxml2-devel libxslt-devel gd-devel libGeoIP-devel
%if 0%{?suse_version} || 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} >= 600
BuildRequires: libaio-devel
%endif
BuildRoot:     %{_tmppath}/%{name}-root
Source0:       http://nginx.org/download/%{realname}-%{realver}%{?extraver}.%{srcext}
Source1:       nginx.logrotate
Source2:       nginx.init
Source3:       nginx.sysconfig
Source91:      https://github.com/pagespeed/ngx_pagespeed/tarball/%{page_speed_commit}/pagespeed-ngx_pagespeed-%{page_speed_commit}.tar.gz
Source92:      https://dl.google.com/dl/page-speed/psol/%{psolver}.tar.gz
Patch:         nginx-memset_zero.patch

#!BuildIgnore: freetype2

%description
nginx [engine x] is a HTTP and reverse proxy server, as well as a mail proxy server

This nginx package built with Google PageSpeed

# Preparation step (unpackung and patching if necessary)
%prep
%setup -q -n %{realname}-%{realver}%{?extraver} -a91
%{__tar} -zxf %{S:92} -C pagespeed-ngx_pagespeed-%{page_speed_commit}
%patch -p1

%build
./configure  --prefix=%{PREFIX}  --sbin-path=%{_sbindir}/%{name}  --conf-path=%{CONF_FILE}  --error-log-path=%{_localstatedir}/log/%{name}/error.log  --http-log-path=%{_localstatedir}/log/%{name}/access.log  --pid-path=%{_localstatedir}/run/%{name}.pid  --lock-path=%{_localstatedir}/lock/%{name}.lock  --user=%{USER}  --group=%{GROUP}   --http-client-body-temp-path=%{_localstatedir}/cache/%{name}/client_body_temp  --http-proxy-temp-path=%{_localstatedir}/cache/%{name}/proxy_temp  --http-fastcgi-temp-path=%{_localstatedir}/cache/%{name}/fastcgi_temp  --http-uwsgi-temp-path=%{_localstatedir}/cache/%{name}/uwsgi_temp  --http-scgi-temp-path=%{_localstatedir}/cache/%{name}/scgi_temp %if 0%{?suse_version} || 0%{?fedora} || 0%{?rhel_version} || 0%{?centos_version} >= 600
 --with-file-aio %endif
 --with-ipv6   --with-http_ssl_module  --with-http_spdy_module  --with-http_realip_module  --with-http_addition_module  --with-http_xslt_module  --with-http_image_filter_module  --with-http_geoip_module  --with-http_sub_module  --with-http_dav_module  --with-http_flv_module  --with-http_mp4_module  --with-http_gzip_static_module  --with-http_random_index_module  --with-http_secure_link_module  --with-http_degradation_module  --with-http_stub_status_module   --with-mail  --with-mail_ssl_module   --with-cc-opt="%{optflags}"  --with-ld-opt="-Wl,--as-needed -Wl,--strip-all"   --with-pcre  --with-pcre-jit  --add-module=%{_builddir}/%{realname}-%{realver}%{?extraver}/pagespeed-ngx_pagespeed-%{page_speed_commit}
%__make %{?_smp_mflags}

%install
%__make install DESTDIR=%{buildroot}
iconv -f koi8-r CHANGES.ru > c && %__mv -f c CHANGES.ru
%__install -D -m644 man/nginx.8 %{buildroot}%{_mandir}/man8/nginx.8
%__install -D -m644 %{S:1} %{buildroot}%{_sysconfdir}/logrotate.d/%{name}
%__install -d -m755 %{buildroot}%{_initrddir}
sed -r ‘s|##PREFIX##|%{PREFIX}|; s|##CONF_FILE##|%{CONF_FILE}|‘ %{S:2} > %{buildroot}%{_initrddir}/%{name}
%__rm -f %{buildroot}%{PREFIX}/html/index.html
%if %{expand:%_vendor == "suse"}
%__mv %{buildroot}%{PREFIX}/html %{buildroot}%{PREFIX}/htdocs
%__install -d -m755 %{buildroot}/var/adm/fillup-templates
sed -r ‘s|##PREFIX##|%{PREFIX}|; s|##CONF_FILE##|%{CONF_FILE}|‘ %{S:3} > %{buildroot}/var/adm/fillup-templates/sysconfig.%{name}
%__ln_s -f %{_initrddir}/%{name} %{buildroot}%{_sbindir}/rc%{name}
dos2unix contrib/geo2nginx.pl
%__install -D -m755 contrib/geo2nginx.pl %{buildroot}%{_bindir}/geo2nginx.pl
%else
%__install -d -m755 %{buildroot}/%{_sysconfdir}/sysconfig
sed -r ‘s|##PREFIX##|%{PREFIX}|; s|##CONF_FILE##|%{CONF_FILE}|‘ %{S:3} > %{buildroot}/%{_sysconfdir}/sysconfig/%{name}
%endif
%__install -d -m755 %{buildroot}%{_localstatedir}/cache/%{name}

%clean
[ "%{buildroot}" != "/" ] && rm -rf %{buildroot}

%files
%defattr(-,root,root)
%doc CHANGES CHANGES.ru LICENSE README
%dir %{_sysconfdir}/%{name}
%config(noreplace) %{_sysconfdir}/%{name}/*
%config(noreplace) %{_sysconfdir}/logrotate.d/%{name}
%{_sbindir}/nginx
%attr(0755,root,root) %{_initrddir}/%{name}
%dir %attr(0755,%{USER},%{GROUP}) %{_localstatedir}/log/%{name}
%if %{expand:%_vendor == "suse"}
%{_bindir}/geo2nginx.pl
%{_sbindir}/rcnginx
%{PREFIX}/htdocs/*
/var/adm/fillup-templates/sysconfig.%{name}
%else
%{PREFIX}/html/*
%config(noreplace) %{_sysconfdir}/sysconfig/%{name}
%endif
%doc %{_mandir}/man8/*
%dir %attr(0755,%{USER},%{GROUP}) %{_localstatedir}/cache/%{name}

%pre
/usr/sbin/groupadd -r %{GROUP} &>/dev/null ||:
/usr/sbin/useradd  -g %{GROUP} -s /bin/false -r -c "Web-server" -d %{WEB_USER_HOME} %{USER} &>/dev/null ||:

%if 0%{?suse_version}

%post
%{fillup_and_insserv %{name}}

%preun
%{stop_on_removal %{name}}
rm -rf %{_localstatedir}/cache/%{name}/*

%postun
%{restart_on_update %{name}}
%{insserv_cleanup}

%else

%preun
rm -rf %{_localstatedir}/cache/%{name}/*

%endif

%changelog
原文地址:https://www.cnblogs.com/sixloop/p/7645906.html