# Copyright 1999-2013 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/net-wireless/ndiswrapper/ndiswrapper-1.58_rc1.ebuild,v 1.3 2013/01/19 21:21:08 angelos Exp $ EAPI=4 inherit base linux-mod toolchain-funcs MY_PV=${PV/_} DESCRIPTION="Wrapper for using Windows drivers for some wireless cards" HOMEPAGE="http://ndiswrapper.sourceforge.net/" SRC_URI="mirror://sourceforge/${PN}/testing/${PN}-${MY_PV}.tar.gz" LICENSE="GPL-2" KEYWORDS="~amd64 ~x86" IUSE="debug usb" DEPEND="sys-apps/pciutils" RDEPEND="${DEPEND} net-wireless/wireless-tools" S=${WORKDIR}/${PN}-${MY_PV} PATCHES=( "${FILESDIR}"/${PN}-1.56-cflags.patch ) MODULE_NAMES="ndiswrapper(misc:${S}/driver)" BUILD_TARGETS="all" MODULESD_NDISWRAPPER_ALIASES=("wlan0 ndiswrapper") pkg_pretend() { CONFIG_CHECK="~WEXT_PRIV" use usb && CONFIG_CHECK="${CONFIG_CHECK} ~USB" ERROR_USB="You need to enable USB support in your kernel to use usb support in ndiswrapper." ERROR_WEXT_PRIV="Your kernel does not support WEXT_PRIV. To enable it you need to enable a wireless driver that enables it, for example PRISM54 or IPW2200" linux-mod_pkg_setup } src_prepare() { base_src_prepare # Linux 3.7 fix by Philip Müller sed -i "s|/include/linux/version.h|/include/generated/uapi/linux/version.h|g" driver/Makefile } src_compile() { local params="WRAP_WQ=1" # Enable verbose debugging information if use debug; then params="${params} DEBUG=3" use usb && params="${params} USB_DEBUG=1" fi cd utils emake CC=$(tc-getCC) use usb || params="${params} DISABLE_USB=1" BUILD_PARAMS="KSRC=${KV_DIR} KVERS=${KV_FULL} KBUILD='${KV_OUT_DIR}' ${params}" linux-mod_src_compile } src_install() { dodoc AUTHORS ChangeLog INSTALL README doman ndiswrapper.8 keepdir /etc/ndiswrapper linux-mod_src_install cd utils emake DESTDIR="${D}" install } pkg_postinst() { linux-mod_pkg_postinst echo elog "NDISwrapper requires .inf and .sys files from a Windows(tm) driver" elog "to function. Download these to /root for example, then" elog "run 'ndiswrapper -i /root/foo.inf'. After that you can delete them." elog "They will be copied to /etc/ndiswrapper/." elog "Once done, please run 'update-modules'." echo elog "Please look at ${HOMEPAGE}" elog "for the FAQ, HowTos, tips, configuration, and installation" elog "information." echo for i in $(lspci -n | egrep '(0280|0200):' | cut -d' ' -f1) do i_desc=$(lspci -nn | grep "$i" | awk -F': ' '{print $2}' | awk -F'[' '{print $1}') if [[ -n "${i_desc}" ]] ; then elog "Possible hardware: ${i_desc}" fi done echo elog "NDISwrapper devs need support (_hardware_, cash)." elog "Don't hesitate if you can help." elog "See ${HOMEPAGE} for details." echo if [[ ${ROOT} == "/" ]]; then einfo "Attempting to automatically reinstall any Windows drivers" einfo "you might already have." echo local driver for driver in $(ls /etc/ndiswrapper) ; do einfo "Driver: ${driver}" mv "/etc/ndiswrapper/${driver}" "${T}" ndiswrapper -i "${T}/${driver}/${driver}.inf" done fi }