46 lines
1.1 KiB
Nix
46 lines
1.1 KiB
Nix
{ stdenv
|
|
, buildPythonPackage
|
|
, fetchPypi
|
|
, nose
|
|
, pillow
|
|
, pkgs
|
|
}:
|
|
|
|
buildPythonPackage rec {
|
|
pname = "pyinsane2";
|
|
version = "2.0.10";
|
|
|
|
src = fetchPypi {
|
|
inherit pname version;
|
|
sha256 = "00d1wqb3w9bn1rxb2dwmdqbar2lr96izq855l5vzprc17dkgip3j";
|
|
};
|
|
|
|
# This is needed by setup.py regardless of whether tests are enabled.
|
|
buildInputs = [ nose ];
|
|
propagatedBuildInputs = [ pillow ];
|
|
|
|
postPatch = ''
|
|
# pyinsane2 forks itself, so we need to re-inject the PYTHONPATH.
|
|
sed -i -e '/os.putenv.*PYINSANE_DAEMON/ {
|
|
a \ os.putenv("PYTHONPATH", ":".join(sys.path))
|
|
}' pyinsane2/sane/abstract_proc.py
|
|
|
|
sed -i -e 's,"libsane.so.1","${pkgs.sane-backends}/lib/libsane.so",' \
|
|
pyinsane2/sane/rawapi.py
|
|
'';
|
|
|
|
# Tests require a scanner to be physically connected, so let's just do a
|
|
# quick check whether initialization works.
|
|
checkPhase = ''
|
|
python -c 'import pyinsane2; pyinsane2.init()'
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
homepage = "https://github.com/jflesch/pyinsane";
|
|
description = "Access and use image scanners";
|
|
license = licenses.gpl3Plus;
|
|
platforms = platforms.linux;
|
|
};
|
|
|
|
}
|