Annotation of 43BSDTahoe/new/notes/doc/a.checklist, revision 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.