• Bug#1104609: /usr/share/groff/1.23.0/tmac/doc.tmac: Nm in broken in -Tp

    From =?utf-8?B?0L3QsNCx?=@21:1/5 to All on Fri May 2 23:20:01 2025
    Package: groff-base
    Version: 1.23.0-7
    Severity: important
    File: /usr/share/groff/1.23.0/tmac/doc.tmac

    Dear Maintainer,

    Observe the Nms in
    https://ra.ws.co.ls/~nabijaczleweli/tzpfms/blob/f2bb78cd74ba4237cc1036ef9825d448963b51a4/tzpfms.pdf
    (as built with groff -K utf8 -tpe -mdoc -Tps -dpaper=a4 -P-pa4 under groff 1.23.0-7).

    Every document after the first one uses the first document's .Nm
    (except for ".Nm explicit text" usage, which works as-expected).

    This is a regression definitely from 1.22 and probably BSD -mdoc.

    Funnily enough, man(1)/groff -Tutf8 work correctly,
    so this somehow only affects typesetter modes.

    Repro with
    -- >8 --
    .Dd March 11, 2024
    .Dt ZFS-FIDO2-ADD-BACKUP 8
    .Os fzifdso 0.4.1
    .
    .Sh NAME
    .Nm zfs-fido2-add-backup
    .Nd allow another FIDO2 device to unlock ZFS dataset
    .Sh SYNOPSIS
    .Nm
    .Ar dataset
    .
    .Sh DESCRIPTION
    document 1:
    .Nm
    .
    .Dd December 4, 2022
    .Dt ZFS-TPM-LIST 8
    .Os tzpfms 0.4.1-1-gfd16dbb
    .
    .Sh NAME
    .Nm zfs-tpm-list
    .Nd print dataset tzpfms metadata
    .Sh SYNOPSIS
    .Nm
    .Op Fl H
    .Op Fl r Ns \&| Ns Fl d Ar depth
    .Op Fl a Ns \&| Ns Fl b Ar back-end
    .Op Fl u Ns \&| Ns Fl l
    .Oo Ar filesystem Ns \&| Ns Ar volume Oc Ns …
    .
    .Sh DESCRIPTION
    document 2:
    .Nm
    -- >8 --

    -- System Information:
    Debian Release: trixie/sid
    APT prefers unstable
    APT policy: (500, 'unstable')
    Architecture: x32 (x86_64)
    Foreign Architectures: amd64, i386

    Kernel: Linux 6.7.7-amd64 (SMP w/2 CPU threads; PREEMPT)
    Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_FORCED_MODULE, TAINT_OOT_MODULE, TAINT_UNSIGNED_MODULE
    Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE not set
    Shell: /bin/sh linked to /usr/bin/dash
    Init: systemd (via /run/systemd/system)
    LSM: AppArmor: enabled

    Versions of packages groff-base depends on:
    ii libc6 2.40-6
    ii libgcc-s1 14.2.0-14
    ii libstdc++6 14.2.0-14
    ii libuchardet0 0.0.8-1+b1

    groff-base recommends no packages.

    Versions of packages groff-base suggests:
    ii groff 1.23.0-7

    -- no debconf information

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmgVNRMACgkQvP0LAY0m WPGJxBAAs9nXSQh91MWSzJ5cAOz3Ql/dAd83TWma0pLz5dCi6IVb7cEmpJxsjtz7 /54KPIkRX+yCcaIwB4jj9GfQKez1vptiBa0yZHMxrU776VAQYlZTPDWJiguvLh2j BotGS5fhDJU3VxQVNuQxbowXjkEXX+0bABJFW4HZeKMFu/yy9p4AD9jK8Tp8oiFq 2PxUHZC9FxJuvtG/No7bDIFtPtSOk9KRhRlYO86PPOBQJjeYt+BExSYdiXecobKo ui+b0Uu+lznUc3ijr5X8YblE0eO99H8Z5PsZhRsDp8zYyfzgHP7fKf751Awq7BAS IbdFGDM+cJBRUq3ENrOYtPVL9efaqAnR1Gl9EmO+4q+TTfogKHoDSsbRD8GXsB2a a/Nad6mzTktEWhK5qW85w17v/EvjwrFUylHiaU+7eBWOSMOfUhLaA3TFm7DhEX58 jFeBkVUb1P1f6tYqxkRK1dlH5fkxCmeaA0R7kaHMoJfNyWt+OEVp6gmxZKTtUAas GqX0IFVgJ531o5a94Em+d/lilGdbFg5OnH1iY5EiUNjHjblVB4olb2vrqP6qCPiO 5bILPXYFWF7RfLHK8WjmvgTuhssLQ46TI8lzYtWQmUzf1ZZdAXnbcCbSfeuzcinD T9VQtRz4zYBot9ClufVvJi42zH40z5+V6Drf9MWdn/ctn55ZlUc=
    =hRjD
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?B?0L3QsNCx?=@21:1/5 to All on Sat May 3 00:10:01 2025
    By applying "/Sh Name/i.ds doc-topic-name" to the input to explicitly
    clear what should've been, I've managed to work around this.
    But, it should just work instead.

    I see
    . ds doc-topic-name \" empty
    in .de doc-end-macro and then
    .\" NS Dd user macro (not parsed, not callable)
    .\" NS set document date
    .\" NS
    .\" NS modifies:
    .\" NS doc-date-string
    .\" NS
    .\" NS width register 'Dd' set above
    .
    .eo
    .de Dd
    . \" If batch processing (rendering multiple) man page documents, we
    . \" must handle the end of a previous document.
    . \"
    . \" If also continuously rendering, cause a page transition to a new
    . \" mdoc(7) document.
    . if \n[doc-need-titles-reset] \{\
    . if \n[cR] .doc-end-macro
    .
    . \" Clear the page header trap so it is not sprung with stale
    . \" information.
    . ch doc-header
    . doc-break-page-with-new-number
    . \}
    . if \n[C] .rr P
    .
    . if !\n[.$] \
    . tm mdoc warning: .Dd directive expects an argument (#\n[.c])
    . if \n[.$] \{\
    . ie "\$1"$Mdocdate:" .ds doc-date-string \$2\~\$3, \$4\"
    . el .ds doc-date-string \$*\"
    . \}
    ..
    .ec
    where doc-need-titles-reset is =0 on init, becomes =1 in .Os,
    and doesn't appear to be cleared anywhere?
    No clue what's up with that.

    -----BEGIN PGP SIGNATURE-----

    iQIzBAABCgAdFiEEfWlHToQCjFzAxEFjvP0LAY0mWPEFAmgVQN4ACgkQvP0LAY0m WPHKwg/8CijyNOZwKrVyBKRRbj45xVimWk94+I0Lmkpm7feP0y9+wWS9/5qLUBJu nxhRK/+oY3yhhv5B0mi1947dkcPlOYcacgcDQNu8852gDrLkY0mOXchsULI7xk0f SfgWfkghQaD2K8Opg+SSGOXhbT+YlWhN4ldcI9pZy6ooqJ6TDvELU+ZsJkGar+pb vBuiCYdMkDTMIQUeSXvH081YlTHn/b31aDleTD7KHG+sK7f09C3XaWPbZ/iFEMAU 32B+hJGeJIeqRZrL7yZihcJ8THuPxs57Wo2/SGxqBt9b4AtoeJao2mLuvS4pP2xZ H+RujWLZaI4CO0+oniPSU3yt9qKuVu59cjXQsXQZdO5pQdmN3W2Eul7fxcTm/0yC yY/3CQmeEPTJFej040kq9kNPsBY1R7VdPQ25/0QmmOcSwRVY/BoeeOI6aU7ySzB+ 7a2AmFu1KATWLctFADnobkTEvao/jWus9jeiv3UBZOaYPR9BWmDINvViA9KQe7El 7wOMZp+/Ef5DWGAUPmf3hZnhlJk3zb7/pNAdiJVYzxxbCUPsHS+EpyGLb1zuPi7z BPQtVLjI2mMY3mhsIPWrySsJA5tVBYUl0KwHpVkxTXt5maTxDB09Vw9jZiGhD8PE eHcnqSMG6ErkKtVYB+Q+mt7gFDgZOUtSmBngQxXGaJGh1QH4K6s=
    =nTQ3
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)