|
|
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.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.