Debian Patches

Status for groff/1.23.0-5

Patch Description Author Forwarded Bugs Origin Last update
bash-scripts.patch The *2graph scripts use $RANDOM, which is bash-specific Colin Watson <cjwatson@debian.org> yes 2018-03-05
nroff-ifs.patch Unset IFS at nroff startup
It's questionable whether we should forward this; as noted in the bug
trail, there's a decent argument that this is a dash bug.
Colin Watson <cjwatson@debian.org> no debian 2018-03-05
doc-gfdl.patch Add GFDL references to manual pages licensed under GFDL Colin Watson <cjwatson@debian.org> not-needed debian 2023-07-08
doc-gzipped.patch Adjust documentation references to account for compression Colin Watson <cjwatson@debian.org> not-needed debian 2023-07-08
extratmacdirs.patch Allow adding a version-independent directory to the macro path
This allows us to put /usr/share/groff/tmac at the end of groff's macro
path in Debian.

This uses GNU-make-specific code, so it may not be forwardable in its
current state. A more upstreamable approach might be to add a --with-*
option to configure.
Colin Watson <cjwatson@debian.org> no 2018-03-05
papersize-config.patch Use /etc/papersize in preference to configure-time selection Colin Watson <cjwatson@debian.org> not-needed 2023-07-09
load-desc-failure.patch Display more helpful output when failing to load a device
If the device is known to be one of the devices in the groff binary package
rather than groff-base, refer the user to that.
Colin Watson <cjwatson@debian.org> not-needed 2023-07-08
mmse-note.patch Note that groff_mmse(7) is only available in Swedish locales Colin Watson <cjwatson@debian.org> no debian 2023-07-08
source-date-epoch-utc.patch Display time from SOURCE_DATE_EPOCH in UTC.
The semantics imposed in 1.23.0 are unsuitable for use with
reproducible-builds harnesses, since those specifically want to vary the
TZ environment variable to shake out other problems in build systems.
However, my patch that Debian has been carrying for a while is
unsuitable for general use, since most people expect the time displayed
in output to use local time.

A viable compromise seems to be to force UTC _only_ when
SOURCE_DATE_EPOCH is set. That will keep reproducible-builds harnesses
working with no extra effort, while also preserving the expected
behaviour for typical users of groff that don't go out of their way to
set that environment variable.

As a bonus, this corrects the behaviour of gropdf when the local offset
from UTC is not a whole number of hours.

* src/include/curtime.h (current_time): Return a `struct tm *`.
Document behaviour.
* src/libs/libgroff/curtime.cpp (current_time): If SOURCE_DATE_EPOCH is
set, return the overridden time after passing it through `gmtime`.
Otherwise, pass the current time through `localtime`.

* src/devices/grohtml/post-html.cpp (html_printer::do_file_components,
html_printer::~html_printer):
* src/devices/grops/ps.cpp (ps_printer::~ps_printer):
* src/roff/troff/input.cpp (init_registers): Adjust to new
`current_time` signature.

* src/devices/gropdf/gropdf.pl: If SOURCE_DATE_EPOCH is set, return the
overridden time after passing it through `gmtime`. Otherwise, pass
the current time through `localtime`.
(PDFDate): Fix output in the case where the local offset from UTC is
not a whole number of hours. (Previously, the minutes offset field
was always set to zero.)

* doc/groff.texi (Environment):
* src/devices/grohtml/grohtml.1.man (Environment):
* src/devices/gropdf/gropdf.1.man (Environment):
* src/devices/grops/grops.1.man (Environment):
* src/roff/groff/groff.1.man (Environment):
* src/roff/troff/troff.1.man (Environment): Update.
Colin Watson <cjwatson@debian.org> no upstream, https://git.savannah.gnu.org/cgit/groff.git/commit/?id=0815e503dba8d5c05921d68c6c718fe8f8440ee8 2024-04-30
doc-default-os-debian.patch Set doc-default-operating-system to "Debian" Colin Watson <cjwatson@debian.org> not-needed debian 2023-07-09
man-hyperlinks.patch Enable OSC 8 hyperlinks for man pages
The version of `less` in Debian stable supports these, provided that
you're also using a suitable terminal emulator.
Colin Watson <cjwatson@debian.org> no 2023-07-11
nroff-map-CW-to-R.patch Map CW to R for nroff Colin Watson <cjwatson@debian.org> no debian 2023-07-14
check-fp.patch [troff]: Fix Savannah #65427 (check fp==nullptr).
* src/roff/troff/node.cpp (ascii_output_file::outc)
(ascii_output_file::outs, put_string, troff_output_file::put)
(ascii_output_file::really_transparent_char)
(ascii_output_file::really_print_line): Guard uses of standard C
library `putc()` and `fputc()` functions with a null pointer check.
They could fail if the output stream has been invalidated. Problem
present from groff's birth and apparently exposed by man-db man's use
of AppArmor. See
<https://bugs.launchpad.net/ubuntu/+source/lintian/+bug/2055402> and
follow-up discussion there.

Fixes <https://savannah.gnu.org/bugs/?65427>. Thanks to an anonymous
submitter for the report.

No apparent performance degradation, even _without_ optimization, on
20 rebuilds of automake.pdf, contrib/mom/examples/*.pdf, and
groff-man-pages.pdf.

CFLAGS="-O0 -Og -ggdb"

Before:
+ awk /Elapsed/ {time = $NF; sub("0:", "", time); print time}
+ datamash range 1 mean 1 sstdev 1
3.35 11.0475 1.0103510333178

After:
+ awk /Elapsed/ {time = $NF; sub("0:", "", time); print time}
+ datamash range 1 mean 1 sstdev 1
2.49 10.81380952381 0.62027797148114
"G. Branden Robinson" <g.branden.robinson@gmail.com> yes upstream upstream, https://git.savannah.gnu.org/cgit/groff.git/commit/?id=5c923303a9ef44bb4bc4f44d09799f93193fc079 2024-07-04
ms-pic.patch [ms]: Fix Savannah #64438.
* tmac/s.tmac (@PS): Stop treating excess arguments as erroneous,
foregoing preparation for pic(1) output. Fixes regression from groff
1.22.4.

Fixes <https://savannah.gnu.org/bugs/?64438>. Thanks to Doug McIlroy
for the report, Dave Kemper for root-cause analysis, and Deri James for
usability feedback.
"G. Branden Robinson" <g.branden.robinson@gmail.com> yes upstream upstream, https://git.savannah.gnu.org/cgit/groff.git/commit/?id=a3deb17968d8a04cf5d2c1df34d59c198d60c4ae 2024-07-04

All known versions for source package 'groff'

Links