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