summary refs log tree commit diff
path: root/gnu/packages/scanner.scm
diff options
context:
space:
mode:
authorAndy Patterson <ajpatter@uwaterloo.ca>2016-12-14 00:03:25 -0500
committerLudovic Courtès <ludo@gnu.org>2016-12-17 23:13:05 +0100
commit4c9287432824f396d5c614c3b2287f553cd9fb90 (patch)
tree46330625cbe0eed4a7e17831abc9f2498102ddf8 /gnu/packages/scanner.scm
parent32aa37a2e7a5653915a5c1b1fdef7f726ceaf5d2 (diff)
downloadguix-4c9287432824f396d5c614c3b2287f553cd9fb90.tar.gz
gnu: Add and use sane-backends.
* gnu/packages/scanner.scm (sane-backends): New variable.
* gnu/packages/gnome.scm (colord, simple-scan): Use it instead of
'sane-backends-minimal'.
* gnu/packages/libreoffice.scm (libreoffice): Likewise.
* gnu/packages/wine.scm (wine): Likewise.

Signed-off-by: Ludovic Courtès <ludo@gnu.org>
Diffstat (limited to 'gnu/packages/scanner.scm')
-rw-r--r--gnu/packages/scanner.scm40
1 files changed, 40 insertions, 0 deletions
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm
index e913858f51..fdad1c4459 100644
--- a/gnu/packages/scanner.scm
+++ b/gnu/packages/scanner.scm
@@ -1,6 +1,7 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2014 John Darrington <jmd@gnu.org>
 ;;; Copyright © 2015 Andy Wingo <wingo@igalia.com>
+;;; Copyright © 2016 Andy Patterson <ajpatter@uwaterloo.ca>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -20,6 +21,7 @@
 (define-module (gnu packages scanner)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix utils)
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages libusb)
@@ -78,3 +80,41 @@ proving access to any raster image scanner hardware (flatbed scanner,
 hand-held scanner, video- and still-cameras, frame-grabbers, etc.).  The
 package contains the library, but no drivers.")
     (license licence:gpl2+))) ; plus linking exception
+
+;; This variant links in the hpaio backend, provided by hplip, which adds
+;; support for HP scanners whose backends are not maintained by
+;; 'sane-backends'. It also builds all of those backends.
+(define-public sane-backends
+  (package
+    (inherit sane-backends-minimal)
+    (name "sane-backends")
+    (inputs
+     `(("hplip" ,(@ (gnu packages cups) hplip))
+       ,@(package-inputs sane-backends-minimal)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments sane-backends-minimal)
+       ((#:phases phases)
+        `(modify-phases ,phases
+           (delete 'disable-backends)
+           (add-after 'unpack 'add-backends
+             (lambda _
+               (substitute* "backend/dll.conf.in"
+                 (("hp5590" all) (format #f "~a~%~a" all "hpaio")))
+               #t))
+           (add-after 'install 'install-hpaio
+             (lambda* (#:key inputs outputs #:allow-other-keys)
+               (define hplip (string-append (assoc-ref inputs "hplip")
+                                            "/lib/sane"))
+               (define out (string-append (assoc-ref outputs "out")
+                                          "/lib/sane"))
+               (for-each
+                (lambda (file)
+                  (symlink file (string-append out "/" (basename file))))
+                (find-files hplip))
+               #t))))))
+    (synopsis
+     "Raster image scanner library and drivers, with scanner support")
+    (description "SANE stands for \"Scanner Access Now Easy\" and is an API
+proving access to any raster image scanner hardware (flatbed scanner,
+hand-held scanner, video- and still-cameras, frame-grabbers, etc.).  The
+package contains the library and drivers.")))