rt.spec 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410
  1. ##
  2. ## rt.spec -- OpenPKG RPM Specification
  3. ## Copyright (c) 2000-2003 Cable & Wireless Deutschland GmbH
  4. ## Copyright (c) 2000-2003 The OpenPKG Project <http://www.openpkg.org/>
  5. ## Copyright (c) 2000-2003 Ralf S. Engelschall <rse@engelschall.com>
  6. ##
  7. ## Permission to use, copy, modify, and distribute this software for
  8. ## any purpose with or without fee is hereby granted, provided that
  9. ## the above copyright notice and this permission notice appear in all
  10. ## copies.
  11. ##
  12. ## THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
  13. ## WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
  14. ## MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
  15. ## IN NO EVENT SHALL THE AUTHORS AND COPYRIGHT HOLDERS AND THEIR
  16. ## CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  17. ## SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  18. ## LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
  19. ## USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
  20. ## ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  21. ## OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
  22. ## OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  23. ## SUCH DAMAGE.
  24. ##
  25. # package versions
  26. %define V_real 3-0-0
  27. %define V_here 3.0.0
  28. %define V_log_dispatch 2.04
  29. %define V_html_mason 1.19
  30. %define V_libapreq 1.1
  31. %define V_www_mechanize 0.38
  32. %define V_mldbm 2.01
  33. %define V_html_format 2.03
  34. %define V_test_inline 0.15
  35. %define V_locale_maketext_lexicon 0.16
  36. %define V_locale_maketext_fuzzy 0.02
  37. %define V_regexp_common 2.112
  38. # package information
  39. Name: rt
  40. Summary: Request Tracker
  41. URL: http://www.fsck.com/projects/rt/
  42. Vendor: Fsck
  43. Packager: The OpenPKG Project
  44. Distribution: OpenPKG [EVAL]
  45. Group: Database
  46. License: GPL
  47. Version: %{V_here}
  48. Release: 20030327
  49. # list of sources
  50. Source0: http://www.cpan.org/modules/by-module/Log/Log-Dispatch-%{V_log_dispatch}.tar.gz
  51. Source1: http://www.cpan.org/modules/by-authors/id/J/JI/JIMW/libapreq-%{V_libapreq}.tar.gz
  52. Source2: http://www.cpan.org/modules/by-module/HTML/HTML-Mason-%{V_html_mason}.tar.gz
  53. Source3: http://www.cpan.org/modules/by-authors/id/P/PE/PETDANCE/WWW-Mechanize-%{V_www_mechanize}.tar.gz
  54. Source4: http://www.cpan.org/modules/by-authors/id/C/CH/CHAMAS/MLDBM-%{V_mldbm}.tar.gz
  55. Source5: http://www.cpan.org/modules/by-authors/id/S/SB/SBURKE/HTML-Format-%{V_html_format}.tar.gz
  56. Source6: http://www.cpan.org/modules/by-authors/id/M/MS/MSCHWERN/Test-Inline-%{V_test_inline}.tar.gz
  57. Source7: http://www.cpan.org/modules/by-authors/id/A/AU/AUTRIJUS/Locale-Maketext-Lexicon-%{V_locale_maketext_lexicon}.tar.gz
  58. Source8: http://www.cpan.org/modules/by-authors/id/A/AU/AUTRIJUS/Locale-Maketext-Fuzzy-%{V_locale_maketext_fuzzy}.tar.gz
  59. Source9: http://www.cpan.org/modules/by-authors/id/A/AB/ABIGAIL/Regexp-Common-%{V_regexp_common}.tar.gz
  60. Source10: http://www.fsck.com/pub/rt/release/rt-%{V_real}.tar.gz
  61. Source11: rc.rt
  62. Source12: rtsetup
  63. Source13: rtcleanup
  64. Source14: rtupgrade
  65. Source15: rtapachectl
  66. Source16: rtapache.conf
  67. Source17: config.layout
  68. # build information
  69. Prefix: %{l_prefix}
  70. BuildRoot: %{l_buildroot}
  71. BuildPreReq: OpenPKG, openpkg >= 20020206, perl, perl-openpkg
  72. BuildPreReq: perl-sys, perl-util, perl-ds, perl-text, perl-apache
  73. BuildPreReq: perl-dbi, perl-dbix, perl-mail, perl-www
  74. BuildPreReq: apache, apache::with_mod_perl = yes
  75. PreReq: OpenPKG, openpkg >= 20020206, perl, perl-openpkg
  76. PreReq: perl-sys, perl-util, perl-ds, perl-text, perl-apache
  77. PreReq: perl-dbi, perl-dbix, perl-mail, perl-www
  78. PreReq: apache, apache::with_mod_perl = yes
  79. PreReq: MYSQL, perl-dbi::with_dbd_mysql = yes
  80. PreReq: MTA
  81. AutoReq: no
  82. AutoReqProv: no
  83. %description
  84. RT is an industrial-grade ticketing system. It lets a group of
  85. people intelligently and efficiently manage requests submitted by a
  86. community of users. RT is used by systems administrators, customer
  87. support staffs, NOCs, developers and even marketing departments at
  88. over a thousand sites around the world.
  89. %prep
  90. %setup -q -c
  91. %setup -q -T -D -a 1
  92. %setup -q -T -D -a 2
  93. %setup -q -T -D -a 3
  94. %setup -q -T -D -a 4
  95. %setup -q -T -D -a 5
  96. %setup -q -T -D -a 6
  97. %setup -q -T -D -a 7
  98. %setup -q -T -D -a 8
  99. %setup -q -T -D -a 9
  100. %setup -q -T -D -a 10
  101. %{l_shtool} install -c -m 0644 \
  102. -e 's;@l_prefix@;%{l_prefix};' \
  103. %{SOURCE config.layout} rt-%{V_real}/.
  104. %{l_shtool} subst \
  105. -e 's;chown;true;g' \
  106. -e 's;chgrp;true;g' \
  107. -e 's;chmod;true;g' \
  108. -e 's;mkdir -p;%{l_shtool} mkdir -p;g' \
  109. rt-%{V_real}/Makefile.in
  110. %build
  111. ( cd rt-%{V_real}
  112. %{l_shtool} subst \
  113. -e 's;/usr/sbin/sendmail;%{l_prefix}/sbin/sendmail;g' \
  114. etc/RT_Config.pm.in
  115. PERL=%{l_prefix}/bin/perl
  116. ./configure \
  117. --enable-layout=OPKG \
  118. --with-db-type=mysql \
  119. --with-db-host=localhost \
  120. --with-db-home=%{l_prefix} \
  121. --with-db-dba=root \
  122. --with-db-database=RT \
  123. --with-db-user=RT \
  124. --with-db-pass=XXX \
  125. --with-web-user=%{l_nusr} \
  126. --with-web-group=%{l_ngrp}
  127. ) || exit $?
  128. %install
  129. rm -rf $RPM_BUILD_ROOT
  130. # perform common prolog operations
  131. rt=%{l_prefix}/libexec/rt
  132. %{l_prefix}/bin/perl-openpkg prolog
  133. %{l_shtool} mkdir -f -p -m 755 ${RPM_BUILD_ROOT}$rt
  134. perl="${RPM_BUILD_DIR}/perl"
  135. echo "exec ${l_prefix}/bin/perl \\" >>$perl
  136. echo " \"\$@\"" >>$perl
  137. chmod a+x $perl
  138. ( cd Log-Dispatch-%{V_log_dispatch}
  139. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  140. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  141. make_args="PERL=${perl} FULLPERL=${perl}"
  142. chmod -R u+rw Makefile.PL
  143. cp Makefile.PL Makefile.PL.orig
  144. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  145. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  146. $make $make_args pure_all
  147. $make $make_args pure_install
  148. ) || exit $?
  149. ( cd HTML-Mason-%{V_html_mason}
  150. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  151. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  152. make_args="PERL=${perl} FULLPERL=${perl}"
  153. chmod -R u+rw Makefile.PL
  154. cp Makefile.PL Makefile.PL.orig
  155. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  156. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  157. $make $make_args pure_all
  158. $make $make_args pure_install
  159. ) || exit $?
  160. ( cd libapreq-%{V_libapreq}
  161. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  162. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  163. make_args="PERL=${perl} FULLPERL=${perl}"
  164. chmod -R u+rw Makefile.PL
  165. cp Makefile.PL Makefile.PL.orig
  166. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  167. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  168. $make $make_args pure_all
  169. $make $make_args pure_install
  170. ) || exit $?
  171. ( cd WWW-Mechanize-%{V_www_mechanize}
  172. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  173. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  174. make_args="PERL=${perl} FULLPERL=${perl}"
  175. chmod -R u+rw Makefile.PL
  176. cp Makefile.PL Makefile.PL.orig
  177. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  178. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  179. $make $make_args pure_all
  180. $make $make_args pure_install
  181. ) || exit $?
  182. ( cd MLDBM-%{V_mldbm}
  183. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  184. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  185. make_args="PERL=${perl} FULLPERL=${perl}"
  186. chmod -R u+rw Makefile.PL
  187. cp Makefile.PL Makefile.PL.orig
  188. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  189. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  190. $make $make_args pure_all
  191. $make $make_args pure_install
  192. ) || exit $?
  193. ( cd HTML-Format-%{V_html_format}
  194. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  195. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  196. make_args="PERL=${perl} FULLPERL=${perl}"
  197. chmod -R u+rw Makefile.PL
  198. cp Makefile.PL Makefile.PL.orig
  199. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  200. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  201. $make $make_args pure_all
  202. $make $make_args pure_install
  203. ) || exit $?
  204. ( cd Test-Inline-%{V_test_inline}
  205. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  206. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  207. make_args="PERL=${perl} FULLPERL=${perl}"
  208. chmod -R u+rw Makefile.PL
  209. cp Makefile.PL Makefile.PL.orig
  210. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  211. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  212. $make $make_args pure_all
  213. $make $make_args pure_install
  214. ) || exit $?
  215. ( cd Locale-Maketext-Lexicon-%{V_locale_maketext_lexicon}
  216. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  217. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  218. make_args="PERL=${perl} FULLPERL=${perl}"
  219. chmod -R u+rw Makefile.PL
  220. cp Makefile.PL Makefile.PL.orig
  221. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  222. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  223. $make $make_args pure_all
  224. $make $make_args pure_install
  225. ) || exit $?
  226. ( cd Locale-Maketext-Fuzzy-%{V_locale_maketext_fuzzy}
  227. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  228. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  229. make_args="PERL=${perl} FULLPERL=${perl}"
  230. chmod -R u+rw Makefile.PL
  231. cp Makefile.PL Makefile.PL.orig
  232. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  233. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  234. $make $make_args pure_all
  235. $make $make_args pure_install
  236. ) || exit $?
  237. ( cd Regexp-Common-%{V_regexp_common}
  238. perl_args="INSTALLSITELIB=${RPM_BUILD_ROOT}$rt"
  239. make=`%{l_prefix}/bin/rpm --eval '%{l_make} %{l_mflags}'`
  240. make_args="PERL=${perl} FULLPERL=${perl}"
  241. chmod -R u+rw Makefile.PL
  242. cp Makefile.PL Makefile.PL.orig
  243. sed -e "s:\$^X:'$perl':g" <Makefile.PL.orig >Makefile.PL
  244. $perl Makefile.PL ${1+"$@"} $perl_args </dev/null
  245. $make $make_args pure_all
  246. $make $make_args pure_install
  247. ) || exit $?
  248. # perform common epilog operations
  249. %{l_prefix}/bin/perl-openpkg epilog
  250. %{l_shtool} mkdir -f -p -m 0755 \
  251. $RPM_BUILD_ROOT%{l_prefix}/sbin \
  252. $RPM_BUILD_ROOT%{l_prefix}/etc/rt \
  253. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d \
  254. $RPM_BUILD_ROOT%{l_prefix}/cgi/rt \
  255. $RPM_BUILD_ROOT%{l_prefix}/share/rt \
  256. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools \
  257. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/upgrade \
  258. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/local/lib \
  259. $RPM_BUILD_ROOT%{l_prefix}/var/rt/mason-data \
  260. $RPM_BUILD_ROOT%{l_prefix}/var/rt/mason-session \
  261. $RPM_BUILD_ROOT%{l_prefix}/var/rt/log \
  262. $RPM_BUILD_ROOT%{l_prefix}/var/rt/run
  263. ( cd rt-%{V_real}
  264. %{l_make} \
  265. config-install \
  266. dirs \
  267. libs-install \
  268. etc-install \
  269. bin-install \
  270. sbin-install \
  271. html-install \
  272. doc-install \
  273. DESTDIR=$RPM_BUILD_ROOT
  274. %{l_shtool} install -c -m 0644 \
  275. etc/upgrade/* \
  276. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/upgrade/
  277. %{l_shtool} install -c -m 0644 \
  278. -e '/Set($WebBaseURL/s;"[^"]*";"";' \
  279. -e '/Set($WebImagesURL/s;/";";' \
  280. etc/RT_Config.pm \
  281. $RPM_BUILD_ROOT%{l_prefix}/etc/rt/RT_SiteConfig.pm
  282. rm -f \
  283. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/RT_SiteConfig.pm
  284. ln -s \
  285. %{l_prefix}/etc/rt/RT_SiteConfig.pm \
  286. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/etc/RT_SiteConfig.pm
  287. ) || exit $?
  288. # remove Win32 handler
  289. rm -f $RPM_BUILD_ROOT%{l_prefix}/bin/*.svc
  290. # remove dependency check script
  291. rm -f $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/rt-test-dependencies
  292. # setup/cleanup/upgrade script
  293. %{l_shtool} install -c -m 755 \
  294. -e 's;@l_prefix@;%{l_prefix};g' \
  295. -e 's;@rt_db_dba@;root;g' \
  296. %{SOURCE rtsetup} \
  297. $RPM_BUILD_ROOT%{l_prefix}/sbin/
  298. %{l_shtool} install -c -m 755 \
  299. -e 's;@l_prefix@;%{l_prefix};g' \
  300. -e 's;@rt_db_dba@;root;g' \
  301. %{SOURCE rtcleanup} \
  302. $RPM_BUILD_ROOT%{l_prefix}/sbin/
  303. %{l_shtool} install -c -m 755 \
  304. -e 's;@l_prefix@;%{l_prefix};g' \
  305. -e 's;@rt_db_dba@;root;g' \
  306. %{SOURCE rtupgrade} \
  307. $RPM_BUILD_ROOT%{l_prefix}/sbin/
  308. # startup script
  309. %{l_shtool} install -c -m 755 \
  310. -e 's;@l_prefix@;%{l_prefix};g' \
  311. -e 's;@l_rusr@;%{l_rusr};g' \
  312. -e 's;@l_rgrp@;%{l_rgrp};g' \
  313. %{SOURCE rc.rt} \
  314. $RPM_BUILD_ROOT%{l_prefix}/etc/rc.d/
  315. # apachectl wrapper
  316. %{l_shtool} install -c -m 755 \
  317. -e 's;@l_prefix@;%{l_prefix};g' \
  318. %{SOURCE rtapachectl} \
  319. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/
  320. # apache config
  321. l_hostname=`%{l_shtool} echo -e %h`
  322. l_domainname=`%{l_shtool} echo -e %d | cut -c2-`
  323. %{l_shtool} install -c -m 755 \
  324. -e 's;@l_prefix@;%{l_prefix};g' \
  325. -e 's;@l_rusr@;%{l_rusr};g' \
  326. -e 's;@l_rgrp@;%{l_rgrp};g' \
  327. -e "s;@l_hostname@;$l_hostname;g" \
  328. -e "s;@l_domainname@;$l_domainname;g" \
  329. %{SOURCE rtapache.conf} \
  330. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/
  331. # better places
  332. mv \
  333. $RPM_BUILD_ROOT%{l_prefix}/bin/webmux.pl \
  334. $RPM_BUILD_ROOT%{l_prefix}/bin/mason_handler.fcgi \
  335. $RPM_BUILD_ROOT%{l_prefix}/cgi/rt/
  336. mv \
  337. $RPM_BUILD_ROOT%{l_prefix}/bin/rt-crontool \
  338. $RPM_BUILD_ROOT%{l_prefix}/libexec/rt/tools/
  339. %{l_rpmtool} files -v -ofiles -r$RPM_BUILD_ROOT \
  340. %{l_files_std} \
  341. '%{l_prefix}/libexec/rt' \
  342. '%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/rt-setup-database' \
  343. '%attr(755,%{l_musr},%{l_mgrp}) %{l_prefix}/libexec/rt/tools/rt-crontool' \
  344. '%config %attr(640,%{l_musr},%{l_rgrp}) %{l_prefix}/etc/rt/RT_SiteConfig.pm' \
  345. '%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/mason-data' \
  346. '%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/mason-data/*' \
  347. '%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/mason-session' \
  348. '%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/log' \
  349. '%attr(750,%{l_rusr},%{l_rgrp}) %{l_prefix}/var/rt/run'
  350. %files -f files
  351. %clean
  352. rm -rf $RPM_BUILD_ROOT
  353. %post
  354. ( echo "To complete installation of the RT package please check the"
  355. echo "file '$RPM_INSTALL_PREFIX/etc/rt/RT_SiteConfig.pm'. In particular"
  356. echo "you have to assign a password to the RT database user."
  357. echo "If you have an old RT database you can erase it with:"
  358. echo "$RPM_INSTALL_PREFIX/sbin/rtcleanup"
  359. echo "If you start with a new installation of RT then run the command:"
  360. echo "$RPM_INSTALL_PREFIX/sbin/rtsetup"
  361. echo "DON'T FORGET TO SET A ADMINISTRATOR PASSWORD"
  362. echo "Default settings are: user 'root', password 'password'"
  363. echo "If you upgrade from an earlier 3.x-RT-Version then run:"
  364. echo "$RPM_INSTALL_PREFIX/sbin/rtupgrade old-rt-version"
  365. echo "to update RTs system tables"
  366. ) | %{l_rpmtool} msg -b -t notice
  367. %preun
  368. if [ $1 -eq 0 ]; then
  369. $RPM_INSTALL_PREFIX/etc/rc rt stop
  370. rm -f $RPM_INSTALL_PREFIX/var/rt/mason-session/*
  371. rm -rf $RPM_INSTALL_PREFIX/var/rt/mason-data/*/*
  372. rm -f $RPM_INSTALL_PREFIX/var/rt/log/*
  373. rm -f $RPM_INSTALL_PREFIX/var/rt/run/apache.pid
  374. rm -f $RPM_INSTALL_PREFIX/var/rt/run/ssl_scache
  375. fi