diff options
Diffstat (limited to 'gnu/packages/cups.scm')
-rw-r--r-- | gnu/packages/cups.scm | 36 |
1 files changed, 35 insertions, 1 deletions
diff --git a/gnu/packages/cups.scm b/gnu/packages/cups.scm index cef586f763..452f670090 100644 --- a/gnu/packages/cups.scm +++ b/gnu/packages/cups.scm @@ -93,6 +93,13 @@ #:configure-flags `("--disable-driverless" ; TODO: enable this "--disable-mutool" ; depends on yet another PDF library (mupdf) + + ;; Look for the "domain socket of CUPS" in /var/run/cups. + "--localstatedir=/var" + + ;; Free software for the win. + "--with-acroread-path=evince" + ,(string-append "--with-test-font-path=" (assoc-ref %build-inputs "font-dejavu") "/share/fonts/truetype/DejaVuSans.ttf") @@ -103,7 +110,34 @@ (assoc-ref %build-inputs "bash") "/bin/bash") ,(string-append "--with-rcdir=" - (assoc-ref %outputs "out") "/etc/rc.d")))) + (assoc-ref %outputs "out") "/etc/rc.d")) + + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-foomatic-hardcoded-file-names + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Foomatic has hardcoded file names we need to fix. + (let ((out (assoc-ref outputs "out")) + (gs (assoc-ref inputs "ghostscript"))) + (substitute* "filter/foomatic-rip/foomaticrip.c" + (("/usr/local/lib/cups/filter") + (string-append out "/lib/cups/filter"))) + #t))) + (add-after 'install 'wrap-filters + (lambda* (#:key inputs outputs #:allow-other-keys) + ;; Some filters expect to find 'gs' in $PATH. We cannot + ;; just hard-code its absolute file name in the source + ;; because foomatic-rip, for example, has tests like + ;; 'startswith(cmd, "gs")'. + (let ((out (assoc-ref outputs "out")) + (ghostscript (assoc-ref inputs "ghostscript"))) + (for-each (lambda (file) + (wrap-program file + `("PATH" ":" prefix + (,(string-append ghostscript + "/bin"))))) + (find-files (string-append + out "/lib/cups/filter"))) + #t)))))) (native-inputs `(("glib" ,glib "bin") ; for gdbus-codegen ("pkg-config" ,pkg-config))) |