Version bump. Newly updated autoconfig functionality by Jaco Kroon closes bug #374177.
authorTony Vroon <chainsaw@gentoo.org>
Fri, 2 Sep 2011 09:38:44 +0000 (09:38 +0000)
committerTony Vroon <chainsaw@gentoo.org>
Fri, 2 Sep 2011 09:38:44 +0000 (09:38 +0000)
Package-Manager: portage-2.1.10.11/cvs/Linux x86_64

net-misc/dahdi-tools/ChangeLog
net-misc/dahdi-tools/Manifest
net-misc/dahdi-tools/dahdi-tools-2.5.0.ebuild [new file with mode: 0644]
net-misc/dahdi-tools/files/dahdi-autoconf.conf2 [new file with mode: 0644]
net-misc/dahdi-tools/files/dahdi-autoconf.init2 [new file with mode: 0644]

index 8f8720cc7433aeb5c8879dd595cb664dcad9ac75..dcd307150c42bbb90ee8296b21e9af4f7dccf440 100644 (file)
@@ -1,6 +1,13 @@
 # ChangeLog for net-misc/dahdi-tools
 # Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/dahdi-tools/ChangeLog,v 1.14 2011/09/02 09:03:33 chainsaw Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/dahdi-tools/ChangeLog,v 1.15 2011/09/02 09:38:44 chainsaw Exp $
+
+*dahdi-tools-2.5.0 (02 Sep 2011)
+
+  02 Sep 2011; Tony Vroon <chainsaw@gentoo.org> +dahdi-tools-2.5.0.ebuild,
+  +files/dahdi-autoconf.conf2, +files/dahdi-autoconf.init2:
+  Version bump. Newly updated autoconfig functionality by Jaco Kroon closes bug
+  #374177.
 
   02 Sep 2011; Tony Vroon <chainsaw@gentoo.org> -dahdi-tools-2.1.0.2.ebuild,
   -files/dahdi-tools-2.1.0.2-asneeded.patch, -dahdi-tools-2.2.0-r1.ebuild,
index efb7f6d13667aac2e08d28fef3b2fbcd54d69651..36e236f1aaf2ee30b2c47b596a037914e8d1f6f6 100644 (file)
@@ -2,17 +2,21 @@
 Hash: SHA1
 
 AUX dahdi-autoconf.conf 972 RMD160 35b039cbe6a7b724332dd82f6b3b9663877ec237 SHA1 a589054d3ce47be3da98fedcb467b10c741b5e29 SHA256 c94ee0ceb9b0a2689458360b2b40c3acc7f1073d6c500e4894c29c361f1258e4
+AUX dahdi-autoconf.conf2 1067 RMD160 6e3c0c3ed70fa88feae6783970bed41f081fb3ac SHA1 d530eee2fc2278df8553c31e9085e876b4f51791 SHA256 c364b784aa0e273165c3d4b989d8ccbd44ae97502e45de5434a415065b7b8cfa
 AUX dahdi-autoconf.init 5120 RMD160 5566ad783762f556c6db4b887d3a3ac3d88e0cb4 SHA1 c1b363004ae122b78041f2dee3ad60be90086a3b SHA256 e9be6e998bb61b579942a4d9a9740d3447a19214c0a293eb6d9ae0b3642b3a95
+AUX dahdi-autoconf.init2 5816 RMD160 053577cce52b1a10fbcc1bb7696268d8f1f887e1 SHA1 a05b36939217720fd50dff113e90e10c070de8de SHA256 6f24b33997a244ae9a705416456bc8a8e1e046e1927d619ccec91703e8f76433
 AUX dahdi.init2 696 RMD160 21ebfc44c26518122f0e88ede04ec32434601a05 SHA1 639ae92dd946c9522c1b5c425fb958e6fec9d751 SHA256 c06e70c1e53d9f9092ab853a6d0bf1efdfbeac73919c115499de32abc8202ca4
 DIST dahdi-tools-2.4.1.tar.gz 537767 RMD160 476594db808640a3ff72ee292e46f520f66c17e6 SHA1 aa6a4cdac8a4fae8b814c258c52eb0460336867d SHA256 58f5d09b250a8461ee597fd1b3a690f69085efab91e842c88fbad777a4695b36
+DIST dahdi-tools-2.5.0.tar.gz 863218 RMD160 92d384811719d7889308c42bcf6b4811136b3036 SHA1 61f5ba3273b3c2151f48498442e37fd40fa9f4b9 SHA256 1bdfe6b863153d557a18e2eb8bbcea147012865cffdf359c2d6210981587669b
 DIST gentoo-dahdi-tools-patchset-0.2.tar.bz2 1970 RMD160 25e04ad11ca3638ee5e7fdfbbbdea3db7bc6d8a4 SHA1 c694d0693dc0f500bdcebf92aba0b4ba17cba63d SHA256 ce820d3f0eb85d16bacb35edac2d5f3386df2d4d58c68c47a92c7f38c9805560
 EBUILD dahdi-tools-2.4.1.ebuild 1498 RMD160 23e5df4c883625efe955ac806bbfdd99fa624aff SHA1 c8ea1a70e03633960c8929f0047741388951e3a3 SHA256 4d0b8853754c613e43d43aa8f20409662962807d600becd345aa17cf01983d03
-MISC ChangeLog 4120 RMD160 ded3cab1e9e04bf81f4b34e337c4610c2e12c390 SHA1 ff8d3bd7e3f9cf818bc5769d698837fd6163c74f SHA256 9c08c5045b61331d2abd880aa91b329521c06da3816e44597f3fff4860e7cf70
+EBUILD dahdi-tools-2.5.0.ebuild 1505 RMD160 384d33e1e006da4c32d35ad0fed6a780976dd02e SHA1 f9ee001353c4ad679b2241ee2dbd7a4a664de998 SHA256 3ad4aa4daa3f4902d0516e0792fe28cf434987b8ffbf82f528d1a2aee9a5220e
+MISC ChangeLog 4381 RMD160 3b2970038c0720377e5845d4fd27f832ceedf29f SHA1 b13b2b76e4c608fcd88af6717f1261afdebe4322 SHA256 0e1c9ac2912f0feb4215ec320f7de4897791aa043ba548fbf2e141e8346efa72
 MISC metadata.xml 331 RMD160 787054aaa3e5371c7e256d2a0b4f5e909e43a88e SHA1 6bf8e650bccb629f9807fde8dd20681517f75aeb SHA256 a839d10d9b71eb3ccee2ac1f493d64ae841977358d8908dba94ead6c4b6cf0e8
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v2.0.18 (GNU/Linux)
 
-iEYEARECAAYFAk5gm+4ACgkQp5vW4rUFj5qJXQCfQGZVDZbPtOsWmq3ikADvHEp2
-xZcAnjg3swCLsvQlob5Ha5yw1iDphny8
-=WUeH
+iEYEARECAAYFAk5gpC0ACgkQp5vW4rUFj5pAWACgmwcqonVaSff77EUFqJ/Oclz7
+I2sAoJE9glgtFxQWjADZ5prenCYH4tH7
+=Gy1R
 -----END PGP SIGNATURE-----
diff --git a/net-misc/dahdi-tools/dahdi-tools-2.5.0.ebuild b/net-misc/dahdi-tools/dahdi-tools-2.5.0.ebuild
new file mode 100644 (file)
index 0000000..4e36b01
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/dahdi-tools/dahdi-tools-2.5.0.ebuild,v 1.1 2011/09/02 09:38:44 chainsaw Exp $
+
+EAPI=3
+
+inherit base
+
+DESCRIPTION="Userspace tools to configure the kernel modules from net-misc/dahdi"
+HOMEPAGE="http://www.asterisk.org"
+SRC_URI="http://downloads.digium.com/pub/telephony/dahdi-tools/releases/${P}.tar.gz
+       mirror://gentoo/gentoo-dahdi-tools-patchset-0.2.tar.bz2"
+
+LICENSE="LGPL-2.1"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+IUSE="ppp"
+
+DEPEND="dev-libs/newt
+       ppp? ( net-dialup/ppp )
+       net-misc/dahdi
+       !net-misc/zaptel
+       >=sys-kernel/linux-headers-2.6.35
+       virtual/libusb:0"
+RDEPEND="${DEPEND}"
+
+EPATCH_SUFFIX="diff"
+PATCHES=( "${WORKDIR}/dahdi-tools-patchset" )
+
+src_compile() {
+       default_src_compile
+       emake tests || die "Failed compiling test utilities"
+       if use ppp; then
+               emake -C ppp || die "Failed compiling ppp plugin"
+       fi
+}
+
+src_install() {
+       emake DESTDIR="${D}" install || die "Failed to install binaries"
+       if use ppp; then
+               emake DESTDIR="${D}" -C ppp install || die "Failed to install ppp plugin"
+       fi
+       emake DESTDIR="${D}" config || die "Failed to install configuration files"
+
+       dosbin patgen pattest patlooptest hdlcstress hdlctest hdlcgen
+       dosbin hdlcverify timertest
+
+       # install init scripts
+       newinitd "${FILESDIR}"/dahdi.init2 dahdi
+       newinitd "${FILESDIR}"/dahdi-autoconf.init2 dahdi-autoconf
+       newconfd "${FILESDIR}"/dahdi-autoconf.conf2 dahdi-autoconf
+}
diff --git a/net-misc/dahdi-tools/files/dahdi-autoconf.conf2 b/net-misc/dahdi-tools/files/dahdi-autoconf.conf2
new file mode 100644 (file)
index 0000000..a465452
--- /dev/null
@@ -0,0 +1,40 @@
+# Global settings
+# Set this to your country code.
+DAHDI_ZONE=za
+DAHDI_ECHOCAN=oslec # mg2,jpah,kb1,sec,sec2 (there may be more, we recommend oslec)
+
+# Settings for analog
+#Analog signal types, one of:
+# ks - KewlStart (recommended, default)
+# ls - LoopStart
+# gs - GroundStart
+
+# Signalling to be used on FXO ports
+DAHDI_FXO_SIGNALLING=ks
+
+# Signalling to be used on FXS ports
+DAHDI_FXS_SIGNALLING=ks
+
+# Whether or not to echocan:
+DAHDI_FXO_ECHOCAN=yes
+DAHDI_FXS_ECHOCAN=yes
+
+# These settings will be used for BRI cards.
+# Known options: B8ZS,AMI,HDB3
+DAHDI_BRI_CODING=AMI
+
+# Known options: ESF,D4,CCS,CRC4
+DAHDI_BRI_FRAMING=CCS
+
+# Our experience is that it's not required (still defaults to yes)
+DAHDI_BRI_NT_ECHOCAN=yes
+DAHDI_BRI_TE_ECHOCAN=yes
+
+# These settings are for PRI cards.  Note that only E1 currently supported.
+DAHDI_E1_CPE_ECHOCAN=yes
+DAHDI_E1_NET_ECHOCAN=yes
+
+# PRI will default to CPE mode (remote end provides signalling).
+# If you really want to provide signalling set the appropriate spans
+# here (eg, set span 1 to NET mode).
+#PRI_SPAN_1_NET=yes
diff --git a/net-misc/dahdi-tools/files/dahdi-autoconf.init2 b/net-misc/dahdi-tools/files/dahdi-autoconf.init2
new file mode 100644 (file)
index 0000000..1ebe8ec
--- /dev/null
@@ -0,0 +1,225 @@
+#!/sbin/runscript
+# Copyright 1999-2011 Ultimate Linux Solutions CC
+# Distributed under the terms of the GNU General Public License v2
+
+depend() {
+       before dahdi
+}
+
+dahdi_load_modules() {
+       local hwlist loc status mod mod_vname pciid desc
+
+       hwlist=$(/usr/sbin/dahdi_hardware)
+
+       if [ -z "${hwlist}" ]; then
+               einfo "No digium hardware found."
+               ebegin "Loading module dahdi_dummy"
+               /sbin/modprobe dahdi_dummy
+               eend $?
+               return
+       fi
+
+       echo "${hwlist}" | while read loc mod pciid desc; do
+               status="${mod:${#mod}-1:1}"
+               mod="${mod%[+-]}"
+               mod_vname="mod_${mod}"
+
+               einfo "Found $desc at $loc (module: $mod)"
+
+               if [ "${status}" = "-" -a "${!mod_vname-notloaded}" = "notloaded" ]; then
+                       ebegin "Loading module $mod"
+                       /sbin/modprobe $mod
+                       eend
+
+                       [ $? -eq 0 ] && eval "$mod_vname=loaded"
+               fi
+       done
+}
+
+dahdi_module_unload() {
+       local mod=$1 s
+       [ -d /sys/module/${mod} ] || return 0
+
+       for s in $(find /sys/module/${mod}/holders -type l); do
+               dahdi_module_unload $(basename $s)
+       done
+
+       ebegin "Removing dahdi module: $mod"
+       /sbin/rmmod $mod
+       eend $?
+}
+
+dahdi_gen_fxo_config() {
+       local port=$1
+
+       echo "fxs${DAHDI_FXO_SIGNALLING-ks}=${port}"
+       [ "${DAHDI_FXO_ECHOCAN-yes}" = yes ] && echo "echocanceller=${DAHDI_ECHOCAN-mg2},${port}"
+}
+
+dahdi_gen_fxs_config() {
+       local port=$1
+
+       echo "fxo${DAHDI_FXO_SIGNALLING-ks}=${port}"
+       [ "${DAHDI_FXS_ECHOCAN-yes}" = yes ] && echo "echocanceller=${DAHDI_ECHOCAN-mg2},${port}"
+}
+
+dahdi_gen_bri_te_config() {
+       span=$1
+       port=$2
+       basechan=$3
+
+       echo "span=${span},${port},0,${DAHDI_BRI_FRAMING-CSS},${DAHDI_BRI_CODING-AMI}"
+       echo "bchan=${basechan}-$(( basechan + 1 ))"
+       echo "hardhdlc=$(( basechan + 2 ))"
+       [ "${DAHDI_BRI_TE_ECHOCAN-yes}" = yes ] && echo "echocanceller=${DAHDI_ECHOCAN-mg2},${basechan}-$(( basechan + 1 ))"
+}
+
+dahdi_gen_bri_nt_config() {
+       span=$1
+       port=$2
+       basechan=$3
+
+       echo "span=${span},0,0,${DAHDI_BRI_FRAMING-CSS},${DAHDI_BRI_CODING-AMI}"
+       echo "bchan=${basechan}-$(( basechan + 1 ))"
+       echo "hardhdlc=$(( basechan + 2 ))"
+       [ "${DAHDI_BRI_NT_ECHOCAN-yes}" = yes ] && echo "echocanceller=${DAHDI_ECHOCAN-mg2},${basechan}-$(( basechan + 1 ))"
+}
+
+dahdi_gen_e1_cpe_config() {
+       span=$1
+       port=$2
+       basechan=$3
+
+       echo "span=${span},${port},0,${DAHDI_E1_FRAMING-CCS},${DAHDI_E1_CODING-HDB3,CRC4}"
+       bchans="${basechan}-$(( basechan + 14 )),$(( basechan + 16 ))-$(( basechan + 30 ))"
+       echo "bchan=${bchans}"
+       echo "dchan=$(( basechan + 15 ))"
+       [ "${DAHDI_E1_CPE_ECHOCAN-yes}" = yes ] && echo "echocanceller=${DAHDI_ECHOCAN-mg2},${bchans}"
+}
+
+dahdi_gen_e1_net_config() {
+       span=$1
+       port=$2
+       basechan=$3
+
+       echo "span=${span},0,0,${DAHDI_E1_FRAMING-CCS},${DAHDI_E1_CODING-HDB3,CRC4}"
+       bchans="${basechan}-$(( basechan + 14 )),$(( basechan + 16 ))-$(( basechan + 30 ))"
+       echo "bchan=${bchans}"
+       echo "dchan=$(( basechan + 15 ))"
+       [ "${DAHDI_E1_NET_ECHOCAN-yes}" = yes ] && echo "echocanceller=${DAHDI_ECHOCAN-mg2},${bchans}"
+}
+
+dahdi_conf_span() {
+       local span=$1
+       local type=$2
+       local desc=$3
+       local port=$4
+       local basechan=$5
+       local vname=""
+
+       # Analog we need to deal with on a port-by-port basis.
+       [ "${type}" = "analog" ] && return 0
+
+       echo -e "\n# ${desc}"
+       case "${type}" in
+               digital-TE)
+                       dahdi_gen_bri_te_config "${span}" "${port}" "${basechan}"
+               ;;
+               digital-NT)
+                       dahdi_gen_bri_nt_config "${span}" "${port}" "${basechan}"
+               ;;
+               digital-E1)
+                       # Use CPE by default.  Unfortunately there is no easy
+                       # way to detect CPE vs NET as far as I know and specifying
+                       # in a config that you want NET mode seems the sanest way.
+                       vname="PRI_SPAN_${span}_NET"
+                       if [[ "${!vname}" = [Yy][Ee][Ss] ]]; then
+                               dahdi_gen_e1_net_config "${span}" "${port}" "${basechan}"
+                       else
+                               dahdi_gen_e1_cpe_config "${span}" "${port}" "${basechan}"
+                       fi
+               ;;
+               *)
+                       echo "# Don't know how to configure this (type=${type})."
+                       echo "# Please file a bug on bugs.gentoo.org and add jaco@uls.co.za as CC."
+               ;;
+       esac
+}
+
+dahdi_gen_config() {
+       local type manufacturer devicetype basechan aport atype
+       local span=
+       local tfile="$(mktemp)"
+       local sfile="$(mktemp)"
+       local plocation=""
+       local isdnport=0
+
+       /usr/sbin/dahdi_scan > "${sfile}" 
+       exec 3<"${sfile}"
+
+       echo "# Automatically dahdi-autoconf generated file ($(date))." >> "${tfile}"
+       echo "# This file WILL get regenerated whenever you restart dahdi-autoconf." >> "${tfile}"
+
+       while read LINE <&3; do
+               case "$LINE" in
+                       [[]*[]])
+                               [ -n "${span}" ] && dahdi_conf_span "${span}" "${type}" "${manufacturer} ${devicetype} (${name})" "${isdnport}" "${basechan}" >> "${tfile}"
+                               span="${LINE%?}"
+                               span="${span#?}"
+                       ;;
+                       type=*|manufacturer=*|devicetype=*|basechan=*|name=*)
+                               eval "${LINE%%=*}='${LINE#*=}'"
+                       ;;
+                       location=*)
+                               eval "${LINE%%=*}='${LINE#*=}'"
+                               if [ "${location}" == "${plocation}" ]; then
+                                       (( ++isdnport ))
+                               else
+                                       plocation="${location}"
+                                       isdnport=1
+                               fi
+                       ;;
+                       port=*)
+                               # For analog cards only.
+                               aport="${LINE#*=}"; aport="${aport%,*}"
+                               atype="${LINE#*,}"
+                               [ "${aport}" -eq "${basechan}" ] && echo -e "\n# ${manufacturer} ${devicetype} (${name})" >> "${tfile}"
+                               case "${atype}" in
+                                       FXO)
+                                               dahdi_gen_fxo_config $aport >> "${tfile}"
+                                       ;;
+                                       FXS)
+                                               dahdi_gen_fxs_config $aport >> "${tfile}"
+                                       ;;
+                               esac
+                       ;;
+               esac
+       done
+       
+       [ -n "${span}" ] && dahdi_conf_span "${span}" "${type}" "${manufacturer} ${devicetype} (${name})" "${isdnport}" "${basechan}" >> "${tfile}"
+
+       echo -e "\nloadzone = ${DAHDI_ZONE}\ndefaultzone = ${DAHDI_ZONE}\n## END OF AUTOCONFIGURED FILE ##" >> "${tfile}"
+
+       exec 3<&-
+
+       rm -f "${sfile}"
+       mv /etc/dahdi/system.conf /etc/dahdi/system.conf.bck
+       mv "${tfile}" /etc/dahdi/system.conf
+}
+
+start() {
+       dahdi_load_modules
+
+       if [ ! -r /dev/dahdi/ctl ]; then
+               eerror "No DAHDI compatible cards detected."
+               return 1
+       fi
+
+       ebegin "Generating DAHDI Configuration"
+       dahdi_gen_config
+       eend $?
+}
+
+stop() {
+       dahdi_module_unload dahdi
+}