How to make a distribution -------------------------- I have written a new tool to generate the distributions that does not rely on having a local CVS server --- distr/mkdist. To use it, you need to specify your CVS work tree, the destination directory that the distribution will be written to, plus flags. It should be self- documenting; use: mkdist --help ...to get documentation. It uses .distr files in exactly the same way as the previous mechanism. The documentation for the old distribution tools follows. David Given dg@cowlark.com 2005-06-25 ----------------------------------------------------------------------------- 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 CVS. There are files that derive from other files and yet should be placed in the distribution. These files should not be placed under RCS or CVS. 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. sh mktree destination_tree repository_tree 2>f.attf Use the "cvs rtag" command to give the distribution a name first! 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 creating a version in the destination directory. Then it reads the .distr file. For each file mentioned there it performes certain actions: 1- Directory Change to that directory and call yourself recursively. 2- File a- 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 cDr `cat LIST`". In this manner libraries can be distributed whose members have their own RCS file. else b- Try to run 'make distr' else c- Try to run 'make ' else d- give message that says "not present" (or some such). Now, the tree contains all the files in the distribution, but it also contains files that should not be in the distribution, especially the files created by CVS. That is why we now give the command: dtar cdf distr . The file distr 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. Good Luck, Ed Keizer, 85/4/15. Updated for 3rd distribution by Ceriel Jacobs, 87/3/11. And again, Good Luck! Updated for 4th distribution by Ceriel Jacobs, 88/4/08. And again, Good Luck! Updated for 5th distribution by Ceriel Jacobs, 91/19/12. And again, Good Luck! Updated for 1st upgrade to 5th distribution by Ceriel Jacobs, 91/12/11. And again, Good Luck!