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.
gentoo-overlay/www-apps/rt/rt-4.4.4-r3.ebuild

267 lines
6.6 KiB

# 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
}