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