[PATCH] Update fish to 3.0.0.

  • Done
  • quality assurance status badge
Details
2 participants
  • Ludovic Courtès
  • Meiyo Peng
Owner
unassigned
Submitted by
Meiyo Peng
Severity
normal
M
M
Meiyo Peng wrote on 21 Jan 2019 09:19
(address . guix-patches@gnu.org)
8736pm2zji.fsf@disroot.org
Hi,

This patch series updates fish shell to 3.0.0 and enable fish to source
/etc/profile using fish-foreign-env.
From da8487fe9b9a0a0308f7b929f9e95e8e8297de26 Mon Sep 17 00:00:00 2001
From: Meiyo Peng <meiyo.peng@gmail.com>
Date: Sun, 20 Jan 2019 21:41:21 +0800
Subject: [PATCH 2/3] gnu: Add fish-foreign-env.

* gnu/packages/shells.scm (fish-foreign-env): New variable.
---
gnu/packages/shells.scm | 50 +++++++++++++++++++++++++++++++++++++++++
1 file changed, 50 insertions(+)

Toggle diff (77 lines)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index e92b2fcc6..8e2ca2a9a 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -30,6 +30,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages autotools)
#:use-module (gnu packages base)
+ #:use-module (gnu packages bash)
#:use-module (gnu packages bison)
#:use-module (gnu packages documentation)
#:use-module (gnu packages groff)
@@ -45,6 +46,7 @@
#:use-module (gnu packages scheme)
#:use-module (guix build-system gnu)
#:use-module (guix build-system python)
+ #:use-module (guix build-system trivial)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix licenses)
@@ -182,6 +184,54 @@ and syntax highlighting.")
(home-page "https://fishshell.com/")
(license gpl2)))
+(define-public fish-foreign-env
+ (package
+ (name "fish-foreign-env")
+ (version "0.20190116")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://github.com/oh-my-fish/plugin-foreign-env.git")
+ (commit "dddd9213272a0ab848d474d0cbde12ad034e65bc")))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "00xqlyl3lffc5l0viin1nyp819wf81fncqyz87jx8ljjdhilmgbs"))))
+ (build-system trivial-build-system)
+ (arguments
+ '(#:modules ((guix build utils))
+ #:builder
+ (begin
+ (use-modules (guix build utils))
+ (let* ((source (assoc-ref %build-inputs "source"))
+ (out (assoc-ref %outputs "out"))
+ (func-path (string-append out "/share/fish/functions")))
+ (mkdir-p func-path)
+ (copy-recursively (string-append source "/functions")
+ func-path)
+
+ ;; Embed absolute paths.
+ (substitute* `(,(string-append func-path "/fenv.fish")
+ ,(string-append func-path "/fenv.apply.fish")
+ ,(string-append func-path "/fenv.main.fish"))
+ (("bash")
+ (string-append (assoc-ref %build-inputs "bash") "/bin/bash"))
+ (("sed")
+ (string-append (assoc-ref %build-inputs "sed") "/bin/sed"))
+ ((" tr ")
+ (string-append " " (assoc-ref %build-inputs "coreutils")
+ "/bin/tr ")))))))
+ (inputs
+ `(("bash" ,bash)
+ ("coreutils" ,coreutils)
+ ("sed" ,sed)))
+ (home-page "https://github.com/oh-my-fish/plugin-foreign-env")
+ (synopsis "Foreign environment interface for fish shell")
+ (description "@code{fish-foreign-env} wraps bash script execution in a way
+that environment variables that are exported or modified get imported back
+into fish.")
+ (license expat)))
+
(define-public rc
(package
(name "rc")
--
2.20.1
From aadeb9dea8aff0db8a339cc11d006abff4736fdb Mon Sep 17 00:00:00 2001
From: Meiyo Peng <meiyo.peng@gmail.com>
Date: Sun, 20 Jan 2019 21:42:15 +0800
Subject: [PATCH 3/3] gnu: fish: Use fish-foreign-env to source /etc/profile.

* gnu/packages/shells.scm (fish): Use fish-foreign-env to source /etc/profile
when user logs in.
---
gnu/packages/shells.scm | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)

Toggle diff (42 lines)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 8e2ca2a9a..d0561559e 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -102,7 +102,8 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
(base32 "1kzjd0n0sfslkd36lzrvvvgy3qwkd9y466bkrqlnhd5h9dhx77ga"))))
(build-system gnu-build-system)
(inputs
- `(("groff" ,groff) ; for 'fish --help'
+ `(("fish-foreign-env" ,fish-foreign-env)
+ ("groff" ,groff) ; for 'fish --help'
("ncurses" ,ncurses)
("pcre2" ,pcre2) ; don't use the bundled PCRE2
("python" ,python))) ; for fish_config and manpage completions
@@ -170,6 +171,25 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
" $__extra_confdir\n")
port)
(close-port port))
+ #t))
+ ;; Use fish-foreign-env to source /etc/profile.
+ (add-before 'install 'source-etc-profile
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((port (open-file "share/__fish_build_paths.fish" "a")))
+ (display
+ (string-append
+ "\n\n"
+ "# Patched by Guix.\n"
+ "# Use fish-foreign-env to source /etc/profile.\n"
+ "if status is-login\n"
+ " set fish_function_path "
+ (assoc-ref inputs "fish-foreign-env") "/share/fish/functions"
+ " $__fish_datadir/functions\n"
+ " fenv source /etc/profile\n"
+ " set -e fish_function_path\n"
+ "end\n")
+ port)
+ (close-port port))
#t)))))
(synopsis "The friendly interactive shell")
(description
--
2.20.1
L
L
Ludovic Courtès wrote on 28 Jan 2019 23:13
(name . Meiyo Peng)(address . meiyo@disroot.org)(address . 34153-done@debbugs.gnu.org)
877eeoo2gu.fsf@gnu.org
Hello Meiyo,

Meiyo Peng <meiyo@disroot.org> skribis:

Toggle quote (3 lines)
> This patch series updates fish shell to 3.0.0 and enable fish to source
> /etc/profile using fish-foreign-env.

I don’t use Fish so I don’t really have an opinion but it looks
reasonable to me. If it breaks, users will yell at you anyway. ;-)

Toggle quote (12 lines)
>>From 8d20b9d62d0d6c6c9c572b5871d0063c8b4fdf07 Mon Sep 17 00:00:00 2001
> From: Meiyo Peng <meiyo.peng@gmail.com>
> Date: Sun, 6 Jan 2019 22:11:36 +0800
> Subject: [PATCH 1/3] gnu: fish: Update to 3.0.0.
>
> * gnu/packages/shells.scm (fish): Update to 3.0.0.
> [source]: Remove dead URL.
> [inputs]: Remove bc. Replace python-wrapper with python.
> [arguments]: Remove configure-flags. Enable fish to source
> /etc/fish/config.fish. Enable completions, functions and configurations
> in user's and system's guix profiles.

[...]

Toggle quote (7 lines)
>>From da8487fe9b9a0a0308f7b929f9e95e8e8297de26 Mon Sep 17 00:00:00 2001
> From: Meiyo Peng <meiyo.peng@gmail.com>
> Date: Sun, 20 Jan 2019 21:41:21 +0800
> Subject: [PATCH 2/3] gnu: Add fish-foreign-env.
>
> * gnu/packages/shells.scm (fish-foreign-env): New variable.

[...]

Toggle quote (8 lines)
>>From aadeb9dea8aff0db8a339cc11d006abff4736fdb Mon Sep 17 00:00:00 2001
> From: Meiyo Peng <meiyo.peng@gmail.com>
> Date: Sun, 20 Jan 2019 21:42:15 +0800
> Subject: [PATCH 3/3] gnu: fish: Use fish-foreign-env to source /etc/profile.
>
> * gnu/packages/shells.scm (fish): Use fish-foreign-env to source /etc/profile
> when user logs in.

Applied all three patches. Thanks for working on it!

Ludo’.
Closed
M
M
Meiyo Peng wrote on 29 Jan 2019 01:45
(name . Ludovic Courtès)(address . ludo@gnu.org)(address . 34153@debbugs.gnu.org)
87bm4047gt.fsf@disroot.org
Hi Ludovic,

Ludovic Courtès writes:

Toggle quote (6 lines)
>> This patch series updates fish shell to 3.0.0 and enable fish to source
>> /etc/profile using fish-foreign-env.
>
> I don’t use Fish so I don’t really have an opinion but it looks
> reasonable to me. If it breaks, users will yell at you anyway. ;-)

Yells are welcome. ;-)


--
Meiyo Peng
?
Your comment

This issue is archived.

To comment on this conversation send an email to 34153@debbugs.gnu.org

To respond to this issue using the mumi CLI, first switch to it
mumi current 34153
Then, you may apply the latest patchset in this issue (with sign off)
mumi am -- -s
Or, compose a reply to this issue
mumi compose
Or, send patches to this issue
mumi send-email *.patch