# Copyright 1999-2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=6 inherit webapp depend.apache DESCRIPTION="RT is an enterprise-grade ticketing system" HOMEPAGE="https://www.bestpractical.com/rt/" SRC_URI="https://download.bestpractical.com/pub/${PN}/release/${P}.tar.gz" KEYWORDS="~amd64 ~riscv" LICENSE="GPL-2" IUSE="mysql +postgres fastcgi lighttpd" REQUIRED_USE="^^ ( mysql postgres )" RESTRICT="test" DEPEND=" acct-group/rt acct-user/rt >=dev-lang/perl-5.10.1 >=dev-perl/Apache-Session-1.53 >=dev-perl/CGI-4 >=dev-perl/CSS-Squish-0.06 >=dev-perl/Class-Accessor-0.34 >=dev-perl/Class-ReturnValue-0.550.0-r1 >=dev-perl/DBI-1.37 >=dev-perl/Date-Extract-0.02 >=dev-perl/DateTime-Format-Natural-0.67 >=dev-perl/Devel-StackTrace-1.19 >=dev-perl/Email-Address-1.912.0 >=dev-perl/Email-Address-List-0.60.0 >=dev-perl/HTML-FormatText-WithLinks-0.14 >=dev-perl/HTML-Mason-1.43 >=dev-perl/HTML-Scrubber-0.08 >=dev-perl/HTTP-Server-Simple-0.34 >=dev-perl/HTTP-Server-Simple-Mason-0.14 >=dev-perl/Locale-Maketext-Lexicon-0.32 >=dev-perl/Log-Dispatch-2.410.0 >=dev-perl/MIME-tools-5.425 >=dev-perl/MailTools-1.60 >=dev-perl/Module-Versions-Report-1.05 >=dev-perl/Role-Basic-0.12 >=dev-perl/Symbol-Global-Name-0.04 >=dev-perl/Text-Quoted-2.80.0 >=dev-perl/Text-WikiFormat-0.76 >=dev-perl/Tree-Simple-1.04 >=dev-perl/XML-RSS-1.05 >=dev-perl/DBIx-SearchBuilder-1.660.0 >=virtual/perl-Digest-MD5-2.27 >=virtual/perl-Encode-2.730.0 >=virtual/perl-File-Spec-0.8 >=virtual/perl-Getopt-Long-2.24 >=virtual/perl-Locale-Maketext-1.06 >=virtual/perl-Storable-2.08 dev-perl/Business-Hours dev-perl/CGI-Emulate-PSGI dev-perl/CGI-PSGI dev-perl/Cache-Simple-TimedExpiry dev-perl/Calendar-Simple dev-perl/Convert-Color dev-perl/Crypt-Eksblowfish dev-perl/Crypt-SSLeay dev-perl/Crypt-X509 dev-perl/CSS-Minifier-XS dev-perl/Data-Page-Pageset dev-perl/DBD-SQLite dev-perl/Data-GUID dev-perl/Data-ICal dev-perl/Date-Manip dev-perl/Devel-GlobalDestruction dev-perl/File-ShareDir dev-perl/File-Which dev-perl/GDGraph dev-perl/GDTextUtil dev-perl/GD[png(+),gif(+)] dev-perl/GnuPG-Interface dev-perl/GraphViz dev-perl/HTML-Formatter dev-perl/HTML-FormatText-WithLinks-AndTables dev-perl/HTML-Gumbo dev-perl/HTML-Mason-PSGIHandler dev-perl/HTML-Parser dev-perl/HTML-Quoted dev-perl/HTML-RewriteAttributes dev-perl/HTML-Tree dev-perl/IPC-Run3 dev-perl/JSON dev-perl/JavaScript-Minifier-XS dev-perl/MIME-Types dev-perl/Module-Refresh dev-perl/Mozilla-CA dev-perl/Net-CIDR dev-perl/PerlIO-eol dev-perl/Plack dev-perl/Regexp-Common-net-CIDR dev-perl/Regexp-IPv6 dev-perl/Scope-Upper dev-perl/Starlet dev-perl/String-ShellQuote dev-perl/TermReadKey dev-perl/Text-Autoformat dev-perl/Text-Password-Pronounceable dev-perl/Time-ParseDate dev-perl/TimeDate dev-perl/UNIVERSAL-require dev-perl/libwww-perl dev-perl/Locale-Maketext-Fuzzy dev-perl/Net-IP dev-perl/Net-Server dev-perl/Regexp-Common dev-perl/Text-Template dev-perl/Text-Wrapper virtual/perl-Digest virtual/perl-File-Temp virtual/perl-Scalar-List-Utils virtual/perl-Time-HiRes virtual/perl-libnet fastcgi? ( dev-perl/FCGI dev-perl/FCGI-ProcManager ) !lighttpd? ( dev-perl/Apache-DBI !fastcgi? ( >=www-apache/mod_perl-2 ) ) lighttpd? ( dev-perl/FCGI ) mysql? ( >=dev-perl/DBD-mysql-2.1018 ) postgres? ( >=dev-perl/DBD-Pg-1.43 ) " RDEPEND="${DEPEND} virtual/mta !lighttpd? ( ${APACHE2_DEPEND} ) lighttpd? ( >=www-servers/lighttpd-1.3.13 sys-apps/openrc ) " need_httpd_cgi pkg_setup() { webapp_pkg_setup ewarn ewarn "If you are upgrading from an existing RT installation" ewarn "make sure to read the related upgrade documentation in" ewarn "${ROOT}usr/share/doc/${PF}." ewarn } src_prepare() { # add Gentoo-specific layout cat "${FILESDIR}"/config.layout-gentoo >> config.layout sed -e "s|PREFIX|${EPREFIX}/${MY_HOSTROOTDIR}/${PF}|g" \ -e "s|HTMLDIR|${EPREFIX}/${MY_HTDOCSDIR}|g" \ -e 's|/\+|/|g' \ -i ./config.layout || die 'config sed failed' # don't need to check dev dependencies sed -e "s|\$args{'with-DEV'} =1;|#\$args{'with-DEV'} =1;|" \ -i sbin/rt-test-dependencies.in || die 'dev sed failed' eapply "${FILESDIR}/rt-makefile-serialize-install-prereqs.patch" eapply_user } src_configure() { local web local myconf local depsconf if use mysql ; then myconf="--with-db-type=mysql --with-db-dba=root" depsconf="--with-MYSQL" elif use postgres ; then myconf="--with-db-type=Pg --with-db-dba=postgres" depsconf="--with-PG" else die "Pick a database backend" fi if use fastcgi ; then myconf+=" --with-web-handler=fastcgi" web="apache" depsconf+=" --with-FASTCGI" elif use lighttpd ; then myconf+=" --with-web-handler=fastcgi" web="lighttpd" depsconf+=" --with-FASTCGI" else myconf+=" --with-web-handler=modperl2" web="apache" depsconf+=" --with-MODPERL2" fi # Any loading Date::Manip from here on # may fail if TZ=Factory as it is on gentoo install # media ( affects install as well ) export TZ=UTC ./configure --enable-layout=Gentoo \ --with-bin-owner=rt \ --with-libs-owner=rt \ --with-libs-group=rt \ --with-rt-group=rt \ --with-web-user=${web} \ --with-web-group=${web} \ ${myconf} # check for missing deps and ask to report if something is broken /usr/bin/perl ./sbin/rt-test-dependencies ${depsconf} > "${T}"/t if grep -q "MISSING" "${T}"/t; then ewarn "Missing Perl dependency!" ewarn cat "${T}"/t | grep MISSING ewarn ewarn "Please run perl-cleaner. If the problem persists," ewarn "please file a bug in the Gentoo Bugzilla with the information above" die "Missing dependencies." fi } src_compile() { :; } src_install() { webapp_src_preinst emake DESTDIR="${D}" install dodoc -r docs/* # Disable compression because `perldoc` doesn't decompress transparently docompress -x /usr/share/doc # make sure we don't clobber existing site configuration rm -f "${ED}"/${MY_HOSTROOTDIR}/${PF}/etc/RT_SiteConfig.pm # fix paths find "${ED}" -type f -print0 | xargs -0 sed -i -e "s:${ED}::g" # copy upgrade files insinto "${MY_HOSTROOTDIR}/${PF}" doins -r etc/upgrade # require the web server's permissions webapp_serverowned "${MY_HOSTROOTDIR}"/${PF}/var webapp_serverowned "${MY_HOSTROOTDIR}"/${PF}/var/mason_data/obj webapp_postinst_txt en "${FILESDIR}"/postinstall-en.txt webapp_hook_script "${FILESDIR}"/reconfig webapp_src_install } pkg_postinst() { webapp_pkg_postinst if use lighttpd ; then elog "We no longer install initscripts as Best Practical's recommended" elog "implementation is to let Lighttpd manage the FastCGI instance." elog elog "You may find the following helpful:" elog " perldoc /usr/share/doc/${P}/web_deployment.pod" fi }