blob: 4ad6fe3662f080ef9e75ca4ab0392649127c73dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
inherit confutils user systemd
DESCRIPTION="OTRS is an Open source Ticket Request System"
HOMEPAGE="https://otrs.org/"
SRC_URI="https://ftp.otrs.org/pub/${PN}/${P}.tar.bz2"
LICENSE="AGPL-3"
KEYWORDS="~amd64 ~x86"
IUSE="apache2 fastcgi +gd ldap mod_perl +mysql pdf postgres soap"
SLOT="0"
DEPEND="media-libs/libpng:0"
RDEPEND="dev-perl/Apache-Reload
dev-perl/Archive-Zip
dev-perl/DBI
dev-perl/IO-Socket-SSL
dev-perl/JSON-XS
dev-perl/LWP-UserAgent-Determined
dev-perl/Mail-POP3Client
dev-perl/Mail-IMAPClient
>dev-perl/Net-DNS-0.60
dev-perl/Template-Toolkit
dev-perl/Text-CSV_XS
dev-perl/TimeDate
dev-perl/XML-Parser
dev-perl/YAML-LibYAML
apache2? (
mod_perl? (
www-servers/apache:2
=www-apache/libapreq2-2* www-apache/mod_perl
)
!fastcgi? ( !mod_perl? ( www-servers/apache:2[suexec] ) )
)
fastcgi? (
dev-perl/FCGI
virtual/httpd-fastcgi
)
!fastcgi? ( !apache2? ( virtual/httpd-cgi ) )
gd? (
dev-perl/GD
dev-perl/GDTextUtil
dev-perl/GDGraph
)
ldap? ( dev-perl/perl-ldap )
mysql? ( dev-perl/DBD-mysql )
postgres? ( dev-perl/DBD-Pg )
pdf? (
>=dev-perl/PDF-API2-0.73
virtual/perl-Compress-Raw-Zlib
)
soap? (
dev-perl/SOAP-Lite
!=dev-perl/SOAP-Lite-0.711
!=dev-perl/SOAP-Lite-0.712
)
"
OTRS_HOME="${EROOT%/}/var/lib/otrs"
pkg_setup() {
# The enewuser otrs will fail if apache isn't there, but it's an optional dep
# so we create the apache user here just in case
enewgroup apache 81
enewuser apache 81 -1 /var/www apache
enewuser otrs -1 -1 ${OTRS_HOME} apache
confutils_require_any mysql postgres
}
src_prepare() {
rm -r "${S}/scripts"/{auto_*,redhat*,suse*,*.spec} || die
pushd Kernel >/dev/null || die
for i in *.dist; do
cp ${i} $(basename ${i} .dist) || die
done
popd >/dev/null || die
# Fix broken png file (and see pngfix help for exit codes)
pngfix -q --out=out.png "${S}/var/httpd/htdocs/skins/Agent/default/img/otrs-verify.png"
if [[ $? -gt 15 ]]; then
die "pngfix failed"
fi
mv -f out.png "${S}/var/httpd/htdocs/skins/Agent/default/img/otrs-verify.png" || die
sed -i -e "s:/opt/otrs:${OTRS_HOME}:g" "${S}"/Kernel/Config.pm \
|| die "sed failed"
sed -i -e "s:/opt/otrs:${OTRS_HOME}:g" "${S}"/Kernel/Config/Defaults.pm \
|| die "sed failed"
grep -lR "/opt" "${S}"/scripts | \
xargs sed -i -e "s:/opt/otrs:${OTRS_HOME}:g" \
|| die "sed failed"
echo "CONFIG_PROTECT=\"${OTRS_HOME}/Kernel/Config.pm \
${OTRS_HOME}/Kernel/Config/GenericAgent.pm\"" > "${T}/50${PN}" || die
eapply_user
}
# This is too automagic, either einfo telling user or installing to /etc/cron.d/ should be preferred
pkg_config() {
einfo "Installing cronjobs"
crontab -u otrs /usr/share/doc/${PF}/crontab || die
}
src_install() {
dodoc CHANGES.md README*
insinto "${OTRS_HOME}"
doins -r .fetchmailrc.dist .mailfilter.dist .procmailrc.dist RELEASE \
Custom Kernel bin scripts var
cat "${S}"/var/cron/*.dist > crontab || die
insinto /usr/share/doc/${PF}/
doins crontab
local a
for a in article log pics/images pics/stats pics sessions spool tmp tmp/CacheFileStorable
do
keepdir "${OTRS_HOME}/var/${a}"
done
doenvd "${T}/50${PN}"
systemd_dounit "${FILESDIR}/otrs.service"
}
pkg_postinst() {
einfo "Setting correct permissions ..."
/usr/bin/env perl "${OTRS_HOME%}"/bin/otrs.SetPermissions.pl "${OTRS_HOME}" \
--otrs-user=otrs \
--web-group=apache \
|| die "Could not set permissions"
einfo "Installation done!"
elog "1) Rebuild your config now by running the following commands:"
elog "sudo -u otrs /usr/bin/env perl "${OTRS_HOME}"/bin/otrs.Console.pl Maint::Config::Rebuild"
elog "sudo -u otrs /usr/bin/env perl "${OTRS_HOME}"/bin/otrs.Console.pl Maint::Cache::Delete"
elog ""
elog "2) Enable cronjobs with the following command:"
elog "crontab -u otrs crontab"
elog ""
elog "3) systemd users: enable and start OTRS daemon:"
elog "systemctl enable otrs"
elog "systemctl start otrs"
}
|