From dc443b922abefd175037ca8ee42ab324ff0fcdf6 Mon Sep 17 00:00:00 2001 From: "Ralf S. Engelschall" Date: Sat, 11 Dec 2010 11:36:33 +0000 Subject: [PATCH] more packaging additions --- trafficserver/rc.trafficserver | 55 ++++++++++++++++++++++++++++++++ trafficserver/trafficserver.spec | 34 ++++++++++++++++++-- 2 files changed, 86 insertions(+), 3 deletions(-) create mode 100644 trafficserver/rc.trafficserver diff --git a/trafficserver/rc.trafficserver b/trafficserver/rc.trafficserver new file mode 100644 index 0000000000..c91c004ac3 --- /dev/null +++ b/trafficserver/rc.trafficserver @@ -0,0 +1,55 @@ +#!@l_prefix@/bin/openpkg rc +## +## rc.trafficserver -- Run-Commands +## + +%config + trafficserver_enable="$openpkg_rc_def" + trafficserver_log_prolog="true" + trafficserver_log_epilog="true" + trafficserver_log_numfiles="10" + trafficserver_log_minsize="1M" + trafficserver_log_complevel="9" + +%common + trafficserver_pidfile="@l_prefix@/var/trafficserver/trafficserver.pid" + trafficserver_logfile="@l_prefix@/var/trafficserver/trafficserver.log" + trafficserver_signal () { + [ -f $trafficserver_pidfile ] && kill -$1 `cat $trafficserver_pidfile` + } + +%status -u @l_susr@ -o + trafficserver_usable="unknown" + trafficserver_active="no" + rcService trafficserver enable yes && \ + trafficserver_signal 0 && trafficserver_active="yes" + echo "trafficserver_enable=\"$trafficserver_enable\"" + echo "trafficserver_usable=\"$trafficserver_usable\"" + echo "trafficserver_active=\"$trafficserver_active\"" + +%start -u @l_susr@ + rcService trafficserver enable yes || exit 0 + rcService trafficserver active yes && exit 0 + @l_prefix@/bin/trafficserver + +%stop -u @l_susr@ + rcService trafficserver enable yes || exit 0 + rcService trafficserver active no && exit 0 + trafficserver_signal TERM + sleep 2 + rm -f $trafficserver_pidfile >/dev/null 2>&1 || true + +%restart -u @l_susr@ + rcService trafficserver enable yes || exit 0 + rcService trafficserver active no && exit 0 + rc trafficserver stop start + +%daily -u @l_susr@ + rcService trafficserver enable yes || exit 0 + shtool rotate -f \ + -n ${trafficserver_log_numfiles} -s ${trafficserver_log_minsize} -d \ + -z ${trafficserver_log_complevel} -m 664 -o @l_nusr@ -g @l_ngrp@ \ + -P "${trafficserver_log_prolog}" \ + -E "${trafficserver_log_epilog}; rc trafficserver restart" \ + $trafficserver_logfile + diff --git a/trafficserver/trafficserver.spec b/trafficserver/trafficserver.spec index e6f2e5ae87..f13aa995ca 100644 --- a/trafficserver/trafficserver.spec +++ b/trafficserver/trafficserver.spec @@ -36,13 +36,14 @@ Release: 20101211 # list of sources Source0: http://www.apache.org/dist/trafficserver/trafficserver-%{version}-unstable.tar.bz2 +Source1: rc.trafficserver Patch0: trafficserver.patch # build information BuildPreReq: OpenPKG, openpkg >= 20100101, gcc, gcc::with_cxx = yes PreReq: OpenPKG, openpkg >= 20100101 -BuildPreReq: libiconv, libexecinfo -PreReq: libiconv, libexecinfo +BuildPreReq: libiconv, libexecinfo, openssl, zlib, expat, sqlite, pcre +PreReq: libiconv, libexecinfo, openssl, zlib, expat, sqlite, pcre %description Apache Traffic Server is a fast, scalable and extensible HTTP/1.1 @@ -65,6 +66,8 @@ PreReq: libiconv, libexecinfo %{l_shtool} subst \ -e 's;-Wall;;' -e 's;-Werror;;' -e 's;-O3;;' \ configure + ( echo "ac_cv_c_tclconfig=" + ) >config.cache CC="%{l_cc}" \ CXX="%{l_cxx}" \ CFLAGS="%{l_cflags -O}" \ @@ -73,8 +76,13 @@ PreReq: libiconv, libexecinfo LDFLAGS="%{l_ldflags}" \ LIBS="-lm" \ ./configure \ + --cache-file=./config.cache \ --prefix=%{l_prefix} \ - --disable-shared + --with-openssl=%{l_prefix} \ + --with-zlib=%{l_prefix} \ + --with-expat=%{l_prefix} \ + --with-sqlite3=%{l_prefix} \ + --with-pcre=%{l_prefix} # build program %{l_make} %{l_mflags} @@ -87,6 +95,12 @@ PreReq: libiconv, libexecinfo strip $RPM_BUILD_ROOT%{l_prefix}/bin/* >/dev/null 2>&1 || true rm -rf $RPM_BUILD_ROOT%{l_prefix}/var/log >/dev/null 2>&1 || true + # install run-command script + %{l_shtool} mkdir -f -p -m 755 \ + $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d + %{l_shtool} install -c -m 755 %{l_value -s -a} \ + %{SOURCE rc.trafficserver} $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ + # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} \ @@ -97,3 +111,17 @@ PreReq: libiconv, libexecinfo %clean +%post + # after upgrade, restart service + [ $1 -eq 2 ] || exit 0 + eval `%{l_rc} trafficserver status 2>/dev/null` + [ ".$trafficserver_active" = .yes ] && %{l_rc} trafficserver restart + exit 0 + +%preun + # before erase, stop service and remove log files + [ $1 -eq 0 ] || exit 0 + %{l_rc} trafficserver stop 2>/dev/null + rm -rf $RPM_INSTALL_PREFIX/var/trafficserver/* >/dev/null 2>&1 || true + exit 0 +