[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
?