From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- net-wireless/ndiswrapper/Manifest | 8 ++ .../files/ndiswrapper-1.59-cflags.patch | 13 +++ .../files/ndiswrapper-1.61-kernel-4.11.patch | 55 +++++++++++ .../files/ndiswrapper-1.61-kernel-4.13.patch | 27 ++++++ net-wireless/ndiswrapper/metadata.xml | 11 +++ net-wireless/ndiswrapper/ndiswrapper-1.61.ebuild | 104 +++++++++++++++++++++ 6 files changed, 218 insertions(+) create mode 100644 net-wireless/ndiswrapper/Manifest create mode 100644 net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch create mode 100644 net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.11.patch create mode 100644 net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.13.patch create mode 100644 net-wireless/ndiswrapper/metadata.xml create mode 100644 net-wireless/ndiswrapper/ndiswrapper-1.61.ebuild (limited to 'net-wireless/ndiswrapper') diff --git a/net-wireless/ndiswrapper/Manifest b/net-wireless/ndiswrapper/Manifest new file mode 100644 index 000000000000..12bb3001beda --- /dev/null +++ b/net-wireless/ndiswrapper/Manifest @@ -0,0 +1,8 @@ +AUX ndiswrapper-1.59-cflags.patch 357 SHA256 3f1c98336b5ef582db9556c9f2b9b459084eafb1bedb639c2cb795fcda958919 SHA512 8c65a5af71bf3035e2d784b29ad45dc48bd70b155d988c2e6d511eb03d9a319d355d67f74e3270816e943abe051e442efe891de1d649e871b7e3b05690c71a9d WHIRLPOOL 6b14014639e1f8e275feae73bcc7b009cc46f52379cb2c5bf456bfddd453d567afac8eb97734950c39dc6d015ed2e2f194618b64d8a894e343affb7ab622e8fc +AUX ndiswrapper-1.61-kernel-4.11.patch 1849 SHA256 2087925fbaeff36f9e9924bda1b2e4bdb71aa16aaec752a83d7633432c47c89e SHA512 04c60101754a3286f2454cc3b39455186a211b52e09eef21d094b5adea1c176631246a71e0ea26b67e76a6733fe4048cf545ace28ab505acc6df9881aca138be WHIRLPOOL bb815752a66efd50be6361c9d886a43d9d0453c5bcb5b14435f3ea845a698c03dbe472ca7d04ac4ce55cea7e8369198cf6c09b7b2da979ac43be480d4bfbf733 +AUX ndiswrapper-1.61-kernel-4.13.patch 987 SHA256 7d3bdc2f7113dcd13e9a40a1304f9bf4f5af173df9b943b96770257824012478 SHA512 df43f17f63b7842b9a22f285b5fdf7e28ef20e975cd86cbdaaff7426e7dc1b413b978c6e85ac76420131fa7139542ae499becf7276b0d3e17f2c45df7ba1d5c7 WHIRLPOOL 341dd89f8dc433d53fdac546d37a50ecf58b31e88b50a9d5a64adc8b6ac66d8a9ce8e44920372a7a149994588fdc4c51f7a2544332b753463d504237a019860f +DIST ndiswrapper-1.61.tar.gz 202240 SHA256 2ac1847c24cbfa4f48a800b04c9721219614f1663a4ac94af3c7939b45c47584 SHA512 67a50071a2e04113b91259e0d5236b4bf02b46a0d60ecae779c34e047f678c70b18e3191bad1435525c8499e554bd26794a03a79a71e1e603987432f4c590b43 WHIRLPOOL 39b2cae9eab28147a5e7103f1b4b2fa44618afe4d1bbdd6f8108180b867ec319f4f2a3f4dc7b1e141f51e39765dccb9c3476537ed4158d38f7ff9eda3ffd2bea +EBUILD ndiswrapper-1.61.ebuild 2672 SHA256 3b0bce12a052bf28e25d270812a51572ab1e83706da4b876a449fd7dd7afedef SHA512 99155f057a18fdb9f7fc46bd5b69f42d190d86dcaa8929e243dcb813dee80766e972699cd2a7a5116824f57a23b884f83e0390f66ef6fe427029a6224261e5a7 WHIRLPOOL 99332ae08a941e34d969623aa251eb3cb264b6acba962042e04d543e14736a067a1fd6d6ce8608e49529d0d427f25c086c263fa57392dd2ed8cc7d1007f421a6 +MISC ChangeLog 2894 SHA256 1c243d86a200cd439336de116f5f6552f9e2c31e3fe3837dc03e13ee167b4462 SHA512 e61db565d9f314bc5380c212194538798039fe6bf06f56256563c2ba8ee13cbe696a840816fbc3f7abc5b6f80e580c0b7e15a2df7c561580fe9a349575ef063e WHIRLPOOL 8411de5aee05b18761ebda1e962db0dd21d024c9e12a3a5ddf7e77c8feaf1139c04cba7b7e1ff0b5e27a58dddb5d9ea9213e0a2410aba34f876187dc1c3b6d46 +MISC ChangeLog-2015 23433 SHA256 5dca7aef511164eb17d0ad658442c52d58fc0101cb7f9900c5122cc4778906d3 SHA512 d8e6651f268162b6a45e82ac347077b38be9e46bfe8fe28626f2527e1e76432fe0eadfb91811d020ba072b90b28aa28e0ccaab8eed1e205404646f33c84a26a4 WHIRLPOOL d0a938dc87a15212786d60aaccef920b6cdf6579d33232a3f40189b8527733a96d830a1718deb9307b245199e606654a5a7db6ae7d9d89226ec49dcedd3423bb +MISC metadata.xml 443 SHA256 cb78e029ce58d9e47ef90af0c1e60d59281a9b8a0714aa7a24537b68eb3b73e5 SHA512 5ca78950fbcacddec5ac12085ccc1314e0f55f2cf40d78374049c6dc5c7de39f4835eb586aa851373d80d3800c8c54079ef078bf187e85892ef23b0cd6d1bbd0 WHIRLPOOL ddd43976589f57a72286424130a6deb4c4f9afeba5534938470314b17a518d9fe34e6874eeb77a2e9a3bf059a46292e7ae4c8b8bb3feaeadb9c5f5f6b8ea2cca diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch new file mode 100644 index 000000000000..25359c7c30c1 --- /dev/null +++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch @@ -0,0 +1,13 @@ +diff --git a/utils/Makefile b/utils/Makefile +index 0e763c6..d555dda 100644 +--- a/utils/Makefile ++++ b/utils/Makefile +@@ -6,7 +6,7 @@ HEADERS = $(DRIVER_DIR)/loader.h $(DRIVER_DIR)/ndiswrapper.h + + CC = gcc + HOSTCC = $(CC) +-CFLAGS = -g -Wall -I$(DRIVER_DIR) ++CFLAGS += -I$(DRIVER_DIR) + + DISTFILES=Makefile ndiswrapper loadndisdriver.c ndiswrapper-buginfo + diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.11.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.11.patch new file mode 100644 index 000000000000..f39c7bde4d20 --- /dev/null +++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.11.patch @@ -0,0 +1,55 @@ +commit fa2aeeccd5366378ca2eb83c6daee64b511fe792 +Author: Felix Yan +Date: Tue May 16 01:32:56 2017 +0800 + + Add support for Linux 4.11+ + +diff --git a/ndiswrapper/driver/ndis.c b/ndiswrapper/driver/ndis.c +index c1913a05..2ab4dd21 100644 +--- a/driver/ndis.c ++++ b/driver/ndis.c +@@ -2258,7 +2258,9 @@ wstdcall void NdisMIndicateReceivePacket(struct ndis_mp_block *nmb, + WARNING("empty packet ignored"); + continue; + } ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + wnd->net_dev->last_rx = jiffies; ++#endif + /* get total number of bytes in packet */ + NdisGetFirstBufferFromPacketSafe(packet, &buffer, &virt, + &length, &total_length, +@@ -2346,7 +2348,9 @@ wstdcall void EthRxIndicateHandler(struct ndis_mp_block *nmb, void *rx_ctx, + ERROR("nmb is NULL"); + EXIT3(return); + } ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + wnd->net_dev->last_rx = jiffies; ++#endif + + if (look_ahead_size < packet_size) { + struct ndis_packet *packet; +@@ -2461,7 +2465,9 @@ wstdcall void NdisMTransferDataComplete(struct ndis_mp_block *nmb, + WARNING("illegal packet"); + EXIT3(return); + } ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 11, 0) + wnd->net_dev->last_rx = jiffies; ++#endif + oob_data = NDIS_PACKET_OOB_DATA(packet); + skb_size = sizeof(oob_data->header) + oob_data->look_ahead_size + + bytes_txed; +diff --git a/ndiswrapper/driver/ntoskernel.h b/ndiswrapper/driver/ntoskernel.h +index 3c4c6ff0..f1c52e51 100644 +--- a/driver/ntoskernel.h ++++ b/driver/ntoskernel.h +@@ -296,6 +296,10 @@ static inline void (INIT_WORK)(struct work_struct *work, work_func_t func) + #define add_taint(flag, lockdep_ok) add_taint(flag) + #endif + ++#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 11, 0) ++#include ++#endif ++ + #include "winnt_types.h" + #include "ndiswrapper.h" + #include "pe_linker.h" diff --git a/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.13.patch b/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.13.patch new file mode 100644 index 000000000000..052c4d9b9bf9 --- /dev/null +++ b/net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.13.patch @@ -0,0 +1,27 @@ +commit eeac7ab831b3097005dadc64dd323f54ade30323 +Author: Felix Yan +Date: Mon Sep 11 12:52:36 2017 +0800 + + Add support for linux 4.13+ + +diff --git a/ndiswrapper/driver/ntoskernel.h b/ndiswrapper/driver/ntoskernel.h +index f1c52e51..1422bd4d 100644 +--- a/driver/ntoskernel.h ++++ b/driver/ntoskernel.h +@@ -119,9 +119,16 @@ static cpumask_t cpumasks[NR_CPUS]; + */ + #include + ++#if LINUX_VERSION_CODE < KERNEL_VERSION(4, 13, 0) + #define PCI_DMA_ALLOC_COHERENT(pci_dev,size,dma_handle) \ + dma_alloc_coherent(&pci_dev->dev,size,dma_handle, \ + GFP_KERNEL | __GFP_REPEAT) ++#else ++#define PCI_DMA_ALLOC_COHERENT(pci_dev,size,dma_handle) \ ++ dma_alloc_coherent(&pci_dev->dev,size,dma_handle, \ ++ GFP_KERNEL | __GFP_RETRY_MAYFAIL) ++#endif ++ + #define PCI_DMA_FREE_COHERENT(pci_dev,size,cpu_addr,dma_handle) \ + dma_free_coherent(&pci_dev->dev,size,cpu_addr,dma_handle) + #define PCI_DMA_MAP_SINGLE(pci_dev,addr,size,direction) \ diff --git a/net-wireless/ndiswrapper/metadata.xml b/net-wireless/ndiswrapper/metadata.xml new file mode 100644 index 000000000000..ae18df81016b --- /dev/null +++ b/net-wireless/ndiswrapper/metadata.xml @@ -0,0 +1,11 @@ + + + + ndiswrapper provides a kernel module and utility for + implementing the Windows(tm) NDIS API. This serves to provide drivers + for wireless cards that have no native support. + + + ndiswrapper + + diff --git a/net-wireless/ndiswrapper/ndiswrapper-1.61.ebuild b/net-wireless/ndiswrapper/ndiswrapper-1.61.ebuild new file mode 100644 index 000000000000..bcb493f1a556 --- /dev/null +++ b/net-wireless/ndiswrapper/ndiswrapper-1.61.ebuild @@ -0,0 +1,104 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=6 +inherit linux-mod readme.gentoo-r1 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 +" + +DOC_CONTENTS=" + NDISwrapper requires .inf and .sys files from a Windows(tm) driver + to function. Download these to /root for example, then + run 'ndiswrapper -i /root/foo.inf'. After that you can delete them. + They will be copied to /etc/ndiswrapper/. Once done, please run 'update-modules'. + Please look at http://ndiswrapper.sourceforge.net/for the FAQ, HowTos, tips, + configuration, and installation information. +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.59-cflags.patch + "${FILESDIR}"/${PN}-1.61-kernel-4.11.patch + "${FILESDIR}"/${PN}-1.61-kernel-4.13.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() { + einstalldocs + doman ndiswrapper.8 + + keepdir /etc/ndiswrapper + + linux-mod_src_install + + cd utils + emake DESTDIR="${D}" install + readme.gentoo_create_doc +} + +pkg_postinst() { + linux-mod_pkg_postinst + + readme.gentoo_print_elog + + 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 + + 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 +} -- cgit v1.2.3