[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[bug#28327] [PATCH] gnu: Add emacs-bash-completion.
From: |
Jan Nieuwenhuizen |
Subject: |
[bug#28327] [PATCH] gnu: Add emacs-bash-completion. |
Date: |
Wed, 06 Sep 2017 19:52:51 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/25.2 (gnu/linux) |
Alex Kost writes:
> Jan Nieuwenhuizen (2017-09-02 11:11 +0200) wrote:
>
>> ---
>> gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++
>> 1 file changed, 25 insertions(+)
> Please use the source directly from the upstream, i.e.:
>
> https://github.com/szermatt/emacs-bash-completion/archive/v2.0.0.tar.gz
Ok!
> There is a problem with MELPA: when there will be a new commit in the
> repo, the new melpa tarball will be generated and the previous one
> ("20170901.1445") will be *removed*, so this package will lose its
> source.
Ugh...how reproducible! I didn't know (or investigate...), thanks for
the explanation.
>> + version
>> + ".tar"))
>
> I wouldn't leave ‘version’ and ‘".tar"’ on separate lines, but it's a
> matter of taste :-)
I like your suggestion.
>> + (sha256
>> + (base32
>> + "12ggygcfhny5sqq18zn6qyyqbh9314niywjagv9nclwxfa0i9pvr"))))
>> + (native-inputs `(("bash" ,bash)))
>
> You probably meant to make this package call this "bash" (btw it should
> be 'input', not 'native-input') from store, but this is not enough.
Indeed. It took me quite a while of debugging until I finally stumbled
upon bash-minimal. Google had a very hard time telling me how complete
or compgen could not exist.
> You also need to patch 'bash-completion-prog' variable using
> 'emacs-substitute-variables' procedure (see (gnu packages emacs)
> module for the examples).
I have added something here and built package works and looks okay...
Because adding bash to (native-)inputs already made that
'emacs-substitute-variables' is set to bash instead of bash-minimal, I
don't really know how to test it.
>> + (build-system emacs-build-system)
>> + (home-page "https://github.com/szermatt/emacs-bash-completion")
>> + (synopsis "BASH completion for the shell buffer")
>> + (description
>> + "@code{bash-completion} defines dynamic completion hooks for shell-mode
>> +and shell-command prompts that are based on bash completion.
>> +")
>
> Please put this quote and parenthesis to the previous line.
Ok.
>> + (license license:gpl3+)))
>
> I see GPL 2 or later in "bash-completion.el".
I used guix import elpa --archive=melpa and didn't check. It seems we
cannot rely on that!
New version attached, still 13 of the 30 lines were unchanged,
wow...thanks for all your helpful remarks!
Greetings,
janneke
>From 14649caae21669adcc495b109b8d328f5b71c2e9 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <address@hidden>
Date: Sat, 2 Sep 2017 10:54:14 +0200
Subject: [PATCH] gnu: Add emacs-bash-completion.
* gnu/packages/emacs.scm (emacs-bash-completion): New variable.
---
gnu/packages/emacs.scm | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 9c0f9bc89..a4157a3db 100644
--- a/gnu/packages/emacs.scm
+++ b/gnu/packages/emacs.scm
@@ -59,6 +59,7 @@
#:use-module (guix build-system trivial)
#:use-module (gnu packages)
#:use-module (gnu packages audio)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages code)
#:use-module (gnu packages guile)
#:use-module (gnu packages gtk)
@@ -5575,3 +5576,35 @@ It is meant to quickly generate linear ranges, e.g. 5,
6, 7, 8. Some elisp
proficiency is an advantage, since you can transform your numeric range with
an elisp expression.")
(license license:gpl3+)))
+
+(define-public emacs-bash-completion
+ (package
+ (name "emacs-bash-completion")
+ (version "2.0.0")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "https://github.com/szermatt/emacs-bash-completion/archive/v"
+ version ".tar.gz"))
+ (file-name (string-append name "-" version ".tar.gz"))
+ (sha256
+ (base32
+ "0mkci4a1fy8z4cmry8mx5vsx4f16a8r454slnh7lqzidnhfi63hj"))))
+ (inputs `(("bash" ,bash)))
+ (build-system emacs-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-before 'install 'configure
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((bash (assoc-ref inputs "bash")))
+ (emacs-substitute-variables "bash-completion.el"
+ ("bash-completion-prog" (string-append bash "/bin/bash"))))
+ #t)))))
+ (home-page "https://github.com/szermatt/emacs-bash-completion")
+ (synopsis "BASH completion for the shell buffer")
+ (description
+ "@code{bash-completion} defines dynamic completion hooks for shell-mode
+and shell-command prompts that are based on bash completion.")
+ (license license:gpl2+)))
--
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
--
Jan Nieuwenhuizen <address@hidden> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com