[PATCH] gnu: Add oils.

  • Done
  • quality assurance status badge
Details
2 participants
  • Giacomo Leidi
  • Ludovic Courtès
Owner
unassigned
Submitted by
Giacomo Leidi
Severity
normal
G
G
Giacomo Leidi wrote on 24 Aug 00:16 +0200
(address . guix-patches@gnu.org)(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)
e039885e7d27705ccb5ae642e60902d068012470.1724451405.git.goodoldpaul@autistici.org
Since release 0.16.0 the former Oil project has been renamed to
deprecates the old oil package in favor of a new oils package updated to
the latest version. Additionally since release 0.21.0 Oils is
completely free from bundled Python code.

* gnu/packages/shells.scm (oils): New variable;
[source]: Remove mention of bundled Python sources, from release 0.21.0
it is no more the case;
[phases]: use Oils build system.
(oil): Deprecate in favor of oils.

Change-Id: I4455ec1e6f4335cc6e67cd8f2c3808e2aef24c4f
---
gnu/packages/shells.scm | 52 ++++++++++++++++++++++++-----------------
1 file changed, 30 insertions(+), 22 deletions(-)

Toggle diff (105 lines)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index d7fb2317cb..9e08ef39f0 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -25,6 +25,7 @@
;;; Copyright © 2023 Jaeme Sifat <jaeme@runbox.com>
;;; Copyright © 2024 Tanguy Le Carrour <tanguy@bioneland.org>
;;; Copyright © 2024 Vinicius Monego <monego@posteo.net>
+;;; Copyright © 2024 Giacomo Leidi <goodoldpaul@autistici.org>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,6 +91,7 @@ (define-module (gnu packages shells)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
+ #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
@@ -905,27 +907,20 @@ (define-public mksh
(license (list license:miros
license:isc)))) ; strlcpy.c
-(define-public oil
+(define-public oils
(package
- (name "oil")
- (version "0.20.0")
+ (name "oils")
+ (version "0.22.0")
(source
- ;; oil's sources contain a modified version of CPython 2.7.13.
- ;; According to https://www.oilshell.org/blog/2017/05/05.html
- ;; this bundles version of CPython had certain unused parts removed
- ;; and its build system has been replaced by a custom one.
- ;; This would probably make it quite complicated to replace the
- ;; bundled CPython with the one from the python2 package.
(origin
(method url-fetch)
- (uri (string-append "https://www.oilshell.org/download/oil-"
+ (uri (string-append "https://www.oilshell.org/download/oils-for-unix-"
version ".tar.gz"))
(sha256
- (base32 "1jpxhixwq29ik01jx372g9acib59wmww8lrdlcypq7jpg5b0b7pi"))))
+ (base32 "0pylgbxbnp683g51lcbmmd0y149jm7q7vh8g67yviagsa7clmmks"))))
(build-system gnu-build-system)
(arguments
- (list #:strip-binaries? #f ; strip breaks the binary
- #:phases
+ (list #:phases
#~(modify-phases %standard-phases
(replace 'configure
(lambda _
@@ -934,24 +929,37 @@ (define-public oil
((" cc ") " $CC "))
(invoke "./configure" (string-append "--prefix=" #$output)
"--with-readline")))
+ (replace 'build
+ (lambda _
+ (invoke "_build/oils.sh")))
+ (replace 'install
+ (lambda _
+ (setenv "PREFIX" #$output)
+ (invoke "./install")))
(replace 'check
;; The tests are not distributed in the tarballs but upstream
;; recommends running this smoke test.
- ;; https://github.com/oilshell/oil/blob/release/0.8.0/INSTALL.txt#L38-L48
+ ;; https://github.com/oilshell/oil/blob/release/0.22.0/INSTALL.txt#L30-L50
(lambda* (#:key tests? #:allow-other-keys)
(when tests?
- (let* ((oil "_bin/oil.ovm"))
- (invoke/quiet oil "osh" "-c" "echo hi")
- (invoke/quiet oil "osh" "-n" "configure"))))))))
+ (let ((osh "_bin/cxx-opt-sh/osh")
+ (ysh "_bin/cxx-opt-sh/ysh"))
+ (invoke/quiet osh "-c" "echo hi")
+ (invoke/quiet osh "-n" "configure")
+ (invoke/quiet ysh "-c" "echo hi")
+ (invoke/quiet ysh "-c"
+ "json write ({x: 42})"))))))))
(inputs
(list readline))
(home-page "https://www.oilshell.org")
(synopsis "Programming language and Bash-compatible Unix shell")
- (description "Oil is a programming language with automatic translation for
-Bash. It includes osh, a Unix/POSIX shell that runs unmodified Bash
-scripts.")
- (license (list license:psfl ; tarball includes python2.7
- license:asl2.0))))
+ (description "Oils is a programming language with automatic translation for
+Bash. It includes OSH, a Unix/POSIX shell that runs unmodified Bash
+scripts and YSH is a legacy-free shell, with structured data for Python and
+JavaScript users who avoid shell.")
+ (license (list license:asl2.0))))
+
+(define-deprecated/public-alias oil oils)
(define-public gash
(package

base-commit: d48af5cca84914d44b032d0bf0820640ebbe7a4b
--
2.45.2
L
L
Ludovic Courtès wrote on 4 Oct 17:53 +0200
(name . Giacomo Leidi)(address . goodoldpaul@autistici.org)(address . 72776-done@debbugs.gnu.org)
875xq7rhjk.fsf@gnu.org
Giacomo Leidi <goodoldpaul@autistici.org> skribis:

Toggle quote (14 lines)
> Since release 0.16.0 the former Oil project has been renamed to
> Oils (https://www.oilshell.org/blog/2023/03/rename.html). This patch
> deprecates the old oil package in favor of a new oils package updated to
> the latest version. Additionally since release 0.21.0 Oils is
> completely free from bundled Python code.
>
> * gnu/packages/shells.scm (oils): New variable;
> [source]: Remove mention of bundled Python sources, from release 0.21.0
> it is no more the case;
> [phases]: use Oils build system.
> (oil): Deprecate in favor of oils.
>
> Change-Id: I4455ec1e6f4335cc6e67cd8f2c3808e2aef24c4f

Applied with the change below, thanks!

Ludo'.
Toggle diff (24 lines)
diff --git a/gnu/packages/shells.scm b/gnu/packages/shells.scm
index 79f1c8a0a5..fa85704d37 100644
--- a/gnu/packages/shells.scm
+++ b/gnu/packages/shells.scm
@@ -93,7 +93,6 @@ (define-module (gnu packages shells)
#:use-module (guix build-system pyproject)
#:use-module (guix build-system python)
#:use-module (guix build-system trivial)
- #:use-module (guix deprecation)
#:use-module (guix download)
#:use-module (guix git-download)
#:use-module (guix gexp)
@@ -970,7 +969,10 @@ (define-public oils
JavaScript users who avoid shell.")
(license (list license:asl2.0))))
-(define-deprecated/public-alias oil oils)
+(define-public oil
+ ;; Since release 0.16.0 the former Oil project has been renamed to Oils:
+ ;; <https://www.oilshell.org/blog/2023/03/rename.html>.
+ (deprecated-package "oil" oils))
(define-public gash
(package
Closed
?
Your comment

This issue is archived.

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

To respond to this issue using the mumi CLI, first switch to it
mumi current 72776
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