python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / misc / coreboot-utils / default.nix
blob5bca03075bf84f4d0ac7a429d3339605687b3e4a
1 { lib, stdenv, fetchurl, zlib, pciutils, coreutils, acpica-tools, makeWrapper, gnugrep, gnused, file, buildEnv }:
3 let
4   version = "4.14";
6   commonMeta = with lib; {
7     description = "Various coreboot-related tools";
8     homepage = "https://www.coreboot.org";
9     license = with licenses; [ gpl2Only gpl2Plus ];
10     maintainers = with maintainers; [ felixsinger yuka ];
11     platforms = platforms.linux;
12   };
14   generic = { pname, path ? "util/${pname}", ... }@args: stdenv.mkDerivation (rec {
15     inherit pname version;
17     src = fetchurl {
18       url = "https://coreboot.org/releases/coreboot-${version}.tar.xz";
19       sha256 = "0viw2x4ckjwiylb92w85k06b0g9pmamjy2yqs7fxfqbmfadkf1yr";
20     };
22     enableParallelBuilding = true;
24     postPatch = ''
25       cd ${path}
26       patchShebangs .
27     '';
29     makeFlags = [
30       "INSTALL=install"
31       "PREFIX=${placeholder "out"}"
32     ];
34     meta = commonMeta // args.meta;
35   } // (removeAttrs args ["meta"]));
37   utils = {
38     msrtool = generic {
39       pname = "msrtool";
40       meta.description = "Dump chipset-specific MSR registers";
41       meta.platforms = [ "x86_64-linux" "i686-linux" ];
42       buildInputs = [ pciutils zlib ];
43       preConfigure = "export INSTALL=install";
44     };
45     cbmem = generic {
46       pname = "cbmem";
47       meta.description = "coreboot console log reader";
48     };
49     ifdtool = generic {
50       pname = "ifdtool";
51       meta.description = "Extract and dump Intel Firmware Descriptor information";
52     };
53     intelmetool = generic {
54       pname = "intelmetool";
55       meta.description = "Dump interesting things about Management Engine";
56       buildInputs = [ pciutils zlib ];
57       meta.platforms = [ "x86_64-linux" "i686-linux" ];
58     };
59     cbfstool = generic {
60       pname = "cbfstool";
61       meta.description = "Management utility for CBFS formatted ROM images";
62     };
63     nvramtool = generic {
64       pname = "nvramtool";
65       meta.description = "Read and write coreboot parameters and display information from the coreboot table in CMOS/NVRAM";
66     };
67     superiotool = generic {
68       pname = "superiotool";
69       meta.description = "User-space utility to detect Super I/O of a mainboard and provide detailed information about the register contents of the Super I/O";
70       buildInputs = [ pciutils zlib ];
71     };
72     ectool = generic {
73       pname = "ectool";
74       meta.description = "Dump the RAM of a laptop's Embedded/Environmental Controller (EC)";
75       meta.platforms = [ "x86_64-linux" "i686-linux" ];
76       preInstall = "mkdir -p $out/sbin";
77     };
78     inteltool = generic {
79       pname = "inteltool";
80       meta.description = "Provides information about Intel CPU/chipset hardware configuration (register contents, MSRs, etc)";
81       buildInputs = [ pciutils zlib ];
82       meta.platforms = [ "x86_64-linux" "i686-linux" ];
83     };
84     amdfwtool = generic {
85       pname = "amdfwtool";
86       meta.description = "Create AMD firmware combination";
87       installPhase = ''
88         runHook preInstall
90         install -Dm755 amdfwtool $out/bin/amdfwtool
92         runHook postInstall
93       '';
94     };
95     acpidump-all = generic {
96       pname = "acpidump-all";
97       path = "util/acpi";
98       meta.description = "Walk through all ACPI tables with their addresses";
99       nativeBuildInputs = [ makeWrapper ];
100       dontBuild = true;
101       installPhase = ''
102         runHook preInstall
104         install -Dm755 acpidump-all $out/bin/acpidump-all
106         runHook postInstall
107       '';
108       postFixup = let
109         binPath = [ coreutils acpica-tools gnugrep gnused file ];
110       in "wrapProgram $out/bin/acpidump-all --set PATH ${lib.makeBinPath binPath}";
111     };
112   };
114 in utils // {
115   coreboot-utils = (buildEnv {
116     name = "coreboot-utils-${version}";
117     paths = lib.attrValues utils;
118     postBuild = "rm -rf $out/sbin";
119   }) // {
120     inherit version;
121     meta = commonMeta;
122   };