Your message dated Mon, 10 Apr 2023 16:15:24 +0000
with message-id <e1pluau-00bzfm...@respighi.debian.org>
and subject line unblock lowdown
has caused the Debian Bug report #1034118,
regarding unblock: lowdown/1.0.0-2
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact ow...@bugs.debian.org
immediately.)


-- 
1034118: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1034118
Debian Bug Tracking System
Contact ow...@bugs.debian.org with problems
--- Begin Message ---
Package: release.debian.org
Severity: normal
User: release.debian....@packages.debian.org
Usertags: unblock

Please unblock package lowdown, a key package, through:
  bind9 -> libmaxminddb -> lowdown

[ Reason ]
lowdown is a Markdown to HTML/roff/LaTeX/etc. translator. A regression
was introduced at some point where the -Tman (manpage) output used a
roff macro that is not present in the "man" package but in the "ms"
package. I reported this upstream[1], and it was subsequently fixed[2].

This is a bookworm-targeted backport of that specific upstream commit,
that applies cleanly as-is.

1: https://github.com/kristapsdz/lowdown/issues/111
2: 
https://github.com/kristapsdz/lowdown/commit/02491bf4ae2a39df2dfed10382512449a5b3262f

[ Impact ]
The output difference is minor from a visual standpoint, e.g.
   OPTIONS
          -batch_size ______
  -              Maximum  number  of  entries to request per call to 
get-entries.
  -              You should not generally need to change this. Defaults to 1000.
  +            Maximum number of entries to request per call to get-entries.  
You
  +            should not generally need to change this. Defaults to 1000.

However, the roff output is technically invalid.

In Debian, this manifests in reverse build-dependencies that are using
lowdown to generate their manpage to emit lintian warnings, e.g.:
    W: certspotter: groff-message 29: warning: macro 'PI' not defined 
[usr/share/man/man8/certspotter-script.8.gz:1]
    W: certspotter: groff-message 56: warning: macro 'PI' not defined 
[usr/share/man/man8/certspotter.8.gz:1]

There are three reverse build-dependencies in testing:
  1) src:libmaxminddb
  2) src:certspotter
  3) src:nix

Only the first two are using -Tman. I am the maintainer for both.
src:libmaxminddb was built with an pre-regression version of lowdown and
is not affected. It can be binNMUed, although not strictly necessary.

src:certspotter is affected and should probably be binNMUed, although as
explained, the visual impact is relatively minor.

[ Tests ]
Upstream has a comprehensive test suite that runs as part of the build.
The package also has autopkgtests that pass.

[ Risks ]
The code for the fix is trivial. The package is technically a key
package, but only as a reverse build-dep of another package, and is only
a B-D for three packages in total.

[ Checklist ]
  [x] all changes are documented in the d/changelog
  [x] I reviewed all changes and I approve them
  [x] attach debdiff against the package in testing

[ Other info ]
debdiff attached; you can also find the git diff at:
https://salsa.debian.org/debian/lowdown/-/commit/0e2160bb23e194edc5c15c7772042857fd18f2f7

unblock lowdown/1.0.0-2

Also probably:

nmu certspotter_0.16.0-1 . ANY . unstable . -m "Rebuild with lowdown 1.0.0-2"

(but no idea how to ensure the ordering of those two, not fluent in
wanna-build)
diff -Nru lowdown-1.0.0/debian/changelog lowdown-1.0.0/debian/changelog
--- lowdown-1.0.0/debian/changelog      2023-01-07 06:52:41.000000000 +0200
+++ lowdown-1.0.0/debian/changelog      2023-04-09 03:39:15.000000000 +0300
@@ -1,3 +1,13 @@
+lowdown (1.0.0-2) unstable; urgency=medium
+
+  * Backport upstream patch to avoid the use of an -ms macro, PI, in the -Tman
+    output. This addresses a man warning ("macro 'PI' not defined") which in
+    turn is a lintian warning for packages using lowdown to generate their
+    manpage(s).
+  * Bump Standards-Version to 4.6.2, no changes needed.
+
+ -- Faidon Liambotis <parav...@debian.org>  Sun, 09 Apr 2023 03:39:15 +0300
+
 lowdown (1.0.0-1) unstable; urgency=medium
 
   * New upstream release.
diff -Nru lowdown-1.0.0/debian/control lowdown-1.0.0/debian/control
--- lowdown-1.0.0/debian/control        2023-01-07 04:49:43.000000000 +0200
+++ lowdown-1.0.0/debian/control        2023-04-09 03:39:15.000000000 +0300
@@ -6,7 +6,7 @@
  libbsd-dev,
  libmd-dev,
  pkgconf | pkg-config,
-Standards-Version: 4.6.1
+Standards-Version: 4.6.2
 Section: text
 Homepage: https://kristaps.bsd.lv/lowdown/
 Vcs-Browser: https://salsa.debian.org/debian/lowdown
diff -Nru lowdown-1.0.0/debian/patches/dont-use-PI-for-tman.patch 
lowdown-1.0.0/debian/patches/dont-use-PI-for-tman.patch
--- lowdown-1.0.0/debian/patches/dont-use-PI-for-tman.patch     1970-01-01 
02:00:00.000000000 +0200
+++ lowdown-1.0.0/debian/patches/dont-use-PI-for-tman.patch     2023-04-09 
03:38:19.000000000 +0300
@@ -0,0 +1,83 @@
+From: Kristaps Dz <krist...@bsd.lv>
+Subject: [PATCH] Don't use \(PI for -tman: it doesn't exist.
+
+The \(PI register only exists for -ms macros.  Use the default value
+of 5n for this (for definition lists) when emitting for -tman.
+
+References #111
+
+Origin: upstream, 
https://github.com/kristapsdz/lowdown/commit/02491bf4ae2a39df2dfed10382512449a5b3262f
+Bug: https://github.com/kristapsdz/lowdown/issues/111
+Last-Update: 2023-04-09
+
+--- a/nroff.c
++++ b/nroff.c
+@@ -745,7 +745,8 @@ rndr_definition_title(struct bnodeq *obq
+ }
+ 
+ static int
+-rndr_definition_data(struct bnodeq *obq, struct bnodeq *bq)
++rndr_definition_data(const struct nroff *st, struct bnodeq *obq,
++    struct bnodeq *bq)
+ {
+       /*
+        * The IP creates an empty vertical space til I figure out a
+@@ -760,9 +761,18 @@ rndr_definition_data(struct bnodeq *obq,
+ 
+       if (bqueue_block(obq, ".if n \\\n.sp -1v") == NULL)
+               return 0;
+-      if (bqueue_block(obq, ".if t \\\n.sp -0.25v\n") == NULL)
++      if (bqueue_block(obq, ".if t \\\n.sp -0.25v") == NULL)
+               return 0;
+-      if (bqueue_block(obq, ".IP \"\" \\*(PI") == NULL)
++
++      /*
++       * The \(PI register exists in -ms for the paragraph indent.
++       * Use it for -ms and hard-code 5n (the default for -ms) in
++       * -man.
++       */
++
++      if (st->man && bqueue_block(obq, ".IP \"\" 5n") == NULL)
++              return 0;
++      if (!st->man && bqueue_block(obq, ".IP \"\" \\*(PI") == NULL)
+               return 0;
+ 
+       /* Strip out leading paragraphs. */
+@@ -1753,7 +1763,7 @@ rndr(struct lowdown_metaq *mq, struct nr
+               rc = rndr_list(st, obq, n, &tmpbq);
+               break;
+       case LOWDOWN_DEFINITION_DATA:
+-              rc = rndr_definition_data(obq, &tmpbq);
++              rc = rndr_definition_data(st, obq, &tmpbq);
+               break;
+       case LOWDOWN_DEFINITION_TITLE:
+               rc = rndr_definition_title(obq, &tmpbq);
+--- a/regress/simple.man
++++ b/regress/simple.man
+@@ -178,7 +178,7 @@ apples
+ .sp -1v
+ .if t \
+ .sp -0.25v
+-.IP "" \*(PI
++.IP "" 5n
+ Good for making applesauce.
+ .LP
+ oranges
+@@ -186,7 +186,7 @@ oranges
+ .sp -1v
+ .if t \
+ .sp -0.25v
+-.IP "" \*(PI
++.IP "" 5n
+ Citrus!
+ .LP
+ tomatoes
+@@ -194,7 +194,7 @@ tomatoes
+ .sp -1v
+ .if t \
+ .sp -0.25v
+-.IP "" \*(PI
++.IP "" 5n
+ There\(cqs no \(lqe\(rq in tomatoe.
+ .LP
+ Again, text is indented 4 spaces. (Put a blank line between each
diff -Nru lowdown-1.0.0/debian/patches/series 
lowdown-1.0.0/debian/patches/series
--- lowdown-1.0.0/debian/patches/series 2023-01-07 06:52:39.000000000 +0200
+++ lowdown-1.0.0/debian/patches/series 2023-04-09 03:38:12.000000000 +0300
@@ -1,2 +1,3 @@
 liblowdown-lm.patch
 pkg-config-libmd-libbsd.patch
+dont-use-PI-for-tman.patch

--- End Message ---
--- Begin Message ---
Unblocked.

--- End Message ---

Reply via email to