[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
world management and patches
Date: Wed, 22 Jun 88 13:23 CDT
From: Gumby@MCC.COM (David Vinayak Wallace)
Date: Tue, 21 Jun 88 11:40 EDT
From: barmar@Think.COM (Barry Margolin)
Date: Mon, 20 Jun 88 15:42 PDT
From: Jerry@marlowe.inference.dialnet.symbolics.com (Jerry Bakin)
A useful addition to the patch commands in Zmacs would be a command to
package patch sources and the new patch-dir into a mail message and
another command to unpack this message and create the appropriate files
in the patch directory.
Symbolics is way ahead of you on this one: Genera 7.2 ECO Tape
#1includes support for receiving future ECOs (which are just patches) by
electronic mail. The new M-X Decode ECO Zmail command will read a
message and write a file, and this file can then be read using "Restore
Distribution :Use Disk <pathname>" (the Decode ECO command will offer to
run this automatically).
But they don't give you any tool for 1creating0 ECOs, so you can't use it
to distribute patches to your own systems.
m-X Start/Add/Finish Patch is how we create ECOs, except that we
include, by hand, a form at the top of the patch file, 2sct:define-eco0.
The sole purpose of that form is to make the herald and :Show ECOs print
something that indicates that there are ECO patches.
Here is a pared-down script we used to generate the first ECO tape, but
note that this requires that those ECOs be loaded in order to work.
After loading the script, the Write 7.2 ECO Distribution Tape command
will make the tape. You can probably massage this as you need to suit
your own purposes.
;;; -*- Syntax: Zetalisp; Package: SCT; Base: 10; Mode: LISP; Lowercase: Yes -*-
(defun load-if-necessary (pathname)
(let* ((pathname (send (fs:parse-pathname pathname)
:new-pathname :type :lisp :version :newest))
(generic (send pathname :generic-pathname))
(loaded-id (sys:get-file-loaded-id generic nil))
(creation-date (with-open-file (s pathname :direction :probe
(send s :creation-date))))
(when ( (cdr loaded-id) creation-date)
;; Standard layered products
(defmacro collect-systems-list (system-list)
`(loop for (system version args) in ,system-list
collecting (list (find-system-named system) version args)))
'((system 376) ;starting from "7.2"
(utilities 27) ;..
(nsage (27 120 120) (:distribute-binaries nil))
(doc 62 (:compress t :distribute-patch-sources t))
;; From here on we need to explicitly specify the starting patch number,
;; since the checkpoint "7.2" doesn't apply to any systems except those
;; which are loaded in the standard distribution world.
;; Standard layered products
(print (16 1) (:distribute-binaries nil))
(mailer (17 1) (:distribute-binaries nil))
(metering-substrate (26 8) (:distribute-binaries nil))
(metering (11 2) (:distribute-binaries nil))
;; CP command for distribute of basic distribution tape
:name "Write 7.2 ECO Distribution Tape")
(&key (distribute-sources 'scl:(token-or-type (:use-system-value) boolean)
:documentation "Distribute source files"))
(collect-systems-list 7-2-eco-distribution) nil