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