From mboxrd@z Thu Jan 1 00:00:00 1970 From: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Subject: Re: [PATCH v7] Add hplip Date: Mon, 04 Apr 2016 23:45:07 +0200 Message-ID: <8737r1aw0s.fsf@gnu.org> References: <87mvpyyfon.fsf@igalia.com> <20160320011904.50131806@scratchpost.org> <20160321230700.452ca6c1@scratchpost.org> <87r3f2ud9x.fsf@igalia.com> <20160322113001.52af072b@scratchpost.org> <87egb2u6gd.fsf@igalia.com> <20160322201207.790bd384@scratchpost.org> <874mbxshv2.fsf@igalia.com> <20160323103936.1edb6d18@scratchpost.org> <20160323123630.1b962166@scratchpost.org> <20160323204659.GB21191@debian-netbook> <20160324005612.48be4e81@scratchpost.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:48549) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1anCJ9-0005YV-DN for guix-devel@gnu.org; Mon, 04 Apr 2016 17:45:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1anCJ5-0002Oi-K0 for guix-devel@gnu.org; Mon, 04 Apr 2016 17:45:15 -0400 In-Reply-To: <20160324005612.48be4e81@scratchpost.org> (Danny Milosavljevic's message of "Thu, 24 Mar 2016 00:56:12 +0100") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org To: Danny Milosavljevic Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi, Here=E2=80=99s an improved version of the patch you posted, which removes t= he dependency on Autoconf/Automake and keeps using /var as the localstatedir. However, programs now need help to find their Python modules: --8<---------------cut here---------------start------------->8--- $ /gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-scan --ve= rsion Traceback (most recent call last): File "/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-sca= n", line 40, in import scanext ImportError: No module named 'scanext' $ /gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-probe=20 Traceback (most recent call last): File "/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/bin/hp-pro= be", line 38, in from base import device, utils, tui, module File "/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/share/hpli= p/base/device.py", line 42, in from . import status File "/gnu/store/4s58vq7zn5l10143736imvq4nzjzyc7m-hplip-3.16.2/share/hpli= p/base/status.py", line 33, in import cupsext ImportError: No module named 'cupsext' --8<---------------cut here---------------end--------------->8--- Could someone add a phase to do this? TIA. :-) Ludo=E2=80=99. --=-=-= Content-Type: text/x-patch; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index ff3d152..82541ad 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -1,7 +1,8 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright =C2=A9 2015 Ricardo Wurmus -;;; Copyright =C2=A9 2015 Ludovic Court=C3=A8s +;;; Copyright =C2=A9 2015, 2016 Ludovic Court=C3=A8s ;;; Copyright =C2=A9 2015 Efraim Flashner +;;; Copyright =C2=A9 2016 Danny Milosavljevic ;;; ;;; This file is part of GNU Guix. ;;; @@ -26,6 +27,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 +302,105 @@ device-specific programs to convert and print many ty= pes 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=3D" (assoc-ref %outputs "out")) + ,(string-append "--sysconfdir=3D" (assoc-ref %outputs "out") "/et= c") + ;; 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=3D" + (assoc-ref %outputs "out") + "/lib/cups/filter") + ,(string-append "--with-cupsbackenddir=3D" + (assoc-ref %outputs "out") + "/lib/cups/backend") + ,(string-append "--with-icondir=3D" + (assoc-ref %outputs "out") + "/share/applications") + ,(string-append "--with-systraydir=3D" + (assoc-ref %outputs "out") + "/etc/xdg")) + #:phases (modify-phases %standard-phases + ;; FIXME: Add phase to wrap bin/* so that the Python libs + ;; are found. + (add-after 'unpack 'fix-hard-coded-file-names + (lambda* (#:key inputs outputs #:allow-other-keys) + (let ((out (assoc-ref outputs "out")) + ;; FIXME: use merged ppds (I think actually on= ly + ;; drvs need to be merged). + (cupsdir (assoc-ref inputs "cups-minimal"))) + (substitute* "base/g.py" + (("'/usr/share;[^']*'") + (string-append "'" cupsdir "/share'")) + (("'/etc/hp/hplip.conf'") + (string-append "'" out + "/etc/hp/hplip.conf" "'"))) + + (substitute* "Makefile.in" + (("[[: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")) + (("^\tinstall-dist_hplip_stateDATA") + ;; Remove dependencies on + ;; 'install-dist_hplip_stateDATA' so we don't b= ail + ;; out while trying to create /var/lib/hplip. + "\t") + (("hplip_confdir =3D /etc/hp") + ;; This is only used for installing the default= config. + (string-append "hplip_confdir =3D " out + "/etc/hp")) + (("halpredir =3D /usr/share/hal/fdi/preprobe/10o= svendor") + ;; Note: We don't use hal. + (string-append "halpredir =3D " out + "/share/hal/fdi/preprobe/10osven= dor")) + (("rulesdir =3D /etc/udev/rules.d") + ;; udev rules will be merged by base service. + (string-append "rulesdir =3D " out + "/lib/udev/rules.d")) + (("rulessystemdir =3D /usr/lib/systemd/system") + ;; We don't use systemd. + (string-append "rulessystemdir =3D " out + "/lib/systemd/system")) + (("/etc/sane.d") + (string-append out + "/etc/sane.d"))))))))) + ;; 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))))) --=-=-=--