[PATCH] gnu: Add emacs-bash-completion.

  • Done
  • quality assurance status badge
Details
2 participants
  • Alex Kost
  • Jan Nieuwenhuizen
Owner
unassigned
Submitted by
Jan Nieuwenhuizen
Severity
normal
J
J
Jan Nieuwenhuizen wrote on 2 Sep 2017 11:11
(address . guix-patches@gnu.org)
20170902091112.1336-1-janneke@gnu.org
---
gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)

Toggle diff (43 lines)
diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
index 612126eb3..f6165ba54 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)
@@ -5444,3 +5445,27 @@ key. Optionally, a mouse pop-up can be added by binding
version of Idris, and some features may rely on the latest Git version of
Idris.")
(license license:gpl3+)))
+
+(define-public emacs-batch-completion
+ (package
+ (name "emacs-bash-completion")
+ (version "20170901.1445")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (string-append
+ "http://melpa.org/packages/bash-completion-"
+ version
+ ".tar"))
+ (sha256
+ (base32
+ "12ggygcfhny5sqq18zn6qyyqbh9314niywjagv9nclwxfa0i9pvr"))))
+ (native-inputs `(("bash" ,bash)))
+ (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.
+")
+ (license license:gpl3+)))
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
J
J
Jan Nieuwenhuizen wrote on 2 Sep 2017 11:15
(address . 28327@debbugs.gnu.org)
87lglxxy03.fsf@gnu.org
Jan Nieuwenhuizen writes:

Toggle quote (23 lines)
> ---
> gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 612126eb3..f6165ba54 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)
> @@ -5444,3 +5445,27 @@ key. Optionally, a mouse pop-up can be added by binding
> version of Idris, and some features may rely on the latest Git version of
> Idris.")
> (license license:gpl3+)))
> +
> +(define-public emacs-batch-completion

Oops, I really meant to type `emacs-bash-completion' here.

Toggle quote (23 lines)
> + (package
> + (name "emacs-bash-completion")
> + (version "20170901.1445")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append
> + "http://melpa.org/packages/bash-completion-"
> + version
> + ".tar"))
> + (sha256
> + (base32
> + "12ggygcfhny5sqq18zn6qyyqbh9314niywjagv9nclwxfa0i9pvr"))))
> + (native-inputs `(("bash" ,bash)))
> + (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.
> +")
> + (license license:gpl3+)))

--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
A
A
Alex Kost wrote on 4 Sep 2017 20:48
(name . Jan Nieuwenhuizen)(address . janneke@gnu.org)(address . 28327@debbugs.gnu.org)
87r2vmwb91.fsf@gmail.com
Jan Nieuwenhuizen (2017-09-02 11:11 +0200) wrote:

Toggle quote (31 lines)
> ---
> gnu/packages/emacs.scm | 25 +++++++++++++++++++++++++
> 1 file changed, 25 insertions(+)
>
> diff --git a/gnu/packages/emacs.scm b/gnu/packages/emacs.scm
> index 612126eb3..f6165ba54 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)
> @@ -5444,3 +5445,27 @@ key. Optionally, a mouse pop-up can be added by binding
> version of Idris, and some features may rely on the latest Git version of
> Idris.")
> (license license:gpl3+)))
> +
> +(define-public emacs-batch-completion
> + (package
> + (name "emacs-bash-completion")
> + (version "20170901.1445")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append
> + "http://melpa.org/packages/bash-completion-"

Please use the source directly from the upstream, i.e.:


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.

Toggle quote (3 lines)
> + version
> + ".tar"))

I wouldn't leave ‘version’ and ‘".tar"’ on separate lines, but it's a
matter of taste :-)

Toggle quote (5 lines)
> + (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. You
also need to patch 'bash-completion-prog' variable using
'emacs-substitute-variables' procedure (see (gnu packages emacs) module
for the examples).

Toggle quote (8 lines)
> + (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.

Toggle quote (2 lines)
> + (license license:gpl3+)))

I see GPL 2 or later in "bash-completion.el".

--
Alex
J
J
Jan Nieuwenhuizen wrote on 6 Sep 2017 19:52
(name . Alex Kost)(address . alezost@gmail.com)(address . 28327@debbugs.gnu.org)
877exb90jw.fsf@gnu.org
Alex Kost writes:

Toggle quote (9 lines)
> 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!

Toggle quote (5 lines)
> 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.

Toggle quote (6 lines)
>> + version
>> + ".tar"))
>
> I wouldn't leave ‘version’ and ‘".tar"’ on separate lines, but it's a
> matter of taste :-)

I like your suggestion.

Toggle quote (8 lines)
>> + (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.

Toggle quote (4 lines)
> 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.

Toggle quote (10 lines)
>> + (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.

Toggle quote (4 lines)
>> + (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 <janneke@gnu.org>
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(+)

Toggle diff (51 lines)
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 <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com
--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
A
A
Alex Kost wrote on 9 Sep 2017 21:44
(name . Jan Nieuwenhuizen)(address . janneke@gnu.org)(address . 28327@debbugs.gnu.org)
87fubvslm6.fsf@gmail.com
Jan Nieuwenhuizen (2017-09-06 19:52 +0200) wrote:

Toggle quote (1 lines)
> Alex Kost writes:
[...]
Toggle quote (6 lines)
>> 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...

Now it looks OK for me as well :-)

Toggle quote (4 lines)
> 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.

I see that with your patch, 'bash-completion-prog' has the value
"/gnu/store/...-bash-4.4.12/bin/bash", so it is definitely 'bash'
('bash-minimal' has "/gnu/store/...-bash-minimal-4.4.12/bin/bash" name).

[...]
Toggle quote (7 lines)
>>> + (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!

We definitely shouldn't rely on it, as the importer always puts 'gpl3+':


Toggle quote (3 lines)
> New version attached, still 13 of the 30 lines were unchanged,
> wow...thanks for all your helpful remarks!

The patch looks good for me, thank you!

--
Alex
J
J
Jan Nieuwenhuizen wrote on 10 Sep 2017 22:45
(name . Alex Kost)(address . alezost@gmail.com)(address . 28327-done@debbugs.gnu.org)
87tw0a5llg.fsf@gnu.org
Alex Kost writes:

Toggle quote (4 lines)
>> I have added something here and built package works and looks okay...
>
> Now it looks OK for me as well :-)

Good!

Toggle quote (4 lines)
> I see that with your patch, 'bash-completion-prog' has the value
> "/gnu/store/...-bash-4.4.12/bin/bash", so it is definitely 'bash'
> ('bash-minimal' has "/gnu/store/...-bash-minimal-4.4.12/bin/bash" name).

Also good, thanks for checking.

Toggle quote (7 lines)
>> I used guix import elpa --archive=melpa and didn't check. It seems we
>> cannot rely on that!
>
> We definitely shouldn't rely on it, as the importer always puts 'gpl3+':
>
> http://git.savannah.gnu.org/cgit/guix.git/tree/guix/import/elpa.scm#n234

Great!

Toggle quote (2 lines)
> The patch looks good for me, thank you!

Pushed to master as 4aafce22ab74007c69aecc474816d83e64d22646

janneke

--
Jan Nieuwenhuizen <janneke@gnu.org> | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com| Avatar® http://AvatarAcademy.com
Closed
?