123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- # Copyright 1999-2014 Gentoo Foundation
- # Distributed under the terms of the GNU General Public License v2
- EAPI=4
- inherit base linux-mod toolchain-funcs
- DESCRIPTION="Wrapper for using Windows drivers for some wireless cards"
- HOMEPAGE="http://ndiswrapper.sourceforge.net/"
- SRC_URI="mirror://sourceforge/${PN}/stable/${P}.tar.gz"
- LICENSE="GPL-2"
- KEYWORDS="amd64 x86"
- IUSE="debug usb"
- DEPEND="sys-apps/pciutils"
- RDEPEND="${DEPEND}
- net-wireless/wireless-tools"
- PATCHES=( "${FILESDIR}"/${P}-cflags.patch
- "${FILESDIR}"/${P}-3.14.patch
- "${FILESDIR}"/${P}-4.0.patch
- "${FILESDIR}"/${P}-4.2.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_compile() {
- local params
- # Enable verbose debugging information
- if use debug; then
- 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
- }
|