diff options
-rw-r--r-- | gnu/packages/scanner.scm | 55 |
1 files changed, 43 insertions, 12 deletions
diff --git a/gnu/packages/scanner.scm b/gnu/packages/scanner.scm index 5a69d923bf..0db373eb04 100644 --- a/gnu/packages/scanner.scm +++ b/gnu/packages/scanner.scm @@ -22,12 +22,15 @@ (define-module (gnu packages scanner) #:use-module (gnu packages) + #:use-module (gnu packages autotools) #:use-module (gnu packages freedesktop) + #:use-module (gnu packages gettext) #:use-module (gnu packages ghostscript) #:use-module (gnu packages gtk) #:use-module (gnu packages image) #:use-module (gnu packages libusb) #:use-module (gnu packages pkg-config) + #:use-module (gnu packages python) #:use-module (gnu packages xml) #:use-module (guix build-system gnu) #:use-module (guix download) @@ -42,13 +45,13 @@ (name "sane-backends-minimal") (version "1.0.31") (source (origin - (method url-fetch) - (uri (string-append - "https://gitlab.com/sane-project/backends/uploads/" - "8bf1cae2e1803aefab9e5331550e5d5d/" - "sane-backends-" version ".tar.gz")) + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/sane-project/backends") + (commit version))) + (file-name (git-file-name name version)) (sha256 - (base32 "1am5w92zyybs26wx4brgmky6dzpd8n34jyfrfx3qbvcqngy10fsa")) + (base32 "161hh2zcs2fh6vxxgavf3m0xbm1gbxkasp10p8964pkzxax8rwqp")) (modules '((guix build utils))) (snippet ;; Generated HTML files and udev rules normally embed a @@ -60,12 +63,24 @@ #t)))) (build-system gnu-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("autoconf" ,autoconf) + ("autoconf-archive" ,autoconf-archive) + ("automake" ,automake) + ("gettext" ,gettext-minimal) + ("libtool" ,libtool) + ("pkg-config" ,pkg-config) + ;; For scripts/pixma_gen_options.py. + ("python" ,python-wrapper))) (inputs `(("libusb" ,libusb))) (arguments `(#:phases (modify-phases %standard-phases + (add-before 'bootstrap 'zap-unnecessary-git-dependency + (lambda _ + (substitute* "configure.ac" + (("git describe --dirty") + (string-append "echo " ,version))))) (add-before 'configure 'disable-backends (lambda _ (setenv "BACKENDS" " ") @@ -74,7 +89,7 @@ (substitute* "testsuite/Makefile.in" ((" backend ") " ")) #t)) - (add-after 'unpack 'disable-failing-tests + (add-before 'configure 'disable-failing-tests (lambda _ ;; Disable unmaintained tests that that fail with errors resembling: ;; @@ -96,6 +111,11 @@ (substitute* "testsuite/sanei/Makefile.in" (("sanei_usb_test\\$\\(EXEEXT\\) ") "")) #t)) + (add-before 'build 'build-pixma_sane_options.c + ;; "No rule to make target '../backend/pixma/pixma_sane_options.c', + ;; needed by 'sane-backends.pot-update'." + (lambda _ + (invoke "make" "-C" "backend" "pixma/pixma_sane_options.c"))) (add-after 'install 'install-udev-rules (lambda* (#:key outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) @@ -104,7 +124,18 @@ (string-append out "/lib/udev/rules.d/" "60-libsane.rules")) - #t)))))) + #t))) + (add-after 'install 'make-reproducible + ;; XXX Work around an old bug <https://issues.guix.gnu.org/26247>. + ;; Then work around "Throw to key `decoding-error' ..." by using sed. + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out")) + (locale (string-append out "/share/locale"))) + (with-directory-excursion locale + (for-each (lambda (file) + (invoke "sed" "-i" "/^PO-Revision-Date:/d" file)) + (list "en@boldquot/LC_MESSAGES/sane-backends.mo" + "en@quot/LC_MESSAGES/sane-backends.mo"))))))))) (home-page "http://www.sane-project.org") (synopsis "Raster image scanner library and drivers, without scanner support") @@ -114,9 +145,9 @@ 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. +;; 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. (define-public sane-backends (package (inherit sane-backends-minimal) |