# Contributor: Leonardo Arena <rnalrd@alpinelinux.org>
# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
pkgname=rt4
pkgver=4.4.7
pkgrel=0
pkgdesc="Request Tracker - issue and bug tracker"
pkgusers="rt4"
pkggroups="rt4"
url="https://bestpractical.squarespace.com/request-tracker"
arch="noarch"
license="GPL-2.0-or-later"
options="!check" # need to install the RT_Config module
depends="perl
	font-droid
	perl-apache-session
	perl-business-hours
	perl-cache-simple-timedexpiry
	perl-cgi
	perl-cgi-emulate-psgi
	perl-cgi-psgi
	perl-class-accessor
	perl-convert-color
	perl-crypt-eksblowfish
	perl-crypt-ssleay
	perl-crypt-x509
	perl-css-minifier-xs
	perl-css-squish
	perl-data-guid
	perl-data-ical
	perl-data-page-pageset
	perl-date-extract
	perl-date-manip
	perl-datetime
	perl-datetime-format-natural
	perl-datetime-locale
	perl-dbd-mysql
	perl-dbd-pg
	perl-dbi
	perl-dbix-searchbuilder
	perl-devel-globaldestruction
	perl-devel-stacktrace
	perl-digest-sha1
	perl-email-address
	perl-email-address-list
	perl-fcgi
	perl-fcgi-procmanager
	perl-file-sharedir
	perl-file-which
	perl-getopt-long
	perl-html-formatter
	perl-html-formattext-withlinks
	perl-html-formattext-withlinks-andtables
	perl-html-mason
	perl-html-mason-psgihandler
	perl-html-parser
	perl-html-quoted
	perl-html-rewriteattributes>=0.05
	perl-html-scrubber
	perl-html-tree
	perl-ipc-run3
	perl-javascript-minifier
	perl-javascript-minifier-xs
	perl-json
	perl-list-moreutils
	perl-locale-maketext-fuzzy
	perl-locale-maketext-lexicon
	perl-log-dispatch
	perl-lwp-protocol-https
	perl-mailtools
	perl-mime-tools
	perl-mime-types
	perl-module-refresh
	perl-module-versions-report
	perl-mozilla-ca
	perl-net-cidr
	perl-net-ip
	perl-parallel-forkmanager
	perl-plack
	perl-pod-parser
	perl-regexp-common-net-cidr
	perl-regexp-ipv6
	perl-role-basic
	perl-scope-upper
	perl-starlet
	perl-string-shellquote
	perl-sub-exporter
	perl-symbol-global-name
	perl-term-readkey
	perl-text-password-pronounceable
	perl-text-quoted
	perl-text-template
	perl-text-wikiformat
	perl-text-wrapper
	perl-time-hires
	perl-time-parsedate
	perl-tree-simple
	perl-universal-require
	perl-xml-rss
	"

makedepends="autoconf"
install="$pkgname.pre-install $pkgname.pre-upgrade"
source="https://download.bestpractical.com/pub/rt/release/rt-$pkgver.tar.gz
	0001-email-allow-envelope-from-overriding-from-templates.patch
	rt-autoconf-version.patch
	rt-varpath.patch
	"
builddir="$srcdir"/rt-$pkgver

# secfixes:
#   4.4.7-r0:
#     - CVE-2021-38562
#     - CVE-2022-25802
#     - CVE-2023-41259
#     - CVE-2023-41260

prepare() {
	default_prepare

	sed -i -e 's_$RT::BasePath/share/fonts/_/usr/share/fonts/TTF/_g' \
		"$builddir"/etc/RT_Config.pm*

	cat <<-'EOF' >> config.layout
	# Alpine directory layout.
	<Layout Alpine>
	  prefix:		/usr
	  exec_prefix:		$prefix
	  bindir:		$exec_prefix/bin
	  sbindir:		$exec_prefix/sbin
	  sysconfdir:		/etc/rt4
	  mandir:		$prefix/share/man
	  plugindir:		$prefix/lib/rt4/plugins
	  libdir:		$prefix/lib/rt4/
	  datadir:		$prefix/share/rt4
	  htmldir:		$datadir/html
	  fontdir:		$datadir/fonts
	  lexdir:		$datadir/po
	  staticdir:		$datadir/static
	  manualdir:		$datadir/doc
	  localstatedir:	/var
	  logfiledir:		$localstatedir/log
	  masonstatedir:	$localstatedir/cache/mason_data
	  sessionstatedir:	$localstatedir/cache/session_data
	  customdir:		$prefix/local
	  custometcdir:		$customdir/etc
	  customhtmldir:	$customdir/html
	  customlexdir:		$customdir/po
	  customlibdir:		$customdir/lib
	  customplugindir:	$customdir/plugins
	</Layout>
	EOF
}

build() {
	autoconf
	./configure \
		--build=$CBUILD \
		--host=$CHOST \
		--enable-layout=Alpine \
		--with-rt-group=rt4 \
		--with-web-group=rt4 \
		--with-web-user=rt4 \
		--disable-gpg \
		--disable-graphviz
	make testdeps
	make
}

package() {
	make -j1 DESTDIR="$pkgdir" install

	# delete the droid fonts as we get them from ttf-droid
	rm -rf "${pkgdir:?}"/usr/share/rt4/fonts/ \
		"${pkgdir:?}"/usr/local
}

sha512sums="
c4824d2345c8eb628506d7e147fef7be26b834f188a8a45e1c8b204b3d3de0b09002d703cc61717b67a1f447219b1b08351082dee4222e2fb25f78b217838415  rt-4.4.7.tar.gz
165be009e0babc128441e2931ecdc8928abcd0eca457e0d711e1073062a17647c2065d1930f4eb86f2288b984e202c8e78f8f508f22d3fcf997360481e63fe5e  0001-email-allow-envelope-from-overriding-from-templates.patch
f80fcc91b4df6091bc988b2ce613220d6d6a49b81f86ad31a81de4a965c9b032082d367345c4e8e32ed747bca36d95640018c5e0c414251b85b314f88f5a471a  rt-autoconf-version.patch
42d41f0c185f190476f8707ce70e0085513d95d7dd3da816e9e1e966994c5e108fe6107379e6017dccbfc2d32cdd0bad0a839b514da3184e84f30e7ecc2f44b8  rt-varpath.patch
"
