all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Danny Milosavljevic <dannym@scratchpost.org>
To: Andy Wingo <wingo@igalia.com>
Cc: guix-devel@gnu.org
Subject: [PATCH v4] Add hplip
Date: Tue, 22 Mar 2016 20:12:07 +0100	[thread overview]
Message-ID: <20160322201207.790bd384@scratchpost.org> (raw)
In-Reply-To: <87egb2u6gd.fsf@igalia.com>

(No functional changes)

diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
index ff3d152..93a7828 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")
+         ;; Disable until mime.types merging works (FIXME)
+         "--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 (modify-phases %standard-phases
+                  (add-after 'unpack 'fix-libusb
+                   (lambda* (#:key inputs outputs #:allow-other-keys)
+                     (let ((out (assoc-ref outputs "out")))
+                       (substitute* "base/g.py"
+                                    (("'/etc/hp/hplip.conf'")
+                                    (string-append "'" out
+                                                   "/etc/hp/hplip.conf" "'")))
+                       (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")
+                                     ;; udev rules 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"))))))
+                  (add-after 'fix-libusb 'autoreconf
+                   (lambda _
+                     (setenv "AUTOMAKE" "automake --foreign")
+                     (zero? (system* "autoreconf" "-fi")))))))
+
+    ; 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)
+              ("python-wrapper" ,python-wrapper)
+              ("python" ,python)
+              ; TODO: make hp-setup find python-dbus
+              ("python-dbus" ,python-dbus)))
+    (native-inputs `(("pkg-config" ,pkg-config)
+                     ("automake" ,automake)
+                     ("autoconf" ,autoconf)
+                     ("libtool" ,libtool)))))

  reply	other threads:[~2016-03-22 19:12 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-12 18:12 Using cups Danny Milosavljevic
2016-03-13 22:10 ` Ludovic Courtès
2016-03-15 20:05   ` Danny Milosavljevic
2016-03-15 21:19     ` hplip package (work in progress) Danny Milosavljevic
2016-03-16  8:19       ` Andy Wingo
2016-03-16  8:45         ` Andy Wingo
2016-03-20  0:19           ` Danny Milosavljevic
2016-03-21 22:07             ` [PATCH v2] Add hplip Danny Milosavljevic
2016-03-22  8:28               ` Andy Wingo
2016-03-22 10:30                 ` [PATCH v3] " Danny Milosavljevic
2016-03-22 10:56                   ` Andy Wingo
2016-03-22 19:12                     ` Danny Milosavljevic [this message]
2016-03-22 23:51                       ` cups-service Danny Milosavljevic
2016-03-23  0:40                         ` cups-service Danny Milosavljevic
2016-03-23  9:07                           ` cups-service v2 Danny Milosavljevic
2016-04-29 15:09                             ` Ludovic Courtès
2016-03-23  8:45                       ` [PATCH v4] Add hplip Andy Wingo
2016-03-23  9:39                         ` [PATCH v5] " Danny Milosavljevic
2016-03-23 11:36                           ` [PATCH v6] " Danny Milosavljevic
2016-03-23 20:46                             ` Efraim Flashner
2016-03-23 23:56                               ` [PATCH v7] " Danny Milosavljevic
2016-04-04 21:45                                 ` Ludovic Courtès
2016-04-10 20:57                                   ` Danny Milosavljevic
2016-04-29 15:07                                   ` Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20160322201207.790bd384@scratchpost.org \
    --to=dannym@scratchpost.org \
    --cc=guix-devel@gnu.org \
    --cc=wingo@igalia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.