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
openSUSE Build Service is sponsored by