On 2005-10-14 21:42:16, Robert Bihlmeyer <[email protected]> spake thus:
> I also support to put "Debian" into volume-operating-system. As
> upstream does not seem to like it, I guess the best option for Debian
> is to put
>
> .ds volume-operating-system Debian
>
> into the shipped version of /etc/groff/mdoc.local.
>
> Rationale:
>
> The intention of the titlebar is not really clear. Given a program
> "foo" written by an author neither affiliated with *BSD or Debian,
> should the output of "man 1 foo" pretend that the manpage is part of
> the "FreeBSD General Commands Manual" when run on FreeBSD and the
> "Debian General Commands Manual" when run on Debian? Or some other,
> constant value, because its actually the same program regardless of the
> distribution/OS?
>
> My gut says the former, namely that the manpage, by virtue of it being
> included in the Debian distribution, becomes part of the mythical
> "Debian General Commands Manual", regardless of whether the GCM of
> some other distributions/OSes may include the same page.
>
> The current situation, that the manpage is shown to be part of the
> "BSD General Commands Manual" even when we are on Debian GNU/Linux
> certainly is wrong. Even unsetting the variable would be better.
>
> --
> Robbe
>
Hi Folks,
I tripped over this issue today and found my way to this bug
report. The mdoc manpage for a tool I was working on rendered with
with the following headers and footer:
FOO(1) BSD General Commands Manual FOO(1)
NAME
foo - Foobricate quuxels
SYNOPSIS
...
BSD October 14, 2020 BSD
I love the BSDs as much as the next person, but that labeling is not
what I expected to see when rendering the page on my Debian
GNU/Linux host ;-)
I have read Werner LEMBERG's comments[0] over on related issue
#176575, and agree that the upstream GNU Groff source is not the
right location for Debian labeling. But I also read the statement:
"I think you should provide correct default values in mdoc.local --"
as confirmation that mdoc.local /is/ the right place for such
labeling. The attached patch (which I'm running on my main system
right now) provides that with the addition (in essence) of the
following lines:
.ds doc-volume-operating-system Debian
.ds doc-default-operating-system Debian\~GNU/Linux
The first affects the heading in an mdoc manpage, the second the
footer.
For completeness, I read the follow-up statement:
"any man page which is specific to a certain operating system should
say that by using .Os properly."
as meaning that authors of components that truly are specific to a
given operating system should explicitly name that OS as the
argument to the mdoc '.Os' macro:
.Os Foonix
So this change is not overriding anything that is not intended to be
overridden by the distribution.
The attached patch (against groff-1.22.4) takes a hint from the
'base-files' package and adapts the labeling appropriate for build
host, using the $NAME value from the /etc/os-release file. On my
Debian GNU/Linux host, the header and footer are now rendered like
this:
FOO(1) Debian General Commands Manual FOO(1)
...
Debian GNU/Linux October 14, 2020 Debian GNU/Linux
On Debian GNU/Hurd or GNU/kFreeBSD would presumably render with the
relative appropriately adapted labels (I didn't test them).
Please consider applying this patch or something like it to the
groff package.
Thanks,
-Al
[0] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=176575#10
--
-----------------------------------------------------------------
a l a n d. s a l e w s k i [email protected]
[email protected]
-----------------------------------------------------------------
# Description: Add Debian labelling for mdoc manpages (mdoc.local)
# Author: "Alan D. Salewski" <[email protected]>
# Bug-Debian: https://bugs.debian.org/284002
# Forwarded: not-needed
# Last-Update: 2020-10-14
diff -r -u groff-1.22.4-orig/debian/mandoc.local groff-1.22.4-chng/debian/mandoc.local
--- groff-1.22.4-orig/debian/mandoc.local 2020-05-06 04:24:11.000000000 -0400
+++ groff-1.22.4-chng/debian/mandoc.local 2020-10-14 18:45:16.102920887 -0400
@@ -27,3 +27,16 @@
. char \- \N'45'
. \}
.\}
+
+.\" When rendering an mdoc manpage that has an empty .Os macro, the
+.\" 'doc-volume-operating-system' string is rendered in the center
+.\" heading at the top of the manpage.
+.\"
+.\" The 'doc-default-operating-system' string is rendered on both
+.\" the left and right at the bottom of the manpage.
+.\"
+.\" Yields .e.g, "Debian General Commands Manual"
+.ds doc-volume-operating-system Debian
+.\"
+.\" Renders as-is in mdoc manpage footer, left and right sides.
+.ds doc-default-operating-system %%%OSNAME%%%
diff -r -u groff-1.22.4-orig/debian/rules groff-1.22.4-chng/debian/rules
--- groff-1.22.4-orig/debian/rules 2020-05-06 04:24:11.000000000 -0400
+++ groff-1.22.4-chng/debian/rules 2020-10-14 21:14:47.752043014 -0400
@@ -91,8 +91,11 @@
override_dh_install:
dh_install
# Debian additions to *.local
- cat debian/mandoc.local >> $(gbtmp)/etc/groff/man.local
- cat debian/mandoc.local >> $(gbtmp)/etc/groff/mdoc.local
+ # Note that /etc/os-release is provided by the 'base-files' package
+ OSNAME=$$(/bin/sh -c '. /etc/os-release; printf "$${NAME}"' \
+ | sed -e 's,[[:space:]],\\\\~,g') \
+ && sed -e "s^%%%OSNAME%%%^$${OSNAME}^" debian/mandoc.local >> $(gbtmp)/etc/groff/man.local \
+ && sed -e "s^%%%OSNAME%%%^$${OSNAME}^" debian/mandoc.local >> $(gbtmp)/etc/groff/mdoc.local
# Scripts should be executable
chmod +x $(gbtmp)/$(datadir)/font/devps/generate/afmname \
$(gbtmp)/$(datadir)/font/devps/generate/symbol.sed