blob: de93f2c112f98bc6d4fefcc34aa07c19a99e4c47 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
|
# Copyright 1999-2005 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/zaptel/zaptel-1.0.9_p1-r1.ebuild,v 1.2 2005/09/15 02:38:26 stkn Exp $
IUSE="devfs26 bri florz rtc"
inherit toolchain-funcs eutils linux-mod
BRI_VERSION="0.2.0-RC8n"
FLORZ_VERSION="0.2.0-RC8j_florz-8"
MY_PV="${PV/_p/.}"
DESCRIPTION="Drivers for Digium and ZapataTelephony cards"
HOMEPAGE="http://www.asterisk.org"
SRC_URI="ftp://ftp.digium.com/pub/telephony/zaptel/old/zaptel-${MY_PV}.tar.gz
bri? ( http://www.junghanns.net/downloads/bristuff-${BRI_VERSION}.tar.gz )
florz? ( http://zaphfc.florz.dyndns.org/zaphfc_${FLORZ_VERSION}.diff.gz )"
SLOT="0"
LICENSE="GPL-2"
KEYWORDS="~x86 ~ppc ~amd64"
DEPEND="virtual/libc
virtual/linux-sources
>=dev-libs/newt-0.50.0"
S="${WORKDIR}/${PN}-${MY_PV}"
pkg_setup() {
linux-mod_pkg_setup
# show an nice warning message about zaptel not supporting devfs on 2.6
if kernel_is 2 6 && linux_chkconfig_present DEVFS_FS ; then
echo
einfo "You're using a 2.6 kernel with DEVFS."
einfo "The Zaptel drivers won't work unless you either:"
einfo " * switch to udev"
einfo " * write a script that re-creates the necessary device nodes for you"
einfo " * enable the devfs26 useflag (see below)"
einfo ""
einfo "There's an experimental patch which adds devfs support when using linux-2.6, but:"
einfo " 1. It disables udev support to avoid conflicts"
ewarn " 2. It is not supported by Digium / the Asterisk project!"
einfo ""
einfo "If you're still interested, abort now (ctrl+c) and enable the devfs26 USE-flag"
einfo "Feedback and bug-reports should go to: stkn@gentoo.org"
einfo "You have been warned!"
echo
einfo "Sleeping 20 Seconds..."
epause 20
fi
}
src_unpack() {
unpack ${A}
cd ${S}
# patch makefile(s) for gentoo
epatch ${FILESDIR}/${PN}-1.0.9-gentoo.diff
# devfs support
if use devfs26; then
einfo "Enabling experimental devfs support for linux-2.6..."
epatch ${FILESDIR}/${PN}-1.0.4-experimental-devfs26.diff
# disable udev
sed -i -e "s:#define[\t ]\+\(CONFIG_ZAP_UDEV\):#undef \1:" \
zconfig.h
# fix Makefile to not create device nodes for
# devfs enabled 2.6 kernels
sed -i -e 's:grep udevd:grep -q \"udevd\\|devfsd\":' \
Makefile || die "QA error: No substitution performed"
fi
# apply patch for gcc-3.4.x if that's the compiler in use...
# fixes (#76707)
if use x86 && [[ `gcc-fullversion` = "3.4.3" ]]; then
epatch ${FILESDIR}/${PN}-1.0.4-gcc34.patch
fi
# try to apply bristuff patch
if use bri; then
einfo "Patching zaptel w/ BRI stuff (${BRI_VERSION})"
epatch ${FILESDIR}/zaptel-bristuff-${BRI_VERSION}.patch
cd ${WORKDIR}/bristuff-${BRI_VERSION}
if use florz; then
einfo "Using florz patches (${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
fi
# replace `uname -r` with ${KV_FULL} in all Makefiles
find ${WORKDIR} -iname "Makefile" -exec sed -i -e "s:\`uname -r\`:${KV_FULL}:g" {} \;
cd ${S}
#######################################################################
# apply other patches here,
# make sure they work with things that have been added before!
#
# apply x86 rtc patch for ztdummy (http://bugs.digium.com/view.php?id=4301)
# this won't have any effect on non-x86 systems...
if use rtc; then
if use x86 || use amd64; then
epatch ${FILESDIR}/${PN}-1.0.9-rtc.patch
else
ewarn "RTC is unsupported on your arch, skipping patch"
fi
fi
}
src_compile() {
make ARCH=$(tc-arch-kernel) KERNEL_SOURCE=/usr/src/linux || die
if use bri; then
cd ${WORKDIR}/bristuff-${BRI_VERSION}
make ARCH=$(tc-arch-kernel) -C qozap || die
make ARCH=$(tc-arch-kernel) -C zaphfc || die
make ARCH=$(tc-arch-kernel) -C cwain || die
fi
}
src_install() {
make INSTALL_PREFIX=${D} install || die
dodoc ChangeLog README README.udev README.Linux26 README.fxsusb zaptel.init
dodoc zaptel.conf.sample LICENSE zaptel.sysconfig
# additional tools
dobin ztmonitor ztspeed zttest
if use bri; then
einfo "Installing bri"
cd ${WORKDIR}/bristuff-${BRI_VERSION}
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/LICENSE qozap/TODO qozap/*.conf*
docinto bristuff/zaphfc
dodoc zaphfc/LICENSE zaphfc/*.conf
docinto bristuff/cwain
dodoc cwain/TODO cwain/LICENSE
fi
# install init script
newinitd ${FILESDIR}/zaptel.rc6 zaptel
newconfd ${FILESDIR}/zaptel.confd zaptel
# install devfsd rule file
insinto /etc/devfs.d
newins ${FILESDIR}/zaptel.devfsd zaptel
# install udev rule file
insinto /etc/udev/rules.d
newins ${FILESDIR}/zaptel.udevd 10-zaptel.rules
# fix permissions if there's no udev / devfs around
if [[ -d ${D}/dev/zap ]]; then
chown -R root:dialout ${D}/dev/zap
chmod -R u=rwX,g=rwX,o= ${D}/dev/zap
fi
}
pkg_postinst() {
linux-mod_pkg_postinst
if use devfs26; then
ewarn "*** Warning! ***"
ewarn "Devfs support for linux-2.6 is experimental and not"
ewarn "supported by digium or the asterisk project!"
echo
ewarn "Send bug-reports to: stkn@gentoo.org"
fi
echo
einfo "Use the /etc/init.d/zaptel script to load zaptel.conf settings on startup!"
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
# fix permissions if there's no udev / devfs around
if [[ -d ${ROOT}/dev/zap ]]; then
chown -R root:dialout ${ROOT}/dev/zap
chmod -R u=rwX,g=rwX,o= ${ROOT}/dev/zap
fi
}
|