Annotation of 43BSDTahoe/new/notes/doc/c.changes, revision 1.1

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