From 4baeb72717481768fbc3245247018fb7629bfa37 Mon Sep 17 00:00:00 2001 From: Liliana Marie Prikler Date: Sat, 13 Nov 2021 07:44:57 +0100 Subject: [PATCH] gnu: emacs: Make DocView PDF work out of the box. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * gnu/packages/emacs.scm (emacs)[patch-program-file-names]: Add patches for the programs “gs”, “dvipdf”, “ps2pdf” and “pdftotext”. [inputs]: Add ghostscript and poppler. --- gnu/packages/emacs.scm | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm index 0430a79716..f534b1ccdc 100644 --- a/gnu/packages/emacs.scm +++ b/gnu/packages/emacs.scm @@ -18,7 +18,7 @@ ;;; Copyright © 2018, 2019, 2021 Tobias Geerinckx-Rice ;;; Copyright © 2019 Jesse John Gildersleve ;;; Copyright © 2019 Valentin Ignatev -;;; Copyright © 2019 Liliana Marie Prikler +;;; Copyright © 2019, 2021 Liliana Marie Prikler ;;; Copyright © 2019 Amin Bandali ;;; Copyright © 2020 Jack Hill ;;; Copyright © 2020 Morgan Smith @@ -54,6 +54,7 @@ (define-module (gnu packages emacs) #:use-module (gnu packages fribidi) #:use-module (gnu packages gd) #:use-module (gnu packages gettext) + #:use-module (gnu packages ghostscript) #:use-module (gnu packages glib) #:use-module (gnu packages gnome) ; for librsvg #:use-module (gnu packages gtk) @@ -63,6 +64,7 @@ (define-module (gnu packages emacs) #:use-module (gnu packages mail) ; for mailutils #:use-module (gnu packages multiprecision) #:use-module (gnu packages ncurses) + #:use-module (gnu packages pdf) #:use-module (gnu packages pkg-config) #:use-module (gnu packages texinfo) #:use-module (gnu packages tls) @@ -128,7 +130,7 @@ (define-public emacs #:phases (modify-phases %standard-phases (add-after 'unpack 'patch-program-file-names - (lambda _ + (lambda* (#:key inputs #:allow-other-keys) (substitute* '("src/callproc.c" "lisp/term.el" "lisp/htmlfontify.el" @@ -136,6 +138,17 @@ (define-public emacs "lisp/progmodes/sh-script.el") (("\"/bin/sh\"") (format #f "~s" (which "sh")))) + (substitute* "lisp/doc-view.el" + (("\"(gs|dvipdf|ps2pdf)\"" all what) + (let ((ghostscript (assoc-ref inputs "ghostscript"))) + (if ghostscript + (string-append "\"" ghostscript "/bin/" what "\"") + all))) + (("\"(pdftotext)\"" all what) + (let ((poppler (assoc-ref inputs "poppler"))) + (if poppler + (string-append "\"" poppler "/bin/" what "\"") + all)))) ;; match ".gvfs-fuse-daemon-real" and ".gvfsd-fuse-real" ;; respectively when looking for GVFS processes. (substitute* "lisp/net/tramp-gvfs.el" @@ -264,6 +277,8 @@ (define* (emacs-byte-compile-directory dir) ("acl" ,acl) ("jansson" ,jansson) ("gmp" ,gmp) + ("ghostscript" ,ghostscript) + ("poppler" ,poppler) ;; When looking for libpng `configure' links with `-lpng -lz', so we ;; must also provide zlib as an input.