python3Packages.orjson: Disable failing tests on 32 bit
[NixPkgs.git] / pkgs / tools / security / chipsec / default.nix
blob64a4946136f09a0d5199fea7e2c3d54888d1ea71
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , kernel ? null
5 , libelf
6 , nasm
7 , python3
8 , withDriver ? false
9 }:
11 python3.pkgs.buildPythonApplication rec {
12   pname = "chipsec";
13   version = "1.8.1";
15   disabled = !stdenv.isLinux;
17   src = fetchFromGitHub {
18     owner = "chipsec";
19     repo = "chipsec";
20     rev = version;
21     hash = "sha256-bK8wlwhP0pi8rOs8ysbSZ+0aZOaX4mckfH/p4OLGnes=";
22   };
24   patches = lib.optionals withDriver [ ./ko-path.diff ./compile-ko.diff ];
26   KSRC = lib.optionalString withDriver "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build";
28   nativeBuildInputs = [
29     libelf
30     nasm
31   ];
33   checkInputs = with python3.pkgs; [
34     distro
35     pytestCheckHook
36   ];
38   preBuild = lib.optionalString withDriver ''
39     export CHIPSEC_BUILD_LIB=$(mktemp -d)
40     mkdir -p $CHIPSEC_BUILD_LIB/chipsec/helper/linux
41   '';
43   preInstall = lib.optionalString withDriver ''
44     mkdir -p $out/${python3.pkgs.python.sitePackages}/drivers/linux
45     mv $CHIPSEC_BUILD_LIB/chipsec/helper/linux/chipsec.ko \
46       $out/${python3.pkgs.python.sitePackages}/drivers/linux/chipsec.ko
47   '';
49   setupPyBuildFlags = [
50     "--build-lib=$CHIPSEC_BUILD_LIB"
51   ] ++ lib.optionals (!withDriver) [
52     "--skip-driver"
53   ];
55   pythonImportsCheck = [
56     "chipsec"
57   ];
59   meta = with lib; {
60     description = "Platform Security Assessment Framework";
61     longDescription = ''
62       CHIPSEC is a framework for analyzing the security of PC platforms
63       including hardware, system firmware (BIOS/UEFI), and platform components.
64       It includes a security test suite, tools for accessing various low level
65       interfaces, and forensic capabilities. It can be run on Windows, Linux,
66       Mac OS X and UEFI shell.
67     '';
68     license = licenses.gpl2Only;
69     homepage = "https://github.com/chipsec/chipsec";
70     maintainers = with maintainers; [ johnazoidberg ];
71     platforms = [ "x86_64-linux" ] ++ lib.optional (!withDriver) "x86_64-darwin";
72   };