]> granicus.if.org Git - fortune-mod/blob - fortune-mod/ChangeLog
prepare for a new release
[fortune-mod] / fortune-mod / ChangeLog
1 (Note: this file has been re-arranged to be in reverse chronological
2 order, which is The Right Thing for ChangeLogs - DLC)
3
4 November 8, 2020 (fortune-mod 3.4.0)
5
6         Made the compile-time dependency on lib-recode optional ;
7         handle the missing librinutils better.
8         ( https://github.com/shlomif/fortune-mod/issues/44 )
9
10         Add some quotes (Thanks in part to @RashadSaleh :
11         https://github.com/shlomif/fortune-mod/pull/43 )
12
13 September 24, 2020 (fortune-mod 3.2.0)
14
15         Include rinutils in the source tarball / git checkout.
16         ( https://github.com/shlomif/fortune-mod/issues/44 )
17
18 September 16, 2020 (fortune-mod 3.0.0)
19
20         Convert the documentation from troff to DocBook 5/XML using
21         doclifter ( http://www.catb.org/~esr/doclifter/ ). The resultant troff
22         man pages are included in the source release tarball.
23
24         Fix formatting of several cookies.
25
26         Minor build fixes (avoid rebuilding the symlinks).
27
28         Fix the build and tests on AppVeyor-CI / Windows
29
30         Fix some compiler warnings and modernise the code a little.
31
32         Add some new fortune cookies.
33
34         New major version digit just in time for Rosh Hashana
35         and Talk like a Pirate day. Happy new yea..arrrrrrrrr!
36
37 August 30, 2020 (fortune-mod 2.29.1)
38
39         DEVELOPMENT RELEASE
40
41         Fix the build and tests on AppVeyor-CI / Windows
42
43         Fix some compiler warnings.
44
45 August 20, 2020 (fortune-mod 2.29.0)
46
47         DEVELOPMENT RELEASE
48
49         Convert the documentation from troff to DocBook 5/XML using
50         doclifter ( http://www.catb.org/~esr/doclifter/ ). The resultant troff
51         man pages are included in the source release tarball.
52
53         Fix formatting of several cookies.
54
55         Minor build fixes (avoid rebuilding the symlinks).
56
57 June 02, 2020 (fortune-mod 2.28.0)
58
59         SECURITY [low risk]: avoid overflow with the -i flag
60
61         Correct attributions and typos (Thanks to Tobin Yehle.)
62
63         Small code cleanups.
64
65 May 02, 2020 (fortune-mod 2.26.0)
66
67         SECURITY: Avoid integer overflow in parsing the percentages which caused
68         using negative integers.
69
70         https://metacpan.org/pod/Test::Trap is a new tests' dependency
71
72         Format strings cleanups in C.
73
74 April 30, 2020 (fortune-mod 2.24.0)
75
76         SECURITY: Avoid some potential buffer overflows in unstr, strfile and randstr.
77                 - This was found to exist in NetBSD's fortune, and FreeBSD's fortune
78                 as well (OpenBSD's fortune appear to have been fixed).
79
80         Add regression valgrind tests for the buffer overflows.
81
82         Some cleanups inspired by OpenBSD'd fortune.
83
84 April 29, 2020 (fortune-mod 2.22.0)
85
86         SECURITY: Avoid some hypothetical buffer overflows in unstr, strfile and randstr.
87
88         Modernize and refactor the code.
89
90         Avoid build targets' proliferation in CMake.
91
92 April 04, 2020 (fortune-mod 2.20.0)
93
94         Further avoid double traversal if FORTDIR == LOCFORTDIR.
95
96         Using clang-format to format the code.
97
98         Eliminate -D_FORTIFY_SOURCE warnings.
99
100         Modernize and refactor the code.
101
102 March 30, 2020 (fortune-mod 2.18.0)
103
104         Avoid double traversal if FORTDIR == LOCFORTDIR.
105
106         Typos' corrections and a new quote.
107
108 February 26, 2020 (fortune-mod 2.16.0)
109
110         Better portability to Microsoft Windows and other OSes
111         Thanks to AppVeyor (done by Shlomi Fish).
112
113         Add the -u flag [from debian]
114
115         Add fortune.desktop [from debian]
116
117         Remove backspaces in a cookie [from debian]
118
119         Complete the lyrics of a Leonard Cohen song [from debian]
120
121         Correct a misattribution.
122
123 February 23, 2020 (fortune-mod 2.14.0)
124
125         Correct some typos and add some new cookies.
126
127         Better Win32/Win64 Portability (AppVeyor is still failing.)
128
129         Code cleanups.
130
131 December 18, 2019 (fortune-mod 2.12.0)
132
133         Extract rinutils as a package and require it as a dep:
134         https://github.com/shlomif/rinutils/ .
135
136         Move some jokes to the offensive collection:
137         https://github.com/shlomif/fortune-mod/pull/38 - thanks
138         to @s0nata .
139
140 June 30, 2019 (fortune-mod 2.10.0)
141
142         Move strfile and unstr to /usr/bin :
143         https://github.com/shlomif/fortune-mod/issues/35
144
145         Code cleanups: warnings and portability.
146
147         Better porting to windows / appveyor-CI
148         (still not perfect)
149
150 June 07, 2019 (fortune-mod 2.8.0)
151
152         Add some quotes by amigojapan.
153
154         Some improvements for spelling, punctuation and grammar.
155
156         Extract a common C header.
157
158         Add TidyAll tests.
159
160 December 19, 2018 (fortune-mod 2.6.2)
161
162         Fix the cmake files installation paths. See
163         https://github.com/shlomif/fortune-mod/pull/29 .
164
165         Some improvements for spelling, punctuation and grammar.
166
167         Normalize the numbering of "Great Moments in History":
168         https://github.com/shlomif/fortune-mod/issues/28 .
169
170 July 10, 2018 (fortune-mod 2.6.1)
171
172         Fix the previously rotated display of offensive fortunes (using the "-o"
173         or "-a" flags). See https://github.com/shlomif/fortune-mod/issues/26 .
174
175         Incorporate several more minor patches from Debian.
176
177 June 26, 2018 (fortune-mod 2.6.0)
178
179         Incorporate patches from the Debian package.
180
181         Add the "tao", "pratchett" and many individual cookies.
182
183 March 22, 2018 (fortune-mod 2.4.1)
184
185         Add the missing cmake/Shlomif_Common.cmake file.
186
187 March 22, 2018 (fortune-mod 2.4.0)
188
189         Fix issue #24 reported by @pouar of an underflow error in strfile.
190
191         Fix some GCC warnings with the Recode flags.
192
193         Remove some trailing empty lines in fortunes
194
195 February 15, 2018 (fortune-mod 2.2.1)
196
197         Fix some mispellings.
198
199         Remove some duplicates.
200
201         Thanks to bug reporters on the bug trackers of Linux distributions.
202
203 January 31, 2018 (fortune-mod 2.2.0)
204
205         Add the "disclaimer" cookie file (thanks to mathew).
206
207         Correct some problems in the documentation.
208
209         Fix some memory leaks (thanks to valgrind).
210
211         Reenable the valgrind tests (requires Recode 3.7).
212
213 January 11, 2018 (fortune-mod-2.0.0)
214
215         Correct typos.
216
217         Deprecate the BSD_REGEX - we now use only POSIX ones.
218
219         Various build fixes.
220
221 March 25, 2017 (fortune-mod-1.99.5)
222
223         Add a new cmake-based configuration/build/install system.
224
225         Converted the source files to UTF-8.
226
227         Added automated tests.
228
229         Removed trailing whitespace.
230
231         Reformatted long (> 80 chars) lines.
232
233         Fixed many typos.
234
235         Fixed some compiler warnings.
236
237         Added a build-time option to remove the “-o” (= “offensive”) flag.
238
239         Incorporated some downstream patches from Linux distributions.
240
241
242 March 05, 2004 (fortune-mod-1.99.1)
243
244         Most of the changes have occurred at some point in time in the last
245         5 years.
246
247         A high number of spelling, punctuation, formatting and grammar
248         fixes.
249
250         Internationalisation support.
251
252         New -c option to see which file a fortune came from.
253
254 August 29, 1997
255
256   Incorporated a couple of minor changes made in the (old) Debian
257   fortune-mod package, including the addition of an extra data file
258   called 'cookie'.  Renamed some documentation files, and included some
259   install information for non-Linux users.  Added a "-v" option to
260   report the program version.
261
262   I intend to submit this distribution to SunSITE RSN.
263
264     -- Dennis L. Clark <dbugger@progsoc.uts.edu.au>
265
266 May, 1997
267
268   This release fixes many of the portability problems with the
269   fortune-mod program released by Amy Lewis in October, 1995.  The
270   previous version had many Linux-isms in it, which left it unworkable
271   on any other platform.  This version replaces most of these with more
272   standard calls, making it more likely to work under other platforms.
273   The Makefiles have been modified so that GNU's gcc and make are no
274   longer required: any standard make and ANSI-compatible C compiler
275   should work.  Sorry, pre-ANSI compilers are not supported (c'mon, this
276   is the 90's, darn it!)
277
278   This version has been tested to work on SunOS 4.1.x as well as Linux.
279   All changes made to the sources were as platform-independant as
280   possible.  Therefore, no "#ifdef LINUX" or "#ifdef SUNOS4" directives
281   appear in the code.  An effect of this is that a number of 'implicit
282   declaration' warnings are emitted by gcc under SunOS 4.1.x, but this a
283   problem with SunOS's standard headers, not with the program or the
284   compiler.  The benefit of this approach is that it eases the work of
285   expanding the port to include other platforms. Bug reports and fixes
286   for other platforms are most welcome!
287
288   A few "standard" C function calls were replaced with more standard
289   counterparts at various points.  Generally, when there was a choice
290   between a BSD version of a function and a POSIX version, the POSIX
291   version was favoured (even though fortune originated on BSD).  An
292   exception to this was the regex functions: either POSIX or BSD
293   versions can be used, with selection made via the top-level Makefile.
294
295   Fortune and strfile also compiles on Solaris 2.5, but a discrepency
296   between the declaration and implementation of 'struct dirent' on the
297   test platform caused fortune to execute incorrectly there.  It is not
298   certain whether this is a bug in the header file, the C library, or
299   the test platform.
300
301   While the making of this release was not meant to become a bug
302   search-and-destroy mission, some bugs were inadvertently discovered
303   and fixed. including the known bug of using -a with a file that occurs
304   in both the offensive and inoffensive directories.  Fixing this
305   particular bug required a way to be able to separately identify two
306   fortune files with the same name, with one in the inoffensive
307   directory, the other one in the offensive directory.  Now, such a name
308   will be taken to be the inoffensive file by default.  However, you can
309   now append '-o' to a fortune name, and the '-o' will be removed and
310   the offensive directory will be searched.  Thus you can say (assuming
311   you use the distributed datfiles):
312
313         fortune 80% politics politics-o
314
315   Which has an 80% change of giving an "inoffensive" political fortune,
316   and a 20% change of giving an "offensive" political one.  Note that
317   this makes fortune-mod backwards-compatible with BSD fortune, but only
318   for users, not fortune database maintainers.
319
320   Of course, this solution only passes the buck: with the above example
321   again, if you have a 'politics-o' file in your inoffensive directory,
322   you are back to square one.  OTOH, seeing that '-o' originally was
323   meant for offensive fortunes, using it for inoffensive ones is simply
324   asking for trouble.
325
326   Bug fixed: Fortune's definition of a fortune length (for -s and -l)
327   was inconsistent.  Unordered fortunes counted the 2 delimiting
328   characters (as hinted in the man page), but sorted or randomized
329   fortunes did not.  Now the delimiting characters are _NEVER_ counted,
330   so you will always get the length limit you expect.
331
332   Another bug fix: -l and -s can now work together with -m.  Previously
333   -l and -s were ignored when -m was in effect.  The new behaviour helps
334   me count how many long or short fortunes there are in a file.
335
336   Ansify has been removed from the package, as well as some filter
337   scripts from NetBSD that no longer appear useful.  Randstr has been
338   kept, but has not been improved in any way.  It at least has a man
339   page: maybe somebody will find it useful.
340
341   Some of the documentation (including the man pages) has been improved
342   and updated, and some files have been renamed so that the package
343   looks less Linux-specific.
344
345     -- Dennis L. Clark <dbugger@progsoc.uts.edu.au>
346
347 Late October 1995
348   Ansify has been abandoned.  I'm going to distribute this working version
349   of fortune, and then see how difficult it would be to add termcap/terminfo
350   enhancements to fortune itself--I don't anticipate serious problems, but
351   I'd rather go ahead and get this on the net.
352
353   A last-minute change was made to the way that percentages are displayed
354   with -f; it is now in the format nnn.nn%.  The reason for this is that
355   with the multiplication of small files, fortune -af displayed a large
356   number of "0%"s--no worse than the old version, but not helpful.
357
358   The fortunes database was finally cleaned up, and this version is now
359   being distributed (at least, I hope it is).  I don't consider the current
360   division of fortunes among files absolutely canonical; some are certainly
361   in the wrong places.  But things are *better*.
362
363 Amy A. Lewis    alewis@email.unc.edu
364
365 Mid-October '95
366   Another utility, ansify, now compiles; it has not been tested at all, so
367   it may not work even slightly.
368
369   Ansify is a rather stupid program, all things considered, but the work on
370   it does raise an interesting possibility for an enhanced fortune.  At
371   present, the fortune databases contain x^Hy sequences for underline and
372   special characters (and this can be extended to include bold, = x^Hx).
373   Ansify is stupid because it doesn't use the proper tools, ie termcap or
374   terminfo (hmmm ... since it works on files, that may not be so stupid);
375   it appears that if that can be done, then a termcap/terminfo enhanced
376   fortune could be produced, which would recognize the existence of ^H in
377   a string and attempt to display using appropriate control sequences.
378   This sort of modification would be of greater interest to casual users,
379   I think, than even the bug fixes, and since it would not force changes
380   in the storage of fortunes, it is eminently portable.  Consider this a
381   'todo' announcement.
382
383 Added (early October 95):
384   A new executable, rot, which is a rot13 filter (a caesar cipher). Most
385   probably have caesar, but on the other hand, if you compile this mess
386   as root, caesar probably isn't in the path.
387
388   A new parameter to fortune, -n, which permits you to specify the length
389   at which to break between long (-l) and short (-s) fortunes.
390
391   fortune -f now shows probabilities.
392
393   A bug: fortune -a nn% filename filename ... now fails without an error
394   message, if the filename named following the percentage exists in both
395   the inoffensive and the offensive directories (that is, if you have two
396   files containing definitions, one called fortunes/definitions and one
397   called fortunes/off/definitions, and call fortune as: fortune -a 10%
398   definitions religion politics ..., then fortune simply fails).  This
399   appears to be an artifact of the changes that were made in storage/
400   naming of offensive fortunes.  It only happens with the combination of
401   a percentage with -a and inoffensive/offensive files that share a name.
402   Temporary workaround: rename one or the other of the files (*sigh*  I
403   don't like that as a solution).
404
405   The man pages have been updated.  The old man pages are also available,
406   but are not installed unless you do it yourself (the new ones are).  The
407   new man pages have the extension .man; the old ones have numeric
408   extensions.
409
410   A place has been created for fortune files containing HTML tags (the
411   reason I started playing with this mess was because I wanted to be
412   able to format fortunes nicely for the web without having to run an
413   enormously complex script to figure out from formatting how best to
414   display things, a particular problem since the formatting isn't
415   consistent).  Tagged fortunes don't exist yet, and I'm seriously
416   considering creating a slightly different fortune binary that would
417   output the necessary headers and trailers (reducing the CGI script
418   to complete triviality) (-f isn't really needed for a webfortune).
419
420 Todo: I'm thinking of adding a -x to unstr, to rot13 the output.  This
421 would have the effect of putting all the necessary tools in one package.
422 It further breaks compatibility with BSD tools (which has *mostly* been
423 maintained, merely enhanced slightly, although the change in how
424 offensive files are distinguished from inoffensive might be regarded as
425 breaking compatibility) by adding yet another parameter to unstr, which
426 didn't have any, before.  So I haven't decided, yet.
427
428 Todo: KOI8 encoded fortunes?  They couldn't be rotated without a great
429 deal of trouble, of course.
430
431 More minor fixes:
432
433   The way that fortune -m prints its output has been slightly changed.  It
434   used to print the delimiter first, then, if this were the first fortune
435   from a particular file, it printed the name of the file in parentheses.
436   It now prints the first fortune without an initial delimiter; if the
437   fortune is the first from a particular file, it then prints
438   (filename), newline, delimiter, newline *to stderr*.  Redirect stderr to
439   stdout to get something *similar to* (but not the same as) the old
440   behavior.  The new behavior, if stderr is redirected to stdout, and
441   both are then redirected to a file, produces fictitious entries, one
442   per file in which a match was found.  However, whether stderr is
443   redirected or not, the new format produces files that strfile can
444   parse without choking (the old format, since it placed the filename
445   on the same line as the delimiter character, effectively forced editing
446   of the file in order to make it usable by strfile, unless the option of
447   concatenating two fortunes with an ugly "% (filename)" line separating
448   them was considered acceptable output).  Under the new display format,
449   if stderr is redirected into the file, you end up with filenames marking
450   the separation between files (as before), but they are now valid text
451   strings (which should probably, therefore, be deleted).
452
453   In other words, if you don't care what files the original text came from,
454   and want a new file containing (let us say), quotes from Mark Twain,
455   you might do:
456   fortune -am '-- Mark Twain' >twain
457   The files accessed would march down the screen; the fortunes would be
458   stored in parsable format into the file twain.  If, however, you planned
459   to edit (perhaps to remove the quotes from the original file, you might
460   then wish to redirect stderr to stdout.  Using bash:
461   fortune -am '-- Mark Twain' &>twain
462     or
463   fortune -am '-- Mark Twain' >twain 2>&1
464
465   [The above is now in the man page, more or less]
466
467 Late September, 1995
468   Too many changes to mention, really.  Look at the source code for
469   comments on individual files.  LINUX.DIF has been removed.
470
471   It is worth noting that strfile was completely broken as distributed,
472   and fortune had code to make it report a different file list than the
473   one it used to retrieve fortunes.  There's some rather strong language
474   on the subject in strfile.c; if it offends you, tough.
475
476   Bugs were fixed, and some enhancements were added.  Unstr, in
477   particular, has had its command line considerably enhanced.  Strfile
478   now *really does* sort, instead of merely setting the 'sorted' flag.
479   Ditto for randomizing.
480
481   Noteworthy: the way to distinguish between offensive and non-offensive
482   files has changed for fortune.  A second directory (which may be a
483   subdirectory of the main fortune directory; the program doesn't
484   add files recursively down a directory tree) has been added to
485   pathnames.h.  Offensive files should be placed there.  There is no
486   longer any need to add the -o suffix to file names, and the problems
487   with finding files (especially offensive ones) seem to have
488   disappeared in the process.
489
490   Currently, I'm working on breaking the fortune files themselves into
491   smaller, more manageable pieces, checking spelling, punctuation, and
492   grammar, and trying to reduce redundancy.  The eventual goal, after
493   the files are cleaned up, is another set of files carrying HTML tags,
494   which would then massively simplify a CGI script that calls fortune.
495
496   New Makefiles.
497
498   A 'randstr' (I want to call it 'lottery,' but I won't) utility, which
499   amounts to a poor woman's stripped-down fortune, to illustrate some
500   other possible uses of strfile-type random-access strings files.
501
502   Amy A. Lewis   alewis@email.unc.edu
503