Package: groff / 1.23.0-7

Metadata

Package Version Patches format
groff 1.23.0-7 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
bash scripts.patch | (download)

contrib/eqn2graph/eqn2graph.sh | 2 1 1 - 0 !
contrib/grap2graph/grap2graph.sh | 2 1 1 - 0 !
contrib/pic2graph/pic2graph.sh | 2 1 1 - 0 !
3 files changed, 3 insertions( ), 3 deletions(-)

 the *2graph scripts use $random, which is bash-specific

nroff ifs.patch | (download)

src/roff/nroff/nroff.sh | 2 2 0 - 0 !
1 file changed, 2 insertions( )

 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.

Bug-Debian: https://bugs.debian.org/541621
doc gfdl.patch | (download)

contrib/hdtbl/groff_hdtbl.7.man | 3 3 0 - 0 !
contrib/pdfmark/pdfroff.1.man | 3 3 0 - 0 !
man/groff.7.man | 3 3 0 - 0 !
man/groff_diff.7.man | 3 3 0 - 0 !
man/groff_out.5.man | 3 3 0 - 0 !
man/groff_tmac.5.man | 3 3 0 - 0 !
man/roff.7.man | 3 3 0 - 0 !
src/roff/groff/groff.1.man | 3 3 0 - 0 !
src/roff/troff/troff.1.man | 3 3 0 - 0 !
tmac/groff_trace.7.man | 3 3 0 - 0 !
10 files changed, 30 insertions( )

 add gfdl references to manual pages licensed under gfdl

Bug-Debian: https://bugs.debian.org/292229
doc gzipped.patch | (download)

contrib/pdfmark/pdfroff.1.man | 2 1 1 - 0 !
src/preproc/pic/pic.1.man | 2 1 1 - 0 !
2 files changed, 2 insertions( ), 2 deletions(-)

 adjust documentation references to account for compression

Bug-Debian: https://bugs.debian.org/498356
extratmacdirs.patch | (download)

Makefile.am | 2 1 1 - 0 !
1 file changed, 1 insertion( ), 1 deletion(-)

 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.

papersize config.patch | (download)

font/devdvi/devdvi.am | 4 2 2 - 0 !
font/devlbp/devlbp.am | 4 2 2 - 0 !
font/devlj4/devlj4.am | 4 2 2 - 0 !
font/devpdf/devpdf.am | 5 3 2 - 0 !
font/devps/devps.am | 4 2 2 - 0 !
5 files changed, 11 insertions( ), 10 deletions(-)

 use /etc/papersize in preference to configure-time selection

load desc failure.patch | (download)

src/roff/groff/groff.cpp | 15 12 3 - 0 !
1 file changed, 12 insertions( ), 3 deletions(-)

 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.

mmse note.patch | (download)

contrib/mm/groff_mm.7.man | 1 1 0 - 0 !
contrib/mm/mmroff.1.man | 3 2 1 - 0 !
man/groff_tmac.5.man | 3 2 1 - 0 !
src/roff/groff/groff.1.man | 3 2 1 - 0 !
4 files changed, 7 insertions( ), 3 deletions(-)

 note that groff_mmse(7) is only available in swedish locales

Bug-Debian: https://bugs.debian.org/710431
source date epoch utc.patch | (download)

doc/groff.texi | 13 7 6 - 0 !
src/devices/grohtml/grohtml.1.man | 12 7 5 - 0 !
src/devices/grohtml/post-html.cpp | 16 4 12 - 0 !
src/devices/gropdf/gropdf.1.man | 10 5 5 - 0 !
src/devices/gropdf/gropdf.pl | 19 15 4 - 0 !
src/devices/grops/grops.1.man | 12 7 5 - 0 !
src/devices/grops/ps.cpp | 9 2 7 - 0 !
src/include/curtime.h | 19 11 8 - 0 !
src/libs/libgroff/curtime.cpp | 23 13 10 - 0 !
src/roff/groff/groff.1.man | 12 7 5 - 0 !
src/roff/troff/input.cpp | 24 9 15 - 0 !
src/roff/troff/troff.1.man | 12 7 5 - 0 !
12 files changed, 94 insertions( ), 87 deletions(-)

 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.

doc default os debian.patch | (download)

tmac/mdoc/doc-common | 2 1 1 - 0 !
tmac/tests/doc_smoke-test.sh | 2 1 1 - 0 !
2 files changed, 2 insertions( ), 2 deletions(-)

 set doc-default-operating-system to "debian"

Bug-Debian: https://bugs.debian.org/284002
man hyperlinks.patch | (download)

tmac/man.local | 2 1 1 - 0 !
tmac/tests/an_UE-breaks-before-long-URIs.sh | 4 2 2 - 0 !
2 files changed, 3 insertions( ), 3 deletions(-)

 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.

nroff map CW to R.patch | (download)

tmac/man.local | 2 1 1 - 0 !
tmac/mdoc.local | 2 1 1 - 0 !
2 files changed, 2 insertions( ), 2 deletions(-)

 map cw to r for nroff

Bug-Debian: https://bugs.debian.org/1040975
check fp.patch | (download)

src/roff/troff/node.cpp | 31 20 11 - 0 !
1 file changed, 20 insertions( ), 11 deletions(-)

 [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

ms pic.patch | (download)

tmac/s.tmac | 2 1 1 - 0 !
1 file changed, 1 insertion( ), 1 deletion(-)

 [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.

hdtbl grn dependency.patch | (download)

contrib/hdtbl/hdtbl.am | 3 1 2 - 0 !
1 file changed, 1 insertion( ), 2 deletions(-)

 [hdtbl]: fix savannah #66316 (missing `grn` dep).

* hdtbl.am (HDTBLPROCESSEDEXAMPLEFILES): Declare dependency on `grn`;
  because `-I` flags are used, it is dragged in even though not
  explicitly needed.  Resolves race against `grn`'s availability in the
  build tree.

Fixes <https://savannah.gnu.org/bugs/?66316>.  Thanks to Ross Burton for
the report.