envision-unwrapped: 0-unstable-2024-10-20 -> 1.1.1 (#360652)
[NixPkgs.git] / pkgs / by-name / am / amd-ucodegen / package.nix
blobde3de6efefbea4d937c6ae531d24d84f40566d58
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   fetchpatch,
6   nix-update-script,
7   callPackage,
8 }:
10 stdenv.mkDerivation (finalAttrs: {
11   pname = "amd-ucodegen";
12   version = "0-unstable-2017-06-07";
14   src = fetchFromGitHub {
15     owner = "AndyLavr";
16     repo = "amd-ucodegen";
17     rev = "0d34b54e396ef300d0364817e763d2c7d1ffff02";
18     hash = "sha256-pgmxzd8tLqdQ8Kmmhl05C5tMlCByosSrwx2QpBu3UB0=";
19   };
21   strictDeps = true;
23   patches = [
24     # Extract get_family function and validate processor family
25     # instead of processor ID
26     (fetchpatch {
27       name = "validate-family-not-id.patch";
28       url = "https://github.com/AndyLavr/amd-ucodegen/compare/0d34b54e396ef300d0364817e763d2c7d1ffff02...dobo90:amd-ucodegen:7a3c51e821df96910ecb05b22f3e4866b4fb85b2.patch";
29       hash = "sha256-jvsvu9QgXikwsxjPiTaRff+cOg/YQmKg1MYKyBoMRQI=";
30     })
31   ];
33   installPhase = ''
34     runHook preInstall
36     install -Dm755 amd-ucodegen $out/bin/amd-ucodegen
38     runHook postInstall
39   '';
41   passthru = {
42     updateScript = nix-update-script { extraArgs = [ "--version=branch" ]; };
43     tests.platomav = callPackage ./test-platomav.nix { amd-ucodegen = finalAttrs.finalPackage; };
44   };
46   meta = {
47     description = "Tool to generate AMD microcode files";
48     longDescription = ''
49       This tool can be used to generate AMD microcode containers as used by the
50       Linux kernel. It accepts raw AMD microcode files such as those generated
51       by [MCExtractor](https://github.com/platomav/MCExtractor.git) as input.
52       The generated output file can be installed in /lib/firmware/amd-ucode.
53     '';
54     homepage = "https://github.com/AndyLavr/amd-ucodegen";
55     license = lib.licenses.gpl2Only;
56     platforms = lib.platforms.unix;
57     mainProgram = "amd-ucodegen";
58     maintainers = with lib.maintainers; [ d-brasher ];
59   };