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