nixpkgs/pkgs/by-name/li/libgphoto2/package.nix
aleksana 571c71e6f7 treewide: migrate packages to pkgs/by-name, take 1
We are migrating packages that meet below requirements:

1. using `callPackage`
2. called path is a directory
3. overriding set is empty (`{ }`)
4. not containing path expressions other than relative path (to
makenixpkgs-vet happy)
5. not referenced by nix files outside of the directory, other
than`pkgs/top-level/all-packages.nix`
6. not referencing nix files outside of the directory
7. not referencing `default.nix` (since it's changed to `package.nix`)
8. `outPath` doesn't change after migration

The tool is here: https://github.com/Aleksanaa/by-name-migrate.
2024-11-09 20:04:51 +08:00

88 lines
2.0 KiB
Nix

{ lib
, stdenv
, fetchFromGitHub
, buildPackages
, autoreconfHook
, pkg-config
, gettext
, libusb1
, libtool
, libexif
, libgphoto2
, libjpeg
, curl
, libxml2
, gd
}:
stdenv.mkDerivation rec {
pname = "libgphoto2";
version = "2.5.31";
src = fetchFromGitHub {
owner = "gphoto";
repo = "libgphoto2";
rev = "libgphoto2-${builtins.replaceStrings [ "." ] [ "_" ] version}-release";
sha256 = "sha256-UmyDKEaPP9VJqi8f+y6JZcTlQomhMTN+/C//ODYx6/w=";
};
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 ];
env = lib.optionalAttrs stdenv.cc.isGNU {
NIX_CFLAGS_COMPILE = "-Wno-error=incompatible-pointer-types";
};
hardeningDisable = [ "format" ];
postInstall =
let
executablePrefix =
if stdenv.buildPlatform == stdenv.hostPlatform then
"$out"
else
buildPackages.libgphoto2;
in
''
mkdir -p $out/lib/udev/{rules.d,hwdb.d}
${executablePrefix}/lib/libgphoto2/print-camera-list \
udev-rules version 201 group camera \
>$out/lib/udev/rules.d/40-libgphoto2.rules
${executablePrefix}/lib/libgphoto2/print-camera-list \
hwdb version 201 group camera \
>$out/lib/udev/hwdb.d/20-gphoto.hwdb
'';
meta = {
homepage = "http://www.gphoto.org/proj/libgphoto2/";
description = "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 ];
};
}