Annotation of 43BSDReno/share/doc/usd/11.notes/a.checklist, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.