GNU bug report logs - #73057
[PATCH 2/2] gnu: Add sbcl-ciel-repl.

Previous Next

Package: guix-patches;

Reported by: Konrad Hinsen <konrad.hinsen <at> fastmail.net>

Date: Thu, 5 Sep 2024 20:04:03 UTC

Severity: normal

Tags: patch

Done: Guillaume Le Vaillant <glv <at> posteo.net>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 73057 in the body.
You can then email your comments to 73057 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#73057; Package guix-patches. (Thu, 05 Sep 2024 20:04:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Konrad Hinsen <konrad.hinsen <at> fastmail.net>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Thu, 05 Sep 2024 20:04:03 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Konrad Hinsen <konrad.hinsen <at> fastmail.net>
To: guix-patches <at> gnu.org
Subject: [PATCH 2/2] gnu: Add sbcl-ciel-repl.
Date: Thu, 05 Sep 2024 21:43:43 +0200
* gnu/packages/lisp-xyz.scm (sbcl-ciel-repl): New variable.

Change-Id: I85eabe27d35a6d540a634f4121209b59a6c7085b
---
 gnu/packages/lisp-xyz.scm | 69 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index c22d5f6565..536b4029dc 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -3563,6 +3563,75 @@ (define-public cl-ciel
 (define-public ecl-ciel
   (sbcl-package->ecl-package sbcl-ciel))
 
+(define-public sbcl-ciel-repl
+  (let ((commit "0b26d64dcd91a3a2aa962842629a853261dd30fe")
+        (version "0.2.1"))
+    (package
+      (name "sbcl-ciel-repl")
+      (version version)
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/khinsen/CIEL")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0gm8slnz4jw98rkijnh2dp6x629xdnfk8z7j35g03j6ypr56v06h"))
+         (patches (search-patches "ciel-repl.patch"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-ciel
+             sbcl-cl-readline
+             sbcl-lisp-critic
+             sbcl-magic-ed))
+      (arguments
+       (list
+        #:asd-systems ''("ciel/repl")
+        #:phases
+        #~(modify-phases %standard-phases
+            ;; The built-in scripts require special care. They are
+            ;; read from src/scripts in the current directory.
+            ;; When the binary is built, the current directory is
+            ;; {out}/bin, so the scripts have to be copied there,
+            ;; but that copy must be deleted after the binary has been
+            ;; built, otherwise it would end up in the package.
+            (add-after 'create-asdf-configuration 'install-scripts
+              (lambda _
+                (let ((dir (string-append #$output "/bin/src/scripts")))
+                  (for-each (lambda (file)
+                              (install-file file dir))
+                            (find-files "src/scripts" "\\.lisp$")))))
+            (add-after 'install-scripts 'build-program
+              (lambda* (#:key outputs #:allow-other-keys)
+                (build-program
+                 (string-append #$output "/bin/ciel")
+                 outputs
+                 #:entry-program '((ciel::main))
+                 #:dependencies '("ciel/repl")
+                 #:compress? #t)))
+            (add-after 'build-program 'delete-scripts
+              (lambda _
+                (let ((dir (string-append #$output "/bin/src")))
+                  (delete-file-recursively dir))))
+            ;; Remove everything except the binary.
+            (add-after 'delete-scripts 'delete-lisp-files
+              (lambda _
+                (let ((dir (string-append #$output "/etc")))
+                  (delete-file-recursively dir))
+                (let ((dir (string-append #$output "/lib")))
+                  (delete-file-recursively dir))
+                (let ((dir (string-append #$output "/share")))
+                  (delete-file-recursively dir))
+                (let ((dir (string-append #$output "/.asd-files")))
+                  (delete-file-recursively dir)))))))
+      (home-page "http://ciel-lang.org/")
+      (synopsis "Terminal REPL for CIEL")
+      (description
+       "CIEL as a precompiled binary and a full-featured REPL
+for the terminal.")
+      (license license:expat))))
+
 (define-public sbcl-circular-streams
   (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
         (revision "1"))
-- 
2.45.2




Information forwarded to guix-patches <at> gnu.org:
bug#73057; Package guix-patches. (Fri, 06 Sep 2024 11:55:02 GMT) Full text and rfc822 format available.

Message #8 received at 73057 <at> debbugs.gnu.org (full text, mbox):

From: Guillaume Le Vaillant <glv <at> posteo.net>
To: Konrad Hinsen <konrad.hinsen <at> fastmail.net>
Cc: 73057 <at> debbugs.gnu.org
Subject: Re: [bug#73057] [PATCH 2/2] gnu: Add sbcl-ciel-repl.
Date: Fri, 06 Sep 2024 09:25:47 +0000
[Message part 1 (text/plain, inline)]
Konrad Hinsen <konrad.hinsen <at> fastmail.net> skribis:

> diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
> index c22d5f6565..536b4029dc 100644
> --- a/gnu/packages/lisp-xyz.scm
> +++ b/gnu/packages/lisp-xyz.scm
> @@ -3563,6 +3563,75 @@ (define-public cl-ciel
>  (define-public ecl-ciel
>    (sbcl-package->ecl-package sbcl-ciel))
>  
> +(define-public sbcl-ciel-repl
> +  (let ((commit "0b26d64dcd91a3a2aa962842629a853261dd30fe")
> +        (version "0.2.1"))
> +    (package
> +      (name "sbcl-ciel-repl")
> +      (version version)
> +      (source
> +       (origin
> +         (method git-fetch)
> +         (uri (git-reference
> +               (url "https://github.com/khinsen/CIEL")
> +               (commit commit)))
> +         (file-name (git-file-name name version))
> +         (sha256
> +          (base32 "0gm8slnz4jw98rkijnh2dp6x629xdnfk8z7j35g03j6ypr56v06h"))
> +         (patches (search-patches "ciel-repl.patch"))))

Is there a reason to take the sources from
<https://github.com/khinsen/CIEL> instead of the upstream repository at
<https://github.com/ciel-lang/CIEL>?

The "ciel-repl.patch" referenced in the 'source' field is missing.
Could you send an updated patch?
[signature.asc (application/pgp-signature, inline)]

Information forwarded to guix-patches <at> gnu.org:
bug#73057; Package guix-patches. (Fri, 06 Sep 2024 12:27:02 GMT) Full text and rfc822 format available.

Message #11 received at 73057 <at> debbugs.gnu.org (full text, mbox):

From: Konrad Hinsen <konrad.hinsen <at> fastmail.net>
To: Guillaume Le Vaillant <glv <at> posteo.net>
Cc: 73057 <at> debbugs.gnu.org
Subject: Re: [bug#73057] [PATCH 2/2] gnu: Add sbcl-ciel-repl.
Date: Fri, 06 Sep 2024 14:26:16 +0200
Guillaume Le Vaillant <glv <at> posteo.net> writes:

> Is there a reason to take the sources from
> <https://github.com/khinsen/CIEL> instead of the upstream repository at
> <https://github.com/ciel-lang/CIEL>?

Oops, sorry! I used my own fork for testing, but it is no longer
relevant for the final package version.

> The "ciel-repl.patch" referenced in the 'source' field is missing.
> Could you send an updated patch?

Oops again...

I'll send a new patch in a few seconds!

Cheers,
  Konrad.




Information forwarded to guix-patches <at> gnu.org:
bug#73057; Package guix-patches. (Fri, 06 Sep 2024 12:28:01 GMT) Full text and rfc822 format available.

Message #14 received at 73057 <at> debbugs.gnu.org (full text, mbox):

From: Konrad Hinsen <konrad.hinsen <at> fastmail.net>
To: 73057 <at> debbugs.gnu.org
Subject: [PATCH 2/2] gnu: Add sbcl-ciel-repl.
Date: Fri, 06 Sep 2024 14:27:40 +0200
* gnu/packages/lisp-xyz.scm (sbcl-ciel-repl): New variable.

Change-Id: I85eabe27d35a6d540a634f4121209b59a6c7085b
---
 gnu/packages/lisp-xyz.scm            | 69 ++++++++++++++++++++++++++++
 gnu/packages/patches/ciel-repl.patch | 31 +++++++++++++
 2 files changed, 100 insertions(+)
 create mode 100644 gnu/packages/patches/ciel-repl.patch

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index c22d5f6565..3427dbec0f 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -3563,6 +3563,75 @@ (define-public cl-ciel
 (define-public ecl-ciel
   (sbcl-package->ecl-package sbcl-ciel))
 
+(define-public sbcl-ciel-repl
+  (let ((commit "0b26d64dcd91a3a2aa962842629a853261dd30fe")
+        (version "0.2.1"))
+    (package
+      (name "sbcl-ciel-repl")
+      (version version)
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ciel-lang/CIEL")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "0gm8slnz4jw98rkijnh2dp6x629xdnfk8z7j35g03j6ypr56v06h"))
+         (patches (search-patches "ciel-repl.patch"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       (list sbcl-ciel
+             sbcl-cl-readline
+             sbcl-lisp-critic
+             sbcl-magic-ed))
+      (arguments
+       (list
+        #:asd-systems ''("ciel/repl")
+        #:phases
+        #~(modify-phases %standard-phases
+            ;; The built-in scripts require special care. They are
+            ;; read from src/scripts in the current directory.
+            ;; When the binary is built, the current directory is
+            ;; {out}/bin, so the scripts have to be copied there,
+            ;; but that copy must be deleted after the binary has been
+            ;; built, otherwise it would end up in the package.
+            (add-after 'create-asdf-configuration 'install-scripts
+              (lambda _
+                (let ((dir (string-append #$output "/bin/src/scripts")))
+                  (for-each (lambda (file)
+                              (install-file file dir))
+                            (find-files "src/scripts" "\\.lisp$")))))
+            (add-after 'install-scripts 'build-program
+              (lambda* (#:key outputs #:allow-other-keys)
+                (build-program
+                 (string-append #$output "/bin/ciel")
+                 outputs
+                 #:entry-program '((ciel::main))
+                 #:dependencies '("ciel/repl")
+                 #:compress? #t)))
+            (add-after 'build-program 'delete-scripts
+              (lambda _
+                (let ((dir (string-append #$output "/bin/src")))
+                  (delete-file-recursively dir))))
+            ;; Remove everything except the binary.
+            (add-after 'delete-scripts 'delete-lisp-files
+              (lambda _
+                (let ((dir (string-append #$output "/etc")))
+                  (delete-file-recursively dir))
+                (let ((dir (string-append #$output "/lib")))
+                  (delete-file-recursively dir))
+                (let ((dir (string-append #$output "/share")))
+                  (delete-file-recursively dir))
+                (let ((dir (string-append #$output "/.asd-files")))
+                  (delete-file-recursively dir)))))))
+      (home-page "http://ciel-lang.org/")
+      (synopsis "Terminal REPL for CIEL")
+      (description
+       "CIEL as a precompiled binary and a full-featured REPL
+for the terminal.")
+      (license license:expat))))
+
 (define-public sbcl-circular-streams
   (let ((commit "e770bade1919c5e8533dd2078c93c3d3bbeb38df")
         (revision "1"))
diff --git a/gnu/packages/patches/ciel-repl.patch b/gnu/packages/patches/ciel-repl.patch
new file mode 100644
index 0000000000..ab4dfdd793
--- /dev/null
+++ b/gnu/packages/patches/ciel-repl.patch
@@ -0,0 +1,31 @@
+The standard CIEL REPL includes Quicklisp. We remove it for packaging
+with Guix.
+
+The default Quicklisp-based build procedure removes one dependency
+relation from the system definition for ciel/repl and replaces it by
+an explicit load command using Quicklisp, as a workaround to some build
+issue. Fortunately we don't have this issue with Guix, so we go back
+to letting ASDF manage this dependency relation.
+
+--- a/repl.lisp
++++ b/repl.lisp
+@@ -1,8 +1,5 @@
+ ;; #!/usr/bin/sbcl --script
+-(load "~/quicklisp/setup")
+ 
+-(let ((*standard-output* (make-broadcast-stream)))
+-  (ql:quickload "cl-readline"))
+ (uiop:define-package :sbcli
+   (:use :common-lisp :trivial-package-local-nicknames)
+   (:import-from :magic-ed
+--- a/ciel.asd
++++ b/ciel.asd
+@@ -179,7 +179,7 @@
+ ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+ (asdf:defsystem "ciel/repl"
+   :description "readline REPL for CIEL with quality of life improvements."
+-  :depends-on (;; :ciel  ;; let's avoid, it could run side effects twice (like a defparameter set then reset).
++  :depends-on (:ciel
+                ;; deps
+                :cl-readline
+                :lisp-critic  ;; it would be nice to integrate it with Slime.
-- 
2.45.2




Reply sent to Guillaume Le Vaillant <glv <at> posteo.net>:
You have taken responsibility. (Sat, 07 Sep 2024 11:36:02 GMT) Full text and rfc822 format available.

Notification sent to Konrad Hinsen <konrad.hinsen <at> fastmail.net>:
bug acknowledged by developer. (Sat, 07 Sep 2024 11:36:02 GMT) Full text and rfc822 format available.

Message #19 received at 73057-done <at> debbugs.gnu.org (full text, mbox):

From: Guillaume Le Vaillant <glv <at> posteo.net>
To: Konrad Hinsen <konrad.hinsen <at> fastmail.net>
Cc: 73057-done <at> debbugs.gnu.org
Subject: Re: [bug#73057] [PATCH 2/2] gnu: Add sbcl-ciel-repl.
Date: Sat, 07 Sep 2024 11:35:24 +0000
[Message part 1 (text/plain, inline)]
I registered the new patch file in "gnu/local.mk" and I applied the
patch as 683cbb283a9fce9ef8ed9ef71ba9a79d0a467670.
Thanks.
[signature.asc (application/pgp-signature, inline)]

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Sun, 06 Oct 2024 11:24:08 GMT) Full text and rfc822 format available.

This bug report was last modified 316 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.