lol
1{ lib, callPackage, fetchurl, fetchpatch }:
2
3let
4 generic = args: callPackage (import ./generic.nix args) { };
5 kernel = callPackage # a hacky way of extracting parameters from callPackage
6 ({ kernel, libsOnly ? false }: if libsOnly then { } else kernel) { };
7
8 maybePatch_drm_legacy =
9 lib.optional (lib.versionOlder "4.14" (kernel.version or "0"))
10 (fetchurl {
11 url = "https://raw.githubusercontent.com/MilhouseVH/LibreELEC.tv/b5d2d6a1"
12 + "/packages/x11/driver/xf86-video-nvidia-legacy/patches/"
13 + "xf86-video-nvidia-legacy-0010-kernel-4.14.patch";
14 sha256 = "18clfpw03g8dxm61bmdkmccyaxir3gnq451z6xqa2ilm3j820aa5";
15 });
16in
17rec {
18 # Policy: use the highest stable version as the default (on our master).
19 stable = generic {
20 version = "390.25";
21 sha256_32bit = "0fkbpx01l46pprrd4nlc2y6hfmkb55ddlwm1r84kr6j08qmmb0qi";
22 sha256_64bit = "0whsls1mm6vkll5qmxnyz8vjgspp1rmqpsampgi83k62n514c08r";
23 settingsSha256 = "1jhbr68z36s3fr9vx3ga2f6yrzlwpc0j5mw8h12g65p7wdsbk6y7";
24 persistencedSha256 = "033azbhi50f1b0lw759sncgf7ckh2m2c0khj5v15sch9kl1fzk8i";
25 };
26
27 beta = stable; # not enough interest to maintain beta ATM
28
29
30 legacy_340 = generic {
31 version = "340.104";
32 sha256_32bit = "1l8w95qpxmkw33c4lsf5ar9w2fkhky4x23rlpqvp1j66wbw1b473";
33 sha256_64bit = "18k65gx6jg956zxyfz31xdp914sq3msn665a759bdbryksbk3wds";
34 settingsSha256 = "1vvpqimvld2iyfjgb9wvs7ca0b0f68jzfdpr0icbyxk4vhsq7sxk";
35 persistencedSha256 = "0zqws2vsrxbxhv6z0nn2galnghcsilcn3s0f70bpm6jqj9wzy7x8";
36 useGLVND = false;
37
38 patches = maybePatch_drm_legacy ++ [ ./vm_operations_struct-fault.patch ];
39 };
40
41 legacy_304 = generic {
42 version = "304.137";
43 sha256_32bit = "1y34c2gvmmacxk2c72d4hsysszncgfndc4s1nzldy2q9qagkg66a";
44 sha256_64bit = "1qp3jv6279k83k3z96p6vg3dd35y9bhmlyyyrkii7sib7bdmc7zb";
45 settingsSha256 = "0i5znfq6jkabgi8xpcy12pdpww6a67i8mq60z1kjq36mmnb25pmi";
46 persistencedSha256 = null;
47 useGLVND = false;
48 useProfiles = false;
49
50 prePatch = let
51 debPatches = fetchurl {
52 url = "mirror://debian/pool/non-free/n/nvidia-graphics-drivers-legacy-304xx/"
53 + "nvidia-graphics-drivers-legacy-304xx_304.135-2.debian.tar.xz";
54 sha256 = "0mhji0ssn7075q5a650idigs48kzf11pzj2ca2n07rwxg3vj6pdr";
55 };
56 prefix = "debian/module/debian/patches";
57 applyPatches = pnames: if pnames == [] then null else
58 ''
59 tar xf '${debPatches}'
60 sed 's|^\([+-]\{3\} [ab]\)/|\1/kernel/|' -i ${prefix}/*.patch
61 patches="$patches ${lib.concatMapStringsSep " " (pname: "${prefix}/${pname}.patch") pnames}"
62 '';
63 in applyPatches [ "fix-typos" ];
64 patches = maybePatch_drm_legacy;
65 };
66
67 legacy_173 = callPackage ./legacy173.nix { };
68}