diff options
Diffstat (limited to 'net-dialup/fcdsl/fcdsl-2.6.30.ebuild')
-rw-r--r-- | net-dialup/fcdsl/fcdsl-2.6.30.ebuild | 309 |
1 files changed, 309 insertions, 0 deletions
diff --git a/net-dialup/fcdsl/fcdsl-2.6.30.ebuild b/net-dialup/fcdsl/fcdsl-2.6.30.ebuild new file mode 100644 index 000000000000..4252300d89f7 --- /dev/null +++ b/net-dialup/fcdsl/fcdsl-2.6.30.ebuild @@ -0,0 +1,309 @@ +# Copyright 1999-2005 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/net-dialup/fcdsl/fcdsl-2.6.30.ebuild,v 1.1 2005/07/28 22:37:01 sbriesen Exp $ + +inherit linux-mod eutils rpm + +DESCRIPTION="AVM FRITZ!Card DSL drivers for 2.6 kernel" +HOMEPAGE="http://www.avm.de/" + +FCDSL_MODULES=("fcdsl" "fcdsl2" "fcdslsl" "fcdslusb" "fcdslslusb" "fcdslusba" + "fcdslusb2") +FCDSL_NAMES=("AVM FRITZ!Card DSL" "AVM FRITZ!Card DSL v2.0" + "AVM FRITZ!Card DSL SL" "AVM FRITZ!Card DSL USB" "AVM FRITZ!Card DSL SL USB" + "AVM Fritz!Card DSL USB analog" "AVM Fritz!Card DSL USB v2.0") +FCDSL_BUSTYPES=("pci" "pci" "pci" "usb" "usb" "usb" "usb") +FCDSL_IDS=("1131:5402" "1244:2900" "1244:2700" "057c:2300" "057c:3500" + "057c:3000" "057c:3600") +FCDSL_FIRMWARES=("fdslbase.bin" "fds2base.bin" "fdssbase.bin" "fdsubase.frm" + "fdlubase.frm" "fdlabase.frm" "fds2base.frm") + +FCDSL_DIRS=("fritzcrd.dsl" "fritzcrd.dsl_v20" "fritzcrd.dsl_sl" + "fritzcrd.dsl_usb" "fritzcrd.dsl_sl_usb" "fritzcrd.dsl_usb_analog" + "fritzcrd.dsl_usb") +FCDSL_FILES=("fcdsl-suse93-3.11-07" "fcdsl2-suse93-3.11-07" + "fcdslsl-suse93-3.11-07" "fcdslusb-suse93-3.11-07" + "fcdslslusb-suse93-3.11-05" "fcdslusba-suse93-3.11-05" + "fcdslusb-suse93-3.11-07") +for ((CARD=0; CARD < ${#FCDSL_DIRS[*]}; CARD++)); do + FCDSL_SRC[${CARD}]="ftp://ftp.avm.de/cardware/${FCDSL_DIRS[CARD]}/linux/suse.93/${FCDSL_FILES[CARD]}.tar.gz" +done + +#specific selection +for ((CARD=0; CARD < ${#FCDSL_SRC[*]}; CARD++)); do + SRC_URI="${SRC_URI} fcdsl_cards_${FCDSL_MODULES[CARD]}? ( ${FCDSL_SRC[CARD]} )" +done + +#in case nothing is selected take all SRC_URI's +for ((CARD=0; CARD < ${#FCDSL_SRC[*]}; CARD++)); do + BEGIN="${BEGIN} !fcdsl_cards_${FCDSL_MODULES[CARD]}? (" + MIDDLE="${MIDDLE} ${FCDSL_SRC[CARD]}" + END="${END} )" +done +SRC_URI="${SRC_URI}${BEGIN}${MIDDLE}${END} + amd64? ( ftp://ftp.gwdg.de/pub/linux/suse/ftp.suse.com/suse/i386/9.3/suse/x86_64/km_${P/2.6./2.6-}.x86_64.rpm )" + +LICENSE="LGPL-2" +KEYWORDS="~x86 -*" +IUSE="unicode" +SLOT="0" +S=${WORKDIR}/fritz + +RDEPEND=">=net-dialup/capi4k-utils-20040810" + +pkg_setup() { + CONFIG_CHECK="ISDN_CAPI_CAPI20" + linux-mod_pkg_setup + + MODULE_NAMES="" + #Check existence of user selected cards + if [ -n "${FCDSL_CARDS}" ] ; then + for USERCARD in ${FCDSL_CARDS} ; do + for ((CARD=0; CARD < ${#FCDSL_MODULES[*]}; CARD++)); do + if [ "${USERCARD}" = "${FCDSL_MODULES[CARD]}" ]; then + MODULE_NAMES="${MODULE_NAMES} ${FCDSL_MODULES[CARD]}(net:${WORKDIR}/${FCDSL_MODULES[CARD]/fc/fritz.}/src)" + continue 2 + fi + done + die "Driver for ${USERCARD} not present in ${P}" + done + else + einfo + einfo "You can control the modules which are built with the variable" + einfo "FCDSL_CARDS which should contain a blank separated list" + einfo "of a selection from the following cards:" + einfo " ${FCDSL_MODULES[*]}" + for ((CARD=0; CARD < ${#FCDSL_MODULES[*]}; CARD++)); do + MODULE_NAMES="${MODULE_NAMES} ${FCDSL_MODULES[CARD]}(net:${WORKDIR}/${FCDSL_MODULES[CARD]/fc/fritz.}/src)" + done + fi + BUILD_TARGETS="all" + BUILD_PARAMS="KDIR=${KV_DIR} LIBDIR=${S}" +} + +src_unpack() { + for ((CARD=0; CARD < ${#FCDSL_MODULES[*]}; CARD++)); do + if [ -f ${DISTDIR}/${FCDSL_FILES[CARD]}.tar.gz ]; then + [ -e fritz ] && rm fritz + tar xzf ${DISTDIR}/${FCDSL_FILES[CARD]}.tar.gz + if [ "${FCDSL_FILES[CARD]}" == "fcdslusb-suse93-3.11-07" ]; then + mv fritz fritz.dslusb1 + ln -s fritz.dslusb1/1/fritz fritz.dslusb + ln -s fritz.dslusb1/2/fritz fritz.dslusb2 + else + mv fritz ${FCDSL_MODULES[CARD]/fc/fritz.} + fi + cd ${FCDSL_MODULES[CARD]/fc/fritz.}/src + [ -f ${FILESDIR}/${FCDSL_MODULES[CARD]}.diff ] && patch -p0 < ${FILESDIR}/${FCDSL_MODULES[CARD]}.diff + cd ../.. + ln -s ${FCDSL_MODULES[CARD]/fc/fritz.} fritz + fi + done + use amd64 && rpm_unpack ${DISTDIR}/km_${P/2.6./2.6-}.x86_64.rpm + + # convert docs from latin1 to UTF-8 + if useq unicode; then + for i in fritz/compile-help-german.txt; do + einfo "Converting '${i##*/}' to UTF-8" + iconv -f latin1 -t utf8 -o "${i}~" "${i}" && mv -f "${i}~" "${i}" || rm -f "${i}~" + done + fi +} + +src_install() { + linux-mod_src_install + + dodir /lib/firmware + + for ((CARD=0; CARD < ${#FCDSL_MODULES[*]}; CARD++)); do + if [ -n "${FCDSL_CARDS}" ] ; then + INS="" + for USERCARD in ${FCDSL_CARDS} ; do + if [ "${USERCARD}" = "${FCDSL_MODULES[CARD]}" ]; then INS="1"; fi + done + if [ -z "${INS}" ]; then continue; fi + fi + + insinto /lib/firmware + doins ${WORKDIR}/${FCDSL_MODULES[CARD]/fc/fritz.}/${FCDSL_FIRMWARES[CARD]} + done + + dodoc *.txt + dohtml *.html *.jpg +} + +pkg_postinst() { + update_depmod + + einfo "The preferred way to setup your card is either /etc/capi.conf" + einfo "or hotplug, since USB-Cards are detected automatically." + einfo + einfo "If you want to setup your DSL card driver and create a peer file, please run:" + einfo " etc-update" + einfo " ebuild /var/db/pkg/net-dialup/${PF}/${PF}.ebuild config" + einfo " /etc/init.d/capi start" + einfo " drdsl" + ewarn + ewarn "'drdsl' has now its own ebuild. Please emerge net-dialup/drdsl." + epause 10 +} + +#pkg-config functions + +detect_fcdsl_card() { + PCI_IDS="" + USB_IDS="" + if [ -d /sys/bus ]; then + if [ -d /sys/bus/pci/devices ]; then + cd /sys/bus/pci/devices + for PCI_DEVICE in *; do + vendor="$(< ${PCI_DEVICE}/vendor)" + device="$(< ${PCI_DEVICE}/device)" + PCI_IDS="${PCI_IDS}${vendor:2}:${device:2} " + done + fi + if [ -d /sys/bus/usb/devices ]; then + cd /sys/bus/usb/devices + for USB_DEVICE in [0-9]*; do + if [ -f ${USB_DEVICE}/idVendor ]; then + USB_IDS="${USB_IDS}$(< ${USB_DEVICE}/idVendor):$(< ${USB_DEVICE}/idProduct) " + fi + done + fi + fi + + FCDSL_MODULE="" + for ((CARD=0; CARD < ${#FCDSL_IDS[*]}; CARD++)); do + BUS_IDS="" + if [ "${FCDSL_BUSTYPES[CARD]}" == "pci" ]; then + BUS_IDS="${PCI_IDS}" + else + BUS_IDS="${USB_IDS}" + fi + for BUS_ID in ${BUS_IDS}; do + if [ "${BUS_ID}" == "${FCDSL_IDS[CARD]}" ]; then + einfo "Found: ${FCDSL_NAMES[CARD]}" + FCDSL_FIRMWARE=${FCDSL_FIRMWARES[CARD]} + FCDSL_MODULE=${FCDSL_MODULES[CARD]} + fi + done + done + if [ "${FCDSL_MODULE}" == "" ]; then + ewarn "No AVM FRITZ!Card DSL found!" + fi +} + +readpassword() { + VALUE_1="" + VALUE_2="" + while true; do + einfo "Enter your password:" + read -r -s VALUE_1 + einfo "Retype your password:" + read -r -s VALUE_2 + if [ "${VALUE_1}" == "" ]; then + echo + eerror "You entered a blank password. Please try again." + echo + else + if [ "${VALUE_1}" == "${VALUE_2}" ] ; then + break + else + echo + eerror "Your password entries do not match. Please try again." + echo + fi + fi + done + eval ${1}=${VALUE_1} + + VALUE_1="" + VALUE_2="" + unset VALUE_1 + unset VALUE_2 +} + +readvalue() { + VALUE="" + while true; do + einfo "${2}:" + read VALUE + if [ "${VALUE}" == "" ]; then + eerror "You entered a blank value. Please try again." + echo + else + break + fi + done + eval ${1}=${VALUE} + + VALUE="" + unset VALUE +} + +pkg_config() { + detect_fcdsl_card + + if [ "${FCDSL_MODULE}" != "" ]; then + readvalue FCDSL_PROVIDER "Enter the name of your ISP" + if [ ! -e "/etc/ppp/peers/${FCDSL_PROVIDER}" ]; then + readvalue FCDSL_USER "Enter your user name" + if ! grep "${FCDSL_USER}" /etc/ppp/pap-secrets >/dev/null 2>&1; then + readpassword FCDSL_PASSWORD + echo '"'${FCDSL_USER}'" * "'${FCDSL_PASSWORD}'"' >>/etc/ppp/pap-secrets + unset FCDSL_PASSWORD + cat <<EOF >/etc/ppp/peers/${FCDSL_PROVIDER} +connect "" +ipcp-accept-remote +ipcp-accept-local +usepeerdns +defaultroute +user "${FCDSL_USER}" +hide-password +sync +noauth +lcp-echo-interval 5 +lcp-echo-failure 3 +lcp-max-configure 50 +lcp-max-terminate 2 +noccp +noipx +noproxyarp +mru 1492 +mtu 1492 +linkname "${FCDSL_PROVIDER}" +ipparam internet +plugin capiplugin.so +avmadsl +: +/dev/null +EOF + echo + echo + echo + einfo "Now, you can start an ADSL connection with either" + einfo " pon \"${FCDSL_PROVIDER}\"" + einfo "or" + einfo " pppd call \"${FCDSL_PROVIDER}\"" + else + ewarn "User \"${FCDSL_USER}\" already exists in \"/etc/ppp/pap-secrets\"!" + fi + else + ewarn "Peer file \"/etc/ppp/peers/${FCDSL_PROVIDER}\" already exists!" + fi + + #Uncomment correspondent lines in /etc/capi.conf & /etc/modules.d/fcdsl + if [ -f /etc/capi.conf ]; then + sed -i -e "s:^#${FCDSL_MODULE}:${FCDSL_MODULE}:" \ + /etc/capi.conf >/dev/null 2>&1 + fi + if [ -f /etc/modules.d/fcdsl ]; then + sed -i -e "s:^#options ${FCDSL_MODULE}:options ${FCDSL_MODULE}:" \ + /etc/modules.d/fcdsl >/dev/null 2>&1 + fi + else + ewarn "No AVM FRITZ!Card DSL found!" + fi + unset FCDSL_PROVIDER + unset FCDSL_USER +} |