1 /* $XConsortium: README /main/2 1996/07/15 14:13:29 drk $ */
2 Software shipment information. [better documentation forthcoming ...]
4 All files and directories, except for those in /usr/spool/uucppublic,
5 are rooted at the shipment/installation directory named by
6 $INSTALLROOT. The $INSTALLROOT hierarchy is similar to the System V
9 The $INSTALLROOT/ship subdirectory is automatically maintained by
10 shipin and shipout. If you expect to receive future shipments then
11 do not change files in this directory.
13 pax is the Bell Labs implementation of the proposed POSIX (01/90)
14 portable archive interchange command. The default output format is
15 `cpio -c'. The pax delta format is a Bell Labs extension.
17 The following assumes:
19 INSTALLROOT=<path name of software installation root directory>
23 <follow specific shipment instructions>
27 `ship/shipin -n' shows actions but does not unbundle or build.
28 `ship/shipin -s <dir>' unbundles from <dir> rather than /usr/spool/uucppublic.
29 `ship/shipin -u' unbundles the shipment but does not build.
30 `ship/shipin -i' copies from spool area but does not unbundle or build.
31 `ship/shipin -E' rebuild components that failed last time (use after fixes).
33 Any non-option arguments to shipin are passed as arguments to the
34 generating make or shell script for each component.
36 To pass the shipment to another machine (requires ksh):
39 # uucp # TO=machine!user
40 # list of files # TO=%list
41 # remote dk pull script # TO=%pull
43 ship/shipin -i # if not installed on this machine
47 {rcp,uucp} initiate copies whereas {list,pull} generate information on
48 stdout. {uucp} copies to an intermediate spool area on the other machine
49 whereas {rcp,list,pull} are relative to $INSTALLROOT on the other machine.
51 To copy a command <cmd> from $INSTALLROOT to a new root you must copy:
53 $INSTALLROOT/bin/<cmd>
54 $INSTALLROOT/lib/<cmd>
56 to the new root directory for all interdependent <cmd>'s. Depending on
57 <cmd>, only one of the above files/directories may exist.
59 Be sure to maintain a different $INSTALLROOT for each machine architecture.
60 If the same $INSTALLROOT/ship must be reused for a different architecture
61 then delete everything except ship from $INSTALLROOT and run ship/shipin -F.
62 An alternative would be to use nmake and optionally 3d to viewpath a new
63 architecture hierarchy on top of $INSTALLROOT. In this case nmake would
64 be run from within the $INSTALLROOT/src/(cmd|lib) hierarchy.
66 The files below may appear on the shipment side, the installation side,
67 or both. <installer-login> and <shipper-system> are defined in the
68 shipment mail announcement.
70 Each shipment is identified by a two part version number [R]YYMMDD
72 R release -- if specified then it must match for compatibility
73 YYMMDD shipment year, month and day number
75 /usr/spool/uucppublic/<installer-login>/<shipper-system> directory hierarchy:
77 <shipper-login>.<YYMMDD> shipment control directory
78 <shipper-login>.<YYMMDD>/manifest list of all files in shipment
80 $INSTALLROOT directory hierarchy:
82 bin/ executable binaries and scripts
83 include/ common header files
84 lib/ object archives a common data
86 man1/ command man pages
87 man3/ library man pages
88 man8/ adminstration and maintenance man pages
92 ship/ shipment and installation info
94 $INSTALLROOT/ship contents:
96 README installation info
97 !<mach_user> shipment installation message for machine!user
98 ship.body optional shipment announcement main body
99 ship.head optional shipment announcement header
100 ship.tail optional shipment announcement trailer
101 shipcost show relative cost of delta/update shipment
102 shipcrate crate all components for shipout
103 shipin unbundle, build and install shipment
104 shiplist shipout using name-tool list
105 shipop shipin/shipout support executable
106 shipout split and send shipment
107 shipslog shipment log and recipient address info
108 shipswab clean old stuff from the ship area
109 shipyard shipment support tools component name
110 lib* library components
113 $INSTALLROOT/ship/<component> contents:
115 <[R]YYMMDD> information for the <[R]YYMMDD> shipment
116 base link to the newest pax base archive
117 delta link to the newest pax delta archive
119 items required components (excluding this one)
120 list optional list of persons to send to
121 message optional message to include in shipment announcement
122 owner mail address for installation report
123 release the the current shipment release number
124 report optional list of $INSTALLROOT relative files to report
126 $INSTALLROOT/ship/<component>/<[R]YYMMDD> contents:
128 <[R]YYMMDD> pax delta archive for ../[R]YYMMDD/base
129 <[R]YYMMDD>.<NNN> delta archive split for uucp
130 BUILT present if release build succeeded
131 ERROR present if release build failed
132 GENERATED present if base archive was generated from a delta
133 UNCRATED present if release uncrate succeeded
134 base pax base archive
135 base.<NNN> base archive split for uucp
136 items items for this release
137 message message for this release
138 owner owner for this release
139 report report for this release
141 Each component $NAME is extracted into either $INSTALLROOT/src/lib/$NAME
142 or $INSTALLROOT/src/cmd/$NAME. The following are attempted, in order,
143 to build and install $NAME under $INSTALLROOT:
145 $INSTALLROOT/bin/nmake -f Makefile install
146 mamexec install < Mamfile # mamexec is built into ship/shipin
147 make -f makefile install
150 where Mamfile, Makescript and makefile are usually generated from the
151 corresponding nmake Makefile.
153 Glenn Fowler ulysses!gsf
154 David Korn ulysses!dgk