add catalog, source, and Mac OS X instructions to basic README
Also, include "stamp.txt" and "collects.tgz" at a build site.
This commit is contained in:
parent
8a52f8ace5
commit
aecf0e60b5
|
@ -33,7 +33,10 @@
|
||||||
(printf "Assembling site as ~a\n" dest-dir)
|
(printf "Assembling site as ~a\n" dest-dir)
|
||||||
|
|
||||||
(define (copy dir [build-dir build-dir])
|
(define (copy dir [build-dir build-dir])
|
||||||
(make-directory* dest-dir)
|
(make-directory* (let-values ([(base name dir?) (split-path dir)])
|
||||||
|
(if (path? base)
|
||||||
|
(build-path dest-dir base)
|
||||||
|
dest-dir)))
|
||||||
(printf "Copying ~a\n" (build-path build-dir dir))
|
(printf "Copying ~a\n" (build-path build-dir dir))
|
||||||
(copy-directory/files (build-path build-dir dir)
|
(copy-directory/files (build-path build-dir dir)
|
||||||
(build-path dest-dir dir)
|
(build-path dest-dir dir)
|
||||||
|
@ -104,6 +107,8 @@
|
||||||
(define pdf-doc-path (build-path build-dir pdf-doc-dir))
|
(define pdf-doc-path (build-path build-dir pdf-doc-dir))
|
||||||
(when (directory-exists? pdf-doc-path)
|
(when (directory-exists? pdf-doc-path)
|
||||||
(copy pdf-doc-dir))
|
(copy pdf-doc-dir))
|
||||||
|
(copy "stamp.txt")
|
||||||
|
(copy (build-path "origin" "collects.tgz"))
|
||||||
|
|
||||||
(make-download-page (build-path build-dir
|
(make-download-page (build-path build-dir
|
||||||
installers-dir
|
installers-dir
|
||||||
|
|
|
@ -163,7 +163,7 @@ Site-configuration keywords (where <string*> means no spaces, etc.):
|
||||||
#:readme <string-or-procedure> --- the content of a "README" file
|
#:readme <string-or-procedure> --- the content of a "README" file
|
||||||
to include in installers, or a function that takes a hash table
|
to include in installers, or a function that takes a hash table
|
||||||
for a configuration and returns a string; the default is the
|
for a configuration and returns a string; the default is the
|
||||||
`make-readme' function from `distro-build/readme'
|
`make-readme' function from `distro-build/readme' (see below)
|
||||||
|
|
||||||
#:max-vm <real> --- max number of VMs allowed to run with this
|
#:max-vm <real> --- max number of VMs allowed to run with this
|
||||||
machine, counting the machine; defaults to 1
|
machine, counting the machine; defaults to 1
|
||||||
|
@ -172,7 +172,8 @@ Site-configuration keywords (where <string*> means no spaces, etc.):
|
||||||
in the Virtual Box GUI); if provided, the virtual machine is
|
in the Virtual Box GUI); if provided, the virtual machine is
|
||||||
started and stopped on the server as needed
|
started and stopped on the server as needed
|
||||||
|
|
||||||
#:platform <symbol> --- 'windows or 'unix, defaults to 'unix
|
#:platform <symbol> --- 'windows, 'macosx, or 'unix; defaults to
|
||||||
|
`(system-type)'
|
||||||
|
|
||||||
#:configure '(<string> ...) --- arguments to `configure'
|
#:configure '(<string> ...) --- arguments to `configure'
|
||||||
|
|
||||||
|
@ -203,9 +204,11 @@ Site-configuration keywords (where <string*> means no spaces, etc.):
|
||||||
installers; the default is determined by the `RELEASE_MODE'
|
installers; the default is determined by the `RELEASE_MODE'
|
||||||
makefile variable
|
makefile variable
|
||||||
|
|
||||||
#:source? <boolean> --- if true, then create a source archive (with
|
#:source? <boolean> --- if true, then create a kernel-source archive
|
||||||
pre-build packages), instead of a platform-specific installer; the
|
(with pre-built packages), instead of a platform-specific
|
||||||
default is #f
|
installer; a #t value works best when used with a Unix client
|
||||||
|
machine, since Unix clients typically have no native-library
|
||||||
|
packages; the default is #f
|
||||||
|
|
||||||
#:site-dest <path-string> --- destination for completed build, used
|
#:site-dest <path-string> --- destination for completed build, used
|
||||||
by the `site' and `snapshot-site' makefile targets; the default is
|
by the `site' and `snapshot-site' makefile targets; the default is
|
||||||
|
@ -278,6 +281,26 @@ to `racket/base':
|
||||||
Returns a string to identify the current build, normally a
|
Returns a string to identify the current build, normally a
|
||||||
combination of the date and a git commit hash.
|
combination of the date and a git commit hash.
|
||||||
|
|
||||||
|
READMEs
|
||||||
|
-------
|
||||||
|
|
||||||
|
The `distro-build/readme' library provides functions for constructing
|
||||||
|
a README file's content. Each function takes a hash table mapping
|
||||||
|
configuration keywords to values.
|
||||||
|
|
||||||
|
(make-readme config) -> string
|
||||||
|
config : hash?
|
||||||
|
Produces basic "README" content, using information about the
|
||||||
|
distribution and the Racket license. The content is constructed
|
||||||
|
using `config' keywords such as `#:name', `#:platform',
|
||||||
|
`#:dist-name', and `#:dist-catalogs', and sometimes `current-stamp'.
|
||||||
|
|
||||||
|
(make-macosx-notes config) -> string
|
||||||
|
config : hash?
|
||||||
|
Produces "README" content to tell Mac OS X users how to install a
|
||||||
|
distirbution folder. This function is used by `make-readme' when
|
||||||
|
`#:platform' in `config' is 'macosx.
|
||||||
|
|
||||||
Examples
|
Examples
|
||||||
--------
|
--------
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,14 @@
|
||||||
(path->string d)
|
(path->string d)
|
||||||
d))
|
d))
|
||||||
|
|
||||||
|
(define (add-defaults c . l)
|
||||||
|
(let loop ([c c] [l l])
|
||||||
|
(cond
|
||||||
|
[(null? l) c]
|
||||||
|
[else (loop (hash-set c (car l)
|
||||||
|
(hash-ref c (car l) (lambda () (cadr l))))
|
||||||
|
(cddr l))])))
|
||||||
|
|
||||||
;; ----------------------------------------
|
;; ----------------------------------------
|
||||||
;; Managing VirtualBox machines
|
;; Managing VirtualBox machines
|
||||||
|
|
||||||
|
@ -319,7 +327,9 @@
|
||||||
(define readme-txt (let ([rdme (get-opt c '#:readme make-readme)])
|
(define readme-txt (let ([rdme (get-opt c '#:readme make-readme)])
|
||||||
(if (string? rdme)
|
(if (string? rdme)
|
||||||
rdme
|
rdme
|
||||||
(rdme c))))
|
(rdme (add-defaults c
|
||||||
|
'#:release? default-release?
|
||||||
|
'#:pkgs (string-split default-pkgs))))))
|
||||||
(make-directory* (build-path "build" "readmes"))
|
(make-directory* (build-path "build" "readmes"))
|
||||||
(define readme (make-temporary-file
|
(define readme (make-temporary-file
|
||||||
"README-~a"
|
"README-~a"
|
||||||
|
@ -337,8 +347,8 @@
|
||||||
(display-time)
|
(display-time)
|
||||||
(begin0
|
(begin0
|
||||||
|
|
||||||
((case (or (get-opt c '#:platform) 'unix)
|
((case (or (get-opt c '#:platform) (system-type))
|
||||||
[(unix) unix-build]
|
[(unix macosx) unix-build]
|
||||||
[else windows-build])
|
[else windows-build])
|
||||||
c host port user server repo clean? pull? readme)
|
c host port user server repo clean? pull? readme)
|
||||||
|
|
||||||
|
|
|
@ -1,19 +1,52 @@
|
||||||
#lang at-exp racket/base
|
#lang at-exp racket/base
|
||||||
(require racket/format)
|
(require racket/format
|
||||||
|
net/url
|
||||||
|
(only-in "config.rkt" current-stamp))
|
||||||
|
|
||||||
(provide make-readme)
|
(provide make-readme
|
||||||
|
make-source-notes
|
||||||
|
make-macosx-notes)
|
||||||
|
|
||||||
|
(define (maybe-stamp config)
|
||||||
|
(if (hash-ref config '#:release? #f)
|
||||||
|
""
|
||||||
|
@~a{ (@(current-stamp))}))
|
||||||
|
|
||||||
(define (make-readme config)
|
(define (make-readme config)
|
||||||
@~a{
|
@~a{
|
||||||
The Racket Programming Language
|
The Racket Programming Language
|
||||||
===============================
|
===============================
|
||||||
|
|
||||||
This is Racket...
|
This is the
|
||||||
|
@|(hash-ref config '#:name "Racket")|
|
||||||
|
distribution for version @(version)@(maybe-stamp config).@;
|
||||||
|
|
||||||
More Information
|
@(if (hash-ref config '#:source? #f)
|
||||||
----------------
|
(string-append "\n" (make-source-notes config) "\n")
|
||||||
|
"")@;
|
||||||
|
@(if (and (not (hash-ref config '#:source? #f))
|
||||||
|
(eq? (hash-ref config '#:platform (system-type)) 'macosx))
|
||||||
|
(string-append "\n" (make-macosx-notes config) "\n")
|
||||||
|
"")@;
|
||||||
|
@(let* ([catalogs (filter
|
||||||
|
(lambda (s) (not (equal? s "")))
|
||||||
|
(or (hash-ref config '#:dist-catalogs #f)
|
||||||
|
(let ([v (hash-ref config '#:dist-base-url #f)])
|
||||||
|
(and v
|
||||||
|
(list (url->string
|
||||||
|
(combine-url/relative (string->url v) "catalog/")))))
|
||||||
|
null))]
|
||||||
|
[s (if (= 1 (length catalogs)) "" "s")]
|
||||||
|
[is (if (= 1 (length catalogs)) "is" "are")])
|
||||||
|
(if (null? catalogs)
|
||||||
|
""
|
||||||
|
@~a{@"\n"The distribution has been configured so that when you install or
|
||||||
|
update packages, the package catalog@|s| at@;
|
||||||
|
@(apply ~a (for/list ([catalog (in-list catalogs)])
|
||||||
|
@~a{@"\n" @|catalog|}))
|
||||||
|
@|is| consulted, first.@"\n"}))@;
|
||||||
|
|
||||||
Visit us at
|
Visit
|
||||||
http://racket-lang.org/
|
http://racket-lang.org/
|
||||||
for more Racket resources.
|
for more Racket resources.
|
||||||
|
|
||||||
|
@ -32,14 +65,21 @@
|
||||||
that you must release the source code for the modified software. See
|
that you must release the source code for the modified software. See
|
||||||
share/COPYING_LESSER.txt for more information.})
|
share/COPYING_LESSER.txt for more information.})
|
||||||
|
|
||||||
(define macosx-notes
|
(define (make-source-notes config)
|
||||||
@~a{Install by dragging the enclosing Racket folder to your Applications folder
|
|
||||||
--- or wherever you like. You can move the Racket folder at any time, but do not
|
|
||||||
move applications or other files within the folder. If you want to use the
|
|
||||||
Racket command-line programs, then (optionally) add the path of the "bin"
|
|
||||||
subdirectory to your PATH environment variable.})
|
|
||||||
|
|
||||||
(define drracket-more-info
|
@~a{This distribution provides source for the Racket run-time system;
|
||||||
@~a{For Racket documentation, use DrRacket's `Help' menu, run the `Racket
|
for build and installation instructions, see "racket/src/README".
|
||||||
Documentation' application (Windows or Mac OS X), or run `raco docs'
|
Besides the run-time system's source, the distribution provides
|
||||||
from a command line.})
|
pre-built versions of the core Racket bytecode, as well as pre-built
|
||||||
|
versions of included packages and documentation --- which makes it
|
||||||
|
suitable for quick installation on a Unix platform for which
|
||||||
|
executable binaries are not already provided.})
|
||||||
|
|
||||||
|
(define (make-macosx-notes config)
|
||||||
|
@~a{Install by dragging the enclosing
|
||||||
|
@|(hash-ref config '#:dist-name "Racket")| v@(version)
|
||||||
|
folder to your Applications folder --- or wherever you like. You can
|
||||||
|
move the folder at any time, but do not move applications or other
|
||||||
|
files within the folder. If you want to use the Racket command-line
|
||||||
|
programs, then (optionally) add the path of the "bin" subdirectory to
|
||||||
|
your PATH environment variable.})
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
This is the source code distribution for Racket. For license
|
This is the source code distribution for Racket. For license
|
||||||
information, please see the file
|
information, please see the file "COPYING_LESSER.txt".
|
||||||
racket/doc/release-notes/COPYING_LESSER.txt.
|
|
||||||
|
|
||||||
Compiled binaries, documentation, and up-to-date information are
|
Compiled binaries, documentation, and up-to-date information are
|
||||||
available at http://racket-lang.org/; pre-compiled nightly builds are
|
available at http://racket-lang.org/; pre-compiled nightly builds are
|
||||||
|
|
Loading…
Reference in New Issue
Block a user