From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1.migadu.com ([2001:41d0:1008:1e59::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id MM+0Hqafk2VfVwAAkFu2QA (envelope-from ) for ; Tue, 02 Jan 2024 06:31:18 +0100 Received: from aspmx1.migadu.com ([2001:41d0:403:4876::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1.migadu.com with LMTPS id KL/HGaafk2VqHQAA62LTzQ (envelope-from ) for ; Tue, 02 Jan 2024 06:31:18 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=apatience.com header.s=protonmail2 header.b=KRbABwTQ; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1704173478; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=pBgSJlR8YTedp5Gq8P0HeIorPu1uTRTKLiOEuHk8El0=; b=u0QlYrTq5zAqse/kMSn0Q6xrp2Zs7BIB0P63v5Dlynit1CY0fxvupcQ5jXIOzUNqqpZHoM iBXtPprlAaqd/5WNSSV6JQpPJeGCFE6H2X9VOWKFbX/PppSZ4wtHnTgTkp4G6X1ngJ0Guo Ns1ZbbTKBxMvHRJDvt0VePyFRRYkxc25dkVuc6XSxLwcGZHuzfZAG+k+i13xIDR45F0aNc rxElq976wfy5fT7sVaoOzZkDqrL+ag+1hjKXG/T6z/2WDfNPRmHc97XxtTNJ45FDnzSFut 61wC/qbz8zH072HE5A04X/S08xO4MwDA59+bBmt6fzJdQ/kPbNej2vtRqgDf7Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=apatience.com header.s=protonmail2 header.b=KRbABwTQ; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=none ARC-Seal: i=1; s=key1; d=yhetil.org; t=1704173478; a=rsa-sha256; cv=none; b=rk/KdKc/FuyU9wLh1XLUqVj2keBFsKOqLNPR/4gfavqCm9UbywbPZV8n7/WYyEJNrYRWPe njWHmYSEwtq1TdLhsQLCOd+KfgxdOHrNv+mny4o8y4LQAzSKeRP2G6jFRy9iPztSbOpRt6 fNCugG9HiYWn3ByhCSrs2c/BNmE3Ee9YEvypQ3Su1y2r9C9E0+AwDKix3LLgkVgBZnAql2 UjJf1o/1GdmPVhCPGA4Zo++VwKqCNwWb3enVOVrajkbZA7ZRnP+WzJn4TKU4z/ZkMe6oLc DnP1Y6BtERNQF5GGkufWv6GJi4P/54FmREj6nrbI4tBgvHSr19nSr0y97Yrhuw== Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id BBA9420C58 for ; Tue, 2 Jan 2024 06:31:17 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1rKXMk-0006xS-4N; Tue, 02 Jan 2024 00:31:02 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rKXMi-0006xC-S8 for guix-patches@gnu.org; Tue, 02 Jan 2024 00:31:00 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1rKXMi-0004ji-Gx for guix-patches@gnu.org; Tue, 02 Jan 2024 00:31:00 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1rKXMk-0001ao-Mu for guix-patches@gnu.org; Tue, 02 Jan 2024 00:31:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#68201] [PATCH 2/2] gnu: fish: Improve package style. Resent-From: "Paul A. Patience" Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 02 Jan 2024 05:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 68201 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 68201@debbugs.gnu.org Cc: "Paul A. Patience" Received: via spool by 68201-submit@debbugs.gnu.org id=B68201.17041734373521 (code B ref 68201); Tue, 02 Jan 2024 05:31:02 +0000 Received: (at 68201) by debbugs.gnu.org; 2 Jan 2024 05:30:37 +0000 Received: from localhost ([127.0.0.1]:49210 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKXMK-0000t5-76 for submit@debbugs.gnu.org; Tue, 02 Jan 2024 00:30:37 -0500 Received: from mail-40136.proton.ch ([185.70.40.136]:56527) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1rKXMH-0000dy-Fb for 68201@debbugs.gnu.org; Tue, 02 Jan 2024 00:30:34 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apatience.com; s=protonmail2; t=1704173424; x=1704432624; bh=pBgSJlR8YTedp5Gq8P0HeIorPu1uTRTKLiOEuHk8El0=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=KRbABwTQupv1s2WTDEBEUeMDc93K0pLAzCeaRA+kb5bo2hFmLc4dpmwCqRbf1214M JR1B2QE8YDLIoUlq4xUJc5GoUDX8BtEv40Kb6FqCWtl5Wnm+a4VwY1cWSeh+RfGr/O j8cBabsxw8eP4oD4hxhua4ZsRS7mU5bNxyqDaNsn5IUE8fYtsa6u901KqldmdqHqLs 0l6tUByN7h0gOgdQWOhbBzJLbVLv2zXXxSy7wvV8Xv5dX2+isVBPeVORtnGhwPbXEl /QdKz6U33ed7scdxKChbmF/Ax3OAHozM0C3+3/5KCs0k2Jjv16psuXDhG3wdo06+ip 4QnZQTjt+xN5A== Date: Tue, 02 Jan 2024 05:30:00 +0000 From: "Paul A. Patience" Message-ID: In-Reply-To: References: Feedback-ID: 19227857:user:proton MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN X-Migadu-Spam-Score: -4.28 X-Spam-Score: -4.28 X-Migadu-Queue-Id: BBA9420C58 X-Migadu-Scanner: mx10.migadu.com X-TUID: 37SNt9+GjyC9 * gnu/packages/shells.scm (fish)[arguments]: Use G-expressions. Drop trailing #t in phases. Move above native-inputs. [native-inputs]: Add bash and coreutils. Move above inputs. [home-page]: Move above synopsis. Change-Id: I964b15f47629fa01d649e586f81eb5ae8e7046e3 --- gnu/packages/shells.scm | 248 ++++++++++++++++++++-------------------- 1 file changed, 122 insertions(+), 126 deletions(-) diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm index 798dba1d7c..bfa32ee0ee 100644 --- a/gnu/packages/shells.scm +++ b/gnu/packages/shells.scm @@ -22,6 +22,7 @@ ;;; Copyright =C2=A9 2022 Andrew Tropin ;;; Copyright =C2=A9 2023 Zheng Junjie <873216071@qq.com> ;;; Copyright =C2=A9 2023 David Pflug +;;; Copyright =C2=A9 2024 Paul A. Patience ;;; ;;; This file is part of GNU Guix. ;;; @@ -130,133 +131,129 @@ (define-public fish (sha256 (base32 "1c9slg6azhc9jn1sb75wip4hl9zyibjy9nay505nkw0lnxw766yz")))) (build-system cmake-build-system) + (arguments + (list + #:phases + #~(modify-phases %standard-phases + (add-after 'unpack 'set-env + (lambda _ + ;; some tests write to $HOME + (setenv "HOME" (getcwd)))) + (add-after 'unpack 'patch-tests + (lambda _ + (let ((coreutils #$(this-package-native-input "coreutils")) + (bash #$(this-package-native-input "bash"))) + ;; This test sporadically fails in the build container + ;; because of leftover zombie processes, which are not + ;; reaped automatically: + ;; "Found existing zombie processes. Clean up zombies befo= re running this test." + ;; Disabling parallel tests does not reliably prevent it. + (delete-file "tests/checks/jobs.fish") + ;; This test fails. + (delete-file "tests/checks/pipeline-pgroup.fish") + ;; This one tries to open a terminal & can't simply be del= eted. + (substitute* "cmake/Tests.cmake" + ((".* interactive\\.fish.*") "")) + ;; This one needs to chdir successfully. + (substitute* "tests/checks/vars_as_commands.fish" + (("/usr/bin") "/tmp")) + ;; These contain absolute path references. + (substitute* "src/fish_tests.cpp" + (("/bin/echo" echo) (string-append coreutils echo)) + (("/bin/ca" ca) (string-append coreutils ca)) + (("\"(/bin/c)\"" _ c) (string-append "\"" coreutils c "\= "")) + (("/bin/ls_not_a_path" ls-not-a-path) + (string-append coreutils ls-not-a-path)) + (("/bin/ls" ls) (string-append coreutils ls)) + (("(/bin/)\"" _ bin) (string-append coreutils bin "\"")) + (("/bin -" bin) (string-append coreutils bin)) + (((string-append + "do_test\\(is_potential_path\\(" + "L\"/usr\", wds, vars, PATH_REQUIRE_DIR\\)\\);")) + "") + ;; Not all mentions of /usr... need to exist, but these = do. + (("\"/usr(|/lib)\"" _ subdirectory) + (string-append "\"/tmp" subdirectory "\""))) + (substitute* + (append (find-files "tests" ".*\\.(in|out|err)$") + (find-files "tests/checks" ".*\\.fish")) + (("/bin/pwd" pwd) (string-append coreutils pwd)) + (("/bin/echo" echo) (string-append coreutils echo)) + (("/bin/sh" sh) (string-append bash sh)) + (("/bin/ls" ls) (string-append coreutils ls))) + (substitute* (find-files "tests" ".*\\.(in|out|err)$") + (("/usr/bin") (string-append coreutils "/bin")))))) + ;; Source /etc/fish/config.fish from $__fish_sysconf_dir/config.= fish. + (add-after 'patch-tests 'patch-fish-config + (lambda _ + (let ((port (open-file "etc/config.fish" "a"))) + (display (string-append + "\n\n" + "# Patched by Guix.\n" + "# Source /etc/fish/config.fish.\n" + "if test -f /etc/fish/config.fish\n" + " source /etc/fish/config.fish\n" + "end\n") + port) + (close-port port)))) + ;; Embed absolute paths. + (add-before 'install 'embed-absolute-paths + (lambda _ + (substitute* "share/functions/__fish_print_help.fish" + (("nroff") (which "nroff"))))) + ;; Enable completions, functions and configurations in user's an= d + ;; system's guix profiles by adding them 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" + "# Patched by Guix.\n" + "# Enable completions, functions and configurations in u= ser's" + " and system's guix profiles by adding them to __extra_*= " + " variables.\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)))) + ;; Use fish-foreign-env to source /etc/profile. + (add-before 'install 'source-etc-profile + (lambda _ + (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 " + #$(this-package-input "fish-foreign-env") "/share/fish/f= unctions" + " $__fish_datadir/functions\n" + " fenv source /etc/profile\n" + " set -e fish_function_path\n" + "end\n") + port) + (close-port port))))))) + (native-inputs + (list doxygen groff ; for 'fish --help' + bash coreutils procps)) ; for the test suite (inputs (list fish-foreign-env ncurses pcre2 - python)) ; for fish_config and manpage completions - (native-inputs - (list doxygen groff ; for 'fish --help' - procps)) ; for the test suite - (arguments - '(#:phases - (modify-phases %standard-phases - (add-after 'unpack 'set-env - (lambda _ - ;; some tests write to $HOME - (setenv "HOME" (getcwd)) - #t)) - (add-after 'unpack 'patch-tests - (lambda* (#:key inputs #:allow-other-keys) - (let ((coreutils (assoc-ref inputs "coreutils")) - (bash (assoc-ref inputs "bash"))) - ;; This test sporadically fails in the build container - ;; because of leftover zombie processes, which are not - ;; reaped automatically: -;; "Found existing zombie processes. Clean up zombies before running this = test." - ;; Disabling parallel tests does not reliably prevent it. - (delete-file "tests/checks/jobs.fish") - ;; This test fails. - (delete-file "tests/checks/pipeline-pgroup.fish") - ;; This one tries to open a terminal & can't simply be dele= ted. - (substitute* "cmake/Tests.cmake" - ((".* interactive\\.fish.*") "")) - ;; This one needs to chdir successfully. - (substitute* "tests/checks/vars_as_commands.fish" - (("/usr/bin") "/tmp")) - ;; These contain absolute path references. - (substitute* "src/fish_tests.cpp" - (("/bin/echo" echo) (string-append coreutils echo)) - (("/bin/ca" ca) (string-append coreutils ca)) - (("\"(/bin/c)\"" _ c) (string-append "\"" coreutils c "\"= ")) - (("/bin/ls_not_a_path" ls-not-a-path) - (string-append coreutils ls-not-a-path)) - (("/bin/ls" ls) (string-append coreutils ls)) - (("(/bin/)\"" _ bin) (string-append coreutils bin "\"")) - (("/bin -" bin) (string-append coreutils bin)) - (((string-append - "do_test\\(is_potential_path\\(" - "L\"/usr\", wds, vars, PATH_REQUIRE_DIR\\)\\);")) - "") - ;; Not all mentions of /usr... need to exist, but these d= o. - (("\"/usr(|/lib)\"" _ subdirectory) - (string-append "\"/tmp" subdirectory "\""))) - (substitute* - (append (find-files "tests" ".*\\.(in|out|err)$") - (find-files "tests/checks" ".*\\.fish")) - (("/bin/pwd" pwd) (string-append coreutils pwd)) - (("/bin/echo" echo) (string-append coreutils echo)) - (("/bin/sh" sh) (string-append bash sh)) - (("/bin/ls" ls) (string-append coreutils ls))) - (substitute* (find-files "tests" ".*\\.(in|out|err)$") - (("/usr/bin") (string-append coreutils "/bin"))) - #t))) - ;; Source /etc/fish/config.fish from $__fish_sysconf_dir/config.f= ish. - (add-after 'patch-tests 'patch-fish-config - (lambda _ - (let ((port (open-file "etc/config.fish" "a"))) - (display (string-append - "\n\n" - "# Patched by Guix.\n" - "# Source /etc/fish/config.fish.\n" - "if test -f /etc/fish/config.fish\n" - " source /etc/fish/config.fish\n" - "end\n") - port) - (close-port port)) - #t)) - ;; Embed absolute paths. - (add-before 'install 'embed-absolute-paths - (lambda _ - (substitute* "share/functions/__fish_print_help.fish" - (("nroff") (which "nroff"))) - #t)) - ;; Enable completions, functions and configurations in user's and - ;; system's guix profiles by adding them 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" - "# Patched by Guix.\n" - "# Enable completions, functions and configurations in us= er's" - " and system's guix profiles by adding them to __extra_*" - " variables.\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)) - ;; 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/functi= ons" - " $__fish_datadir/functions\n" - " fenv source /etc/profile\n" - " set -e fish_function_path\n" - "end\n") - port) - (close-port port)) - #t))))) + python)) ; for fish_config and manpage complet= ions + (home-page "https://fishshell.com/") (synopsis "The friendly interactive shell") (description "Fish (friendly interactive shell) is a shell focused on interactive = use, @@ -267,7 +264,6 @@ (define-public fish access to all the fish documentation in your web browser. Other features include smart terminal handling based on terminfo, an easy to search histo= ry, and syntax highlighting.") - (home-page "https://fishshell.com/") (license license:gpl2))) =20 (define-public fish-foreign-env --=20 2.41.0