[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

SYS:SITE; A novice adminstrator's question



Sorry for the slow turnaround.  This is a complicated area about which
there is unfortunately no written policy.  Fortunately, it looks like
you got some useful replies in the meantime.  But since my personal
experiences have led me to different solutions than those of some of the
others who have replied, I'll add a few remarks based on my experiences.
I'm not in a position to suggest that this is `official policy,' but I
don't think there's anything blatantly wrong in here either. Hope it
helps...

-----
It is indeed the intent that SYS:SITE; translate to the same directory
regardless of Genera release.  Certainly it's what we do here at SCRC.

You are right that sometimes you might want different .SYSTEM information
per release, but that's not always the case.  When it does come up, it's
usually easy to manage this within a single file that just has conditionals 
based on the result of (SCT:GET-RELEASE-VERSION).  Sometimes you do this 
in the .TRANSLATIONS file instead of the .SYSTEM file.

But there's another place where this is often managed--in the .SYSTEM-DIR
file for a system.  There's an alist at the head of the file which contains
correspondences from symbolic versions to numeric versions.  The value of
each a-list component will be EVAL'd before being used, so you can write,
as Cloe does:

 (("CLOE" :LATEST 367
	  :REL-7-1 317
	  :REL-7-2 341
	  :REL-7-4 342
	  :REL-8-0 364
	  :RELEASED (MULTIPLE-VALUE-BIND (MAJOR MINOR)
		        (SCT:GET-RELEASE-VERSION)
		      (WHEN (STRINGP MINOR) 
			(SETQ MINOR (CL:PARSE-INTEGER MINOR :JUNK-ALLOWED T)))
		      (COND ((AND (EQL MAJOR 7) (EQL MINOR 1)) 317)
			    ((AND (EQL MAJOR 7) (EQL MINOR 2)) 341) 
			    ((AND (EQL MAJOR 7) (EQL MINOR 4)) 342)
			    ((AND (EQL MAJOR 8) (EQL MINOR 0)) 364)
			    ((AND (EQ (SEND NET:*LOCAL-SITE* :NAME) :SCRC) 
				  (AND (EQL MAJOR 8) (EQL MINOR 1))) 
			     364)
			    (T (ERROR "No released version for Genera ~A.~A" MAJOR MINOR)))))
  ;; System versions:
  (367 ...)
  ...)

The significance of this is that Cloe can use the same .SYSTEM file
for all versions, and regardless of the release, you can just do 
 Load System Cloe
and the right version will get loaded because Load System tries to load
the :RELEASED version, and the .SYSTEM-DIR file contains a map which lets
:RELEASED turn into the right version for a particular host system.