Package: ifupdown
Version: 0.8.44
Severity: minor
Tags: patch

   * What led up to the situation?

     Checking for defects with

test-[g|n]roff -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z < "man page"

  [Use "groff -e ' $' <file>" to find trailing spaces.]

  ["test-groff" is a script in the repository for "groff"; is not shipped]
(local copy and "troff" slightly changed by me).

  [The fate of "test-nroff" was decided in groff bug #55941.]

   * What was the outcome of this action?

troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':679: macro 'IR'
troff: backtrace: file '<stdin>':60
troff:<stdin>:60: warning: trailing space in the line
troff: backtrace: file '<stdin>':91
troff:<stdin>:91: warning: trailing space in the line
troff: backtrace: file '<stdin>':95
troff:<stdin>:95: warning: trailing space in the line
troff: backtrace: file '<stdin>':156
troff:<stdin>:156: warning: trailing space in the line
troff: backtrace: file '<stdin>':275
troff:<stdin>:275: warning: trailing space in the line

   * What outcome did you expect instead?

     No output (no warnings).

-.-

  General remarks and further material, if a diff-file exist, are in the
attachments.


-- System Information:
Debian Release: trixie/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 6.11.5-amd64 (SMP w/2 CPU threads; PREEMPT)
Locale: LANG=is_IS.iso88591, LC_CTYPE=is_IS.iso88591 (charmap=ISO-8859-1), 
LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: sysvinit (via /sbin/init)

Versions of packages ifupdown depends on:
ii  adduser   3.137
ii  iproute2  6.11.0-1
ii  libc6     2.40-3

Versions of packages ifupdown recommends:
ii  dhcpcd-base [dhcp-client]      1:10.1.0-1
ii  isc-dhcp-client [dhcp-client]  4.4.3-P1-5

Versions of packages ifupdown suggests:
pn  ppp     <none>
pn  rdnssd  <none>

-- Configuration Files:
/etc/init.d/networking changed [not included]

-- no debconf information
  Any program (person), that produces man pages, should check the output
for defects by using (both groff and nroff)

[gn]roff -mandoc -t -ww -b -z -K utf8  <man page>

  The same goes for man pages that are used as an input.

  For a style guide use

  mandoc -T lint

-.-

  So any 'generator' should check its products with the above mentioned
'groff', 'mandoc',  and additionally with 'nroff ...'.

  This is just a simple quality control measure.

  The 'generator' may have to be corrected to get a better man page,
the source file may, and any additional file may.

  Common defects:

  Input text line longer than 80 bytes.

  Not removing trailing spaces (in in- and output).
  The reason for these trailing spaces should be found and eliminated.

  Not beginning each input sentence on a new line.
Lines should thus be shorter.

  See man-pages(7), item 'semantic newline'.

-.-

The difference between the formatted output of the original and patched file
can be seen with:

  nroff -mandoc <file1> > <out1>
  nroff -mandoc <file2> > <out2>
  diff -u <out1> <out2>

and for groff, using

"printf '%s\n%s\n' '.kern 0' '.ss 12 0' | groff -mandoc -Z - "

instead of 'nroff -mandoc'

  Add the option '-t', if the file contains a table.

  Read the output of 'diff -u' with 'less -R' or similar.

-.-.

  If 'man' (man-db) is used to check the manual for warnings,
the following must be set:

  The option "-warnings=w"

  The environmental variable:

export MAN_KEEP_STDERR=yes (or any non-empty value)

  or

  (produce only warnings):

export MANROFFOPT="-ww -b -z"

export MAN_KEEP_STDERR=yes (or any non-empty value)

-.-.

Output from "mandoc -T lint ifup.8": (possibly shortened list)

mandoc: ifup.8:9:9: STYLE: whitespace at end of input line
mandoc: ifup.8:18:9: STYLE: whitespace at end of input line
mandoc: ifup.8:21:9: STYLE: whitespace at end of input line
mandoc: ifup.8:91:8: STYLE: whitespace at end of input line
mandoc: ifup.8:95:32: STYLE: whitespace at end of input line
mandoc: ifup.8:107:82: STYLE: input text line longer than 80 bytes: Exclude 
interfaces f...
mandoc: ifup.8:128:86: STYLE: input text line longer than 80 bytes: Disable 
special hand...
mandoc: ifup.8:129:85: STYLE: input text line longer than 80 bytes: (\fIlo\fR 
on Linux) ...
mandoc: ifup.8:130:85: STYLE: input text line longer than 80 bytes: on \fBifup 
-a\fR aut...
mandoc: ifup.8:131:84: STYLE: input text line longer than 80 bytes: the 
interface is con...
mandoc: ifup.8:132:83: STYLE: input text line longer than 80 bytes: defined as 
loopback,...
mandoc: ifup.8:146:82: STYLE: input text line longer than 80 bytes: For 
\fBifquery\fR, d...
mandoc: ifup.8:147:85: STYLE: input text line longer than 80 bytes: lists all 
interfaces...
mandoc: ifup.8:148:81: STYLE: input text line longer than 80 bytes: exits with 
a status ...
mandoc: ifup.8:149:88: STYLE: input text line longer than 80 bytes: display 
state of the...
mandoc: ifup.8:156:3: STYLE: whitespace at end of input line
mandoc: ifup.8:218:124: STYLE: input text line longer than 80 bytes: Ifupdown 
uses per-in...
mandoc: ifup.8:225:120: STYLE: input text line longer than 80 bytes: the exit 
status will...
mandoc: ifup.8:228:92: STYLE: input text line longer than 80 bytes: on an 
interface that...
mandoc: ifup.8:233:119: STYLE: input text line longer than 80 bytes: will 
normally return...
mandoc: ifup.8:235:84: STYLE: input text line longer than 80 bytes: will also 
return wit...
mandoc: ifup.8:275:56: STYLE: whitespace at end of input line

-.-.

Remove space characters at the end of lines.

Use "git apply ... --whitespace=fix" to fix extra space issues, or use
global configuration "core.whitespace".

9:.B ifup 
18:.B ifup 
21:.B ifup 
91:line in 
95:Read interface definitions from 
156:in 
275:that appear as a result of hardware being installed and 

-.-.

Change two HYPHEN-MINUSES (code 0x2D) to an em-dash (\(em),
if one is intended.
  " \(em " creates a too big gap in the text (in "troff").

An en-dash is usually surrounded by a space,
while an em-dash is used without spaces.
"man" (1 byte characters in input) transforms an en-dash (\(en) to one
HYPHEN-MINUS,
and an em-dash to two HYPHEN-MINUSES without considering the space
around it.
If "--" are two single "-" (end of options) then use "\-\-".

ifup.8:175:.B ifquery -l --allow=hotplug
ifup.8:234:.B ifquery --state

-.-.

Change -- in x--y to \(em (em-dash), or, if an
option, to \-\-

175:.B ifquery -l --allow=hotplug
234:.B ifquery --state

-.-.

Use the correct macro for the font change of a single argument or
split the argument into two.

145:.BR \-\-state
186:.BR ifquery
191:.BR ip
203:.BR ifdown

-.-.

Change a HYPHEN-MINUS (code 0x2D) to a minus(-dash) (\-),
if it
is in front of a name for an option,
is a symbol for standard input,
is a single character used to indicate an option,
or is in the NAME section (man-pages(7)).
N.B. - (0x2D), processed as a UTF-8 file, is changed to a hyphen
(0x2010, groff \[u2010] or \[hy]) in the output.

70:Combined with \fB-\-allow\fP, acts on all interfaces of a specified class
130:on \fBifup -a\fR automatically. In the case the loopback device is 
redefined by user,
153:.B ifup -a
169:.B ifdown -a
172:.B ifquery -l
175:.B ifquery -l --allow=hotplug
234:.B ifquery --state

-.-.

Wrong distance between sentences in the input file.

  Separate the sentences and subordinate clauses; each begins on a new
line.  See man-pages(7) ("Conventions for source file layout") and
"info groff" ("Input Conventions").

  The best procedure is to always start a new sentence on a new line,
at least, if you are typing on a computer.

Remember coding: Only one command ("sentence") on each (logical) line.

E-mail: Easier to quote exactly the relevant lines.

Generally: Easier to edit the sentence.

Patches: Less unaffected text.

Search for two adjacent words is easier, when they belong to the same line,
and the same phrase.

  The amount of space between sentences in the output can then be
controlled with the ".ss" request.


74:currently listed in the state file. Only interfaces defined
108:\fIPATTERN\fR uses a usual shell glob syntax. If shell wildcards are not 
used, it
109:must match the exact interface name. This option may be specified multiple 
times
128:Disable special handling of the loopback interface. By default, the 
loopback interface
130:on \fBifup -a\fR automatically. In the case the loopback device is 
redefined by user,
131:the interface is configured just once anyway. If, however, another 
interface is also
132:defined as loopback, it's configured as usual. Specifying this option 
disables this
146:For \fBifquery\fR, dump the state of the interfaces. When no interfaces 
specified,
148:exits with a status code indicating success. If one or more interfaces 
specified,
150:given as arguments are up. Otherwise, 0 is returned.
180:configuration. Each key-value pair is printed out on individual
198:is still running. In that case,

-.-.

Test nr. 30:

Split lines longer than 80 characters into two or more lines.
Appropriate break points are the end of a sentence and a subordinate
clause; after punctuation marks.

N.B.

  The number of lines affected can be too large to be in a patch.


Line 107, length 82

Exclude interfaces from the list of interfaces to operate on by the 
\fIPATTERN\fR.

Line 108, length 81

\fIPATTERN\fR uses a usual shell glob syntax. If shell wildcards are not used, 
it

Line 128, length 86

Disable special handling of the loopback interface. By default, the loopback 
interface

Line 129, length 85

(\fIlo\fR on Linux) is predefined internally as an auto interface, so it's 
brought up

Line 130, length 85

on \fBifup -a\fR automatically. In the case the loopback device is redefined by 
user,

Line 131, length 84

the interface is configured just once anyway. If, however, another interface is 
also

Line 132, length 83

defined as loopback, it's configured as usual. Specifying this option disables 
this

Line 146, length 82

For \fBifquery\fR, dump the state of the interfaces. When no interfaces 
specified,

Line 147, length 85

lists all interfaces brought up together with logical interfaces assigned to 
them and

Line 148, length 81

exits with a status code indicating success. If one or more interfaces 
specified,

Line 149, length 88

display state of these interfaces only; successful code is returned if all of 
interfaces

Line 218, length 124

Ifupdown uses per-interface locking to ensure that concurrent ifup and ifdown 
calls to the same interface are run in serial.

Line 225, length 120

the exit status will be 0 if the given interface(s) have all been 
(de)configured successfully, 1 if there was any error.

Line 228, length 92

on an interface that is already up will result in an exit status of 0, and 
similarly running

Line 233, length 119

will normally return with exit status 0 if an interface with a matching iface 
stanza, 1 if there is no matching stanza.

Line 235, length 84

will also return with exit status 1 if the given interface was known but was 
not up.


-.-.

Split a punctuation from a single argument, if a two-font macro is meant

224:.B ifdown\fR,

-.-.

Test nr. 64:

Put a parenthetical sentence, phrase on a separate line,
if not part of a code.
See man-pages(7), item "semantic newline".

ifup.8:58:commands may be used to configure (or, respectively, deconfigure) 
network

-.-.

No space is needed before a quote (") at the end of a line

60:.IR /etc/network/interfaces ". "

-.-.

Output from "test-groff  -mandoc -t -K utf8 -rF0 -rHY=0 -ww -b -z ":

troff: backtrace: '/home/bg/git/groff/build/s-tmac/an.tmac':679: macro 'IR'
troff: backtrace: file '<stdin>':60
troff:<stdin>:60: warning: trailing space in the line
troff: backtrace: file '<stdin>':91
troff:<stdin>:91: warning: trailing space in the line
troff: backtrace: file '<stdin>':95
troff:<stdin>:95: warning: trailing space in the line
troff: backtrace: file '<stdin>':156
troff:<stdin>:156: warning: trailing space in the line
troff: backtrace: file '<stdin>':275
troff:<stdin>:275: warning: trailing space in the line

-.-.

--- ifup.8      2024-11-11 09:05:39.532775523 +0000
+++ ifup.8.new  2024-11-11 09:28:56.454198314 +0000
@@ -6,7 +6,7 @@ ifdown \- take a network interface down
 .PP
 ifquery \- parse interface configuration
 .SH SYNOPSIS
-.B ifup 
+.B ifup
 [\fB\-nv\fR]
 [\fB\-\-no\-act\fR]
 [\fB\-\-verbose\fR]
@@ -15,10 +15,10 @@ ifquery \- parse interface configuration
 [\fB\-\-allow\fR \fICLASS\fR]
 \fB\-a\fR|\fIIFACE\fR...
 .br
-.B ifup 
+.B ifup
 \fB\-h\fR|\fB\-\-help\fR
 .br
-.B ifup 
+.B ifup
 \fB\-V\fR|\fB\-\-version\fR
 .PP
 .B ifdown
@@ -57,7 +57,7 @@ The
 .BR ifup " and " ifdown
 commands may be used to configure (or, respectively, deconfigure) network
 interfaces based on interface definitions in the file
-.IR /etc/network/interfaces ". "
+.IR /etc/network/interfaces .
 .BR ifquery " command may be used to parse interfaces configuration."
 .SH OPTIONS
 A summary of options is included below.
@@ -67,7 +67,7 @@ If given to \fBifup\fP, affect all inter
 Interfaces are brought up in the order in which they are defined
 in
 .IR /etc/network/interfaces .
-Combined with \fB-\-allow\fP, acts on all interfaces of a specified class
+Combined with \fB\-\-allow\fP, acts on all interfaces of a specified class
 instead.
 If given to \fBifdown\fP, affect all defined interfaces.
 Interfaces are brought down in the order in which they are
@@ -88,11 +88,11 @@ Show summary of options.
 \fB\-\-allow=\fR\fICLASS\fR
 Only allow interfaces listed in an
 .I allow\-CLASS
-line in 
+line in
 .IR /etc/network/interfaces " to be acted upon."
 .TP
 \fB\-i\fR \fIFILE\fR, \fB\-\-interfaces=\fR\fIFILE\fR
-Read interface definitions from 
+Read interface definitions from
 .I FILE
 instead of from
 .IR /etc/network/interfaces "."
@@ -104,9 +104,12 @@ instead of in
 .IR /run/network "."
 .TP
 .BI \-X " PATTERN\fR, " "\-\-exclude=" PATTERN
-Exclude interfaces from the list of interfaces to operate on by the 
\fIPATTERN\fR.
-\fIPATTERN\fR uses a usual shell glob syntax. If shell wildcards are not used, 
it
-must match the exact interface name. This option may be specified multiple 
times
+Exclude interfaces from the list of interfaces to operate on by the
+\fIPATTERN\fR.
+\fIPATTERN\fR uses a usual shell glob syntax.
+If shell wildcards are not used,
+it must match the exact interface name.
+This option may be specified multiple times
 resulting in more than one pattern being excluded.
 .TP
 .BI \-o " OPTION" "\fB=" VALUE
@@ -125,12 +128,17 @@ for more information about the mapping f
 Don't run any scripts under /etc/network/if-*.d/
 .TP
 .B \-\-no\-loopback
-Disable special handling of the loopback interface. By default, the loopback 
interface
-(\fIlo\fR on Linux) is predefined internally as an auto interface, so it's 
brought up
-on \fBifup -a\fR automatically. In the case the loopback device is redefined 
by user,
-the interface is configured just once anyway. If, however, another interface 
is also
-defined as loopback, it's configured as usual. Specifying this option disables 
this
-behaviour, so the loopback interface won't be configured automatically.
+Disable special handling of the loopback interface.
+By default, the loopback interface
+(\fIlo\fR on Linux)
+is predefined internally as an auto interface,
+so it's brought up on \fBifup \-a\fR automatically.
+In the case the loopback device is redefined by user,
+the interface is configured just once anyway.
+If, however, another interface is also defined as loopback,
+it's configured as usual.
+Specifying this option disables this behaviour,
+so the loopback interface won't be configured automatically.
 .TP
 .BR \-V ", " \-\-version
 Show copyright and version information.
@@ -142,18 +150,22 @@ Show commands as they are executed.
 For \fBifquery\fR, list all the interfaces which match the specified class.
 If no class specified, prints all the interfaces listed as \fBauto\fR.
 .TP
-.BR \-\-state
-For \fBifquery\fR, dump the state of the interfaces. When no interfaces 
specified,
-lists all interfaces brought up together with logical interfaces assigned to 
them and
-exits with a status code indicating success. If one or more interfaces 
specified,
-display state of these interfaces only; successful code is returned if all of 
interfaces
-given as arguments are up. Otherwise, 0 is returned.
+.B \-\-state
+For \fBifquery\fR,
+dump the state of the interfaces.
+When no interfaces specified,
+lists all interfaces brought up together with logical interfaces assigned to
+them and exits with a status code indicating success.
+If one or more interfaces specified,
+display state of these interfaces only;
+successful code is returned if all of interfaces given as arguments are up.
+Otherwise, 0 is returned.
 .SH EXAMPLES
 .TP
-.B ifup -a
+.B ifup \-a
 Bring up all the interfaces defined with
 .I auto
-in 
+in
 .I /etc/network/interfaces
 .TP
 .B ifup eth0
@@ -166,13 +178,13 @@ Bring up interface
 as logical interface
 .B home
 .TP
-.B ifdown -a
+.B ifdown \-a
 Bring down all interfaces that are currently up.
 .TP
-.B ifquery -l
+.B ifquery \-l
 Print names of all interfaces specified with the \fBauto\fR keyword.
 .TP
-.B ifquery -l --allow=hotplug
+.B ifquery \-l \-\-allow=hotplug
 Print names of all interfaces specified with the \fBallow-hotplug\fR keyword.
 .TP
 .B ifquery eth0
@@ -183,12 +195,12 @@ line using "\fB: \fR" as separator.
 .BR ifup ,
 .BR ifdown ,
 and
-.BR ifquery
+.B ifquery
 are actually the same program called by different names.
 .P
 The program does not configure network interfaces directly;
 it runs low level utilities such as
-.BR ip
+.B ip
 to do its dirty work.
 .P
 When invoked,
@@ -200,7 +212,7 @@ is still running. In that case,
 is sent to ifup.
 .P
 During interface deconfiguration,
-.BR ifdown
+.B ifdown
 ignores errors the same way as if
 .B \-\-ignore\-errors
 was specified.
@@ -215,24 +227,32 @@ for more information.
 .I /run/network/ifstate
 current state of network interfaces
 .SH CONCURRENCY
-Ifupdown uses per-interface locking to ensure that concurrent ifup and ifdown 
calls to the same interface are run in serial.
+Ifupdown uses per-interface locking to ensure that concurrent ifup and
+ifdown calls to the same interface are run in serial.
 However, calls to different interfaces will be able to run in parallel.
 .SH EXIT STATUS
 For
 .B ifup
 and
-.B ifdown\fR,
-the exit status will be 0 if the given interface(s) have all been 
(de)configured successfully, 1 if there was any error.
-The result of these commands is idempotent; running
+.BR ifdown ,
+the exit status will be 0 if
+the given interface(s) have all been (de)configured successfully,
+1 if there was any error.
+The result of these commands is idempotent;
+running
 .B ifup
-on an interface that is already up will result in an exit status of 0, and 
similarly running
+on an interface that is already up will result in an exit status of 0, and
+similarly running
 .B ifdown
 on an interface that is not up will also result in an exit status of 0.
 .P
 .B ifquery
-will normally return with exit status 0 if an interface with a matching iface 
stanza, 1 if there is no matching stanza.
-.B ifquery --state
-will also return with exit status 1 if the given interface was known but was 
not up.
+will normally return with exit status 0 if
+an interface with a matching iface stanza,
+1 if there is no matching stanza.
+.B ifquery \-\-state
+will also return with exit status 1
+if the given interface was known but was not up.
 .SH KNOWN BUGS/LIMITATIONS
 The program keeps records of whether network interfaces are up or down.
 Under exceptional circumstances these records can become
@@ -272,7 +292,7 @@ without updating the file.
 Note that the program does not run automatically:
 .B ifup
 alone does not bring up interfaces
-that appear as a result of hardware being installed and 
+that appear as a result of hardware being installed and
 .B ifdown
 alone does not bring down interfaces
 that disappear as a result of hardware being removed.

Reply via email to