README 5.6 KB

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