# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
setvar pkgname = 'otrs'
setvar pkgver = '5.0.23'
setvar pkgrel = '0'
setvar pkgdesc = ""Flexible Open Source Service Management Software""
setvar url = ""http://www.otrs.org/""
setvar arch = ""noarch""
setvar license = ""AGPL3""
setvar pkgusers = ""otrs""
setvar pkggroups = ""www-data""
setvar depends = ""perl perl-archive-zip perl-crypt-eksblowfish perl-crypt-ssleay
	perl-date-format perl-dbi perl-encode-hanextra perl-io-socket-ssl perl-json-xs
	perl-ldap perl-libwww perl-mail-imapclient perl-net-dns perl-template-toolkit
	perl-text-csv perl-text-csv_xs perl-uri perl-xml-libxml perl-xml-libxslt
	perl-xml-parser perl-yaml-xs ttf-dejavu""
setvar makedepends = """"
setvar subpackages = ""$pkgname-doc $pkgname-dev $pkgname-setup $pkgname-apache2
	$pkgname-fastcgi $pkgname-nginx $pkgname-bash-completion:bashcomp""
setvar install = ""$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade
	$pkgname-setup.post-install $pkgname-setup.post-deinstall""
setvar source = ""http://ftp.otrs.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2
	$pkgname.initd
	$pkgname.spawn-fcgi
	$pkgname.nginx.conf
	""
setvar builddir = ""$srcdir/$pkgname-$pkgver""

# Security fixes:
#   5.0.23:
#     - CVE-2017-14635

proc prepare {
	default_prepare || return 1

	find $builddir -type f -exec \
		sed -i 's:/opt/otrs:/var/lib/otrs:g' {} + \
		|| return 1
}

proc package {
	local file

	mkdir -p "$pkgdir"/var/lib/$pkgname

	cd $pkgdir

	cp -r "$builddir"/* var/lib/$pkgname || return 1
	install -Dm755 "$srcdir"/$pkgname.initd etc/init.d/$pkgname || return 1

	# switch to system fonts
	rm -fr var/lib/$pkgname/var/fonts
	ln -s /usr/share/fonts/ttf-dejavu \
		var/lib/$pkgname/var/fonts

	# fix *.dist files
	for file in var/lib/$pkgname/var/cron/*.dist \
		var/lib/$pkgname/Kernel/Config.pod.dist
	{
		mv $file ${file%.dist} || return 1
	}
}

proc check {
	"$builddir"/bin/otrs.CheckModules.pl
}

proc doc {
	local file;
	default_doc || return 1

	mkdir -p "$subpkgdir"/var/lib/$pkgname/scripts

	mv "$pkgdir"/var/lib/$pkgname/doc \
		"$subpkgdir"/var/lib/$pkgname || return 1

	for file in $(find "$pkgdir" -name "*.md" -o -name "*.pod" -o -name "*.txt" \
		-o -name "ARCHIVE" -o -name "README"  \
		-o -name "UPGRADING" -o -name "COPYING*")
	{
		setvar file = ${file#$pkgdir}
		mkdir -p "$subpkgdir"/${file%/*} || return 1
		mv "$pkgdir"/$file "$subpkgdir"/$file || return 1
	}
}

proc dev {
	local file
	default_dev || return 1

	mkdir -p "$subpkgdir"/var/lib/$pkgname/scripts \
		"$subpkgdir"/var/lib/$pkgname/var/httpd/htdocs/js

	mv "$pkgdir"/var/lib/$pkgname/scripts/auto_build \
		"$pkgdir"/var/lib/$pkgname/scripts/tools \
		"$pkgdir"/var/lib/$pkgname/scripts/test \
		"$pkgdir"/var/lib/$pkgname/scripts/contrib \
		"$pkgdir"/var/lib/$pkgname/scripts/rpc-example.pl \
		"$subpkgdir"/var/lib/$pkgname/scripts || return 1

	for file in processes webservices {
		mkdir -p "$subpkgdir"/var/lib/$pkgname/var/$file
		mv "$pkgdir"/var/lib/$pkgname/var/$file/examples \
			"$subpkgdir"/var/lib/$pkgname/var/$file || return 1
	}

	mv "$pkgdir"/var/lib/$pkgname/var/httpd/htdocs/js/test \
		"$subpkgdir"/var/lib/$pkgname/var/httpd/htdocs/js
}

proc setup {
	local file
	setvar pkgdesc = ""$pkgdesc (initial setup)""
	setvar depends = "$pkgname"

	mkdir -p "$subpkgdir"/var/lib/$pkgname/scripts \
		"$subpkgdir"/var/lib/$pkgname/bin/cgi-bin \
		"$subpkgdir"/var/lib/$pkgname/bin/fcgi-bin

	mv "$pkgdir"/var/lib/$pkgname/scripts/DBUpdate-* \
		"$pkgdir"/var/lib/$pkgname/scripts/database \
		"$subpkgdir"/var/lib/$pkgname/scripts || return 1

	mv "$pkgdir"/var/lib/$pkgname/bin/cgi-bin/installer.pl \
		"$subpkgdir"/var/lib/$pkgname/bin/cgi-bin/installer.pl || return 1

	mv "$pkgdir"/var/lib/$pkgname/bin/fcgi-bin/installer.pl \
		"$subpkgdir"/var/lib/$pkgname/bin/fcgi-bin/installer.pl || return 1

	for file in CheckModules CheckSum {
		mv "$pkgdir"/var/lib/$pkgname/bin/$pkgname.$file.pl \
			"$subpkgdir"/var/lib/$pkgname/bin/$pkgname.$file.pl || return 1
	}

	for file in fetchmailrc mailfilter procmailrc {
		install -Dm644 "$builddir"/.$file.dist \
			"$subpkgdir"/var/lib/$pkgname/.$file.dist || return 1
	}

	mv "$pkgdir"/var/lib/$pkgname/scripts/apache2-httpd-plack-proxy.conf \
		"$subpkgdir"/var/lib/$pkgname/scripts
}

proc apache2 {
	setvar pkgdesc = ""$pkgdesc (apache2 configuration)""
	setvar depends = ""$pkgname apache2 apache2-mod-perl""

	mkdir -p "$subpkgdir"/etc/apache2/conf.d \
		"$subpkgdir"/var/lib/$pkgname/scripts

	mv "$pkgdir"/var/lib/$pkgname/scripts/apache2-httpd.include.conf \
		"$subpkgdir"/etc/apache2/conf.d/$pkgname.conf || return 1

	mv "$pkgdir"/var/lib/$pkgname/scripts/apache2-perl-startup.pl \
		"$subpkgdir"/var/lib/$pkgname/scripts
}

proc fastcgi {
	setvar pkgdesc = ""$pkgdesc (fastcgi configuration)""
	setvar depends = ""$pkgname fcgiwrap perl-cgi-fast spawn-fcgi""

	install -Dm644 "$srcdir"/$pkgname.spawn-fcgi \
		"$subpkgdir"/etc/conf.d/spawn-fcgi.$pkgname || return 1

	mkdir -p "$subpkgdir"/etc/init.d
	ln -s spawn-fcgi "$subpkgdir"/etc/init.d/spawn-fcgi.$pkgname
}

proc nginx {
	setvar pkgdesc = ""$pkgdesc (nginx configuration)""
	setvar depends = ""$pkgname $pkgname-fastcgi nginx""

	install -Dm644 "$srcdir"/$pkgname.nginx.conf \
		"$subpkgdir"/etc/nginx/$pkgname.conf || return 1
}

proc bashcomp {
	setvar pkgdesc = ""$pkgdesc (bash completion)""
	setvar depends = """"
	setvar install_if = ""$pkgname=$pkgver-r$pkgrel bash-completion""

	install -Dm644 "$builddir"/.bash_completion \
		"$subpkgdir"/var/lib/$pkgname/.bash_completion
}

setvar sha512sums = ""c6ae594178e1f0eb59b87a8d08b610940ba7ad0a44699ba73568c6844a49fc03e2486bce393aaf0dd78da9c64790b9fae72cfad65c9c6955c0524fbf27b95d7e  otrs-5.0.23.tar.bz2
90d43b350a00fa1648c8add5e2af9b88f78cb583f71438306a9b80ee45a939eda903472b84db1327e0579a5d8c5fd88e3c1e7d55a15106aeef426b16e932363d  otrs.initd
7bab58132a5705c8e8ecade8e4aea3b0f04af66a71e4ae08cfeda91b0e143607de350debdc49bf2ce022277ee3804aead3ca8825804d073690c2f5f3a19d776e  otrs.spawn-fcgi
f79474575ac7c734edcfbaf56fc8062c3594749791f9d1fa4328c6bde71747f0ce6219d47ba7ab409927b7343b36dc0c4aa29cd03600c2d806ed5409edab6b14  otrs.nginx.conf""