* [bug#57659] [PATCH] gnu: Add blesh.
2022-09-08 2:11 [bug#57659] [PATCH] gnu: Add blesh kiasoc5 via Guix-patches via
@ 2022-09-11 19:59 ` Christopher Baines
2022-09-13 2:32 ` [bug#57659] [PATCH v2] " kiasoc5 via Guix-patches via
2022-09-14 3:07 ` [bug#57659] [PATCH v3] " kiasoc5 via Guix-patches via
2 siblings, 0 replies; 8+ messages in thread
From: Christopher Baines @ 2022-09-11 19:59 UTC (permalink / raw)
To: kiasoc5; +Cc: 57659
[-- Attachment #1: Type: text/plain, Size: 2309 bytes --]
kiasoc5 via Guix-patches via <guix-patches@gnu.org> writes:
> * gnu/packages/bash.scm (blesh): New variable.
> ---
> gnu/packages/bash.scm | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
> index 72758560cd..2460c7cc00 100644
> --- a/gnu/packages/bash.scm
> +++ b/gnu/packages/bash.scm
> @@ -44,6 +44,7 @@ (define-module (gnu packages bash)
> #:use-module (guix gexp)
> #:use-module (guix monads)
> #:use-module (guix store)
> + #:use-module (guix build-system copy)
> #:use-module (guix build-system gnu)
> #:use-module (guix build-system trivial)
> #:autoload (guix gnupg) (gnupg-verify*)
> @@ -456,3 +457,25 @@ (define-public bash-ctypes
> function interface (FFI) directly in your shell. In other words, it allows
> you to call routines in shared libraries from within Bash.")
> (license license:expat)))
> +
> +(define-public blesh
> + (package
> + (name "blesh")
> + (version "0.3.3")
> + (source
> + (origin
> + (method url-fetch)
> + (uri (string-append "https://github.com/akinomyoga/ble.sh/releases/download/v"
> + version "/ble-" version ".tar.xz"))
> + (sha256
> + (base32
> + "0fpkacw0r5zhby1wpsirlzq4w1yq1fmhivik47l891c2pn1n7rm7"))))
> + (build-system copy-build-system)
> + (inputs (list bash))
> + (arguments
> + (list
> + #:install-plan #~'(("." "share/blesh"))))
> + (home-page "https://github.com/akinomyoga/ble.sh/")
> + (synopsis "A line editor written in pure Bash")
> + (description "Bash Line Editor (ble.sh) is a command line editor written in pure Bash which replaces the default GNU Readline. It adds syntax highlighting, auto suggestions, vim modes, and more to Bash interactive sessions.")
> + (license license:bsd-3)))
Simple things first, the linter makes a number of complaints. There are
tab characters on a couple of lines and some issues with the formatting
of the description.
Maybe more importantly, this package uses the copy build system, but it
looks like ble.sh should be built with make. I realise that the output
of this build process is a mostly readable shell script, but the Guix
package should still build the source to generate it. Does that make
sense?
Thanks,
Chris
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#57659] [PATCH v2] gnu: Add blesh.
2022-09-08 2:11 [bug#57659] [PATCH] gnu: Add blesh kiasoc5 via Guix-patches via
2022-09-11 19:59 ` Christopher Baines
@ 2022-09-13 2:32 ` kiasoc5 via Guix-patches via
2022-09-13 12:02 ` Maxime Devos
2022-09-14 3:07 ` [bug#57659] [PATCH v3] " kiasoc5 via Guix-patches via
2 siblings, 1 reply; 8+ messages in thread
From: kiasoc5 via Guix-patches via @ 2022-09-13 2:32 UTC (permalink / raw)
To: mail; +Cc: kiasoc5, 57659
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 6396 bytes --]
On Sun, Sep 11 2022, 08:59:15 PM +0100
Christopher Baines <mail@cbaines.net> wrote:
> Maybe more importantly, this package uses the copy build system, but
> it looks like ble.sh should be built with make. I realise that the
> output of this build process is a mostly readable shell script, but
> the Guix package should still build the source to generate it. Does
> that make sense?
Updated to latest tag and use git reference for makefile. However the contrib submodule fails to install during build phase, and there are 2 test failures:
```
starting phase `build'
mkdir -p out
mkdir -p out/keymap
mkdir -p out/lib
DEPENDENCIES_PHONY=1 DEPENDENCIES_OUTPUT=out/ble.dep DEPENDENCIES_TARGET=out/ble.sh FULLVER=0.4.0-devel2 \
/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/bin/gawk -f ext/mwg_pp.awk ble.pp >/dev/null
cp -p keymap/emacs.sh out/keymap/emacs.sh
cp -p keymap/vi.sh out/keymap/vi.sh
cp -p keymap/vi_digraph.sh out/keymap/vi_digraph.sh
cp -p keymap/vi_digraph.txt out/keymap/vi_digraph.txt
cp -p keymap/vi_test.sh out/keymap/vi_test.sh
cp -p keymap/emacs.rlfunc.txt out/keymap/emacs.rlfunc.txt
cp -p keymap/vi_imap.rlfunc.txt out/keymap/vi_imap.rlfunc.txt
cp -p keymap/vi_nmap.rlfunc.txt out/keymap/vi_nmap.rlfunc.txt
cp -p lib/init-term.sh out/lib/init-term.sh
cp -p lib/init-bind.sh out/lib/init-bind.sh
cp -p lib/init-cmap.sh out/lib/init-cmap.sh
cp -p lib/init-msys1.sh out/lib/init-msys1.sh
cp -p lib/core-complete.sh out/lib/core-complete.sh
/gnu/store/690qz3fg334dpwn3pn6k59n4wc943p2b-gawk-5.1.0/bin/gawk -f ext/mwg_pp.awk lib/core-syntax.sh > out/lib/core-syntax.sh
cp -p lib/core-test.sh out/lib/core-test.sh
cp -p lib/core-edit.ignoreeof-messages.txt out/lib/core-edit.ignoreeof-messages.txt
cp -p lib/vim-surround.sh out/lib/vim-surround.sh
cp -p lib/vim-arpeggio.sh out/lib/vim-arpeggio.sh
cp -p lib/test-main.sh out/lib/test-main.sh
cp -p lib/test-util.sh out/lib/test-util.sh
fatal: not a git repository (or any parent up to mount point /tmp)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
fatal: not a git repository (or any parent up to mount point /tmp)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
phase `build' succeeded after 0.2 seconds
starting phase `check'
bash make_command.sh check
ble.sh: Insane environment: $USER is empty.
ble.sh: modified USER=nixbld
ble/term.sh: updating tput cache for TERM=dumb... done
stty: 'standard input': Inappropriate ioctl for device
MACHTYPE: x86_64-unknown-linux-gnu
BLE_VERSION: 0.4.0-devel2+
BASH_VERSION: 5.1.8(1)-release
[section] main: 14/14 (0 fail, 0 crash, 0 skip)
/tmp/guix-build-blesh-0.4.0-devel2.drv-0/source/out/lib/test-util.sh:1671: ble/util/c2s 956; [[ $ret != μ ]]
--- 289.exit.expect 2022-09-13 02:34:16.953615150 +0000
+++ 289.exit.result 2022-09-13 02:34:16.953615150 +0000
@@ -1 +1 @@
-0
+1
/tmp/guix-build-blesh-0.4.0-devel2.drv-0/source/out/lib/test-util.sh:1672: ble/util/c2s 12354; [[ $ret != あ ]]
--- 289.exit.expect 2022-09-13 02:34:16.956948541 +0000
+++ 289.exit.result 2022-09-13 02:34:16.956948541 +0000
@@ -1 +1 @@
-0
+1
[section] util: 1045/1047 (2 fail, 0 crash, 0 skip)
make: *** [GNUmakefile:158: check] Error 1
Test suite failed, dumping logs.
error: in phase 'check': uncaught exception:
%exception #<&invoke-error program: "make" arguments: ("check" "-j" "8") exit-status: 2 term-signal: #f stop-signal: #f>
phase `check' failed after 1.9 seconds
command "make" "check" "-j" "8" failed with status 2
builder for `/gnu/store/pli4h8yvddlv3mm1bgq47l2kfadm0dfi-blesh-0.4.0-devel2.drv' failed with exit code 1
build of /gnu/store/pli4h8yvddlv3mm1bgq47l2kfadm0dfi-blesh-0.4.0-devel2.drv failed
View build log at '/var/log/guix/drvs/pl/i4h8yvddlv3mm1bgq47l2kfadm0dfi-blesh-0.4.0-devel2.drv.gz'.
guix build: error: build of `/gnu/store/pli4h8yvddlv3mm1bgq47l2kfadm0dfi-blesh-0.4.0-devel2.drv' failed
```
Help appreciated.
* gnu/packages/bash.scm (blesh): New variable.
---
gnu/packages/bash.scm | 37 +++++++++++++++++++++++++++++++++++++
1 file changed, 37 insertions(+)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 72758560cd..bf6d5fc1cc 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -37,6 +37,8 @@ (define-module (gnu packages bash)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages less)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -456,3 +458,38 @@ (define-public bash-ctypes
function interface (FFI) directly in your shell. In other words, it allows
you to call routines in shared libraries from within Bash.")
(license license:expat)))
+
+(define-public blesh
+ (package
+ (name "blesh")
+ (version "0.4.0-devel2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/akinomyoga/ble.sh")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "02fdjyh4x6wr5hg3i86nsxhz8ysgjrvvxdmk6pqr0lm8ngw9p3sh"))))
+ (arguments
+ (list #:phases #~(modify-phases %standard-phases
+ ;TODO: install contrib submodule
+ (add-after 'unpack 'pretend-contrib-.git-exists
+ (lambda _
+ (mkdir-p "contrib/.git")))
+ (add-after 'unpack 'make-readlink-work
+ (lambda _
+ (substitute* "ble.pp"
+ (("PATH=/bin:/usr/bin readlink" path-to-readlink)
+ (string-append #$coreutils "/bin/readlink")))))
+ (delete 'configure)))) ;no configure
+ (build-system gnu-build-system)
+ (native-inputs (list git-minimal coreutils less))
+ (home-page "https://github.com/akinomyoga/ble.sh/")
+ (synopsis "Bash Line Editor")
+ (description
+ "Bash Line Editor (ble.sh) is a command line editor written in pure Bash
+which replaces the default GNU Readline. It adds syntax highlighting, auto
+suggestions, vim modes, and more to Bash interactive sessions.")
+ (license license:bsd-3)))
--
2.37.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [bug#57659] [PATCH v3] gnu: Add blesh.
2022-09-08 2:11 [bug#57659] [PATCH] gnu: Add blesh kiasoc5 via Guix-patches via
2022-09-11 19:59 ` Christopher Baines
2022-09-13 2:32 ` [bug#57659] [PATCH v2] " kiasoc5 via Guix-patches via
@ 2022-09-14 3:07 ` kiasoc5 via Guix-patches via
2022-09-14 8:40 ` bug#57659: " Christopher Baines
2 siblings, 1 reply; 8+ messages in thread
From: kiasoc5 via Guix-patches via @ 2022-09-14 3:07 UTC (permalink / raw)
To: mail, maximedevos; +Cc: kiasoc5, 57659
Tests pass now.
* gnu/packages/bash.scm (blesh): New variable.
---
gnu/packages/bash.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
1 file changed, 45 insertions(+)
diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 72758560cd..8f614e145a 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -37,6 +37,8 @@ (define-module (gnu packages bash)
#:use-module (gnu packages libffi)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages guile)
+ #:use-module (gnu packages version-control)
+ #:use-module (gnu packages less)
#:use-module (guix packages)
#:use-module (guix download)
#:use-module (guix git-download)
@@ -456,3 +458,46 @@ (define-public bash-ctypes
function interface (FFI) directly in your shell. In other words, it allows
you to call routines in shared libraries from within Bash.")
(license license:expat)))
+
+(define-public blesh
+ (package
+ (name "blesh")
+ (version "0.4.0-devel2")
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/akinomyoga/ble.sh")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "02fdjyh4x6wr5hg3i86nsxhz8ysgjrvvxdmk6pqr0lm8ngw9p3sh"))))
+ (arguments
+ (list #:make-flags #~(list (string-append "PREFIX="
+ #$output))
+ #:phases #~(modify-phases %standard-phasesg
+ (add-after 'unpack 'pretend-contrib-.git-exists
+ (lambda _
+ (mkdir-p "contrib/.git")))
+ (add-after 'unpack 'make-readlink-work
+ (lambda _
+ (substitute* "ble.pp"
+ (("PATH=/bin:/usr/bin readlink")
+ (search-input-file %build-inputs
+ "/bin/readlink")))))
+ (delete 'configure) ;no configure
+ (add-before 'check 'use-LC_ALL-for-tests
+ (lambda _
+ (setenv "LANG"
+ (getenv "LC_ALL"))
+ (unsetenv "LC_ALL"))))))
+ (build-system gnu-build-system)
+ (inputs (list coreutils))
+ (native-inputs (list git-minimal less))
+ (home-page "https://github.com/akinomyoga/ble.sh")
+ (synopsis "Bash Line Editor")
+ (description
+ "Bash Line Editor (ble.sh) is a command line editor written in pure Bash
+which replaces the default GNU Readline. It adds syntax highlighting, auto
+suggestions, vim modes, and more to Bash interactive sessions.")
+ (license license:bsd-3)))
base-commit: 491dd62b38e1772f3e50de58118d9b9ac97272ff
--
2.37.3
^ permalink raw reply related [flat|nested] 8+ messages in thread
* bug#57659: [PATCH v3] gnu: Add blesh.
2022-09-14 3:07 ` [bug#57659] [PATCH v3] " kiasoc5 via Guix-patches via
@ 2022-09-14 8:40 ` Christopher Baines
2022-09-15 15:26 ` [bug#57659] " Maxime Devos
0 siblings, 1 reply; 8+ messages in thread
From: Christopher Baines @ 2022-09-14 8:40 UTC (permalink / raw)
To: kiasoc5; +Cc: 57659-done
[-- Attachment #1: Type: text/plain, Size: 606 bytes --]
kiasoc5 <kiasoc5@disroot.org> writes:
> Tests pass now.
>
> * gnu/packages/bash.scm (blesh): New variable.
> ---
> gnu/packages/bash.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 45 insertions(+)
Thanks. I've tweaked the name of one of the phaess (use-LANG-for-tests
rather than use-LC_ALL-for-tests) as that seemed more correct. I also
removed some inputs that were redundant (coreutils is provided by the
gnu-build-system, so is an implicit input), and git-minimal didn't seem
to be required.
I pushed to master as 592ca01d8d25849d077035d54d969d90ed5c2609.
Thanks,
Chris
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#57659] [PATCH v3] gnu: Add blesh.
2022-09-14 8:40 ` bug#57659: " Christopher Baines
@ 2022-09-15 15:26 ` Maxime Devos
2022-09-16 0:05 ` kiasoc5 via Guix-patches via
0 siblings, 1 reply; 8+ messages in thread
From: Maxime Devos @ 2022-09-15 15:26 UTC (permalink / raw)
To: 57659, mail, kiasoc5
[-- Attachment #1.1.1: Type: text/plain, Size: 1509 bytes --]
On 14-09-2022 10:40, Christopher Baines wrote:
>
> kiasoc5 <kiasoc5@disroot.org> writes:
>
>> Tests pass now.
>>
>> * gnu/packages/bash.scm (blesh): New variable.
>> ---
>> gnu/packages/bash.scm | 45 +++++++++++++++++++++++++++++++++++++++++++
>> 1 file changed, 45 insertions(+)
>
> Thanks. I've tweaked the name of one of the phaess (use-LANG-for-tests
> rather than use-LC_ALL-for-tests) as that seemed more correct. I also
> removed some inputs that were redundant (coreutils is provided by the
> gnu-build-system, so is an implicit input), and git-minimal didn't seem
> to be required.
gnu-build-system only provides a _natively compiled_ coreutils (for
--system), not a cross-compiled coreutils (for --target). As such, it
is not redundant (unless it compile-time only (*), the build system
isn't clear to me).
>+ (add-after 'unpack 'make-readlink-work
>+ (lambda _
>+ (substitute* "ble.pp"
>+ (("PATH=/bin:/usr/bin readlink")
>+ (search-input-file %build-inputs
>+ "/bin/readlink")))))
You're mixing G-exp (new) and %build-inputs (old). How about
(search-input-file inputs "bin/readlink") or (which "readlink")
(depending on whether inputs or native-inputs is appropriate) instead?
Greetings,
Maxime.
(*) can be verified by using "guix gc --references".
[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [bug#57659] [PATCH v3] gnu: Add blesh.
2022-09-15 15:26 ` [bug#57659] " Maxime Devos
@ 2022-09-16 0:05 ` kiasoc5 via Guix-patches via
0 siblings, 0 replies; 8+ messages in thread
From: kiasoc5 via Guix-patches via @ 2022-09-16 0:05 UTC (permalink / raw)
To: Maxime Devos; +Cc: 57659, mail
On Thu, Sep 15 2022, 05:26:30 PM +0200
Maxime Devos <maximedevos@telenet.be> wrote:
> On 14-09-2022 10:40, Christopher Baines wrote:
> >
> > kiasoc5 <kiasoc5@disroot.org> writes:
> >
> >> Tests pass now.
> >>
> >> * gnu/packages/bash.scm (blesh): New variable.
> >> ---
> >> gnu/packages/bash.scm | 45
> >> +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45
> >> insertions(+)
> >
> > Thanks. I've tweaked the name of one of the phaess
> > (use-LANG-for-tests rather than use-LC_ALL-for-tests) as that
> > seemed more correct. I also removed some inputs that were redundant
> > (coreutils is provided by the gnu-build-system, so is an implicit
> > input), and git-minimal didn't seem to be required.
>
> gnu-build-system only provides a _natively compiled_ coreutils (for
> --system), not a cross-compiled coreutils (for --target). As such,
> it is not redundant (unless it compile-time only (*), the build
> system isn't clear to me).
Readlink should be required for runtime, how about substituting
"PATH=/bin:/usr/bin readlink" -> "readlink" instead of the path to
readlink?
> >+ (add-after 'unpack 'make-readlink-work
> >+ (lambda _
> >+ (substitute* "ble.pp"
> >+ (("PATH=/bin:/usr/bin readlink")
> >+ (search-input-file %build-inputs
> >+
> >"/bin/readlink")))))
>
> You're mixing G-exp (new) and %build-inputs (old). How about
> (search-input-file inputs "bin/readlink") or (which "readlink")
> (depending on whether inputs or native-inputs is appropriate) instead?
If we keep coreutils as an input then it would be search-file-inputs.
--
^ permalink raw reply [flat|nested] 8+ messages in thread