summaryrefslogtreecommitdiff
blob: 22e5776f352234b06e4792083f59fbe6b50ab377 (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-dialup/isdn4k-utils/isdn4k-utils-3.5_pre20041110-r3.ebuild,v 1.1 2004/12/03 18:45:00 mrness Exp $

inherit eutils

MY_PV="${PV/*_pre/}"
MY_P="${PN}-CVS-${MY_PV:0:4}-${MY_PV:4:2}-${MY_PV:6:2}"
S="${WORKDIR}/${MY_P}"

DESCRIPTION="ISDN4Linux Utils"
SRC_URI="ftp://ftp.isdn4linux.de/pub/isdn4linux/CVS-Snapshots/${MY_P}.tar.bz2"
HOMEPAGE="http://www.isdn4linux.de/"

KEYWORDS="~x86 ~amd64 ~alpha"
LICENSE="GPL-2"
IUSE="X unicode"
SLOT="0"

DEPEND="virtual/linux-sources
	virtual/libc
	sys-libs/ncurses
	sys-libs/gdbm
	dev-lang/tcl
	X? ( virtual/x11 )"
RDEPEND="${DEPEND}
	virtual/modutils"

pkg_setup() {
	# Get country code from I4L_CC variable
	# default country: DE (Germany)
	I4L_CC=$(echo -n "${I4L_CC}" | tr "[:lower:]" "[:upper:]")
	[ -z "${I4L_CC}" ] && I4L_CC="DE"
	I4L_CC_LOW=$(echo -n "${I4L_CC}" | tr "[:upper:]" "[:lower:]")

	# Get language from I4L_LANG variable ('de' or 'en')
	I4L_LANG=$(echo -n "${I4L_CC}" | tr "[:lower:]" "[:upper:]")
	if [ -z "${I4L_LANG}" ]; then
		case "${I4L_CC}" in
			AT|CH|DE)
				I4L_LANG="DE"
				;;
			*)
				I4L_LANG="EN"
				;;
		esac
	fi
	[ "${I4L_LANG}" = "DE" -o "${I4L_LANG}" = "EN" ] || I4L_LANG="EN"
}

src_unpack() {
	unpack ${A}
	cd ${S}

	# fix for 2.6 headers
	find . -name "*.c" | \
	xargs -r sed -i -e 's:linux/capi.h>$:linux/compiler.h>\n#include <linux/capi.h>:g'

	# patch all Makefiles to use our CFLAGS
	find . -name "Makefile*" | \
	xargs -r sed -i -e "s:^CFLAGS\(.*\)-O[26]:CFLAGS\1${CFLAGS}:g" \
					-e "s:^CFLAGS\(.*\)-g:CFLAGS\1${CFLAGS}:g" \
					-e "s:^CFLAGS = -Wall$:CFLAGS = ${CFLAGS}:g" || die "sed failed"

	# install our config
	case "${I4L_CC}" in
		DE|AT|NL|LU|CH)
			# These countries are specially supported in the isdnlog source.
			sed -e "s:^CONFIG_ISDN_LOG_XX=:CONFIG_ISDN_LOG_${I4L_CC}=:g" -e "s:^CONFIG_ISDN_LOG_CC=.*$:#:g" \
				-e "s:^\(CONFIG_ISDN_LOG_CC_\)..=:\1${I4L_LANG}=:g" < ${FILESDIR}/${PV}/config > .config || die "failed to modify .config"
			;;
		*)
			# Others get a generic isdnlog.
			sed -e "s:^\(CONFIG_ISDN_LOG_CC=\).*$:\1'${I4L_CC_LOW}':g" \
				-e "s:^\(CONFIG_ISDN_LOG_CC_\)..=:\1${I4L_LANG}=:g" < ${FILESDIR}/${PV}/config > .config || die "failed to modify .config"
			;;
	esac

	useq X || \
		sed -i -e "s:^CONFIG_BUILDX11=.*$:#:g" \
			-e "s:^CONFIG_XISDNLOAD=.*$:#:g" \
			-e "s:^CONFIG_XMONISDN=.*$:#:g" .config

	# Patch in order to make generic config for countries which are not known to isdnlog source
	sed -i -e "s:\$(INSTALL_DATA) rate-:-\$(INSTALL_DATA) rate-:g" \
		-e "s:\$(INSTALL_DATA) holiday-:-\$(INSTALL_DATA) holiday-:g" isdnlog/Makefile.in

	# if specified, convert all relevant files from latin1 to UTF-8
	if useq unicode; then
		for i in isdnlog/samples/{isdn,rate}.conf* isdnlog/*-{at,ch,de,no}.dat isdnlog/{Isdn,.country-alias}; do
			iconv -f latin1 -t utf8 -o "${i}~" "${i}" && mv -f "${i}~" "${i}" || rm -f "${i}~"
		done
	fi
}

src_compile() {
	make subconfig || die "make subconfig failed"
	make || die "make failed"
}

src_install() {
	keepdir /var/lib/isdn
	dodir /dev /etc/isdn /usr/bin /usr/sbin
	make DESTDIR=${D} install || die "make install failed"

	# remove obsolete firmware files
	rm -f ${D}/usr/share/isdn/{bip1120.btl,dnload.bin,ds4bri.bit,dspdload.bin}
	rm -f ${D}/usr/share/isdn/{loadpg.bin,pc_??_ca.bin,prload.bin,te_????.*}

	# install docs (base)
	dodoc NEWS README Mini-FAQ/isdn-faq.txt scripts/makedev.sh FAQ/_howto/xp*

	# install docs (ipppd)
	docinto ipppd
	dodoc LEGAL.ipppcomp ipppd/{README,README.*.ORIG,NOTES.IPPPD} ipppcomp/README.LZS  # ipppd/README.RADIUS
	docinto ipppd/example
	dodoc FAQ/_example/*.txt
	docinto ipppd/howto
	dodoc FAQ/_howto/{dns*,i4l_ipx*,isdn*,lan*,leased*,masq*,mppp*,ppp*,route*}

	# install docs (isdnlog)
	docinto isdnlog
	dodoc isdnlog/{BUGS,FAQ,Isdn,NEWS,README*} FAQ/_howto/win*
	docinto isdnlog/areacode
	dodoc areacode/*.doc
	docinto isdnlog/contrib/isdnbill
	dodoc isdnlog/contrib/isdnbill/{*.isdnbill,*.gz}
	docinto isdnlog/contrib/winpopup
	dodoc isdnlog/contrib/winpopup/*

	# install docs (eft)
	docinto eft
	dodoc eurofile/{CHANGES,INSTALL,README*,TODO}
	newdoc eurofile/src/wuauth/README README.AUTHLIB
	docinto eft/scripts
	dodoc eurofile/scripts/{eft_useradd,check_system,ix25test,eftd.sh,eftp.sh}

	# install init-scripts
	exeinto /etc/init.d
	newexe ${FILESDIR}/${PV}/isdn.init isdn
	newexe ${FILESDIR}/${PV}/net.ippp0 net.ippp0
	newexe ${FILESDIR}/${PV}/isdnlog.init isdnlog.contr0

	# install init-configs
	insinto /etc/conf.d
	newins ${FILESDIR}/${PV}/isdn.conf isdn
	newins ${FILESDIR}/${PV}/isdnlog.conf isdnlog.contr0

	# install example scripts and configs
	exeinto /etc/ppp
	insinto /etc/ppp
	doexe ${FILESDIR}/${PV}/{ip-up,ip-down}
	doins ${FILESDIR}/${PV}/{ioptions,options.ippp0}

	# install example configs
	insinto /etc/isdn
	doins isdnlog/samples/{isdn,rate}.conf.{at,de,lu,nl,no,pl}
	newins isdnlog/samples/isdn.conf isdn.conf.unknown
	if [ -f isdnlog/samples/isdn.conf.${I4L_CC_LOW} ]; then
		newins isdnlog/samples/isdn.conf.${I4L_CC_LOW} isdn.conf
	else
		doins isdnlog/samples/isdn.conf
	fi
	if [ -f isdnlog/samples/rate.conf.${I4L_CC_LOW} ]; then
		newins isdnlog/samples/rate.conf.${I4L_CC_LOW} rate.conf
	fi
	sed -i -e "s:/usr/lib/isdn/:/usr/share/isdn/:g" ${D}/etc/isdn/isdn.conf*

	# install sample provider script
	exeinto /etc/isdn
	doexe isdnlog/samples/provider

	# rename isdnlog options file
	insinto /etc/isdn
	mv -f ${D}/etc/isdn/isdnlog.isdnctrl0.options ${D}/etc/isdn/isdnlog.options.contr0

	# install isdnlog data files
	insinto /usr/share/isdn
	doins isdnlog/*.dat

	# install logrotate configs
	insinto /etc/logrotate.d
	newins ${FILESDIR}/${PV}/isdnlog.logrotated isdnlog

	# ipppd module from sys-apps/baselayout  thinks ipppd should be in /sbin; waiting #73067 to be solved
	dodir /sbin
	dosym /usr/sbin/ipppd /sbin/ipppd
}

pkg_postinst() {
	einfo
	einfo "Please edit:"
	einfo
	einfo "- /etc/conf.d/isdn   to contain your ISDN kernel modules"
	einfo "- /etc/ppp/*         critical if you need networking"
	einfo
	einfo "For isdnlog you should edit:"
	einfo
	einfo "- /etc/conf.d/isdnlog.contr0"
	einfo "- /etc/isdn/isdnlog.options.contr0"
	einfo "- /etc/isdn/*.conf"
	einfo
	einfo "/etc/init.d/isdn will save and restore your isdnctrl config."
	einfo "it will also handle the modem-register daemon."
	einfo
	einfo "/etc/init.d/net.ippp0 will start synchronous PPP connections"
	einfo "which you need to set up using isdnctrl first!"
	einfo
	einfo "/etc/init.d/isdnlog.contr0 starts and stops isdnlog for contr0"
	einfo "You can symlink it to isdnlog.contr1 and copy the corresponding"
	einfo "configs if you have more than one card."
	einfo
}