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/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-2.12.0.tar.xz b/man-db-2.12.0.tar.xz deleted file mode 100644 index d024773..0000000 Binary files a/man-db-2.12.0.tar.xz and /dev/null differ diff --git a/man-db.spec b/man-db.spec index 16ee8a6..a9d0fea 100644 --- a/man-db.spec +++ b/man-db.spec @@ -1,7 +1,7 @@ %global cache /var/cache/man Name: man-db -Version: 2.12.0 +Version: 2.11.2 Release: 1 Summary: Online database for using man pages License: GPLv2+ and GPLv3+ @@ -11,6 +11,9 @@ Source1: man-db.crondaily Source2: man-db.sysconfig Source3: man-db-cache-update.service +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 Requires: coreutils grep groff-base gzip less crontabs @@ -202,6 +205,9 @@ fi %exclude %{_libdir}/man-db/*.la %changelog +* Wed Feb 28 2024 gengqihu - 2.11.2-1 +- revert "upgrade version to 2.12.0" + * Tue Jan 16 2024 renhongxun - 2.12.0-1 - upgrade version to 2.12.0