/* $XConsortium: README /main/2 1996/07/15 14:13:29 drk $ */ Software shipment information. [better documentation forthcoming ...] All files and directories, except for those in /usr/spool/uucppublic, are rooted at the shipment/installation directory named by $INSTALLROOT. The $INSTALLROOT hierarchy is similar to the System V /usr hierarchy. The $INSTALLROOT/ship subdirectory is automatically maintained by shipin and shipout. If you expect to receive future shipments then do not change files in this directory. pax is the Bell Labs implementation of the proposed POSIX (01/90) portable archive interchange command. The default output format is `cpio -c'. The pax delta format is a Bell Labs extension. The following assumes: INSTALLROOT= After each shipment: cd $INSTALLROOT ship/shipin `ship/shipin -n' shows actions but does not unbundle or build. `ship/shipin -s ' unbundles from rather than /usr/spool/uucppublic. `ship/shipin -u' unbundles the shipment but does not build. `ship/shipin -i' copies from spool area but does not unbundle or build. `ship/shipin -E' rebuild components that failed last time (use after fixes). Any non-option arguments to shipin are passed as arguments to the generating make or shell script for each component. To pass the shipment to another machine (requires ksh): # rcp # TO=host:ship # uucp # TO=machine!user # list of files # TO=%list # remote dk pull script # TO=%pull cd $INSTALLROOT ship/shipin -i # if not installed on this machine cd ship shipout $TO {rcp,uucp} initiate copies whereas {list,pull} generate information on stdout. {uucp} copies to an intermediate spool area on the other machine whereas {rcp,list,pull} are relative to $INSTALLROOT on the other machine. To copy a command from $INSTALLROOT to a new root you must copy: $INSTALLROOT/bin/ $INSTALLROOT/lib/ to the new root directory for all interdependent 's. Depending on , only one of the above files/directories may exist. Be sure to maintain a different $INSTALLROOT for each machine architecture. If the same $INSTALLROOT/ship must be reused for a different architecture then delete everything except ship from $INSTALLROOT and run ship/shipin -F. An alternative would be to use nmake and optionally 3d to viewpath a new architecture hierarchy on top of $INSTALLROOT. In this case nmake would be run from within the $INSTALLROOT/src/(cmd|lib) hierarchy. The files below may appear on the shipment side, the installation side, or both. and are defined in the shipment mail announcement. Each shipment is identified by a two part version number [R]YYMMDD R release -- if specified then it must match for compatibility YYMMDD shipment year, month and day number /usr/spool/uucppublic// directory hierarchy: . shipment control directory ./manifest list of all files in shipment $INSTALLROOT directory hierarchy: bin/ executable binaries and scripts include/ common header files lib/ object archives a common data man/ man page subtree man1/ command man pages man3/ library man pages man8/ adminstration and maintenance man pages src/ source subtree cmd/ command source lib/ library source ship/ shipment and installation info $INSTALLROOT/ship contents: README installation info ! shipment installation message for machine!user ship.body optional shipment announcement main body ship.head optional shipment announcement header ship.tail optional shipment announcement trailer shipcost show relative cost of delta/update shipment shipcrate crate all components for shipout shipin unbundle, build and install shipment shiplist shipout using name-tool list shipop shipin/shipout support executable shipout split and send shipment shipslog shipment log and recipient address info shipswab clean old stuff from the ship area shipyard shipment support tools component name lib* library components * command components $INSTALLROOT/ship/ contents: <[R]YYMMDD> information for the <[R]YYMMDD> shipment base link to the newest pax base archive delta link to the newest pax delta archive in.log shipin log items required components (excluding this one) list optional list of persons to send to message optional message to include in shipment announcement owner mail address for installation report release the the current shipment release number report optional list of $INSTALLROOT relative files to report $INSTALLROOT/ship//<[R]YYMMDD> contents: <[R]YYMMDD> pax delta archive for ../[R]YYMMDD/base <[R]YYMMDD>. delta archive split for uucp BUILT present if release build succeeded ERROR present if release build failed GENERATED present if base archive was generated from a delta UNCRATED present if release uncrate succeeded base pax base archive base. base archive split for uucp items items for this release message message for this release owner owner for this release report report for this release Each component $NAME is extracted into either $INSTALLROOT/src/lib/$NAME or $INSTALLROOT/src/cmd/$NAME. The following are attempted, in order, to build and install $NAME under $INSTALLROOT: $INSTALLROOT/bin/nmake -f Makefile install mamexec install < Mamfile # mamexec is built into ship/shipin make -f makefile install sh Makescript where Mamfile, Makescript and makefile are usually generated from the corresponding nmake Makefile. Glenn Fowler ulysses!gsf David Korn ulysses!dgk