diff --git a/distr/How_To b/distr/How_To new file mode 100644 index 000000000..7a130cedd --- /dev/null +++ b/distr/How_To @@ -0,0 +1,74 @@ +How to make a fresh distribution: +For a distribution you need ".distr" files and RCS files. +The EM home directory contains a file called ".distr". It contains +the names of all the files and directories you want to have in the distribution. +The directories should contain .distr files, the other files should +be placed under RCS. +The current RCS revision name is "distr2". +The are files that derive from other files and yet should be placed +in the distribution. +These files should not be placed under RCS. +The file "Exceptions" in this directory contains the current list of +these files. + +When all this is correct, use the shell script mktree the extract +the distribution from the EM tree. + cd /usr/em ; sh distr/mktree destination_tree >distr/f.attf 2>&1 +Make sure that the destination tree exists and is empty! +Failing to do that will almost certainly result in a welter of +error messages. +The file f.attf contains mktree error messages and should be compared +to Exceptions. +The actions of mktree are quite complicated. It starts in the current +directory reading the ".distr" file, after copying that file to the +destination tree. +For each file mentioned there it performes certain actions: +1- Directory Change to that directory and call yourself recursively. +2- File + a- Try to do "co -rdistr2 destination_tree/path/destination_file" + on succes "chmod +w destination_file" + else + b- Try to do "co destination_tree/destination_file" + on succes "chmod +w destination_file" and + give message that says "Missing distr2 entry" (or some such). + else + c- I Does a file LIST exist in this directory AND + is the first line of LIST equal to the name of the + destination file? If so, try to extract all the files + named in the rest of the LIST file and call the program + arch to create a library "arch cr `cat LIST`". + In this manner libraries can be distributed whose members + have their own RCS file! + else + II try to do "cp file destination_tree/path/destination_file" + on succes give message that says "Missing RCS entry" + (or some such). + else + d- + give message that says "Missing entry" (or some such). + +Now you have the tree but not everything is kosher yet. +Some files derive from other files in the tree, those derivations should +be done with the use of an already installed distribution. +The files Action and Action1 in this directory contain the actions +we now take. (Confession: most of the time we use /usr/em) +One warning, to re-nroff the IR-81 report it takes more then just nroff +because most nroff's can't stand that report and stop half-way. +The ntroff program does the trick, but only on the 11's. + tbl sources | ntroff -Tlp | ntlp + +After running these re-derivation programs the distrubtion tree starts +to look like the tree you need. +There are too many files there though, especially the files created by +the derivation process. +That is why we now give the command: + dtar cdf distr2 . +The file distr2 is the one you should put on tape! +But,.... before doing that: Try it out! +Repeat the process described in the installation manual. +Only if that succeeds you are sure that you included the files needed, +and gave all other files the correct "distr2" RCS id. +After you sent the tape away, forbid ANYBODY to touch the distr2 id +in your RCS files. + Good Luck, + Ed Keizer, 85/4/15.