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