X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from mail-ea0-f179.google.com (mail-ea0-f179.google.com [209.85.215.179]) (using TLSv1 with cipher ECDHE-RSA-RC4-SHA (128/128 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id 323AFDC0088 for ; Mon, 6 May 2013 06:53:22 +0000 (UTC) Received: by mail-ea0-f179.google.com with SMTP id h14so1523963eaj.10 for ; Sun, 05 May 2013 23:53:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=x-received:from:to:subject:date:message-id:x-mailer; bh=03sip/km6K5cwznPT1rNoqeAuPjbqHuwM5nKZe92iL0=; b=QMUTvxc3+WuNNCQg4I114ZcVGxeJn+HIaa7Ef9yCLykWckEa2WeRHS9olaTkdHxXOd npdjhuZs8OdZgi05Xyu1GZ/IS1h6N6N8EvKzQ2JaE3UlCv+ydbdIGi/FAJebV1mc6dW5 RSFW9wrreqlocY6YR5s8xfFP96tnFtHnN/6ADpBFTf2wIYxHt8XSHqEdDAGWqsXj5w4X YC6dz8KywUXPbS6tMFueg7NWpUwNCSe4Gb1j8jHZQwbPGmWmm8ecJDVZXecoQZExWOwr KE+KwuH/T25XImlvqM+vTOs/XdSaSImXH9KYmdXnEdelJEML961iU2cL/vUi9Q5l93Kz N1hA== X-Received: by 10.14.205.194 with SMTP id j42mr34018880eeo.41.1367823201804; Sun, 05 May 2013 23:53:21 -0700 (PDT) Received: from mhdev.alpinelinux.org (build.alpinelinux.org. [91.220.88.20]) by mx.google.com with ESMTPSA id f3sm12083153eep.3.2013.05.05.23.53.19 for (version=TLSv1.2 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sun, 05 May 2013 23:53:21 -0700 (PDT) From: Mika Havela To: alpine-devel@lists.alpinelinux.org Subject: [alpine-devel] [PATCH] main/iaxmodem: Create/modify init.d scripts iaxmodem can now be run using '/etc/init.d/iaxmodem start' iaxmodem is also being patched so it can handle '-P ' option. Date: Mon, 6 May 2013 06:52:55 +0000 Message-Id: <1367823175-19588-1-git-send-email-mika.havela@gmail.com> X-Mailer: git-send-email 1.8.2 X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: --- 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 +# Contributor: Mika Havela # Maintainer: Cameron Banta 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 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 ---