guix_mirror_bot pushed a commit to branch master
in repository guix.
commit 9da455992af0beeb484cbcd2e208afed231b4298
Author: Nicolas Graves <[email protected]>
AuthorDate: Mon Aug 4 14:07:40 2025 +0200
gnu: mit-scheme: Improve style.
* gnu/packages/scheme.scm (mit-scheme): Run guix style.
[source]: Replace it from native-inputs, unclear why it was moved in
the first place, because "source" is already the right input name for
it.
[arguments]: Remove trailing #t, use #$output gexps.
<#:phases>: Rewrite 'unpack phase leveraging gexps to inject
system-specific source. Replace which by search-input-file for
cross-compilation, in phases 'configure-doc, 'patch-/bin/sh.
[native-inputs, inputs]: Move to new style.
(mit-scheme-source-directory): Delete now unused variable.
Signed-off-by: Andreas Enge <[email protected]>
---
gnu/packages/scheme.scm | 242 ++++++++++++++++++++++--------------------------
1 file changed, 109 insertions(+), 133 deletions(-)
diff --git a/gnu/packages/scheme.scm b/gnu/packages/scheme.scm
index aec39961d9..48caa7b8a6 100644
--- a/gnu/packages/scheme.scm
+++ b/gnu/packages/scheme.scm
@@ -105,147 +105,123 @@
#:use-module (srfi srfi-1)
#:use-module (ice-9 match))
-(define (mit-scheme-source-directory system version)
- (string-append "mit-scheme-"
- (if (or (string-prefix? "x86_64" system)
- (string-prefix? "i686" system))
- ""
- "c-")
- version))
-
(define-public mit-scheme
(package
(name "mit-scheme")
(version "11.2")
- (source #f) ; see below
+ (source #f) ; See below.
(outputs '("out" "doc"))
(build-system gnu-build-system)
(arguments
- `(#:modules ((guix build gnu-build-system)
- (guix build utils)
- (srfi srfi-1))
- #:phases
- (modify-phases %standard-phases
- (replace 'unpack
- (lambda* (#:key inputs #:allow-other-keys)
- (invoke "tar" "xzvf"
- (assoc-ref inputs "source"))
- (chdir ,(mit-scheme-source-directory (%current-system)
- version))
- ;; Delete these dangling symlinks since they break
- ;; `patch-shebangs'.
- (for-each delete-file
- (find-files "src/compiler" "^make\\."))
- (chdir "src")
- #t))
- (add-after 'unpack 'patch-/bin/sh
- (lambda _
- (setenv "CONFIG_SHELL" (which "sh"))
- (substitute* '("../tests/ffi/autogen.sh"
- "../tests/ffi/autobuild.sh"
- "../tests/ffi/test-ffi.sh"
- "../tests/runtime/test-process.scm"
- "runtime/unxprm.scm")
- (("/bin/sh") (which "sh"))
- (("\\./autogen\\.sh")
- (string-append (which "sh") " autogen.sh"))
- (("\\./configure")
- (string-append (which "sh") " configure")))
- #t))
- ;; disable array-parameter warnings that become errors while
- ;; compiling microcode target
- (add-before 'configure 'set-flags
- (lambda* (#:key inputs #:allow-other-keys)
- (setenv "CFLAGS" "-Wno-array-parameter")
- (setenv "CPPFLAGS" "-Wno-array-parameter")))
- (replace 'build
- (lambda* (#:key system outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out")))
- (if (or (string-prefix? "x86_64" system)
- (string-prefix? "i686" system))
- (invoke "make" "compile-microcode")
- (invoke "./etc/make-liarc.sh"
- (string-append "--prefix=" out)))
- #t)))
- (add-after 'configure 'configure-doc
- (lambda* (#:key outputs inputs #:allow-other-keys)
- (with-directory-excursion "../doc"
- (let* ((out (assoc-ref outputs "out"))
- (bash (assoc-ref inputs "bash"))
- (bin/sh (string-append bash "/bin/sh")))
- (invoke bin/sh "./configure"
- (string-append "--prefix=" out)
- (string-append "SHELL=" bin/sh))
- #t))))
- (add-after 'build 'build-doc
- (lambda* _
- (with-directory-excursion "../doc"
- (invoke "make"))
- #t))
- (add-after 'install 'install-doc
- (lambda* (#:key outputs #:allow-other-keys)
- (let* ((out (assoc-ref outputs "out"))
- (doc (assoc-ref outputs "doc"))
- (old-doc-dir (string-append out "/share/doc"))
- (new-doc/mit-scheme-dir
- (string-append doc "/share/doc/" ,name "-" ,version)))
- (with-directory-excursion "../doc"
- (for-each (lambda (target)
- (invoke "make" target))
- '("install-info-gz" "install-man"
- "install-html" "install-pdf")))
- (mkdir-p new-doc/mit-scheme-dir)
- (copy-recursively
- (string-append old-doc-dir "/" ,name)
- new-doc/mit-scheme-dir)
- (delete-file-recursively old-doc-dir)
- #t))))))
+ (list
+ #:phases
+ #~(modify-phases %standard-phases
+ ;; MIT/GNU Scheme is not bootstrappable, so it's recommended to
+ ;; compile from the architecture-specific tarballs, which contain
+ ;; pre-built binaries. It leads to more efficient code than when
+ ;; building the tarball that contains generated C code instead of
+ ;; those binaries.
+ (replace 'unpack
+ (lambda* (#:key inputs #:allow-other-keys)
+ ((assoc-ref %standard-phases 'unpack)
+ #:inputs inputs
+ #:source
+ #+(origin
+ (method url-fetch)
+ (uri
+ (string-append
+ "mirror://gnu/mit-scheme/stable.pkg/" version
+ "/mit-scheme-"
+ (cond
+ ((target-x86-64?)
+ (string-append version "-x86-64"))
+ ((target-aarch64?)
+ (string-append version "-aarch64le"))
+ (else
+ ;; XXX: According to the manual, it should exist, but
+ ;; seems dropped/forgotten starting from version 10.1.
+ (string-append "c-" version)))
+ ".tar.gz"))
+ (sha256
+ (cond
+ ((target-x86-64?)
+ (base32
+ "17822hs9y07vcviv2af17p3va7qh79dird49nj50bwi9rz64ia3w"))
+ ((target-aarch64?)
+ (base32
+ "11maixldk20wqb5js5p4imq221zz9nf27649v9pqkdf8fv7rnrs9"))
+ (else
+ (base32 "\
+aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))))))
+ ;; Delete these dangling symlinks since they break
+ ;; `patch-shebangs'.
+ (for-each delete-file (find-files "src/compiler" "^make\\."))
+ (chdir "src")))
+ (add-after 'unpack 'patch-/bin/sh
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((sh (search-input-file inputs "bin/sh")))
+ (setenv "CONFIG_SHELL" sh)
+ (substitute* '("../tests/ffi/autogen.sh"
+ "../tests/ffi/autobuild.sh"
+ "../tests/ffi/test-ffi.sh"
+ "../tests/runtime/test-process.scm"
+ "runtime/unxprm.scm")
+ (("/bin/sh")
+ sh)
+ (("\\./autogen\\.sh")
+ (string-append sh " autogen.sh"))
+ (("\\./configure")
+ (string-append sh " configure"))))))
+ ;; disable array-parameter warnings that become errors while
+ ;; compiling microcode target
+ (add-before 'configure 'set-flags
+ (lambda* (#:key inputs #:allow-other-keys)
+ (setenv "CFLAGS" "-Wno-array-parameter")
+ (setenv "CPPFLAGS" "-Wno-array-parameter")))
+ (replace 'build
+ (lambda* (#:key system #:allow-other-keys)
+ (if (or (string-prefix? "x86_64" system)
+ (string-prefix? "i686" system))
+ (invoke "make" "compile-microcode")
+ (invoke "./etc/make-liarc.sh"
+ (string-append "--prefix=" #$output)))))
+ (add-after 'configure 'configure-doc
+ (lambda* (#:key inputs #:allow-other-keys)
+ (with-directory-excursion "../doc"
+ (let* ((sh (search-input-file inputs "bin/sh")))
+ (invoke sh "./configure"
+ (string-append "--prefix=" #$output)
+ (string-append "SHELL=" sh))))))
+ (add-after 'build 'build-doc
+ (lambda* _
+ (with-directory-excursion "../doc"
+ (invoke "make"))))
+ (add-after 'install 'install-doc
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let* ((doc (assoc-ref outputs "doc"))
+ (old-doc-dir (string-append #$output "/share/doc"))
+ (new-doc/mit-scheme-dir (string-append doc "/share/doc/"
+ #$name "-"
+ #$version)))
+ (with-directory-excursion "../doc"
+ (for-each (lambda (target)
+ (invoke "make" target))
+ '("install-info-gz" "install-man" "install-html"
+ "install-pdf")))
+ (mkdir-p new-doc/mit-scheme-dir)
+ (copy-recursively (string-append old-doc-dir "/" #$name)
+ new-doc/mit-scheme-dir)
+ (delete-file-recursively old-doc-dir)))))))
(native-inputs
- `(;; Autoconf, Automake, and Libtool are necessary for the FFI tests.
- ("autoconf" ,autoconf)
- ("automake" ,automake)
- ("libtool" ,libtool)
- ("texlive" ,(texlive-local-tree
- (list texlive-epsf
- texlive-texinfo)))
- ("texinfo" ,texinfo)
- ("ghostscript" ,ghostscript)
- ("m4" ,m4)))
- (inputs
- `(("libx11" ,libx11)
- ("ncurses" ,ncurses)
-
- ("source"
-
- ;; MIT/GNU Scheme is not bootstrappable, so it's recommended to
- ;; compile from the architecture-specific tarballs, which contain
- ;; pre-built binaries. It leads to more efficient code than when
- ;; building the tarball that contains generated C code instead of
- ;; those binaries.
- ,(origin
- (method url-fetch)
- (uri (string-append "mirror://gnu/mit-scheme/stable.pkg/"
- version "/mit-scheme-"
- (match (%current-system)
- ("x86_64-linux"
- (string-append version "-x86-64"))
- ("aarch64-linux"
- (string-append version "-aarch64le"))
- (_
- (string-append "c-" version)))
- ".tar.gz"))
- (sha256
- (match (%current-system)
- ("x86_64-linux"
- (base32
- "17822hs9y07vcviv2af17p3va7qh79dird49nj50bwi9rz64ia3w"))
- ("aarch64-linux"
- (base32
- "11maixldk20wqb5js5p4imq221zz9nf27649v9pqkdf8fv7rnrs9"))
- (_
- (base32
- "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"))))))))
-
+ ;; XXX: Autoconf, Automake, and Libtool are necessary for the FFI tests.
+ (list autoconf
+ automake
+ libtool
+ (texlive-local-tree (list texlive-epsf texlive-texinfo))
+ texinfo
+ ghostscript
+ m4))
+ (inputs (list libx11 ncurses))
;; Fails to build on MIPS, see <http://bugs.gnu.org/18221>.
;; Also, the portable C version of MIT/GNU Scheme did not work in time for
;; release in version 10.1.