From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id hog6NFweT2BcSgAA0tVLHw (envelope-from ) for ; Mon, 15 Mar 2021 08:44:12 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id KMKBL1weT2A4XAAAbx9fmQ (envelope-from ) for ; Mon, 15 Mar 2021 08:44:12 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 2371C23A75 for ; Mon, 15 Mar 2021 09:44:12 +0100 (CET) Received: from localhost ([::1]:54754 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1lLipe-0003Fc-TF for larch@yhetil.org; Mon, 15 Mar 2021 04:44:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55702) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLipW-0003FN-Uz for guix-patches@gnu.org; Mon, 15 Mar 2021 04:44:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:51535) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLipW-0006dH-O9 for guix-patches@gnu.org; Mon, 15 Mar 2021 04:44:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1lLipW-0005fo-Le for guix-patches@gnu.org; Mon, 15 Mar 2021 04:44:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#47153] [PATCH] gnu: chez-scheme: simplify packaging Resent-From: Philip McGrath Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 15 Mar 2021 08:44:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 47153 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 47153@debbugs.gnu.org Cc: Philip McGrath X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.161579783021775 (code B ref -1); Mon, 15 Mar 2021 08:44:02 +0000 Received: (at submit) by debbugs.gnu.org; 15 Mar 2021 08:43:50 +0000 Received: from localhost ([127.0.0.1]:34848 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lLipD-0005ey-6e for submit@debbugs.gnu.org; Mon, 15 Mar 2021 04:43:50 -0400 Received: from lists.gnu.org ([209.51.188.17]:56346) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1lLip5-0005ei-Iq for submit@debbugs.gnu.org; Mon, 15 Mar 2021 04:43:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:55598) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1lLip5-0003EQ-BJ for guix-patches@gnu.org; Mon, 15 Mar 2021 04:43:35 -0400 Received: from mail-qk1-x735.google.com ([2607:f8b0:4864:20::735]:40427) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1lLip0-0006IC-DH for guix-patches@gnu.org; Mon, 15 Mar 2021 04:43:35 -0400 Received: by mail-qk1-x735.google.com with SMTP id l132so30865838qke.7 for ; Mon, 15 Mar 2021 01:43:29 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=philipmcgrath.com; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=mBDf/lFSq7JWzqaaI6TFrKpoZT9lbrHl6m2ZIs87YjA=; b=gM2citmBG4lL//bXRsISzNtMcbkGhxw6gicYX2xHBpy3ks+b7tGcI9AGzZjqUGj6LY q1vdo/uVBTs9tl9u8z48GC9Sal2ENrbHJPQco0gJhLn5M80Xo13kvcOybxeNdeUkx7m2 lZAJ5C4m8Ct/C1X5jWJkBQo9VgTkIvItSESwpcyEltj1T0iYvAwiqL7ToKdv0H3wOa+7 8Lx6xSaf2mNqol1eO+qHHkzGfJtt5q22+rB6GGbbCdBkofqovUWGeaPtEKDabYTBD8c7 BdvCIN1OJO6PDDNr8SUOl0orNeZggSEwQXs4Y0KvUl/eV1AX0aqnTk0cZCU1Bfj1ONIm TDXg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=mBDf/lFSq7JWzqaaI6TFrKpoZT9lbrHl6m2ZIs87YjA=; b=CdiB1NUaAKOVL+Ly316U3MXrNsBIuv/Yo4ZtYBF2qMiHCeiepdPZtRM6ksaLv7pq2T s5kwKNbxi8bHs0tG14HPEsJ6JVuYTbpqg0OE8um03rcITVHRYUSNpb/0yM6C6SKFHB7w v4DEes7F92Xu9oENclqH3n0W9SSeQXZC4z+k+/Sz4WQ7UIeIULIwH4HfPwAGAS88MRZt T7Ew1wTuhQI/GhFuF1PYeon7I7yXF3/am+UCZfneiAESfI2tYvUnXndJy8TID2IWBUkG PQJrn/euaL4Soi8fXPwHnsjEd6PIVTnbiOdRqMdjC6rN3vDIOgnZ8xYrp3KWYIXPOcYV fxIQ== X-Gm-Message-State: AOAM530RYRWi29pp1LRFgJXUVgYDWXgrK9x6ED/O0ukrZCCNl8yqY+8E 9jc82ByBITfwby1KHeEi0jQlZfScwb6b/JzLSZo= X-Google-Smtp-Source: ABdhPJxVBYizsgXL+9xbSSZvFP05Kz1gtUok/4IJ2at0I2k/MolF61P3ZFKf9syDxXVQRhqsG+Su3A== X-Received: by 2002:a37:6889:: with SMTP id d131mr23605613qkc.264.1615797807345; Mon, 15 Mar 2021 01:43:27 -0700 (PDT) Received: from localhost (c-73-125-89-242.hsd1.fl.comcast.net. [73.125.89.242]) by smtp.gmail.com with ESMTPSA id i125sm11988286qkd.109.2021.03.15.01.43.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 15 Mar 2021 01:43:26 -0700 (PDT) From: Philip McGrath Date: Mon, 15 Mar 2021 04:42:35 -0400 Message-Id: <20210315084235.7051-1-philip@philipmcgrath.com> X-Mailer: git-send-email 2.21.1 (Apple Git-122.3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Received-SPF: neutral client-ip=2607:f8b0:4864:20::735; envelope-from=philip@philipmcgrath.com; helo=mail-qk1-x735.google.com X-Spam_score_int: -12 X-Spam_score: -1.3 X-Spam_bar: - X-Spam_report: (-1.3 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NEUTRAL=0.779 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1615797852; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:list-id:list-help: list-unsubscribe:list-subscribe:list-post:dkim-signature; bh=mBDf/lFSq7JWzqaaI6TFrKpoZT9lbrHl6m2ZIs87YjA=; b=XnTH9sux1ZcBxqXgeMYjcUQuwTFFDU0Fz7HDJpxGDnoBWKiQu9M05zth7waPkBMO4wl5cj aybvZt1IV1OPQsfwKWJeEUhwrt4gMG40zmZIMFZBpyb+lMWHiv5m18wY0DUkYpE0kWlWZp bNwgKR7xmc7CwtEfoH4w/MlSQIZflZu9idzvSb5/YoTUiI5daSh7JCyJr7VI6a7PnOhPgk MXDQUurZUJd7J3mxm4hyUMlC7NFz3TOjS0Bus1uuq7Jg3bs0uYGa0x+aoLPfrsWlyHFAWz G0K0Nmzaz58joGy4LhG/cepz+f7I86uiniz4H7jBYUL/KYXv1qrwa+DOvGU08w== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1615797852; a=rsa-sha256; cv=none; b=jjsIkTq6NqlLTJBWWL/NIrHTfh8+lagrKqMIkb8UFKt+EPYJbGAZc7fmUoiRY0nx8pJuCD hjF+WG+iM/sd1U+6eNs1mkxXZ6py/nAXTStmOhkrh4fmbdCmI+V3FG6ntsElnycDc0BVCv 3e8t9QAnhla82gPtpJg/HAebqkJTU8LSFI9Y0zlIT3SBW7b/CFsl4b3bEgiWEkCfxTjRlz xCeQ/F0L2exCRJuLLJUm54uFHyhG8k4BEImpN+rSqSRH5/5Vxb1aC6vdJ/O6zcLOZuhq/k SERQB23d+my6A27//JozLy8jXhWhn6MsVKNPLLSyaZX/IHe7Br84oDRHp1k2sQ== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=philipmcgrath.com header.s=google header.b=gM2citmB; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Spam-Score: -0.40 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=philipmcgrath.com header.s=google header.b=gM2citmB; dmarc=none; spf=pass (aspmx1.migadu.com: domain of guix-patches-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=guix-patches-bounces@gnu.org X-Migadu-Queue-Id: 2371C23A75 X-Spam-Score: -0.40 X-Migadu-Scanner: scn0.migadu.com X-TUID: epFtfdCSxkft Take advantage of patches that have been accepted upstream. These changes lay a foundation for reusing more of Chez's build process for Racket. * gnu/packages/patches/chez-scheme-build-util-paths-backport.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. * gnu/packages/chez.scm (nanopass): Rename it to ... (nanopass-framework-scheme): ... this variable. Change it from an origin to a package. Update to 1.9.2. (stex): Rename it to ... (chez-stex): ... this variable. Change it from an origin to a hidden package. Update to commit 5405149, which helps us install it. (chez-scheme)[source](patches): Use it. [source](snippet): Remove bundled libraries here, not during 'configure' phase. Also remove irrelevant bootfiles. [inputs]: Organize. Move "nanopass" and "stex" to ... [native-inputs]: ... this field. [outputs]: Add "stex". [arguments]: Remove #:configure-flags which were ignored. Add (ice-9 ftw) to #:modules. Remove unneeded 'patch-processor-detection' phase. Add 'link-nanopass+stex' phase (refactored from 'configure'). Simplify 'configure' phase by removing patches that have been upstreamed. Detect when "--disable-curses" or "--disable-x11" flags are needed. Add "--nogzip-man-pages" flag so we can remove 'make-manpages-writable' phase. Refactor 'install-doc' phase into 'build+install-stex' and 'build+install-doc' --- gnu/local.mk | 1 + gnu/packages/chez.scm | 370 ++++++--- ...hez-scheme-build-util-paths-backport.patch | 780 ++++++++++++++++++ 3 files changed, 1030 insertions(+), 121 deletions(-) create mode 100644 gnu/packages/patches/chez-scheme-build-util-paths-backport.patch diff --git a/gnu/local.mk b/gnu/local.mk index 0954158d4c..96de2e108e 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -879,6 +879,7 @@ dist_patch_DATA = \ %D%/packages/patches/cdparanoia-fpic.patch \ %D%/packages/patches/cdrtools-3.01-mkisofs-isoinfo.patch \ %D%/packages/patches/ceph-disable-cpu-optimizations.patch \ + %D%/packages/patches/chez-scheme-build-util-paths-backport.patch \ %D%/packages/patches/chmlib-inttypes.patch \ %D%/packages/patches/cl-asdf-config-directories.patch \ %D%/packages/patches/clamav-config-llvm-libs.patch \ diff --git a/gnu/packages/chez.scm b/gnu/packages/chez.scm index eac556c4d0..e1e94bc90c 100644 --- a/gnu/packages/chez.scm +++ b/gnu/packages/chez.scm @@ -4,6 +4,7 @@ ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2020 Brendan Tildesley +;;; Copyright © 2021 Philip McGrath ;;; ;;; This file is part of GNU Guix. ;;; @@ -30,6 +31,7 @@ #:use-module (guix git-download) #:use-module (guix utils) #:use-module (guix build-system gnu) + #:use-module (guix gexp) #:use-module (gnu packages compression) #:use-module (gnu packages ncurses) #:use-module (gnu packages ghostscript) @@ -42,25 +44,103 @@ #:use-module (ice-9 match) #:use-module (srfi srfi-1)) -(define nanopass - (let ((version "1.9.1")) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/nanopass/nanopass-framework-scheme") - (commit (string-append "v" version)))) - (sha256 (base32 "1synadgaycca39jfx525975ss9y0lkl516sdrc62wrrllamm8n21")) - (file-name (git-file-name "nanopass" version))))) +;; Nanopass will be used by Racket and could be used by +;; any of the supported Scheme implementations. +;; Making it a package lets us do the unpacking +;; and patching steps just once. +(define-public nanopass-framework-scheme + (let ((version "1.9.2")) + (package + (name "nanopass-framework-scheme") + (version version) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/nanopass/nanopass-framework-scheme") + (commit (string-append "v" version)))) + (sha256 "16vjsik9rrzbabbhbxbaha51ppi3f9n8rk59pc6zdyffs0vziy4i") + (file-name (git-file-name "nanopass" version)))) + (home-page "https://nanopass.org") + (synopsis + "Embeded domain-specific language for writing compiler passes") + (description + "The Nanopass Framework is an embedded domain-specific language +for creating compilers that focuses on creating small passes and many +intermediate representations. Nanopass reduces the boilerplate required to +create compilers, making them easier to understand and maintain. + +This package contains the R6RS source distribution, which is known to work with +Chez Scheme, Vicare Scheme, and Ikarus Scheme.") + (license (list expat)) + (build-system gnu-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (delete 'bootstrap) + (delete 'patch-usr-bin-file) + (delete 'configure) + (delete 'patch-generated-file-shebangs) + (delete 'build) + (delete 'check) + (replace 'install + (lambda* (#:key outputs #:allow-other-keys) + (copy-recursively "." (assoc-ref outputs "out")) + #t)) + (delete 'patch-shebangs) + (delete 'strip) + (delete 'validate-runpath) + (delete 'validate-documentation-location) + (delete 'delete-info-dir-file) + (delete 'patch-dot-desktop-files) + (delete 'install-license-files) + (delete 'reset-gzip-timestamps) + (delete 'compress-documentation))))))) + + +(define chez-stex + ;; Hidden because of a circular dependency issue: + ;; stex needs chez-scheme to be used, but chez-scheme uses + ;; stex to build its documentation. + ;; The chez-scheme package has an stex output that exposes + ;; the useful version of this---or maybe there's a more elegant solution? + (hidden-package + (let ((version "1.2.2") + ;; This commit includes a fix for which we would + ;; otherwise want to use a snippet. + ;; When there's a new tagged release, + ;; go back to using (string-append "v" version) + (commit "54051494434a197772bf6ca5b4e6cf6be55f39a5") + (revision "1")) ;Guix package revision + (package + (inherit nanopass-framework-scheme) + (name "chez-stex") + (version (git-version version revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/dybvig/stex") + (commit commit))) + (sha256 "01jnvw8qw33gnpzwrakwhsr05h6b609lm180jnspcrb7lds2p23d") + (file-name (git-file-name "stex" version)))) + (home-page "https://github.com/dybvig/stex") + (synopsis + "Tools for including Scheme in LaTeX and converting to HTML") + (description + "The @dfn{stex} package consists of two main programs and some +supporting items, such as make files, make-file templates, class files, +and style files. The two main programs are @command{scheme-prep} and +@command{html-prep}. @command{scheme-prep} performs a conversion from +stex-formatted files into LaTeX-formatted files, while @command{html-prep} +converts (some) LaTeX-formatted files into html-formatted files. + +An stex file is really just a LaTeX file extended with a handful of commands +for including Scheme code (or pretty much any other kind of code, as long as +you don't plan to use the Scheme-specific transcript support) in a document, +plus a couple of additional features rather arbitrarily thrown in.") + (license (list expat)))))) -(define stex - (let ((version "1.2.2")) - (origin - (method git-fetch) - (uri (git-reference - (url "https://github.com/dybvig/stex") - (commit (string-append "v" version)))) - (sha256 (base32 "1q5i8pf4cdfjsj6r2k1rih7ljbfggyxdng2p2fvsgarzihpsin2i")) - (file-name (git-file-name "stex" version))))) (define-public chez-scheme (package @@ -74,21 +154,49 @@ (commit (string-append "v" version)))) (sha256 (base32 "0prgn2z9l888j93ydxaf04ph424g0fi3a8w7f8m0b2r7fr1v7388")) - (file-name (git-file-name name version)))) + (file-name (git-file-name name version)) + (patches + (search-patches + ;; backported from upstream: remove on next release + "chez-scheme-build-util-paths-backport.patch")) + (snippet + ;; remove bundled libraries + (with-imported-modules '((guix build utils)) + #~(begin + (use-modules (guix build utils)) + (for-each (lambda (dir) + (when (directory-exists? dir) + (delete-file-recursively dir))) + '("stex" + "nanopass" + "lz4" + "zlib" + ;; pre-built bootfiles for unsupported systems: + "boot/a6nt" + "boot/a6osx" + "boot/i3nt" + "boot/i3osx" + "boot/ta6nt" + "boot/ta6osx" + "boot/ti3nt" + "boot/ti3osx"))))))) (build-system gnu-build-system) (inputs - `(("ncurses" ,ncurses) - ("libuuid" ,util-linux "lib") - ("libx11" ,libx11) - ("lz4" ,lz4) - ("lz4:static" ,lz4 "static") - ("xorg-rgb" ,xorg-rgb) - ("nanopass" ,nanopass) + `(("libuuid" ,util-linux "lib") ("zlib" ,zlib) ("zlib:static" ,zlib "static") - ("stex" ,stex))) + ("lz4" ,lz4) + ("lz4:static" ,lz4 "static") + ;; for expeditor: + ("ncurses" ,ncurses) + ;; for X: + ("libx11" ,libx11) + ("xorg-rgb" ,xorg-rgb))) (native-inputs - `(("texlive" ,(texlive-union (list texlive-latex-oberdiek + `(("nanopass" ,nanopass-framework-scheme) ; source-only distribution + ;; for docs + ("stex" ,chez-stex) + ("texlive" ,(texlive-union (list texlive-latex-oberdiek texlive-generic-epsf))) ("ghostscript" ,ghostscript) ("netpbm" ,netpbm))) @@ -96,98 +204,63 @@ (list (search-path-specification (variable "CHEZSCHEMELIBDIRS") (files (list (string-append "lib/csv" version "-site")))))) - (outputs '("out" "doc")) + (outputs '("out" "stex" "doc")) (arguments - `(#:modules ((guix build gnu-build-system) - (guix build utils) - (ice-9 match)) + `(#:modules + ((guix build gnu-build-system) + (guix build utils) + (ice-9 ftw) + (ice-9 match)) #:test-target "test" - #:configure-flags - (list ,(match (or (%current-target-system) (%current-system)) - ("x86_64-linux" '(list "--machine=ta6le")) - ("i686-linux" '(list "--machine=ti3le")) - ;; Let autodetection have its attempt on other architectures. - (_ - '()))) #:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-processor-detection - (lambda _ (substitute* "configure" - (("uname -a") "uname -m")) - #t)) - ;; Adapt the custom 'configure' script. + ;; put these where configure expects them to be + (add-after 'unpack 'link-nanopass+stex + (lambda* (#:key native-inputs inputs #:allow-other-keys) + (symlink (assoc-ref (or native-inputs inputs) "nanopass") + "nanopass") + (let ((stex-src (assoc-ref (or native-inputs inputs) "stex"))) + ;; making stex wants to create a build directory, + ;; so the immediate directory must be writable + (mkdir "stex") + (with-directory-excursion "stex" + (for-each (lambda (pth) + (unless (member pth '("." "..")) + (symlink (string-append stex-src "/" pth) + pth))) + (scandir stex-src)))) + #t)) + ;; NOTE: the custom Chez 'configure' script doesn't allow + ;; unrecognized flags, such as those automatically added + ;; by `gnu-build-system`. (replace 'configure (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((out (assoc-ref outputs "out")) - (nanopass (assoc-ref inputs "nanopass")) - (stex (assoc-ref inputs "stex")) - (lz4-static (assoc-ref inputs "lz4:static")) - (zlib-static (assoc-ref inputs "zlib:static")) - (unpack (assoc-ref %standard-phases 'unpack)) - (patch-source-shebangs - (assoc-ref %standard-phases 'patch-source-shebangs))) - (map (match-lambda - ((src orig-name new-name) - (with-directory-excursion "." - (apply unpack (list #:source src)) - (apply patch-source-shebangs (list #:source src))) - (delete-file-recursively new-name) - (invoke "mv" orig-name new-name))) - `((,nanopass "source" "nanopass") - (,stex "source" "stex"))) - ;; The configure step wants to CURL all submodules as it - ;; detects a checkout without submodules. Disable curling, - ;; and manually patch the needed modules for compilation. - (substitute* "configure" - (("! -f '") "-d '")) ; working around CURL. - (substitute* (find-files "mats" "Mf-.*") - (("^[[:space:]]+(cc ) *") "\tgcc ")) - (substitute* - (find-files "." (string-append - "(" - "Mf-[a-zA-Z0-9.]+" - "|Makefile[a-zA-Z0-9.]*" - "|checkin" - "|stex\\.stex" - "|newrelease" - "|workarea" - "|unix\\.ms" - "|^6\\.ms" - ;;"|[a-zA-Z0-9.]+\\.ms" ; guile can't read - ")")) - (("/bin/rm") (which "rm")) - (("/bin/ln") (which "ln")) - (("/bin/cp") (which "cp")) - (("/bin/echo") (which "echo"))) - (substitute* "makefiles/installsh" - (("/bin/true") (which "true"))) - (substitute* "stex/Makefile" - (("PREFIX=/usr") (string-append "PREFIX=" out))) - (invoke "./configure" "--threads" - (string-append "ZLIB=" zlib-static "/lib/libz.a") - (string-append "LZ4=" lz4-static "/lib/liblz4.a") - (string-append "--installprefix=" out))))) - ;; Installation of the documentation requires a running "chez". - (add-after 'install 'install-doc - (lambda* (#:key inputs outputs #:allow-other-keys) - (let ((doc (string-append (assoc-ref outputs "doc") - "/share/doc/" ,name "-" ,version))) - (invoke "make" "docs") - (with-directory-excursion "csug" - (substitute* "Makefile" - ;; The ‘installdir=’ can't be overruled on the command line. - (("/tmp/csug9") doc) - ;; $m is the ‘machine type’, e.g. ‘ta6le’ on x86_64, but is - ;; set incorrectly for some reason, e.g. to ‘a6le’ on x86_64. - ;; Avoid the whole mess by running the (machine-independent) - ;; ‘installsh’ script at its original location. - (("\\$m/installsh") "makefiles/installsh")) - (invoke "make" "install") - (install-file "csug.pdf" doc)) - (with-directory-excursion "release_notes" - (install-file "release_notes.pdf" doc)) + (let* ((zlib-static (assoc-ref inputs "zlib:static")) + (lz4-static (assoc-ref inputs "lz4:static")) + (out (assoc-ref outputs "out")) + (flags (list + (string-append "--installprefix=" out) + (string-append "ZLIB=" zlib-static "/lib/libz.a") + (string-append "LZ4=" lz4-static "/lib/liblz4.a") + "--nogzip-man-pages" ;; guix will do it + "--threads")) + (flags (if (assoc-ref inputs "ncurses") + flags + (cons "--disable-curses" + flags))) + (flags (if (and (assoc-ref inputs "libx11") + (assoc-ref inputs "xorg-rgb")) + flags + (cons "--disable-x11" + flags)))) + ;; Some makefiles (for tests) don't seem to propagate CC + ;; properly, so we take it out of their hands: + (setenv "CC" "gcc") + (apply invoke + "./configure" + flags) #t))) - ;; The binary file name is called "scheme" as the one from MIT/GNU + ;; The binary file name is called "scheme" as is the one from MIT/GNU ;; Scheme. We add a symlink to use in case both are installed. (add-after 'install 'install-symlink (lambda* (#:key outputs #:allow-other-keys) @@ -202,16 +275,70 @@ "/" name ".boot"))) (find-files lib "scheme.boot")) #t))) - (add-before 'reset-gzip-timestamps 'make-manpages-writable - (lambda* (#:key outputs #:allow-other-keys) - (map (lambda (file) - (make-file-writable file)) - (find-files (string-append (assoc-ref outputs "out") - "/share/man") - ".*\\.gz$")) - #t))))) + ;; We build & install stex so it can (in principle) + ;; be reused for other documents. + (add-after 'install-symlink 'build+install-stex + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let* ((stex+version + (strip-store-file-name + (assoc-ref (or native-inputs inputs) "stex"))) + (stex-output (assoc-ref outputs "stex")) + (doc-dir (string-append stex-output + "/share/doc/" + stex+version))) + (with-directory-excursion "stex" + (invoke "make" + "install" + (string-append "LIB=" + stex-output + "/lib/" + stex+version) + (string-append "Scheme=" + (assoc-ref outputs "out") + "/bin/scheme")) + (for-each (lambda (pth) + (install-file pth doc-dir)) + '("ReadMe" ; includes the license + "doc/stex.html" + "doc/stex.css" + "doc/stex.pdf")) + #t)))) + ;; Building the documentation requires stex and a running scheme. + ;; FIXME: this may be wrong for cross-compilation + (add-after 'build+install-stex 'build+install-doc + (lambda* (#:key native-inputs inputs outputs #:allow-other-keys) + (let* ((chez+version (strip-store-file-name + (assoc-ref outputs "out"))) + (stex+version + (strip-store-file-name + (assoc-ref (or native-inputs inputs) "stex"))) + (scheme (string-append (assoc-ref outputs "out") + "/bin/scheme")) + (stexlib (string-append (assoc-ref outputs "stex") + "/lib/" + stex+version)) + (doc-dir (string-append (assoc-ref outputs "doc") + "/share/doc/" + chez+version))) + (define* (stex-make #:optional (suffix "")) + (invoke "make" + "install" + (string-append "Scheme=" scheme) + (string-append "STEXLIB=" stexlib) + (string-append "installdir=" doc-dir suffix))) + (with-directory-excursion "csug" + (stex-make "/csug")) + (with-directory-excursion "release_notes" + (stex-make "/release_notes")) + (with-directory-excursion doc-dir + (symlink "release_notes/release_notes.pdf" + "release_notes.pdf") + (symlink "csug/csug9_5.pdf" + "csug.pdf")) + #t)))))) ;; According to the documentation MIPS is not supported. ;; Cross-compiling for the Raspberry Pi is supported, but not native ARM. + ;; TODO is this correct? Chez has an arm32le machine type. (supported-systems (fold delete %supported-systems '("mips64el-linux" "armhf-linux"))) (home-page "https://cisco.github.io/ChezScheme/") @@ -223,6 +350,7 @@ generates native code for each target processor, with support for x86, x86_64, and 32-bit PowerPC architectures.") (license asl2.0))) + (define-public chez-srfi (package (name "chez-srfi") diff --git a/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch b/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch new file mode 100644 index 0000000000..07d65225ed --- /dev/null +++ b/gnu/packages/patches/chez-scheme-build-util-paths-backport.patch @@ -0,0 +1,780 @@ +From 2447e047b750c3371778beb487f881641a582e66 Mon Sep 17 00:00:00 2001 +From: Philip McGrath +Date: Thu, 11 Mar 2021 18:17:47 -0500 +Subject: [PATCH] avoid hard-coded paths for utilities in build scripts + +Backported from +https://github.com/cisco/ChezScheme/commit/8f4633ce24ac6425b2ab13cc78026b1c9bb5361e + +Specific changes: + - `cc` -> `$(CC)` + - `/bin/rm` -> `rm` + - `/bin/ln` -> `ln` + - `/bin/cp` -> `cp` + - `/bin/echo` -> `echo` + - in `makefiles/installsh`, add a case to find `true` + at an unusual path or as a shell builtin + +Co-authored-by: Andy Keep +--- + LOG | 12 ++++++++++++ + csug/gifs/Makefile | 8 ++++---- + csug/math/Makefile | 4 ++-- + examples/Makefile | 2 +- + makefiles/Makefile-csug.in | 6 +++--- + makefiles/Makefile-release_notes.in | 2 +- + makefiles/Mf-install.in | 4 ++-- + makefiles/installsh | 3 ++- + mats/6.ms | 2 +- + mats/Mf-a6fb | 4 ++-- + mats/Mf-a6le | 4 ++-- + mats/Mf-a6nb | 4 ++-- + mats/Mf-a6ob | 4 ++-- + mats/Mf-a6osx | 4 ++-- + mats/Mf-arm32le | 4 ++-- + mats/Mf-i3fb | 4 ++-- + mats/Mf-i3le | 4 ++-- + mats/Mf-i3nb | 4 ++-- + mats/Mf-i3ob | 4 ++-- + mats/Mf-i3osx | 4 ++-- + mats/Mf-i3qnx | 4 ++-- + mats/Mf-ppc32le | 4 ++-- + mats/Mf-ta6fb | 4 ++-- + mats/Mf-ta6le | 4 ++-- + mats/Mf-ta6nb | 4 ++-- + mats/Mf-ta6ob | 4 ++-- + mats/Mf-ta6osx | 4 ++-- + mats/Mf-ti3fb | 4 ++-- + mats/Mf-ti3le | 4 ++-- + mats/Mf-ti3nb | 4 ++-- + mats/Mf-ti3ob | 4 ++-- + mats/Mf-ti3osx | 4 ++-- + mats/Mf-tppc32le | 4 ++-- + mats/unix.ms | 4 ++-- + newrelease | 22 +++++++++++----------- + pkg/Makefile | 2 +- + release_notes/gifs/Makefile | 6 +++--- + release_notes/math/Makefile | 4 ++-- + s/Mf-base | 2 +- + workarea | 10 +++++----- + 40 files changed, 101 insertions(+), 88 deletions(-) + +diff --git a/LOG b/LOG +index e1631df..399104d 100644 +--- a/LOG ++++ b/LOG +@@ -2119,3 +2119,15 @@ + bintar/Makefile rpm/Makefile pkg/Makefile wininstall/Makefile + wininstall/a6nt.wxs wininstall/i3nt.wxs wininstall/ta6nt.wxs + wininstall/ti3nt.wxs ++9.5.5 changes: ++- avoid hard-coded paths for utilities in build scripts ++ checkin csug/gifs/Makefile csug/math/Makefile examples/Makefile ++ makefiles/Makefile-csug.in makefiles/Makefile-release_notes.in ++ makefiles/Mf-install.in makefiles/installsh mats/6.ms mats/Mf-a6fb ++ mats/Mf-a6le mats/Mf-a6nb mats/Mf-a6ob mats/Mf-a6osx mats/Mf-arm32le ++ mats/Mf-i3fb mats/Mf-i3le mats/Mf-i3nb mats/Mf-i3ob mats/Mf-i3osx ++ mats/Mf-i3qnx mats/Mf-ppc32le mats/Mf-ta6fb mats/Mf-ta6le mats/Mf-ta6nb ++ mats/Mf-ta6ob mats/Mf-ta6osx mats/Mf-ti3fb mats/Mf-ti3le mats/Mf-ti3nb ++ mats/Mf-ti3ob mats/Mf-ti3osx mats/Mf-tppc32le mats/unix.ms newrelease ++ pkg/Makefile release_notes/gifs/Makefile release_notes/math/Makefile ++ s/Mf-base workarea +diff --git a/csug/gifs/Makefile b/csug/gifs/Makefile +index 8676e4c..4253ffd 100644 +--- a/csug/gifs/Makefile ++++ b/csug/gifs/Makefile +@@ -18,7 +18,7 @@ density=-r90x90 + ${density} - |\ + pnmcrop |\ + ppmtogif -transparent white > $*.gif +- /bin/rm -f $*.dvi $*.log *.aux ++ rm -f $*.dvi $*.log *.aux + test -f $*.gif && chmod 644 $*.gif + + # translate ps file to gif w/o transparent white background +@@ -28,7 +28,7 @@ density=-r90x90 + ${density} - |\ + pnmcrop |\ + ppmtogif > $*.gif +- /bin/rm -f $*.dvi $*.log *.aux ++ rm -f $*.dvi $*.log *.aux + test -f $*.gif && chmod 644 $*.gif + + all: ${gifs} +@@ -57,7 +57,7 @@ ghostRightarrow.gif: Rightarrow.tex + giftrans -g '#000000=#ffffff' |\ + giftopnm |\ + ppmtogif -transparent white > $*.gif +- /bin/rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux ++ rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux + test -f $*.gif && chmod 644 $*.gif + +-clean: ; /bin/rm -f *.gif Make.out ++clean: ; rm -f *.gif Make.out +diff --git a/csug/math/Makefile b/csug/math/Makefile +index 3385fdb..3392ea8 100644 +--- a/csug/math/Makefile ++++ b/csug/math/Makefile +@@ -15,11 +15,11 @@ density=-r90x90 + ${density} - |\ + pnmcrop |\ + ppmtogif -transparent white > $*.gif +- /bin/rm -f $*.dvi $*.log $*.aux ++ rm -f $*.dvi $*.log $*.aux + test -f $*.gif && chmod 644 $*.gif + + all: ${gifs} + + ${gifs}: mathmacros + +-clean: ; /bin/rm -f *.gif Make.out ++clean: ; rm -f *.gif Make.out +diff --git a/examples/Makefile b/examples/Makefile +index b1b4e1d..3edfdd0 100644 +--- a/examples/Makefile ++++ b/examples/Makefile +@@ -25,4 +25,4 @@ needed: ${obj} + + all: ; echo "(time (for-each compile-file (map symbol->string '(${src}))))" | ${Scheme} + +-clean: ; /bin/rm -f $(obj) expr.md ++clean: ; rm -f $(obj) expr.md +diff --git a/makefiles/Makefile-csug.in b/makefiles/Makefile-csug.in +index df24092..6f8a8d9 100644 +--- a/makefiles/Makefile-csug.in ++++ b/makefiles/Makefile-csug.in +@@ -29,7 +29,7 @@ install: target + # thrice is not enough when starting from scratch + logcheck1: $(x).thirdrun + @if [ -n "`grep 'Warning: Label(s) may have changed' $(x).log`" ] ; then\ +- /bin/rm -f $(x).thirdrun ;\ ++ rm -f $(x).thirdrun ;\ + $(MAKE) $(x).thirdrun;\ + fi + +@@ -55,7 +55,7 @@ stexsrc = csug.stex title.stex copyright.stex contents.stex\ + texsrc = ${stexsrc:%.stex=%.tex} + + title.tex contents.tex bibliography.tex: +- /bin/rm -f $*.tex ++ rm -f $*.tex + echo "%%% DO NOT EDIT THIS FILE" > $*.tex + echo "%%% Edit the .stex version instead" >> $*.tex + echo "" >> $*.tex +@@ -147,7 +147,7 @@ code: $(stexsrc) + echo '(load "code" pretty-print)' | $(Scheme) -q + + $(x).clean: +- -/bin/rm -f $(x).rfm $(x).sfm $(x).prefirstrun $(x).presecondrun\ ++ -rm -f $(x).rfm $(x).sfm $(x).prefirstrun $(x).presecondrun\ + $(x).prethirdrun $(x).ans\ + $(x).hprefirstrun $(x).hpresecondrun $(x).hprethirdrun\ + tspl.aux tspl.haux tspl.rfm tspl.idx in.hidx\ +diff --git a/makefiles/Makefile-release_notes.in b/makefiles/Makefile-release_notes.in +index 4435b6f..64348a4 100644 +--- a/makefiles/Makefile-release_notes.in ++++ b/makefiles/Makefile-release_notes.in +@@ -38,7 +38,7 @@ install: $x.pdf $x.html + $(INSTALL) -m 2755 -d $(installdir)/gifs + $(INSTALL) -m 0644 --ifdiff gifs/*.gif $(installdir)/gifs + $(INSTALL) -m 2755 -d $(installdir)/math +- -/bin/rm -rf $(installdir)/$(mathdir) ++ -rm -rf $(installdir)/$(mathdir) + $(INSTALL) -m 2755 -d $(installdir)/$(mathdir) + if [ -e $(mathdir)/0.gif ] ; then $(INSTALL) -m 0644 $(mathdir)/*.gif $(installdir)/$(mathdir) ; fi + +diff --git a/makefiles/Mf-install.in b/makefiles/Mf-install.in +index a702c34..c09043d 100644 +--- a/makefiles/Mf-install.in ++++ b/makefiles/Mf-install.in +@@ -114,12 +114,12 @@ bininstall: ${Bin} + libbininstall: ${LibBin} + $I -m 444 ${PetiteBoot} ${LibBin}/petite.boot + if [ "${InstallPetiteName}" != "petite" ]; then\ +- /bin/rm -f ${LibBin}/${InstallPetiteName}.boot;\ ++ rm -f ${LibBin}/${InstallPetiteName}.boot;\ + ln -f ${LibBin}/petite.boot ${LibBin}/${InstallPetiteName}.boot;\ + fi + $I -m 444 ${SchemeBoot} ${LibBin}/scheme.boot;\ + if [ "${InstallSchemeName}" != "scheme" ]; then\ +- /bin/rm -f ${LibBin}/${InstallSchemeName}.boot;\ ++ rm -f ${LibBin}/${InstallSchemeName}.boot;\ + ln -f ${LibBin}/scheme.boot ${LibBin}/${InstallSchemeName}.boot;\ + fi + ln -f ${LibBin}/scheme.boot ${LibBin}/${InstallScriptName}.boot; +diff --git a/makefiles/installsh b/makefiles/installsh +index 48f1e46..95d85fb 100755 +--- a/makefiles/installsh ++++ b/makefiles/installsh +@@ -1,7 +1,8 @@ + #! /bin/sh + if [ -x /bin/true ]; then TRUE=/bin/true; + elif [ -x /usr/bin/true ]; then TRUE=/usr/bin/true; +-else echo "Can't find /bin/true or /usr/bin/true" ; exit 1; ++elif command -v true &> /dev/null; then TRUE=true; ++else echo "Can't find /bin/true or /usr/bin/true and no true command" ; exit 1; + fi + + while ${TRUE} ; do +diff --git a/mats/6.ms b/mats/6.ms +index 102f84b..e504230 100644 +--- a/mats/6.ms ++++ b/mats/6.ms +@@ -2685,7 +2685,7 @@ + (begin + (system "ln -s ../examples .") + (load "examples/fatfib.ss" compile) +- (system "/bin/rm examples") ++ (system "rm -f examples") + #t)) + (or (windows?) (embedded?) + (equal? +diff --git a/mats/Mf-a6fb b/mats/Mf-a6fb +index b16d1b6..ff9e687 100644 +--- a/mats/Mf-a6fb ++++ b/mats/Mf-a6fb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-a6le b/mats/Mf-a6le +index d6fee09..a3bda76 100644 +--- a/mats/Mf-a6le ++++ b/mats/Mf-a6le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m64 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m64 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-a6nb b/mats/Mf-a6nb +index 48187ef..0f7ac17 100644 +--- a/mats/Mf-a6nb ++++ b/mats/Mf-a6nb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-a6ob b/mats/Mf-a6ob +index 12758f3..0ffcccc 100644 +--- a/mats/Mf-a6ob ++++ b/mats/Mf-a6ob +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-a6osx b/mats/Mf-a6osx +index f1dbf85..57bac22 100644 +--- a/mats/Mf-a6osx ++++ b/mats/Mf-a6osx +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m64 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m64 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-arm32le b/mats/Mf-arm32le +index f33a665..83896eb 100644 +--- a/mats/Mf-arm32le ++++ b/mats/Mf-arm32le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -fomit-frame-pointer -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -fomit-frame-pointer -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-i3fb b/mats/Mf-i3fb +index 150cedb..1e4e8fc 100644 +--- a/mats/Mf-i3fb ++++ b/mats/Mf-i3fb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-i3le b/mats/Mf-i3le +index 8f521c8..b248620 100644 +--- a/mats/Mf-i3le ++++ b/mats/Mf-i3le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-i3nb b/mats/Mf-i3nb +index e81f6ff..8afeb5c 100644 +--- a/mats/Mf-i3nb ++++ b/mats/Mf-i3nb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-i3ob b/mats/Mf-i3ob +index 4e3ee1b..fcd4dee 100644 +--- a/mats/Mf-i3ob ++++ b/mats/Mf-i3ob +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-i3osx b/mats/Mf-i3osx +index 53c7d4a..a55f6ee 100644 +--- a/mats/Mf-i3osx ++++ b/mats/Mf-i3osx +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-i3qnx b/mats/Mf-i3qnx +index 724f2db..3e1437a 100644 +--- a/mats/Mf-i3qnx ++++ b/mats/Mf-i3qnx +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ppc32le b/mats/Mf-ppc32le +index 28151a8..547ca00 100644 +--- a/mats/Mf-ppc32le ++++ b/mats/Mf-ppc32le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ta6fb b/mats/Mf-ta6fb +index 921d609..5ed233e 100644 +--- a/mats/Mf-ta6fb ++++ b/mats/Mf-ta6fb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ta6le b/mats/Mf-ta6le +index cd014ec..21c686a 100644 +--- a/mats/Mf-ta6le ++++ b/mats/Mf-ta6le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m64 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m64 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ta6nb b/mats/Mf-ta6nb +index 6b1929d..9b9b898 100644 +--- a/mats/Mf-ta6nb ++++ b/mats/Mf-ta6nb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ta6ob b/mats/Mf-ta6ob +index a7aee91..8f25aed 100644 +--- a/mats/Mf-ta6ob ++++ b/mats/Mf-ta6ob +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ta6osx b/mats/Mf-ta6osx +index 42da5d7..0dd386f 100644 +--- a/mats/Mf-ta6osx ++++ b/mats/Mf-ta6osx +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m64 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m64 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ti3fb b/mats/Mf-ti3fb +index c891145..56bf7d3 100644 +--- a/mats/Mf-ti3fb ++++ b/mats/Mf-ti3fb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ti3le b/mats/Mf-ti3le +index 12e77b8..22b4148 100644 +--- a/mats/Mf-ti3le ++++ b/mats/Mf-ti3le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ti3nb b/mats/Mf-ti3nb +index 028c652..573946e 100644 +--- a/mats/Mf-ti3nb ++++ b/mats/Mf-ti3nb +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ti3ob b/mats/Mf-ti3ob +index 8a4741c..4472b60 100644 +--- a/mats/Mf-ti3ob ++++ b/mats/Mf-ti3ob +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-ti3osx b/mats/Mf-ti3osx +index 6913c34..9273b44 100644 +--- a/mats/Mf-ti3osx ++++ b/mats/Mf-ti3osx +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -pthread -dynamiclib -undefined dynamic_lookup -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/Mf-tppc32le b/mats/Mf-tppc32le +index a12b515..8b9d9f0 100644 +--- a/mats/Mf-tppc32le ++++ b/mats/Mf-tppc32le +@@ -21,7 +21,7 @@ fobj = foreign1.so + include Mf-base + + foreign1.so: ${fsrc} ../boot/$m/scheme.h +- cc -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} ++ $(CC) -m32 -pthread -fPIC -shared -I${Include} -o foreign1.so ${fsrc} + + cat_flush: cat_flush.c +- cc -o cat_flush cat_flush.c ++ $(CC) -o cat_flush cat_flush.c +diff --git a/mats/unix.ms b/mats/unix.ms +index cfba3e7..db7f6f9 100644 +--- a/mats/unix.ms ++++ b/mats/unix.ms +@@ -72,8 +72,8 @@ + (mat system + (eqv? (with-output-to-file "testfile.ss" void '(replace)) (void)) + (begin +- (system (format "~:[~;/pkg~]/bin/rm testfile.ss" (embedded?))) +- (system (format "~:[~;/pkg~]/bin/echo hello > testfile.ss" (embedded?))) ++ (system "rm -f testfile.ss") ++ (system "echo hello > testfile.ss") + (let ([p (open-input-file "testfile.ss")]) + (and (eq? (read p) 'hello) + (begin (close-input-port p) #t)))) +diff --git a/newrelease b/newrelease +index e903956..2d06740 100755 +--- a/newrelease ++++ b/newrelease +@@ -75,13 +75,13 @@ if ($status != 0) exit 1 + + cd $W + +-/bin/rm -f BUILDING ++rm -f BUILDING + sed -e "s/Chez Scheme Version [^ ]*/Chez Scheme Version $R/" \ + -e "s/Copyright 1984-.... /Copyright 1984-`date +%Y` /" \ + ../BUILDING > BUILDING + set updatedfiles = ($updatedfiles BUILDING) + +-/bin/rm -f NOTICE ++rm -f NOTICE + sed -e "s/Chez Scheme Version [^ ]*/Chez Scheme Version $R/" \ + -e "s/Copyright 1984-.... /Copyright 1984-`date +%Y` /" \ + ../NOTICE > NOTICE +@@ -92,19 +92,19 @@ sed -e "s/csv[0-9]\.[0-9]\(\.[0-9]\)*/csv$R/" ../makefiles/Mf-install.in > makef + sed -e "s/csug[0-9]\.[0-9]/csug$MR.$mR/" -e "s/csug[0-9]_[0-9]/csug$MR""_$mR/" ../makefiles/Makefile-csug.in > makefiles/Makefile-csug.in + set updatedfiles = ($updatedfiles makefiles/Mf-install.in makefiles/Makefile-csug.in) + +-/bin/rm scheme.1.in ++rm -f scheme.1.in + sed -e "s/Chez Scheme Version [0-9]\.[0-9]\(\.[0-9]\)* .* [0-9][0-9]*/Chez Scheme Version $R `date +'%B %Y'`/" \ + -e "s/Copyright .* Cisco Systems, Inc./Copyright `date +%Y` Cisco Systems, Inc./" \ + ../scheme.1.in > scheme.1.in + set updatedfiles = ($updatedfiles scheme.1.in) + +-/bin/rm -f c/Makefile.{,t}{i3,a6}nt ++rm -f c/Makefile.{,t}{i3,a6}nt + foreach fn (c/Makefile.{,t}{a6,i3}nt) + set updatedfiles = ($updatedfiles $fn) + sed -e "s/csv[0-9][0-9][0-9]*/csv$ZR/g" ../$fn > $fn + end + +-/bin/rm -f mats/Mf-{,t}{i3,a6}nt ++rm -f mats/Mf-{,t}{i3,a6}nt + foreach fn (mats/Mf-{,t}{a6,i3}nt) + set updatedfiles = ($updatedfiles $fn) + sed -e "s/csv[0-9][0-9][0-9]*/csv$ZR/g" ../$fn > $fn +@@ -123,11 +123,11 @@ sed -e "s/FILEVERSION .*/FILEVERSION $RCVERSION/"\ + -e "s/Copyright 1984-..../Copyright 1984-`date +%Y`/g" ../c/scheme.rc > c/scheme.rc + set updatedfiles = ($updatedfiles c/scheme.rc) + +-/bin/rm -f s/7.ss ++rm -f s/7.ss + sed -e "s/nCopyright 1984-..../nCopyright 1984-`date +%Y`/g" ../s/7.ss > s/7.ss + set updatedfiles = ($updatedfiles s/7.ss) + +-/bin/rm -f s/cmacros.ss ++rm -f s/cmacros.ss + set VNUM = `printf "%04x%02x%02x" $MR $mR $bR` + sed -e "s/scheme-version #x......../scheme-version #x$VNUM/" ../s/cmacros.ss > s/cmacros.ss + set updatedfiles = ($updatedfiles s/cmacros.ss) +@@ -146,17 +146,17 @@ sed -e "s/Revised\(.*\)for Chez Scheme Version [^ ]*
/Revised\1for Chez Schem + ../csug/csug.stex > csug/csug.stex + set updatedfiles = ($updatedfiles csug/copyright.stex csug/csug.stex) + +-/bin/rm bintar/Makefile ++rm -f bintar/Makefile + sed -e "s/^version = .*/version = $R/" \ + -e "s/csv[0-9][0-9][0-9]*/csv$ZR/g" \ + ../bintar/Makefile > bintar/Makefile + set updatedfiles = ($updatedfiles bintar/Makefile) + +-/bin/rm rpm/Makefile ++rm -f rpm/Makefile + sed -e "s/^version = .*/version = $R/" ../rpm/Makefile > rpm/Makefile + set updatedfiles = ($updatedfiles rpm/Makefile) + +-/bin/rm pkg/Makefile ++rm -f pkg/Makefile + sed -e "s/^version = .*/version = $R/" \ + -e "s/© .* Cisco Systems/\© `date +%Y` Cisco Systems/" \ + ../pkg/Makefile > pkg/Makefile +@@ -170,7 +170,7 @@ foreach fn (wininstall/{,t}{a6,i3}nt.wxs) + sed -e "s/csv[0-9][0-9][0-9]*/csv$ZR/" ../$fn > $fn + end + +-/bin/rm LOG ++rm -f LOG + cat ../LOG > LOG + echo "" >> LOG + echo "$R changes:" >> LOG +diff --git a/pkg/Makefile b/pkg/Makefile +index e0eef67..a3fe83f 100644 +--- a/pkg/Makefile ++++ b/pkg/Makefile +@@ -39,7 +39,7 @@ $(PKG): $(BUILDROOT)/$(PKG) + --package-path $(BUILDROOT)\ + $(PKG) + sudo chown $(DOTUSER):$(DOTGROUP) $(PKG) +- sudo /bin/rm -rf $(RELEASE) $(BUILDROOT) ++ sudo rm -rf $(RELEASE) $(BUILDROOT) + + $(BUILDROOT)/$(PKG): $(PKGCONTENT) + sudo /usr/bin/pkgbuild\ +diff --git a/release_notes/gifs/Makefile b/release_notes/gifs/Makefile +index 9572965..701d53a 100644 +--- a/release_notes/gifs/Makefile ++++ b/release_notes/gifs/Makefile +@@ -15,7 +15,7 @@ density=-r90x90 + ${density} - |\ + pnmcrop |\ + ppmtogif -transparent white > $*.gif +- /bin/rm -f $*.dvi $*.log *.aux ++ rm -f $*.dvi $*.log *.aux + test -f $*.gif && chmod 644 $*.gif + + all: ${gifs} +@@ -44,7 +44,7 @@ ghostRightarrow.gif: Rightarrow.tex + giftrans -g '#000000=#ffffff' |\ + giftopnm |\ + ppmtogif -transparent white > $*.gif +- /bin/rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux ++ rm -f Rightarrow.dvi Rightarrow.log Rightarrow.aux + test -f $*.gif && chmod 644 $*.gif + +-clean: ; /bin/rm -f *.gif Make.out ++clean: ; rm -f *.gif Make.out +diff --git a/release_notes/math/Makefile b/release_notes/math/Makefile +index b3ffae3..9eca430 100644 +--- a/release_notes/math/Makefile ++++ b/release_notes/math/Makefile +@@ -16,11 +16,11 @@ density=-r90x90 + ${density} - |\ + pnmcrop |\ + ppmtogif -transparent white > $*.gif +- /bin/rm -f $*.dvi $*.log $*.aux ++ rm -f $*.dvi $*.log $*.aux + test -f $*.gif && chmod 644 $*.gif + + all: ${gifs} + + ${gifs}: mathmacros + +-clean: ; /bin/rm -f *.gif Make.out ++clean: ; rm -f *.gif Make.out +diff --git a/s/Mf-base b/s/Mf-base +index c709608..40d816c 100644 +--- a/s/Mf-base ++++ b/s/Mf-base +@@ -206,7 +206,7 @@ profiled: + $(MAKE) all loadspd=t bp=t PetiteBoot=../boot/$m/xpetite.boot SchemeBoot=../boot/$m/xscheme.boot + $(MAKE) prettyclean + $(MAKE) io.$m loadspd=t dumpbpd=t Scheme="../bin/$m/scheme -b ../boot/$m/xpetite.boot -b ../boot/$m/xscheme.boot" +- /bin/rm -f ../boot/$m/xpetite.boot ../boot/$m/xscheme.boot ++ rm -f ../boot/$m/xpetite.boot ../boot/$m/xscheme.boot + $(MAKE) prettyclean + $(MAKE) all loadspd=t loadbpd=t + +diff --git a/workarea b/workarea +index bacc712..0461919 100755 +--- a/workarea ++++ b/workarea +@@ -70,9 +70,9 @@ esac + + if [ "$OS" = "Windows_NT" ] + then +- ln="/bin/cp -R" ++ ln="cp -R" + else +- ln="/bin/ln -s" ++ ln="ln -s" + fi + + # This shell script creates a workarea for local modifications to the +@@ -102,7 +102,7 @@ workln() + forceworkln() + { + if [ ! -e $2 ] ; then +- /bin/ln -s $1 $2 2> /dev/null ++ ln -s $1 $2 2> /dev/null + fi + } + +@@ -168,13 +168,13 @@ done + # deep copy submodules where builds occur so changes don't propagate through symlinks + for dir in `echo zlib` ; do + if [ ! -e $W/$dir ] ; then +- /bin/cp -R $dir $W/$dir ++ cp -R $dir $W/$dir + fi + done + + for dir in `echo lz4` ; do + if [ ! -e $W/$dir ] ; then +- /bin/cp -R $dir $W/$dir ++ cp -R $dir $W/$dir + fi + done + +-- +2.21.1 (Apple Git-122.3) + -- 2.21.1 (Apple Git-122.3)