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.13";
 | 
						|
 | 
						|
  src = fetchPypi {
 | 
						|
    inherit pname version;
 | 
						|
    sha256 = "0d519531d552e4512776225eb400a6a4a9bfc83a08918ec7fea19cb2fa7ec4ee";
 | 
						|
  };
 | 
						|
 | 
						|
  # 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;
 | 
						|
  };
 | 
						|
 | 
						|
}
 |