Patchwork gnu: asymptote: Install Emacs data

login
register
mail settings
Submitter Nicolas Goaziou
Date May 7, 2016, 12:50 p.m.
Message ID <871t5eav7f.fsf@saiph.selenimh>
Download mbox | patch
Permalink /patch/12124/
State New
Headers show

Comments

Nicolas Goaziou - May 7, 2016, 12:50 p.m.
Hello,

Alex Kost <alezost@gmail.com> writes:

> Thanks!  Sorry I didn't build asymptote (as I don't have a wish to build
> gigabytes of texlive), but I looked at the source and I see there are
> "autoloads" cookies in "<asymptote>/base/asy-mode.el", so it would also
> be good to generate "asymptote-autoloads.el" file.

Indeed.

> For example, you may look at (gnu packages emacs) module to see how
> "autoloads" file are generated using 'emacs-generate-autoloads'
> procedure.  I write some notes below, that seems appropriate to me, but
> I'm not going to test the patch because of texlive (sorry again).  I
> hope other people will do.

Fair enough.

Here is an updated patch with suggested changes. Thank you for the review.

Regards,
Alex Kost - May 8, 2016, 8:58 a.m.
Nicolas Goaziou (2016-05-07 15:50 +0300) wrote:

> Hello,
>
> Alex Kost <alezost@gmail.com> writes:
>
>> Thanks!  Sorry I didn't build asymptote (as I don't have a wish to build
>> gigabytes of texlive), but I looked at the source and I see there are
>> "autoloads" cookies in "<asymptote>/base/asy-mode.el", so it would also
>> be good to generate "asymptote-autoloads.el" file.
>
> Indeed.
>
>> For example, you may look at (gnu packages emacs) module to see how
>> "autoloads" file are generated using 'emacs-generate-autoloads'
>> procedure.  I write some notes below, that seems appropriate to me, but
>> I'm not going to test the patch because of texlive (sorry again).  I
>> hope other people will do.
>
> Fair enough.
>
> Here is an updated patch with suggested changes. Thank you for the review.

Thanks!  Looks good to me, so if there will be no other comments in
several days, I will commit it.  Did you check that the resulting
"/share/emacs/site-lisp" directory contains elisp files (including
"asymptote-autoloads.el")?
Nicolas Goaziou - May 8, 2016, 9:10 a.m.
Hello,

Alex Kost <alezost@gmail.com> writes:

> Thanks!  Looks good to me, so if there will be no other comments in
> several days, I will commit it.  Did you check that the resulting
> "/share/emacs/site-lisp" directory contains elisp files (including
> "asymptote-autoloads.el")?

Yes, I did. All is fine, AFAICT.


Regards,
Alex Kost - May 12, 2016, 10:02 a.m.
Nicolas Goaziou (2016-05-08 12:10 +0300) wrote:

> Alex Kost <alezost@gmail.com> writes:
>
>> Thanks!  Looks good to me, so if there will be no other comments in
>> several days, I will commit it.  Did you check that the resulting
>> "/share/emacs/site-lisp" directory contains elisp files (including
>> "asymptote-autoloads.el")?
>
> Yes, I did. All is fine, AFAICT.

I was going to commit it, but I can't do it right now (apparently there
are problems with git.sv.gnu.org).  I will do as soon as possible.
Thanks!

Patch

From bc0ade21f50a9c6b2f063e8043abe72a61fa9328 Mon Sep 17 00:00:00 2001
From: Nicolas Goaziou <mail@nicolasgoaziou.fr>
Date: Wed, 4 May 2016 00:43:36 +0200
Subject: [PATCH] gnu: asymptote: Install Emacs data

* gnu/packages/plotutils.scm (asymptote)[arguments]: Add a phase to
  install Emacs-Lisp files in an appropriate place.
---
 gnu/packages/plotutils.scm | 29 ++++++++++++++++++++++++-----
 1 file changed, 24 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 3fdd539..fc0436b 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -25,6 +25,7 @@ 
   #:use-module (guix build-system gnu)
   #:use-module (gnu packages algebra)
   #:use-module (gnu packages bdw-gc)
+  #:use-module (gnu packages emacs)
   #:use-module (gnu packages xorg)
   #:use-module (gnu packages image)
   #:use-module (gnu packages ghostscript)
@@ -190,7 +191,8 @@  colors, styles, options and details.")
        ("texlive" ,texlive)             ;For tests and documentation
        ("perl" ,perl)))
     (inputs
-     `(("fftw" ,fftw)
+     `(("emacs" ,emacs-no-x)
+       ("fftw" ,fftw)
        ("freeglut" ,freeglut)
        ("gsl" ,gsl)
        ("libgc" ,libgc)
@@ -198,7 +200,13 @@  colors, styles, options and details.")
        ("readline" ,readline)
        ("zlib" ,zlib)))
     (arguments
-     `(#:configure-flags
+     `(#:modules ((guix build emacs-utils)
+                  (guix build gnu-build-system)
+                  (guix build utils)
+                  (srfi srfi-26))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-utils))
+       #:configure-flags
        (list (string-append "--enable-gc=" (assoc-ref %build-inputs "libgc"))
              (string-append "--with-latex="
                             (assoc-ref %outputs "out")
@@ -210,15 +218,26 @@  colors, styles, options and details.")
        (modify-phases %standard-phases
          (add-before 'build 'patch-pdf-viewer
            (lambda _
-             ;; Default to a free pdf viewer
+             ;; Default to a free pdf viewer.
              (substitute* "settings.cc"
                (("defaultPDFViewer=\"acroread\"")
-                "defaultPDFViewer=\"gv\""))))
+                "defaultPDFViewer=\"gv\""))
+             #t))
          (add-before 'check 'set-HOME
            ;; Some tests require write access to $HOME, otherwise leading to
            ;; "failed to create directory /homeless-shelter/.asy" error.
            (lambda _
-             (setenv "HOME" "/tmp"))))))
+             (setenv "HOME" "/tmp")
+             #t))
+         (add-after 'install 'install-Emacs-data
+           (lambda* (#:key outputs #:allow-other-keys)
+             ;; Install related Emacs libraries into an appropriate location.
+             (let* ((out (assoc-ref outputs "out"))
+                    (lisp-dir (string-append out "/share/emacs/site-lisp")))
+               (for-each (cut install-file <> lisp-dir)
+                         (find-files "." "\\.el$"))
+               (emacs-generate-autoloads ,name lisp-dir))
+             #t)))))
     (home-page "http://asymptote.sourceforge.net")
     (synopsis "Script-based vector graphics language")
     (description
-- 
2.7.4