You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

320 lines
13 KiB

##
## rt.spec -- OpenPKG RPM Specification
## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
##
## Permission to use, copy, modify, and distribute this software for
## any purpose with or without fee is hereby granted, provided that
## the above copyright notice and this permission notice appear in all
## copies.
##
## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
## SUCH DAMAGE.
##
# package versions
%define V_real 2-0-15
%define V_here 2.0.15
%define V_log_dispatch 2.04
%define V_html_mason 1.19
23 years ago
%define V_libapreq 1.1
# package information
Name: rt
Summary: Request Tracker
URL: http://www.fsck.com/projects/rt/
Vendor: Fsck
Packager: The OpenPKG Project
Distribution: OpenPKG [EVAL]
Group: Database
License: GPL
Version: %{V_here}
Release: 20030322
# list of sources
Source0: http://www.cpan.org/modules/by-module/Log/Log-Dispatch-%{V_log_dispatch}.tar.gz
Source1: http://www.cpan.org/modules/by-authors/id/J/JI/JIMW/libapreq-%{V_libapreq}.tar.gz
Source2: http://www.cpan.org/modules/by-module/HTML/HTML-Mason-%{V_html_mason}.tar.gz
Source3: http://www.fsck.com/pub/rt/release/rt-%{V_real}.tar.gz
Source4: rc.rt
Source5: rtsetup
23 years ago
Source6: rtcleanup
Source7: rtupgrade
Source8: rtapachectl
Source9: rt-mailgate.c
Source10: rtapache.conf
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
BuildPreReq: OpenPKG, openpkg >= 20020206, perl, perl-openpkg
BuildPreReq: perl-sys, perl-util, perl-ds, perl-text, perl-apache
BuildPreReq: perl-dbi, perl-dbix, perl-mail, perl-www
BuildPreReq: apache, apache::with_mod_perl = yes
PreReq: OpenPKG, openpkg >= 20020206, perl, perl-openpkg,
PreReq: perl-sys, perl-util, perl-ds, perl-text, perl-apache
PreReq: perl-dbi, perl-dbix, perl-mail, perl-www
PreReq: apache, apache::with_mod_perl = yes
PreReq: MYSQL, perl-dbi::with_dbd_mysql = yes
PreReq: MTA
AutoReq: no
AutoReqProv: no
%description
RT is an industrial-grade ticketing system. It lets a group of
people intelligently and efficiently manage requests submitted by a
community of users. RT is used by systems administrators, customer
support staffs, NOCs, developers and even marketing departments at
over a thousand sites around the world.
%prep
%setup -q -c
%setup -q -T -D -a 1
%setup -q -T -D -a 2
%setup -q -T -D -a 3
%build
rm -rf $RPM_BUILD_ROOT
# compile SUID wrapper
mkdir suidwrap
( cd suidwrap
cp %{SOURCE rt-mailgate.c} .
%{l_shtool} subst \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_rusr@;%{l_rusr};g' \
-e 's;@l_rgrp@;%{l_rgrp};g' \
rt-mailgate.c
%{l_cc} -o rt-mailgate rt-mailgate.c
)
# perform common prolog operations
rt=%{l_prefix}/libexec/rt
%{l_prefix}/bin/perl-openpkg prolog
%{l_shtool} mkdir -f -p -m 755 ${RPM_BUILD_ROOT}$rt
perl="${RPM_BUILD_DIR}/perl"
echo "exec ${l_prefix}/bin/perl \\" >>$perl
echo " \"\$@\"" >>$perl
chmod a+x $perl
( cd Log-Dispatch-%{V_log_dispatch}
perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
make_args="PERL=${perl} FULLPERL=${perl}"
chmod -R u+rw Makefile.PL
cp Makefile.PL Makefile.PL.orig
sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
$perl Makefile.PL ${1+"$@"} $perl_args </dev/null
$make $make_args pure_all
$make $make_args pure_install
) || exit $?
( cd libapreq-%{V_libapreq}
perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
make_args="PERL=${perl} FULLPERL=${perl}"
chmod -R u+rw Makefile.PL
cp Makefile.PL Makefile.PL.orig
sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
$perl Makefile.PL ${1+"$@"} $perl_args </dev/null
$make $make_args pure_all
$make $make_args pure_install
) || exit $?
( cd HTML-Mason-%{V_html_mason}
perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
make_args="PERL=${perl} FULLPERL=${perl}"
chmod -R u+rw Makefile.PL
cp Makefile.PL Makefile.PL.orig
sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
$perl Makefile.PL ${1+"$@"} $perl_args </dev/null
$make $make_args pure_all
$make $make_args pure_install
23 years ago
) || exit $?
# perform common epilog operations
%{l_prefix}/bin/perl-openpkg epilog
( cd rt-%{V_real}
%{l_shtool} subst \
-e 's#^\(package\)#use lib "!!RT_LIB_PATH!!";\1#' \
bin/webmux.pl
23 years ago
%{l_shtool} subst \
-e 's#/usr/sbin/sendmail#%{l_prefix}/sbin/sendmail#' \
etc/config.pm
%{l_shtool} subst \
-e 's;^\(PERL[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/bin/perl;g' \
-e 's;^\(BIN_OWNER[[:blank:]]*=[[:blank:]]*\).*;\1%{l_musr};g' \
-e 's;^\(RTGROUP[[:blank:]]*=[[:blank:]]*\).*;\1%{l_mgrp};g' \
-e 's;^\(LIBS_OWNER[[:blank:]]*=[[:blank:]]*\).*;\1%{l_musr};g' \
-e 's;^\(LIBS_GROUP[[:blank:]]*=[[:blank:]]*\).*;\1%{l_mgrp};g' \
-e 's;^\(RT_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/libexec/rt;g' \
-e 's;^\(RT_LIB_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/libexec/rt;g' \
-e 's;^\(RT_ETC_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/etc/rt;g' \
-e 's;^\(RT_BIN_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/bin;g' \
-e 's;^\(RT_MAN_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/man;g' \
-e 's;^\(MASON_LOCAL_HTML_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/libexec/rt/mason;g' \
-e 's;^\(MASON_DATA_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/var/rt/mason-data;g' \
-e 's;^\(MASON_SESSION_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/var/rt/mason-session;g' \
-e 's;^\(RT_LOG_PATH[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/var/rt/log;g' \
-e 's;^\(RT_MODPERL_HANDLER[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/cgi/rt/webmux.pl;g' \
-e 's;^\(RT_FASTCGI_HANDLER[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/cgi/rt/mason_handler.fcgi;g' \
-e 's;^\(RT_SPEEDYCGI_HANDLER[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix}/cgi/rt/mason_handler.scgi;g' \
-e 's;^\(DB_TYPE[[:blank:]]*=[[:blank:]]*\).*;\1mysql;g' \
-e 's;^\(DB_HOST[[:blank:]]*=[[:blank:]]*\).*;\1localhost;g' \
-e 's;^\(DB_PORT[[:blank:]]*=[[:blank:]]*\).*;\1;g' \
-e 's;^\(DB_HOME[[:blank:]]*=[[:blank:]]*\).*;\1%{l_prefix};g' \
-e 's;^\(DB_DBA[[:blank:]]*=[[:blank:]]*\).*;\1root;g' \
-e 's;^\(DB_RT_HOST[[:blank:]]*=[[:blank:]]*\).*;\1localhost;g' \
-e 's;^\(DB_DATABASE[[:blank:]]*=[[:blank:]]*\).*;\1RT;g' \
-e 's;^\(DB_RT_USER[[:blank:]]*=[[:blank:]]*\).*;\1RT;g' \
-e 's;^\(DB_RT_PASS[[:blank:]]*=[[:blank:]]*\).*;\1XXX;g' \
-e 's;^\(WEB_USER[[:blank:]]*=[[:blank:]]*\).*;\1%{l_nusr};g' \
-e 's;^\(WEB_GROUP[[:blank:]]*=[[:blank:]]*\).*;\1%{l_ngrp};g' \
-e 's;\([[:blank:]]INSTALLSITELIB=\);\1\$(DESTDIR);g' \
-e 's;\([[:blank:]]INSTALLSITEMAN1DIR=\);\1\$(DESTDIR);g' \
-e 's;\([[:blank:]]INSTALLSITEMAN3DIR=\);\1\$(DESTDIR);g' \
-e 's;chown;true;g' \
-e 's;chgrp;true;g' \
-e 's;mkdir -p;%{l_shtool} mkdir -p;g' \
Makefile
%{l_make} %{l_mflags}
23 years ago
) || exit $?
%install
mkdir -p $RPM_BUILD_ROOT%{l_prefix}/cgi/rt
( cd rt-%{V_real}
CC=%{l_cc} \
LDFLAGS=%{l_ldflags} \
LDDFLAGS=%{l_lddflags} \
PERL5LIB=${RPM_BUILD_ROOT}%{l_prefix}/libexec/rt \
%{l_make} %{l_mflags} dirs upgrade instruct \
DESTDIR=$RPM_BUILD_ROOT
%{l_shtool} mkdir -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools
for f in tools/initdb bin/initacls.*; do
%{l_shtool} install -c -m 755 \
$f $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/
done
%{l_shtool} mkdir -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc
for f in etc/acl.* etc/schema.*; do
%{l_shtool} install -c -m 755 \
$f $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/
done
23 years ago
) || exit $?
# setup/cleanup/upgrade script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/sbin
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@rt_db_dba@;root;g' \
%{SOURCE rtsetup} \
$RPM_BUILD_ROOT%{l_prefix}/sbin/
23 years ago
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@rt_db_dba@;root;g' \
%{SOURCE rtcleanup} \
$RPM_BUILD_ROOT%{l_prefix}/sbin/
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@rt_db_dba@;root;g' \
%{SOURCE rtupgrade} \
$RPM_BUILD_ROOT%{l_prefix}/sbin/
# startup script
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_rusr@;%{l_rusr};g' \
-e 's;@l_rgrp@;%{l_rgrp};g' \
%{SOURCE rc.rt} \
$RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
# apachectl wrapper
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
%{SOURCE rtapachectl} \
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/
# apache config
%{l_shtool} install -c -m 755 \
-e 's;@l_prefix@;%{l_prefix};g' \
-e 's;@l_rusr@;%{l_rusr};g' \
-e 's;@l_rgrp@;%{l_rgrp};g' \
%{SOURCE rtapache.conf} \
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/
# apache data
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/rt/run
%{l_shtool} mkdir -f -p -m 755 \
$RPM_BUILD_ROOT%{l_prefix}/var/rt/log
# better places
mv $RPM_BUILD_ROOT%{l_prefix}/etc/rt/insertdata \
23 years ago
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/
mv $RPM_BUILD_ROOT%{l_prefix}/bin/rt-mailgate \
$RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/
%{l_shtool} install -c -s -m 755 \
suidwrap/rt-mailgate \
$RPM_BUILD_ROOT%{l_prefix}/bin/
%{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
%{l_files_std} \
'%{l_prefix}/libexec/rt' \
'%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/rt-mailgate' \
'%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/insertdata' \
'%attr(6755,%{l_rusr},%{l_rgrp}) %{l_prefix}/bin/rt-mailgate' \
'%config %attr(640,%{l_musr},%{l_rgrp}) %{l_prefix}/etc/rt/config.pm' \
'%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/mason-data' \
'%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/mason-session' \
'%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/log' \
'%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/run'
%files -f files
%clean
rm -rf $RPM_BUILD_ROOT
23 years ago
%post
( echo "To complete installation of the RT package please check the"
echo "file '$RPM_INSTALL_PREFIX/etc/rt/config.pm'. In particular you"
echo "have to assign a password to the RT database user."
echo "If you have an old RT database you can erase it with:"
echo "$RPM_INSTALL_PREFIX/sbin/rtcleanup"
echo "If you start with a new installation of RT then run the command:"
echo "$RPM_INSTALL_PREFIX/sbin/rtsetup"
echo "Don't forget to set a administrator password with:"
echo "$RPM_INSTALL_PREFIX/bin/rtadmin --user=root --password='...'"
echo "If you upgrade from an earlier 2.x-RT-Version then run:"
echo "$RPM_INSTALL_PREFIX/sbin/rtupgrade old-rt-version"
echo "to update RTs system tables"
) | %{l_rpmtool} msg -b -t notice
%preun
if [ $1 -eq 0 ]; then
$RPM_INSTALL_PREFIX/etc/rc rt stop
rm -f $RPM_INSTALL_PREFIX/var/rt/mason-session/*
rm -f -r $RPM_INSTALL_PREFIX/var/rt/mason-data/*
23 years ago
rm -f $RPM_INSTALL_PREFIX/var/rt/log/*
rm -f $RPM_INSTALL_PREFIX/var/rt/run/apache.pid
rm -f $RPM_INSTALL_PREFIX/var/rt/run/ssl_scache
23 years ago
fi