Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / libgpiod / default.nix
bloba5f914b39a95ed8e397c544a18f774c18296034b
1 { lib, stdenv, fetchurl, autoreconfHook, autoconf-archive, pkg-config
2 , enable-tools ? true }:
4 stdenv.mkDerivation rec {
5   pname = "libgpiod";
6   version = "2.1";
8   src = fetchurl {
9     url = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/snapshot/libgpiod-${version}.tar.gz";
10     hash = "sha256-/W7UssZ0/mzDtIGID2zeHup54pbpWhObhUAequpt4/w=";
11   };
13   nativeBuildInputs = [
14     autoconf-archive
15     pkg-config
16     autoreconfHook
17   ];
19   configureFlags = [
20     "--enable-tools=${if enable-tools then "yes" else "no"}"
21     "--enable-bindings-cxx"
22   ];
24   meta = with lib; {
25     description = "C library and tools for interacting with the linux GPIO character device";
26     longDescription = ''
27       Since linux 4.8 the GPIO sysfs interface is deprecated. User space should use
28       the character device instead. This library encapsulates the ioctl calls and
29       data structures behind a straightforward API.
30     '';
31     homepage = "https://git.kernel.org/pub/scm/libs/libgpiod/libgpiod.git/about/";
32     license = with licenses; [
33       lgpl21Plus # libgpiod
34       lgpl3Plus # C++ bindings
35     ] ++ lib.optional enable-tools gpl2Plus;
36     maintainers = [ maintainers.expipiplus1 ];
37     platforms = platforms.linux;
38   };