Annotation of 43BSDReno/share/doc/usd/11.notes/c.changes, revision 1.1.1.1

1.1       root        1: .\"    @(#)c.changes   6.1 (Berkeley) 5/26/86
                      2: .\"
                      3: .ls 1
                      4: .ap C "Distributed Revisions of the Notesfile System"
                      5: 
                      6:        Several revisions of the Notesfile System are available.
                      7: This appendix attempts to describe the differences between
                      8: each revision and the previous one.
                      9: 
                     10: .a1 "Previous Revisions"
                     11: 
                     12:        The Notesfile System was first distributed in June 1982.
                     13: Since then it has gone through a number of internal revisions
                     14: and several major revisions.
                     15: The initial 1.0 revision had numerous bugs in the code and
                     16: inadequacies for interfacing with the news system.
                     17: Release 1.3 (the most recently ``announced'' release)
                     18: became available in March 1983.
                     19: 
                     20:        Revisions are maintained with the RCS system.
                     21: Major releases are number 1.1, 1.2, 1.3 ... 1.x.
                     22: Internal modifications are numbered off of the base revision.
                     23: Internal revisions between 1.2 and 1.3 are of the form
                     24: 1.2.1.x.
                     25: All files in a distribution will have the same major
                     26: revision number; files modified since the major
                     27: release will an internal revision number based off the major
                     28: revision number.
                     29: 
                     30: .a1 "Revision 1.5"
                     31: 
                     32:        Revision 1.5 is an intermediate revision.
                     33: Revision 1.4 was stillborn.
                     34: It's primary purpose was to integrate a number of useful 
                     35: modifications sent in by notesfile users.
                     36: A number of recent 1.5+ distributions have almost the same
                     37: functional differences from previous revisions as the newer
                     38: revision 1.6 code.
                     39: 
                     40: .a1 "Revision 1.6"
                     41: 
                     42:        Revisions 1.6 of the Notesfile system includes a number
                     43: of changes.  Numerous bugs in the code were repaired.
                     44: Several functional differences are also evident in 
                     45: this revision of the code.
                     46: Major changes are listed below in chronological order.
                     47: To see what has changed since you received your copy of the code,
                     48: find the first date after you received your distribution 
                     49: and read from there.
                     50: 
                     51: Fall 1983:
                     52: 
                     53: .bx
                     54: .ix
                     55: Archival techniques are more refined.
                     56: Previous revisions determined the age at which to expire notesfiles
                     57: from the nfarchive command line.
                     58: Each notesfile now contains its own `expiration threshold'.
                     59: This threshold can be set to an arbitrary time (3 days),
                     60: default to the value specified on the nfarchive command line,
                     61: or
                     62: specify never to archive the notesfile.
                     63: These options allow expiration of the entire ``net.*'' collection
                     64: of notesfiles with the single command line `nfarchive net.*'.
                     65: Shorter duration notesfiles (maybe net.jokes) can be explicitly
                     66: set to a few days; notesfiles like net.bugs can be set to `never'.
                     67: The remaining notesfiles might be set to `default'.
                     68: A program `expirechange' is provided in the utility subdirectory
                     69: of the distribution to initialize the expiration threshold of
                     70: existing notesfiles.
                     71: This is recommended because the previously
                     72: unused field may contain garbage values.
                     73: .ix
                     74: A simple program `namechange' is included in the utility
                     75: directory to change the name within the data base.  If you
                     76: pick up copies of the data base and set them down on
                     77: other systems this program will change the name of the system
                     78: the data base thinks it is on for you.
                     79: .ix
                     80: Alignment within the notesfile descriptor structure caused
                     81: me to remove 6 bytes of filler when adding a `long' to the
                     82: structure.
                     83: The size of the structure must be constant.
                     84: The program in utility/structsizes.c prints the sizes of
                     85: each of the possibly affected structures.
                     86: It would be prudent to compile and execute this program
                     87: once with the old structure definitions and once with the
                     88: new definitions to ensure that the structures are the same size.
                     89: Someday a notesfile dump/load program will be written that
                     90: makes this worry disappear.
                     91: .ix
                     92: Mapping notes out to the news system is more sophisticated.
                     93: The new scheme allows a notesfile to send base notes to
                     94: one newsgroup and responses to another newsgroup.
                     95: This is solely for the net.general/net.followup pair.
                     96: See the section ``Copying Notesfiles to News'' for a
                     97: more detailed explanation of this feature.
                     98: .ix
                     99: Binaries are portable.
                    100: With Unix kernels supporting the ``uname'' or ``gethostname''
                    101: system call the code determines the host at runtime.
                    102: The code now also looks for the notesfile owner in /etc/passwd
                    103: to dynamically determine the `notesuid'.
                    104: As an example, a local network of Vaxen all running 4.1a Bsd
                    105: can run the same binary even if the `notes' user id
                    106: varies between machines.
                    107: Eventually it would be nice to have a single binary handle all
                    108: 4.1a Vaxen, another for all 4.2 Vaxen, a third be adequate
                    109: for all USG 5.0 3b-20's.
                    110: (This does not mean that distributions will be binary only
                    111: but rather that a local administrator will be able to compile
                    112: once and ship copies of the binaries around with a simple shell
                    113: script).
                    114: .ix
                    115: The ``rinstall'' shell script updates the notesfile binaries
                    116: on a remote system.
                    117: It assumes that the local binaries will work on the remote
                    118: machine (don't rinstall from a Vax to a PDP-11).
                    119: The script uses the 4.1a `rcp' and `rsh' facilities to
                    120: perform the FTP and set modes on the remote files.
                    121: .ex
                    122: 
                    123: December 1983:
                    124: 
                    125: .bx
                    126: .ix
                    127: Notesfiles can be specified as absolute pathnames.
                    128: Commands such as ``notes /some/place/mynotes''
                    129: are now legal.
                    130: An anticipated modification will allow search rules for
                    131: notesfiles similar to those command search rules used
                    132: by many shells.
                    133: .ix
                    134: Archives are stored as notesfiles.
                    135: Now that a notesfile can be specified by an absolute
                    136: pathname, archives are stored in notesfile format.
                    137: Access to archives can be either by explicit reference
                    138: or through the new ``N'' command which automatically
                    139: nests to the archive of the current notesfile.
                    140: .ix
                    141: Nfarchive now understands about ``working sets''.
                    142: The working set is the minimum number of notes left in
                    143: the active notesfile after an archive run.
                    144: .ix
                    145: Archive destinations are mapped.
                    146: A file in the notes utility directory (.utilities/net.aliases/Archive-into)
                    147: maps from active notesfiles to their respective archives.
                    148: This file contains absolute pathnames.
                    149: (/usr/spool/notes/somenotes instead of somenotes).
                    150: .ix
                    151: The beginnings of permission modes for an archive are there.
                    152: Currently only directors are allowed to write in an 
                    153: archive notesfile.
                    154: Some more work on copying permission lists and 
                    155: other information particular to the notesfile must be done.
                    156: .ix
                    157: The director page now contains information about
                    158: the number of ``holes'' (deleted notes and responses)
                    159: in a notesfile.
                    160: This is useful for determining the need to compress a 
                    161: notesfile.
                    162: .ex
                    163: 
                    164: January 1984:
                    165: 
                    166: .bx
                    167: .ix
                    168: Each notesfile can now override the nfarchive command line options
                    169: for archiving/deleting expired notes and for expiring notes
                    170: on the basis of the director message status.
                    171: The director options page offers options to modify these fields.
                    172: The ``default'' value specifies using the value supplied on
                    173: the nfarchive command line.
                    174: .ix
                    175: The director option page has been rearranged.  More information is
                    176: displayed, more options are processed.
                    177: Many of the changes are cosmetic and oriented towards helping
                    178: the user figure out what is happening.
                    179: .ix
                    180: The 4.2 Bsd release of Unix now has its own kernel definition.
                    181: Some of the new features of 4.2 Bsd are thus included.
                    182: This includes longer filenames and (faster) advisory locking.
                    183: .ix
                    184: 4.2 Bsd (and 4.1a) allow processes to belong to
                    185: multiple groups.
                    186: The notesfile code now uses all of these groups to
                    187: determine access rights.
                    188: For example, a user belongs to
                    189: groups ``alpha'', ``beta'' and ``gamma''.
                    190: Group ``alpha'' has read permission, group ``beta'' has
                    191: write permission, and group ``gamma'' has no specific
                    192: permissions (it's covered in the ``Other'' clause).
                    193: The user is given the inclusive OR of his permissions:
                    194: in this case he is given read/write privileges.
                    195: The default ``Other'' group is used only when none of the
                    196: user's groups are explicitly named in the permission list.
                    197: Explicit permissions for users still takes precedence
                    198: over group permissions.
                    199: .ex
                    200: 
                    201: February 1984:
                    202: 
                    203: .bx
                    204: .ix
                    205: The networking software and the statistics printing package
                    206: now keep track of how many orphans are adopted by their true
                    207: parent.
                    208: This lets us determine how many base notes are actually lost
                    209: and how many show up behind their children.
                    210: .ix
                    211: The nfaccess program
                    212: allows simple and quick editing of access lists for a number
                    213: of notesfiles.
                    214: Nfaccess functions similarly to chmod(1),
                    215: you supply an access right and a list of notesfiles to apply it
                    216: to.
                    217: The new access right is placed in the access list of each notesfile
                    218: specified.
                    219: In the event of an existing access right, the new right replaces
                    220: the old one.
                    221: .ix
                    222: The code now understands about the extra work it must to
                    223: to function properly under the 4.2 Bsd signal semantics.
                    224: .ix
                    225: Nfabort provides user programs with a means of
                    226: leaving core dumps in specified places and logging
                    227: the fact with an arbitrary message in a notesfile.
                    228: The notesfile code itself uses this routine when trapping
                    229: internal errors.
                    230: .ix
                    231: Finally added the `l', `L' and `z' commands from Lou Salkind
                    232: and Rick Spickelmier.
                    233: The `l'-`L' pair mimic the `j'-`J' pair with the exception that
                    234: when no unread notes are left, the l/L commands leave the notesfile.
                    235: Thus `l' is almost a `jq' command.
                    236: .ix
                    237: The ! notesfile exclusion feature first implemented by Salkind
                    238: and Spickelmier is now in this revision.
                    239: Constructs like:
                    240: .br
                    241:        notes ``net.*'' !net.general
                    242: .br
                    243: are possible.
                    244: This example specifies all ``net.'' notesfiles except net.general.
                    245: .ix
                    246: Alternate sequencers are now available.  An alternate
                    247: sequencer allows users sharing the same signon to maintain
                    248: separate sequencer files.
                    249: .ex
                    250: 
                    251: March 1984:
                    252: 
                    253: .bx
                    254: .ix
                    255: Revision 1.6.2 created. Needed some distinction since 1.6 was
                    256: getting rather long lived and we weren't ready to call it
                    257: 1.7 yet.
                    258: .ix
                    259: Each notesfile now enforces its own
                    260: limit on the size of single notes and responses.
                    261: This is initialized to a default value when the notesfile is
                    262: created and can be changed from the director options page.
                    263: Articles longer than the permitted maximum are truncated and
                    264: have a message appended detailing how many bytes were ignored
                    265: and the name of the site where it occurred.
                    266: .ix
                    267: Customized access lists are generated when each notesfile is created.
                    268: The file `/usr/spool/notes/.utilities/access-template', if it
                    269: exists, is used to modify the default access list when a notesfile
                    270: is created.  This file contains ASCII specifications of access rights
                    271: in the same form as used on the nfaccess command line. Lines in
                    272: this file beginning with `#' are considered comments.
                    273: .ix
                    274: Author searching now understands about substrings. You no longer
                    275: have to match exactly an author.
                    276: Thus an author search would find articles written by
                    277: a user ``mark'' on any machine,
                    278: a user ``hallmark'' on any machine,
                    279: and 
                    280: any user on the ``market'' machine.
                    281: .ix
                    282: The notes/news interface has been rewritten.
                    283: The news->notes code now understands all of the USENET standards
                    284: for B-news 2.10.
                    285: Newsinput understands about the References line.
                    286: The notes->news code generates articles acceptable to the
                    287: rest of USENET.
                    288: .ex
                    289: 
                    290: December 1984:
                    291: 
                    292: .bx
                    293: .ix
                    294: The nfmail
                    295: program has been re-written to understand about how to link
                    296: responses into a notesfile. This means nfmail is now a viable
                    297: way to have your incoming mail handled. After a little
                    298: more work is done, it will handle outgoing mail via the ``p''
                    299: command equaly well.
                    300: .ix
                    301: Notes now runs set-gid. This solves some privilege problems
                    302: with set-uid programs such as signal delivery. It also
                    303: makes it easier for users to kill their jobs.
                    304: Thanks go to Lou Salkind for pointing this out long ago; I
                    305: just took a long time to realize it.
                    306: .ex
                    307: 
                    308: .a1 "Revision 1.7"
                    309: 
                    310:        The long ago promised revision 1.7 of the notesfile
                    311: code is finally a reality.
                    312: This version incorporates many of
                    313: the features promised, and a few that weren't.
                    314: I thought about merely changing things from revision 1.6.2 to
                    315: 1.6.3, but there was a change in the database format and I 
                    316: decided a more drastic change in name was called for to match
                    317: the database format change.
                    318: 
                    319:        To upgrade to revision 1.7 from a previous revision (even 
                    320: the last 1.6.2 revisions) requires a dump/load sequence with
                    321: the ``nfdump'' and ``nfload'' programs.  The man pages for
                    322: these programs give more information on how to carry out this
                    323: procedure.
                    324: 
                    325:        In addition to changing the format of the notesfile
                    326: database, you must convert the format of the sequencer files.
                    327: To do this, look at the programs ``seqtoascii'' and ``seqtobinary''
                    328: in the ``utility/seq-cvt'' directory of the notesfile distribution.
                    329: Appendix A also contains information on how to convert the
                    330: sequencer files and database.
                    331: 
                    332:        These changes took place during December of 1984 and 
                    333: include the following differences from the 1.6.2 revision of
                    334: the notesfile code.
                    335: 
                    336: .bx
                    337: .ix
                    338: The author structure for a note/response now contains the home system
                    339: name.
                    340: This provides the ability for gateway machines
                    341: to assign message-id's as needed without worrying about corrupting
                    342: the author's home system.
                    343: It also comes in handy within the context of the nfmail
                    344: program:  nfmail can now report a true author for letters
                    345: and still assign a unique identifier based on the local system.
                    346: .ix
                    347: Timestamps for articles are now stored in the standard UNIX
                    348: format: seconds since 00:00 GMT, January 1, 1970.
                    349: The code recognizes (and stores) both formats and will present
                    350: either format as needed.
                    351: .ix
                    352: Notes now supports full domain based addressing.
                    353: The nfxmit program expects a full doman address (e.g., ``uiucdcs.uiuc.arpa''),
                    354: unique id and system information is generated with full domain
                    355: information,
                    356: and
                    357: the notesfile/news gateway now generates complete domain addressing
                    358: information.
                    359: .ft B
                    360: These changes require some care in upgrading from previous releases
                    361: of the notesfile system.
                    362: .ft P
                    363: .ex
                    364: 
                    365: .a1 "On the Blackboard"
                    366: 
                    367:        The primary motivation for more work on the code
                    368: is to eliminate known bugs.
                    369: Integrating other's modifications into my code has taken
                    370: a lower priority.
                    371: 
                    372:        Sometime down the road, I hope to gather up all the
                    373: lessons learned from this first version
                    374: and 
                    375: design a second implementation.
                    376: Issues to be considered in the second implementation include:
                    377: shared notesfile data bases between several hosts,
                    378: different user-interfaces (notes-like, readnews-like),
                    379: notesfile servers,
                    380: and 
                    381: interfacing with extant systems.

unix.superglobalmegacorp.com

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