Annotation of 43BSD/contrib/notes/doc/a.checklist, revision 1.1.1.1

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.

unix.superglobalmegacorp.com

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