;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2015 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2015, 2016, 2017 Ludovic Courtès <ludo@gnu.org>
-;;; Copyright © 2015, 2016, 2017 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2015, 2016, 2017, 2018 Efraim Flashner <efraim@flashner.co.il>
;;; Copyright © 2016 Danny Milosavljevic <dannym@scratchpost.org>
;;; Copyright © 2017 Leo Famulari <leo@famulari.name>
;;; Copyright © 2017 Mark H Weaver <mhw@netris.org>
;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>.
(define-module (gnu packages cups)
- #:use-module ((guix licenses) #:prefix license:)
- #:use-module (guix packages)
- #:use-module (guix download)
- #:use-module (guix build-system gnu)
#:use-module (gnu packages)
#:use-module (gnu packages algebra)
#:use-module (gnu packages autotools)
#:use-module (gnu packages avahi)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages fonts) ; font-dejavu
+ #:use-module (gnu packages fontutils)
+ #:use-module (gnu packages ghostscript)
+ #:use-module (gnu packages glib)
#:use-module (gnu packages groff)
+ #:use-module (gnu packages image)
#:use-module (gnu packages libusb)
+ #:use-module (gnu packages pdf)
#:use-module (gnu packages perl)
+ #:use-module (gnu packages pkg-config)
#:use-module (gnu packages pretty-print)
#:use-module (gnu packages python)
+ #:use-module (gnu packages python-xyz)
+ #:use-module (gnu packages qt)
#:use-module (gnu packages scanner)
- #:use-module (gnu packages image)
- #:use-module (gnu packages fonts) ;font-dejavu
- #:use-module (gnu packages fontutils)
- #:use-module (gnu packages ghostscript)
- #:use-module (gnu packages glib)
- #:use-module (gnu packages pdf)
- #:use-module (gnu packages pkg-config)
- #:use-module (gnu packages tls))
+ #:use-module (gnu packages tls)
+ #:use-module (guix build-system gnu)
+ #:use-module (guix download)
+ #:use-module ((guix licenses) #:prefix license:)
+ #:use-module (guix packages)
+ #:use-module (guix utils)
+ #:use-module (srfi srfi-1))
(define-public cups-filters
(package
(name "cups-filters")
- (version "1.17.9")
+ (version "1.21.0")
(source(origin
(method url-fetch)
(uri
"cups-filters-" version ".tar.xz"))
(sha256
(base32
- "0i7mvvnq7ayhxn1ajci8h7l3cijzwr9d50p58h0rbsh9hf63zblq"))
+ "0fs90xx9i4h8gbpligf5kkh21llv4kf5g3bgfbx4z272xkm7bsfi"))
(modules '((guix build utils)))
(snippet
;; install backends, banners and filters to cups-filters output
;; output directory, not CUPS's prefix.
(substitute* "configure"
(("\\{CUPS_DATADIR\\}/data")
- "{prefix}/share/cups/data"))))))
+ "{prefix}/share/cups/data"))
+ #t))))
(build-system gnu-build-system)
(arguments
`(#:make-flags (list (string-append "PREFIX=" %output))
(define-public cups-minimal
(package
(name "cups-minimal")
- (version "2.2.6")
+ (version "2.2.8")
(source
(origin
(method url-fetch)
version "/cups-" version "-source.tar.gz"))
(sha256
(base32
- "16qn41b84xz6khrr2pa2wdwlqxr29rrrkjfi618gbgdkq9w5ff20"))))
+ "1r7r7b3nqpzc1a9dczqpj2mr8rkcwf01676v11sp4j7w4qfzqs1r"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags
(lambda _
(substitute* "Makedefs.in"
(("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@")
- (("/bin/sh") (which "sh")))))
+ (("/bin/sh") (which "sh")))
+ #t))
;; Make the compressed manpages writable so that the
;; reset-gzip-timestamps phase does not error out.
(add-before 'reset-gzip-timestamps 'make-manpages-writable
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man")))
(for-each (lambda (file) (chmod file #o644))
- (find-files man "\\.gz")))))
+ (find-files man "\\.gz"))
+ #t)))
(add-before 'build 'patch-tests
(lambda _
(substitute* "test/ippserver.c"
(("# else /\\* HAVE_AVAHI \\*/")
- "#elif defined(HAVE_AVAHI)")))))))
+ "#elif defined(HAVE_AVAHI)"))
+ #t)))))
(native-inputs
`(("pkg-config" ,pkg-config)))
(inputs
(lambda _
(substitute* "Makedefs.in"
(("INITDIR.*=.*@INITDIR@") "INITDIR = @prefix@/@INITDIR@")
- (("/bin/sh") (which "sh")))))
+ (("/bin/sh") (which "sh")))
+ #t))
(add-before 'check 'patch-tests
(lambda _
(let ((filters (assoc-ref %build-inputs "cups-filters"))
(("cupsFileFind\\(\"cat\", \"/bin\"")
(string-append "cupsFileFind(\"cat\", \"" catpath "\""))
(("cupsFileFind\\(\"cat\", \"/bin:/usr/bin\"")
- (string-append "cupsFileFind(\"cat\", \"" catpath "\""))))))
+ (string-append "cupsFileFind(\"cat\", \"" catpath "\"")))
+ #t)))
;; Make the compressed manpages writable so that the
;; reset-gzip-timestamps phase does not error out.
(add-before 'reset-gzip-timestamps 'make-manpages-writable
(let* ((out (assoc-ref outputs "out"))
(man (string-append out "/share/man")))
(for-each (lambda (file) (chmod file #o644))
- (find-files man "\\.gz")))))
+ (find-files man "\\.gz"))
+ #t)))
(add-after 'install 'install-cups-filters-symlinks
(lambda* (#:key inputs outputs #:allow-other-keys)
(let ((out (assoc-ref outputs "out"))
(let ((data "/share/cups/data"))
(delete-file-recursively (string-append out data))
(symlink (string-append cups-filters data)
- (string-append out data)))))))))
+ (string-append out data)))
+
+ #t))))))
(inputs
`(("avahi" ,avahi)
("gnutls" ,gnutls)
(define-public hplip
(package
(name "hplip")
- (version "3.17.11")
+ (version "3.18.9")
(source (origin
(method url-fetch)
(uri (string-append "mirror://sourceforge/hplip/hplip/" version
"/hplip-" version ".tar.gz"))
(sha256
(base32
- "0xda7x7xxjvzn1l0adlvbwcw21crq1r3r79bkf94q3m5i6abx49g"))
+ "0g3q5mm2crjyc1z4z6gv4lam6sc5d3diz704djrnpqadk4q3h290"))
(modules '((guix build utils)))
+ (patches (search-patches "hplip-remove-imageprocessor.patch"))
(snippet
- ;; Fix type mismatch.
- '(substitute* "prnt/hpcups/genPCLm.cpp"
- (("boolean") "bool")))))
+ '(begin
+ ;; Delete non-free blobs
+ (for-each delete-file (find-files "." "\\.so$"))
+ (delete-file "prnt/hpcups/ImageProcessor.h")
+ ;; Fix type mismatch.
+ (substitute* "prnt/hpcups/genPCLm.cpp"
+ (("boolean") "bool"))
+ #t))))
(build-system gnu-build-system)
- (home-page "http://hplipopensource.com/")
- (synopsis "HP Printer Drivers")
- (description "Hewlett-Packard Printer Drivers and PPDs.")
+ (home-page "https://developers.hp.com/hp-linux-imaging-and-printing")
+ (synopsis "HP printer drivers")
+ (description
+ "Hewlett-Packard printer drivers and PostScript Printer Descriptions
+(@dfn{PPD}s).")
;; The 'COPYING' file lists directories where each of these 3 licenses
;; applies.
`("--disable-network-build"
,(string-append "--prefix=" (assoc-ref %outputs "out"))
,(string-append "--sysconfdir=" (assoc-ref %outputs "out") "/etc")
+ ,(string-append "LDFLAGS=-Wl,-rpath="
+ (assoc-ref %outputs "out") "/lib")
;; Disable until mime.types merging works (FIXME).
"--disable-fax-build"
"--enable-hpcups-install"
,(string-append "--with-icondir="
(assoc-ref %outputs "out") "/share/applications")
,(string-append "--with-systraydir="
- (assoc-ref %outputs "out") "/etc/xdg"))
+ (assoc-ref %outputs "out") "/etc/xdg")
+ "--enable-qt5" "--disable-qt4")
#:imported-modules ((guix build python-build-system)
,@%gnu-build-system-modules)
(string-append "hplip_confdir = " out
"/etc/hp"))
(("halpredir = /usr/share/hal/fdi/preprobe/10osvendor")
- ;; Note: We don't use hal.
+ ;; We don't use hal.
(string-append "halpredir = " out
"/share/hal/fdi/preprobe/10osvendor"))
(("rulesdir = /etc/udev/rules.d")
(("/etc/sane.d")
(string-append out "/etc/sane.d"))))))
- ;; Wrap bin/* so that the Python libs are found.
+ ;; Wrap bin/* so that the Python libraries are found.
(add-after 'install 'wrap-binaries
(assoc-ref python:%standard-phases 'wrap)))))
- ;; Python3 support is available starting from hplip@3.15.2.
- (inputs `(("libjpeg" ,libjpeg)
- ("cups-minimal" ,cups-minimal)
- ("libusb" ,libusb)
- ("sane-backends" ,sane-backends-minimal)
- ("zlib" ,zlib)
- ("dbus" ,dbus)
- ("python-wrapper" ,python-wrapper)
- ("python" ,python)
- ;; TODO: Make hp-setup find python-dbus.
- ("python-dbus" ,python-dbus)))
- (native-inputs `(("pkg-config" ,pkg-config)
- ("perl" ,perl)))))
+ ;; Note that the error messages printed by the tools in the case of
+ ;; missing dependencies are often downright misleading.
+ ;; TODO: hp-toolbox still fails to start with:
+ ;; from dbus.mainloop.pyqt5 import DBusQtMainLoop
+ ;; ModuleNotFoundError: No module named 'dbus.mainloop.pyqt5'
+ (inputs
+ `(("cups-minimal" ,cups-minimal)
+ ("dbus" ,dbus)
+ ("libjpeg" ,libjpeg)
+ ("libusb" ,libusb)
+ ("python" ,python)
+ ("python-dbus" ,python-dbus)
+ ("python-pygobject" ,python-pygobject)
+ ("python-pyqt" ,python-pyqt)
+ ("python-wrapper" ,python-wrapper)
+ ("sane-backends" ,sane-backends-minimal)
+ ("zlib" ,zlib)))
+ (native-inputs
+ `(("perl" ,perl)
+ ("pkg-config" ,pkg-config)))))
+
+(define-public hplip-minimal
+ (package
+ (inherit hplip)
+ (name "hplip-minimal")
+ (arguments
+ (substitute-keyword-arguments (package-arguments hplip)
+ ((#:configure-flags cf)
+ `(delete "--enable-qt5" ,cf))))
+ (inputs
+ (fold alist-delete (package-inputs hplip)
+ '("python-pygobject" "python-pyqt")))
+ (synopsis "GUI-less version of hplip")))
(define-public foomatic-filters
(package
(define-public foo2zjs
(package
(name "foo2zjs")
- (version "20171202")
+ (version "20180910")
(source (origin
(method url-fetch)
;; XXX: This is an unversioned URL!
(uri "http://foo2zjs.rkkda.com/foo2zjs.tar.gz")
(sha256
(base32
- "10m1ksbzqsrsl4faqyl73ahfnj2hv1y3zrmr366zvjg7w3l6ag5n"))))
+ "1clddqy4y4vvws0lllv1v90dfiihihdc23bn93c544yb3fvmwmr6"))))
(build-system gnu-build-system)
(arguments
'(#:phases (modify-phases %standard-phases
(define-public escpr
(package
(name "escpr")
- (version "1.6.18")
+ (version "1.6.30")
;; XXX: This currently works. But it will break as soon as a newer
;; version is available since the URLs for older versions are not
;; preserved. An alternative source will be added as soon as
(source (origin
(method url-fetch)
;; The uri has to be chopped up in order to satisfy guix lint.
- (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/06/86/80/"
- "9955e43f3aead20366851d24cea65de779cf5aa7/"
- "epson-inkjet-printer-escpr-1.6.18-1lsb3.2.tar.gz"))
+ (uri (string-append "https://download3.ebz.epson.net/dsc/f/03/00/08/18/20/"
+ "e94de600e28e510c1cfa158929d8b2c0aadc8aa0/"
+ "epson-inkjet-printer-escpr-1.6.30-1lsb3.2.tar.gz"))
(sha256
(base32
- "137jf52dhi5v2rkmlw4b73f7r7f98m61dpgsb7yvqs2f0yhsjsb3"))))
+ "0m8pyfkixisp0vclwxj340isn15zzisal0v2xvv66kxfd68dzf12"))))
(build-system gnu-build-system)
(arguments
`(#:configure-flags