Merge pull request #268619 from tweag/lib-descriptions
[NixPkgs.git] / pkgs / development / libraries / libgphoto2 / default.nix
blob4897934860b1f37d8a9599ced539c59b9901831d
1 { lib
2 , stdenv
3 , fetchFromGitHub
4 , buildPackages
5 , autoreconfHook
6 , pkg-config
7 , gettext
8 , libusb1
9 , libtool
10 , libexif
11 , libgphoto2
12 , libjpeg
13 , curl
14 , libxml2
15 , gd
18 stdenv.mkDerivation rec {
19   pname = "libgphoto2";
20   version = "2.5.31";
22   src = fetchFromGitHub {
23     owner = "gphoto";
24     repo = "libgphoto2";
25     rev = "libgphoto2-${builtins.replaceStrings [ "." ] [ "_" ] version}-release";
26     sha256 = "sha256-UmyDKEaPP9VJqi8f+y6JZcTlQomhMTN+/C//ODYx6/w=";
27   };
29   depsBuildBuild = [ pkg-config ];
31   nativeBuildInputs = [
32     autoreconfHook
33     gettext
34     libtool
35     pkg-config
36   ];
38   buildInputs = [
39     libjpeg
40     libtool # for libltdl
41     libusb1
42     curl
43     libxml2
44     gd
45   ];
47   # These are mentioned in the Requires line of libgphoto's pkg-config file.
48   propagatedBuildInputs = [ libexif ];
50   hardeningDisable = [ "format" ];
52   postInstall =
53     let
54       executablePrefix =
55         if stdenv.buildPlatform == stdenv.hostPlatform then
56           "$out"
57         else
58           buildPackages.libgphoto2;
59     in
60     ''
61       mkdir -p $out/lib/udev/{rules.d,hwdb.d}
62       ${executablePrefix}/lib/libgphoto2/print-camera-list \
63           udev-rules version 201 group camera \
64           >$out/lib/udev/rules.d/40-libgphoto2.rules
65       ${executablePrefix}/lib/libgphoto2/print-camera-list \
66           hwdb version 201 group camera \
67           >$out/lib/udev/hwdb.d/20-gphoto.hwdb
68     '';
70   meta = {
71     homepage = "http://www.gphoto.org/proj/libgphoto2/";
72     description = "A library for accessing digital cameras";
73     longDescription = ''
74       This is the library backend for gphoto2. It contains the code for PTP,
75       MTP, and other vendor specific protocols for controlling and transferring data
76       from digital cameras.
77     '';
78     # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
79     license = lib.licenses.lgpl21Plus;
80     platforms = with lib.platforms; unix;
81     maintainers = with lib.maintainers; [ jcumming ];
82   };