summary refs log tree commit diff
path: root/gnu/packages/scanner.scm
diff options
context:
space:
mode:
authorTobias Geerinckx-Rice <me@tobias.gr>2021-02-15 14:49:49 +0100
committerTobias Geerinckx-Rice <me@tobias.gr>2021-02-15 17:23:55 +0100
commit902d76c839e325cd452a71332b50a657df5f02c9 (patch)
tree9663f8ccd7ca606355cee2608a8fb0973f94f858 /gnu/packages/scanner.scm
parent641fc7c13c35216f8ad14589c178695a134a291b (diff)
downloadguix-902d76c839e325cd452a71332b50a657df5f02c9.tar.gz
gnu: sane-backends-minimal: Don't use unstable tarball.
* gnu/packages/scanner.scm (sane-backends-minimal)[source]: Use
GIT-FETCH and GIT-FILE-NAME.
[arguments]:
[native-inputs]: Add autoconf, autoconf-archive, automake,
gettext-minimal, libtool, and python-wrapper.
[arguments]: Add ‘zap-unnecessary-git-dependency’,
‘build-pixma_sane_options.c’, and ‘make-reproducible’ phases.
Diffstat (limited to 'gnu/packages/scanner.scm')
-rw-r--r--gnu/packages/scanner.scm55
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)