%define _prefix /opt/trafficserver # https://fedoraproject.org/wiki/Packaging:Guidelines#PIE %define _hardened_build 1 Summary: Fast, scalable and extensible HTTP/1.1 compliant caching proxy server Name: trafficserver Version: 7.1.2 Release: 4%{?dist} License: ASL 2.0 Group: System Environment/Daemons URL: http://trafficserver.apache.org/index.html Source0: http://archive.apache.org/dist/%{name}/%{name}-%{version}.tar.bz2 Source1: http://archive.apache.org/dist/%{name}/%{name}-%{version}.tar.bz2.asc Source2: trafficserver.keyring Source3: trafficserver.sysconf Source4: trafficserver.service Source5: trafficserver.tmpfilesd #Patch1: trafficserver-init_scripts.patch #Patch101: trafficserver-6.2.0-require-s-maxage.patch #Patch102: trafficserver-6.2.0.return_stale_cache_with_s_maxage.patch # BuildRoot is only needed for EPEL5: BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) # fails on ARMv7 atm (needs investigation), s390 unsupported ExcludeArch: %{arm} s390 s390x BuildRequires: boost-devel BuildRequires: gcc-c++ BuildRequires: gnupg BuildRequires: hwloc-devel BuildRequires: openssl-devel BuildRequires: pcre-devel BuildRequires: perl-ExtUtils-MakeMaker BuildRequires: tcl-devel BuildRequires: zlib-devel BuildRequires: xz-devel BuildRequires: autoconf automake libtool BuildRequires: ncurses-devel BuildRequires: libcurl-devel BuildRequires: libcap-devel BuildRequires: hwloc-devel Requires: initscripts %if %{?fedora}0 > 140 || %{?rhel}0 > 60 # For systemd.macros BuildRequires: systemd Requires: systemd Requires(postun): systemd %else Requires(post): chkconfig Requires(preun): chkconfig initscripts Requires(postun): initscripts %endif %description Apache Traffic Server is a fast, scalable and extensible HTTP/1.1 compliant caching proxy server. %package devel Summary: Apache Traffic Server development libraries and header files Group: Development/Libraries Requires: trafficserver = %{version}-%{release} %description devel The trafficserver-devel package include plug-in development libraries and header files, and Apache httpd style module build system. %package perl Summary: Apache Traffic Server bindings for perl Group: Development/Libraries Requires: trafficserver = %{version}-%{release} %description perl The trafficserver-perl package contains perl bindings. %prep #gpgv --homedir /tmp --keyring %{SOURCE2} --status-fd=1 %{SOURCE1} %{SOURCE0} | grep -q '^\[GNUPG:\] GOODSIG' %setup -q #%patch1 -p1 -b .init #%patch101 -p1 #%patch102 -p1 %build NOCONFIGURE=1 autoreconf -vif %configure \ --enable-layout=opt \ --sysconfdir=%{_prefix}%{_sysconfdir} \ --localstatedir=%{_prefix}%{_localstatedir} \ --libexecdir=%{_prefix}/%{_lib}/plugins \ --with-tcl=/usr/%{_lib} \ --with-user=ats --with-group=ats \ --disable-silent-rules \ --enable-experimental-plugins make %{?_smp_mflags} V=1 %install rm -rf %{buildroot} make DESTDIR=%{buildroot} install # Remove duplicate man-pages: rm -rf %{buildroot}%{_docdir}/trafficserver mkdir -p %{buildroot}%{_sysconfdir}/sysconfig install -m 644 -p %{SOURCE3} \ %{buildroot}%{_sysconfdir}/sysconfig/trafficserver %if %{?fedora}0 > 140 || %{?rhel}0 > 60 install -D -m 0644 -p %{SOURCE4} \ %{buildroot}/lib/systemd/system/trafficserver.service install -D -m 0644 -p %{SOURCE5} \ %{buildroot}%{_sysconfdir}/tmpfiles.d/trafficserver.conf %else mkdir -p %{buildroot}/etc/init.d/ mv %{buildroot}%{_prefix}/bin/trafficserver %{buildroot}/etc/init.d %endif # Remove libtool archives and static libs find %{buildroot} -type f -name "*.la" -delete find %{buildroot} -type f -name "*.a" -delete rm -f %{buildroot}/%{_prefix}/lib/perl5/x86_64-linux-thread-multi/perllocal.pod rm -f %{buildroot}/%{_prefix}/lib/perl5/x86_64-linux-thread-multi/auto/Apache/TS/.packlist # perl -pi -e 's/^CONFIG.*proxy.config.proxy_name STRING.*$/CONFIG proxy.config.proxy_name STRING FIXME.example.com/' \ %{buildroot}/etc/trafficserver/records.config perl -pi -e 's/^CONFIG.*proxy.config.ssl.server.cert.path.*$/CONFIG proxy.config.ssl.server.cert.path STRING \/etc\/pki\/tls\/certs\//' \ %{buildroot}/etc/trafficserver/records.config perl -pi -e 's/^CONFIG.*proxy.config.ssl.server.private_key.path.*$/CONFIG proxy.config.ssl.server.private_key.path STRING \/etc\/pki\/tls\/private\//' \ %{buildroot}/etc/trafficserver/records.config mkdir -p %{buildroot}%{_sysconfdir} mv %{buildroot}%{_prefix}%{_sysconfdir} %{buildroot}%{_sysconfdir}/trafficserver ln -s ../..%{_sysconfdir}/trafficserver %{buildroot}%{_prefix}%{_sysconfdir} rm -rf %{buildroot}%{_prefix}%{_localstatedir}/* mkdir -p %{buildroot}%{_localstatedir}/run/trafficserver ln -s ../../..%{_localstatedir}/run/trafficserver %{buildroot}%{_prefix}%{_localstatedir}/run mkdir -p %{buildroot}%{_localstatedir}/log/trafficserver ln -s ../../..%{_localstatedir}/log/trafficserver %{buildroot}%{_prefix}%{_localstatedir}/logs mkdir -p %{buildroot}%{_localstatedir}/cache/trafficserver ln -s ../../..%{_localstatedir}/cache/trafficserver %{buildroot}%{_prefix}%{_localstatedir}/cache %check %ifnarch ppc64 make check %{?_smp_mflags} V=1 %endif # The clean section is only needed for EPEL and Fedora < 13 # http://fedoraproject.org/wiki/PackagingGuidelines#.25clean %clean rm -rf %{buildroot} %post /sbin/ldconfig #%if %{?fedora}0 > 170 || %{?rhel}0 > 60 # %systemd_post trafficserver.service #%else # if [ $1 -eq 1 ] ; then # %if %{?fedora}0 > 140 # /bin/systemctl daemon-reload >/dev/null 2>&1 || : # %else # /sbin/chkconfig --add %{name} # %endif # fi #%endif %pre getent group ats >/dev/null || groupadd -r ats -g 176 &>/dev/null getent passwd ats >/dev/null || \ useradd -r -u 176 -g ats -d / -s /sbin/nologin \ -c "Apache Traffic Server" ats &>/dev/null %preun #%if %{?fedora}0 > 170 || %{?rhel}0 > 60 # %systemd_preun trafficserver.service #%else #if [ $1 -eq 0 ] ; then # /sbin/service %{name} stop > /dev/null 2>&1 # /sbin/chkconfig --del %{name} #fi #%endif %postun /sbin/ldconfig #%if %{?fedora}0 > 170 || %{?rhel}0 > 60 # %systemd_postun_with_restart trafficserver.service #%else #if [ $1 -eq 1 ] ; then # /sbin/service trafficserver condrestart &>/dev/null || : #fi #%endif %files %defattr(-, ats, ats, -) %{!?_licensedir:%global license %%doc} %license LICENSE %doc README NOTICE %attr(0755, ats, ats) %dir /etc/trafficserver %config(noreplace) /etc/trafficserver/* %config(noreplace) %{_sysconfdir}/sysconfig/trafficserver %{_bindir}/traffic* %{_bindir}/tspush %dir %{_libdir} %dir %{_libdir}/plugins %{_libdir}/libts*.so.7* %{_libdir}/libatscppapi*.so.7* %{_libdir}/plugins/*.so %if %{?fedora}0 > 140 || %{?rhel}0 > 60 /lib/systemd/system/trafficserver.service %config(noreplace) %{_sysconfdir}/tmpfiles.d/trafficserver.conf %else /etc/init.d/trafficserver %endif %dir /var/log/trafficserver %dir /var/run/trafficserver %dir /var/cache/trafficserver %{_prefix}%{_sysconfdir} %{_prefix}%{_localstatedir}/run %{_prefix}%{_localstatedir}/logs %{_prefix}%{_localstatedir}/cache %files perl %defattr(-,root,root,-) %{_prefix}/share/man/man3/* %{_prefix}/lib/perl5/Apache/TS.pm.in %{_prefix}/lib/perl5/Apache/TS.pm %{_prefix}/lib/perl5/Apache/TS/* %files devel %defattr(-,root,root,-) %{_bindir}/tsxs %{_includedir}/ts %{_includedir}/atscppapi %{_libdir}/*.so %{_libdir}/pkgconfig/trafficserver.pc %changelog