From f0af5115c4d9a38baf3e05229aeb1cda505512f70248e44f464d8761aaab52b9 Mon Sep 17 00:00:00 2001 From: "Dr. Werner Fink" Date: Thu, 4 Oct 2012 09:18:44 +0000 Subject: [PATCH] . OBS-URL: https://build.opensuse.org/package/show/Base:System/man?expand=0&rev=37 --- man-db-2.6.3-man0.dif | 90 +++++++------- man.changes | 266 ++++++++++++++++++++++++++++++++++++++++++ man.spec | 5 +- 3 files changed, 319 insertions(+), 42 deletions(-) diff --git a/man-db-2.6.3-man0.dif b/man-db-2.6.3-man0.dif index 972cdae..6722b87 100644 --- a/man-db-2.6.3-man0.dif +++ b/man-db-2.6.3-man0.dif @@ -1,50 +1,60 @@ ---- man/de/man1/man.man1 -+++ man/de/man1/man.man1 2008-04-21 13:41:49.000000000 +0200 -@@ -97,6 +97,7 @@ der Manualseiten gefolgt vom Typ der dor +--- man/de/man1/man.1 ++++ man/de/man1/man.1 +@@ -79,6 +79,9 @@ und den Typ der dort zu findenden Seiten .TS tab (@); - l l. -+0@Dateiheader (gewöhnlich in \fI/usr/include\fR) - 1@Ausführbare Programme oder Shellbefehle - 2@Systemaufrufe (Kernelfunktionen) - 3@Bibliotheksaufrufe (Funktionen in System-Bibliotheken) ---- man/es/man1/man.man1 -+++ man/es/man1/man.man1 2008-04-21 13:41:57.000000000 +0200 -@@ -101,6 +101,7 @@ del manual y los tipos de páginas que c + l lx. ++0@T{ ++Dateiheader (gewöhnlich in \fI/usr/include\fR) ++T} + 1@T{ + Ausführbare Programme oder Shell\-Befehle + T} +--- man/es/man1/man.1 ++++ man/es/man1/man.1 +@@ -101,6 +101,9 @@ del manual y los tipos de páginas que c .TS tab (@); - l l. -+0@Ficheros (se encuentran generalmente en \fI/usr/include\fR) - 1@Programas ejecutables y guiones del intérprete de - @órdenes - 2@Llamadas del sistema (funciones servidas por el núcleo) ---- man/it/man1/man.man1 -+++ man/it/man1/man.man1 2008-04-21 13:42:02.000000000 +0200 -@@ -124,6 +124,7 @@ del manuale seguiti dai tipi di pagine c + l lx. ++0@T{ ++Ficheros (se encuentran generalmente en \fI/usr/include\fR) ++T} + 1@T{ + Programas ejecutables y guiones del intérprete de órdenes + T} +--- man/it/man1/man.1 ++++ man/it/man1/man.1 +@@ -124,6 +124,9 @@ del manuale seguiti dai tipi di pagine c .TS tab (@); - l l. -+0@File (di solito trovabili in \fI/usr/include\fR) - 1@Programmi eseguibili e comandi della shell - 2@Chiamate al sistema (funzioni fornite dal kernel) - 3@Chiamate alle librerie (funzioni all'interno delle ---- man/ja/man1/man.man1 -+++ man/ja/man1/man.man1 2008-04-21 13:42:05.000000000 +0200 -@@ -104,6 +104,7 @@ + l lx. ++0@T{ ++File (di solito trovabili in \fI/usr/include\fR) ++T} + 1@T{ + Programmi eseguibili e comandi della shell + T} +--- man/ja/man1/man.1 ++++ man/ja/man1/man.1 +@@ -73,6 +73,9 @@ man \- オンラインマニュアルの .TS tab (@); - l l. -+0@ - 1@実行プログラムまたはシェルのコマンド - 2@システムコール (カーネルが提供する関数) - 3@ライブラリコール (システムライブラリに含まれる関数) ---- man/man1/man.man1 -+++ man/man1/man.man1 2007-12-10 12:53:31.000000000 +0100 -@@ -119,6 +119,7 @@ numbers of the manual followed by the ty + l lx. ++0@T{ ++(\fIusr/include\fP) ++T} + 1@T{ + 実行プログラムまたはシェルコマンド + T} +--- man/man1/man.1 ++++ man/man1/man.1 +@@ -179,6 +179,9 @@ numbers of the manual followed by the ty .TS tab (@); - l l. -+0@Header files (usually found in \fI/usr/include\fR) - 1@Executable programs or shell commands - 2@System calls (functions provided by the kernel) - 3@Library calls (functions within program libraries) + l lx. ++0@T{ ++Header files (usually found in \fI/usr/include\fR) ++T} + 1@T{ + Executable programs or shell commands + T} diff --git a/man.changes b/man.changes index d07600e..9b785c1 100644 --- a/man.changes +++ b/man.changes @@ -1,3 +1,269 @@ +------------------------------------------------------------------- +Thu Oct 4 09:16:16 UTC 2012 - werner@suse.de + +- Update to version 2.6.3 + * Build fixes for glibc 2.16 and Automake 1.12. + * 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. + * 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. + * Translated manual pages are no longer displayed starting with a + spurious blank line. + * Fix double-free in mandb when encountering a symlink outside the + manual hierarchy, thanks to Peter Schiffer. + * 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. + * 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. + * 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. + * 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. + * 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). + * Fix assertion failure on 'man -l' with an uncompressed page and + any of --no-hyphenation, --no-justification, or a non-English + page. + * 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). + * 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. + * 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. + * Fix possible mandb crash when MAN_MUST_CREATE is unset. + * 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 + directories as well as just man (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. + * 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. + * 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". + * 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. + * 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. + * Pages that declare a non-default encoding in their preprocessor + lines are now handled correctly. + * 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. + * 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. + * 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. + * 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. + * 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. + * 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 -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. + * 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. + ------------------------------------------------------------------- Mon Oct 1 13:13:14 UTC 2012 - werner@suse.de diff --git a/man.spec b/man.spec index f29ae6e..1a9ea12 100644 --- a/man.spec +++ b/man.spec @@ -49,7 +49,7 @@ Source3: cron.daily.clean_catman Source4: mancoding Source5: wrapper.c Patch0: man-db-%{version}.dif -Source6: man-db-2.6.3-man0.dif +Patch1: man-db-2.6.3-man0.dif Patch2: man-db-2.3.19deb4.0-groff.dif Patch4: man-db-2.6.3-section.dif Patch5: man-db-2.6.3-security4.dif @@ -140,7 +140,7 @@ Authors: --without-included-gettext \ --with-sections="${SEC}" make %{?_smp_mflags} nls=all - for man in $(find man/ -type f -a -name '*.man[0-9]'); do + for man in $(find man/ -type f -a -name '*.[0-9]'); do pp="$(head -n 1 $man)" case "$pp" in \'\\\"*\ -\*-\ coding:\ *\ -\*-) @@ -155,6 +155,7 @@ Authors: " $man esac done + patch -p0 < %{P:1} gcc $CFLAGS -I gnulib/lib/ -I include/ --include config.h --include configmake.h \ -o wrapper %{S:5} -L gnulib/lib/.libs/ -lgnu