diff --git a/backport-Improve-lexgrog-1-portability.patch b/backport-Improve-lexgrog-1-portability.patch new file mode 100644 index 0000000..369b81c --- /dev/null +++ b/backport-Improve-lexgrog-1-portability.patch @@ -0,0 +1,153 @@ +From bbf7701c4f8269090a12791f3c9bde80d45c8765 Mon Sep 17 00:00:00 2001 +From: "G. Branden Robinson" +Date: Wed, 19 Jul 2023 01:58:07 -0500 +Subject: [PATCH] Improve lexgrog(1) portability + +This fixes a test failure in man1/lexgrog.1 when building against groff +1.23.0. + +Borrow code from groff 1.23.0's "an-ext.tmac" file (licensed as +permissively as a decadent society) to implement `EX` and `EE` extension +macros from Ninth Edition Research Unix (1986) (and groff) to get +monospaced code displays in a more portable way. There is no way to +portably change font families in pure man(7) itself, and the names of +troff typefaces aren't very portable either. There is also no portable +way to test for the _existence_ of a font. FTW. + +("Portable" here largely means "to AT&T device-independent troff +implementations", for which there has been no official source since the +mid-1990s.[1] Several AT&T Unix System V licensees/descendants have +continued to ship their own vendored versions, but these have enjoyed +little or no development for the past 3 decades.) + +* Define a string `mC` to store the name of a presumed monospaced roman + typeface. Use "CW", which is portable to AT&T device-independent + troff of the early 1980s before it occurred to anyone that Courier + might someday be available in italic and bold styles (and budget + available to purchase them). +* Define `mC` as "CR" if using a typesetting device and the formatter is + groff, or claims groff compatibility by the setting the `.g` register. + This is reasonably portable to modern implementations given + traditional troff font naming practices and the pervasive influence of + Adobe Software and the "base fonts" of its PostScript and PDF + specifications. +* If not typesetting (i.e., if using nroff), define `mC` as "R", which + is certain to be available. +* Define `EX` and `EE` macros as groff does, if the formatter does not + set the `.g` register. +* Migrate from `ft CW` and `nf` requests to `EX` macro calls. +* Migrate from `ft P` and `fi` requests to `EE` macro calls. +* Replace an inline use of `\f(CW` with a change to inline bold. There + is to date no portable way to inline a font family change. + +Test passes now. Tested as-is and with the `EX` and `EE` macro +definitions forcibly enabled. + +[1] https://groups.google.com/g/comp.text/c/COkqrii4W0E/m/7HarA8Ha2dAJ +--- + man/man1/lexgrog.man1 | 57 ++++++++++++++++++++++++++++++++----------- + 1 file changed, 43 insertions(+), 14 deletions(-) + +diff --git a/man/man1/lexgrog.man1 b/man/man1/lexgrog.man1 +index 37b9d287..f9f708f8 100644 +--- a/man/man1/lexgrog.man1 ++++ b/man/man1/lexgrog.man1 +@@ -5,6 +5,41 @@ + .\" You may distribute under the terms of the GNU General Public + .\" License as specified in the file docs/COPYING.GPLv2 that comes with the + .\" man-db distribution. ++.\" ++.ds mC CW ++.if t .if \n(.g .ds mC CR ++.if n .ds mC R ++. ++.nr mE 0 \" in an example (EX/EE)? ++. ++.if \n(.g \{\ ++.de EX ++. br ++. if !\\n(mE \{\ ++. nr mF \\n(.f ++. nr mP \\n(PD ++. nr PD 1v ++. nf ++. ft \\*(mC ++. nr mE 1 ++. \} ++.. ++.\} ++. ++. ++.\" End example. ++.if \n(.g \{\ ++.de EE ++. br ++. if \\n(mE \{\ ++. ft \\n(mF ++. nr PD \\n(mP ++. fi ++. nr mE 0 ++. \} ++.. ++.\} ++. + .pc + .TH LEXGROG 1 "%date%" "%version%" "Manual pager utils" + .SH NAME +@@ -133,12 +168,10 @@ macro set, a correct + section looks something like this: + .PP + .RS +-.ft CW +-.nf ++.EX + \&.SH NAME + foo \e\- program to do something +-.fi +-.ft P ++.EE + .RE + .PP + Some manual pagers require the \(oq\e\-\(cq to be exactly as shown; +@@ -157,18 +190,16 @@ If several features with different descriptions are being documented in the + same manual page, the following form is therefore used: + .PP + .RS +-.ft CW +-.nf ++.EX + \&.SH NAME + foo, bar \e\- programs to do something + \&.br + baz \e\- program to do nothing +-.fi +-.ft P ++.EE + .RE + .PP +-(A macro which starts a new paragraph, like \f(CW.PP\fP, may be used instead +-of the break macro \f(CW.br\fP.) ++(A macro which starts a new paragraph, like \fB.PP\fP, may be used instead ++of the break macro \fB.br\fP.) + .PP + When using the BSD-derived + .I mdoc +@@ -177,13 +208,11 @@ macro set, a correct + section looks something like this: + .PP + .RS +-.ft CW +-.nf ++.EX + \&.Sh NAME + \&.Nm foo + \&.Nd program to do something +-.fi +-.ft P ++.EE + .RE + + There are several common reasons why whatis parsing fails. +-- +2.27.0 + diff --git a/backport-Update-warning-regex-for-groff-1.23.0.patch b/backport-Update-warning-regex-for-groff-1.23.0.patch new file mode 100644 index 0000000..eaa6378 --- /dev/null +++ b/backport-Update-warning-regex-for-groff-1.23.0.patch @@ -0,0 +1,29 @@ +From b12ffb9df7a6a8956b08206c36be70fac78508bd Mon Sep 17 00:00:00 2001 +From: Colin Watson +Date: Thu, 20 Jul 2023 00:18:59 +0100 +Subject: [PATCH] Update warning regex for groff 1.23.0 + +Part of https://gitlab.com/man-db/man-db/-/issues/25. + +* man/check-man: groff 1.23.0 says "cannot break line" rather than +"can't break line"; update regular expression. +--- + man/check-man | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/man/check-man b/man/check-man +index a58b7f9d..f8985a0d 100755 +--- a/man/check-man ++++ b/man/check-man +@@ -31,7 +31,7 @@ errors="$(LC_ALL=C MANWIDTH=80 MAN_KEEP_FORMATTING=1 "$top_builddir/libtool" \ + # Indeed, even for other languages we're going to get "cannot adjust line" + # if %manpath_config_file% expands to something long. Hmm. We'll just ignore + # this across the board for now. +-errors="$(echo "$errors" | $EGREP -v "(cannot adjust line|can't break line)")" || true ++errors="$(echo "$errors" | $EGREP -v "(cannot adjust line|(can't|cannot) break line)")" || true + + if [ "$code" != 0 ]; then + echo "man -E UTF-8 -l $1 failed with exit status $code and error output:" +-- +2.27.0 + diff --git a/backport-mandb-Fix-crash-when-processing-stray-cats.patch b/backport-mandb-Fix-crash-when-processing-stray-cats.patch deleted file mode 100644 index 3ba0635..0000000 --- a/backport-mandb-Fix-crash-when-processing-stray-cats.patch +++ /dev/null @@ -1,43 +0,0 @@ -From bc2573614d40ccf457991223d6727e29486621f4 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Sun, 1 Jan 2023 17:51:27 +0000 -Subject: [PATCH] mandb: Fix crash when processing stray cats - -Regression introduced in man-db 2.11.0. Fixes Debian bug #1027487. - -* src/straycats.c (check_for_stray): Pass a basic trace list to -`store_descriptions`, since that's required as of commit -d3e4b5522ae8152f10db0bb98e6873c9cc17ed59. -* NEWS.md: Document this. ---- - src/straycats.c | 9 +++++++-- - 1 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/src/straycats.c b/src/straycats.c -index 95e8750a..932230b0 100644 ---- a/src/straycats.c -+++ b/src/straycats.c -@@ -251,13 +251,18 @@ static int check_for_stray (MYDBM_FILE dbf) - if (find_name_decompressed (decomp, - catdir_base, - &lg)) { -- gl_list_t descs; -+ gl_list_t descs, trace; - strays++; - descs = parse_descriptions - (mandir_base, lg.whatis); -+ trace = new_string_list (GL_ARRAY_LIST, -+ true); -+ gl_list_add_last (trace, -+ xstrdup (catdir)); - store_descriptions (dbf, descs, info, - NULL, mandir_base, -- NULL); -+ trace); -+ gl_list_free (trace); - gl_list_free (descs); - } else if (quiet < 2) - error (0, 0, _("warning: %s: whatis parse for %s(%s) failed"), --- -GitLab - diff --git a/man-db-2.11.0.tar.xz b/man-db-2.11.0.tar.xz deleted file mode 100644 index 62cc6c7..0000000 Binary files a/man-db-2.11.0.tar.xz and /dev/null differ diff --git a/man-db-2.11.2.tar.xz b/man-db-2.11.2.tar.xz new file mode 100644 index 0000000..92092a3 Binary files /dev/null and b/man-db-2.11.2.tar.xz differ diff --git a/man-db.spec b/man-db.spec index 2ce9495..de1f587 100644 --- a/man-db.spec +++ b/man-db.spec @@ -1,8 +1,8 @@ %global cache /var/cache/man Name: man-db -Version: 2.11.0 -Release: 3 +Version: 2.11.2 +Release: 1 Summary: Online database for using man pages License: GPLv2+ and GPLv3+ URL: http://www.nongnu.org/man-db/ @@ -11,7 +11,8 @@ Source1: man-db.crondaily Source2: man-db.sysconfig Source3: man-db-cache-update.service -Patch1: backport-mandb-Fix-crash-when-processing-stray-cats.patch +Patch1: backport-Improve-lexgrog-1-portability.patch +Patch2: backport-Update-warning-regex-for-groff-1.23.0.patch BuildRequires: gcc systemd gdbm-devel gettext groff less libpipeline-devel zlib-devel BuildRequires: po4a perl-interpreter perl-version make chrpath @@ -178,10 +179,13 @@ fi %lang(id) %{_datadir}/man/id/man*/* %lang(it) %{_datadir}/man/it/man*/* %lang(ja) %{_datadir}/man/ja/man*/* +%lang(ko) %{_datadir}/man/ko/man*/* %lang(nl) %{_datadir}/man/nl/man*/* %lang(pl) %{_datadir}/man/pl/man*/* +%lang(pt) %{_datadir}/man/pt/man*/* %lang(pt_BR) %{_datadir}/man/pt_BR/man*/* %lang(ru) %{_datadir}/man/ru/man*/* +%lang(ro) %{_datadir}/man/ro/man*/* %lang(sr) %{_datadir}/man/sr/man*/* %lang(sv) %{_datadir}/man/sv/man*/* %lang(tr) %{_datadir}/man/tr/man*/* @@ -197,25 +201,13 @@ fi %{_mandir}/man8/accessdb.8* %{_mandir}/man8/catman.8* %{_mandir}/man8/mandb.8* -%{_mandir}/pt/man1/* -%{_mandir}/pt/man5/* -%{_mandir}/pt/man8/* %exclude %{_datadir}/man/man1/zsoelim.1.gz %exclude %{_libdir}/man-db/*.la -%{_mandir}/ro/man1/apropos.1.gz -%{_mandir}/ro/man1/lexgrog.1.gz -%{_mandir}/ro/man1/man-recode.1.gz -%{_mandir}/ro/man1/man.1.gz -%{_mandir}/ro/man1/manconv.1.gz -%{_mandir}/ro/man1/manpath.1.gz -%{_mandir}/ro/man1/whatis.1.gz -%{_mandir}/ro/man1/zsoelim.1.gz -%{_mandir}/ro/man5/manpath.5.gz -%{_mandir}/ro/man8/accessdb.8.gz -%{_mandir}/ro/man8/catman.8.gz -%{_mandir}/ro/man8/mandb.8.gz %changelog +* Tue Jul 25 2023 renhongxun - 2.11.2-1 +- upgrade version to 2.11.2 + * Fri Jun 30 2023 lilong - 2.11.0-3 - Fix crash when mandoc install