How_To 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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 "distr4".
  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 ~em/Repositories ; sh ../Work/distr/mktree destination_tree >../Work/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 checking out the .distr file, and copying it to the destination
  23. directory
  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 -rdistr4 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 distr4 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. After running these re-derivation programs the distrubtion tree starts
  54. to look like the tree you need.
  55. There are too many files there though, especially the files created by
  56. the derivation process.
  57. That is why we now give the command:
  58. dtar cdf distr4 .
  59. The file distr4 is the one you should put on tape!
  60. But,.... before doing that: Try it out!
  61. Repeat the process described in the installation manual.
  62. Only if that succeeds you are sure that you included the files needed,
  63. and gave all other files the correct "distr4" RCS id.
  64. After you sent the tape away, forbid ANYBODY to touch the distr4 id
  65. in your RCS files.
  66. Good Luck,
  67. Ed Keizer, 85/4/15.
  68. Updated for 3rd distribution by Ceriel Jacobs, 87/3/11.
  69. And again,
  70. Good Luck!
  71. Updated for 4rd distribution by Ceriel Jacobs, 88/4/08.
  72. And again,
  73. Good Luck!