new upstream release. please test it and signoff. -Andy About this release ------------------ This is largely a bug-fix release, but also includes a new 'man -K' option to search the full text of all manual pages, as well as support for interpreting pairs of manual page names given on the command line as equivalent to a single manual page name containing a hyphen (e.g. 'man foo bar' => foo-bar(1)) suggested by various posters to the git mailing list. For full details of these and of the other improvements in this release, please see the files docs/NEWS and docs/ChangeLog in the source distribution. man-db 2.5.6 (26 August 2009) ============================= Major changes since man-db 2.5.5: Fixes: ------ o Exact-section database lookups were incorrectly returning all database entries whose section names were prefixes of the requested section name. In some cases this could confuse mandb into never believing that the database was up to date. o Fix handling of pages with comma-separated names ("foo, bar, baz") in their NAME sections, broken by a change in 2.5.0 (!) to ignore manual page names containing spaces. o Fixed a buffer overflow in the pipeline library's line-reading functions. I don't believe this to be exploitable: at worst we might believe that there's some garbage at the end of manual pages (whose contents are untrusted anyway) and this bug typically resulted in a failed assertion the next time anything tried to read a line. o Plugged two substantial memory leaks in the pipeline library. o whatis and apropos only display any given manual page, or pointers to it, once. o man now sets less(1)'s environment up correctly for manual pages encoded in CP1251. o manconv no longer confuses situations such as "this UTF-8 character is not representable in the target encoding" with "this text is not in UTF-8". Improvements: ------------- o The default configuration file now includes section 0, used on some systems to document C library header files. o 'make check' now passes in the presence of a UTF-8-aware col, such as that in util-linux-ng. o The 'man -K' option is now supported to search the full text of all manual pages. This was inspired by a similar option in the other man package (currently at version 1.6f) currently maintained by Federico Lucifredi and formerly by Andries Brouwer, but I took advantage of man-db's pipeline library to implement it entirely in-process, without having to start a separate grep process for every manual page. In my tests with fairly typical searches across variously all manual pages or just one section, man-db's implementation ran between 3 and 10 times faster. o Database directories are now only created when there are corresponding manual page directories, not just because they're mentioned in the configuration file. o By default, man will now try to interpret pairs of manual page names given on the command line as equivalent to a single manual page name containing a hyphen (e.g. 'man foo bar' => foo-bar(1)). This supports the common pattern of programs that implement a number of subcommands, allowing them to provide manual pages for each that can be accessed using similar syntax as would be used to invoke the subcommands themselves. Suggested by H. Peter Anvin, Federico Lucifredi, and others on the git mailing list. o The build process is now quieter by default. Use './configure --disable-silent-rules' or 'make V=0' if you don't like this or your make(1) doesn't support the non-standard extension required. o 'make install' now installs the manual. o manconv understands a wider range of Emacs-style coding tags. o Recommendations to change MAN_DB_CREATES, MAN_DB_UPDATES, and MAN_CATS #define options in manconfig.h have been replaced by new configure options --enable-automatic-create, --disable-automatic-update, and --disable-cats respectively. Note that automatic user database creation is now off by default, as it is often too slow for the usefulness it adds; use --enable-automatic-create to enable it.