[PATCH] Add s7.

  • Done
  • quality assurance status badge
Details
2 participants
  • Antero Mejr
  • ???
Owner
unassigned
Submitted by
Antero Mejr
Severity
normal
A
A
Antero Mejr wrote on 25 Apr 2023 03:58
(address . guix-patches@gnu.org)
87h6t4n2o0.fsf@mailbox.org
This patchset adds s7 and fixes notcurses, which currently doesn't
build.
A
A
Antero Mejr wrote on 25 Apr 2023 04:06
[PATCH 1/3] gnu: notcurses: Update to 3.0.9.
(address . 63061@debbugs.gnu.org)
20230425020653.10035-1-antero@mailbox.org
* gnu/packages/notcurses.scm (notcurses): Update to 3.0.9.
---
gnu/packages/notcurses.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (24 lines)
diff --git a/gnu/packages/notcurses.scm b/gnu/packages/notcurses.scm
index bb0086d4b3..591bed23ef 100644
--- a/gnu/packages/notcurses.scm
+++ b/gnu/packages/notcurses.scm
@@ -35,7 +35,7 @@ (define-module (gnu packages notcurses)
(define-public notcurses
(package
(name "notcurses")
- (version "3.0.8")
+ (version "3.0.9")
(source
(origin
(method url-fetch)
@@ -48,7 +48,7 @@ (define-public notcurses
"+dfsg.1.orig.tar.xz"))
(file-name (string-append name "-" version ".tar.xz"))
(sha256
- (base32 "1nz32nqh7fn4i06hvl8ndkm0z4g08a6wzhilvv8ggx2hc5axsz89"))))
+ (base32 "1sj2m7sil2i3yw73z15947kypsp0rnapwpwanwzam15lbicc8c3y"))))
(build-system cmake-build-system)
(arguments
`(#:make-flags
--
2.39.2
A
A
Antero Mejr wrote on 25 Apr 2023 04:06
[PATCH 2/3] gnu: Add s7-bootstrap.
(address . 63061@debbugs.gnu.org)
20230425020653.10035-2-antero@mailbox.org
* gnu/packages/lisp.scm (s7-bootstrap): New variable.
---
gnu/packages/lisp.scm | 96 ++++++++++++++++++++++++++++++++++++++++++-
1 file changed, 95 insertions(+), 1 deletion(-)

Toggle diff (127 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 4f1243e8c0..1b05417bc9 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -57,6 +57,7 @@ (define-module (gnu packages lisp)
#:use-module (guix build-system haskell)
#:use-module (guix build-system trivial)
#:use-module (gnu packages admin)
+ #:use-module (gnu packages algebra)
#:use-module (gnu packages base)
#:use-module (gnu packages bash)
#:use-module (gnu packages bdw-gc)
@@ -83,6 +84,7 @@ (define-module (gnu packages lisp)
#:use-module (gnu packages maths)
#:use-module (gnu packages multiprecision)
#:use-module (gnu packages ncurses)
+ #:use-module (gnu packages notcurses)
#:use-module (gnu packages onc-rpc)
#:use-module (gnu packages perl)
#:use-module (gnu packages readline)
@@ -93,7 +95,8 @@ (define-module (gnu packages lisp)
#:use-module (gnu packages tls)
#:use-module (gnu packages version-control)
#:use-module (gnu packages xorg)
- #:use-module (ice-9 match))
+ #:use-module (ice-9 match)
+ #:use-module (srfi srfi-1))
(define-public cl-asdf
(package
@@ -1477,3 +1480,94 @@ (define-public eisl
license:expat ;; cii/LICENSE
license:gpl2+ ;; nana/gdb/test.c and others under nana/
license:bsd-3)))) ;; bench/*
+
+(define-public s7-bootstrap
+ ;; Need s7-bootstrap to build libc_s7.so (for the REPL) and run tests
+ (let ((commit "a5b4bb49f8bcd7c33ae2366065fc8c254b734460") ;no releases
+ (revision "0"))
+ (hidden-package
+ (package
+ (name "s7-bootstrap")
+ (version (git-version "23.3" revision commit))
+ (source (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://cm-gitlab.stanford.edu/bil/s7.git")
+ (commit commit)))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32
+ "03n1axdlypzmbgzrhlwfqwa1xiw36hi25j2hwc7vw77mz90cd9f8"))))
+ (build-system gnu-build-system)
+ (arguments
+ (list #:tests? #f ;no tests in bootstrap
+ #:phases #~(modify-phases %standard-phases
+ (delete 'configure) ;no configure
+ (replace 'build
+ (lambda _
+ ;; using build commands from s7 home page
+ (invoke #$(cc-for-target) "s7.c" "-o" "repl"
+ "-I." "-O2" "-g"
+ "-DWITH_MAIN"
+ (string-append
+ "-DS7_LOAD_PATH=\""
+ #$output "/share/s7/scm\"")
+ "-ldl" "-lm"
+ "-Wl,-export-dynamic")
+ (invoke #$(cc-for-target) "s7.c" "-o" "nrepl"
+ "-I." "-O2" "-g"
+ "-DWITH_MAIN" "-DWITH_NOTCURSES"
+ (string-append
+ "-DS7_LOAD_PATH=\""
+ #$output "/share/s7/scm\"")
+ "-ldl" "-lm" "-lnotcurses-core"
+ "-Wl,-export-dynamic")
+ (invoke #$(cc-for-target) "libarb_s7.c"
+ "-I." "-O2" "-g"
+ "-shared" "-o" "libarb_s7.so"
+ "-larb" "-lflint" "-lmpc" "-fPIC")
+ (invoke #$(cc-for-target) "notcurses_s7.c"
+ "-I." "-O2" "-g"
+ "-shared" "-o" "libnotcurses_s7.so"
+ "-lnotcurses-core" "-fPIC")
+ ;; Need s7.o and ffitest for tests
+ (invoke #$(cc-for-target) "-c" "s7.c" "-o"
+ "s7.o" "-I." "-O2" "-ldl" "-lm")
+ (invoke #$(cc-for-target) "-o" "ffitest"
+ "ffitest.c" "-g2" "s7.o" "-lm" "-I."
+ "-ldl" "-Wl,-export-dynamic")))
+ (add-before 'check 'install-scm
+ ;; scm files need to be installed before testing
+ (lambda _
+ (for-each (lambda (x)
+ (install-file
+ x (string-append
+ #$output "/share/s7/scm/")))
+ (find-files "." "\\.scm"))))
+ (replace 'install
+ (lambda _
+ (let ((bin (string-append #$output "/bin"))
+ (share (string-append #$output
+ "/share/s7/"))
+ (doc (string-append #$output
+ "/share/doc/s7/"))
+ (lib (string-append #$output "/lib"))
+ (inc (string-append #$output "/include/")))
+ (install-file "repl" bin)
+ (install-file "nrepl" bin)
+ (install-file "ffitest" bin)
+ (install-file "libarb_s7.so" lib)
+ (install-file "libnotcurses_s7.so" lib)
+ (install-file "s7.c" share)
+ (install-file "s7.h" inc)
+ (install-file "s7.html" doc)))))))
+ (inputs (list arb flint mpc notcurses))
+ (home-page "https://ccrma.stanford.edu/software/snd/snd/s7.html")
+ (synopsis "Scheme interpreter intended as an extension language")
+ (description
+ "s7 is a Scheme interpreter intended as an extension language for
+other applications. It exists as just two files, @code{s7.c} and @code{s7.h},
+that may be copied into the source tree of another application. There are no
+libraries, no run-time init files, and no configuration scripts. It can also
+be built as a stand-alone REPL interpreter.")
+ (license license:bsd-0)))))
--
2.39.2
A
A
Antero Mejr wrote on 25 Apr 2023 04:06
[PATCH 3/3] gnu: Add s7.
(address . 63061@debbugs.gnu.org)
20230425020653.10035-3-antero@mailbox.org
* gnu/packages/lisp.scm (s7): New variable.
---
gnu/packages/lisp.scm | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)

Toggle diff (39 lines)
diff --git a/gnu/packages/lisp.scm b/gnu/packages/lisp.scm
index 1b05417bc9..7c4064da30 100644
--- a/gnu/packages/lisp.scm
+++ b/gnu/packages/lisp.scm
@@ -1571,3 +1571,32 @@ (define-public s7-bootstrap
libraries, no run-time init files, and no configuration scripts. It can also
be built as a stand-alone REPL interpreter.")
(license license:bsd-0)))))
+
+(define-public s7
+ (package
+ (inherit s7-bootstrap)
+ (name "s7")
+ (arguments
+ (substitute-keyword-arguments (package-arguments s7-bootstrap)
+ ((#:tests? _) #t)
+ ((#:phases phases)
+ #~(modify-phases #$phases
+ (add-after 'unpack 'patch
+ (lambda _
+ (substitute* "s7.c"
+ (("libc_s7.so")
+ (string-append #$output "/lib/libc_s7.so")))))
+ (add-after 'build 'build-full
+ (lambda _
+ (invoke "repl" "./libc.scm")))
+ (replace 'check
+ (lambda* (#:key tests? #:allow-other-keys)
+ (when tests?
+ (invoke "repl" "./s7test.scm"))))
+ (add-after 'install 'install-full
+ (lambda _
+ (install-file "libc_s7.so"
+ (string-append #$output "/lib/"))
+ (delete-file (string-append #$output "/bin/ffitest"))))))))
+ (native-inputs (list s7-bootstrap))
+ (properties (alist-delete 'hidden? (package-properties s7-bootstrap)))))
--
2.39.2
?
Re: bug#63061: [PATCH] Add s7.
(name . Antero Mejr)(address . antero@mailbox.org)(address . 63061-done@debbugs.gnu.org)
87a5xh541v.fsf@envs.net
Antero Mejr <antero@mailbox.org> writes:

Toggle quote (3 lines)
> This patchset adds s7 and fixes notcurses, which currently doesn't
> build.

Applied now, thank you!

I added some "[BUILD] xxx" to the build phase to reduce the chance of
timeout.
Closed
?
Your comment

This issue is archived.

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

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