Subject: [bug#69973] [PATCH] gnu: Add oils-for-unix.

From: Felix Gruber <[email-masked]>
Date: Sun, 24 Mar 2024 09:49:32 +0000

* gnu/packages/shells.scm (oils-for-unix): New variable.

Change-Id: I0422f9d9ab6b67fb0b07d5b8bfcca7b1524baf26
---
 gnu/packages/shells.scm | 49 ++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 48 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index ae4e73956e..eb74a3f124 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -18,7 +18,7 @@
 ;;; Copyright © 2020, 2022 Efraim Flashner <[email-masked]>
 ;;; Copyright © 2020, 2022 Marius Bakke <[email-masked]>
 ;;; Copyright © 2021, 2022 Nicolas Goaziou <[email-masked]>
-;;; Copyright © 2021, 2022 Felix Gruber <[email-masked]>
+;;; Copyright © 2021, 2022, 2023, 2024 Felix Gruber <[email-masked]>
 ;;; Copyright © 2022 Andrew Tropin <[email-masked]>
 ;;; Copyright © 2023 Zheng Junjie <[email-masked]>
 ;;; Copyright © 2023 David Pflug <[email-masked]>
@@ -906,6 +906,53 @@ (define-public oil
     (license (list license:psfl                 ; tarball includes python2.7
                    license:asl2.0))))
 
+(define-public oils-for-unix
+  (package
+    (name "oils-for-unix")
+    (version "0.21.0")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://www.oilshell.org/download/oils-for-unix-"
+                           version ".tar.gz"))
+       (sha256
+        (base32 "0kk5mj6x2d6h1d22ig2c3nwsqj995hw1ijab3h11px09mwmq9jw3"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'fix-cc
+           (lambda _
+             (substitute* "configure"
+               (("cc ") "gcc "))))
+         ;; The 'configure' script is not generated by autoconf and can't
+         ;; cope with "SHELL=" and "CONFIG_SHELL=" arguments, so we
+         ;; pass a custom set of arguments.
+         (replace 'configure
+           (lambda* (#:key build inputs outputs #:allow-other-keys)
+             (let ((bash (which "bash"))
+                   (out  (assoc-ref outputs "out")))
+               (invoke bash "./configure"
+                       (string-append "--prefix=" out)
+                       (string-append "--build=" build)
+                       "--with-readline"))))
+         (replace 'build
+           (lambda _
+             (invoke "_build/oils.sh")))
+         (replace 'install
+           (lambda _
+             (invoke "./install"))))))
+    (inputs
+     (list readline))
+    (home-page "https://www.oilshell.org/")
+    (synopsis "Programming language and Bash-compatible Unix shell")
+    (description "Oils contains two shells.  The Bash-compatible OSH
+and YSH, which is incompatible with Bash scripts as it tries to
+modernize the shell syntax by adding features known from scripting
+languages like Python or Ruby.")
+    (license license:asl2.0)))
+
 (define-public gash
   (package
     (name "gash")

base-commit: 28bc0e870b4d48b8e3e773382bb0e999df2e3611
-- 
2.43.0