ocamlPackages.cpdf: 2.7.1 → 2.8 (#376363)
[NixPkgs.git] / pkgs / by-name / li / libgpiod_1 / package.nix
blob444459d660181379e5e5182771d6360d52bc1b42
2   lib,
3   stdenv,
4   fetchurl,
5   autoreconfHook,
6   autoconf-archive,
7   pkg-config,
8   kmod,
9   enable-tools ? true,
10   enablePython ? false,
11   python3,
12   ncurses,
15 stdenv.mkDerivation rec {
16   pname = "libgpiod";
17   version = "1.6.4";
19   src = fetchurl {
20     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
21     hash = "sha256-gp1KwmjfB4U2CdZ8/H9HbpqnNssqaKYwvpno+tGXvgo=";
22   };
24   patches = [
25     # cross compiling fix
26     # https://github.com/brgl/libgpiod/pull/45
27     ./0001-Drop-AC_FUNC_MALLOC-and-_REALLOC-and-check-for-them-.patch
28   ];
30   buildInputs =
31     [ kmod ]
32     ++ lib.optionals enablePython [
33       python3
34       ncurses
35     ];
36   nativeBuildInputs = [
37     autoconf-archive
38     pkg-config
39     autoreconfHook
40   ];
42   configureFlags = [
43     "--enable-tools=${if enable-tools then "yes" else "no"}"
44     "--enable-bindings-cxx"
45     "--prefix=${placeholder "out"}"
46   ] ++ lib.optional enablePython "--enable-bindings-python";
48   meta = with lib; {
49     description = "C library and tools for interacting with the linux GPIO character device";
50     longDescription = ''
51       Since linux 4.8 the GPIO sysfs interface is deprecated. User space should use
52       the character device instead. This library encapsulates the ioctl calls and
53       data structures behind a straightforward API.
54     '';
55     homepage = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/";
56     license = licenses.lgpl2;
57     maintainers = [ ];
58     platforms = platforms.linux;
59   };