summaryrefslogtreecommitdiff
path: root/pkgs/os-specific/linux/error-inject/default.nix
blob: b7c16ee49b05836b5ad21403b9d18b0e80f55b01 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
{
  lib,
  stdenv,
  fetchzip,
  bison,
  flex,
  rasdaemon,
}:

{
  edac-inject = rasdaemon.inject;

  mce-inject = stdenv.mkDerivation rec {
    pname = "mce-inject";
    version = "4cbe46321b4a81365ff3aafafe63967264dbfec5";

    src = fetchzip {
      url = "https://git.kernel.org/pub/scm/utils/cpu/mce/mce-inject.git/snapshot/mce-inject-${version}.tar.gz";
      sha256 = "0gjapg2hrlxp8ssrnhvc19i3r1xpcnql7xv0zjgbv09zyha08g6z";
    };

    nativeBuildInputs = [
      bison
      flex
    ];

    makeFlags = [ "destdir=${placeholder "out"}" ];

    postInstall = ''
      mkdir $out/sbin
      mv $out/usr/sbin/mce-inject $out/sbin/mce-inject

      mkdir $out/test
      cp test/* $out/test/.
    '';

    meta = {
      description = "MCE error injection tool";
      license = lib.licenses.gpl2Only;
      platforms = lib.platforms.linux;
      maintainers = [ ];
    };
  };

  aer-inject = stdenv.mkDerivation rec {
    pname = "aer-inject";
    version = "9bd5e2c7886fca72f139cd8402488a2235957d41";

    src = fetchzip {
      url = "https://git.kernel.org/pub/scm/linux/kernel/git/gong.chen/aer-inject.git/snapshot/aer-inject-${version}.tar.gz";
      sha256 = "0bh6mzpk2mr4xidkammmkfk21b4dbq793qjg25ryyxd1qv0c6cg4";
    };

    nativeBuildInputs = [
      bison
      flex
    ];

    # how is this necessary?
    makeFlags = [ "DESTDIR=${placeholder "out"}" ];

    postInstall = ''
      mkdir $out/bin
      mv $out/usr/local/aer-inject $out/bin/aer-inject

      mkdir -p $out/examples
      cp examples/* $out/examples/.
    '';

    meta = {
      description = "PCIE AER error injection tool";
      license = lib.licenses.gpl2Only;
      platforms = lib.platforms.linux;
      maintainers = [ ];
    };
  };
}