Subject: bug#34003: closed (Re: bug#34003: ([PATCH] gnu: fish: Update to 3.0.0.))

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 20 Jan 2019 15:00:05 +0000

Your bug report

#34003: [PATCH] gnu: fish: Update to 3.0.0.

which was filed against the guix package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
34003: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=34003
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#34003: ([PATCH] gnu: fish: Update to 3.0.0.)
From: Meiyo Peng <[email-masked]>
To: [email-masked]
Date: Sun, 20 Jan 2019 22:42:16 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

I will submit a new patch series for fish shell later.  Close this bug
for now.

--
Meiyo Peng
https://www.pengmeiyu.com/

Subject: [PATCH] gnu: fish: Update to 3.0.0.
From: Meiyo Peng <[email-masked]>
To: [email-masked]
Date: Mon, 07 Jan 2019 10:42:36 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

This patch updates fish shell to 3.0.0.

I tested this patch on my computer.  It seems bug#30265
(https://lists.gnu.org/archive/html/bug-guix/2018-01/msg00296.html) has
gone.

* 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.  Add multiple phases to patch fish.
  Enable fish to source /etc/fish/config.sh.  Add user's and system's guix
  profiles to __extra_* variables.

>From 204527a56b31174777c6eee6512a7aaaacbcffe6 Mon Sep 17 00:00:00 2001
From: Meiyo Peng <[email-masked]>
Date: Sun, 6 Jan 2019 22:11:36 +0800
Subject: [PATCH] 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.  Add multiple phases to patch fish.
  Enable fish to source /etc/fish/config.sh.  Add user's and system's guix
  profiles to __extra_* variables.
---
 gnu/packages/shells.scm | 104 ++++++++++++++++++++++++++--------------
 1 file changed, 68 insertions(+), 36 deletions(-)

diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 38eeaa783..c9511fba6 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -9,6 +9,7 @@
 ;;; Copyright © 2017, 2018 Nils Gillmann <[email-masked]>
 ;;; Copyright © 2017, 2018 Leo Famulari <[email-masked]>
 ;;; Copyright © 2017 Arun Isaac <[email-masked]>
+;;; Copyright © 2019 Meiyo Peng <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,7 +28,6 @@
 
 (define-module (gnu packages shells)
   #:use-module (gnu packages)
-  #:use-module (gnu packages algebra)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
@@ -88,51 +88,83 @@ direct descendant of NetBSD's Almquist Shell (@command{ash}).")
 (define-public fish
   (package
     (name "fish")
-    (version "2.7.1")
-    (source (origin
-              (method url-fetch)
-              (uri
-               (list
-                (string-append "https://fishshell.com/files/"
-                               version "/fish-" version ".tar.gz")
-                (string-append "https://github.com/fish-shell/fish-shell/"
-                               "releases/download/" version "/"
-                               name "-" version ".tar.gz")))
-              (sha256
-               (base32
-                "0nhc3yc5lnnan7zmxqqxm07rdpwjww5ijy45ll2njdc6fnfb2az4"))
-              (modules '((guix build utils)))
-              ;; Don't try to install /etc/fish/config.fish.
-              (snippet '(begin
-                          (substitute* "Makefile.in"
-                            ((".*INSTALL.*sysconfdir.*fish.*") ""))
-                          #t))))
+    (version "3.0.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/fish-shell/fish-shell/"
+                           "releases/download/" version "/"
+                           name "-" version ".tar.gz"))
+       (sha256
+        (base32
+         "1kzjd0n0sfslkd36lzrvvvgy3qwkd9y466bkrqlnhd5h9dhx77ga"))))
     (build-system gnu-build-system)
+    (inputs
+     `(("ncurses" ,ncurses)
+       ("groff" ,groff)              ; for 'fish --help'
+       ("pcre2" ,pcre2)              ; don't use the bundled PCRE2
+       ("python" ,python)))          ; for fish_config and manpage completions
     (native-inputs
      `(("doxygen" ,doxygen)))
-    (inputs
-     `(("bc" ,bc)
-       ("ncurses" ,ncurses)
-       ("groff" ,groff)               ;for 'fish --help'
-       ("pcre2" ,pcre2)               ;don't use the bundled PCRE2
-       ("python" ,python-wrapper)))   ;for fish_config and manpage completions
     (arguments
-     '(#:tests? #f ; no check target
-       #:configure-flags '("--sysconfdir=/etc")
+     '(#:tests? #f                      ; no check target
        #:phases
        (modify-phases %standard-phases
+         (add-after 'unpack 'patch-source
+           (lambda _
+             (substitute* '("build_tools/build_commands_hdr.sh"
+                            "build_tools/build_user_doc.sh")
+               (("/usr/bin/env") "env"))
+             #t))
          ;; Embed absolute paths to store items.
          (add-after 'unpack 'embed-store-paths
-           (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* '("share/functions/math.fish"
-                            "share/functions/seq.fish")
-               (("\\| bc")
-                (string-append "| " (assoc-ref %build-inputs "bc")
-                               "/bin/bc")))
-             (substitute* "share/functions/fish_update_completions.fish"
-               (("python") (which "python")))
+           (lambda _
+             (substitute* '("share/functions/__fish_config_interactive.fish"
+                            "share/functions/fish_config.fish"
+                            "share/functions/fish_update_completions.fish")
+               (("python3") (which "python3")))
              (substitute* "share/functions/__fish_print_help.fish"
                (("nroff") (which "nroff")))
+             #t))
+         ;; Source /etc/fish/config.fish from etc/fish/config.fish.
+         ;; TODO: Generate /etc/fish/config.fish to setup Guix environment
+         ;; variables.  Similar to /etc/profile.
+         (add-before 'install 'patch-fish-config
+           (lambda _
+             (let ((port (open-file "etc/config.fish" "a")))
+               (display (string-append
+                         "\n\n"
+                         "# Added by Guix.\n"
+                         "if test -f /etc/fish/config.fish\n"
+                         "    source /etc/fish/config.fish\n"
+                         "end\n")
+                        port)
+               (close-port port))
+             #t))
+         ;; Add user's and system's guix profiles to __extra_* variables.
+         (add-before 'install 'patch-fish-extra-paths
+           (lambda _
+             (let ((port (open-file "share/__fish_build_paths.fish" "a")))
+               (display
+                (string-append
+                 "\n\n"
+                 "# Added by Guix.\n"
+                 "set -l __guix_profile_paths ~/.guix-profile "
+                 "/run/current-system/profile\n"
+                 "set __extra_completionsdir "
+                 "$__guix_profile_paths\"/etc/fish/completions\" "
+                 "$__guix_profile_paths\"/share/fish/vendor_completions.d\" "
+                 "$__extra_completionsdir\n"
+                 "set __extra_functionsdir "
+                 "$__guix_profile_paths\"/etc/fish/functions\" "
+                 "$__guix_profile_paths\"/share/fish/vendor_functions.d\" "
+                 "$__extra_functionsdir\n"
+                 "set __extra_confdir "
+                 "$__guix_profile_paths\"/etc/fish/conf.d\" "
+                 "$__guix_profile_paths\"/share/fish/vendor_conf.d\" "
+                 "$__extra_confdir\n")
+                port)
+               (close-port port))
              #t)))))
     (synopsis "The friendly interactive shell")
     (description
-- 
2.20.1

--
Meiyo Peng
https://www.pengmeiyu.com/