aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2016-02-16 09:14:52 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2016-02-16 09:14:56 +0000
commit96d6978cbb360455d43636a63bb78ddc83f0efb3 (patch)
tree75957a231067740b5f1358dd91b4d5efc564c8c9
parent0b6cb9df29175e97cce8f52f010ea1c7313fb08f (diff)
downloadaports-96d6978cbb360455d43636a63bb78ddc83f0efb3.tar.bz2
aports-96d6978cbb360455d43636a63bb78ddc83f0efb3.tar.xz
main/hylafax: added initd, improved post-install
-rw-r--r--main/hylafax/APKBUILD27
-rw-r--r--main/hylafax/hylafax.confd29
-rw-r--r--main/hylafax/hylafax.initd176
-rw-r--r--main/hylafax/hylafax.post-install8
4 files changed, 228 insertions, 12 deletions
diff --git a/main/hylafax/APKBUILD b/main/hylafax/APKBUILD
index d81166a900..9e01cc5299 100644
--- a/main/hylafax/APKBUILD
+++ b/main/hylafax/APKBUILD
@@ -2,7 +2,7 @@
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=hylafax
pkgver=6.0.6
-pkgrel=1
+pkgrel=2
pkgdesc="Sends and receives faxes"
url="http://www.hylafax.org/"
arch="all"
@@ -10,9 +10,11 @@ license="MIT"
#depends on gcc for libgcc_s.so, it's scripts are hardcoded to bash
depends="ghostscript bash tiff-tools"
makedepends="zlib-dev tiff-dev"
-install="hylafax.post-install"
+install="$pkgname.post-install"
subpackages="$pkgname-doc"
-source="ftp://ftp.hylafax.org/source/$pkgname-$pkgver.tar.gz"
+source="ftp://ftp.hylafax.org/source/$pkgname-$pkgver.tar.gz
+ $pkgname.initd
+ $pkgname.confd"
_builddir="$srcdir"/$pkgname-$pkgver
prepare() {
@@ -76,10 +78,19 @@ package(){
install -m644 -D "$srcdir/$pkgname-$pkgver/README" \
"$pkgdir"/usr/share/doc/$pkgname/README
- # init.d script is created by faxsetup
- # - which the user runs after install
+ install -D -m755 "$srcdir"/$pkgname.initd \
+ "$pkgdir"/etc/init.d/$pkgname || return 1
+ install -D -m644 "$srcdir"/$pkgname.confd \
+ "$pkgdir"/etc/conf.d/$pkgname || return 1
+
}
-md5sums="d063d45049c8fcbabefe09d662313067 hylafax-6.0.6.tar.gz"
-sha256sums="28926915b23ce7f5b4896de8ac5f58389c2c6e6bb73b4eee5bbd5129603bf7c0 hylafax-6.0.6.tar.gz"
-sha512sums="be7e0533a24391c87deac6af35e01c81a79c99977c7f7a931e336d7c737b388d2a7c147faab3bf5eda196b1fa1c8671bee53c05dab2338f2f519010532f7d773 hylafax-6.0.6.tar.gz"
+md5sums="d063d45049c8fcbabefe09d662313067 hylafax-6.0.6.tar.gz
+5acf25e0cf07ae2515214e79fa1d8812 hylafax.initd
+af73e1f25dd8f84fa377f6bf44e2a422 hylafax.confd"
+sha256sums="28926915b23ce7f5b4896de8ac5f58389c2c6e6bb73b4eee5bbd5129603bf7c0 hylafax-6.0.6.tar.gz
+77a16cf3715441c43116da4c4231abc5bcc2f30271075ed2a0d1382d74f31165 hylafax.initd
+3748b6eabdd0a630607286a59a7c175e09cd9cc933749e874ac2379d662c5761 hylafax.confd"
+sha512sums="be7e0533a24391c87deac6af35e01c81a79c99977c7f7a931e336d7c737b388d2a7c147faab3bf5eda196b1fa1c8671bee53c05dab2338f2f519010532f7d773 hylafax-6.0.6.tar.gz
+3862cefcd26092000e4489c097537e5e0e2ae1f7c2a7a16b1e933b3bb78d136b6d8a65fb712ae245dd8ca881900408d0d9788bd2e0b859a9569fc6f4ede8cc7c hylafax.initd
+3c07726cc9d7351dceb80a46354c6626e54b033b0f434c1db01db2a3b3ab5e9084d551dd23cae3ab40806f27aa5fa0a5b70c43a6b7802356871c0b343baa2376 hylafax.confd"
diff --git a/main/hylafax/hylafax.confd b/main/hylafax/hylafax.confd
new file mode 100644
index 0000000000..e82610fe0b
--- /dev/null
+++ b/main/hylafax/hylafax.confd
@@ -0,0 +1,29 @@
+# Spool directory for HylaFAX
+spooldir="/var/spool/hylafax"
+
+# Faxq program path
+faxq="/usr/sbin/faxq"
+
+# hfaxd program path
+hfaxd="/usr/sbin/hfaxd"
+
+# faxgetty program path
+faxgetty="/usr/sbin/faxgetty"
+
+# Port of the hfaxd daemon for new protocol
+faxport=hylafax
+
+# Address used by hfaxd as binding address.
+faxbind="127.0.0.1"
+
+# Port of the hfaxd daemon for SNPP protocol
+snppport=444
+
+# Port of the hfaxd daemon for old protocol
+oldprotoport=4557
+
+# newproto | oldproto | snpp | any
+mode="newproto"
+
+# Directory where the pidfiles of HylaFAX are saved.
+piddir="/var/run"
diff --git a/main/hylafax/hylafax.initd b/main/hylafax/hylafax.initd
new file mode 100644
index 0000000000..d5c5df37f4
--- /dev/null
+++ b/main/hylafax/hylafax.initd
@@ -0,0 +1,176 @@
+#!/sbin/openrc-run
+# Copyright 1999-2008 Gentoo Foundation
+# Author Geaaru
+# Distributed under the terms of the GNU General Public License v2
+
+opts="zap"
+
+depend() {
+ use lo
+}
+
+checkconfig() {
+ ebegin "Check hylafax server configuration..."
+
+ if [ x$spooldir == x ] ; then
+ eerror "No spooldir directory defined"
+ return 1
+ else
+ SPOOL=$spooldir
+ einfo "Use spool directory $SPOOL"
+ fi
+
+ if [ x$mode == x ] ; then
+ eerror "No mode defined"
+ return 1
+ fi
+
+ if [ ! -f $SPOOL/etc/setup.cache ] ; then
+ eerror "No $SPOOL/etc/setup.cache file founded. Use faxsetup command"
+ return 1
+ fi
+
+ if [[ x$hfaxd == x || ! -f $hfaxd ]] ; then
+ eerror "No hfaxd daemon founded"
+ return 1
+ fi
+
+ if [[ x$faxq == x || ! -f $faxq ]] ; then
+ eerror "No faxq program founded"
+ return 1
+ fi
+
+ if [[ x$faxgetty == x || ! -f $faxgetty ]] ; then
+ eerror "No faxgetty program founded"
+ return 1
+ fi
+
+ if [ x$faxbind == x ] ; then
+ eerror "No binding address supply"
+ return 1
+ fi
+
+ if [ x$piddir == x ] ; then
+ PIDDIR=$SPOOL
+ else
+ PIDDIR=$piddir
+ fi
+
+
+ hfaxd_args="-l $faxbind -q $SPOOL"
+
+ case $mode in
+ newproto)
+ if [[ x$faxport == x ]] ; then
+ eerror "No faxport defined"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -i $faxport"
+ ;;
+ oldproto)
+ if [[ x$oldprotoport == x ]] ; then
+ eerror "No oldprotoport defined"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -o $oldprotoport"
+ ;;
+ snpp)
+ if [[ x$snppport == x ]] ; then
+ eerror "No snppport defined"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -s $snppport"
+ ;;
+ any)
+ if [[ x$faxport == x || x$snppport == x || x$oldprotoport == x ]] ; then
+ eerror "No port data founded for old services"
+ return 1
+ fi
+ hfaxd_args="$hfaxd_args -i $faxport -s $snppport -o $oldprotoport"
+ ;;
+ *)
+ eerror "Invalid mode"
+ return 1
+ ;;
+
+ esac
+
+ faxq_args="-q $SPOOL"
+
+ # workaround for manage save of pidfile with start-stop-daemon
+ hfaxd_args="$hfaxd_args -d"
+ faxq_args="$faxq_args -D"
+
+ return 0
+}
+
+start() {
+ local result
+
+ checkconfig || return 1
+
+ ebegin "Starting HylaFAX server daemons"
+
+ start_faxq
+ result=$?
+
+ if [ $result -ne 0 ] ; then
+ eerror "Error on start $faxq daemon"
+ return 1
+ fi
+
+ start_hfaxd
+ result=$?
+
+ eend $result
+}
+
+start_hfaxd() {
+ local arguments="--start \
+ --make-pidfile --pidfile $PIDDIR/hfaxd.pid"
+
+ einfo "Starting $hfaxd with args $hfaxd_args"
+
+ start-stop-daemon -b ${arguments} --exec $hfaxd -- $hfaxd_args > /dev/null 2>&1
+
+ return $?;
+}
+
+start_faxq() {
+ local arguments="--start \
+ --make-pidfile --pidfile $PIDDIR/faxq.pid"
+ einfo "Starting $faxq ... "
+
+ start-stop-daemon -b ${arguments} --exec $faxq -- $faxq_args > /dev/null 2>&1
+
+ return $?
+}
+
+stop() {
+ checkconfig || return 1
+
+ ebegin "Stopping HylaFAX server daemons"
+
+ start-stop-daemon --stop --quiet --pidfile $PIDDIR/hfaxd.pid
+ start-stop-daemon --stop --quiet --pidfile $PIDDIR/faxq.pid
+ eend $?
+}
+
+zap() {
+ checkconfig || return 1
+
+ ebegin "Zap HylaFAX server daemon files"
+
+ if [ -f $PIDFILE/hfaxd.pid ] ; then
+ rm -f $PIDFILE/hfaxd.pid
+ fi
+
+ if [ -f $PIDFILE/faxq.pid ] ; then
+ rm -f $PIDFILE/faxq.pid
+ fi
+}
+
+restart() {
+ stop
+ start
+}
diff --git a/main/hylafax/hylafax.post-install b/main/hylafax/hylafax.post-install
index 839f96f543..fb88aa93a3 100644
--- a/main/hylafax/hylafax.post-install
+++ b/main/hylafax/hylafax.post-install
@@ -1,5 +1,5 @@
#!/bin/sh
-
-echo " *"
-echo " * Please run faxsetup to configure hylafax"
-echo " *"
+echo " * ">&2
+echo " * Please run faxsetup to configure hylafax">&2
+echo " * " >&2
+exit 0