summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRajiv Aaron Manglani <rajiv@gentoo.org>2008-08-24 19:30:05 +0000
committerRajiv Aaron Manglani <rajiv@gentoo.org>2008-08-24 19:30:05 +0000
commit5ad95ef2f79682817fe98e300d9d5fa85b92fbbe (patch)
tree44f3601c46e182649a183488141923e229e3b621
parentVersion bump (diff)
downloadgentoo-2-5ad95ef2f79682817fe98e300d9d5fa85b92fbbe.tar.gz
gentoo-2-5ad95ef2f79682817fe98e300d9d5fa85b92fbbe.tar.bz2
gentoo-2-5ad95ef2f79682817fe98e300d9d5fa85b92fbbe.zip
fix for multilib, bug #208190. thanks to gentoofan23 for the patch.
(Portage version: 2.1.5.4)
-rw-r--r--net-misc/zaptel/ChangeLog8
-rw-r--r--net-misc/zaptel/files/zaptel-1.2.26-gentoo.diff76
-rw-r--r--net-misc/zaptel/zaptel-1.2.26-r1.ebuild366
3 files changed, 449 insertions, 1 deletions
diff --git a/net-misc/zaptel/ChangeLog b/net-misc/zaptel/ChangeLog
index d706d9477139..1b5b32992ac9 100644
--- a/net-misc/zaptel/ChangeLog
+++ b/net-misc/zaptel/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for net-misc/zaptel
# Copyright 2000-2008 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/net-misc/zaptel/ChangeLog,v 1.109 2008/08/16 16:13:18 tove Exp $
+# $Header: /var/cvsroot/gentoo-x86/net-misc/zaptel/ChangeLog,v 1.110 2008/08/24 19:30:04 rajiv Exp $
+
+*zaptel-1.2.26-r1 (24 Aug 2008)
+
+ 24 Aug 2008; Rajiv Aaron Manglani <rajiv@gentoo.org>
+ +files/zaptel-1.2.26-gentoo.diff, +zaptel-1.2.26-r1.ebuild:
+ fix for multilib, bug #208190. thanks to gentoofan23 for the patch.
16 Aug 2008; Torsten Veller <tove@gentoo.org> metadata.xml:
Remove stkn from metadata.xml (#27693)
diff --git a/net-misc/zaptel/files/zaptel-1.2.26-gentoo.diff b/net-misc/zaptel/files/zaptel-1.2.26-gentoo.diff
new file mode 100644
index 000000000000..bea20d0b6912
--- /dev/null
+++ b/net-misc/zaptel/files/zaptel-1.2.26-gentoo.diff
@@ -0,0 +1,76 @@
+diff -uNr zaptel-1.2.26/build_tools/genmodconf zaptel-1.2.26-gentoo/build_tools/genmodconf
+--- zaptel-1.2.26/build_tools/genmodconf 2007-07-11 14:58:09.000000000 -0400
++++ zaptel-1.2.26-gentoo/build_tools/genmodconf 2008-08-24 14:24:16.000000000 -0400
+@@ -79,20 +79,6 @@
+
+ echo Building ${target}...
+
+-if [ "${1}" = "linux24" ]; then
+- for mod in ${3}; do
+- if ! grep -q "post-install ${mod} " ${target}; then
+- echo "post-install ${mod} /sbin/ztcfg" >> ${target}
+- fi
+- done
+-elif [ "${1}" = "linux26" ]; then
+- for mod in ${3}; do
+- if ! grep -q "install ${mod} " ${target}; then
+- echo "install ${mod} /sbin/modprobe --ignore-install ${mod} ${cmdopts} && /sbin/ztcfg" >> ${target}
+- fi
+- done
+-fi
+-
+ if [ -z "${combined}" ]; then
+ echo "***"
+ echo "*** WARNING:"
+diff -uNr zaptel-1.2.26/Makefile zaptel-1.2.26-gentoo/Makefile
+--- zaptel-1.2.26/Makefile 2008-03-31 20:08:21.000000000 -0400
++++ zaptel-1.2.26-gentoo/Makefile 2008-08-24 14:27:44.000000000 -0400
+@@ -121,7 +121,7 @@
+
+ INSTALL_PREFIX := /usr
+
+-CFLAGS+=-I. -O4 -g -fPIC -Wall
++CFLAGS+=-I. -g -Wall
+ ifneq (,$(findstring ppc,$(MACHINE)))
+ CFLAGS += -fsigned-char
+ KFLAGS += -msoft-float -fsigned-char
+@@ -209,7 +209,7 @@
+ LIBTONEZONE_SO_MAJOR_VER:=1
+ LIBTONEZONE_SO_MINOR_VER:=0
+
+-LIBDIR := $(INSTALL_PREFIX)/lib
++LIBDIR := $(INSTALL_PREFIX)/$(MYLIBDIR)
+ INCLUDE_DIR := $(INSTALL_PREFIX)/include
+ # Note: Zaptel's use of /sbin is slightly non-standard:
+ SBINDIR := /sbin
+@@ -302,7 +302,7 @@
+ $(CC) $(KFLAGS) -o $@ -c $<
+
+ zonedata.lo tonezone.lo: %.lo: %.c
+- $(CC) -c $(CFLAGS) -o $@ $^
++ $(CC) -c $(CFLAGS) -fPIC -o $@ $^
+
+ tones.h: gendigits
+ ./gendigits > $@
+@@ -412,7 +412,7 @@
+ else # DYNFS
+ ifdef UDEVRULES
+ install -d $(DESTDIR)/etc/udev/rules.d
+- build_tools/genudevrules > $(DESTDIR)/etc/udev/rules.d/zaptel.rules
++ build_tools/genudevrules > $(DESTDIR)/etc/udev/rules.d/10-zaptel.rules
+ else # !UDEVRULES
+ @echo "**** Dynamic filesystem detected -- not creating device nodes"
+ endif
+@@ -481,11 +481,10 @@
+ rm -f $(DESTDIR)$(MODS_DIR)/wcfxsusb.o
+ endif
+ rm -f $(DESTDIR)$(MODS_DIR)/wcfxs.o
+- [ `id -u` = 0 ] && /sbin/depmod -a $(KVERS) || :
+
+ install-libs: libs
+ install -D -m 755 $(LIBTONEZONE_SO) $(DESTDIR)$(LIBDIR)/$(LIBTONEZONE_SO).$(LIBTONEZONE_SO_MAJOR_VER).$(LIBTONEZONE_SO_MINOR_VER)
+- [ `id -u` = 0 ] && /sbin/ldconfig || :
++ [ `id -u` = 0 ] && /sbin/ldconfig -n $(DESTDIR)$(LIBDIR) || :
+ rm -f $(DESTDIR)$(LIBDIR)/$(LIBTONEZONE_SO)
+ ln -sf $(LIBTONEZONE_SO).$(LIBTONEZONE_SO_MAJOR_VER).$(LIBTONEZONE_SO_MINOR_VER) \
+ $(DESTDIR)$(LIBDIR)/$(LIBTONEZONE_SO).$(LIBTONEZONE_SO_MAJOR_VER)
diff --git a/net-misc/zaptel/zaptel-1.2.26-r1.ebuild b/net-misc/zaptel/zaptel-1.2.26-r1.ebuild
new file mode 100644
index 000000000000..154c14acbf4e
--- /dev/null
+++ b/net-misc/zaptel/zaptel-1.2.26-r1.ebuild
@@ -0,0 +1,366 @@
+# Copyright 1999-2008 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/zaptel/zaptel-1.2.26-r1.ebuild,v 1.1 2008/08/24 19:30:04 rajiv Exp $
+
+inherit toolchain-funcs eutils linux-mod flag-o-matic multilib
+
+BRI_VERSION="0.3.0-PRE-1y-l"
+FLORZ_VERSION="0.3.0-PRE-1y-l_florz-12.1"
+
+IUSE="astribank bri ecmark ecmark2 ecmark3 ecaggressive eckb1 ecmg2 ecsteve ecsteve2 florz
+rtc watchdog zapras zapnet"
+
+MY_P="${P/_/-}"
+
+DESCRIPTION="Drivers for Digium and ZapataTelephony cards"
+HOMEPAGE="http://www.asterisk.org"
+SRC_URI="http://downloads.digium.com/pub/zaptel/releases/${MY_P}.tar.gz
+ bri? ( http://www.junghanns.net/downloads/bristuff-${BRI_VERSION}.tar.gz )
+ florz? ( http://zaphfc.florz.dyndns.org/zaphfc_${FLORZ_VERSION}.diff.gz )
+ "
+
+S="${WORKDIR}/${MY_P}"
+
+S_BRI="${WORKDIR}/bristuff-${BRI_VERSION}"
+
+SLOT="0"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~x86"
+
+RDEPEND="virtual/libc
+ dev-libs/libusb
+ >=dev-libs/newt-0.50.0
+ astribank? ( dev-lang/perl )"
+
+DEPEND="${RDEPEND} virtual/linux-sources"
+
+# list of echo canceller use flags,
+# first active in this list is selected (=order does matter)
+ZAP_EC_FLAGS="ecmark ecmark2 ecmark3 ecsteve ecsteve2 eckb1 ecmg2"
+
+### Begin: Helper functions
+
+select_echo_cancel() {
+ local myEC=""
+
+ for x in ${ZAP_EC_FLAGS}; do
+ if use $x; then
+ myEC=$(echo "$x" | sed -e "s:^ec::" | tr '[:lower:]' '[:upper:]')
+ break;
+ fi
+ done
+
+ echo ${myEC}
+}
+
+zconfig_disable() {
+ if grep -q "${1}" "${S}"/zconfig.h; then
+ # match a little more than ${1} so we can use zconfig_disable
+ # to disable all echo cancellers in zconfig.h w/o calling it several times
+ sed -i -e "s:^[ \t]*#define[ \t]\+\(${1}[a-zA-Z0-9_-]*\).*:#undef \1:" \
+ "${S}"/zconfig.h
+ fi
+
+ return $?
+}
+
+zconfig_enable() {
+ if grep -q "${1}" "${S}"/zconfig.h; then
+ sed -i -e "s:^/\*[ \t]*#define[ \t]\+\(${1}\).*:#define \1:" \
+ -e "s:^[ \t]*#undef[ \t]\+\(${1}\).*:#define \1:" \
+ "${S}"/zconfig.h
+ fi
+
+ return $?
+}
+
+### End: Helper functions
+
+pkg_setup() {
+ local result=0 numec=0
+
+ linux-mod_pkg_setup
+
+ einfo "Running pre-flight checks..."
+
+ # basic zaptel checks
+ if kernel_is 2 4 ; then
+ if ! linux_chkconfig_present CRC32; then
+ echo
+ eerror "Your kernel lacks CRC32 support!"
+ eerror "Enable CONFIG_CRC32!"
+ result=$((result+1))
+ fi
+ else
+ if ! linux_chkconfig_present CRC_CCITT; then
+ echo
+ eerror "Your kernel lacks CRC_CCIT support!"
+ eerror "Enable CONFIG_CRC_CCIT!"
+ result=$((result+1))
+ fi
+ if ! linux_chkconfig_present FW_LOADER; then
+ echo
+ eerror "Your kernel lacks FW_LOADER support!"
+ eerror "Enable CONFIG_FW_LOADER!"
+ result=$((result+1))
+ fi
+ fi
+
+ # check if multiple echo cancellers have been selected
+ for x in ${ZAP_EC_FLAGS}; do
+ use $x && numec=$((numec+1))
+ done
+ if [[ $numec -gt 1 ]]; then
+ # multiple flags are active, only the first in the ZAP_EC_FLAGS list
+ # will be used, make sure the user knows about this
+ echo
+ ewarn "Multiple echo canceller flags are active but only one will be used!"
+ ewarn "Selected: $(select_echo_cancel)"
+ fi
+
+ # we need at least HDLC generic support
+ if use zapnet && ! linux_chkconfig_present HDLC; then
+ echo
+ eerror "zapnet: Your kernel lacks HDLC support!"
+ eerror "zapnet: Enable CONFIG_HDLC* to use zaptel network support!"
+ result=$((result+1))
+ fi
+
+ # zapras needs PPP support
+ if use zapras && ! linux_chkconfig_present PPP; then
+ echo
+ eerror "zapras: Your kernel lacks PPP support!"
+ eerror "zapras: Enable CONFIG_PPP* to use zaptel ras support!"
+ result=$((result+1))
+ fi
+
+ # rtc needs linux-2.6 and CONFIG_RTC
+ if use rtc; then
+ if ! kernel_is 2 6; then
+ echo
+ eerror "rtc: >=Linux-2.6.0 is needed for rtc support!"
+ result=$((result+1))
+ fi
+
+ if ! linux_chkconfig_present RTC; then
+ eerror "rtc: Your kernel lacks RealTime-Clock support!"
+ result=$((result+1))
+ fi
+ fi
+
+ if [[ $result -gt 0 ]]; then
+ echo
+ ewarn "One or more of the neccessary precondition(s) is/are not met!"
+ ewarn "Look at the messages above, resolve the problem (or disable the use-flag) and try again"
+ echo
+
+ if [[ $result -lt 3 ]]; then
+ eerror "[$result Error(s)] Zaptel is not happy :("
+ else
+ eerror "[$result Error(s)] You're making zaptel cry :'("
+ fi
+ die "[$result] Precondition(s) not met"
+ fi
+
+ echo
+ einfo "Zaptel is happy and continues... :)"
+}
+
+src_unpack() {
+ unpack ${A}
+
+ cd "${S}"
+ epatch "${FILESDIR}"/${PN}-1.2.26-gentoo.diff
+ epatch "${FILESDIR}"/zaptel-1.2.9.1-ar.patch
+ epatch "${FILESDIR}"/zaptel-1.2.25-xpputils.diff
+
+ # try to apply bristuff patch
+ if use bri; then
+ # fix for userpriv
+ chmod -R a=rwX ${S_BRI}
+
+ einfo "Patching zaptel w/ BRI stuff (${BRI_VERSION})"
+ epatch ${S_BRI}/patches/zaptel.patch
+
+ cd ${S_BRI}
+
+ if use florz; then
+ einfo "Patching zaptel with florz (${FLORZ_VERSION}) for zaphfc"
+ epatch "${WORKDIR}"/zaphfc_${FLORZ_VERSION}.diff
+ fi
+
+ # patch includes
+ sed -i -e "s:^#include.*zaptel\.h.*:#include <zaptel.h>:" \
+ qozap/qozap.c \
+ zaphfc/zaphfc.c \
+ cwain/cwain.c
+
+ # patch makefiles
+ sed -i -e "s:^ZAP[\t ]*=.*:ZAP=-I${S}:" \
+ -e "s:^MODCONF=.*:MODCONF=/etc/modules.d/zaptel:" \
+ -e "s:linux-2.6:linux:g" \
+ qozap/Makefile \
+ zaphfc/Makefile \
+ cwain/Makefile
+
+ sed -i -e "s:^\(CFLAGS+=-I. \).*:\1 \$(ZAP):" \
+ zaphfc/Makefile
+
+ cd "${S}"
+ fi
+
+### Configuration changes
+ local myEC
+
+ # prepare zconfig.h
+ myEC=$(select_echo_cancel)
+ if [[ -n "${myEC}" ]]; then
+ einfo "Selected echo canceller: ${myEC}"
+ # disable default first, set new selected ec afterwards
+ zconfig_disable ECHO_CAN
+ zconfig_enable ECHO_CAN_${myEC}
+ fi
+
+ # enable rtc support on 2.6
+ if use rtc && linux_chkconfig_present RTC && kernel_is 2 6; then
+ einfo "Enabling ztdummy RTC support"
+ zconfig_enable USE_RTC
+ fi
+
+ # enable agressive echo surpression
+ use ecaggressive && \
+ zconfig_enable AGGRESSIVE_SUPPRESSOR
+
+ # ppp ras support
+ use zapras && \
+ zconfig_enable CONFIG_ZAPATA_PPP
+
+ # frame relay, syncppp...
+ use zapnet && \
+ zconfig_enable CONFIG_ZAPATA_NET
+
+ # zaptel watchdog
+ use watchdog && \
+ zconfig_enable CONFIG_ZAPTEL_WATCHDOG
+}
+
+src_compile() {
+ export MYLIBDIR="$(get_libdir)"
+
+ # build
+ make KVERS=${KV_FULL} \
+ KSRC=${KV_DIR} ARCH=$(tc-arch-kernel) || die
+
+ if use astribank; then
+ cd "${S}"/xpp/utils
+ make || die "make xpp utils failed"
+ fi
+
+ if use bri; then
+ cd ${S_BRI}
+ for x in cwain qozap zaphfc; do
+ einfo "Building ${x}..."
+ make KVERS=${KV_FULL} \
+ KSRC=/usr/src/linux \
+ ARCH=$(tc-arch-kernel) \
+ -C ${x} || die "make ${x} failed"
+ done
+ fi
+}
+
+src_install() {
+ # Create firmware directory
+ mkdir -p "${D}"/lib/firmware/
+
+ kernel_is 2 4 && cp /etc/modules.conf "${D}"/etc
+ make DESTDIR="${D}" ARCH=$(tc-arch-kernel) \
+ KVERS=${KV_FULL} KSRC=/usr/src/linux devices firmware \
+ install-modules install-programs || die
+
+ dodoc ChangeLog README README.udev README.fxsusb zaptel.init
+ dodoc zaptel.conf.sample zaptel.sysconfig README.fxotune
+
+ # additional tools
+ dobin ztmonitor ztspeed zttest fxotune
+
+ # install all header files, several packages need the complete set
+ # (e.g. sangoma wanpipe)
+ insinto /usr/include/zaptel
+ doins *.h
+
+ if use bri; then
+ einfo "Installing bri"
+ cd ${S_BRI}
+
+ insinto /lib/modules/${KV_FULL}/misc
+ doins qozap/qozap.${KV_OBJ}
+ doins zaphfc/zaphfc.${KV_OBJ}
+ doins cwain/cwain.${KV_OBJ}
+
+ # install example configs for octoBRI and quadBRI
+ insinto /etc
+ doins qozap/zaptel.conf.octoBRI
+ newins qozap/zaptel.conf zaptel.conf.quadBRI
+ newins zaphfc/zaptel.conf zaptel.conf.zaphfc
+
+ insinto /etc/asterisk
+ doins qozap/zapata.conf.octoBRI
+ newins qozap/zapata.conf zapata.conf.quadBRI
+ newins zaphfc/zapata.conf zapata.conf.zaphfc
+
+ docinto bristuff
+ dodoc CHANGES INSTALL
+
+ docinto bristuff/qozap
+ dodoc qozap/TODO qozap/*.conf*
+
+ docinto bristuff/zaphfc
+ dodoc zaphfc/*.conf
+
+ docinto bristuff/cwain
+ dodoc cwain/TODO
+
+ cd "${S}"
+ fi
+
+ # install init script
+ newinitd "${FILESDIR}"/zaptel.rc6 zaptel
+ newconfd "${FILESDIR}"/zaptel.confd zaptel
+
+ # install udev rule file
+ insinto /etc/udev/rules.d
+ newins "${FILESDIR}"/zaptel.udevd 10-zaptel.rules
+
+ if use astribank; then
+ cd "${S}"/xpp/utils
+ eval `perl '-V:installarchlib'`
+ make DESTDIR="${D}" PERLLIBDIR=${installarchlib} install || die "failed xpp utils install"
+ dosbin zt_registration xpp_sync lszaptel
+ fi
+}
+
+pkg_postinst() {
+ linux-mod_pkg_postinst
+
+ echo
+ einfo "Use the /etc/init.d/zaptel script to load zaptel.conf settings on startup!"
+ einfo "This ebuild no longer sets permissions on device nodes. Please review"
+ einfo " /etc/udev/rules.d/10-zaptel.rules or the appropriate configuration"
+ einfo " method for your device node manager."
+ echo
+
+ if use bri; then
+ einfo "Bristuff configs have been merged as:"
+ einfo ""
+ einfo "${ROOT}etc/"
+ einfo " zaptel.conf.zaphfc"
+ einfo " zaptel.conf.quadBRI"
+ einfo " zaptel.conf.octoBRI"
+ einfo ""
+ einfo "${ROOT}etc/asterisk/"
+ einfo " zapata.conf.zaphfc"
+ einfo " zapata.conf.quadBRI"
+ einfo " zapata.conf.octoBRI"
+ echo
+ fi
+}