about summary refs log tree commit diff
path: root/nixpkgs/pkgs/development/libraries/libgphoto2
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/development/libraries/libgphoto2')
-rw-r--r--nixpkgs/pkgs/development/libraries/libgphoto2/default.nix80
1 files changed, 80 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix b/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
new file mode 100644
index 000000000000..5305b4922530
--- /dev/null
+++ b/nixpkgs/pkgs/development/libraries/libgphoto2/default.nix
@@ -0,0 +1,80 @@
+{ lib
+, stdenv
+, fetchFromGitHub
+, buildPackages
+, autoreconfHook
+, pkg-config
+, gettext
+, libusb1
+, libtool
+, libexif
+, libgphoto2
+, libjpeg
+, curl
+, libxml2
+, gd
+}:
+
+stdenv.mkDerivation rec {
+  pname = "libgphoto2";
+  version = "2.5.29";
+
+  src = fetchFromGitHub {
+    owner = "gphoto";
+    repo = "libgphoto2";
+    rev = "libgphoto2-${builtins.replaceStrings [ "." ] [ "_" ] version}-release";
+    sha256 = "sha256-Js5gbD57lhtqBX6joGMiLKUwkPDaSclnTrwBR87AliQ=";
+  };
+
+  depsBuildBuild = [ pkg-config ];
+
+  nativeBuildInputs = [
+    autoreconfHook
+    gettext
+    libtool
+    pkg-config
+  ];
+
+  buildInputs = [
+    libjpeg
+    libtool # for libltdl
+    libusb1
+    curl
+    libxml2
+    gd
+  ];
+
+  # These are mentioned in the Requires line of libgphoto's pkg-config file.
+  propagatedBuildInputs = [ libexif ];
+
+  hardeningDisable = [ "format" ];
+
+  postInstall =
+    let
+      executablePrefix =
+        if stdenv.buildPlatform == stdenv.hostPlatform then
+          "$out"
+        else
+          buildPackages.libgphoto2;
+    in
+    ''
+      mkdir -p $out/lib/udev/rules.d
+      ${executablePrefix}/lib/libgphoto2/print-camera-list \
+          udev-rules version 175 group camera \
+          >$out/lib/udev/rules.d/40-gphoto2.rules
+    '';
+
+  meta = {
+    homepage = "http://www.gphoto.org/proj/libgphoto2/";
+    description = "A library for accessing digital cameras";
+    longDescription = ''
+      This is the library backend for gphoto2. It contains the code for PTP,
+      MTP, and other vendor specific protocols for controlling and transferring data
+      from digital cameras.
+    '';
+    # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
+    license = lib.licenses.lgpl21Plus;
+    platforms = with lib.platforms; unix;
+    maintainers = with lib.maintainers; [ jcumming ];
+  };
+}