## ## rt.spec -- OpenPKG RPM Specification ## Copyright (c) 2000-2004 The OpenPKG Project ## Copyright (c) 2000-2004 Ralf S. Engelschall ## Copyright (c) 2000-2004 Cable & Wireless ## ## 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. ## # FIXME: rse: Error: MM: mm:core: failed to open semaphore file (Permission denied): OS: No such file or directory # package versions %define V_rt 3.0.10 %define V_log_dispatch 2.04 %define V_html_mason 1.26 %define V_mldbm 2.01 %define V_html_format 2.03 %define V_locale_maketext_lexicon 0.36 %define V_locale_maketext_fuzzy 0.02 %define V_regexp_common 2.113 %define V_cache_cache 1.02 # package information Name: rt Summary: Request Tracker URL: http://bestpractical.com/rt/ Vendor: Best Practical Packager: The OpenPKG Project Distribution: OpenPKG Class: EVAL Group: Database License: GPL Version: %{V_rt} Release: 20040413 # package options %option with_color_primary 336699 %option with_color_secondary dddddd %option with_db_mysql yes %option with_db_pgsql no %option with_db_oracle no # fixing conflicting options %if "%{with_db_oracle}" == "yes" %undefine with_db_pgsql %define with_db_pgsql no %endif %if "%{with_db_oracle}" == "yes" || "%{with_db_pgsql}" == "yes" %undefine with_db_mysql %define with_db_mysql no %endif # 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-module/HTML/HTML-Mason-%{V_html_mason}.tar.gz Source2: http://www.cpan.org/modules/by-authors/id/C/CH/CHAMAS/MLDBM-%{V_mldbm}.tar.gz Source3: http://www.cpan.org/modules/by-authors/id/S/SB/SBURKE/HTML-Format-%{V_html_format}.tar.gz Source4: http://www.cpan.org/modules/by-authors/id/A/AU/AUTRIJUS/Locale-Maketext-Lexicon-%{V_locale_maketext_lexicon}.tar.gz Source5: http://www.cpan.org/modules/by-authors/id/A/AU/AUTRIJUS/Locale-Maketext-Fuzzy-%{V_locale_maketext_fuzzy}.tar.gz Source6: http://www.cpan.org/modules/by-authors/id/A/AB/ABIGAIL/Regexp-Common-%{V_regexp_common}.tar.gz Source7: http://www.cpan.org/modules/by-authors/id/D/DC/DCLINTON/Cache-Cache-%{V_cache_cache}.tar.gz Source8: http://bestpractical.com/pub/rt/release/rt-%{V_rt}.tar.gz Source9: rc.rt Source10: rtsetup Source11: rtcleanup Source12: rtupgrade Source13: rtapachectl Source14: rtapache.conf Source15: config.layout Source16: rt-mailgate.sh Patch0: rt.patch # build information Prefix: %{l_prefix} BuildRoot: %{l_buildroot} BuildPreReq: OpenPKG, openpkg >= 20040130, perl, perl-openpkg >= 5.8.3-20040126 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 >= 20040130, perl 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 %if "%{with_db_mysql}" == "yes" PreReq: mysql, perl-dbi::with_dbd_mysql = yes %endif %if "%{with_db_pgsql}" == "yes" PreReq: postgresql, perl-dbi::with_dbd_pgsql = yes %endif %if "%{with_db_oracle}" == "yes" PreReq: oracle, perl-dbi::with_dbd_oracle = yes %endif 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. %track prog rt = { version = %{V_rt} url = http://bestpractical.com/rt/download.html regex = rt-(__VER__)\.tar\.gz } prog rt:cache-cache = { version = %{V_cache_cache} url = http://www.cpan.org/modules/by-authors/id/D/DC/DCLINTON/ regex = Cache-Cache-(__VER__).tar.gz } prog rt:html-format = { version = %{V_html_format} url = http://www.cpan.org/modules/by-authors/id/S/SB/SBURKE/ regex = HTML-Format-(__VER__).tar.gz } prog rt:html-mason = { version = %{V_html_mason}00 url = http://www.cpan.org/modules/by-module/HTML/ regex = HTML-Mason-(__VER__)\.tar\.gz transform = "s/^(\\d+\\.\\d\\d)$/${1}00/; $_" } prog rt:locale-maketext-fuzzy = { version = %{V_locale_maketext_fuzzy} url = http://www.cpan.org/modules/by-authors/id/A/AU/AUTRIJUS/ regex = Locale-Maketext-Fuzzy-(__VER__).tar.gz } prog rt:locale-maketext-lexicon = { version = %{V_locale_maketext_lexicon} url = http://www.cpan.org/modules/by-authors/id/A/AU/AUTRIJUS/ regex = Locale-Maketext-Lexicon-(__VER__).tar.gz } prog rt:log-dispatch = { disabled comment = "rse: 2.05 and higher have too nasty dependencies like YAML, Module::Build, etc" version = %{V_log_dispatch} url = http://www.cpan.org/modules/by-module/Log/ regex = Log-Dispatch-(__VER__)\.tar\.gz } prog rt:mldbm = { version = %{V_mldbm} url = http://www.cpan.org/modules/by-authors/id/C/CH/CHAMAS/ regex = MLDBM-(__VER__).tar.gz } prog rt:regexp-common = { version = %{V_regexp_common} url = http://www.cpan.org/modules/by-authors/id/A/AB/ABIGAIL/ regex = Regexp-Common-(__VER__).tar.gz } %prep # unpack distribution tarballs %setup -q -c %setup -q -T -D -a 1 %setup -q -T -D -a 2 %setup -q -T -D -a 3 %setup -q -T -D -a 4 %setup -q -T -D -a 5 %setup -q -T -D -a 6 %setup -q -T -D -a 7 %setup -q -T -D -a 8 # patch RT distribution cd rt-%{V_rt} %patch -p0 %{l_shtool} install -c -m 0644 %{l_value -s -a} \ %{SOURCE config.layout} . %{l_shtool} subst \ -e 's;chown;true;g' \ -e 's;chgrp;true;g' \ -e 's;chmod;true;g' \ -e 's;mkdir -p;%{l_shtool} mkdir -p;g' \ Makefile.in %{l_shtool} subst \ -e 's;Locale::Maketext 1\.04;Locale::Maketext 1.03;' \ lib/RT/I18N.pm %{l_shtool} subst \ -e 's;/usr/sbin/sendmail;%{l_prefix}/sbin/sendmail;g' \ etc/RT_Config.pm.in %build # configure RT part cd rt-%{V_rt} PERL=%{l_prefix}/bin/perl ./configure \ --enable-layout=OPKG \ --with-db-type=mysql \ --with-db-host=localhost \ --with-db-home=%{l_prefix} \ %if "%{with_db_mysql}" == "yes" --with-db-dba=root \ --with-db-database=rt \ --with-db-user=rt \ --with-db-pass=XXX \ %endif %if "%{with_db_pgsql}" == "yes" --with-db-dba=postgresql \ --with-db-database=rt \ --with-db-user=rt \ --with-db-pass=XXX \ %endif %if "%{with_db_oracle}" == "yes" --with-db-dba=system \ --with-db-database=rt \ --with-db-user=rt \ --with-db-pass=XXX \ %endif --with-web-user=%{l_nusr} \ --with-web-group=%{l_ngrp} \ --with-customdir=%{l_prefix}/etc/rt/local \ --with-customhtmldir=%{l_prefix}/etc/rt/local/html \ --with-customlibdir=%{l_prefix}/etc/rt/local/lib \ --with-customlexdir=%{l_prefix}/etc/rt/local/po %install rm -rf $RPM_BUILD_ROOT # perform common Perl prolog operations %{l_shtool} mkdir -f -p -m 755 ${RPM_BUILD_ROOT}%{l_prefix}/libexec/rt %{l_prefix}/bin/perl-openpkg prepare # install remaining prerequisite Perl modules which # are not part of the OpenPKG perl-xxx packages. %{l_prefix}/bin/perl-openpkg -d Regexp-Common-%{V_regexp_common} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d Log-Dispatch-%{V_log_dispatch} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d Cache-Cache-%{V_cache_cache} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d HTML-Mason-%{V_html_mason} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d MLDBM-%{V_mldbm} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d HTML-Format-%{V_html_format} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d Locale-Maketext-Lexicon-%{V_locale_maketext_lexicon} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -d Locale-Maketext-Fuzzy-%{V_locale_maketext_fuzzy} -l %{l_prefix}/libexec/rt configure build install %{l_prefix}/bin/perl-openpkg -F perl-openpkg-files fixate cleanup # create installation file hierarchy %{l_shtool} mkdir -f -p -m 0755 \ $RPM_BUILD_ROOT%{l_prefix}/sbin \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt \ $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \ $RPM_BUILD_ROOT%{l_prefix}/cgi/rt \ $RPM_BUILD_ROOT%{l_prefix}/share/rt \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/upgrade \ $RPM_BUILD_ROOT%{l_prefix}/var/rt/mason-data \ $RPM_BUILD_ROOT%{l_prefix}/var/rt/mason-session \ $RPM_BUILD_ROOT%{l_prefix}/var/rt/log \ $RPM_BUILD_ROOT%{l_prefix}/var/rt/run # perform RT installation procedure ( cd rt-%{V_rt} %{l_make} %{l_mflags} \ config-install dirs libs-install etc-install bin-install \ sbin-install html-install doc-install \ DESTDIR=$RPM_BUILD_ROOT %{l_shtool} install -c -m 0644 \ etc/upgrade/* \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/upgrade/ %{l_shtool} install -c -m 0644 \ -e '/Set($WebBaseURL/s;"[^"]*";"";' \ etc/RT_Config.pm \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/RT_SiteConfig.pm ) || exit $? # post-adjust installation hierarchy %{l_shtool} mkln -f -s \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/RT_SiteConfig.pm \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/RT_SiteConfig.pm mv \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/WebRT/html/NoAuth/webrt.css \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/webrt.css %{l_shtool} mkln -f -s \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/webrt.css \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/WebRT/html/NoAuth/webrt.css mv \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/local \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/local %{l_shtool} mkln -f -s \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/local \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/local mv \ $RPM_BUILD_ROOT%{l_prefix}/bin/webmux.pl \ $RPM_BUILD_ROOT%{l_prefix}/bin/mason_handler.fcgi \ $RPM_BUILD_ROOT%{l_prefix}/cgi/rt/ mv \ $RPM_BUILD_ROOT%{l_prefix}/bin/rt-crontool \ $RPM_BUILD_ROOT%{l_prefix}/bin/rt-mailgate \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/ %{l_shtool} install -c -m 755 %{l_value -s -a} \ %{SOURCE rt-mailgate.sh} \ $RPM_BUILD_ROOT%{l_prefix}/bin/rt-mailgate # strip installation hierarchy rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*.svc rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/rt-test-dependencies rm -rf $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/t rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/RT.pm.in rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/xgettext.pl rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/pod2test rm -rf $RPM_BUILD_ROOT%{l_prefix}/man/man3 rm -rf $RPM_BUILD_ROOT%{l_prefix}/share/rt # install own setup/cleanup/upgrade script %if "%{with_db_mysql}" == "yes" rt_db_dba=root %endif %if "%{with_db_pgsql}" == "yes" rt_db_dba=postgresql %endif %if "%{with_db_oracle}" == "yes" rt_db_dba=system %endif %{l_shtool} install -c -m 755 %{l_value -s -a} \ -e "s;@rt_db_dba@;$rt_db_dba;g" \ %{SOURCE rtsetup} %{SOURCE rtcleanup} %{SOURCE rtupgrade} \ $RPM_BUILD_ROOT%{l_prefix}/sbin/ # install OpenPKG run-command script %{l_shtool} install -c -m 755 %{l_value -s -a} \ %{SOURCE rc.rt} \ $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/ # install Apache "apachectl" wrapper %{l_shtool} install -c -m 755 %{l_value -s -a} \ %{SOURCE rtapachectl} \ $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/ # install Apache configuration l_hostname=`%{l_shtool} echo -e %h` l_domainname=`%{l_shtool} echo -e %d | cut -c2-` %{l_shtool} install -c -m 755 %{l_value -s -a} \ -e "s;@l_hostname@;$l_hostname;g" \ -e "s;@l_domainname@;$l_domainname;g" \ %{SOURCE rtapache.conf} \ $RPM_BUILD_ROOT%{l_prefix}/etc/rt/ # final post-adjustments to installation hierarchy %{l_shtool} subst \ -e 's;#336699;#%{with_color_primary};g' \ -e 's;#dddddd;#%{with_color_secondary};g' \ `find $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/WebRT \ -type f -print | grep -v gif | grep -v jpg | grep -v .orig` find $RPM_BUILD_ROOT%{l_prefix}/libexec/rt \ -type f -name "*.html" -print | xargs chmod 644 find $RPM_BUILD_ROOT%{l_prefix}/libexec/rt \ -type f -name "*.pm" -print | xargs chmod 644 find $RPM_BUILD_ROOT%{l_prefix}/libexec/rt \ -type f -print | xargs chmod a+r find $RPM_BUILD_ROOT%{l_prefix}/libexec/rt \ -type d -print | xargs chmod 755 find ${RPM_BUILD_ROOT}${l_prefix} -name .packlist -print | xargs rm -f # determine installation files %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \ %{l_files_std} `cat perl-openpkg-files` \ '%{l_prefix}/libexec/rt' \ '%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/rt-setup-database' \ '%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/rt-crontool' \ '%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/rt-mailgate' \ '%config %attr(640,%{l_musr},%{l_rgrp}) %{l_prefix}/etc/rt/RT_SiteConfig.pm' \ '%config %attr(640,%{l_musr},%{l_rgrp}) %{l_prefix}/etc/rt/rtapache.conf' \ '%config %attr(644,%{l_musr},%{l_rgrp}) %{l_prefix}/etc/rt/webrt.css' \ '%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/mason-data' \ '%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 %post if [ $1 -eq 1 ]; then # activate in MTA configuration aliases_file=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_file` aliases_update=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_update` if [ ".$aliases_file" != . ]; then ( echo "rt: \"|$RPM_INSTALL_PREFIX/bin/rt-mailgate --action correspond --queue general --url http://127.0.0.1:8380/\"" echo "rt-comment: \"|$RPM_INSTALL_PREFIX/bin/rt-mailgate --action comment --queue general --url http://127.0.0.1:8380/\"" ) | %{l_rpmtool} config -a -i "$RPM_INSTALL_PREFIX:rt" $aliases_file fi if [ ".$aliases_update" != . ]; then eval $aliases_update fi # display final hint after initial installation ( echo "To complete installation of the RT package please check the" echo "file $RPM_INSTALL_PREFIX/etc/rt/RT_SiteConfig.pm. In particular," echo "you have to assign a password to the RT database user." echo "Then you have to create the RT database in the RDBMS with:" echo "\$ $RPM_INSTALL_PREFIX/sbin/rtsetup" ) | %{l_rpmtool} msg -b -t notice elif [ $1 -gt 1 ]; then # display final hint after upgrading ( echo "If you have an old RT database you can erase it with:" echo "\$ $RPM_INSTALL_PREFIX/sbin/rtcleanup" echo "Upgrading from an earlier RT 3.x database you can with:" echo "\$ $RPM_INSTALL_PREFIX/sbin/rtupgrade " ) | %{l_rpmtool} msg -b -t notice fi %preun if [ $1 -eq 0 ]; then # stop perhaps still running server $RPM_INSTALL_PREFIX/etc/rc rt stop # deactivate in MTA configuration aliases_file=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_file` aliases_update=`$RPM_INSTALL_PREFIX/etc/rc --query MTA_aliases_update` if [ ".$aliases_file" != . ]; then %{l_rpmtool} config -r -i "$RPM_INSTALL_PREFIX:rt" $aliases_file fi if [ ".$aliases_update" != . ]; then eval $aliases_update fi # remove generated files rm -f $RPM_INSTALL_PREFIX/var/rt/mason-session/* rm -rf $RPM_INSTALL_PREFIX/var/rt/mason-data/*/* 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 fi