Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / python-modules / pijuice / default.nix
blob59f898f7906f5790938eebbc45f8ecf3c335dc49
1 { lib
2 , fetchFromGitHub
3 , buildPythonPackage
4 , pythonOlder
5 , smbus-cffi
6 , urwid
7 }:
9 buildPythonPackage rec {
10   pname = "pijuice";
11   version = "1.7";
12   disabled = pythonOlder "3.6";
14   src = fetchFromGitHub {
15     owner = "PiSupply";
16     repo = "PiJuice";
17     # Latest commit that fixes using the library against python 3.9 by renaming
18     # isAlive() to is_alive(). The former function was removed in python 3.9.
19     rev = "e2dca1f8dcfa12e009952a882c0674a545d193d6";
20     sha256 = "07Jr7RSjqI8j0tT0MNAjrN1sjF1+mI+V0vtKInvtxj8=";
21   };
23   patches = [
24     # The pijuice_cli.cli file doesn't have a shebang as the first line of the
25     # script. Without it, the pythonWrapPrograms hook will not wrap the program.
26     # Add a python shebang here so that the the hook is triggered.
27     ./patch-shebang.diff
28   ];
30   PIJUICE_BUILD_BASE = 1;
31   PIJUICE_VERSION = version;
33   preBuild = ''
34     cd Software/Source
35   '';
37   propagatedBuildInputs = [ smbus-cffi urwid ];
39   # Remove the following files from the package:
40   #
41   # pijuice_cli - A precompiled ELF binary that is a setuid wrapper for calling
42   #               pijuice_cli.py
43   #
44   # pijuiceboot - a precompiled ELF binary for flashing firmware. Not needed for
45   #               the python library.
46   #
47   # pijuice_sys.py - A program that acts as a system daemon for monitoring the
48   #                  pijuice.
49   preFixup = ''
50     rm $out/bin/pijuice_cli
51     rm $out/bin/pijuice_sys.py
52     rm $out/bin/pijuiceboot
53     mv $out/bin/pijuice_cli.py $out/bin/pijuice_cli
54   '';
56   # no tests
57   doCheck = false;
59   meta = with lib; {
60     description = "Library and resources for PiJuice HAT for Raspberry Pi";
61     homepage = "https://github.com/PiSupply/PiJuice";
62     license = licenses.gpl3Plus;
63     maintainers = with maintainers; [ hexagonal-sun ];
64   };