# $Id: INSTALLATION,v 1.4 2002/08/23 13:38:14 howardjp Exp $ Installation of the party program version 2.10: 1. Edit the Makefile. The following options are really important: BSD, SYSV or SYSIII should be set according to what most nearly matchs your system. If you want to mix and match, look at the lower level options in party.h. SunOS and Mach work fine as BSD. SUID or SGID should be set depending on if you are going to install party running sgid to some group, or suid to some login. SUID has the advantage of making it possible to have "keeplog" channels permitted only to certain groups by playing with the group permissions of the log file. Note that with SGID volatile channels will be created with files owned by the user. This allows the user to play with the permissions which may or may not be considered desirable. PARTYTAB should be set to the full path of the partytab configuration file. The NOCLOSE option may be set to disable the feature that allows users to close channels, so that only the users already in the channel and those invited to the channel may join. This works best with SUID. If you set it up with SGID, closed channels are still readable to other users. The NOIGNORE option may be set to disable the feature that allows users to maintain a list of users who's remarks they do not wish to see. The NOSELECT option makes party run as it did in the good old days before the select() function was invented. This seems to give quicker response to your typing, but slower response to other people's typing. Without NOSELECT, you are more likely to have the first few characters you type not echo. In otherwords, the select() code still needs work. There are also a lot of DFLT_* options you can set here. These change the compiled-in defaults for various options. But since you can always override any of these in the partytab, they aren't terribly critical. But it is nice to have a sane set of compiled-in options. 2. Compile with a "make" command. 3. Install party in an appropriate bin directory. It should be made suid or sgid depending on the options described before. Don't compile it differently than you install it, or the log files will be created with inappropriate permissions. 4. If you want to have multiple entries to party with different default options, or starting in different channels, or in whole different universes of channels, make a link to the party binary for each program and add a line to the party tab starting with the link name and listing all the options you like. This file must be readable by party. Probably at a minimum you want to link it to "pwho" and add the line "pwho userlist" to the partytab file. The "pwho" command will then list the users currently in party. A sample partytab is included in the distribution. 5. Make a chantab file (whose path name is given by the "chantab" option which may be either compiled in or set in the partytab file). Each line of the starts with the name of a channel, and is followed by a list of options for that channel. You don't need to specify any options, but having different options in different channels is more fun. You can use wildcard characters (* and ? and [..]) in the channel names. Users may use any channel whose name matches any pattern in the chantab. Channels whose names don't have wildcards in them will be listed by the ":list" command even if nobody is in them. It is probably a good idea to put the keeplog option only on these channels. Normally the last line of the chantab would just have the pattern "*", so that users can use any channel name. A sample chantab is included in the distribution. 6. Create the log directory, whose name is given by the logdir option. This directory must be writable by party. You don't need to create the log files unless you want them to have non-standard permissions. Party will normally make log files itself, as needed. 7. Create the partytmp file. This should initially be empty and be writable and readable to party, but not to common users. If you are upgrading to a new version of party, emptying the partytmp file would probably be a good idea. 8. Install the help file and the noisetab wherever you specified they would be. They need to be readable to party. 9. Put something in the crontab to restart each channel with the "keeplog" option regularly. This consists simply of removing the log files (or mv'ing them to a backup place). You don't need to create new files unless you want them to have strange permissions. Party will do that as needed. Note that if you don't give any channels the "keeplog" option, the you don't have to bother with this. Log files for channels with "nokeeplog" set are supposed to be removed when the last person leaves the channel. This mechanism is not completely reliable, mainly because people can "kill -9" their party processes, which causes them to exit without giving party a chance to clean up after them. So you may find some "name.tmp" files in the log directory long after everyone has left that channel. Usually joining that channel and leaving will cause it to be cleaned up. But it would probably be a good idea to include some command like find -name \*.tmp -ctime +2 -exec rm -f {} \; in the cron's daily script to eliminate "nokeeplog" log files more than two days old.