BSD 4_3_Net_2 development
[unix-history] / .ref-BSD-4_3_Reno / usr / src / share / doc / usd / 11.notes / a.checklist
CommitLineData
95f51977
C
1.\" @(#)a.checklist 6.1 (Berkeley) 5/26/86
2.\"
3.ls 1
4.ap A "Notesfile Installation Checklist"
5
6.a1 "Installing Notesfile Code"
7
8 You can be sure that you have modified all necessary constants
9in the notesfile system by following this simple checklist.
10
11.bz
12.iz
13change to the notesfile source directory
14.iz
15tar x
16[reads the notesfile tape]
17.iz
18cd src
19.iz
20[edit] parms.h
21.iz
22ARCHTIME.
23Default for how long unmodified note strings hang around.
24.iz
25WORKSETSIZE.
26The default number of notes to leave in a notesfile when archiving.
27.iz
28DFLTSH.
29This should be left as the Bourne shell, /bin/sh -RBE
30.iz
31DFLTED.
32The editor to use if no NFED or EDITOR environment variable
33exists.
34.iz
35SEQFILE.
36This is the name of a file in the utility directory which contains
37a list of notesfiles for users without an NFSEQ environment variable.
38The default is probably just fine.
39.iz
40DFLTSEQ.
41For users without an NFSEQ environment variable and when the file
42specified by the SEQFILE definition above doesn't exist, we
43finally fall back to using the notesfiles specified by this string.
44The nice thing about having things in SEQFILE is that you don't
45have to recompile the notesfile software everytime you wish to
46change the default set of notesfiles; instead you edit a file.
47.iz
48MAILER.
49The program which will do mailing.
50If you are in a networked environment, this mailer should
51manage to route letters to far away places for you.
52The notesfile system only retains the name of the destination site;
53a path to that site is not kept.
54.iz
55SUPERMAILER.
56This should be defined if you have an intelligent mail program.
57Intelligent here means that you can edit the letter and other
58fun things.
59.iz
60PAGER.
61A program which shows 1 screenful of information at a time.
62.iz
63WRITE.
64A program which allows online user-user communication
65(such as /bin/write).
66.iz
67FULLDOMAIN.
68This defines the domain name of your local systems. For many
69USENET sites, this should be ``UUCP''.
70Other examples include ``ARPA'' and ``Uiuc.ARPA''.
71This should not include the system name.
72In the UIUC Computer Science Department, we have machines named
73``uiucdcs'', ``uiucdcsb'', and so on;
74our value for FULLDOMAIN is ``Uiuc.ARPA''.
75The notesfile code puts
76things together to yield ``uiucdcsb.Uiuc.ARPA'' as a
77full domain name for one of our machines.
78Note that you do NOT need to place a ``.'' at the beginning of
79the domain name; the notesfile software does this for you.
80.ix
81IDDOMAIN.
82This switch is (for now) undefined.
83When defined it indicates the the unique id's associated with
84notes are to have a system component containing the system
85name and the string defined by FULLDOMAIN.
86The eventual goal is that this will be defined.
87Currently, there are problems with using long strings
88for unique identifiers. This is related to the old notesfile
89structure which used a 10 character maximum and didn't check for
90overflow.
91.br
92So for now, leave this undefined.
93I'm not sure when it will be good to enable this option.
94.iz
95Select a kernel type for your machine.
96If no kernel is selected, the code may compile but most
97likely will not run.
98.iz
99PROMPT.
100If you wish the system to give a command prompt.
101Otherwise the notesfile system is promptless.
102.iz
103USERHOST.
104If this is defined, the notesfile system uses the convention
105``user@host'' to indicate where an article originated.
106If undefined, the notesfile system uses a ``host!user''
107notation.
108If you are running in an environment which supports Internet
109style names, you may choose to use this.
110.iz
111DYNADIR.
112When defined, the notesfile system will determine the default
113spool directory notesfiles from /etc/passwd.
114The home directory for the user ``notes'' (actually whatever is
115specified in the Makefile) is read from /etc/passwd and the
116parent directory is used as the default spool directory.
117Thus if notes' home directory is ``/usr/spool/notes/.utilities'',
118the default directory is ``/usr/spool/notes''.
119This assumes that notes' home directory is in the .utilities
120directory.
121.sp
122This is useful for the case where a single binary will be run
123on several machines with differing disk layouts.
124On one, the database might live in /usr/spool/notes; another
125host might have the data base in /mnt/notes.
126By using DYNADIR and moving the ``notes'' home directory
127on various machines, only one binary is needed.
128.sp
129If the notes database lives in the same place on all of your
130machines, a better approach is to use the MSTDIR definition
131in the Makefile.
132.iz
133K_KEY.
134When defined, the ``k'' and ``K'' keys act similarly to the
135``q'' and ``Q' keys respectively.
136The choice is up to you.
137Defining them allows reading of notes with one hand.
138However some people get aggravated when the miss the ``j'' key
139and hit the ``k'' key.
140All the documentation considers the ``k'' key to be active.
141.iz
142BIGTEXT.
143Define this is you want to allow notes longer than 65000 bytes.
144Note that if you have old notesfiles, you will have to dump and
145reload them with the ``nfdump'' and ``nfload'' programs before
146the new code will work on them.
147.iz
148.ft B
149The following definitions are pretty much ``stock'' and
150usually aren't changed.
151.ft P
152.iz
153NFMAINT.
154This is the name of the notesfile which receives control messages,
155error reports and other notesfile logging functions.
156I do not recommend #undef'ing this.
157.iz
158AUTOCREATE.
159When defined, network receptions of previously undefined notesfiles
160will cause the creation of that notesfile.
161If undefined, the reception will fail if the notesfile doesn't
162exist.
163This is used in environments such as USENET where new notesfiles
164are often created remotely.
165.iz
166STATS.
167If defined, the statistics keeping code is enabled. If undefined,
168the notesfile system will not keep statistics.
169Keeping statistics involves no space overhead and relatively
170little time overhead; I recommend leaving this defined.
171.iz
172FASTSEQ.
173Enables code which ``fails-quickly'' by determining in an
174inexpensive operation if there can't be any new articles.
175When there might be new articles,
176a more thorough and time consuming algorithm
177is used.
178.iz
179DUMPCORE.
180This defines a subdirectory of the notesfile utility directory
181where core images generated by internal consistency checks are
182placed. If undefined, the errors will be logged but no core
183image is generated.
184.iz
185FASTFORK.
186This definition enables a quick forking algorithm which
187exec's the desired program immediately instead of going through
188the system(III) interface.
189It avoids an extra fork()/execl() and shell startup costs.
190However some functionality is lost.
191.iz
192[finished editing parms.h]
193.iz
194[edit] Makefile
195.iz
196select BIN.
197The directory where user commands are kept.
198The Makefile will NOT create this directory.
199At UIUC, we use /usr/bin. Another common choice is
200/usr/local.
201.iz
202MSTDIR.
203The default directory for notesfiles.
204The Makefile WILL make this directory for you.
205This is typically /usr/spool/notes.
206.iz
207ARCHDIR.
208Old notes never die, they go here instead;
209the Makefile WILL make this directory for you.
210.iz
211NET.
212This is the directory where the notesfile networking programs
213``nfxmit'' and ``nfrcv'' will be placed.
214In most cases, ``/usr/bin'' is a good choice.
215You may wish to change it if your UUCP or other networking
216mechanisms use other directories.
217This directory must already exist;
218the Makefile will not create it.
219.iz
220AUTOSEQ.
221The invocation name for the automatic sequencer.
222For multiple names like `autoseq', `readnotes' and `autonotes',
223make links to the file ``/usr/bin/notes'' with the appropriate
224names (assuming that BIN = `/usr/bin').
225.iz
226NOTES.
227The username of the user who ``owns'' all the notesfiles.
228.iz
229NOTESUID.
230The numeric userid of the notesfile ``owner''.
231For example NOTES = notes, NOTESUID = 10.
232.iz
233NOTESGRP.
234The name of the group to which the ``NOTES'' signon belongs.
235.ft B
236It is strongly recommended that this be a special group
237just for the notes database and programs.
238.ft P
239.iz
240ANON.
241The name of the ``anonymous'' user.
242.iz
243ANONUID.
244The numeric userid of the ``anonymous'' user;
245this should be an idle user id since it is not allowed to
246run the notesfile program.
247.iz
248LIBDIR.
249The directory to contain ``libnfcom.a'', a user accessible library
250of routines.
251This is distributed as /usr/local/lib.
252.iz
253CFLAGS.
254You may wish to arrange for split I/D loading on a PDP-11
255(the -i flag).
256It may also be prudent to optimize the code (-O flag).
257If code size is an issue, remove the RCSIDENT definition;
258when defined, version control information is included in the
259binaries and they are correspondingly larger.
260.iz
261[finished editing]
262Makefile
263.iz
264[may need to become super-user at this point]
265.iz
266type ``make base''
267and assess its completion.
268It will tell you if all went well.
269.ft B
270If you are merely installing a new version of the notesfile code,
271you should type ``touch base'' instead of ``make base''.
272.ft P
273.iz
274Signon as notesfile ``owner''.
275While remaining super-user isn't a fatal flaw at this point, it
276does mean that several default notesfiles won't be generated.
277These can be created by hand if you forget.
278Nothing from this point on (including future code updates) requires
279super-user privileges.
280.iz
281cd src
282.iz
283.ft B
284If you are merely installing a new version of the code,
285type ``touch spool'' now. This tells the makefile that the spool
286directories already exist.
287.ft P
288.iz
289make boot.
290This is the final step, it should complete with a message
291that the system is installed.
292An error message when doing the ``mknf -on nfmaint nfgripes''
293probaby means you are still super-user.
294Don't sweat it; just become notes and type the ``mknf'' command
295line over. Everything is now fine.
296.iz
297You may have to be Super-User for the next step depending on the
298modes of your manual directory, /usr/man.
299.iz
300cd ../man.
301[the man page directory for notesfiles]
302.iz
303make install.
304to install the man(I) pages for the notesfile system.
305They are placed, by default, in the directories /usr/man/man1,
306/usr/man/man3, and /usr/man/man8.
307.iz
308Examine the ``Samples'' directory for templates of files normally
309in the notesfile utility directory.
310These files include shell scripts to run through cron(8) which
311queue network transmissions, expire old notes, and
312map between notesfiles and news.
313.iz
314Modify UUCP's ``uuxqt.c'' to allow remote execution of ``nfrcv''.
315This is unnecessary if no notesfile networking will be done
316or if another remote execution mechanism will be used.
317Some versions of UUCP have a file ``/usr/lib/uucp/L.cmds''
318which contains names of permitted commands.
319.iz
320Modify /etc/rc to remove notesfile locks at boot time.
321[4.2 BSD machines might prefer to use /etc/rc.local.]
322Add the command ``rm -f /usr/spool/notes/.locks/*''.
323.ez
324
325.a1 "Upgrading Existing Notesfile Databases"
326
327 Revision 1.7 of the notesfile system requires converting
328existing notesfile databases to a new format.
329A set of programs to accomplish this task are included in the
330distribution.
331The ``nfdump'' program converts notesfiles into an ASCII representation.
332The ``nfload'' program converts this ASCII representation back
333into a properly formatted notesfile.
334To convert an existing notesfile database, these steps are what I
335follow:
336
337.bz
338.iz
339Compile ``nfdump'' with the OLD notes distribution.
340If your version of the software is old enough not to have a copy
341of nfdump,
342I suggest you either try to adapt the version in the current
343distribution or using the networking programs ``nfxmit'' and ``nfrcv''
344to get the information between the old and new databases.
345.iz
346Compile ``nfload'' with the NEW notes distribution.
347.iz
348cd /usr/spool/notes
349.iz
350mkdir .OLD
351.iz
352mv * .OLD
353.iz
354run the following script:
355.nf
356.br
357#! /bin/csh -f
358foreach i (`ls .OLD`)
359 echo $i start
360 nfdump-old /usr/spool/notes/.OLD/$i - | nfload-new $i
361 echo $i done
362end
363echo ALL DONE
364.fi
365.iz
366rm -rf .OLD
367.ez
368
369 You will also have to convert the sequencer information.
370In the ``utility/seq-cvt'' directory there are a pair of programs
371``seqtoascii'' and ``seqtobinary''.
372To convert the sequencer information:
373
374.bz
375.iz
376make ``seqtoascii'' using the OLD structs.h and parms.h.
377.iz
378make ``seqtobinary'' using the NEW structs.h and parms.h.
379.iz
380cd /usr/spool/notes/.sequencer
381.iz
382mkdir .OLD
383.iz
384mv * .OLD
385.iz
386run this shell script:
387.nf
388.br
389#!/bin/csh -f
390foreach i (`ls .OLD`)
391 echo $i
392 seqtoascii .OLD/$i | seqtobinary $i
393end
394echo ALL DONE
395.fi
396.iz
397rm -rf .OLD
398.iz
399If you are going to use the FULLDOMAIN option, you may want
400to go ahead and perform the following steps:
401.iz
402run this shell script, appropriately modified to reflect
403your domain setup.
404This one reflects the naming at UIUC.
405.nf
406.br
407#!/bin/csh -f
408foreach i (Sy:*)
409 echo $i
410 ln $i $i.UUCP
411 ln $i $i.Uiuc.ARPA
412end
413echo ALL DONE
414.fi
415.iz
416You have now converted your notesfile database to 1.7 format.
417Install the new binaries and fire away.
418.ex
419
420
421.a1 "Hints on Installing Notesfiles on Multiple Systems"
422
423 Notesfile binaries are portable across similar machines.
424User-id's and hostnames are determined by examining /etc/passwd
425and through system calls.
426
427 To install the Notesfile system on a network of like machines
428(a collection of 68000 workstations for example)
429one machine must go through the procedure detailed above.
430A shell script ``rinstall'' is included in the notesfile
431source directory.
432This shell script will propagate copies across the network.
433Rinstall is a simple script that assumes the correct
434hierarchies exist on the target machines.
435It was written to use the 4.2 BSD ``rcp'' and ``rsh'' programs
436to copy files and remotely execute commands.
437Different networking commands will require changes to the shell
438script.
439
440 To generate the proper hierarchies on other systems,
441copy the Makefile to each of the machines and make both
442``base'' and ``spool''. This will create the proper files
443and directories for the notesfile system.
444Then return to the master machine and run the rinstall script
445to send binaries to each of the other machines.
446
447 The ``Samples'' directory of the Notesfile distribution
448contains example cron scripts for sending information between
449a network of systems running notesfiles.
450These shell scripts can prove helpful in setting up notesfile
451transmissions around your local network.
452
453.a1 "Mail to Notesfiles"
454
455 To use the nfmail program with the 4.1 BSD /etc/delivermail
456or the 4.2 BSD /usr/lib/sendmail
457insert lines of the following form in the file /usr/lib/aliases.
458
459.in +1i
460.nf
461somenotes: ``|/usr/spool/notes/.utilities/nfmail somenotes''
462gripes: ``|/usr/spool/notes/.utilities/nfmail problems''
463.fi
464.in
465
466.a1 "The Notesfiles/News Gateway"
467
468 The notesfile/news gateway may need a little more tickling to
469convince it to work properly. For more information on how to set this
470up properly, see section 3.5 (``Interfacing to News'') and look at
471the file `Src/newsgate.h'.
472Appendix B (``Interfacing Notesfiles to News'')
473is another source of information for connecting the two systems.