guix-devel
[Top][All Lists]
Advanced

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

Re: [PATCH v6] Add hplip


From: Efraim Flashner
Subject: Re: [PATCH v6] Add hplip
Date: Wed, 23 Mar 2016 22:46:59 +0200
User-agent: Mutt/1.5.24 (2015-08-30)

On Wed, Mar 23, 2016 at 12:36:30PM +0100, Danny Milosavljevic wrote:
> Fiddle with some of the comments:
> 
> diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm
> index ff3d152..ce90a28 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,107 @@ 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.")
> +    ;; Note: X11 license is only used in install-sh.
> +    (license (list license:gpl2 license:bsd-3 license:expat license:x11))
> +    ;; TODO install apparmor profile files eventually.
> +    (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"
> +         "--enable-hpcups-install"
> +         "--enable-new-hpcups"
> +         "--enable-cups_ppd_install"
> +         "--enable-cups_drv_install"
> +         ;; TODO add foomatic drv install eventually.
> +         ;; TODO --enable-policykit eventually.
> +         ,(string-append "--with-cupsfilterdir="
> +                         (assoc-ref %outputs "out")
> +                         "/lib/cups/filter")
> +         ,(string-append "--with-cupsbackenddir="
> +                         (assoc-ref %outputs "out")
> +                         "/lib/cups/backend")
> +         ,(string-append "--with-icondir="
> +                         (assoc-ref %outputs "out")
> +                         "/share/applications")
> +         ,(string-append "--with-systraydir="
> +                         (assoc-ref %outputs "out")
> +                         "/etc/xdg"))
> +       #:phases (modify-phases %standard-phases
> +                  (add-after 'unpack 'fix-libusb
> +                   (lambda* (#:key inputs outputs #:allow-other-keys)
> +                     (let ((out (assoc-ref outputs "out"))
> +                           ;; FIXME use merged ppds (I think actually only 
> drvs need to be merged).
> +                           (cupsdir (assoc-ref inputs "cups-minimal")))
> +                       (substitute* "base/g.py"

pull the other parts of substitute* back so that they're under the 'u'
in substitute

> +                                    (("'/usr/share;[^']*'")
> +                                     (string-append "'" cupsdir "/share'"))
> +                                    (("'/etc/hp/hplip.conf'")
> +                                    (string-append "'" out
> +                                                   "/etc/hp/hplip.conf" 
> "'")))
> +                       (substitute* "Makefile.am"
> +                                    
> (("[[:blank:]]check-plugin\\.py[[:blank:]]") " ")
> +                                    ;; FIXME Use beginning-of-word in regexp.
> +                                    (("[[:blank:]]plugin\\.py[[:blank:]]") " 
> ")
> +                                    (("/usr/include/libusb-1.0")
> +                                     (string-append (assoc-ref inputs 
> "libusb")
> +                                                    "/include/libusb-1.0"))
> +                                    (("hplip_statedir[ ]*=[ ]*/var/lib/hp")
> +                                     ;; This is only user in the installer.
> +                                     (string-append "hplip_statedir = " out
> +                                                    "/var/lib/hp"))
> +                                    (("hplip_confdir[ ]*=[ ]*/etc/hp")
> +                                     ;; This is only used for installing the 
> default config.
> +                                     (string-append "hplip_confdir = " out
> +                                                    "/etc/hp"))
> +                                    (("halpredir[ ]*=[ 
> ]*/usr/share/hal/fdi/preprobe/10osvendor")
> +                                     ;; Note: We don't 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")
> +                                     ;; We don't use systemd.
> +                                     (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)

python-wrapper wraps python, so that python3 is presented to the system
as python and as python3. Does the package really need both?

> +              ;; TODO: Make hp-setup find python-dbus.
> +              ("python-dbus" ,python-dbus)))
> +    (native-inputs `(("pkg-config" ,pkg-config)
> +                     ("automake" ,automake)
> +                     ("autoconf" ,autoconf)
> +                     ("libtool" ,libtool)))))
> 

This was one of the packages that I was looking at packaging and it
looks a lot more complicated than I would've thought. Great work so far
on the package!

-- 
Efraim Flashner   <address@hidden>   אפרים פלשנר
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted

Attachment: signature.asc
Description: PGP signature


reply via email to

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