python312Packages.vdf: avoid using pname for src.repo
[NixPkgs.git] / pkgs / os-specific / linux / r8168 / default.nix
blob9806ddebb8d31a128e2d3e18e710950d0c49c773
1 { stdenv, lib, fetchFromGitHub, kernel }:
4 let modDestDir = "$out/lib/modules/${kernel.modDirVersion}/kernel/drivers/net/wireless/realtek/r8168";
6 in stdenv.mkDerivation rec {
7   name = "r8168-${kernel.version}-${version}";
8   # on update please verify that the source matches the realtek version
9   version = "8.053.00";
11   # This is a mirror. The original website[1] doesn't allow non-interactive
12   # downloads, instead emailing you a download link.
13   # [1] https://www.realtek.com/Download/List?cate_id=584
14   # I've verified manually (`diff -r`) that the source code for version 8.053.00
15   # is the same as the one available on the realtek website.
16   src = fetchFromGitHub {
17     owner = "mtorromeo";
18     repo = "r8168";
19     rev = version;
20     sha256 = "0bHGs8jyWd+ZiixOoNkBqhS9RjDpRp3vveAgk1YuOWU=";
21   };
23   hardeningDisable = [ "pic" ];
25   nativeBuildInputs = kernel.moduleBuildDependencies;
27   # avoid using the Makefile directly -- it doesn't understand
28   # any kernel but the current.
29   # based on the ArchLinux pkgbuild: https://git.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/r8168
30   makeFlags = kernel.makeFlags ++ [
31     "-C ${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"
32     "M=$(PWD)/src"
33     "modules"
34   ];
35   preBuild = ''
36     makeFlagsArray+=("EXTRA_CFLAGS=-DCONFIG_R8168_NAPI -DCONFIG_R8168_VLAN -DCONFIG_ASPM -DENABLE_S5WOL -DENABLE_EEE")
37   '';
39   enableParallelBuilding = true;
41   installPhase = ''
42     mkdir -p ${modDestDir}
43     find . -name '*.ko' -exec cp --parents '{}' ${modDestDir} \;
44     find ${modDestDir} -name '*.ko' -exec xz -f '{}' \;
45   '';
47   meta = with lib; {
48     description = "Realtek r8168 driver";
49     longDescription = ''
50       A kernel module for Realtek 8168 network cards.
51       If you want to use this driver, you might need to blacklist the r8169 driver
52       by adding "r8169" to boot.blacklistedKernelModules.
53     '';
54     license = licenses.gpl2Plus;
55     platforms = platforms.linux;
56     maintainers = [ ];
57     broken = lib.versionAtLeast kernel.modDirVersion "6.9";
58   };