Commit bec0e79e authored by Valery Kartel's avatar Valery Kartel Committed by Leonardo Arena
Browse files

testing/otrs: new aport

Flexible Open Source Service Management Software
http://www.otrs.org/
parent c868fc7f
# Contributor: Valery Kartel <valery.kartel@gmail.com>
# Maintainer: Valery Kartel <valery.kartel@gmail.com>
pkgname=otrs
pkgver=5.0.16
pkgrel=0
pkgdesc="Flexible Open Source Service Management Software"
url="http://www.otrs.org/"
arch="noarch"
license="AGPL3"
pkgusers="otrs"
pkggroups="www-data"
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"
makedepends=""
subpackages="$pkgname-doc $pkgname-dev $pkgname-setup $pkgname-apache2
$pkgname-fastcgi $pkgname-nginx $pkgname-bash-completion:bashcomp"
install="$pkgname.pre-install $pkgname.post-install $pkgname.post-upgrade
$pkgname-setup.post-install $pkgname-setup.post-deinstall"
source="http://ftp.otrs.org/pub/$pkgname/$pkgname-$pkgver.tar.bz2
$pkgname.initd
$pkgname.spawn-fcgi
$pkgname.nginx.conf
"
builddir="$srcdir/$pkgname-$pkgver"
prepare() {
default_prepare || return 1
find "$builddir" -type f -exec \
sed -i 's:/opt/otrs:/var/lib/otrs:g' {} + \
|| return 1
}
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
do
mv $file ${file%.dist} || return 1
done
}
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*")
do
file=${file#$pkgdir}
mkdir -p "$subpkgdir"/${file%/*} || return 1
mv "$pkgdir"/$file "$subpkgdir"/$file || return 1
done
}
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; do
mkdir -p "$subpkgdir"/var/lib/$pkgname/var/$file
mv "$pkgdir"/var/lib/$pkgname/var/$file/examples \
"$subpkgdir"/var/lib/$pkgname/var/$file || return 1
done
mv "$pkgdir"/var/lib/$pkgname/var/httpd/htdocs/js/test \
"$subpkgdir"/var/lib/$pkgname/var/httpd/htdocs/js
}
setup() {
local file
pkgdesc="$pkgdesc (initial setup)"
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; do
mv "$pkgdir"/var/lib/$pkgname/bin/$pkgname.$file.pl \
"$subpkgdir"/var/lib/$pkgname/bin/$pkgname.$file.pl || return 1
done
for file in fetchmailrc mailfilter procmailrc; do
install -Dm644 "$builddir"/.$file.dist \
"$subpkgdir"/var/lib/$pkgname/.$file.dist || return 1
done
mv "$pkgdir"/var/lib/$pkgname/scripts/apache2-httpd-plack-proxy.conf \
"$subpkgdir"/var/lib/$pkgname/scripts
}
apache2() {
pkgdesc="$pkgdesc (apache2 configuration)"
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
}
fastcgi() {
pkgdesc="$pkgdesc (fastcgi configuration)"
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
}
nginx() {
pkgdesc="$pkgdesc (nginx configuration)"
depends="$pkgname $pkgname-fastcgi nginx"
install -Dm644 "$srcdir"/$pkgname.nginx.conf \
"$subpkgdir"/etc/nginx/$pkgname.conf || return 1
}
bashcomp() {
pkgdesc="$pkgdesc (bash completion)"
depends=""
install_if="$pkgname=$pkgver-r$pkgrel bash-completion"
install -Dm644 "$builddir"/.bash_completion \
"$subpkgdir"/var/lib/$pkgname/.bash_completion
}
sha512sums="326ebc97b689ce05c33a4f8e5587b891029c168544ab6bea4e5b112b2c75527a605689fd957d7acdebf18e331176db727cca4c87244f22cfdb9b9e4e0735b6c4 otrs-5.0.16.tar.bz2
90d43b350a00fa1648c8add5e2af9b88f78cb583f71438306a9b80ee45a939eda903472b84db1327e0579a5d8c5fd88e3c1e7d55a15106aeef426b16e932363d otrs.initd
7bab58132a5705c8e8ecade8e4aea3b0f04af66a71e4ae08cfeda91b0e143607de350debdc49bf2ce022277ee3804aead3ca8825804d073690c2f5f3a19d776e otrs.spawn-fcgi
f79474575ac7c734edcfbaf56fc8062c3594749791f9d1fa4328c6bde71747f0ce6219d47ba7ab409927b7343b36dc0c4aa29cd03600c2d806ed5409edab6b14 otrs.nginx.conf"
#!/bin/sh
/var/lib/otrs/bin/otrs.SetPermissions.pl --web-group=www-data >/dev/null
exit 0
#!/bin/sh
/var/lib/otrs/bin/otrs.SetPermissions.pl --web-group=www-data >/dev/null
su -s /bin/sh otrs -c "/var/lib/otrs/bin/otrs.CheckModules.pl"
cat <<EOF
----------------------------------------------------------
*
* Inital setup:
* 1. configure and restart web server
* - apache: otrs-apache2
* - nginx: otrs-nginx (fastcgi service)
* - include /etc/nginx/otrs.conf somewhere in 'server' section
* - enable and start fastcgi service
* - fastcgi service
* - rc-update add spawn-fcgi.otrs
* - service spawn-fcgi.otrs start
* 2. add corresponding database driver:
* - mysql: perl-dbd-mysql
* - postgress: perl-dbd-pg
* 3. go online and continue setup
* - http://$(hostname -f)/otrs/installer.pl
* 4. enable and start otrs service
* - rc-update add otrs
* - service otrs start
* 5. enjoy :)
*
* After setup complete, you can safely remove otrs-setup
*
EOF
exit 0
#!/sbin/openrc-run
description="Open Ticket Management System"
extra_started_commands="reload status"
otrs_cron=/var/lib/otrs/bin/Cron.sh
otrs_daemon=/var/lib/otrs/bin/otrs.Daemon.pl
depend() {
need net
after firewall
}
otrs() {
[ -n "$2" ] && su -s /bin/sh otrs -c "$(eval echo \$otrs_$1) $2" >/dev/null
}
start() {
ebegin "Starting $RC_SVCNAME"
/var/lib/otrs/bin/otrs.SetPermissions.pl --web-group=www-data >/dev/null
otrs daemon start
otrs cron start
eend
}
stop() {
ebegin "Stopping $RC_SVCNAME"
otrs daemon stop
otrs cron stop
eend
}
reload() {
ebegin "Reloading $RC_SVCNAME"
otrs daemon restart
otrs cron restart
eend
}
status() {
otrs daemon status
}
#
# include this file somewhere to 'server' section
#
# server {
# ...
# include otrs.conf;
# ...
# }
#
root /var/lib/otrs/var/httpd/htdocs;
index index.html;
location /otrs-web {
gzip on;
alias /var/lib/otrs/var/httpd/htdocs;
}
location ~ ^/otrs/(.*\.pl)(/.*)?$ {
gzip off;
include fastcgi_params;
fastcgi_pass unix:/var/lib/otrs/var/run/socket-1;
fastcgi_index index.pl;
fastcgi_param SCRIPT_FILENAME /var/lib/otrs/bin/fcgi-bin/$1;
}
#!/bin/sh
if [ ! -e /var/lib/otrs/Kernel/Config.pm ]; then
echo "Initializing /var/lib/otrs/Kernel/Config.pm"
cp /var/lib/otrs/Kernel/Config.pm.dist /var/lib/otrs/Kernel/Config.pm
fi
rm /var/lib/otrs/Kernel/Config.pm.dist
/var/lib/otrs/bin/otrs.SetPermissions.pl --web-group=www-data
if [ -e /var/lib/otrs/Kernel/Config/Files/ZZZAAuto.pm ]; then
su -s /bin/sh otrs -c "/var/lib/otrs/bin/otrs.Console.pl Maint::Config::Rebuild"
su -s /bin/sh otrs -c "/var/lib/otrs/bin/otrs.Console.pl Maint::Cache::Delete"
fi
exit 0
otrs.post-install
\ No newline at end of file
#!/bin/sh
addgroup -S -g 82 www-data 2>/dev/null
addgroup -S otrs 2>/dev/null
adduser -S -D -H -h /var/lib/otrs -s /sbin/nologin -G otrs -g otrs otrs 2>/dev/null
exit 0
FCGI_SOCKET=/var/lib/otrs/var/run/socket
FCGI_EXTRA_OPTIONS="-U otrs -G www-data -M 660"
FCGI_PROGRAM=/usr/bin/fcgiwrap
FCGI_USER=otrs
FCGI_GROUP=www-data
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment