aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authordb <db@FreeBSD.org>2014-04-24 03:38:47 +0800
committerdb <db@FreeBSD.org>2014-04-24 03:38:47 +0800
commit4840b97ab46ab7b76caf566cfbf437961695b804 (patch)
tree943561369460cf97592c618c0609fb9d5dac332c
parentd1989804cd4d4e3567ec0aaaa10461ebf48bf419 (diff)
downloadfreebsd-ports-gnome-4840b97ab46ab7b76caf566cfbf437961695b804.tar.gz
freebsd-ports-gnome-4840b97ab46ab7b76caf566cfbf437961695b804.tar.zst
freebsd-ports-gnome-4840b97ab46ab7b76caf566cfbf437961695b804.zip
The SvxLink project is a flexible, general purpose voice services system for
ham radio use. The project also includes Qtel, an EchoLink client GUI application. WWW: http://sourceforge.net/apps/trac/svxlink/ This replaces the earlier and removed comms/qtel port. PR: ports/188452 Submitted by: Stephen Hurd <shurd@sasktel.net>
-rw-r--r--comms/Makefile1
-rw-r--r--comms/svxlink/Makefile108
-rw-r--r--comms/svxlink/distinfo2
-rw-r--r--comms/svxlink/files/patch-Makefile15
-rw-r--r--comms/svxlink/files/patch-async_audio_AsyncAudioDeviceOSS.cpp10
-rw-r--r--comms/svxlink/files/patch-async_core_AsyncConfig.h35
-rw-r--r--comms/svxlink/files/patch-create_config.sh92
-rw-r--r--comms/svxlink/files/patch-doc_man_Makefile.default24
-rw-r--r--comms/svxlink/files/patch-echolib_EchoLinkDirectoryCon.cpp11
-rw-r--r--comms/svxlink/files/patch-echolib_EchoLinkDispatcher.h12
-rw-r--r--comms/svxlink/files/patch-locationinfo_LocationInfo.cpp11
-rw-r--r--comms/svxlink/files/patch-makefile.cfg11
-rw-r--r--comms/svxlink/files/patch-makefile.inc91
-rw-r--r--comms/svxlink/files/patch-misc_common.h13
-rw-r--r--comms/svxlink/files/patch-svxlink_Makefile.default11
-rw-r--r--comms/svxlink/files/patch-svxlink_scripts_Makefile.default17
-rw-r--r--comms/svxlink/files/patch-svxlink_trx_NetTrxMsg.h13
-rw-r--r--comms/svxlink/files/patch-svxlink_trx_NetTrxTcpClient.cpp24
-rw-r--r--comms/svxlink/files/patch-svxlink_trx_SwDtmfDecoder.cpp19
-rw-r--r--comms/svxlink/files/patch-svxlink_trx_ToneDecoder.cpp20
-rw-r--r--comms/svxlink/pkg-descr5
-rw-r--r--comms/svxlink/pkg-plist159
22 files changed, 704 insertions, 0 deletions
diff --git a/comms/Makefile b/comms/Makefile
index 96f164ea6755..5380cf3ec022 100644
--- a/comms/Makefile
+++ b/comms/Makefile
@@ -141,6 +141,7 @@
SUBDIR += spandsp-devel
SUBDIR += splat
SUBDIR += sredird
+ SUBDIR += svxlink
SUBDIR += syncterm
SUBDIR += tcpser
SUBDIR += thebridge
diff --git a/comms/svxlink/Makefile b/comms/svxlink/Makefile
new file mode 100644
index 000000000000..d142297cb99b
--- /dev/null
+++ b/comms/svxlink/Makefile
@@ -0,0 +1,108 @@
+# Created by: shurd
+# $FreeBSD$
+
+PORTNAME= svxlink
+PORTVERSION= 13.12
+CATEGORIES= comms hamradio
+MASTER_SITES= SF/svxlink/svxlink/${PORTVERSION}
+
+MAINTAINER= shurd@sasktel.net
+COMMENT= General purpose ham radio voice services and Qtel Echolink client
+
+LICENSE= GPLv2
+
+LIB_DEPENDS= libgsm.so:${PORTSDIR}/audio/gsm \
+ libspeex.so:${PORTSDIR}/audio/speex \
+ libgpg-error.so:${PORTSDIR}/security/libgpg-error \
+ libgcrypt.so:${PORTSDIR}/security/libgcrypt \
+ libsigc-2.0.so:${PORTSDIR}/devel/libsigc++20 \
+ libasound.so:${PORTSDIR}/audio/alsa-lib \
+ libpopt.so:${PORTSDIR}/devel/popt
+BUILD_DEPENDS= pkg-config:${PORTSDIR}/devel/pkgconf \
+ ${LOCALBASE}/include/linux/input.h:${PORTSDIR}/multimedia/v4l_compat
+
+USES= gmake tcl
+USE_LDCONFIG= yes
+
+MAKE_FLAGS= LIB_INSTALL_DIR=${LOCALBASE}/lib \
+ INC_INSTALL_DIR=${LOCALBASE}/include/svxlink \
+ BIN_INSTALL_DIR=${LOCALBASE}/bin \
+ SBIN_INSTALL_DIR=${LOCALBASE}/sbin \
+ PLUGIN_INSTALL_DIR=${LOCALBASE}/lib/svxlink \
+ TCL_LIBDIR=${TCL_LIBDIR} \
+ ADD_INCPATH=-I${LOCALBASE}/include
+
+OPTIONS_DEFINE= QTEL
+QTEL_DESC= Build Qtel EchoLink client
+OPTIONS_DEFAULT=QTEL
+OPTIONS_SUB= yes
+
+.include <bsd.port.options.mk>
+
+.if ${PORT_OPTIONS:MQTEL}
+USE_QT4= corelib gui network moc_build linguist_build rcc_build uic_build
+MAKE_ENV+= MOC=${MOC} \
+ RCC=${RCC} \
+ UIC=${UIC} \
+ LRELEASE=${LRELEASE} \
+ QT_LIBDIR=${QT_LIBDIR} \
+ QT_INCDIR=${QT_INCDIR} \
+ QT_PREFIX=${QT_PREFIX}
+.else
+MAKE_ENV+= WITHOUT_QT=yes
+.endif
+
+post-patch:
+ @${GREP} -lr /usr/share/ ${WRKSRC} | ${XARGS} ${REINPLACE_CMD} \
+ -e 's|/usr/share/man|${MANPREFIX}/man|' \
+ -e 's|/usr/share/doc/svxlink|${DOCSDIR}|' \
+ -e 's|/usr/share/svxlink|${DATADIR}|' \
+ -e 's|/usr/share/qtel|${PREFIX}/share/qtel|' \
+ -e 's|/usr/share/applications|${DESKTOPDIR}|' \
+ -e 's|/usr/share/icons|${PREFIX}/share/icons|'
+ @${GREP} -lr /dev/ttyS0 ${WRKSRC} | ${GREP} -v .bak | ${GREP} -v .orig | ${XARGS} \
+ ${REINPLACE_CMD} -e 's|/dev/ttyS0|/dev/ttyu0|'
+ @${REINPLACE_CMD} -e 's|/usr/bin/|${PREFIX}/bin/|' ${WRKSRC}/qtel/qtel.desktop
+ @${REINPLACE_CMD} -e 's|/usr/lib|${PREFIX}/lib|' \
+ ${WRKSRC}/doc/man/svxlink.conf.5 \
+ ${WRKSRC}/svxlink/svxlink/svxlink.conf
+ @${GREP} -lr /etc/ ${WRKSRC} | ${GREP} -v .bak | ${GREP} -v .orig | ${XARGS} \
+ ${REINPLACE_CMD} -e 's|/etc/|${PREFIX}/etc/|'
+ @${GREP} -lr 'echo -e' ${WRKSRC} | ${GREP} -v .bak | ${GREP} -v .orig | ${XARGS} \
+ ${REINPLACE_CMD} \
+ -e 's|echo -en|echo -n|' \
+ -e 's|echo -e|echo |'
+ @${FIND} ${WRKSRC} -name 'Makefile*' | ${GREP} -v .bak | ${GREP} -v .orig | ${XARGS} \
+ ${REINPLACE_CMD} -e 's|,root,root|,root,wheel|'
+ @${GREP} -lr alsa:default ${WRKSRC} | ${GREP} -v .bak | ${GREP} -v .orig | ${XARGS} \
+ ${REINPLACE_CMD} -e 's|alsa:default|oss:/dev/dsp|'
+ @${GREP} -lr alsa:plughw:0 ${WRKSRC} | ${GREP} -v .bak | ${GREP} -v .orig | ${XARGS} \
+ ${REINPLACE_CMD} -e 's|alsa:plughw:0|oss:/dev/dsp|'
+
+post-stage:
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/.procmailrc \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/.procmailrc.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/TclVoiceMail.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/TclVoiceMail.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/remotetrx.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/remotetrx.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleDtmfRepeater.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleDtmfRepeater.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleEchoLink.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleEchoLink.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleHelp.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleHelp.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleMetarInfo.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleMetarInfo.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleParrot.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleParrot.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModulePropagationMonitor.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModulePropagationMonitor.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleSelCallEnc.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleSelCallEnc.conf.sample
+ ${MV} ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleTclVoiceMail.conf \
+ ${STAGEDIR}${PREFIX}/etc/svxlink/svxlink.d/ModuleTclVoiceMail.conf.sample
+
+.include <bsd.port.mk>
diff --git a/comms/svxlink/distinfo b/comms/svxlink/distinfo
new file mode 100644
index 000000000000..fc308cd5424a
--- /dev/null
+++ b/comms/svxlink/distinfo
@@ -0,0 +1,2 @@
+SHA256 (svxlink-13.12.tar.gz) = c2a991a35f3386027e33f35c53c9d383231bc8e3184c8e2fef871e4f68622245
+SIZE (svxlink-13.12.tar.gz) = 1168697
diff --git a/comms/svxlink/files/patch-Makefile b/comms/svxlink/files/patch-Makefile
new file mode 100644
index 000000000000..75d34dcbd8b2
--- /dev/null
+++ b/comms/svxlink/files/patch-Makefile
@@ -0,0 +1,15 @@
+--- Makefile.orig 2013-03-09 00:18:15.000000000 -0800
++++ Makefile 2014-04-10 04:56:53.000000000 -0700
+@@ -67,10 +67,10 @@
+ ARCHIVENAME = $$(basename $$(pwd)).tgz
+
+ # Used to get bold text in echo statements
+-BOLD = "\033[1m"
++#BOLD = "\033[1m"
+
+ # End bold text
+-NBOLD = "\033[0m"
++#NBOLD = "\033[0m"
+
+ # Create softlink
+ MKSOFT = ln -s
diff --git a/comms/svxlink/files/patch-async_audio_AsyncAudioDeviceOSS.cpp b/comms/svxlink/files/patch-async_audio_AsyncAudioDeviceOSS.cpp
new file mode 100644
index 000000000000..66729cd0b944
--- /dev/null
+++ b/comms/svxlink/files/patch-async_audio_AsyncAudioDeviceOSS.cpp
@@ -0,0 +1,10 @@
+--- async/audio/AsyncAudioDeviceOSS.cpp.orig 2014-04-09 22:38:17.000000000 -0700
++++ async/audio/AsyncAudioDeviceOSS.cpp 2014-04-09 22:38:29.000000000 -0700
+@@ -41,6 +41,7 @@
+ #include <sys/soundcard.h>
+ #include <sys/ioctl.h>
+ #include <unistd.h>
++#include <stdlib.h>
+
+ #include <cassert>
+ #include <cstring>
diff --git a/comms/svxlink/files/patch-async_core_AsyncConfig.h b/comms/svxlink/files/patch-async_core_AsyncConfig.h
new file mode 100644
index 000000000000..30174919c00b
--- /dev/null
+++ b/comms/svxlink/files/patch-async_core_AsyncConfig.h
@@ -0,0 +1,35 @@
+--- async/core/AsyncConfig.h.orig 2013-05-25 13:14:51.000000000 -0700
++++ async/core/AsyncConfig.h 2014-04-20 22:49:04.000000000 -0700
+@@ -212,7 +212,9 @@
+ }
+ std::stringstream ssval(str_val);
+ Rsp tmp;
+- ssval >> tmp >> std::ws;
++ ssval >> tmp;
++ if(!ssval.eof())
++ ssval >> std::ws;
+ if (ssval.fail() || !ssval.eof())
+ {
+ return false;
+@@ -261,7 +263,9 @@
+ while (!ssval.eof())
+ {
+ Value tmp;
+- ssval >> tmp >> std::ws;
++ ssval >> tmp;
++ if(!ssval.eof())
++ ssval >> std::ws;
+ if (ssval.fail())
+ {
+ return false;
+@@ -304,7 +308,9 @@
+ }
+ std::stringstream ssval(str_val);
+ Rsp tmp;
+- ssval >> tmp >> std::ws;
++ ssval >> tmp;
++ if(!ssval.eof())
++ ssval >> std::ws;
+ if (ssval.fail() || !ssval.eof() || (tmp < min) || (tmp > max))
+ {
+ return false;
diff --git a/comms/svxlink/files/patch-create_config.sh b/comms/svxlink/files/patch-create_config.sh
new file mode 100644
index 000000000000..6a494ab20f3f
--- /dev/null
+++ b/comms/svxlink/files/patch-create_config.sh
@@ -0,0 +1,92 @@
+--- create_config.sh.orig 2013-10-13 02:39:16.000000000 -0700
++++ create_config.sh 2014-04-11 12:04:57.000000000 -0700
+@@ -61,43 +61,45 @@
+ fi
+
+ # Checking for QT
+-info "--- Checking for QT..."
+-if which pkg-config > /dev/null 2>&1; then
+- if pkg-config QtCore; then
+- QT_MODULES="QtCore QtGui QtNetwork"
+- info "yes (pkg-config QtCore)\n"
+- output "QT_LIBPATH=$(pkg-config $QT_MODULES --libs-only-L)"
+- output "QT_LIBS=$(pkg-config $QT_MODULES --libs-only-l)"
+- output "QT_INCPATH=$(pkg-config $QT_MODULES --cflags-only-I)"
+- output "QT_CFLAGS=$(pkg-config $QT_MODULES --cflags-only-other)"
+- QT_PREFIX=$(pkg-config QtCore --variable=prefix)
+- QT_BIN="${QT_PREFIX}/bin"
+- output "QT_BIN=${QT_BIN}"
+- QT_MOC=$(pkg-config QtCore --variable=moc_location)
+- if [ ! -x "$QT_MOC" ]; then
+- QT_MOC="$QT_BIN/moc"
+- fi
+- QT_UIC=$(pkg-config QtCore --variable=uic_location)
+- if [ ! -x "$QT_UIC" ]; then
+- QT_UIC="$QT_BIN/uic"
+- fi
+- QT_RCC=$(pkg-config QtCore --variable=rcc_location)
+- if [ ! -x "$QT_RCC" ]; then
+- QT_RCC="$QT_BIN/rcc"
++if [ "$WITHOUT_QT" != "yes" ]; then
++ info "--- Checking for QT..."
++ if which pkg-config > /dev/null 2>&1; then
++ if pkg-config QtCore; then
++ QT_MODULES="QtCore QtGui QtNetwork"
++ info "yes (pkg-config QtCore)\n"
++ output "QT_LIBPATH=$(pkg-config $QT_MODULES --libs-only-L)"
++ output "QT_LIBS=$(pkg-config $QT_MODULES --libs-only-l)"
++ output "QT_INCPATH=$(pkg-config $QT_MODULES --cflags-only-I)"
++ output "QT_CFLAGS=$(pkg-config $QT_MODULES --cflags-only-other)"
++ #QT_PREFIX=$(pkg-config QtCore --variable=prefix)
++ QT_BIN="${QT_PREFIX}/bin"
++ output "QT_BIN=${QT_BIN}"
++ QT_MOC=$(pkg-config QtCore --variable=moc_location)
++ if [ ! -x "$QT_MOC" ]; then
++ QT_MOC="$QT_BIN/moc"
++ fi
++ QT_UIC=$(pkg-config QtCore --variable=uic_location)
++ if [ ! -x "$QT_UIC" ]; then
++ QT_UIC="$QT_BIN/uic"
++ fi
++ QT_RCC=$(pkg-config QtCore --variable=rcc_location)
++ if [ ! -x "$QT_RCC" ]; then
++ QT_RCC="$QT_BIN/rcc"
++ fi
++ QT_LRELEASE=$(pkg-config QtCore --variable=lrelease_location)
++ if [ ! -x "$QT_LRELEASE" ]; then
++ QT_LRELEASE="$QT_BIN/lrelease"
++ fi
++ output "QT_MOC=$MOC"
++ output "QT_UIC=$UIC"
++ output "QT_RCC=$RCC"
++ output "QT_LRELEASE=$LRELEASE"
++ else
++ info "no (optional)\n"
+ fi
+- QT_LRELEASE=$(pkg-config QtCore --variable=lrelease_location)
+- if [ ! -x "$QT_LRELEASE" ]; then
+- QT_LRELEASE="$QT_BIN/lrelease"
+- fi
+- output "QT_MOC=${QT_MOC}"
+- output "QT_UIC=${QT_UIC}"
+- output "QT_RCC=${QT_RCC}"
+- output "QT_LRELEASE=${QT_LRELEASE}"
+ else
+ info "no (optional)\n"
+ fi
+-else
+- info "no (optional)\n"
+ fi
+
+ # Checking for libsigc++
+@@ -120,9 +122,7 @@
+
+ # Checking for tcl development library
+ info "--- Checking for TCL development library..."
+-tclConfig=$(ls /usr/lib/tclConfig.sh /usr/lib/tcl8.*/tclConfig.sh \
+- /usr/lib64/tclConfig.sh /usr/lib64/tcl8.*/tclConfig.sh \
+- 2>/dev/null | head -1)
++tclConfig=$(ls ${TCL_LIBDIR}/tclConfig.sh 2>/dev/null | head -1)
+ if [ -n "$tclConfig" -a -r "$tclConfig" ]; then
+ . $tclConfig
+ info "${TCL_VERSION}\n"
diff --git a/comms/svxlink/files/patch-doc_man_Makefile.default b/comms/svxlink/files/patch-doc_man_Makefile.default
new file mode 100644
index 000000000000..60d454488024
--- /dev/null
+++ b/comms/svxlink/files/patch-doc_man_Makefile.default
@@ -0,0 +1,24 @@
+--- doc/man/Makefile.default.orig 2011-05-15 01:59:35.000000000 -0700
++++ doc/man/Makefile.default 2014-04-11 12:08:08.000000000 -0700
+@@ -11,6 +11,7 @@
+
+ # Include version information
+ -include $(ROOT)/versions
++-include $(ROOT)/.config
+
+
+ ###############################################################################
+@@ -150,8 +151,11 @@
+ ModuleTclVoiceMail.conf.5.gz ModuleDtmfRepeater.conf.5.gz \
+ ModulePropagationMonitor.conf.5.gz \
+ ModuleSelCallEnc.conf.5.gz \
+- remotetrx.1.gz remotetrx.conf.5.gz siglevdetcal.1.gz \
+- qtel.1.gz
++ remotetrx.1.gz remotetrx.conf.5.gz siglevdetcal.1.gz
++
++ifdef QT_BIN
++PRE_TARGETS +=qtel.1.gz
++endif
+
+ #POST_TARGETS =
+
diff --git a/comms/svxlink/files/patch-echolib_EchoLinkDirectoryCon.cpp b/comms/svxlink/files/patch-echolib_EchoLinkDirectoryCon.cpp
new file mode 100644
index 000000000000..56377ded0436
--- /dev/null
+++ b/comms/svxlink/files/patch-echolib_EchoLinkDirectoryCon.cpp
@@ -0,0 +1,11 @@
+--- echolib/EchoLinkDirectoryCon.cpp.orig 2014-04-09 23:13:08.000000000 -0700
++++ echolib/EchoLinkDirectoryCon.cpp 2014-04-09 23:13:15.000000000 -0700
+@@ -204,7 +204,7 @@
+ }
+ else
+ {
+- errno = ECOMM;
++ errno = EIO;
+ return -1;
+ }
+ }
diff --git a/comms/svxlink/files/patch-echolib_EchoLinkDispatcher.h b/comms/svxlink/files/patch-echolib_EchoLinkDispatcher.h
new file mode 100644
index 000000000000..626e95fc6964
--- /dev/null
+++ b/comms/svxlink/files/patch-echolib_EchoLinkDispatcher.h
@@ -0,0 +1,12 @@
+--- echolib/EchoLinkDispatcher.h.orig 2014-04-10 02:13:14.000000000 -0700
++++ echolib/EchoLinkDispatcher.h 2014-04-10 02:22:41.000000000 -0700
+@@ -215,7 +215,8 @@
+ return a1 < a2;
+ }
+ };
+- typedef std::map<Async::IpAddress, ConData, ipaddr_lt> ConMap;
++ //typedef std::map<Async::IpAddress, ConData, ipaddr_lt> ConMap;
++ typedef std::map<Async::IpAddress, ConData> ConMap;
+
+ static const int DEFAULT_PORT_BASE = 5198;
+
diff --git a/comms/svxlink/files/patch-locationinfo_LocationInfo.cpp b/comms/svxlink/files/patch-locationinfo_LocationInfo.cpp
new file mode 100644
index 000000000000..e7d7bfc8ec98
--- /dev/null
+++ b/comms/svxlink/files/patch-locationinfo_LocationInfo.cpp
@@ -0,0 +1,11 @@
+--- locationinfo/LocationInfo.cpp.orig 2014-04-09 23:26:23.000000000 -0700
++++ locationinfo/LocationInfo.cpp 2014-04-09 23:26:32.000000000 -0700
+@@ -480,7 +480,7 @@
+ }
+
+ double tmp = sqrt(2.0 * loc_cfg.height * sqrt((loc_cfg.power / 10.0) *
+- pow10(loc_cfg.gain / 10.0) / 2)) * range_factor;
++ pow(10, loc_cfg.gain / 10.0) / 2)) * range_factor;
+
+ return lrintf(tmp);
+
diff --git a/comms/svxlink/files/patch-makefile.cfg b/comms/svxlink/files/patch-makefile.cfg
new file mode 100644
index 000000000000..9eaca18d4340
--- /dev/null
+++ b/comms/svxlink/files/patch-makefile.cfg
@@ -0,0 +1,11 @@
+--- makefile.cfg.orig 2013-03-24 02:49:05.000000000 -0700
++++ makefile.cfg 2014-04-10 05:10:07.000000000 -0700
+@@ -60,7 +60,7 @@
+ endif
+
+ # Set default include path
+-INCPATH =
++INCPATH = ${ADD_INCPATH}
+
+ # CFLAGS (for CC) and CXXFLAGS (for CXX)
+ CFLAGS +=
diff --git a/comms/svxlink/files/patch-makefile.inc b/comms/svxlink/files/patch-makefile.inc
new file mode 100644
index 000000000000..3e8e3af40707
--- /dev/null
+++ b/comms/svxlink/files/patch-makefile.inc
@@ -0,0 +1,91 @@
+--- makefile.inc.orig 2014-04-10 04:44:46.000000000 -0700
++++ makefile.inc 2014-04-10 04:45:04.000000000 -0700
+@@ -160,7 +160,7 @@
+ else \
+ $(ECHO) --- Installing $(BOLD)$$file$(NBOLD) in \
+ $(BOLD)$${target_dir}$(NBOLD)...; \
+- cp -pdf $$file $${target_dir}; \
++ cp -pf $$file $${target_dir}; \
+ [ -n "$$perm" -a "$$perm" != '-' ] \
+ && chmod $$perm $${target_dir}/`basename $$file`; \
+ [ -z "$$NO_CHOWN" -a -n "$$owner" -a "$$owner" != '-' ] \
+@@ -245,7 +245,7 @@
+ target_dir=$${dir}; \
+ fi; \
+ if [ "$@" = "install-extras" ]; then \
+- $(MKDIR) $${target_dir} -p; \
++ $(MKDIR) -p $${target_dir}; \
+ [ -n "$$perm" -a "$$perm" != '-' ] \
+ && chmod $$perm $${target_dir}; \
+ [ -z "$$NO_CHOWN" -a -n "$$owner" -a "$$owner" != '-' ] \
+@@ -311,10 +311,10 @@
+ }; remove_file
+
+ # Some useful printing macros
+-BOLD = "\033[1m"
+-NBOLD = "\033[0m"
++#BOLD = "\033[1m"
++#NBOLD = "\033[0m"
+
+ #ECHO = /bin/echo -e
+ BECHO = $(ECHO) $(BOLD)txt $(NBOLD)
+
+ # Compiler
+@@ -408,7 +408,7 @@
+ ifdef PROGS
+ $(PROGS): $(notdir $(PROGS:%=%.o)) $(PRGOBJS) $(LIBDEP)
+ if [ -n "$(BIN)" -a ! -d "$(BIN)" ]; then \
+- $(MKDIR) $(BIN) -p; \
++ $(MKDIR) -p $(BIN); \
+ fi
+ BASENAME=`basename $@`_version; \
+ if [ -r $${BASENAME}.h -a -r $${BASENAME}.c ]; then \
+@@ -429,7 +429,7 @@
+ ifdef CPPPROGS
+ $(CPPPROGS): $(notdir $(CPPPROGS:%=%.o)) $(PRGOBJS) $(LIBDEP)
+ if [ -n "$(BIN)" -a ! -d "$(BIN)" ]; then \
+- $(MKDIR) $(BIN) -p; \
++ $(MKDIR) -p $(BIN); \
+ fi
+ BASENAME=`basename $@`_version; \
+ if [ -r $${BASENAME}.h -a -r $${BASENAME}.c ]; then \
+@@ -522,7 +522,7 @@
+ $(EXPINC:%=$(INC)/%):
+ $(ECHO) --- Creating $(BOLD)$@$(NBOLD)...
+ if [ -n "$(INC)" -a ! -d "$(INC)" ]; then \
+- $(MKDIR) $(INC) -p; \
++ $(MKDIR) -p $(INC); \
+ fi
+ $(RM) $@
+ ln -s $$($(REVPATH) $$(dirname $@))/$$(basename $@) $@
+@@ -535,7 +535,7 @@
+ $(RM) $(LIBFILE)
+ $(ECHO) --- Creating archive $(BOLD)$@$(NBOLD)...
+ if [ -n "$(LIB)" -a ! -d "$(LIB)" ]; then \
+- $(MKDIR) $(LIB) -p; \
++ $(MKDIR) -p $(LIB); \
+ fi
+ $(AR) cq $(LIBFILE) $(LIBOBJS)
+ if [ -n "$(STATIC_LIBS)" ]; then \
+@@ -801,12 +801,12 @@
+ endif
+
+ $(ROOT)/.config: $(ROOT)/create_config.sh
+ echo -e --- Creating $(BOLD)$@$(NBOLD)...
+ $(ROOT)/create_config.sh $@
+
+ .config:
+ if [ -x ./create_config ]; then \
+ echo -e --- Creating $(BOLD)$@$(NBOLD)...; \
+ rm -f $@; \
+ ./create_config $@; \
+ echo "MAKEFILE_LOCAL_CONFIG_INCLUDED = 1" >> $@; \
+@@ -815,7 +815,7 @@
+ # Generate version files
+ version/%.h: $(ROOT)/versions
+ if [ ! -d version ]; then \
+- $(MKDIR) version -p; \
++ $(MKDIR) -p version; \
+ fi; \
+ . $(ROOT)/versions; \
+ if [ -n "$${$*}" ]; then \
diff --git a/comms/svxlink/files/patch-misc_common.h b/comms/svxlink/files/patch-misc_common.h
new file mode 100644
index 000000000000..9a219170e6ff
--- /dev/null
+++ b/comms/svxlink/files/patch-misc_common.h
@@ -0,0 +1,13 @@
+--- misc/common.h.orig 2013-09-14 03:27:37.000000000 -0700
++++ misc/common.h 2014-04-20 22:45:31.000000000 -0700
+@@ -119,7 +119,9 @@
+ static bool setValueFromString(ValueType &val, const std::string &str)
+ {
+ std::istringstream ss(str);
+- ss >> std::noskipws >> val >> std::ws;
++ ss >> std::noskipws >> val;
++ if(!ss.eof())
++ ss >> std::ws;
+ return !ss.fail() && ss.eof();
+ } /* setValueFromString */
+
diff --git a/comms/svxlink/files/patch-svxlink_Makefile.default b/comms/svxlink/files/patch-svxlink_Makefile.default
new file mode 100644
index 000000000000..2697c4c2a2f9
--- /dev/null
+++ b/comms/svxlink/files/patch-svxlink_Makefile.default
@@ -0,0 +1,11 @@
+--- svxlink/svxlink/Makefile.default.orig 2014-04-09 23:54:07.000000000 -0700
++++ svxlink/svxlink/Makefile.default 2014-04-09 23:54:12.000000000 -0700
+@@ -34,7 +34,7 @@
+ PROJLIBS = -ltrx -llocationinfo -lasynccpp -lasyncaudio -lasynccore
+
+ # Libraries external to the project
+-LIBS = -ldl -lpopt -lgsm $(TCL_LIBS) $(GCRYPT_LIBS) $(SIGC_LIBS)
++LIBS = -lpopt -lgsm $(TCL_LIBS) $(GCRYPT_LIBS) $(SIGC_LIBS)
+
+ # Specify Qt header files here that you want to run the
+ # Qt Meta Object Compiler on (for programs).
diff --git a/comms/svxlink/files/patch-svxlink_scripts_Makefile.default b/comms/svxlink/files/patch-svxlink_scripts_Makefile.default
new file mode 100644
index 000000000000..52a460771fbe
--- /dev/null
+++ b/comms/svxlink/files/patch-svxlink_scripts_Makefile.default
@@ -0,0 +1,17 @@
+--- svxlink/scripts/Makefile.default.orig 2010-12-04 06:27:53.000000000 -0800
++++ svxlink/scripts/Makefile.default 2014-04-10 01:39:24.000000000 -0700
+@@ -217,14 +217,6 @@
+ # Additional files to install
+ install-extras uninstall-extras rpm-extras:
+ $(DIRSPEC) /var/spool/svxlink[755,svxlink,daemon]
+- $(FILESPEC) etc/logrotate.d/svxlink[644,root,root,config] /etc/logrotate.d
+- $(FILESPEC) etc/logrotate.d/remotetrx[644,root,root,config] /etc/logrotate.d
+- $(FILESPEC) etc/init.d/svxlink[755,root,root] /etc/init.d
+- $(FILESPEC) etc/sysconfig/svxlink[755,root,root,config] /etc/sysconfig
+- $(FILESPEC) etc/10-svxlink.rules[644,root,root,config] /etc/udev/rules.d
+- $(FILESPEC) etc/90-svxlink.perms[644,root,root,config] /etc/security/console.perms.d
+- $(FILESPEC) etc/init.d/remotetrx[755,root,root] /etc/init.d
+- $(FILESPEC) etc/sysconfig/remotetrx[755,root,root,config] /etc/sysconfig
+
+
+ #
diff --git a/comms/svxlink/files/patch-svxlink_trx_NetTrxMsg.h b/comms/svxlink/files/patch-svxlink_trx_NetTrxMsg.h
new file mode 100644
index 000000000000..49d545e85781
--- /dev/null
+++ b/comms/svxlink/files/patch-svxlink_trx_NetTrxMsg.h
@@ -0,0 +1,13 @@
+--- svxlink/trx/NetTrxMsg.h.orig 2014-04-09 23:51:14.000000000 -0700
++++ svxlink/trx/NetTrxMsg.h 2014-04-09 23:51:53.000000000 -0700
+@@ -176,8 +176,8 @@
+ MsgProtoVer(void)
+ : Msg(TYPE, sizeof(MsgProtoVer)), m_major(MAJOR),
+ m_minor(MINOR) {}
+- uint16_t major(void) const { return m_major; }
+- uint16_t minor(void) const { return m_minor; }
++ uint16_t FBSD_major(void) const { return m_major; }
++ uint16_t FBSD_minor(void) const { return m_minor; }
+
+ private:
+ uint16_t m_major;
diff --git a/comms/svxlink/files/patch-svxlink_trx_NetTrxTcpClient.cpp b/comms/svxlink/files/patch-svxlink_trx_NetTrxTcpClient.cpp
new file mode 100644
index 000000000000..028665a4508e
--- /dev/null
+++ b/comms/svxlink/files/patch-svxlink_trx_NetTrxTcpClient.cpp
@@ -0,0 +1,24 @@
+--- svxlink/trx/NetTrxTcpClient.cpp.orig 2014-04-09 23:51:30.000000000 -0700
++++ svxlink/trx/NetTrxTcpClient.cpp 2014-04-09 23:52:13.000000000 -0700
+@@ -328,8 +328,8 @@
+ {
+ MsgProtoVer *ver_msg = reinterpret_cast<MsgProtoVer *>(msg);
+ if ((msg->size() != sizeof(MsgProtoVer)) ||
+- (ver_msg->major() != MsgProtoVer::MAJOR) ||
+- (ver_msg->minor() != MsgProtoVer::MINOR))
++ (ver_msg->FBSD_major() != MsgProtoVer::MAJOR) ||
++ (ver_msg->FBSD_minor() != MsgProtoVer::MINOR))
+ {
+ cerr << "*** ERROR: Incompatible protocol version. Disconnecting from "
+ << remoteHost().toString() << ":" << remotePort() << "...\n";
+@@ -337,8 +337,8 @@
+ return;
+ }
+ cout << remoteHost().toString() << ":" << remotePort()
+- << ": RemoteTrx protocol version " << ver_msg->major() << "."
+- << ver_msg->minor() << endl;
++ << ": RemoteTrx protocol version " << ver_msg->FBSD_major() << "."
++ << ver_msg->FBSD_minor() << endl;
+ state = STATE_AUTH_WAIT;
+ }
+ else
diff --git a/comms/svxlink/files/patch-svxlink_trx_SwDtmfDecoder.cpp b/comms/svxlink/files/patch-svxlink_trx_SwDtmfDecoder.cpp
new file mode 100644
index 000000000000..e68b3eccc25c
--- /dev/null
+++ b/comms/svxlink/files/patch-svxlink_trx_SwDtmfDecoder.cpp
@@ -0,0 +1,19 @@
+--- svxlink/trx/SwDtmfDecoder.cpp.orig 2014-04-09 23:44:56.000000000 -0700
++++ svxlink/trx/SwDtmfDecoder.cpp 2014-04-09 23:47:28.000000000 -0700
+@@ -175,14 +175,14 @@
+ {
+ int cfg_fwd_twist = atoi(value.c_str());
+ if (cfg_fwd_twist >= 0)
+- normal_twist = exp10f(cfg_fwd_twist/10.0f);
++ normal_twist = powf(10,cfg_fwd_twist/10.0f);
+ }
+
+ if (cfg().getValue(name(), "DTMF_MAX_REV_TWIST", value))
+ {
+ int cfg_rev_twist = atoi(value.c_str());
+ if (cfg_rev_twist >= 0)
+- reverse_twist = exp10f(cfg_rev_twist/10.0f);
++ reverse_twist = powf(10,cfg_rev_twist/10.0f);
+ }
+
+ return true;
diff --git a/comms/svxlink/files/patch-svxlink_trx_ToneDecoder.cpp b/comms/svxlink/files/patch-svxlink_trx_ToneDecoder.cpp
new file mode 100644
index 000000000000..9bc3152a7da5
--- /dev/null
+++ b/comms/svxlink/files/patch-svxlink_trx_ToneDecoder.cpp
@@ -0,0 +1,20 @@
+--- svxlink/trx/ToneDetector.cpp.orig 2014-04-09 23:45:04.000000000 -0700
++++ svxlink/trx/ToneDetector.cpp 2014-04-09 23:47:33.000000000 -0700
+@@ -335,7 +335,7 @@
+ {
+ if (thresh > 0.0f)
+ {
+- det_par->peak_thresh = exp10f(thresh/10.0f);
++ det_par->peak_thresh = powf(10, thresh/10.0f);
+ }
+ else
+ {
+@@ -348,7 +348,7 @@
+ {
+ if (thresh > 0.0f)
+ {
+- undet_par->peak_thresh = exp10f(thresh/10.0f);
++ undet_par->peak_thresh = powf(10, thresh/10.0f);
+ }
+ else
+ {
diff --git a/comms/svxlink/pkg-descr b/comms/svxlink/pkg-descr
new file mode 100644
index 000000000000..69df7e1cb893
--- /dev/null
+++ b/comms/svxlink/pkg-descr
@@ -0,0 +1,5 @@
+The SvxLink project is a flexible, general purpose voice services system for
+ham radio use. The project also includes Qtel, an EchoLink client GUI
+application.
+
+WWW: http://sourceforge.net/apps/trac/svxlink/
diff --git a/comms/svxlink/pkg-plist b/comms/svxlink/pkg-plist
new file mode 100644
index 000000000000..d85ca7fd056f
--- /dev/null
+++ b/comms/svxlink/pkg-plist
@@ -0,0 +1,159 @@
+bin/svxlink
+bin/remotetrx
+bin/siglevdetcal
+%%QTEL%%bin/qtel
+@sample etc/svxlink/svxlink.d/ModuleHelp.conf.sample
+@sample etc/svxlink/svxlink.d/ModuleParrot.conf.sample
+@sample etc/svxlink/svxlink.d/ModuleEchoLink.conf.sample
+@sample etc/svxlink/svxlink.d/ModuleTclVoiceMail.conf.sample
+@sample etc/svxlink/svxlink.d/ModuleDtmfRepeater.conf.sample
+@sample etc/svxlink/svxlink.d/ModuleMetarInfo.conf.sample
+@sample etc/svxlink/svxlink.d/ModulePropagationMonitor.conf.sample
+@sample etc/svxlink/svxlink.d/ModuleSelCallEnc.conf.sample
+@sample etc/svxlink/svxlink.conf.sample
+@sample etc/svxlink/TclVoiceMail.conf.sample
+@sample etc/svxlink/.procmailrc.sample
+@sample etc/svxlink/remotetrx.conf.sample
+include/svxlink/AsyncApplication.h
+include/svxlink/AsyncFdWatch.h
+include/svxlink/AsyncTimer.h
+include/svxlink/AsyncIpAddress.h
+include/svxlink/AsyncTcpClient.h
+include/svxlink/AsyncDnsLookup.h
+include/svxlink/AsyncUdpSocket.h
+include/svxlink/AsyncTcpServer.h
+include/svxlink/AsyncTcpConnection.h
+include/svxlink/AsyncConfig.h
+include/svxlink/AsyncSerial.h
+include/svxlink/AsyncFileReader.h
+include/svxlink/AsyncAtTimer.h
+include/svxlink/AsyncExec.h
+include/svxlink/AsyncCppApplication.h
+include/svxlink/AsyncAudioSource.h
+include/svxlink/AsyncAudioSink.h
+include/svxlink/AsyncAudioProcessor.h
+include/svxlink/AsyncAudioClipper.h
+include/svxlink/AsyncAudioCompressor.h
+include/svxlink/AsyncAudioFilter.h
+include/svxlink/AsyncSigCAudioSink.h
+include/svxlink/AsyncSigCAudioSource.h
+include/svxlink/AsyncAudioIO.h
+include/svxlink/AsyncAudioSplitter.h
+include/svxlink/AsyncAudioDelayLine.h
+include/svxlink/AsyncAudioValve.h
+include/svxlink/AsyncAudioAmp.h
+include/svxlink/AsyncAudioSelector.h
+include/svxlink/AsyncAudioPassthrough.h
+include/svxlink/AsyncAudioMixer.h
+include/svxlink/AsyncAudioFifo.h
+include/svxlink/AsyncAudioDebugger.h
+include/svxlink/AsyncAudioPacer.h
+include/svxlink/AsyncAudioReader.h
+include/svxlink/AsyncAudioDecimator.h
+include/svxlink/AsyncAudioInterpolator.h
+include/svxlink/AsyncAudioStreamStateDetector.h
+include/svxlink/AsyncAudioEncoder.h
+include/svxlink/AsyncAudioDecoder.h
+include/svxlink/AsyncAudioRecorder.h
+include/svxlink/AsyncAudioJitterFifo.h
+include/svxlink/AsyncAudioDeviceFactory.h
+include/svxlink/AsyncAudioDevice.h
+%%QTEL%%include/svxlink/AsyncQtApplication.h
+include/svxlink/common.h
+include/svxlink/EchoLinkDirectory.h
+include/svxlink/EchoLinkDispatcher.h
+include/svxlink/EchoLinkQso.h
+include/svxlink/EchoLinkStationData.h
+include/svxlink/EchoLinkProxy.h
+lib/libasynccore.a
+lib/libasynccore-1.2.0.so
+lib/libasynccore.so.1.2
+lib/libasynccore.so
+lib/libasynccpp.a
+lib/libasynccpp-1.2.0.so
+lib/libasynccpp.so.1.2
+lib/libasynccpp.so
+lib/libasyncaudio.a
+lib/libasyncaudio-1.2.0.so
+lib/libasyncaudio.so.1.2
+lib/libasyncaudio.so
+%%QTEL%%lib/libasyncqt.a
+%%QTEL%%lib/libasyncqt-1.2.0.so
+%%QTEL%%lib/libasyncqt.so.1.2
+%%QTEL%%lib/libasyncqt.so
+lib/libecholib.a
+lib/svxlink/ModuleHelp.so
+lib/svxlink/ModuleParrot.so
+lib/svxlink/ModuleEchoLink.so
+lib/svxlink/ModuleTcl.so
+lib/svxlink/ModuleDtmfRepeater.so
+lib/svxlink/ModuleMetarInfo.so
+lib/libecholib-1.2.1.so
+lib/libecholib.so.1.2
+lib/libecholib.so
+lib/liblocationinfo.a
+lib/libtrx.a
+%%QTEL%%share/applications/qtel.desktop
+%%DATADIR%%/events.tcl
+%%DATADIR%%/events.d/RepeaterLogic.tcl
+%%DATADIR%%/events.d/SimplexLogic.tcl
+%%DATADIR%%/events.d/Module.tcl
+%%DATADIR%%/events.d/Logic.tcl
+%%DATADIR%%/events.d/CW.tcl
+%%DATADIR%%/events.d/SelCall.tcl
+%%DATADIR%%/events.d/locale.tcl
+%%DATADIR%%/events.d/Help.tcl
+%%DATADIR%%/events.d/Parrot.tcl
+%%DATADIR%%/events.d/EchoLink.tcl
+%%DATADIR%%/events.d/Tcl.tcl.example
+%%DATADIR%%/events.d/TclVoiceMail.tcl
+%%DATADIR%%/events.d/DtmfRepeater.tcl
+%%DATADIR%%/events.d/MetarInfo.tcl
+%%DATADIR%%/events.d/PropagationMonitor.tcl
+%%DATADIR%%/events.d/SelCallEnc.tcl
+%%DATADIR%%/modules.d/ModuleTcl.tcl.example
+%%DATADIR%%/modules.d/ModuleTclVoiceMail.tcl
+%%DATADIR%%/modules.d/ModulePropagationMonitor.tcl
+%%DATADIR%%/modules.d/ModuleSelCallEnc.tcl
+%%QTEL%%share/qtel/translations/qtel_sv.qm
+%%QTEL%%share/qtel/translations/qtel_de.qm
+%%QTEL%%share/qtel/translations/qtel_tr.qm
+%%QTEL%%share/qtel/translations/qtel_nl.qm
+%%QTEL%%share/qtel/translations/qtel_it.qm
+%%QTEL%%share/qtel/translations/qtel_uk.qm
+%%QTEL%%share/qtel/translations/qtel_ru.qm
+%%QTEL%%share/qtel/translations/qtel_hu.qm
+%%QTEL%%share/qtel/translations/qtel_es.qm
+%%QTEL%%share/qtel/translations/qtel_ja.qm
+%%QTEL%%share/qtel/translations/qtel_fr.qm
+%%QTEL%%share/qtel/sounds/connect.raw
+%%QTEL%%share/icons/link.xpm
+man/man1/svxlink.1.gz
+man/man1/remotetrx.1.gz
+man/man1/siglevdetcal.1.gz
+%%QTEL%%man/man1/qtel.1.gz
+man/man5/svxlink.conf.5.gz
+man/man5/ModuleHelp.conf.5.gz
+man/man5/ModuleParrot.conf.5.gz
+man/man5/ModuleEchoLink.conf.5.gz
+man/man5/ModuleTclVoiceMail.conf.5.gz
+man/man5/ModuleDtmfRepeater.conf.5.gz
+man/man5/ModulePropagationMonitor.conf.5.gz
+man/man5/ModuleSelCallEnc.conf.5.gz
+man/man5/remotetrx.conf.5.gz
+@dirrmtry etc/svxlink/svxlink.d
+@dirrmtry etc/svxlink
+@dirrm include/svxlink
+@dirrm lib/svxlink
+@dirrm %%DATADIR%%/events.d
+@dirrm %%DATADIR%%/modules.d
+@dirrm %%DATADIR%%
+%%QTEL%%@dirrm share/qtel/translations
+%%QTEL%%@dirrm share/qtel/sounds
+%%QTEL%%@dirrm share/qtel
+%%QTEL%%@dirrmtry share/applications
+%%QTEL%%@dirrmtry share/icons
+@unexec rmdir >/dev/null 2>&1 /var/spool/svxlink/voice_mail || :
+@unexec rmdir >/dev/null 2>&1 /var/spool/svxlink/qso_recorder || :
+@unexec rmdir >/dev/null 2>&1 /var/spool/svxlink/propagation_monitor || :
+@unexec rmdir >/dev/null 2>&1 /var/spool/svxlink || :