* [PATCH] gnu: asymptote: Install Emacs data
@ 2016-05-06 23:48 Nicolas Goaziou
2016-05-07 8:15 ` Alex Kost
0 siblings, 1 reply; 6+ messages in thread
From: Nicolas Goaziou @ 2016-05-06 23:48 UTC (permalink / raw)
To: guix-devel
[-- Attachment #1: Type: text/plain, Size: 249 bytes --]
Hello,
The following patch installs Emacs libraries provided by Asymptote in
a location where they can be found.
Thank you for considering it for inclusion.
Regards,
--
Nicolas Goaziou 0x80A93738
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: install Emacs data with asymptote --]
[-- Type: text/x-diff, Size: 2364 bytes --]
From 5ebefd0edc14c4b0dc0db6dec200cc117c625848 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 | 16 +++++++++++++---
1 file changed, 13 insertions(+), 3 deletions(-)
diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
index 3fdd539..027fdc1 100644
--- a/gnu/packages/plotutils.scm
+++ b/gnu/packages/plotutils.scm
@@ -198,7 +198,10 @@ colors, styles, options and details.")
("readline" ,readline)
("zlib" ,zlib)))
(arguments
- `(#:configure-flags
+ `(#:modules ((guix build gnu-build-system)
+ (guix build utils)
+ (srfi srfi-26))
+ #:configure-flags
(list (string-append "--enable-gc=" (assoc-ref %build-inputs "libgc"))
(string-append "--with-latex="
(assoc-ref %outputs "out")
@@ -210,7 +213,7 @@ 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\""))))
@@ -218,7 +221,14 @@ colors, styles, options and details.")
;; 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")))
+ (add-after 'install 'install-emacs-data
+ (lambda* (#:key outputs #:allow-other-keys)
+ ;; Install related Emacs libraries in an appropriate location.
+ (for-each (cute install-file <>
+ (string-append (assoc-ref outputs "out")
+ "/share/emacs/site-lisp"))
+ (find-files "." "\\.el$")))))))
(home-page "http://asymptote.sourceforge.net")
(synopsis "Script-based vector graphics language")
(description
--
2.7.4
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: asymptote: Install Emacs data
2016-05-06 23:48 [PATCH] gnu: asymptote: Install Emacs data Nicolas Goaziou
@ 2016-05-07 8:15 ` Alex Kost
2016-05-07 12:50 ` Nicolas Goaziou
0 siblings, 1 reply; 6+ messages in thread
From: Alex Kost @ 2016-05-07 8:15 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: guix-devel
Nicolas Goaziou (2016-05-07 02:48 +0300) wrote:
> Hello,
>
> The following patch installs Emacs libraries provided by Asymptote in
> a location where they can be found.
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.
This file will be automatically loaded by emacs, and a user will not
have to do any additional settings in ".emacs", as ".asy" files will be
opened in "asy-mode" automatically.
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.
> From 5ebefd0edc14c4b0dc0db6dec200cc117c625848 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 | 16 +++++++++++++---
> 1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/gnu/packages/plotutils.scm b/gnu/packages/plotutils.scm
> index 3fdd539..027fdc1 100644
> --- a/gnu/packages/plotutils.scm
> +++ b/gnu/packages/plotutils.scm
> @@ -198,7 +198,10 @@ colors, styles, options and details.")
> ("readline" ,readline)
> ("zlib" ,zlib)))
> (arguments
> - `(#:configure-flags
> + `(#:modules ((guix build gnu-build-system)
> + (guix build utils)
> + (srfi srfi-26))
You will need to add (guix build emacs-utils) module here, and:
#: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,7 +213,7 @@ 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\""))))
> @@ -218,7 +221,14 @@ colors, styles, options and details.")
> ;; 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")))
> + (add-after 'install 'install-emacs-data
> + (lambda* (#:key outputs #:allow-other-keys)
> + ;; Install related Emacs libraries in an appropriate location.
> + (for-each (cute install-file <>
> + (string-append (assoc-ref outputs "out")
> + "/share/emacs/site-lisp"))
> + (find-files "." "\\.el$")))))))
Overall this phase would look like this (not tested):
(add-after 'install 'install-emacs-data
(lambda* (#:key outputs #:allow-other-keys)
;; Install related Emacs libraries in 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))
Note that I added #t to the end of the phase because if a phase succeeds
it should return "not false" value. I think it's ok to add #t to the
other phases in this patch.
> (home-page "http://asymptote.sourceforge.net")
> (synopsis "Script-based vector graphics language")
> (description
--
Alex
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: asymptote: Install Emacs data
2016-05-07 8:15 ` Alex Kost
@ 2016-05-07 12:50 ` Nicolas Goaziou
2016-05-08 8:58 ` Alex Kost
0 siblings, 1 reply; 6+ messages in thread
From: Nicolas Goaziou @ 2016-05-07 12:50 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
[-- Attachment #1: Type: text/plain, Size: 820 bytes --]
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,
--
Nicolas Goaziou 0x80A93738
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: asymptote: install Emacs data (take 2) --]
[-- Type: text/x-diff, Size: 3280 bytes --]
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
^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: asymptote: Install Emacs data
2016-05-07 12:50 ` Nicolas Goaziou
@ 2016-05-08 8:58 ` Alex Kost
2016-05-08 9:10 ` Nicolas Goaziou
0 siblings, 1 reply; 6+ messages in thread
From: Alex Kost @ 2016-05-08 8:58 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: guix-devel
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")?
--
Alex
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: asymptote: Install Emacs data
2016-05-08 8:58 ` Alex Kost
@ 2016-05-08 9:10 ` Nicolas Goaziou
2016-05-12 10:02 ` Alex Kost
0 siblings, 1 reply; 6+ messages in thread
From: Nicolas Goaziou @ 2016-05-08 9:10 UTC (permalink / raw)
To: Alex Kost; +Cc: guix-devel
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,
--
Nicolas Goaziou 0x80A93738
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH] gnu: asymptote: Install Emacs data
2016-05-08 9:10 ` Nicolas Goaziou
@ 2016-05-12 10:02 ` Alex Kost
0 siblings, 0 replies; 6+ messages in thread
From: Alex Kost @ 2016-05-12 10:02 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: guix-devel
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!
--
Alex
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2016-05-12 10:02 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-05-06 23:48 [PATCH] gnu: asymptote: Install Emacs data Nicolas Goaziou
2016-05-07 8:15 ` Alex Kost
2016-05-07 12:50 ` Nicolas Goaziou
2016-05-08 8:58 ` Alex Kost
2016-05-08 9:10 ` Nicolas Goaziou
2016-05-12 10:02 ` Alex Kost
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).