Subject: [PACKAGE] Add cl-svg, inferior-shell, fare-mop, cl-png

From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 17 Apr 2021 21:08:39 +0000

Hi Guix team!

Preparation list of patches for art generation system Weir
I've packed it but it's failed on ECL build with

;;; Warning: ;;; in file various.lisp, position 144 ;;; at
(DEFCONSTANT PII ...) ;;; ! The expression 6.283185307179586477l0 is
not of the expected type DOUBLE-FLOAT ;;; Warning: ;;; in file
various.lisp, position 195 ;;; at (DEFCONSTANT PI5 ...) ;;; ! The
expression 1.5707963267948966193l0 is not of the expected type
DOUBLE-FLOAT

Maintainer has not option for opening an issue.

For someone who has more knowledge in CL to check
https://github.com/Hellseher/guix-channel/blob/main/ffab/packages/lisp-xyz.scm#L1467

-- 
… наш разум - превосходная объяснительная машина которая способна
найти смысл почти в чем угодно, истолковать любой феномен, но
совершенно не в состоянии принять мысль о непредсказуемости.
From 4c88394f72e61a7f7170075ca32d8e42b1acc645 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 17 Apr 2021 21:37:45 +0100
Subject: [PATCH] gnu: Add cl-png

* gnu/packages/lisp-xyz.scm (sbcl-png, cl-png, ecl-png): New variables
---
 gnu/packages/lisp-xyz.scm | 42 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 42 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 7ee1957169..6c9353a9e2 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -68,6 +68,7 @@
   #:use-module (gnu packages gl)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gtk)
+  #:use-module (gnu packages image)
   #:use-module (gnu packages imagemagick)
   #:use-module (gnu packages libevent)
   #:use-module (gnu packages libffi)
@@ -9224,6 +9225,47 @@ for reading and writing JPEG image files.")
 (define-public ecl-cl-jpeg
   (sbcl-package->ecl-package sbcl-cl-jpeg))
 
+(define-public sbcl-png
+  (let ((commit "11b965fe378fd0561abe3616b18ff03af5179648")
+        (revision "1"))
+    (package
+      (name "sbcl-png")
+      (version (git-version "2.1.2" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/ljosa/cl-png")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "173hqwpd0rwqf95mfx1h9l9c3i8bb0gvnpspzmmz3g5x3440czy4"))))
+      (build-system asdf-build-system/sbcl)
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'unpack 'fix-lib-paths
+             (lambda* (#:key inputs #:allow-other-keys)
+               (substitute* "libpng.lisp"
+                 (("\"libpng\"") (string-append "\""
+                                        (assoc-ref inputs "libpng")
+                                        "/lib/libpng\""))))))))
+      (inputs
+       `(("cffi" ,sbcl-cffi)
+         ("libpng" ,libpng)))
+      (home-page "https://github.com/ljosa/cl-png")
+      (synopsis "Read and write PNG file format")
+      (description
+       "This package provides Common Lisp system @code{PNG} to operate with
+Portable Network Graphics file format.")
+      (license license:lgpl2.0))))
+
+(define-public ecl-png
+  (sbcl-package->ecl-package sbcl-png))
+
+(define-public cl-png
+  (sbcl-package->cl-source-package sbcl-png))
+
 (define-public sbcl-nodgui
   (let ((commit "4a9c2e7714b278fbe97d198c56f54ea87290001d")
         (revision "1"))
-- 
2.30.2

From add3e4d659e3cd8d065940b35d9ade590fe6714d Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 17 Apr 2021 21:39:26 +0100
Subject: [PATCH] gnu: Add fare-mop

* gnu/packages/lisp-xyz.scm
  (sbcl-fare-mop, cl-fare-mop, ecl-fare-mop): New variables
---
 gnu/packages/lisp-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++++
 1 file changed, 38 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 6c9353a9e2..2269431275 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -5683,6 +5683,44 @@ basic everyday functions and macros.")
 (define-public ecl-fare-utils
   (sbcl-package->ecl-package sbcl-fare-utils))
 
+(define-public sbcl-fare-mop
+  (let ((commit "538aa94590a0354f382eddd9238934763434af30")
+        (revision "1"))
+    (package
+      (name "sbcl-fare-mop")
+      (version (git-version "1.0.1" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               ;; Other mirror, Fare is most active on GitHub.
+               ;; https://gitlab.common-lisp.net/frideau/fare-mop
+               (url "https://github.com/fare/fare-mop")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "0maxs8392953fhnaa6zwnm2mdbhxjxipp4g4rvypm06ixr6pyv1c"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("close-mop" ,sbcl-closer-mop)
+         ("fare-utils" ,sbcl-fare-utils)))
+      (home-page "https://github.com/fare/fare-mop")
+      (synopsis "General purpose Common Lisp utilities using the Meta-Object Project")
+      (description
+       "FARE-MOP is a small collection of utilities using the MOP.  It notably
+contains a method SIMPLE-PRINT-OBJECT, and a mixin SIMPLE-PRINT-OBJECT-MIXIN
+that allow you to trivially define PRINT-OBJECT methods that print the
+interesting slots in your objects, which is great for REPL interaction and
+debugging.")
+      (license license:unlicense))))
+
+(define-public ecl-fare-mop
+  (sbcl-package->ecl-package sbcl-fare-mop))
+
+(define-public cl-fare-mop
+  (sbcl-package->cl-source-package sbcl-fare-mop))
+
 (define-public sbcl-trivial-utf-8
   (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
         (revision "1"))
-- 
2.30.2

From 86e28c08c10ce5039beea1089dc2f23feb8f58ea Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 17 Apr 2021 21:41:15 +0100
Subject: [PATCH] gnu: Add inferior-shell

* gnu/packages/lisp-xyz.scm
  (sbcl-inferior-shell, cl-inferior-shell, ecl-inferior-shell): New variables
---
 gnu/packages/lisp-xyz.scm | 37 +++++++++++++++++++++++++++++++++++++
 1 file changed, 37 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index 2269431275..bfa0c1a488 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -5721,6 +5721,43 @@ debugging.")
 (define-public cl-fare-mop
   (sbcl-package->cl-source-package sbcl-fare-mop))
 
+(define-public sbcl-inferior-shell
+  (let ((commit "15c2d04a7398db965ea1c3ba2d49efa7c851f2c2")
+        (revision "1"))
+    (package
+      (name "sbcl-inferior-shell")
+      (version (git-version "2.0.5" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               ;; Other mirror, Fare is most active on GitHub.
+               ;; https://gitlab.common-lisp.net/frideau/inferior-shell
+               (url "https://github.com/fare/inferior-shell")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "02qx37zzk5j4xmwh77k2qa2wvnzvaj6qml5dh2q7b6b1ljvgcj4m"))))
+      (build-system asdf-build-system/sbcl)
+      (inputs
+       `(("alexandira" ,sbcl-alexandria)
+         ("trivia" ,sbcl-trivia)
+         ("fare-utils" ,sbcl-fare-utils)
+         ("fare-quasiquote" ,sbcl-fare-quasiquote)
+         ("fare-mop" ,sbcl-fare-mop)))
+      (home-page "https://github.com/fare/inferior-shell")
+      (synopsis "Spawn local or remote processes and shell pipes")
+      (description
+       "This package provides Common Lisp system helping in scripting, it uses
+@code{uiop:run-program} as a backend.")
+      (license license:expat))))
+
+(define-public ecl-inferior-shell
+  (sbcl-package->ecl-package sbcl-inferior-shell))
+
+(define-public cl-inferior-shell
+  (sbcl-package->cl-source-package sbcl-fare-mop))
+
 (define-public sbcl-trivial-utf-8
   (let ((commit "4d427cfbb1c452436a0efb71c3205c9da67f718f")
         (revision "1"))
-- 
2.30.2

From 9da7dd17ff3e5a86c3af91d3e764637bbfbb0df0 Mon Sep 17 00:00:00 2001
From: Sharlatan Hellseher <[email-masked]>
Date: Sat, 17 Apr 2021 21:44:09 +0100
Subject: [PATCH] gnu: Add cl-svg

* gnu/packages/lisp-xyz.scm (sbcl-cl-svg, cl-svg, ecl-cl-svg): New variables
---
 gnu/packages/lisp-xyz.scm | 29 +++++++++++++++++++++++++++++
 1 file changed, 29 insertions(+)

diff --git a/gnu/packages/lisp-xyz.scm b/gnu/packages/lisp-xyz.scm
index bfa0c1a488..a0cd436066 100644
--- a/gnu/packages/lisp-xyz.scm
+++ b/gnu/packages/lisp-xyz.scm
@@ -9341,6 +9341,35 @@ Portable Network Graphics file format.")
 (define-public cl-png
   (sbcl-package->cl-source-package sbcl-png))
 
+(define-public sbcl-cl-svg
+  (let ((commit "1e988ebd2d6e2ee7be4744208828ef1b59e5dcdc")
+        (revision "1"))
+    (package
+      (name "sbcl-cl-svg")
+      (version (git-version "0.0.3" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/wmannis/cl-svg")
+               (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "11rmzimy6j7ln7q5y1h2kw1225rsfb6fpn89qjcq7h5lc8fay0wz"))))
+      (build-system asdf-build-system/sbcl)
+      (home-page "https://github.com/wmannis/cl-svg")
+      (synopsis "Write SVG file format")
+      (description
+       "This package provides Common Lisp system @code{CL-SVG} to produce
+Scalable Vector Graphics files.")
+      (license license:expat))))
+
+(define-public ecl-cl-svg
+  (sbcl-package->ecl-package sbcl-cl-svg))
+
+(define-public cl-svg
+  (sbcl-package->cl-source-package sbcl-fare-mop))
+
 (define-public sbcl-nodgui
   (let ((commit "4a9c2e7714b278fbe97d198c56f54ea87290001d")
         (revision "1"))
-- 
2.30.2