summaryrefslogtreecommitdiffstats
path: root/NEWS
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 01:16:24 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-05-06 01:16:24 +0000
commit9221dca64f0c8b5de72727491e41cf63e902eaab (patch)
treed8cbbf520eb4b5c656a54b2e36947008dcb751ad /NEWS
parentInitial commit. (diff)
downloadman-db-9221dca64f0c8b5de72727491e41cf63e902eaab.tar.xz
man-db-9221dca64f0c8b5de72727491e41cf63e902eaab.zip
Adding upstream version 2.8.5.upstream/2.8.5upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to '')
-rw-r--r--NEWS1982
1 files changed, 1982 insertions, 0 deletions
diff --git a/NEWS b/NEWS
new file mode 100644
index 0000000..411983b
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,1982 @@
+man-db 2.8.5 (5 January 2019)
+=============================
+
+Major changes since man-db 2.8.4:
+
+ Building man-db now requires Autoconf >= 2.63 and Automake >=
+ 1.11.2.
+
+ Fixes:
+ ------
+
+ * Fix build with Berkeley DB.
+
+ * Fail to configure if flex is needed but missing.
+
+ * Fix the comment in the first line of the configuration file in the
+ case where configure was not given a --with-config-file option.
+
+ * Fix several resource and memory leaks.
+
+ * Fix handling of \- in the right-hand side of a NAME section.
+
+ * Work around Microsoft's proprietary "System Center Endpoint
+ Protection" antivirus program in the seccomp sandbox.
+
+ Improvements:
+ -------------
+
+ * Ship a systemd timer to perform daily database maintenance.
+
+ * Allow disabling the installation of the systemd tmpfiles snippet
+ and the systemd timer by configuring with
+ --with-systemdtmpfilesdir=no and --with-systemdsystemunitdir=no
+ respectively.
+
+man-db 2.8.4 (27 July 2018)
+===========================
+
+Major changes since man-db 2.8.3:
+
+ Fixes:
+ ------
+
+ * Rely on decompressors reading from their standard input rather
+ than redundantly passing them the input file on their command
+ line. This works better with downstream AppArmor confinement of
+ decompressors.
+
+ * Fix invalid syntax in tmpfiles.d/man-db.conf when configured with
+ --disable-cache-owner.
+
+ * Make seccomp sandbox allow sched_getaffinity, sometimes used by
+ xz.
+
+ * Check for mandb_nfmt and mandb_tfmt in the manual page hierarchy
+ as documented, not in the current directory. This was broken by
+ the working-directory-handling changes in 2.8.3. Note that this
+ change means that "man -l" will never use an external formatter
+ (which was never documented behaviour and was surely a bad idea).
+
+ * Make seccomp sandbox allow some shared memory operations across
+ the board rather than just when ESET File Security is in use; the
+ Astrill VPN seems to require something similar, and there are
+ doubtless other such preload hacks.
+
+ * Some versions of ESET File Security call msgget and msgsnd; if
+ this program is in use, then allow those.
+
+man-db 2.8.3 (5 April 2018)
+===========================
+
+Major changes since man-db 2.8.2:
+
+ Fixes:
+ ------
+
+ * Make seccomp sandbox allow madvise, since that's used by lbzip2.
+
+ * Make seccomp sandbox allow kill and tgkill outright, since groff
+ uses kill to pass on signals to its child processes.
+
+ * Make seccomp sandbox allow sibling architectures on
+ x86/x86_64/x32, since people sometimes mix and match architectures
+ there for performance reasons.
+
+ * Fix version check in locale macro loading to tolerate groff
+ release candidates.
+
+ * man now only changes working directory in child processes, so
+ never fails due to being unable to change back to its original
+ working directory.
+
+ * accessdb, apropos, and lexgrog no longer emit spurious gettext
+ headers in their --help output when localised.
+
+man-db 2.8.2 (28 February 2018)
+===============================
+
+Major changes since man-db 2.8.1:
+
+ Fixes:
+ ------
+
+ * Make seccomp sandbox allow kill and tgkill when the signal is
+ directed at the current process or one of its threads; this is
+ needed by xz.
+
+ * Make seccomp sandbox allow ioctl(fd, TIOCGWINSZ), since that's used
+ by musl.
+
+ * Work around the proprietary "ESET File Security" antivirus program in
+ seccomp sandbox: if this is in use then we need to allow some
+ socket-related system calls.
+
+ * Work around the "snoopy" execve() wrapper and logger in seccomp
+ sandbox: if this is in use then we need to allow some
+ socket-related system calls.
+
+ * Interpret EFAULT from seccomp_load as meaning that seccomp is
+ unavailable, since this can be returned by some versions of
+ qemu-user.
+
+man-db 2.8.1 (9 February 2018)
+==============================
+
+Major changes since man-db 2.8.0:
+
+ Fixes:
+ ------
+
+ * Fix seccomp sandbox build on Linux/POWER.
+
+ * Fix manconv execution under seccomp when man is installed setuid.
+
+ * Make seccomp sandbox allow mremap (used by iconv, for example).
+
+ Improvements:
+ -------------
+
+ * configure now has a --without-libseccomp option to disable the use
+ of seccomp even if the library is available.
+
+man-db 2.8.0 (4 February 2018)
+==============================
+
+Major changes since man-db 2.7.6.1:
+
+ Fixes:
+ ------
+
+ * Fix locale macro loading for Chinese to load the macro file
+ corresponding to just the language part of the user's locale.
+
+ * Honour --enable-cache-owner in generated systemd tmpfiles snippet
+ rather than hardcoding "man".
+
+ * If man adds prefixes to a page to handle such things as disabling
+ hyphenation, then take account of those when looking for a
+ preprocessor line at the start of the page.
+
+ * Fix a segfault in 'man -D --help'.
+
+ Improvements:
+ -------------
+
+ * Treat "\(en" as another synonym for "\-" in NAME sections.
+
+ * Confine most subprocesses that handle untrusted data using
+ seccomp. This mainly deals with subprocesses that perform
+ encoding conversions, (de)compressors, groff programs, and a few
+ other odds and ends. groff programs use a slightly more
+ permissive filter since they need to create temporary files, so
+ additional path-based confinement (e.g. using AppArmor) is still
+ useful.
+
+ If this goes wrong, then MAN_DISABLE_SECCOMP=1 can be set in the
+ environment to disable it, but please report any such problem as a
+ bug.
+
+ * man now falls back to cat if the compile-time default pager is not
+ executable.
+
+man-db 2.7.6.1 (12 December 2016)
+=================================
+
+Major changes since man-db 2.7.6:
+
+ Fixes:
+ ------
+
+ * Don't chmod CACHEDIR.TAG if it doesn't exist.
+
+ * Correct installation of Swedish manual pages.
+
+man-db 2.7.6 (11 December 2016)
+===============================
+
+Major changes since man-db 2.7.5:
+
+ Fixes:
+ ------
+
+ * Fix build warnings with Perl 5.22.
+
+ * Document that 'man -K' searches page source, not rendered text.
+
+ * Fix a long-standing bug in man-db's internal cleanup stack
+ mechanism: if a cleanup function was pushed unexpectedly between a
+ push/pop pair, then popping the stack would remove the wrong
+ cleanup function and chaos could ensue. Avoid this by being more
+ precise about which cleanup function should be popped.
+
+ * SECURITY: Eliminate dangerous setgid-root directories. In the
+ default configuration, cache files and directories are now owned
+ by man:man rather than man:root; man and mandb are now setgid man
+ as well as setuid man (except in the --disable-setuid case). This
+ is a much simpler and safer solution to the original problem that
+ caused my predecessor to make directories setgid root, and doesn't
+ introduce any interesting new privilege since the man group's only
+ real purpose is to be the man user's primary group and nothing in
+ cache directories is group-writeable.
+
+ Maintainers of distribution packagers should take care to review
+ their installation rules in light of this change.
+
+ As far as I know this has no CVE ID, but it is described here:
+
+ https://www.halfdog.net/Security/2015/SetgidDirectoryPrivilegeEscalation/
+
+ * Fix manual page translation infrastructure to render tables
+ correctly with po4a 0.47.
+
+ Improvements:
+ -------------
+
+ * man now understands the <page>.<section> form on its command line,
+ so for example 'man chmod.2' is now the same as 'man 2 chmod'.
+ (Contributed by Mihail Konev.)
+
+ * The owner of cache files is now configured separately from whether
+ man and mandb are installed setuid, using the
+ --enable-cache-owner[=USER] option.
+
+man-db 2.7.5 (6 November 2015)
+==============================
+
+Major changes since man-db 2.7.4:
+
+ Fixes:
+ ------
+
+ * Adjust line number when inserting extra roff input.
+
+ * Disable roff input insertion with --recode.
+
+ * Build text manual with LC_ALL=C, to help reproducible builds.
+
+man-db 2.7.4 (8 October 2015)
+=============================
+
+Major changes since man-db 2.7.3:
+
+ Fixes:
+ ------
+
+ * Fix crash when eliminating manpath duplicates if canonicalising a
+ manpath entry fails.
+
+ * Fix a build system bug that sometimes caused substitutions in
+ manual pages to be left unexpanded.
+
+ * man exits with status 3 rather than 0 if its formatting command
+ exits non-zero, even if its display command exits zero.
+
+ * man honours MANWIDTH in conjunction with the -Z option, to make it
+ easier to diagnose warnings in manual pages.
+
+man-db 2.7.3 (9 September 2015)
+===============================
+
+Major changes since man-db 2.7.2:
+
+ Fixes:
+ ------
+
+ * Tools that consider the terminal line length now try the
+ TIOCGWINSZ ioctl on /dev/tty as well as standard input/output.
+
+ * mandb does a better job of coping with index files having
+ incorrect ownership.
+
+ * Squeeze blank lines internally rather than relying on the pager
+ supporting the -s option.
+
+ * Fix use-after-free in ult_src.
+
+ * Fix crash when running from a missing and unreadable current
+ directory, such as an orphaned subdirectory of /proc.
+
+ * Restore the ability to use 'man -a' noninteractively.
+
+man-db 2.7.2 (16 August 2015)
+=============================
+
+Major changes since man-db 2.7.1:
+
+ Fixes:
+ ------
+
+ * 'man -k' and 'man -f' now pass any provided -l option through to
+ the underlying apropos/whatis programs.
+
+ * apropos and whatis no longer truncate names if long output was
+ requested.
+
+ * The database handle is no longer stored in a global variable,
+ fixing a class of possible double-close bugs.
+
+man-db 2.7.1 (7 November 2014)
+==============================
+
+Major changes since man-db 2.7.0.2:
+
+ Fixes:
+ ------
+
+ * Various portability fixes for Solaris, contributed by Peter Bray.
+
+ * man now runs correctly when its current working directory has been
+ deleted. (As a result of this fix, man-db now requires
+ libpipeline >= 1.4.0.)
+
+ * 'man -a' sends its prompts to /dev/tty rather than to stderr, and
+ likewise reads replies from /dev/tty rather than from stdin.
+
+man-db 2.7.0.2 (28 September 2014)
+==================================
+
+Major changes since man-db 2.7.0.1:
+
+ Fixes:
+ ------
+
+ * Be more careful to avoid using or double-closing closed database
+ handles. Fixes test suite failures on some systems.
+
+ * Patch the fdutimens function imported from Gnulib to work around a
+ libc bug in GNU/Hurd.
+
+man-db 2.7.0.1 (24 September 2014)
+==================================
+
+Major changes since man-db 2.7.0:
+
+ Fixes:
+ ------
+
+ * Fix test suite in the case where the system supports
+ high-precision timestamps but the file system containing the build
+ directory does not.
+
+man-db 2.7.0 (22 September 2014)
+================================
+
+Major changes since man-db 2.6.7.1:
+
+ Upgrading from previous versions:
+ ---------------------------------
+
+ For the first time since version 2.4.0, the database format has
+ changed slightly, so you will need to run 'mandb --create' after
+ installing the new version to rebuild your databases from scratch.
+ (Distribution packages should do this automatically for system
+ databases.)
+
+ Fixes:
+ ------
+
+ * lexgrog now filters terminal escape sequences out of cat pages
+ before trying to parse them.
+
+ * Tools that consider the terminal line length now prioritise the
+ COLUMNS environment variable above the TIOCGWINSZ ioctl.
+
+ * Manpath elements are no longer canonicalised before being inserted
+ into the search path; this caused the use of incorrect catpaths in
+ some cases. This was broken by the LANGUAGE-handling fixes in
+ 2.5.4.
+
+ Improvements:
+ -------------
+
+ * Ship a systemd tmpfiles snippet to clean up old cat files after a
+ week.
+
+ * The modification time of manual databases is now simply stored in
+ the mtime of the database files themselves, rather than using a
+ special row. This makes databases reproducible between
+ otherwise-identical installations, as long as the underlying
+ database has predictable behaviour. As a bonus, man-db now uses
+ high-precision timestamps to determine whether it needs to update
+ databases.
+
+ * Timestamps of manual pages are also now stored in the database
+ with high precision and compared accordingly.
+
+ * Files are now ordered by first physical extent before reading
+ them, for substantial performance improvements in operations such
+ as mandb and 'man -K'.
+
+ * 'man -H' shows a better error message if no browser is configured.
+
+ * zsoelim is now installed in $pkglibexecdir, to avoid clashes with
+ other packages.
+
+man-db 2.6.7.1 (10 April 2014)
+==============================
+
+Major changes since man-db 2.6.7:
+
+ Fixes:
+ ------
+
+ * Remove test suite dependency on realpath(1).
+
+man-db 2.6.7 (10 April 2014)
+============================
+
+Major changes since man-db 2.6.6:
+
+ Fixes:
+ ------
+
+ * Fix a test failure when configured with --enable-undoc.
+
+ * Run the pager in man's original working directory rather than in
+ the manual hierarchy. (As a result of this fix, man-db now
+ requires libpipeline >= 1.3.0.)
+
+ * mandb only creates a cache directory tag if the catpath is
+ different from the manpath, since it should only be created in
+ directories that consist entirely of cached information.
+
+man-db 2.6.6 (23 January 2014)
+==============================
+
+Major changes since man-db 2.6.5:
+
+ man-db is now revision-controlled using git (https://git-scm.com/).
+ See docs/HACKING for the location of the repository.
+
+ Fixes:
+ ------
+
+ * apropos's --and option now works again; it was broken by the
+ optimisations in 2.6.2.
+
+ * Restore compatibility with Automake 1.10.
+
+ * Improve support for translation of common elements of help
+ messages.
+
+ * Don't issue error messages when the database refers to a page that
+ no longer exists.
+
+ * Pass macro and hyphenation language tags to groff again (broken in
+ 2.6.5).
+
+ Improvements:
+ -------------
+
+ * ./configure --with-override-dir=OVERRIDE arranges to look for
+ manual pages in DIR/OVERRIDE before each path element DIR.
+
+man-db 2.6.5 (27 June 2013)
+===========================
+
+Major changes since man-db 2.6.4:
+
+ Fixes:
+ ------
+
+ * man's --warnings option works again on systems with versions of
+ groff that support it (broken in 2.6.4).
+
+ * man automatically falls back to C.UTF-8 and then en_US.UTF-8 if
+ trying to find a UTF-8 locale on a system without
+ /usr/share/i18n/SUPPORTED.
+
+man-db 2.6.4 (23 June 2013)
+===========================
+
+Major changes since man-db 2.6.3:
+
+ Fixes:
+ ------
+
+ * man(1) and catman(8) now document the default section list set at
+ configure time.
+
+ * Build fixes for Automake 1.13.
+
+ * man-db 2.6.0 arranged to search the full manpath when expanding
+ .so directives in manual pages (so that ".so name.1" works as well
+ as ".so man1/name.1"), but this incorrectly did not take effect
+ for manual pages that consist only of a .so directive. This is
+ now fixed.
+
+ Improvements:
+ -------------
+
+ * The MANLESS environment variable is now treated as if it were a
+ default value for the -r option to man: occurrences of the text
+ "$MAN_PN" are expanded, and explicitly using the -r option
+ overrides the default.
+
+ * The (unfortunately still hardcoded) maximum length for paths to
+ manual page hierarchies in the configuration file is now 511
+ characters rather than 49.
+
+ * MANPATH entries now undergo glob(7)-style wildcard expansion,
+ allowing entries such as "/opt/*/man".
+
+man-db 2.6.3 (17 September 2012)
+================================
+
+Major changes since man-db 2.6.2:
+
+ Fixes:
+ ------
+
+ * Build fixes for glibc 2.16 and Automake 1.12.
+
+man-db 2.6.2 (18 June 2012)
+===========================
+
+Major changes since man-db 2.6.1:
+
+ Fixes:
+ ------
+
+ * apropos prints an error message and returns non-zero when it finds
+ no matches. (Regression introduced in 2.5.1.)
+
+ * The presence of a 64-bit GDBM database on the manpath no longer
+ causes a 32-bit man process to exit with a fatal error.
+
+ Improvements:
+ -------------
+
+ * apropos is much faster when run with many arguments.
+
+ * whatis may be given the full path to an executable as an argument,
+ in which case it will look up the base name of that executable in
+ the appropriate parts of the manpath.
+
+man-db 2.6.1 (14 February 2012)
+===============================
+
+Major changes since man-db 2.6.0.2:
+
+ Fixes:
+ ------
+
+ * --with-db=db* and --with-db=ndbm compile again.
+
+ * Translated manual pages are no longer displayed starting with a
+ spurious blank line.
+
+ * straycats tries to ensure that col is invoked with LC_CTYPE set to
+ a UTF-8 locale.
+
+ * Fix double-free in mandb when encountering a symlink outside the
+ manual hierarchy, thanks to Peter Schiffer.
+
+ Improvements:
+ -------------
+
+ * mandb creates a cache directory tag, per
+ http://www.brynosaurus.com/cachedir/ ("Cache Directory Tagging
+ Standard").
+
+ * Add support for Lzip-compressed manual pages, thanks to Matias A.
+ Fonzo.
+
+ * Running 'man -w' (with a new --path alias) without a name now
+ prints the manpath, for compatibility with other man
+ implementations. The vim viewdoc plugin makes use of this.
+
+man-db 2.6.0.2 (13 April 2011)
+==============================
+
+Major changes since man-db 2.6.0.1:
+
+ Fixes:
+ ------
+
+ * Fix a segfault when scanning links to empty pages.
+
+ * Once we've seen at least one record in a page's NAME section,
+ ignore any further records that don't include a whatis
+ description, as they tend to be noise.
+
+man-db 2.6.0.1 (10 April 2011)
+==============================
+
+Major changes since man-db 2.6.0:
+
+ Fixes:
+ ------
+
+ * Ensure that the target of a symlink or .so chain is always recorded
+ as a real page.
+
+ * Read a user-specified configuration file even if HOME is unset.
+
+man-db 2.6.0 (9 April 2011)
+===========================
+
+Major changes since man-db 2.5.9:
+
+ Fixes:
+ ------
+
+ * Fix build with versions of GNU ld that default to
+ --no-copy-dt-needed-entries.
+
+ * Fix failure to display manual pages in some encodings when
+ installed setuid.
+
+ * Wrap long table cells in man(1), fixing test failures with groff
+ 1.21.
+
+ * If an explicit section is passed to man, then pages that match
+ that section exactly will be preferred over pages that only have
+ that section as a prefix.
+
+ * Fix a segfault when 'man -K' tries to display certain pages.
+
+ * Fix a segfault in some situations when processes are killed by
+ SIGHUP, SIGINT, or SIGTERM.
+
+ Improvements:
+ -------------
+
+ * As promised in the release notes for man-db 2.5.8, man-db no
+ longer ships its own copy of libpipeline
+ (http://libpipeline.nongnu.org/). You must build and install that
+ library separately.
+
+ * Search the full manpath when expanding .so directives in manual
+ pages. As part of this, '.so name.1' should now work as well as
+ '.so man1/name.1'.
+
+ * lexgrog handles roff named glyphs and perldoc strings in NAME
+ sections.
+
+ * man no longer starts a pager if standard output is not a tty.
+
+ * The -s option to whatis and apropos now takes a colon- or
+ comma-separated list of sections, similar to 'man -S'.
+
+ * mandb error output is neater when stderr is not a terminal.
+
+ * Add basic support for the implementation of nroff/troff in the
+ Heirloom Documentation Tools. Title lengths are not properly set
+ as yet, and many features are untested.
+
+ * mandb removes cat* and NLS subdirectories of cat directories whose
+ corresponding man directories no longer exist.
+
+ * mandb forces SIGPIPE back to its default disposition on startup,
+ to avoid noisy output in case it was started in a context where
+ SIGPIPE was ignored.
+
+ * SECTION entries in a user configuration file now override those in
+ the system configuration file, rather than appending to them.
+
+ * The default less prompt now includes "(press h for help or q to
+ quit)" to help novices find their way around.
+
+ * man-db may now be built to use Berkeley DB version 5
+ (--with-db=db5).
+
+man-db 2.5.9 (17 November 2010)
+===============================
+
+Major changes since man-db 2.5.8:
+
+ Fixes:
+ ------
+
+ * Fix test failures on some systems. A change made in 2.5.8 was
+ overly sensitive to directory ordering.
+
+ * Configuring with --disable-nls works again.
+
+man-db 2.5.8 (15 November 2010)
+===============================
+
+Major changes since man-db 2.5.7:
+
+ Fixes:
+ ------
+
+ * Fix assertion failure on 'man -l' with an uncompressed page and
+ any of --no-hyphenation, --no-justification, or a non-English
+ page.
+
+ * 2.5.7 introduced a regression when running catman in some locales,
+ most notably in the C locale: while converting the output to
+ UTF-8, iconv was run after the compressor rather than before it.
+ This release fixes that.
+
+ Improvements:
+ -------------
+
+ * Add support for XZ-compressed manual pages, thanks to Darren Salt.
+
+ * Try underscore-separated subpages as well as hyphen-separated
+ ones, thanks to Tanguy Ortolo.
+
+ * Build libman and libmandb as shared libraries, reducing installed
+ footprint by about 200K (at least on GNU/Linux).
+
+ * libintl is no longer shipped with man-db. If your system does not
+ already have GNU libintl installed and you want man-db's messages
+ to be translated, then please install GNU libintl separately
+ (https://www.gnu.org/software/gettext/).
+
+ * Warnings about unrecognised locales are now suppressed if the
+ DPKG_RUNNING_VERSION environment variable is set (i.e. man-db is
+ running within a Debian package's maintainer script), since the
+ system locales are often out of sync with the C library in that
+ context. Thanks to the Debian Perl maintainers for the idea.
+
+ * Allow building with an external libpipeline
+ (http://libpipeline.nongnu.org/), which has been split out from
+ man-db. This is a transitional measure: a future version of
+ man-db will stop shipping its own copy of libpipeline.
+
+ * mandb should no longer repeatedly rescan manual page hierarchies
+ when a whatis entry turns into a broken link.
+
+man-db 2.5.7 (16 February 2010)
+===============================
+
+Major changes since man-db 2.5.6:
+
+ Fixes:
+ ------
+
+ * If a subprocess exits before man manages to read all the output
+ from it, it now drains the output file descriptor rather than
+ immediately discarding it.
+
+ * If /usr/share/i18n/SUPPORTED is available, man attempts to use it
+ to ensure that LC_CTYPE is set to an appropriate locale for the
+ selected character set when invoking col. This fixes 'LANG=C man
+ -E UTF-8', as used by lintian.
+
+ * Don't run tests if cross-compiling.
+
+ * Fix possible mandb crash when MAN_MUST_CREATE is unset.
+
+ Improvements:
+ -------------
+
+ * man can now tell nroff to disable justification if the
+ --no-justification option is used.
+
+ * If the full path to an executable is given as an argument, man
+ will try looking up the corresponding manual page in the
+ appropriate part of the manpath, rather than just trying to format
+ the text of the executable as a manual page.
+
+ * In the GNU manual hierarchy layout, search man<sec><ext>
+ directories as well as just man<sec> (e.g. /usr/share/man/man3p as
+ well as /usr/share/man/man3).
+
+ * By request, man now prefers getting a page from the best manual
+ section over getting a page in the correct language.
+
+ * All programs now support a MAN_DEBUG environment variable which
+ can be used in place of the -d/--debug option. This is useful in
+ some situations where a program is being called deep in a process
+ tree.
+
+ * man-db now builds with heirloom-doctools, thanks to Diego Pettenò
+ of Gentoo.
+
+ * Add support for emulating pipe() with socketpair(), which is
+ faster on some systems; thanks to Werner Fink of SUSE.
+
+ * Cat pages are now always saved in UTF-8, and converted to the
+ proper encoding at display time, which means that cat pages can
+ now be saved regardless of locale. Note that a consequence of this
+ is that cat pages now include formatting information (e.g.
+ overstriking) and need to be run through col(1) before display.
+
+man-db 2.5.6 (26 August 2009)
+=============================
+
+Major changes since man-db 2.5.5:
+
+ Fixes:
+ ------
+
+ * 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.
+
+ * 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.
+
+ * 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.
+
+ * Plugged two substantial memory leaks in the pipeline library.
+
+ * whatis and apropos only display any given manual page, or pointers
+ to it, once.
+
+ * man now sets less(1)'s environment up correctly for manual pages
+ encoded in CP1251.
+
+ * 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:
+ -------------
+
+ * The default configuration file now includes section 0, used on
+ some systems to document C library header files.
+
+ * 'make check' now passes in the presence of a UTF-8-aware col, such
+ as that in util-linux-ng.
+
+ * 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.
+
+ * Database directories are now only created when there are
+ corresponding manual page directories, not just because they're
+ mentioned in the configuration file.
+
+ * 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.
+
+ * 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.
+
+ * 'make install' now installs the manual.
+
+ * manconv understands a wider range of Emacs-style coding tags.
+
+ * 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.
+
+man-db 2.5.5 (14 March 2009)
+============================
+
+Major changes since man-db 2.5.4:
+
+ Fixes:
+ ------
+
+ * Pages that declare a non-default encoding in their preprocessor
+ lines are now handled correctly.
+
+ * Fix an uninitialised variable when sorting manual page candidates
+ that could lead to excessive memory allocation and possible
+ crashes.
+
+ Improvements:
+ -------------
+
+ * man-db's 'make check' now tests that all its own manual pages
+ format without errors or warnings from groff, to ensure a
+ better-quality release.
+
+man-db 2.5.4 (24 February 2009)
+===============================
+
+Major changes since man-db 2.5.3:
+
+ Fixes:
+ ------
+
+ * Build fixes for systems without GNU Make, and for systems without
+ gettext; this successfully covers at least FreeBSD.
+
+ * The distclean target now works if po4a isn't installed.
+
+ * Exit as soon as possible if database writes return ENOSPC.
+
+ * lexgrog now stops on any unrecognised roff request, rather than
+ continuing and often littering the database with garbage.
+
+ * man no longer requires both standard input and standard output to
+ be terminals in order to use the terminal line length. The line
+ length from standard output is preferred if available.
+
+ * The manpath was built completely wrongly when multiple entries
+ were present in LANGUAGE: duplicates were handled strangely, and
+ languages were effectively iterated in reverse order. It should be
+ rather more sensible now.
+
+ Improvements:
+ -------------
+
+ * The MAN_KEEP_STDERR environment variable can now be used to
+ override man's default of discarding stderr when stdout is a
+ terminal.
+
+ * Handling of terminal widths for cat pages is now configurable,
+ using the MINCATWIDTH, MAXCATWIDTH, and CATWIDTH configuration
+ file directives.
+
+ * 'man -a' now detects duplicate manual page candidates more
+ reliably, and sorts them better.
+
+ * Belarusian, Estonian, Greek, Latvian, Lithuanian, Macedonian,
+ Romanian, Slovenian, and Ukrainian pages are now supported.
+
+ * man can now search for pages using regular expressions (with
+ --regex) or shell wildcards (with --wildcard). By default this
+ searches both page names and descriptions, like apropos, but if
+ the --names-only option is used then it searches page names only,
+ like whatis.
+
+ * man can now tell nroff to disable hyphenation if the
+ --no-hyphenation option is used.
+
+ * man-db already searched for manual pages in ../man and man
+ directories relative to each $PATH component; it now searches in
+ ../share/man and share/man directories too.
+
+ * Groff 1.20 was recently released, including the 'preconv'
+ preprocessor. Although man-db has supported preconv to some extent
+ since 2.4.4, man-db's configure now detects its presence and
+ infers that groff supports Unicode input using it; man also now
+ takes slightly better advantage of preconv than before.
+
+ * Per-locale groff macros are now loaded if possible, allowing us to
+ take advantage of such things as localised versions of predefined
+ strings and language-aware hyphenation. This only works with Groff
+ 1.20.2 or better (not yet released), since earlier versions did
+ not allow us to suppress warnings in the event that the
+ appropriate macro file is not available.
+
+man-db 2.5.3 (17 November 2008)
+===============================
+
+Major changes since man-db 2.5.2:
+
+ Fixes:
+ ------
+
+ * Cleaned up a number of possible crashes, memory leaks, and missing
+ error checks found by the Coverity Scan project.
+
+ * Fix build if MAN_CATS is undefined.
+
+ * If the LINGUAS environment variable is set while running
+ configure, it now controls building and installation of localised
+ manual pages as well as program translations.
+
+ * The LANGUAGE environment variable is now tokenised properly,
+ rather than only taking the first two characters of each element.
+
+ * Fix build if --disable-nls is used or iconv is not available.
+
+ * man now correctly propagates the exit code of whatis or apropos
+ when called with the -f or -k option respectively.
+
+ Improvements:
+ -------------
+
+ * A number of inconsistencies and readability problems with man-db's
+ own manual pages have been cleaned up, thanks mainly to Yuri
+ Kozlov.
+
+ * Reduce the number of warnings emitted when using an unrecognised
+ locale.
+
+ * manconv and zsoelim are now called internally rather than by
+ executing external programs, to improve performance.
+
+ * man-db now uses GDBM (--with-db=gdbm) in preference to Berkeley DB
+ (--with-db=db or --with-db=dbN where N is 1, 2, 3, or 4) by
+ default, since hardware improvements have rendered Berkeley DB's
+ speed advantages negligible for our purposes and the relatively
+ frequent SONAME and on-disk format changes are not worth the
+ hassle. Distributors should note that if they follow this change
+ then they will need to arrange for databases to be rebuilt on
+ upgrade to this version.
+
+ * Manual pages may now be compressed with LZMA (although this is
+ probably only worth it for very large pages).
+
+ * Duplicate manual page hierarchies due to symlinks (e.g. /usr/man
+ -> /usr/share/man) are detected and removed from the search order.
+
+ * A locale modifier (e.g. @latin) in a directory name must now match
+ the locale if the former is set, in addition to the language and
+ territory.
+
+ * Bare .so includes (e.g. ".so foo.1" rather than ".so man1/foo.1")
+ now work, although only within the same manual page hierarchy for
+ now.
+
+man-db 2.5.2 (5 May 2008)
+=========================
+
+Major changes since man-db 2.5.1:
+
+ Fixes:
+ ------
+
+ * 'man -H' (without a browser argument) was completely broken in
+ 2.5.1 and is now fixed.
+
+ * man no longer breaks in Japanese locales when using less as a
+ pager.
+
+ Improvements:
+ -------------
+
+ * The --encoding option to man can now take a true character
+ encoding rather than a *roff device; the latter was an unreliable,
+ inflexible, and awkward way to select an output encoding. The old
+ semantics are still supported for backward compatibility.
+
+ * Whatis parsing stops at .ie or .if conditionals.
+
+ * CJK locale specifications where the codeset component is
+ equivalent to but not stringwise-identical to UTF-8 (e.g.
+ zh_CN.utf8) are handled better.
+
+ * man(1)'s OPTIONS section is ordered more comprehensibly.
+
+ * apropos, lexgrog, man, mandb, and whatis ignore encoding
+ conversion errors for the last possible encoding of the source
+ page. This helps, for example, with pages including misencoded
+ non-ASCII names of authors; it usually seems better to allow these
+ pages to pass with small errors than to break them entirely.
+
+man-db 2.5.1 (28 January 2008)
+==============================
+
+Major changes since man-db 2.5.0:
+
+ Fixes:
+ ------
+
+ * The manual is now built automatically, avoiding some ordering
+ problems on 'make distclean'.
+
+ * Manual pages are converted to the proper input encoding for troff
+ output as well as nroff output.
+
+ * The -t, -T, -X, and -Z options to man work again; in 2.5.0, they
+ read input from stdin rather than from the manual page.
+
+ * apropos and whatis no longer segfault when given an explicit
+ locale using -L.
+
+ * man now understands that groff's ascii device takes ASCII input,
+ not ISO-8859-1.
+
+ * man no longer discards stderr when writing to a file or a pipe;
+ this was broken by an overenthusiastic change in 2.5.0.
+
+ * manconv now falls back to the next encoding in its list if any
+ characters in an entire 64KB block fail to decode using the
+ current encoding, as was originally intended.
+
+ * manconv is more careful about extracting coding: directives from
+ manual pages.
+
+ * Ctrl-C and Ctrl-\ now work again at the prompt issued by 'man -a'.
+
+ Improvements:
+ -------------
+
+ * There is a new --with-sections configure option to change the
+ default value of SECTION in the configuration file.
+
+ * Automake is now used to generate Makefiles. Among other things,
+ this fixes VPATH builds and some bugs in dependency generation,
+ and should allow building with non-GNU versions of make.
+
+ * man-db now uses the Gnulib portability library, allowing the
+ removal of earlier haphazard portability code. While this results
+ in a somewhat larger source distribution, it makes man-db easier
+ to maintain and should make it easier to build on systems to which
+ the maintainer does not have access.
+
+ * In the process of switching to Gnulib, the last vestiges of
+ pre-C89 support have been removed; they were documented to be
+ broken anyway.
+
+ * If the MANROFFOPT environment variable is set, man now appends its
+ value to the *roff command line.
+
+ * man now accepts a --recode option to output a source manual page
+ converted to a specified encoding.
+
+ * For compatibility with System V, man accepts -s as an alias for
+ -S, and permits sections to be comma-separated as well as
+ colon-separated.
+
+ * All programs, except the obsolete 'wrapper', now accept a --debug
+ option. (accessdb, lexgrog, and zsoelim were lacking it.)
+
+ * man now accepts a --warnings option to enable groff warnings.
+
+man-db 2.5.0 (7 October 2007)
+=============================
+
+Major changes since man-db 2.4.4:
+
+ Fixes:
+ ------
+
+ * mandb --quiet now suppresses several more warnings.
+
+ * The output of apropos no longer includes duplicates when multiple
+ search terms are used.
+
+ Improvements:
+ -------------
+
+ * Databases are now created for non-English manual hierarchies. All
+ database entries should be encoded in UTF-8; man-db converts from
+ the character set of the manual hierarchy and to the character set
+ specified in the user's locale as necessary.
+
+ * Per-locale directory handling has been improved. Directories such
+ as "fr.UTF-8" may be used for occasions when it is appropriate to
+ specify the character set but not the country, and so a full
+ locale name is inconvenient.
+
+ * There is a new "manconv" program which can try multiple possible
+ encodings for a file, thus allowing UTF-8 manual pages to be
+ installed in any directory even without an explicit encoding
+ declaration.
+
+ * A decompression library is now in place. This allows man-db to use
+ zlib to decompress gzipped files, and allows most of its uses of
+ temporary files to be removed. The only remaining exceptions are
+ cat file creation (which uses a temporary file in the cat tree
+ rather than in /tmp) and viewing HTML manual pages (which uses a
+ temporary directory). Otherwise, man-db should now work fine even
+ with a read-only /tmp during system recovery.
+
+ * Cat pages are now saved in the background while the pager is
+ active, so man will only need to block afterwards if the pager is
+ exited very quickly.
+
+ * --with-* options are now available at configure time for most of
+ the auxiliary program locations that you might want to override.
+
+ * man now supports the MANPAGER environment variable, overriding
+ PAGER.
+
+ * apropos/whatis output is now truncated to the terminal width by
+ default. As with man, this may be overridden using the MANWIDTH
+ environment variable.
+
+ * lexgrog now ignores alleged manual page names containing spaces,
+ as these usually indicate parsing errors or ill-formed NAME
+ sections and they clutter up apropos output badly. I'm only aware
+ of one legitimate counterexample, the Intercal compiler "oo, ick",
+ which no longer appears to be known by that name anyway; let me
+ know if there are any others.
+
+ * man now discards stderr from formatting subprocesses when
+ outputting to a pager, to avoid visual corruption from any error
+ messages.
+
+ * If the MAN_KEEP_FORMATTING environment variable is set to any
+ non-empty value, then man will preserve formatting characters in
+ its output even when standard output is not a terminal. This may
+ be useful for programs such as pinfo that call man and can
+ interpret its formatted output.
+
+ * Setting NOCACHE in the configuration file now prevents man from
+ ever creating cat pages automatically.
+
+ * apropos now accepts the --and option to display only items that
+ match all the supplied keywords.
+
+man-db 2.4.4 (12 February 2007)
+===============================
+
+Major changes since man-db 2.4.3:
+
+ man-db is now revision-controlled using bzr
+ (https://bazaar.canonical.com/). See docs/HACKING for the location
+ of the archive (including all CVS history, imported by Canonical).
+
+ Fixes:
+ ------
+
+ * SECURITY: Fix a buffer overrun if using -H and the designated web
+ browser (argument to -H or $BROWSER) contains multiple %s
+ expansions. This is CVE-2006-4250.
+
+ * Ignore SIGINT and SIGQUIT while running subprocesses, so that
+ typing Ctrl-C doesn't kill less (broken in 2.4.3).
+
+ * Similarly, ignore SIGPIPE in subprocesses.
+
+ * Various fixes to SIGCHLD handling in pipeline library, preventing
+ "waitpid failed: No child processes" errors.
+
+ * Skip "exec" in configuration file commands (perhaps left over from
+ old installations), which the pipeline execution library cannot
+ handle directly.
+
+ Improvements:
+ -------------
+
+ * Add support for Chinese in the --enable-mb-groff case.
+
+ * lexgrog now handles pages with multiple descriptions more
+ usefully, by displaying one description per output line.
+
+man-db 2.4.3 (3 July 2005)
+==========================
+
+Major changes since man-db 2.4.2:
+
+ Fixes:
+ ------
+
+ * Avoid problems creating databases on systems with badly broken
+ clocks set before the Unix epoch.
+
+ * Fix detection of decompression programs, so that man doesn't
+ attempt to execute man pages when it doesn't have a corresponding
+ decompression program.
+
+ Improvements:
+ -------------
+
+ * apropos and whatis now accept a --section option to restrict their
+ search to a particular manual section.
+
+ * The pipeline execution library is now used for most calls to
+ external programs, avoiding use of the shell.
+
+ * When stdout is not a terminal, man pages will be formatted in
+ plain text without the use of backspace or ANSI formatting
+ characters.
+
+ * When invoking apropos (man -k) or whatis (man -f) as external
+ programs, man now only passes through command-line options
+ understood by the respective programs.
+
+ * Improve handling of locales with versions and/or modifiers.
+
+ * Add support for Croatian, Galician, Indonesian, Slovak, and
+ Turkish pages.
+
+ * man-db may now be built to use Berkeley DB version 4
+ (--with-db=db4).
+
+ Compatibility notes:
+ --------------------
+
+ * Setting the line length of manual pages now requires groff 1.18 or
+ later.
+
+man-db 2.4.2 (20 September 2003)
+================================
+
+Major changes since man-db 2.4.1:
+
+ Fixes:
+ ------
+
+ * SECURITY: Fix a number of buffer overruns in configuration file
+ handling, ultimate source location, and MANPATH processing. This
+ is CVE CAN-2003-0620.
+
+ * SECURITY: Restrict the use of the DEFINE directive in ~/.manpath
+ to code running with dropped privilege. Previously, the
+ 'compressor' variable could be used to run arbitrary code with
+ raised privilege. This is CVE CAN-2003-0645.
+
+ * Make sure to initialize mandata structures to zero. The uses of
+ uninitialized memory resulting from this had been leading to
+ random segfaults.
+
+ * Drop privileges in order to be able to read pages in
+ non-world-readable user manpaths while setuid.
+
+ * man can be built with --disable-setuid again.
+
+ * man's locale support has been revamped. The encoding of source
+ manual pages is no longer related to the encoding of the input
+ passed to *roff or to *roff's terminal output device. These
+ frequently differ, especially in UTF-8 locales but in other
+ circumstances as well, and a "just send 8-bit data" approach is no
+ longer adequate. If you are using a version of groff with the
+ Debian multibyte patch applied, pass the --enable-mb-groff option
+ to configure.
+
+ * When using GDBM, accessdb and apropos did not return database
+ entries in sorted order, since GDBM's key traversal interface is
+ not lexicographically ordered. The database layer has been
+ corrected to cope with this.
+
+ * Directories found in strange places in manual hierarchies don't
+ crash mandb.
+
+ Improvements:
+ -------------
+
+ * man now calls mandb to update databases rather than doing it
+ itself. This leaves cat pages as the sole remaining reason for man
+ to be setuid.
+
+ * The "undocumented" message is only displayed if a corresponding
+ executable is found on the $PATH.
+
+ * All programs that read ~/.manpath now take a -C option to cause
+ them to read a different user configuration file instead.
+
+ * The --enable-debug option to configure has been removed. man-db's
+ Makefiles now always calculate full dependencies for C files.
+
+ * mandb caches the contents of directories, significantly speeding
+ up the purging of obsolete entries.
+
+ * mandb now knows how to purge database entries corresponding to
+ removed stray cat pages.
+
+ In addition, a pipeline execution library has been written, which
+ will make it possible to eliminate all or almost all use of the
+ shell in a future release. Unfortunately, time pressures due to the
+ security issues above meant that the pipeline library was not well
+ enough tested for use in this release, so it is present but unused.
+ That will be the first item for 2.4.3.
+
+man-db 2.4.1 (22 December 2002)
+===============================
+
+Major changes since man-db 2.4.0:
+
+ The man-db CVS repository has moved from sourceforge.net to
+ savannah.nongnu.org.
+
+ Fixes:
+ ------
+
+ * Don't enter an infinite loop when the SYSTEM environment variable
+ is set.
+
+ * man doesn't segfault when trying to follow a broken symlink.
+
+ * mandb no longer corrupts databases when deleting entries that are
+ part of multi keys.
+
+ * Prevent a possible buffer overflow when encountering large multi
+ keys.
+
+ * Man page names are escaped when globbing, so [(1) can now be found
+ even if the database is not up to date.
+
+ * Correct an access() check that led to 'man -X -l -' producing no
+ output.
+
+ * lexgrog can now cope with man pages containing only a .so link.
+
+ * Manual hierarchies with a specific encoding are put into the
+ search path in the correct order. A bug in $LANGUAGE handling had
+ formerly meant that 'de' would take precedence over 'de_DE.UTF-8'.
+
+ Improvements:
+ -------------
+
+ * man's behaviour when searching for page names that begin with a
+ digit has been made more intuitive, as has its treatment of
+ section names that are extensions of ones mentioned in the
+ configuration file but are not themselves explicitly named as
+ sections.
+
+ * The default line length for pages formatted for terminal output
+ has been increased (reducing margin size) to match the default in
+ groff 1.18.
+
+ * Proofread the manual.
+
+ * The -w flag to man has been changed to display the name of only
+ the source nroff file. A -W flag has been introduced which
+ displays the name of the cat file as well. If both flags are given
+ to man, it will behave as before.
+
+ * If bzip2 is installed, pages compressed with bzip2 can now be
+ displayed.
+
+ * Add support for displaying an additional message when no man page
+ is found, which can be used to direct users to a generic
+ "undocumented" page.
+
+ * The manual hierarchy layout will now be guessed where possible if
+ an explicit --enable-mandirs argument is not passed to configure.
+
+man-db 2.4.0 (26 June 2002)
+===========================
+
+Major changes since man_db-2.3.20:
+
+ I have changed the package name to man-db, as the underscore was
+ awkward.
+
+ Upgrading from version 2.3.x:
+ -----------------------------
+
+ The database format has changed slightly, so you will need to run
+ 'mandb --create' after installing the new version to rebuild your
+ databases from scratch. (Distribution packages should do this
+ automatically for system databases.)
+
+ Fixes:
+ ------
+
+ * The GNU nroff test in configure now works when /bin/sh is ash.
+
+ * When scanning pages for NAME sections, lexgrog and mandb no longer
+ accidentally eat the line after each occurrence of the no-op
+ request '.'.
+
+ * 'man --local' drops privileges throughout to avoid problems with
+ non-world-readable home directories.
+
+ * Newly created cat directories are chowned to the man user when
+ running as root.
+
+ * 'man --html' no longer creates its temporary file with raised
+ privileges, so that it now works with a setuid man.
+
+ * man detects preprocessors correctly when setuid.
+
+ * Various segfault fixes: explicitly null-terminate data returned by
+ the Berkeley DB library to avoid some rare crashes; don't reuse a
+ freed pointer in some cases of pages with multiple names; handle
+ MANPATHs containing '::' more safely.
+
+ * Correctly parse manual pages using DOS line-ending conventions.
+
+ * Work around a misfeature in Berkeley DB: it pauses for several
+ seconds if asked to read a zero-length database, on the assumption
+ that somebody is still writing the metadata page. man is generally
+ better off just ignoring the database in this case.
+
+ * Work around corrupted databases in the case where the nextkey
+ pointer chain contains a loop.
+
+ Improvements:
+ -------------
+
+ * man looks in the filesystem followed by the database, rather than
+ the other way round. Unix filesystems are quite good databases for
+ this purpose, and the man database is only superior when looking
+ up names that don't have associated links in the filesystem.
+
+ * 'apropos --wildcard --exact' makes sure wildcards match an entire
+ description or page name, unlike 'apropos --wildcard' which may
+ match on word boundaries too.
+
+ * man's page-searching code has been substantially rearranged, and
+ now only starts displaying pages when it has finished searching
+ for candidates. This allows pages to be sorted more sensibly.
+
+ * Manual pages are formatted in UTF-8 if that is the current
+ locale's character set. The -E option is now available to force a
+ particular encoding. Note that some versions of (e.g.) less have
+ problems displaying UTF-8 in conjunction with backspace
+ characters; groff 1.18 should alleviate this by using ANSI colour
+ escapes instead.
+
+ * The less prompt string sets -PM as well as -Pm.
+
+ * Invoking man from within less now sets the correct page title in
+ the inner less.
+
+ * Unless the --match-case option is used, man will search for pages
+ case-insensitively.
+
+ * Update the mechanism for setting the line length so that it also
+ works with groff 1.18.
+
+ * The -R switch is added to the less prompt string, which is needed
+ to display the ANSI colour escapes generated by groff 1.18
+ correctly.
+
+ * The $MANLESS environment variable may be used to override the
+ normal creation of the less prompt string.
+
+ * Translation updates for French, German, and Spanish, and a new
+ Catalan translation. See man/THANKS.
+
+man_db-2.3.20 (7 September 2001)
+================================
+
+Major changes since man_db-2.3.19:
+
+ Fixes:
+ ------
+
+ * A typo in 2.3.19 caused character sets for many languages to be
+ detected incorrectly. This especially affected multibyte
+ languages.
+
+ * Long options in the environment variable LESS are handled
+ correctly.
+
+ * When checking if cat pages need to be updated, check for different
+ timestamps rather than whether the cat page is newer, as otherwise
+ we were confused by tools like tar that preserve timestamps in
+ their archives. Each cat page is now set to have the same mtime as
+ its corresponding man page.
+
+ * Look up the correct character set each time a page is displayed
+ rather than just the first time, in case pages in several
+ different character sets are viewed in a single session.
+
+ * groff requests are no longer assumed to be case-insensitive when
+ scanning for preprocessors, so for example mdoc's .Eq request
+ isn't mistaken for the .EQ which introduces eqn commands.
+
+ * Escape arguments passed to the shell that might contain dangerous
+ characters.
+
+ * Avoid an infinite loop if the LANGUAGE environment variable is set
+ but empty.
+
+ * The --create option to mandb now implies --no-purge.
+
+ * Temporary files are handled with more secure permissions.
+
+ Improvements:
+ -------------
+
+ * Use a variant of mkstemp() rather than tempnam(), to avoid classic
+ race conditions. (I don't believe the races were usefully
+ exploitable.)
+
+ * Tolerate whatis entries in a database that point to themselves.
+
+ * Detect more translations of the NAME section.
+
+ * Add examples of man pages written in POD and SGML.
+
+ * lexgrog is now installed in /usr/bin by default, with proper
+ argument parsing, an improved output format, and a man page. It is
+ expected to be used by programs that need to validate man pages.
+
+ * The -H (--html) option to man is now compiled in by default, and
+ supports the BROWSER specification (as documented at
+ http://www.tuxedo.org/~esr/BROWSER/ and amended at
+ https://www.dwheeler.com/browse/secure_browser.html).
+
+man_db-2.3.19 (5 July 2001)
+===========================
+
+Major changes since man_db-2.3.18:
+
+ Fixes:
+ ------
+
+ * The user configuration file ~/.manpath is no longer trusted when
+ deciding whether to drop privileges. In the process, user cat
+ directory handling has been improved.
+
+ * Commands of the form 'man -S "" foo' formerly emptied the list of
+ acceptable sections and then searched the database anyway, and
+ commands of the form 'man -S ::: foo' segfaulted. Both now use the
+ standard list of sections.
+
+ * The HUP and TERM signals are now handled better.
+
+ * straycats processing invokes 'col -bx' rather than 'col-bx'.
+
+ * The root user is now correctly allowed to update databases in
+ system manpaths.
+
+ * apropos and whatis no longer enter infinite recursion if a
+ database contains an entry pointing to itself.
+
+ Improvements:
+ -------------
+
+ * When compiled with --enable-setuid, man and mandb can be installed
+ non-setuid. In this mode, they will be unable to write cat pages
+ in system directories or to modify system databases, but will
+ otherwise operate correctly. This allows a single binary package
+ to support setuid and non-setuid modes of operation.
+
+ * The ordering of manual sections is read from SECTION directives in
+ the configuration file rather than being hard-coded.
+
+ * The MANDB_MAP configuration file directive is documented more
+ clearly.
+
+ * Multiple whatis entries separated by commas, break requests,
+ and/or paragraph requests are handled more intelligently.
+
+ * Fill control requests (.nf and .fi) cause lexgrog to assume a
+ break at each newline.
+
+ * Duplicate manpath entries (often generated in the course of
+ national language support) are removed, so that 'man -a' works
+ better.
+
+ * man_db's binaries are installed unstripped by default.
+
+ * Since supporting certain layouts of manual page hierarchies causes
+ problems for others, the layout is now selectable via configure.
+ The default is to try all layouts.
+
+ * man only does an on-the-fly update of the database caches when the
+ --update option is given.
+
+ * Manual pages are displayed with a line length appropriate to the
+ current terminal. If a non-standard line length is used (i.e. the
+ terminal is not between 66 and 80 characters wide) then cat pages
+ will not be saved.
+
+ * mandb tries to purge obsolete entries from its databases. Using
+ the --create flag should now usually only be necessary in cases of
+ database corruption.
+
+man_db-2.3.18 (14 May 2001)
+===========================
+
+Major changes since man_db-2.3.11:
+
+ man_db-2.3.18 is an interim release under new maintenance by Colin
+ Watson, merging much of the work done by former maintainers (Graeme
+ Wilford and Fabrizio Polacco). It incorporates several years of
+ changes made in the Debian GNU/Linux distribution's package of
+ man_db.
+
+ Here are a few highlights, with the names of the maintainers
+ responsible for them. As I am documenting after the fact of other
+ people's changes of a few years ago, I have undoubtedly missed a
+ number of fixes and improvements; I promise to keep track of these
+ as I go along in future.
+
+ Fixes:
+ ------
+
+ * Multiple security fixes, including better handling of temporary
+ files, a format string vulnerability fix, and more careful
+ dropping of privileges when running setuid. [Fabrizio, Colin]
+
+ * Databases no longer disappear temporarily while they are being
+ regenerated. [Fabrizio]
+
+ * Corrected handling of locale environment variables. Setting
+ several colon-separated locales in $LANGUAGE also works now.
+ [Colin]
+
+ * whatis and apropos are more careful about the possibility of a
+ corrupted database. [Fabrizio, Colin]
+
+ Improvements:
+ -------------
+
+ * If root has private manual hierarchies, cat pages generated from
+ them are no longer chowned to a less-privileged user. [Wilf]
+
+ * Rewrote configuration file handling, adding DEFINE directives to
+ set paths to external programs. The configuration file is now
+ called man_db.conf. [Wilf]
+
+ * Support FHS paths (/usr/share/man and /var/cache/man) in
+ preference to FSSTND paths (/usr/man and /var/catman). [Fabrizio]
+
+ * Converted from catgets to GNU gettext for national language
+ support. [Fabrizio, Colin]
+
+ * Several new and improved localized message catalogues and
+ translated man pages. [Fabrizio, Colin, other contributors]
+
+ * Added accessdb utility, which displays the contents of a manual
+ page database. [Fabrizio]
+
+ * Added user configuration file ~/.manpath, with the same syntax as
+ the global configuration file. [Fabrizio]
+
+ * Leading or trailing colons in the MANPATH environment variable
+ cause the manpath derived from configuration files to be prepended
+ or appended respectively. A double colon in the middle of the
+ environment variable causes the configuration file manpath to be
+ inserted between the colons. [Fabrizio]
+
+ * Added experimental -H and -Thtml options to take advantage of
+ groff's new HTML driver. [Fabrizio]
+
+ * lexgrog now scans manual pages to guess which preprocessors are
+ needed. [Fabrizio]
+
+ * Create cat directories on the fly if necessary. [Fabrizio]
+
+ * Supply a wrapper which explicitly drops privileges to uid man if
+ man or mandb is run as root. In the future, splitting out setuid
+ functions into a separate helper process may remove the need for
+ this paranoia. [Fabrizio]
+
+ * Add --test option to mandb, which merely reports errors in manual
+ page hierarchies rather than actually creating or updating a
+ database. [Fabrizio, Colin]
+
+ * Manual pages may now be symlinks outside the mantree. This should
+ pose no significant security concerns, and utilities such as GNU
+ stow create such symlinks. [Colin]
+
+ * Deprecate whatis references for man, and display a warning if
+ displaying a page relies on going through a whatis reference. They
+ often lead to confusingly non-obviously-deterministic behaviour,
+ and guaranteeing that man will honour them even when the database
+ is out of date causes performance problems. [Colin]
+
+man_db-2.3.11 (21 September 1995)
+=================================
+
+Major changes since man_db-2.3.10:
+
+ * The man_db manual is bundled in source form.
+
+ * Components of $PATH not in the config file were checked for
+ `man' subdirectories. Now they are also checked for `../man'.
+
+ * Untarring a new manual page (with a timestamp older than the
+ relative cat file) over the original did *not* cause man/catman
+ to reformat the replacement. This is changed. As a side effect,
+ untarring an unchanged man file over the original will also cause
+ a reformat.
+
+man_db-2.3.10 (13 July 1995)
+============================
+
+Major changes since man_db-2.3.5:
+
+ Fixes:
+ ------
+
+ * Global databases were not owned by setuid owner (if applicable).
+ As a consequence only mandb could update the databases unless
+ man was run by superuser. Stupid bug.
+
+ * The keyword passed to apropos _never_ matched the first word
+ of any whatis line.
+
+ * FAVOUR_STRAYCATS code (if enabled), did not work properly.
+
+ * zsoelim did not work as advertised.
+
+ Improvements:
+ -------------
+
+ * Man removes its temporary files upon abnormal termination.
+
+ * apropos does proper word matching rather than the fuzzy
+ matching of 2.3.5. eg. supplying any of the keywords:
+ `ld.so', `a.out', `dynamic', `linker' or `loader' will match
+ the following entry:
+
+ ld.so (8) - a.out dynamic linker/loader
+
+ whereas `a.out' and `loader' used to fail.
+
+ * man/whatis/apropos return with exit code 16 if manual
+ page/file or keyword is not matched. Previously exit code 0
+ was used making it difficult for callers to know if the lookup
+ was successful.
+
+ * addition of German message catalogue.
+
+ * `apropos' and `man -k' do POSIX specified regex matching rather
+ than keyword searches if the environment variable POSIXLY_CORRECT
+ is defined.
+
+ * added glob-only support of native system manual hierarchies
+ on HP-UX, OSF and Solaris operating systems. Improved the
+ whatis parsing code to cope with majority of HP-UX manual pages.
+
+ * ported to NeXTstep.
+
+man_db-2.3.5 (21 April 1995)
+============================
+
+Major changes since man_db-2.2.1:
+
+ Added support for...
+ --------------------
+
+ * Non-standard section names i.e. multi-character
+
+ * Compressed manual pages.
+ A new utility `zsoelim' is included to correctly handle nroff
+ .so requests that point to a file which has been compressed.
+
+ * Compressed stray cats.
+ By definition, stray cats are not re-creatable as they have no
+ relative source manual page. As they may have non-default
+ compression extensions and may reside on read-only media,
+ stray cats have the same compression support as manual pages.
+
+ * FSSTND proposed `extension' support.
+ Specific package manual pages may be installed in the standard
+ sections but with a package-unique extension appended as in
+ exit(3tcl) - ../man/man3/exit.3tcl. Using the command
+
+ `man -e tcl exit'
+
+ would then display an exit manual page with a tcl extension, if
+ available. Of course, `man 3tcl exit' works as always.
+
+ * FSSTND proposed NLS man subdirectories.
+ Of the form .../man/<locale>/man<sec>/
+
+ * NLS message catalogue hooks.
+ Provision has been made for the programs to emit their messages in
+ a language dependent form.
+
+ * `whatis' referred manual pages.
+ Some manual pages contain relevant information for commands or
+ programs that would not otherwise reference the page.
+ The `whatis' part of the manual page is used to create virtual
+ links to these pages by all of the names mentioned within it.
+ Examples include names such as `.' and `:' referencing the local
+ shell manual page.
+
+ * Catman utility.
+ Used to pre-format the manual pages into cat pages.
+
+ * Operating systems other than Linux.
+ man_db has been reported to compile on the following platforms:
+
+ Linux, SunOS, Solaris, Ultrix, OSF, HP-UX, AIX, IRIX
+
+ (although portability does not extend to support of native
+ manual tree structures on some of these systems, eg. HP-UX)
+
+ * Berkeley DB library routines.
+ This compliments the support of both gdbm and ndbm which already
+ existed. DB databases may be shared across platforms.
+
+ * $MANOPTS environment variable.
+ The environment variable MANOPTS may be set to any string in
+ command line option/argument format. It is parsed by man(1) prior
+ to its actual command line.
+
+ * Per manual hierarchy cat directory locations.
+ It is possible to redirect your cat pages to other directories or
+ even other file systems.
+
+ * Per manual hierarchy nroff/[tg]roff format scripts.
+ Ability to create custom formatter scripts that are called by
+ man(1) to enable format/display of non-standard manual pages or
+ manual pages requiring a special macro package.
+
+ * Extension of `man -l'.
+ Arguments following -l are interpreted as local files requiring
+ format and display. Extensions are:
+
+ `man -l -' formats and displays stdin.
+ `man -l foo.1.gz' decompresses, formats and displays foo.1.gz.
+
+ * Latin1 manual pages/choice of nroff output device.
+
+ * Viewing of ASCII manual pages formatted for a latin1 output device
+ on a 7 bit ASCII terminal (-7).
+
+ * Whatis and apropos utilities support regex and wildcard matching.
+
+ * checkman.
+ Shell script utility that will find and display duplicated manual
+ pages found across manual page hierarchies.
+
+ * mkcatdirs.
+ Shell script utility to create appropriate cat directories after
+ installation and setup.
+
+ Conceptual improvements
+ -----------------------
+
+ * Replacement of single database with multiple modular db's.
+ Easier integration of additional information into the databases in
+ the future.
+
+ * Both user and global databases share the same name:
+
+ `index.<db-type>'
+
+ where <db-type> could be `bt', `db' or `pag' and `dir'.
+
+ * Databases contain `whatis' text.
+ Makewhatis and text whatis databases are redundant, although
+ whatis and apropos will use the text whatis database for information
+ if they cannot read from a relevant index database.
+
+ * straycats handled without need for `placeholders'.
+
+ * Friendly less(1) prompt.
+ If man(1) uses less(1) as its pager (dependent on both static and
+ dynamic factors), the prompt is modified to suit the manual page
+ being displayed. The modification performed is also changeable by
+ the user.
+
+ * man_db manual.
+ man_db has a manual that covers the setup, maintenance and use of
+ a generic online manual page system.
+
+ * Modes of operation.
+ The man_db utilities can be compiled with various modes of
+ operation in mind. Eg. man can be stopped from updating databases
+ and/or creating cat files in situations where security is extremely
+ important. See the man_db manual for details.
+
+ Speed improvements
+ ------------------
+
+ * Background compression/saving of cat files.
+ Cat files are compressed and saved in the background, whilst the
+ user is able to browse the formatted page directly.
+
+ * Merge of straycats and makewhatis into mandb.
+ While mandb has slowed, it now incorporates makewhatis and straycats
+ functionality and is much faster as a whole. 2.0a2 used grep/awk,
+ 2.2 used C regex and 2.3 now uses lex sourced C to strip out the
+ whatis information from the raw man or cat files.
+
+ * Berkeley DB support.
+ Provides lower database initialisation overhead as compared with
+ gdbm.
+
+ * Extremely fast whatis(1) searches.
+ whatis(1) uses keyed database lookups to retrieve whatis strings
+ for standard (non regex/wildcard) searches.
+
+ Fixes
+ -----
+
+ * Correct handling of $MANSECT.
+ The environment variable MANSECT is no longer ignored.
+
+ * Acknowledgement of $MANPATH order.
+ manpath elements are searched in the order specified.