guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH v3] Add hplip


From: Danny Milosavljevic
Subject: [PATCH v3] Add hplip
Date: Tue, 22 Mar 2016 11:30:01 +0100

Fixed some whitespace and added line breaks to make guix lint happy. Also added 
python-wrapper as input so that hp-setup works.

diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index ff3d152..266c741 100644
--- a/gnu/packages/cups.scm
+++ b/gnu/packages/cups.scm
@@ -26,6 +26,10 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages avahi)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages libusb)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages scanner)
   #:use-module (gnu packages image)
   #:use-module (gnu packages fonts) ;font-dejavu
   #:use-module (gnu packages fontutils)
@@ -297,3 +301,96 @@ device-specific programs to convert and print many types 
of files.")
        ("gnutls" ,gnutls)
        ("cups-filters" ,cups-filters)
        ("zlib"  ,zlib)))))
+
+(define-public hplip
+  (package
+    (name "hplip")
+    (version "3.16.2")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://sourceforge/hplip/"
+                                  "/hplip-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1nflgrbyl0fz35djnkn7qsfr5g4sh8lixqna9jvs52wasjllbj7j"))))
+    (build-system gnu-build-system)
+    (home-page "http://hplipopensource.com/";)
+    (synopsis "HP Printer Drivers")
+    (description "Hewlett-Packard Printer Drivers and PPDs.")
+    (license (list license:gpl2 license:bsd-3)) ; FIXME and which MIT
+    ; FIXME remove proprietary plug-in installer, hp-plugin (plugin.py)
+    ; FIXME PPDs use "hpcups" in cupsFilter. In which directory?
+    ; TODO install apparmor profile files
+    (arguments `(#:configure-flags `("--disable-network-build"
+                                     ,(string-append "--prefix="
+                                                     (assoc-ref %outputs 
"out"))
+                                     ,(string-append "--sysconfdir="
+                                                     (assoc-ref %outputs 
"out") "/etc")
+                                     ; until mime.types merging works; FIXME 
re-enable
+                                     "--disable-fax-build"
+                                     ,(string-append "--with-cupsfilterdir="
+                                                     (assoc-ref %outputs "out")
+                                                     "/lib/cups/filter") ; 
TODO merge
+                                     ,(string-append "--with-cupsbackenddir="
+                                                     (assoc-ref %outputs "out")
+                                                     "/lib/cups/backend") ; 
TODO merge
+                                     ,(string-append "--with-icondir="
+                                                     (assoc-ref %outputs "out")
+                                                     "/share/applications") ; 
TODO merge
+                                     ,(string-append "--with-systraydir="
+                                                     (assoc-ref %outputs "out")
+                                                     "/etc/xdg")) ; TODO merge
+                 #:phases (alist-cons-after 'fix-libusb 'autoreconf
+                           (lambda _
+                             (setenv "AUTOMAKE" "automake --foreign")
+                             (zero? (system* "autoreconf" "-fi")))
+                           (alist-cons-after 'unpack 'fix-libusb
+                            (lambda* (#:key inputs outputs #:allow-other-keys)
+                             (let ((out (assoc-ref outputs "out")))
+                              (substitute* "Makefile.am"
+                                           (("/usr/include/libusb-1.0")
+                                            (string-append (assoc-ref inputs 
"libusb")
+                                                           
"/include/libusb-1.0"))
+                                           (("hplip_statedir[ ]*=[ 
]*/var/lib/hp")
+                                            ; only for the installer.
+                                            (string-append "hplip_statedir = " 
out
+                                            "/var/lib/hp"))
+                                           (("hplip_confdir[ ]*=[ ]*/etc/hp")
+                                            ; only for installing the default 
config
+                                            (string-append "hplip_confdir = " 
out
+                                                           "/etc/hp"))
+                                           (("halpredir[ ]*=[ 
]*/usr/share/hal/fdi/preprobe/10osvendor")
+                                            ; I don't think we use hal
+                                            (string-append "halpredir = " out
+                                                           
"/share/hal/fdi/preprobe/10osvendor"))
+                                           (("rulesdir[ ]*=[ 
]*/etc/udev/rules.d")
+                                            ; will be merged by base service
+                                            (string-append "rulesdir = " out
+                                                           
"/lib/udev/rules.d"))
+                                           
(("rulessystemdir=/usr/lib/systemd/system")
+                                            ; dummy
+                                            (string-append "rulessystemdir = " 
out
+                                                           
"/lib/systemd/system"))
+                                           (("/etc/sane.d")
+                                            (string-append out
+                                                           "/etc/sane.d")))))
+                            %standard-phases))))
+    ; error: Unable to locate models.dat file
+    ; Python3 support is available starting from HPLIP-3.15.2
+    (inputs `(("libjpeg" ,libjpeg)
+              ("cups-minimal" ,cups-minimal)
+              ("libusb" ,libusb)
+              ("sane-backends" ,sane-backends)
+              ("dbus" ,dbus)
+              ; I don't think we need to propagate those.
+              ; wrapper: makes "python" available rather than "python3"
+              ("python-wrapper" ,python-wrapper)
+              ("python" ,python) ; patch-shebang still complains
+              ; TODO: make hp-setup find python-dbus
+              ("python-dbus" ,python-dbus)))
+    ;(propagated-inputs `(("python" ,python)
+    ;                     ("python-dbus" ,python-dbus)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("automake" ,automake)
+                     ("autoconf" ,autoconf)
+                     ("libtool" ,libtool)))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]