diff options
Diffstat (limited to 'pkgs/os-specific/linux/ndiswrapper')
-rw-r--r-- | pkgs/os-specific/linux/ndiswrapper/default.nix | 46 | ||||
-rw-r--r-- | pkgs/os-specific/linux/ndiswrapper/no-sbin.patch | 11 |
2 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/ndiswrapper/default.nix b/pkgs/os-specific/linux/ndiswrapper/default.nix new file mode 100644 index 00000000000..2db046e6392 --- /dev/null +++ b/pkgs/os-specific/linux/ndiswrapper/default.nix @@ -0,0 +1,46 @@ +{ lib, stdenv, fetchurl, kernel, perl, kmod, libelf }: +let + version = "1.63"; +in +stdenv.mkDerivation { + name = "ndiswrapper-${version}-${kernel.version}"; + inherit version; + + hardeningDisable = [ "pic" ]; + + patches = [ ./no-sbin.patch ]; + + # need at least .config and include + kernel = kernel.dev; + + buildPhase = " + echo make KBUILD=$(echo \$kernel/lib/modules/*/build); + echo -n $kernel/lib/modules/*/build > kbuild_path + export PATH=${kmod}/sbin:$PATH + make KBUILD=$(echo \$kernel/lib/modules/*/build); + "; + + installPhase = '' + make install KBUILD=$(cat kbuild_path) DESTDIR=$out + mv $out/usr/sbin/* $out/sbin/ + mv $out/usr/share $out/ + rm -r $out/usr + + patchShebangs $out/sbin + ''; + + src = fetchurl { + url = "mirror://sourceforge/ndiswrapper/files/stable/ndiswrapper-${version}.tar.gz"; + sha256 = "1v6b66jhisl110jfl00hm43lmnrav32vs39d85gcbxrjqnmcx08g"; + }; + + buildInputs = [ perl libelf ]; + + meta = { + description = "Ndis driver wrapper for the Linux kernel"; + homepage = "https://sourceforge.net/projects/ndiswrapper"; + license = "GPL"; + platforms = [ "i686-linux" "x86_64-linux" ]; + broken = lib.versionAtLeast kernel.version "5.8"; + }; +} diff --git a/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch b/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch new file mode 100644 index 00000000000..373965fb085 --- /dev/null +++ b/pkgs/os-specific/linux/ndiswrapper/no-sbin.patch @@ -0,0 +1,11 @@ +--- a/driver/Makefile ++++ b/driver/Makefile +@@ -191,7 +191,7 @@ clean: + rm -rf .tmp_versions + + install: config_check $(MODULE) +- @/sbin/modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \ ++ @modinfo $(MODULE) | grep -q "^vermagic: *$(KVERS) " || \ + { echo "$(MODULE)" is not for Linux $(KVERS); exit 1; } + mkdir -p -m 755 $(DESTDIR)$(INST_DIR) + install -m 0644 $(MODULE) $(DESTDIR)$(INST_DIR) |