[arch-dev-public] [signoff] man-db 2.5.6-1
a.radke at arcor.de
Wed Sep 2 14:27:34 EDT 2009
new upstream release. please test it and signoff.
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
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
man-db 2.5.6 (26 August 2009)
Major changes since man-db 2.5.5:
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".
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.
More information about the arch-dev-public