How_To 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. How to make a fresh distribution:
  2. For a distribution you need ".distr" files and RCS files.
  3. The EM home directory contains a file called ".distr". It contains
  4. the names of all the files and directories you want to have in the distribution.
  5. The directories should contain .distr files, the other files should
  6. be placed under RCS.
  7. The current RCS revision name is "distr2".
  8. The are files that derive from other files and yet should be placed
  9. in the distribution.
  10. These files should not be placed under RCS.
  11. The file "Exceptions" in this directory contains the current list of
  12. these files.
  13. When all this is correct, use the shell script mktree the extract
  14. the distribution from the EM tree.
  15. cd /usr/em ; sh distr/mktree destination_tree >distr/f.attf 2>&1
  16. Make sure that the destination tree exists and is empty!
  17. Failing to do that will almost certainly result in a welter of
  18. error messages.
  19. The file f.attf contains mktree error messages and should be compared
  20. to Exceptions.
  21. The actions of mktree are quite complicated. It starts in the current
  22. directory reading the ".distr" file, after copying that file to the
  23. destination tree.
  24. For each file mentioned there it performes certain actions:
  25. 1- Directory Change to that directory and call yourself recursively.
  26. 2- File
  27. a- Try to do "co -rdistr2 destination_tree/path/destination_file"
  28. on succes "chmod +w destination_file"
  29. else
  30. b- Try to do "co destination_tree/destination_file"
  31. on succes "chmod +w destination_file" and
  32. give message that says "Missing distr2 entry" (or some such).
  33. else
  34. c- I Does a file LIST exist in this directory AND
  35. is the first line of LIST equal to the name of the
  36. destination file? If so, try to extract all the files
  37. named in the rest of the LIST file and call the program
  38. arch to create a library "arch cr `cat LIST`".
  39. In this manner libraries can be distributed whose members
  40. have their own RCS file!
  41. else
  42. II try to do "cp file destination_tree/path/destination_file"
  43. on succes give message that says "Missing RCS entry"
  44. (or some such).
  45. else
  46. d-
  47. give message that says "Missing entry" (or some such).
  48. Now you have the tree but not everything is kosher yet.
  49. Some files derive from other files in the tree, those derivations should
  50. be done with the use of an already installed distribution.
  51. The files Action and Action1 in this directory contain the actions
  52. we now take. (Confession: most of the time we use /usr/em)
  53. One warning, to re-nroff the IR-81 report it takes more then just nroff
  54. because most nroff's can't stand that report and stop half-way.
  55. The ntroff program does the trick, but only on the 11's.
  56. tbl sources | ntroff -Tlp | ntlp
  57. After running these re-derivation programs the distrubtion tree starts
  58. to look like the tree you need.
  59. There are too many files there though, especially the files created by
  60. the derivation process.
  61. That is why we now give the command:
  62. dtar cdf distr2 .
  63. The file distr2 is the one you should put on tape!
  64. But,.... before doing that: Try it out!
  65. Repeat the process described in the installation manual.
  66. Only if that succeeds you are sure that you included the files needed,
  67. and gave all other files the correct "distr2" RCS id.
  68. After you sent the tape away, forbid ANYBODY to touch the distr2 id
  69. in your RCS files.
  70. Good Luck,
  71. Ed Keizer, 85/4/15.