9bb3fccb5b
continuation of #109595 pkgconfig was aliased in 2018, however, it remained in all-packages.nix due to its wide usage. This cleans up the remaining references to pkgs.pkgsconfig and moves the entry to aliases.nix. python3Packages.pkgconfig remained unchanged because it's the canonical name of the upstream package on pypi.
96 lines
2.6 KiB
Nix
96 lines
2.6 KiB
Nix
{ lib, stdenv
|
|
, gettext, pkg-config
|
|
, avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp
|
|
|
|
# List of { src name backend } attibute sets - see installFirmware below:
|
|
, extraFirmware ? []
|
|
|
|
# For backwards compatibility with older setups; use extraFirmware instead:
|
|
, gt68xxFirmware ? null, snapscanFirmware ? null
|
|
|
|
# Passed from versioned package (e.g. default.nix, git.nix):
|
|
, version, src, ...
|
|
}:
|
|
|
|
stdenv.mkDerivation {
|
|
inherit src version;
|
|
|
|
name = "sane-backends-${version}";
|
|
|
|
outputs = [ "out" "doc" "man" ];
|
|
|
|
nativeBuildInputs = [
|
|
gettext
|
|
pkg-config
|
|
];
|
|
|
|
buildInputs = [
|
|
avahi
|
|
libgphoto2
|
|
libieee1284
|
|
libjpeg
|
|
libpng
|
|
libtiff
|
|
libusb1
|
|
libv4l
|
|
net-snmp
|
|
];
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
configureFlags = []
|
|
++ lib.optional (avahi != null) "--enable-avahi"
|
|
++ lib.optional (libusb1 != null) "--with-usb"
|
|
;
|
|
|
|
postInstall = let
|
|
|
|
compatFirmware = extraFirmware
|
|
++ lib.optional (gt68xxFirmware != null) {
|
|
src = gt68xxFirmware.fw;
|
|
inherit (gt68xxFirmware) name;
|
|
backend = "gt68xx";
|
|
}
|
|
++ lib.optional (snapscanFirmware != null) {
|
|
src = snapscanFirmware;
|
|
name = "your-firmwarefile.bin";
|
|
backend = "snapscan";
|
|
};
|
|
|
|
installFirmware = f: ''
|
|
mkdir -p $out/share/sane/${f.backend}
|
|
ln -sv ${f.src} $out/share/sane/${f.backend}/${f.name}
|
|
'';
|
|
|
|
in ''
|
|
mkdir -p $out/etc/udev/rules.d/
|
|
./tools/sane-desc -m udev > $out/etc/udev/rules.d/49-libsane.rules || \
|
|
cp tools/udev/libsane.rules $out/etc/udev/rules.d/49-libsane.rules
|
|
# the created 49-libsane references /bin/sh
|
|
substituteInPlace $out/etc/udev/rules.d/49-libsane.rules \
|
|
--replace "RUN+=\"/bin/sh" "RUN+=\"${stdenv.shell}"
|
|
|
|
substituteInPlace $out/lib/libsane.la \
|
|
--replace "-ljpeg" "-L${libjpeg.out}/lib -ljpeg"
|
|
|
|
# net.conf conflicts with the file generated by the nixos module
|
|
rm -f $out/etc/sane.d/net.conf
|
|
'' + lib.concatStrings (builtins.map installFirmware compatFirmware);
|
|
|
|
meta = with lib; {
|
|
description = "SANE (Scanner Access Now Easy) backends";
|
|
longDescription = ''
|
|
Collection of open-source SANE backends (device drivers).
|
|
SANE is a universal scanner interface providing standardized access to
|
|
any raster image scanner hardware: flatbed scanners, hand-held scanners,
|
|
video- and still-cameras, frame-grabbers, etc. For a list of supported
|
|
scanners, see http://www.sane-project.org/sane-backends.html.
|
|
'';
|
|
homepage = "http://www.sane-project.org/";
|
|
license = licenses.gpl2Plus;
|
|
|
|
maintainers = with maintainers; [ peti ];
|
|
platforms = platforms.linux;
|
|
};
|
|
}
|