From 9743540edfd9e87b7f8fc0057f9fb5acc6bd7917 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Gabriel?= Date: Sat, 16 Apr 2022 18:05:44 -0300 Subject: [PATCH] gnu: Add utsushi. * gnu/packages/scanner.scm (utsushi): New variable. (sane-backends)[inputs, arguments]: Add utsushi backend. --- gnu/packages/scanner.scm | 70 +++++++++++++++++++++++++++++++++++++--- 1 file changed, 66 insertions(+), 4 deletions(-) diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index e7a5a2b..582b201 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2016 Andy Patterson ;;; Copyright © 2017, 2019, 2020, 2022 Tobias Geerinckx-Rice ;;; Copyright © 2018 Efraim Flashner +;;; Copyright © 2022 João Gabriel ;;; ;;; This file is part of GNU Guix. ;;; @@ -24,6 +25,7 @@ (define-module (gnu packages scanner) #:use-module (gnu packages) #:use-module (gnu packages autotools) #:use-module (gnu packages avahi) + #:use-module (gnu packages boost) #:use-module (gnu packages compression) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -31,6 +33,7 @@ (define-module (gnu packages scanner) #:use-module (gnu packages glib) #:use-module (gnu packages gtk) #:use-module (gnu packages image) + #:use-module (gnu packages imagemagick) #:use-module (gnu packages libusb) #:use-module (gnu packages linux) #:use-module (gnu packages pkg-config) @@ -203,14 +206,16 @@ (define-public sane-backends-minimal package contains the library, but no drivers.") (license license: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 the SANE -;; project, and builds all of those backends. +;; This variant links in the hpaio backend provided by hplip and the +;; utsushi backend, which adds support for some HP and EPSON scanners, +;; respectively, whose backends are not maintained by the SANE project, +;; and builds all of those backends. (define-public sane-backends (package/inherit sane-backends-minimal (name "sane-backends") (inputs `(("hplip" ,(@ (gnu packages cups) hplip-minimal)) + ("utsushi" ,utsushi) ("libjpeg" ,libjpeg-turbo) ; for pixma/epsonds/other back ends ("libpng" ,libpng) ; support ‘scanimage --format=png’ ("libxml2" ,libxml2) ; for pixma back end @@ -230,7 +235,8 @@ (define-public sane-backends (add-after 'unpack 'add-backends (lambda _ (substitute* "backend/dll.conf.in" - (("hp5590" all) (format #f "~a~%~a" all "hpaio"))) + (("hp5590" all) (format #f "~a~%~a" all "hpaio")) + (("v4l" all) (format #f "~a~%~a" all "utsushi"))) #t)) (add-after 'install 'install-hpaio (lambda* (#:key inputs outputs #:allow-other-keys) @@ -242,6 +248,17 @@ (define out (string-append (assoc-ref outputs "out") (lambda (file) (symlink file (string-append out "/" (basename file)))) (find-files hplip)) + #t)) + (add-after 'install-hpaio 'install-utsushi + (lambda* (#:key inputs outputs #:allow-other-keys) + (define utsushi (string-append (assoc-ref inputs "utsushi") + "/lib/utsushi/sane")) + (define out (string-append (assoc-ref outputs "out") + "/lib/sane")) + (for-each + (lambda (file) + (symlink file (string-append out "/" (basename file)))) + (find-files utsushi)) #t)))))) (synopsis "Raster image scanner library and drivers, with scanner support") @@ -393,3 +410,48 @@ (define-public xsane XSane talks to scanners through the @acronym{SANE, Scanner Access Now Easy} back-end library, which supports almost all existing scanners.") (license license:gpl2+))) + +(define-public utsushi + (let ((commit "839d06a5a80b353cb604eb9f7d352a1648ab1fdf")) + (package + (name "utsushi") + (version (git-version "0.65.0" "1" commit)) + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/utsushi/utsushi") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0i6ipqy61abbsmqqqy5sii0vlib146snvp975sgjmv4nzy9mwf24")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f + #:configure-flags + (list (string-append "--with-boost-libdir=" + (assoc-ref %build-inputs "boost") + "/lib") + "CXXFLAGS=-Wno-error") + #:phases + (modify-phases %standard-phases + (add-before 'bootstrap 'zap-unnecessary-git-dependency + (lambda _ + (substitute* "configure.ac" + (("-m4_esyscmd_s\\(\\[git describe --always\\]\\)") "")))) + (add-after 'install 'install-udev-rules + (lambda* (#:key outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/lib/udev/rules.d")) + (install-file "drivers/esci/utsushi-esci.rules" + (string-append out "/lib/udev/rules.d")))))))) + (inputs (list boost eudev sane-backends-minimal libusb + libjpeg-turbo imagemagick libtiff zlib)) + (native-inputs (list util-linux autoconf autoconf-archive automake + gettext-minimal libtool libxslt pkg-config)) + (home-page "https://gitlab.com/utsushi/utsushi") + (synopsis "Image scanning software for EPSON devices") + (description "Utsushi is a set of applications for image scanning with +support for a number of EPSON scanners, including a compatibility driver to +interface with software built around the @acronym{SANE, Scanner Access Now Easy} +standard.") + (license license:gpl3)))) -- 2.35.1