diff options
Diffstat (limited to 'pkgs/by-name/ig/igvm-tooling/package.nix')
-rw-r--r-- | pkgs/by-name/ig/igvm-tooling/package.nix | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/pkgs/by-name/ig/igvm-tooling/package.nix b/pkgs/by-name/ig/igvm-tooling/package.nix new file mode 100644 index 0000000000000..e5cb4a564b790 --- /dev/null +++ b/pkgs/by-name/ig/igvm-tooling/package.nix @@ -0,0 +1,70 @@ +{ lib +, python3 +, fetchFromGitHub +, fetchpatch +, which +, acpica-tools +}: + +python3.pkgs.buildPythonApplication rec { + pname = "igvm-tooling"; + version = "1.5.0-unstable-2024-06-06"; + pyproject = true; + + src = fetchFromGitHub { + owner = "microsoft"; + repo = "igvm-tooling"; + rev = "53656ddde294bbafcae6349b5acfc5da9f7dbb92"; + hash = "sha256-X9Gi+kTmc/ZcsgbHldEj9zPnOmd5puDD7/+J1s1CVws="; + }; + + patches = [ + # drop unused libclang dependency + # remove once https://github.com/microsoft/igvm-tooling/pull/53 is merged + (fetchpatch { + name = "0001-setup.py-remove-unused-libclang-dependency.patch"; + url = "https://github.com/microsoft/igvm-tooling/commit/7182e925de9b5e9f5c8c3a3ce6e3942a92506064.patch"; + sha256 = "sha256-tcVxcuLxknyEdo2YjeHOqSG9xQna8US+YyvlcfX+Htw="; + stripLen = 1; + }) + ]; + + postPatch = '' + substituteInPlace igvm/acpi.py \ + --replace-fail 'os.path.join(os.path.dirname(__file__), "acpi", "acpi.zip")' "\"$out/share/igvm-tooling/acpi/acpi.zip\"" + ''; + + sourceRoot = "${src.name}/src"; + + nativeBuildInputs = [ acpica-tools ]; + + propagatedBuildInputs = (with python3.pkgs; [ + setuptools + ecdsa + cstruct + pyelftools + pytest + cached-property + frozendict + ]) ++ [ + acpica-tools + which + ]; + + postInstall = '' + mkdir -p $out/share/igvm-tooling/acpi/acpi-clh + cp -rT igvm/acpi/acpi-clh $out/share/igvm-tooling/acpi/acpi-clh + cp igvm/acpi/acpi.zip $out/share/igvm-tooling/acpi/acpi.zip + find $out/share/igvm-tooling/acpi -name "*.dsl" -exec iasl -f {} \; + ''; + + meta = { + description = "IGVM Image Generator"; + homepage = "https://github.com/microsoft/igvm-tooling"; + license = lib.licenses.mit; + maintainers = with lib.maintainers; [ malt3 katexochen ]; + changelog = "https://github.com/microsoft/igvm-tooling/releases/tag/igvm-${version}"; + mainProgram = "igvmgen"; + platforms = lib.platforms.all; + }; +} |