---
main/iaxmodem/APKBUILD | 54 ++++++++++++++----
main/iaxmodem/iaxmodem.c.patch | 126 +++++++++++++++++++++++++++++++++++++++++
main/iaxmodem/iaxmodem.confd | 5 ++
main/iaxmodem/iaxmodem.initd | 14 ++---
4 files changed, 179 insertions(+), 20 deletions(-)
create mode 100644 main/iaxmodem/iaxmodem.c.patch
diff --git a/main/iaxmodem/APKBUILD b/main/iaxmodem/APKBUILD
index 650004c..d29f232 100644
--- a/main/iaxmodem/APKBUILD
+++ b/main/iaxmodem/APKBUILD
@@ -1,38 +1,57 @@
# Contributor: Cameron Banta <cbanta@gmail.com>
+# Contributor: Mika Havela <mika.havela@gmail.com>
# Maintainer: Cameron Banta <cbanta@gmail.com>
pkgname=iaxmodem
pkgver=1.2.0
-pkgrel=4
+pkgrel=5
pkgdesc="Softmodem for hylafax that connects to VOIP gateway with IAX"
url="http://iaxmodem.sourceforge.net/"
arch="all"
license="GPL"
-depends=
-makedepends="tiff-dev"
-install=
+depends=""
+depends_dev="uclibc-dev"
+makedepends="$depends_dev tiff-dev"
+install=""
subpackages="$pkgname-doc"
source="http://downloads.sourceforge.net/$pkgname/$pkgname-$pkgver.tar.gz
- nocxx.patch"
+ iaxmodem.c.patch
+ $pkgname.confd
+ $pkgname.initd"
-build() {
- cd "$srcdir/$pkgname-$pkgver"
-
- # purge usless C++ check
- patch lib/libiax2/configure < ../nocxx.patch || return 1
+_builddir=$srcdir/$pkgname-$pkgver
+prepare() {
+ local i
+ cd "$_builddir"
+ for i in $source; do
+ case $i in
+ *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;;
+ esac
+ done
+}
+build() {
+ cd "$_builddir"
./configure
make || return 1
+
+}
+
+package() {
+ cd "$_builddir"
install -m755 -s -D "$srcdir/$pkgname-$pkgver/iaxmodem" \
"$pkgdir/usr/sbin/iaxmodem"
mkdir -p "$pkgdir/etc/iaxmodem"
mkdir -p "$pkgdir/var/log/iaxmodem"
+ install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname
+ install -m644 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname
+
#library licenses
install -m644 -D "$srcdir/$pkgname-$pkgver/lib/libiax2/COPYING" \
"$pkgdir"/usr/share/licenses/$pkgname/libiax2.COPYING
install -m644 -D "$srcdir/$pkgname-$pkgver/lib/libiax2/COPYING.LIB" \
"$pkgdir"/usr/share/licenses/$pkgname/libiax2.COPYING.LIB
-
+
install -m644 -D "$srcdir/$pkgname-$pkgver/lib/spandsp/COPYING" \
"$pkgdir"/usr/share/licenses/$pkgname/libspandsp.COPYING
@@ -51,5 +70,16 @@ build() {
}
+
md5sums="f8b26cfeed188e5c1dcbc5ae5ef923b3 iaxmodem-1.2.0.tar.gz
-28513788ba4d556ccd538867dc6205ab nocxx.patch"
+2d4425db0e1163c598caffb3e9fd5250 iaxmodem.c.patch
+fe1ee78ad3787ceb580c56de4dd7717d iaxmodem.confd
+ebd0ff874932fc4056d92dfb475bbbe5 iaxmodem.initd"
+sha256sums="fa263c0df0870cb8133c4bee141146ca5db47ece6db50899a6acf508d76591ed iaxmodem-1.2.0.tar.gz
+943f6738656bcde9a734e984e4de9d413a8a89c5d03195f863365e4fe814a0ec iaxmodem.c.patch
+31c8dc226eaddd8b9bfc8c233178b1b192edc951f125dc3f3b064fac2c472ec7 iaxmodem.confd
+e9f8dd4767f4697f1d378c3de3fe9138e478939ee94e6cf102581cd87f50600b iaxmodem.initd"
+sha512sums="53b66a0977366541ffaa743fcbefa11c20eb9ea7182245a1d11bc7fd015d98a4ec8086b3cb85b8de84f63d67221bccb1a868fe9f0a603de600023ea158909707 iaxmodem-1.2.0.tar.gz
+562b7c749daf48868fb2e324e1671d73ba023b52b29c7d710c5ebeb05e94f08ea8bada5cd19da1e16a8ded04bf1c29ecb6ce15c68c649eded7afff0424ae6e3b iaxmodem.c.patch
+daf187f639c0342c27ff95f73077e994d772231f7a0ea562bcffbad76511f9fc63f5447aa8b620e7e6c9c007a0c4535a7215016cf489959c6c2151867c289eba iaxmodem.confd
+22093cb5472740c4fd3eeefc36f12f42e2bafa4c2f9d03ba37aaec19f43dba18263863da8487e92af382affd10143eb0f976f19c62502f6159b93de944ec83e3 iaxmodem.initd"
diff --git a/main/iaxmodem/iaxmodem.c.patch b/main/iaxmodem/iaxmodem.c.patch
new file mode 100644
index 0000000..d078e02
--- /dev/null
+++ b/main/iaxmodem/iaxmodem.c.patch
@@ -0,0 +1,126 @@
+--- iaxmodem-1.2.0/iaxmodem.c
++++ iaxmodem-1.2.0_new/iaxmodem.c
+@@ -1691,40 +1691,77 @@
+ reload_modems();
+ }
+
++void help_about()
++{
++ printf("Usage: iaxmodem [options] [configfile]\n\
++\n\
++Valid options are:\n\
++ -h|-H print this help information\n\
++ -V display iaxmodem version\n\
++ -F prevent parent process from detaching itself from the controlling tty\n\
++ -P <pid-file> pid file to be used\n\
++\n\
++Version: iaxmodem-%s / %s / %s\n", MODEMVER, DSPVER, IAXVER);
++ _exit(-1);
++}
++
+ int
+ main(int argc, char** argv)
+ {
+ int ret;
+ char config[256];
+ int isdaemon = 1;
++ int foundconfig = 0;
+ int fd;
+ FILE *pidfile;
++ char *pfile = "/var/run/iaxmodem.pid";
+
++ int c, prev_ind;
++ while(prev_ind = optind, (c = getopt(argc, argv, ":VFhHP:")) != EOF) {
++ if ( optind == prev_ind + 2 && *optarg == '-' ) {
++ c = ':';
++ -- optind;
++ }
++ switch (c) {
++ case 'h':
++ case 'H':
++ help_about();
++ break;
++ case 'V':
++ printf("Version: iaxmodem-%s / %s / %s\n", MODEMVER, DSPVER, IAXVER);
++ _exit(0);
++ break;
++ case 'F':
++ isdaemon = 0;
++ break;
++ case 'P':
++ pfile = optarg;
++ break;
++ case ':':
++ printlog(LOG_ERROR, "Invalid usage of options\n");
++ help_about();
++ _exit(1);
++ break;
++ default:
++ help_about();
++ break;
++ }
++ }
++
++ /* Set config file to be the last argument unless it contains the '-' sign (preventing a option to be used as a config name) */
++ if ((argc > 1) && (!strstr(argv[argc-1], "-" )) && (!strstr(argv[argc-2], "-P" ))) {
++ snprintf(config, sizeof(config), "%s", argc[argv-1]);
++ foundconfig = 1;
++ }
++
+ if (geteuid() != 0) {
+ printlog(LOG_ERROR, "Error: run iaxmodem as root\n");
+ _exit(-1);
+ }
+
+- if (argc == 2 && strncmp(argv[1], "-V", 2) == 0) {
+- printf("%s\n%s\n%s\n", MODEMVER, DSPVER, IAXVER);
+- _exit(0);
+- }
++ if (foundconfig)
++ iaxmodem(config, 1);
+
+- /* If a config is specified, behave in non-daemon mode */
+- if (argc == 2) {
+-
+- snprintf(config, sizeof(config), "%s", argv[1]);
+-
+- if (!strncmp(config, "-F", 2)) {
+-
+- isdaemon = 0;
+-
+- } else {
+-
+- iaxmodem(config, 1);
+- }
+- }
+-
+ /*
+ * iaxmodem() never returns, so the code below won't be reached if
+ * a config file is specified on the command line
+@@ -1737,7 +1774,7 @@
+ }
+
+ /* Write pid to pidfile */
+- pidfile = fopen("/var/run/iaxmodem.pid", "w");
++ pidfile = fopen(pfile, "w");
+ if (pidfile == NULL) {
+ printlog(LOG_ERROR, "Fatal error: could not open pidfile /var/run/iaxmodem.pid: %s\n", strerror(errno));
+ exit(-1);
+@@ -1770,7 +1807,7 @@
+ checklog("/var/log/iaxmodem/iaxmodem");
+ fd = open("/var/log/iaxmodem/iaxmodem", O_WRONLY | O_APPEND | O_CREAT | O_LARGEFILE, logmode);
+ if (fd < 0) {
+- printlog(LOG_ERROR, "Error: could not open /var/log/iaxmodem/iaxmodem: %s\n", strerror(errno));
++ printlog(LOG_ERROR, "Fatal error: could not open pidfile %s: %s\n", pfile, strerror(errno));
+ } else {
+ dup2(fd, STDERR_FILENO);
+ }
+@@ -1791,7 +1828,7 @@
+ }
+
+ /* Control process only */
+- unlink("/var/run/iaxmodem.pid");
++ unlink(pfile);
+
+ exit(0);
+ }
diff --git a/main/iaxmodem/iaxmodem.confd b/main/iaxmodem/iaxmodem.confd
index 082a920..36217d1 100644
--- a/main/iaxmodem/iaxmodem.confd
+++ b/main/iaxmodem/iaxmodem.confd
@@ -5,3 +5,8 @@
#
#IAXMODEM_NICE="-5"
+# Append various options to iaxmodem daemon.
+# run 'iaxmodem -h' for valid options
+# (Note that -P/pidfile is automatically set by the init.d script and can not be set here.)
+#IAXMODEM_OPTS=""
+
diff --git a/main/iaxmodem/iaxmodem.initd b/main/iaxmodem/iaxmodem.initd
index 7f072e6..89e68d0 100644
--- a/main/iaxmodem/iaxmodem.initd
+++ b/main/iaxmodem/iaxmodem.initd
@@ -3,12 +3,10 @@
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/www/viewcvs.gentoo.org/raw_cvs/gentoo-x86/net-misc/iaxmodem/files/iaxmodem.initd,v 1.1 2008/10/14 23:53:39 sbriesen Exp $
-description="IAXmodem"
-description_reload="Reread configuration file and make the appropriate changes"
-extra_started_commands="reload"
command="/usr/sbin/iaxmodem"
-pidfile="/var/run/iaxmodem.pid"
+pidfile="/var/run/${SVCNAME}.pid"
name="iaxmodem"
+child="${SVCNAME#*.}"
depend() {
use asterisk
@@ -17,15 +15,15 @@ depend() {
}
start() {
- ebegin "Starting ${description}"
+ ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --quiet --pidfile "${pidfile}" \
- --env TMPDIR="/tmp" --nice ${IAXMODEM_NICE:-0} --exec "${command}"
+ --env TMPDIR="/tmp" --nice ${IAXMODEM_NICE:-0} --exec "${command}" -- "${IAXMODEM_OPTS} -P ${pidfile}"
eend ${?}
}
stop() {
local childs=""
- ebegin "Stopping ${description}"
+ ebegin "Stopping ${SVCNAME}"
# start-stop-daemon doesn't kill childs reliable, so we
# use a combination of pgrep + start-stop-daemon + kill
[ -s "${pidfile}" ] && childs=$(pgrep -P $(cat "${pidfile}"))
@@ -38,7 +36,7 @@ stop() {
}
reload() {
- ebegin "Reloading ${description} configuration"
+ ebegin "Reloading ${SVCNAME} configuration"
start-stop-daemon --stop --signal HUP --pidfile "${pidfile}"
eend ${?}
}
--
1.8.2
---
Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org
Help: alpine-devel+help@lists.alpinelinux.org
---