Hello community, here is the log from the commit of package man checked in at Wed Jun 14 18:47:42 CEST 2006. -------- --- man/man.changes 2006-04-07 13:06:46.000000000 +0200 +++ man/man.changes 2006-06-14 18:33:54.000000000 +0200 @@ -1,0 +2,11 @@ +Wed Jun 14 18:27:48 CEST 2006 - werner@suse.de + +- Update to man-db 2.4.3 patchlevel 3 to get the first part of bug + #183796 fixed. +- Change lex scanner to set sperator ony onece per whatis/apropos + line to get second part of bug #183796 fixed +- Support several language types/locations +- Do not fail on verbatim macro of perl man pages on whatis/apropos +- Do not fail on DOS formated manual pages on whatis/apropos + +------------------------------------------------------------------- Old: ---- man-db-2.3.19deb4.0-gettext.dif man-db-2.4.1-flex.patch man-db-2.4.1-section.dif man-db-2.4.1.dif man-db-2.4.1.tar.bz2 man-db_2.4.1-13.diff.bz2 New: ---- man-db-2.4.3-3.diff.bz2 man-db-2.4.3-section.dif man-db-2.4.3.dif man-db-2.4.3.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ man.spec ++++++ --- /var/tmp/diff_new_pack.x105bH/_old 2006-06-14 18:47:22.000000000 +0200 +++ /var/tmp/diff_new_pack.x105bH/_new 2006-06-14 18:47:22.000000000 +0200 @@ -1,5 +1,5 @@ # -# spec file for package man (Version 2.4.1) +# spec file for package man (Version 2.4.3) # # Copyright (c) 2006 SUSE LINUX Products GmbH, Nuernberg, Germany. # This file and all modifications and additions to the pristine @@ -10,28 +10,27 @@ Name: man -Version: 2.4.1 -Release: 231 +BuildRequires: flex groff libzio lynx sharutils util-linux +Version: 2.4.3 +Release: 1 Summary: A Program for Displaying man Pages License: GPL Group: System/Base PreReq: fileutils fillup Provides: man_db -Requires: groff >= 1.17 less +Requires: groff >= 1.18 less Autoreqprov: on Source: man-db-%{version}.tar.bz2 Source1: sysconfig.cron-man Source2: cron.daily.do_mandb Source3: cron.daily.clean_catman Patch0: man-db-%{version}.dif -Patch1: man-db_%{version}-13.diff.bz2 +Patch1: man-db-%{version}-3.diff.bz2 Patch2: man-db-2.3.19deb4.0-groff.dif -Patch3: man-db-%{version}-error.dif +Patch3: man-db-2.4.1-error.dif Patch4: man-db-%{version}-section.dif -Patch6: man-db-%{version}-security2.dif -Patch7: man-db-2.3.19deb4.0-gettext.dif -Patch9: man-db-%{version}-security4.dif -Patch10: man-db-%{version}-flex.patch +Patch5: man-db-2.4.1-security2.dif +Patch6: man-db-2.4.1-security4.dif BuildRoot: %{_tmppath}/%{name}-%{version}-build %description @@ -50,10 +49,8 @@ %patch2 -p0 -b .groff %patch3 -p0 -b .err %patch4 -p0 -b .sect -%patch6 -p0 -b .secu2 -%patch7 -p0 -b .gettext -%patch9 -p0 -b .secu4 -%patch10 -p0 -b .flex +%patch5 -p0 -b .secu2 +%patch6 -p0 -b .secu4 %patch -p0 %build @@ -147,6 +144,14 @@ /var/adm/fillup-templates/sysconfig.cron-man %changelog -n man +* Wed Jun 14 2006 - werner@suse.de +- Update to man-db 2.4.3 patchlevel 3 to get the first part of bug + [#183796] fixed. +- Change lex scanner to set sperator ony onece per whatis/apropos + line to get second part of bug #183796 fixed +- Support several language types/locations +- Do not fail on verbatim macro of perl man pages on whatis/apropos +- Do not fail on DOS formated manual pages on whatis/apropos * Fri Apr 07 2006 - werner@suse.de - Do not reset terminal if stdout is not a tty (bug #152793) * Wed Jan 25 2006 - mls@suse.de ++++++ man-db-2.4.3-3.diff.bz2 ++++++ --- man-db-2.4.3.orig/src/mandb.c +++ man-db-2.4.3/src/mandb.c @@ -535,6 +535,7 @@ for (mp = manpathlist; *mp; mp++) { int global_manpath = is_global_mandir (*mp); char *catpath; + short amount_changed = 0; if (global_manpath) { /* system db */ /* if (access (catpath, W_OK) == 0 && !user) */ @@ -558,12 +559,14 @@ push_cleanup (cleanup, NULL); if (single_filename) { if (STRNEQ (*mp, single_filename, strlen (*mp))) - amount += mandb (catpath, *mp); + amount_changed += mandb (catpath, *mp); /* otherwise try the next manpath */ } else - amount += mandb (catpath, *mp); + amount_changed += mandb (catpath, *mp); - if (!opt_test) { + amount += amount_changed; + + if (!opt_test && amount_changed) { finish_up (); #ifdef SECURE_MAN_UID if (global_manpath && euid == 0) @@ -575,7 +578,7 @@ free (database); database = NULL; - if (check_for_strays) { + if (check_for_strays && amount_changed) { database = mkdbname (catpath); strays += straycats (*mp); } @@ -607,7 +610,10 @@ chdir (cwd); #endif /* __profile__ */ - if (!amount) - error (FAIL, 0, _("No databases updated.")); + if (create && !amount) { + if (!quiet) + fprintf (stderr, "No databases created.\n"); + exit (FAIL); + } exit (OK); } --- man-db-2.4.3.orig/src/man_db.conf.in +++ man-db-2.4.3/src/man_db.conf.in @@ -1,4 +1,4 @@ -# man_db.conf +# manpath.config # # This file is used by the man-db package to configure the man and cat paths. # It is also used to provide a manpath for those without one by examining @@ -109,4 +109,4 @@ # is that you only need to explicitly list extensions if you want to force a # particular order. Sections with extensions should usually be adjacent to # their main section (e.g. "1 1mh 8 ..."). -SECTION 1 n l 8 3 2 5 4 9 6 7 +SECTION 1 n l 8 3 2 3posix 3pm 3perl 5 4 9 6 7 --- man-db-2.4.3.orig/src/man.c +++ man-db-2.4.3/src/man.c @@ -1760,7 +1760,7 @@ if (!isatty (fileno (stdout))) { save_cat = 0; setenv ("GROFF_NO_SGR", "1", 1); - pipeline_command_args (p, COL, "-b", NULL); + pipeline_command_args (p, COL, "-b", "-p", "-x", NULL); } #ifndef GNU_NROFF /* tbl needs col */ --- man-db-2.4.3.orig/lib/pipeline.c +++ man-db-2.4.3/lib/pipeline.c @@ -505,6 +505,9 @@ static pipeline **active_pipelines = NULL; static int n_active_pipelines = 0, max_active_pipelines = 0; +static int ignored_signals = 0; +static struct sigaction osa_sigint, osa_sigquit; + /* Children exit with this status if execvp fails. */ #define EXEC_FAILED_EXIT_STATUS 0xff @@ -523,6 +526,27 @@ pipeline_dump (p, stderr); } + if (!ignored_signals++) { + struct sigaction sa; + + /* Ignore SIGINT and SIGQUIT while subprocesses are running, + * just like system(). + */ + sa.sa_handler = SIG_IGN; + sigemptyset (&sa.sa_mask); + sa.sa_flags = 0; + while (sigaction (SIGINT, &sa, &osa_sigint) < 0) { + if (errno == EINTR) + continue; + error (FATAL, errno, "Couldn't ignore SIGINT"); + } + while (sigaction (SIGQUIT, &sa, &osa_sigint) < 0) { + if (errno == EINTR) + continue; + error (FATAL, errno, "Couldn't ignore SIGQUIT"); + } + } + /* Add to the table of active pipelines, so that signal handlers * know what to do with exit statuses. Block SIGCHLD so that we can * do this safely. @@ -641,6 +665,14 @@ if (p->commands[i]->nice) nice (p->commands[i]->nice); + /* Restore signals. */ + while (sigaction (SIGINT, &osa_sigint, NULL) && + errno == EINTR) + ; + while (sigaction (SIGQUIT, &osa_sigquit, NULL) && + errno == EINTR) + ; + execvp (p->commands[i]->name, p->commands[i]->argv); error (EXEC_FAILED_EXIT_STATUS, errno, _("can't execute %s"), p->commands[i]->name); @@ -759,6 +791,9 @@ p->outfd = -1; } + /* Tell the SIGCHLD handler not to get in our way. */ + queue_sigchld = 1; + while (proc_count > 0) { int r; @@ -817,10 +852,8 @@ if (proc_count == 0) break; - /* Tell the SIGCHLD handler not to get in our way. */ - queue_sigchld = 1; + errno = 0; r = reap_children (1); - queue_sigchld = 0; if (r == -1 && errno == ECHILD) /* Eh? The pipeline was allegedly still running, so @@ -829,6 +862,8 @@ error (FATAL, errno, _("waitpid failed")); } + queue_sigchld = 0; + for (i = 0; i < n_active_pipelines; ++i) if (active_pipelines[i] == p) active_pipelines[i] = NULL; @@ -838,6 +873,16 @@ free (p->statuses); p->statuses = NULL; + if (!--ignored_signals) { + /* Restore signals. */ + while (sigaction (SIGINT, &osa_sigint, NULL) && + errno == EINTR) + ; + while (sigaction (SIGQUIT, &osa_sigquit, NULL) && + errno == EINTR) + ; + } + return ret; } ++++++ man-db-2.4.1-section.dif -> man-db-2.4.3-section.dif ++++++ --- man/man-db-2.4.1-section.dif 2003-07-09 19:29:54.000000000 +0200 +++ man/man-db-2.4.3-section.dif 2006-06-13 16:01:31.000000000 +0200 @@ -1,26 +1,27 @@ --- src/man.c -+++ src/man.c Wed Jul 9 19:29:03 2003 -@@ -1357,7 +1357,7 @@ ++++ src/man.c 2006-06-13 16:01:19.000000000 +0200 +@@ -1312,7 +1312,7 @@ { - char **vs; + const char **vs; - for (vs = section_list; *vs; vs++) { + for (vs = section_list; vs && *vs; vs++) { if (STREQ (*vs, name)) return name; if (strlen (*vs) == 1 && STRNEQ (*vs, name, 1)) -@@ -2693,7 +2693,7 @@ - /* Find out whether left->ext is ahead of right->ext in +@@ -2714,7 +2714,8 @@ * section_list. */ -- for (sp = section_list; *sp; sp++) { -+ for (sp = section_list; sp && *sp; sp++) { + const char **sp; +- for (sp = section_list; *sp; ++sp) { ++ ++ for (sp = section_list; sp && *sp; ++sp) { if (!*(*sp + 1)) { /* No extension */ if (!sec_left && **sp == *(left->ext)) -@@ -3318,7 +3318,7 @@ +@@ -3397,7 +3398,7 @@ } else { - char **sp; + const char **sp; - for (sp = section_list; *sp; sp++) { + for (sp = section_list; sp && *sp; sp++) { ++++++ man-db-2.3.19deb4.0-gettext.dif -> man-db-2.4.3.dif ++++++ ++++ 2637 lines (skipped) ++++ between man/man-db-2.3.19deb4.0-gettext.dif ++++ and man/man-db-2.4.3.dif ++++++ man-db-2.4.1.tar.bz2 -> man-db-2.4.3.tar.bz2 ++++++ ++++ 70745 lines of diff (skipped) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit-unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit-help@opensuse.org