diff mbox series

[bug#57659,v2] gnu: Add blesh.

Message ID 20220913023200.59316-1-kiasoc5@disroot.org
State Accepted
Headers show
Series [bug#57659,v2] gnu: Add blesh. | expand

Checks

Context Check Description
cbaines/applying patch fail View Laminar job
cbaines/issue success View issue

Commit Message

kiasoc5 Sept. 13, 2022, 2:32 a.m. UTC
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 != μ ]]

Comments

M Sept. 13, 2022, 12:02 p.m. UTC | #1
On 13-09-2022 04:32, kiasoc5 via Guix-patches via wrote:
> +                        (add-after 'unpack 'make-readlink-work
> +                          (lambda _
> +                            (substitute* "ble.pp"
> +                              (("PATH=/bin:/usr/bin readlink" path-to-readlink)
> +                               (string-append #$coreutils "/bin/readlink")))))

This does not allow --with-input transformations.

Try (search-input-file inputs "bin/readlink") or (which "readlink") 
instead, depending on whether 'inputs' or 'native-inputs' is appropriate.

Greetings,
Maxime.
diff mbox series

Patch

--- 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)))