summaryrefslogtreecommitdiff
path: root/net-wireless/ndiswrapper
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /net-wireless/ndiswrapper
reinit the tree, so we can have metadata
Diffstat (limited to 'net-wireless/ndiswrapper')
-rw-r--r--net-wireless/ndiswrapper/Manifest8
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.59-cflags.patch13
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.11.patch55
-rw-r--r--net-wireless/ndiswrapper/files/ndiswrapper-1.61-kernel-4.13.patch27
-rw-r--r--net-wireless/ndiswrapper/metadata.xml11
-rw-r--r--net-wireless/ndiswrapper/ndiswrapper-1.61.ebuild104
6 files changed, 218 insertions, 0 deletions
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 <felixonmars@archlinux.org>
+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 <linux/sched/signal.h>
++#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 <felixonmars@archlinux.org>
+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 <asm/dma-mapping.h>
+
++#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 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <longdescription lang="en">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.
+ </longdescription>
+ <upstream>
+ <remote-id type="sourceforge">ndiswrapper</remote-id>
+ </upstream>
+</pkgmetadata>
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
+}