Hi Bertrand, I hope this message finds you well.
Here's an update to a similar message I sent back on 20 April.[1] I've pushed a new personal staging branch, branden-2023-06-01[11] to groff's Git repository. Since RC4 I have pushed many documentation corrections and improvements to the master branch. These are low-risk changes that affect only text, and don't require alteration of build scripts, Makefiles, or similar. Would you like to tag the HEAD of the master branch as "1.23.0"? There do remain issues, of course--groff is not a bug-free code base. I will recapitulate and update the list from 20 April. If you (or anyone reading this) feels any should be a release blocker, please let me know. RC4 enjoyed successful builds, with test suite passage, on the following platforms courtesy of Bruno Haible. * Linux Ubuntu 22.04 Debian 9.1 Debian 11.1 CentOS 8-stream CentOS Stream 9 OpenSUSE Leap 15.2 Manjaro 17 * Hurd Debian GNU/Hurd I also had a successful build and "make check" with macOS 12. The feedback we've received as verified RC4 issues are as follows. We can add these to the release notes as "errata" and/or keep this list handy for users or distributors who may want to cherry-pick the fixes. If you'd like to see any of these merged onto master for an RC5, please advise. My personal view, due to RC exhaustion, a desire to get the many improvements in groff 1.23.0 into the field, and eagerness to resume feature development, is that we should tag master as 1.23.0 and release. But I value your opinion too. > * Two distinct complaints about ms(7) > 1. raw .bp requests sometimes not working (Savannah #64005) This is a regression from groff 1.22.4. I have a fix ready for merge.[2] > 2. raw .sp requests being nilpotent sometimes This is a deliberate change. As far as I can tell, historically, ms users were expected to know what they were doing if they resorted to formatter requests. No one has ever specified the package rigorously enough for us to know what should be done at every point of intersection between *roff requests and the macro package's internal implementation. I think we should reserve to our own discretion replication of AT&T ms behavior in unspecified areas. Since April 20, there have been 2 further reports of regressions in groff man(7). These were reported and analyzed around 1 May. > 9. man: user-selected font family not preserved This was a regression from 1.22.4; I have a fix ready for merge.[9] > 10. man: `HP` sometimes puts extra blank line on output This was NOT a regression from 1.22.4; I have a fix ready for merge.[10] Returning to issues we'd heard about by 20 April, the rest involve portability. > * Portability issues > 3. build failure when building out of tree and the prerequisites for > running mom(7)'s test script are unavailable > > This was a latent groff 1.22.4 bug exposed by a commit of mine on 2 > March. > > https://git.savannah.gnu.org/cgit/groff.git/commit/?id=1ec02e805e2448bb17a27e3d9398cc83fd272743 > > I reckon this counts as a regression since a Makefile code path is > being followed now that wasn't in 1.22.4 when mom's test prerequisites > were not available. On the other hand, if someone tried to produce a > distribution archive ("make dist") on such a system, I think that it > would have been erroneously missing mom's test script. ... I found > this alarming. I have a fix ready for merge.[3] > 4. build failure in gxditview on AIX > > I think it unlikely that this is a regression. I predict that groff > 1.22.4 would _also_ fail to build on an AIX system where Xaw linked > with Xpm and Xext. (I suspect this has been the case for years.) But > I have no access to an AIX system to be sure. Bruno prepared a fix for us; I have it ready for merge.[4] > 5. build failure with Sun C/C++ compiler due to use of GNU attribute > extension > > I have no information about whether groff 1.22.4 ever built > successfully with the Sun C/C++ compiler, but the uses of the GCC > __attribute__ extension were both post-1.22.4 additions to the groff > source code, so we can regard this as a regression since this usage > would (it seems) be a sufficient condition for causing that compiler > to fail. I have a fix ready for merge.[5] > 6. build failure on MinGW due to platform not supplying <sys/wait.h> > > I'm not sure groff 1.22.4 built on MinGW without being patched, but > the requirement for the this header file is a post-1.22.4 change, so > we can call this a regression. I have a fix ready for merge.[6] > 7. test failure: gdiffmk > > Not a regression. This was a bug in GNU diffutils 3.9. GNU diffutils 3.10 is out now and should fix this.[7] > 8. test failure: pdfpic.tmac > > Not a regression; in fact, thanks to macOS 12 sed supporting a (GNU?) > extension to the POSIX specification for sed, this failure does not > occur where on older releases of Mac OS X, it would have. I have a much improved and more portable implementation of pdfpic.tmac ready for merge.[8] What is your view of our releasebility? Regards, Branden [1] https://lists.gnu.org/archive/html/groff/2023-04/msg00192.html [2] commit 72820ac3e1fd4c3421486b80c6b791503ae268a7 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Wed Apr 5 20:04:17 2023 -0500 [ms]: Fix Savannah #64005. * tmac/s.tmac (@break-page, bp): Define alias for `bp` request and wrapper for `bp` to (if needed) temporarily disable no-space mode, so that a document's `bp` requests are honored even if no-space mode is on, as can happen after displays. Fixes a regression from groff 1.22.4 and historical ms implementations introduced by me on 6 July when resolving Savannah #62688. Fixes <https://savannah.gnu.org/bugs/?64005>. Thanks to Michał Kruszewski for reporting the problem and Dave Kemper for identifying the cause. ANNOUNCE: Acknowledge Michał. commit 355a495a31b4560242067eeb8b9a46fe96bc3fa3 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Wed Apr 5 19:08:03 2023 -0500 [ms]: Regression-test Savannah #64005. * tmac/tests/s_honor-page-break-after-display.sh: Do it. * tmac/tmac.am (tmac_TESTS): Run test. Test fails at this commit. [3] commit 6a09665af4f7a526c87053f1a48bbcdcea355823 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Sat Apr 15 17:37:18 2023 -0500 [mom]: Ensure parent dir of test script exists. * contrib/mom/mom.am (contrib/mom/examples/tests-mom.sh): Do it. Fixes out-of-tree build failure on systems where the prerequisites for running mom's test script are unavailable. Thanks to Bruno Haible for the report. [4] commit fdc402f4c19fa6a0d9e52211c17b27fca2305d3e Author: Bruno Haible <br...@clisp.org> Date: Sun Apr 16 14:26:01 2023 +0200 [build]: Fix gxditview linking on AIX. * m4/groff.m4 (GROFF_X11): Add macro dependency on `AC_CANONICAL_HOST`. Introduce new variable `X_AW_DEPS`, empty on most hosts. If we otherwise have Athena widget library support, and the host is AIX, force linkage against Xpm and Xext libraries to reflect modern Athena dependencies, which AIX's linker doesn't figure out on its own. `AC_SUBST` this variable, exposing it to Automake files. * src/devices/xditview/xditview.am (gxditview_LDADD): Use it. [5] commit 4f89d7ef1fd3f94e422d635bcb06f4112bc269b7 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Sun Apr 16 00:30:29 2023 -0500 [build]: Improve portability to unfree compilers. * bootstrap.conf (gnulib_modules): Add "attribute". * src/libs/libgroff/getopt.c: * src/libs/libgroff/new.cpp: Include gnulib's "attribute.h" header file. * src/libs/libgroff/getopt.c (_getopt_initialize): * src/libs/libgroff/new.cpp (operator delete): Replace GNU C unused attribute syntax with gnulib's "MAYBE_UNUSED". Thanks to Bruno Haible for the report and suggested remedy. ANNOUNCE: Drop item about builds failing with MSVC due to GNU C-style attribute usage. This might no longer happen, but there could be other reasons we don't successfully build with it. [6] commit bf1c48c44488cab04d3979ed4915ca65eec63d63 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Sun Apr 16 00:50:35 2023 -0500 bootstrap.conf: Add "sys_wait" module. * bootstrap.conf (gnulib_modules): Add "sys_wait" module. MinGW does not provide "sys/wait.h", which we require in src/preproc/html/pre-html.cpp since commit 11137209ed, 27 June. [7] https://lists.gnu.org/archive/html/info-gnu/2023-05/msg00009.html [8] commit e0c27d6c19152f245b4886f92957c128c2fa8565 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Mon Apr 17 16:41:33 2023 -0500 [pdfpic]: Fix Savannah #64061. * tmac/pdfpic.tmac: Refactor to make comprehensible some woefully undocumented cleverness and improve efficiency. (PDFPIC): Break out flaming-hoop-leaping "clever" bit of `sy` usage into its own macro, calling from here and relocating its requests from here... (pdfpic@get-image-dimensions): ...to here. When using `sy` request to collect and munge output of pdfinfo(1), (a) disable the escape character while defining the macro; (b) construct the command in a roff string, appending to it in discrete, hopefully comprehensible chunks; (c) disable the escape character during macro interpretation wherever possible (most of it); (d) retain doubled backslashes so that they survive subsequent string interpolation; (e) stop using grep(1) in the pipeline when sed(1) is perfectly capable of performing its own input filtering; (f) invoke sed with '-n' option and emit output only upon a successful substitution; (g) replace unportable(!) POSIX BRE character class '[:digit:]' in substitution match text with '[0-9]'; and most importantly (h) replace multi-line sed 's' replacement text (see below for the reason we can't use it) with single roff control line employing the groff extension escape sequence `\R` to assign multiple registers. Annotate portability and escaping challenges. Tested on GNU/Linux, macOS 12, and (with simulated pdfinfo(1) output) Solaris 11. There is a problem with trying to embed true newlines into the arguments of a `sy` request. The C++ function that GNU troff uses to assemble the command string (character by character) _does not recognize C/C++ string literal escape sequences_. This means that you _cannot_ embed "\n" in `sy`'s arguments and have it survive, as a newline character, into the command string passed to the standard C library's system(3) function. ("A\nB" gets encoded as 'A', '\\', 'n', 'B', not 'A', '\n', 'B'.) Unfortunately, this appears to be AT&T troff-compatible behavior. But it means that you _cannot_ portably construct multi-line replacement text for sed's 's' command. (Other sed commands like 'a', 'c', and 'i' will be similarly affected.) See Savannah #64071. * PROBLEMS: Drop item. Fixes <https://savannah.gnu.org/bugs/?64061>. Thanks to Bruno Haible for the report, and to him and Ralph Corderoy for the discussion of portable and efficient sed constructs. [9] commit 820c1fd561e9a86d6570d597c41453bcb062643f Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Mon May 1 13:59:56 2023 -0500 [man]: Preserve user-selected font family. * tmac/an.tmac: When initializing, save the currently selected font family as `an*body-family` instead of forcing 'T' (Times, which is the formatter's default, even on nroff-mode devices that can't switch families). This change makes the formatter's `-f` option work on man(7) documents again (important for Japanese man pages, but there is now once again nothing stopping you from viewing man pages in Palatino or Helvetica on the 'ps' and 'pdf' devices where these families are available). It also reopens an avenue for rogue pages to affect the rendering of unrelated documents later in batch rendering, but there are many other, and worse, ways for rogue pages to do damage. Problem introduced by me in commit e0e16d8e65, 15 March 2022. Fixes <https://savannah.gnu.org/bugs/?64130>. Thanks to Deri James for the report. [10] commit 53ceb8f807ac36b3ff4bf35d60773e0084af4eb4 Author: G. Branden Robinson <g.branden.robin...@gmail.com> Date: Mon May 1 05:14:26 2023 -0500 [man]: Stop `HP` producing excess vertical space. * tmac/an.tmac (HP): Fix thinko/typo when expanding macro as string to call `an-deprecation-warn`. * tmac/an-ext.tmac (SY): Put 1v of vertical space on the output if we are starting a (non-nested) synopsis. Thanks to Alex Colomar for the report. Problem introduced by me in commit aea1dfb11b, 6 March 2022. https://lists.gnu.org/archive/html/groff/2023-04/msg00369.html [11] Actually, I now see that it's named "branden-2022-06-01". Wrong year. Sigh.
signature.asc
Description: PGP signature