Subject: bug#30221: closed (Re: [bug#30221] [PATCH] gnu: Add the Oil shell.)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 23 Jan 2018 21:00:02 +0000

Your bug report

#30221: [PATCH] gnu: Add the Oil shell.

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

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

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

Subject: Re: [bug#30221] [PATCH] gnu: Add the Oil shell.
From: Leo Famulari <[email-masked]>
To: [email-masked]
Date: Tue, 23 Jan 2018 15:59:45 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

I used (substitute*) instead of a patch file and pushed as
18d9d22adc2050717c97a1d35ce876ee93395d76.

Subject: [PATCH] gnu: Add the Oil shell.
From: Leo Famulari <[email-masked]>
To: [email-masked]
Date: Mon, 22 Jan 2018 19:28:37 -0500
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/shells.scm (oil-shell): New variable.
---
 gnu/local.mk                                       |  1 +
 gnu/packages/patches/oil-shell-compiler-name.patch | 18 +++++++++
 gnu/packages/shells.scm                            | 44 +++++++++++++++++++++-
 3 files changed, 62 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/oil-shell-compiler-name.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 240554fe4..6e3421b04 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -938,6 +938,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/ocaml-Add-a-.file-directive.patch	\
   %D%/packages/patches/ocaml-findlib-make-install.patch	\
   %D%/packages/patches/ocaml-graph-honor-source-date-epoch.patch	\
+  %D%/packages/patches/oil-shell-compiler-name.patch		\
   %D%/packages/patches/omake-fix-non-determinism.patch	\
   %D%/packages/patches/ola-readdir-r.patch			\
   %D%/packages/patches/openscenegraph-ffmpeg3.patch             \
diff --git a/gnu/packages/patches/oil-shell-compiler-name.patch b/gnu/packages/patches/oil-shell-compiler-name.patch
new file mode 100644
index 000000000..bd55b5c32
--- /dev/null
+++ b/gnu/packages/patches/oil-shell-compiler-name.patch
@@ -0,0 +1,18 @@
+diff --git a/configure b/configure
+index c3c11d3..327f40b 100755
+--- a/configure
++++ b/configure
+@@ -85,11 +85,11 @@ done
+ # No output file, no logging, no stderr.
+ # TODO: Maybe send stdout/stderr to config.log?
+ cc_quiet() {
+-  cc "$@" -o /dev/null >/dev/null 2>&1
++  gcc "$@" -o /dev/null >/dev/null 2>&1
+ }
+ 
+ cc_or_die() {
+-  if ! cc "$@" >$TMP/cc.log 2>&1; then
++  if ! gcc "$@" >$TMP/cc.log 2>&1; then
+     log "Error running 'cc $@':"
+     cat $TMP/cc.log
+     die "Fatal compile error running feature test"
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index e374c41b9..2d6ad2486 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -7,7 +7,7 @@
 ;;; Copyright © 2016 Stefan Reichör <[email-masked]>
 ;;; Copyright © 2017 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2017, 2018 ng0 <[email-masked]>
-;;; Copyright © 2017 Leo Famulari <[email-masked]>
+;;; Copyright © 2017, 2018 Leo Famulari <[email-masked]>
 ;;; Copyright © 2017 Arun Isaac <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -644,3 +644,45 @@ Korn Shell programming language and a successor to the Public Domain Korn
 Shell (pdksh).")
     (license (list miros
                    isc)))) ; strlcpy.c
+
+(define-public oil-shell
+  (package
+    (name "oil-shell")
+    (version "0.3.0")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://www.oilshell.org/download/oil-"
+                                  version ".tar.xz"))
+              (patches (search-patches "oil-shell-compiler-name.patch"))
+              (sha256
+               (base32
+                "0j4fyn6xjaf29xqyzm09ahazmq9v1hkxv4kps7n3lzdfr32a4kk9"))))
+    (build-system gnu-build-system)
+    (arguments
+     '(#:tests? #f ; the tests are not distributed in the tarballs
+       #:strip-binaries? #f ; the binaries cannot be stripped
+       #:phases
+       (modify-phases %standard-phases
+         (replace 'configure
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (setenv "CC" "gcc")
+               ;; The configure script doesn't recognize CONFIG_SHELL.
+               (setenv "CONFIG_SHELL" (which "sh"))
+               (invoke "./configure" (string-append "--prefix=" out)
+                       "--with-readline"))))
+         (add-before 'install 'make-destination
+           (lambda _
+             ;; The build scripts don't create the destination directory.
+             (mkdir-p (string-append (assoc-ref %outputs "out") "/bin")))))))
+    (inputs
+     `(("readline" ,readline)))
+    (synopsis "Bash-compatible Unix shell")
+    (description "Oil is a Unix / POSIX shell, compatible with Bash.  It
+implements the Oil language, which is a new shell language to which Bash can be
+automatically translated.  The Oil language is a superset of Bash.  It also
+implements the OSH language, a statically-parseable language based on Bash as it
+is commonly written.")
+    (home-page "https://www.oilshell.org/")
+    (license (list psfl ; The Oil sources include a patched Python 2 source tree
+                   asl2.0))))
-- 
2.16.0