File trafficserver.spec of Package traffic-server
#
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%{!?_initddir: %{expand: %%global _initddir %{_initrddir}}}
Name: trafficserver
Version: 5.3.0
Release: 0
License: Apache-2.0
#
%define pkg_user traffic-server
%define pkg_group traffic-server
%define pkg_home /var/lib/trafficserver
#
Group: Productivity/Networking/Web/Servers
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: db-devel
BuildRequires: gcc-c++
BuildRequires: libexpat-devel
BuildRequires: libtool
BuildRequires: openssl-devel
BuildRequires: pcre-devel
BuildRequires: sqlite-devel > 3.5
BuildRequires: tcl-devel
BuildRequires: help2man
BuildRequires: pkg-config
BuildRequires: hwloc-devel
# python tools required to get manpages to be generated
BuildRequires: python
BuildRequires: python-sphinx
BuildRequires: doxygen
#BuildRequires:
%if 0%{?suse_version} > 1220
Requires(pre): shadow
%endif
%if 0%{?suse_version} <= 1220
Requires(pre): pwdutils
%endif
%if 0%{?suse_version}
%if 0%{?sles_version}
BuildRequires: sles-release
%else
BuildRequires: openSUSE-release
%endif
%endif
#
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
Summary: A fast, scalable and extensible HTTP/1
#
Url: http://trafficserver.apache.org/
Source: http://apache.cs.utah.edu/trafficserver/trafficserver-%{version}.tar.bz2
# PATCH-FIX-OPENSUSE trafficserver-5.3.0-config_layout_suse.patch file system layout fixes -- boris@steki.net
Patch4: trafficserver-5.3.0-config_layout_suse.patch
# PATCH-FIX-OPENSUSE trafficserver-5.3.0-perl_vendor_fix.patch install perl modules into vendor_site -- boris@steki.net
Patch5: trafficserver-5.3.0-perl_vendor_fix.patch
%description
Traffic Server is a high-performance building block for cloud services.
It's more than just a caching proxy server; it also has support for
plugins to build large scale web applications.
%package devel
#
Summary: Development files for traffic-server
Group: Development/Tools/Building
Requires: %{name} = %{version}
%description devel
Traffic Server is a high-performance building block for cloud services.
It's more than just a caching proxy server; it also has support for
plugins to build large scale web applications.
This package holds the files needed to develope for traffic-server.
%package -n perl-%{name}
#
Summary: Perl interface to manage Apache Traffic Server
Group: Development/Tools/Building
Requires: %{name} = %{version}
%description -n perl-%{name}
Apache::TS - a set of perl interfaces to manage an Apache Traffic Server
instance. This includes the following sub-modules
Apache::TS::AdminClient - access the statistics and configuration
settings stored within Apache Traffic Server
Apache::TS::Config - Manage Apache Traffic Server configs
Apache::TS::Config::Records - Manage records.config settings.
%prep
%setup -q
%patch4
%patch5
REF_DATE=$(LANG=C date -r configure +"%%b %%d %%Y")
REF_TIME=$(LANG=C date -r configure +"%%H:%%M:%%S")
find -name "*.cc" -exec sed -i -e "s/__DATE__/\"${REF_DATE}\"/g" -e "s/__TIME__/\"${REF_TIME}\"/g" {} \;
%build
autoreconf -i
%configure \
--localstatedir=/var \
--sysconfdir=/etc/trafficserver \
--libexecdir=%{_libdir}/trafficserver \
--enable-layout=Suse \
--with-pic \
--disable-static \
--with-user=%{pkg_user} \
--with-group=%{pkg_group} \
--with-tcl=%{_libdir}
make V=1 %{?_smp_mflags}
sed -i -e 's/# Default-Start: 2 3 4 5/# Default-Start: 2 3 5/g' rc/trafficserver
%install
%makeinstall pkgsysuser="$(id -un)" pkgsysgroup="$(id -gn)"
install -d -m 0750 %{buildroot}%{_localstatedir}/log/trafficserver
install -d -m 0755 %{buildroot}%{_initddir}
install -d -m 0755 %{buildroot}%{_sbindir}
install -d -m 0750 %{buildroot}%{_localstatedir}/cache/trafficserver
rm %{buildroot}%{_libdir}/trafficserver/*.la
rm %{buildroot}%{_libdir}/libtsmgmt.la
rm %{buildroot}%{_libdir}/libtsutil.la
install -m 0755 rc/trafficserver %{buildroot}%{_initddir}/trafficserver
ln -s %{_initddir}/trafficserver %{buildroot}%{_sbindir}/rctrafficserver
chmod 755 tools/tsxs
# This simply does not work as help2man is too old...
#%%if 0%%{?suse_version} > 1110
#help2man -N ./tools/tsxs -h-h --version-string=%%{version} -o %%{buildroot}%%{_mandir}/man1/tsxs.1
#%%endif
%pre
#
# e.g. adding user
#
/usr/sbin/groupadd -r %{pkg_group} &>/dev/null ||:
/usr/sbin/useradd -g %{pkg_group} -s /bin/false -r -c "user for %{name}" -d %{pkg_home} %{pkg_user} &>/dev/null ||:
#%%if 0
%post
/sbin/ldconfig
%fillup_and_insserv trafficserver
%preun
%stop_on_removal trafficserver
%postun devel -p /sbin/ldconfig
%postun
/sbin/ldconfig
%restart_on_update trafficserver
%{insserv_cleanup}
#%%endif
%files devel
%defattr(-,root,root,-)
%dir %{_includedir}/ts
%{_bindir}/tsxs
%if 0%{?suse_version} > 1110
%{_mandir}/man1/tsxs.1*
%endif
%{_includedir}/ts/experimental.h
%{_includedir}/ts/mgmtapi.h
%{_includedir}/ts/remap.h
%{_includedir}/ts/ts.h
%{_libdir}/libtsmgmt.so
%{_libdir}/libtsutil.so
%{_libdir}/libtsconfig.so
%{_libdir}/pkgconfig/trafficserver.pc
%{_includedir}/ts/apidefs.h
%files
%defattr(-,root,root,-)
%config(noreplace) %attr(-,traffic-server,traffic-server) %{_sysconfdir}/trafficserver/
%dir %{_libdir}/trafficserver
%{_bindir}/traffic_cop
%{_bindir}/traffic_line
%{_bindir}/traffic_logcat
%{_bindir}/traffic_logstats
%{_bindir}/traffic_manager
%{_bindir}/traffic_sac
%{_bindir}/traffic_server
%{_bindir}/trafficserver
%{_initddir}/trafficserver
%{_mandir}/man1/traffic_top.1*
%{_mandir}/man1/traffic_via.1*
%{_mandir}/man1/tspush.1*
%{_mandir}/man5/cache.config.5*
%{_mandir}/man5/congestion.config.5*
%{_mandir}/man5/hosting.config.5*
%{_mandir}/man5/icp.config.5*
%{_mandir}/man5/ip_allow.config.5*
%{_mandir}/man5/log_hosts.config.5*
%{_mandir}/man5/logs_xml.config.5*
%{_mandir}/man5/parent.config.5*
%{_mandir}/man5/plugin.config.5*
%{_mandir}/man5/records.config.5*
%{_mandir}/man5/remap.config.5*
%{_mandir}/man5/splitdns.config.5*
%{_mandir}/man5/ssl_multicert.config.5*
%{_mandir}/man5/storage.config.5*
%{_mandir}/man5/update.config.5*
%{_mandir}/man5/volume.config.5*
%{_mandir}/man8/traffic_cop.8*
%{_mandir}/man8/traffic_crashlog.8*
%{_mandir}/man8/traffic_line.8*
%{_mandir}/man8/traffic_logcat.8*
%{_mandir}/man8/traffic_logstats.8*
%{_mandir}/man8/traffic_manager.8*
%{_mandir}/man8/traffic_server.8*
%{_libdir}/trafficserver/cacheurl.so
%{_libdir}/trafficserver/conf_remap.so
%{_libdir}/trafficserver/gzip.so
%{_libdir}/trafficserver/header_rewrite.so
%{_libdir}/trafficserver/libloader.so
%{_libdir}/trafficserver/regex_remap.so
%{_libdir}/trafficserver/stats_over_http.so
%{_libdir}/trafficserver/tcpinfo.so
%{_bindir}/traffic_crashlog
%{_bindir}/traffic_ctl
%{_bindir}/traffic_layout
%{_bindir}/traffic_via
%{_bindir}/tspush
%exclude %{_libdir}/libtsconfig.la
%{_libdir}/libtsconfig.so.5
%{_libdir}/libtsconfig.so.5.3.0
%{_libdir}/libtsmgmt.so.5
%{_libdir}/libtsmgmt.so.5.3.0
%{_libdir}/libtsutil.so.5
%{_libdir}/libtsutil.so.5.3.0
%attr (-,traffic-server,traffic-server) %{_localstatedir}/log/trafficserver
%attr (-,traffic-server,traffic-server) %{_localstatedir}/cache/trafficserver
%{_sbindir}/rctrafficserver
%files -n perl-%name
%defattr(-,root,root,-)
%exclude %perl_installarchlib/perllocal.pod
%dir %perl_vendorlib/Apache
%dir %perl_vendorlib/Apache/TS
%dir %perl_vendorlib/Apache/TS/Config
%perl_vendorlib/Apache/TS.pm
%perl_vendorlib/Apache/TS.pm.in
%perl_vendorlib/Apache/TS/AdminClient.pm
%perl_vendorlib/Apache/TS/Config.pm
%perl_vendorlib/Apache/TS/Config/Records.pm
%exclude %perl_vendorlib/*-linux-thread-multi/auto/Apache/TS/.packlist
%{_mandir}/man3/TS*
%{_mandir}/man3/Apache*
%changelog