# Copyright 1999-2008 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-dialup/slmodem/slmodem-2.9.11_pre20080417.ebuild,v 1.3 2008/07/06 19:11:56 opfer Exp $ inherit eutils linux-mod multilib UNGRAB_PV="2.9.11-20080126" DESCRIPTION="Driver for Smart Link modem" HOMEPAGE="http://linmodems.technion.ac.il/packages/smartlink/" SRC_URI="http://linmodems.technion.ac.il/packages/smartlink/${P/_pre/-}.tar.gz http://linmodems.technion.ac.il/packages/smartlink/ungrab-winmodem-${UNGRAB_PV}.tar.gz" LICENSE="Smart-Link" SLOT="0" KEYWORDS="-* ~amd64 x86" IUSE="alsa usb" DEPEND="alsa? ( media-libs/alsa-lib ) amd64? ( app-emulation/emul-linux-x86-soundlibs )" RDEPEND="${DEPEND} virtual/logger" QA_EXECSTACK="usr/sbin/slmodem_test usr/sbin/slmodemd" S="${WORKDIR}"/${P/_pre/-} pkg_setup() { use amd64 && multilib_toolchain_setup x86 MODULE_NAMES="ungrab-winmodem(:${WORKDIR}/ungrab-winmodem-${UNGRAB_PV})" CONFIG_CHECK="" MY_SLMODULES="" if ! use amd64; then MODULE_NAMES="${MODULE_NAMES} slamr(net:${S}/drivers)" MY_SLMODULES="${MY_SLMODULES} slamr.o" fi if kernel_is ge 2 6 25; then if use usb; then ewarn "slusb module will not be installed because is not compatible with kernels >=2.6.25" fi elif use usb; then MODULE_NAMES="${MODULE_NAMES} slusb(net:${S}/drivers)" CONFIG_CHECK="${CONFIG_CHECK} USB" MY_SLMODULES="${MY_SLMODULES} slusb.o" fi BUILD_TARGETS="all" if kernel_is ge 2 6 24; then CONFIG_CHECK="${CONFIG_CHECK} PCI_LEGACY" fi linux-mod_pkg_setup BUILD_PARAMS="KERNEL_DIR=${KV_OUT_DIR}" } src_unpack() { unpack ${A} cd "${WORKDIR}" sed -i "s:SUBDIRS=\$(shell pwd):SUBDIRS=${WORKDIR}/ungrab-winmodem-${UNGRAB_PV}:" \ ungrab-winmodem-${UNGRAB_PV}/Makefile convert_to_m ungrab-winmodem-${UNGRAB_PV}/Makefile cd "${WORKDIR}/ungrab-winmodem-${UNGRAB_PV}" epatch "${FILESDIR}"/${PN}-ungrab-winmodem-hp500.patch cd "${S}" epatch "${FILESDIR}/${P%%_*}-makefile-r1.patch" epatch "${FILESDIR}/${P%%_*}-alsa-period-size.patch" cd "${S}"/drivers sed -i -e "s:SUBDIRS=\$(shell pwd):SUBDIRS=${S}/drivers:" \ -e "s|^obj-m:=.*$|obj-m:=${MY_SLMODULES}|" \ Makefile convert_to_m Makefile sed -i "s:.*=[ \t]*THIS_MODULE.*::" st7554.c amrmo_init.c old_st7554.c sed -i 's:MODULE_PARM(\([^,]*\),"i");:module_param(\1, int, 0);:' st7554.c \ amrmo_init.c old_st7554.c } src_compile() { local MAKE_PARAMS="" if use alsa; then MAKE_PARAMS="SUPPORT_ALSA=1" fi emake ${MAKE_PARAMS} modem || die "failed to build modem" use amd64 && multilib_toolchain_setup amd64 linux-mod_src_compile } src_install() { linux-mod_src_install cd "${S}" newsbin modem/modem_test slmodem_test dosbin modem/slmodemd dodir /var/lib/slmodem fowners root:dialout /var/lib/slmodem keepdir /var/lib/slmodem newconfd "${FILESDIR}/slmodem-confd" ${PN} newinitd "${FILESDIR}/slmodem-initd" ${PN} # configure for alsa - or not for alsa if use alsa; then sed -i -e "s/# MODULE=alsa/MODULE=alsa/" \ -e "s/# HW_SLOT=modem:1/HW_SLOT=modem:1/" "${D}/etc/conf.d/slmodem" elif use usb; then sed -i "s/# MODULE=slusb/MODULE=slusb/" "${D}/etc/conf.d/slmodem" else sed -i "s/# MODULE=slamr/MODULE=slamr/" "${D}/etc/conf.d/slmodem" fi # Add module aliases insinto /etc/modprobe.d/ newins "${FILESDIR}/slmodem-modprobe" ${PN} # Add configuration for udev dodir /etc/udev/rules.d/ echo 'KERNEL=="slamr", NAME="slamr0" GROUP="dialout"' > \ "${D}/etc/udev/rules.d/55-${PN}.rules" if use usb; then exeinto /$(get_libdir)/udev newexe "${FILESDIR}/slusb-udev.script" slmodem_usb.sh echo 'KERNEL=="slusb", NAME="slusb0" GROUP="dialout" RUN+="slmodem_usb.sh"' >> \ "${D}/etc/udev/rules.d/55-${PN}.rules" fi dodoc Changes README newdoc "${WORKDIR}"/ungrab-winmodem-${UNGRAB_PV}/Readme.txt README-ungrab-winmodem.txt } pkg_postinst() { linux-mod_pkg_postinst # Make some devices if we aren't using devfs or udev if [ -e "${ROOT}/dev/.udev" ]; then ebegin "Reloading udev rules..." udevcontrol reload_rules eend $? else cd "${S}/drivers" make DESTDIR="${ROOT}" install-devices fi ewarn "To avoid problems, slusb/slamr have been blacklisted in /etc/modprobe.d/${PN}" elog "You must edit /etc/conf.d/${PN} for your configuration" elog "To add slmodem to your startup - type : rc-update add slmodem default" elog if use alsa; then elog "I hope you have already added alsa to your startup: " elog "otherwise type: rc-update add alsasound boot" elog elog "If you need to use snd-intel8x0m from the kernel" elog "compile it as a module and edit /etc/modules.d/alsa" elog 'to: "alias snd-card-(number) snd-intel8x0m"' elog fi elog "You need to be in the uucp AND dialout group to make calls as a user." elog elog "If you see the following in dmesg:" elog " slamr: device 10b9:5457 is grabbed by driver serial" elog "you need to modprobe ungrab-winmodem before slamr" }