Package: libwrap0
Version: 7.6.q-35
Severity: minor
Tags: patch

   * What led up to the situation?

     Checking for defects with a new version

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

  [Use "groff -e ' $' -e '\\~$' <file>" to find obvious 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?

an.tmac:<stdin>:1: style: .TH missing third argument; consider document 
modification date in ISO 8601 format (YYYY-MM-DD)
an.tmac:<stdin>:1: style: .TH missing fourth argument; consider package/project 
name and version (e.g., "groff 1.23.0")

   * 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.12.12-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 libwrap0 depends on:
ii  libc6  2.40-6

libwrap0 recommends no packages.

libwrap0 suggests no packages.

-- no debconf information
Input file is hosts_access.5

Output from "mandoc -T lint  hosts_access.5": (shortened list)

      1 fill mode already disabled, skipping: nf
      1 missing date, using "": TH
      8 whitespace at end of input line

-.-.

Output from "test-groff -mandoc -t -ww -z hosts_access.5": (shortened list)

      9 trailing space in the line

-.-.

Remove space characters (whitespace) at the end of lines.
Use "git apply ... --whitespace=fix" to fix extra space issues, or use
global configuration "core.whitespace".

Number of lines affected is

9

-.-.


Use "\e" to print the escape character instead of "\\" (which gets
interpreted in copy mode).

353:in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | \\

-.-.


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.

138:built with -DPARANOID (default mode), it drops requests from such
140:without -DPARANOID when you want more control over such requests.
353:in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | \\
354:    /usr/bin/mail -s %d-%h root) &

-.-.

Add a comma (or \&) after "e.g." and "i.e.", or use English words
(man-pages(7)).
Abbreviation points should be protected against being interpreted as
an end of sentence, if they are not, and that independent of the
current place on the line.

234:most, i.e. when the client system has been compromised.  In general,

-.-.

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.

Mark a final abbreviation point as such by suffixing it with "\&".

Some sentences (etc.) do not begin on a new line.

N.B.

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

7:name, host name/address) patterns.  Examples are given at the end. The
12:\fIhosts_options\fR(5) document. \fBNote that this language supersedes
17:a host requesting service. Network daemon process names are specified
20:The access control software consults two files. The search stops
32:file. Thus, access control can be turned off by providing no access
36:lines are processed in order of appearance. The search terminates when a
40:character. This permits you to break up long lines so that they are
72:A string that begins with a `.\' character. A host name is matched if
77:A string that ends with a `.\' character. A host address is matched if
83:(formerly YP) netgroup name. A host name is matched if it is a host
84:member of the specified netgroup. Netgroup matches are not supported
90:`net/mask\' pair. An IPv4 host address is matched if `net\' is equal to the
91:bitwise AND of the address and the `mask\'. For example, the net/mask
102:`[net]/prefixlen\' pair. An IPv6 host address is matched if
104:address. For example, the [net]/prefixlen pattern
109:name. A host name or address is matched if it matches any host name
110:or address pattern listed in the named file. The file format is
127:host names may be unavailable due to temporary name server problems. A
132:\fIand\fR address are known. This pattern should be used with care:
147:client_lists. The EXCEPT operator can be nested: if the control
204:that may even belong to different organizations. See also the `twist\'
205:option in the hosts_options(5) document. Some systems (Solaris,
211:addresses in client_list context. Usually, server endpoint information
216:additional information about the owner of a connection. Client username
221:daemon_list : ... user_pattern@host_pattern ...
234:most, i.e. when the client system has been compromised.  In general,
242:lookups are blocked by a firewall. The wrapper README document
249:Selective username lookups can alleviate the last problem. For example,
271:less trustworthy. It is possible for an intruder to spoof both the
273:harder than spoofing just a client connection. It may also be that
279:policy can be expressed with a minimum of fuss. Although the language
288:The examples use host and domain names. They can be improved by
292:In this case, access is denied by default. Only explicitly authorized
327:in the deny file. For example:
341:host. The result is mailed to the superuser.
358:installed in a suitable place. It limits possible damage from data sent
370:the outer world. All other services can be "bugged" just like the above
371:tftp example. The result is an excellent early-warning system.
405:Den Dolech 2, P.O. Box 513, 

-.-.

The name of a man page is typeset in bold and the section in roman
(see man-pages(7)).

205:option in the hosts_options(5) document. Some systems (Solaris,
390:hosts_options(5) extended syntax.
391:tcpd(8) tcp/ip daemon wrapper program.
392:tcpdchk(8), tcpdmatch(8), test programs.

-.-.

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

Not considered in a patch, too many lines.


hosts_access.5:6:based on client (host name/address, user name), and server 
(process
hosts_access.5:54:(argv[0] values) or server port numbers or wildcards (see 
below).  
hosts_access.5:138:built with -DPARANOID (default mode), it drops requests from 
such
hosts_access.5:149:would parse as `(a EXCEPT (b EXCEPT c))\'.
hosts_access.5:154:command is subjected to %<letter> substitutions (see next 
section).
hosts_access.5:174:The daemon process name (argv[0] value).
hosts_access.5:179:The client (server) host name (or "unknown" or "paranoid").
hosts_access.5:181:The clients (servers) port number (or "0").
hosts_access.5:188:The client user name (or "unknown").
hosts_access.5:215:descendants (TAP, IDENT, RFC 1413) the wrapper programs can 
retrieve
hosts_access.5:230:same wildcards apply (netgroup membership is not supported). 
 One
hosts_access.5:260:via, for example, the remote shell service.  The IDENT 
(RFC931 etc.)
hosts_access.5:267:result (the client matches `UNKNOWN@host\') is strong 
evidence of a host
hosts_access.5:270:A positive IDENT lookup result (the client matches 
`KNOWN@host\') is
hosts_access.5:295:The default policy (no access) is implemented with a trivial 
deny
hosts_access.5:319:\fIfoobar.edu\fP domain (notice the leading dot), with the 
exception of
hosts_access.5:325:The default policy (access granted) makes the allow file 
redundant so
hosts_access.5:362:The expansion of the %h (client host) and %d (service name) 
sequences
hosts_access.5:397:Domain name server lookups are case insensitive; NIS 
(formerly YP)

-.-.

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

an.tmac:<stdin>:1: style: .TH missing third argument; consider document 
modification date in ISO 8601 format (YYYY-MM-DD)
an.tmac:<stdin>:1: style: .TH missing fourth argument; consider package/project 
name and version (e.g., "groff 1.23.0")
troff:<stdin>:54: warning: trailing space in the line
troff:<stdin>:64: warning: trailing space in the line
troff:<stdin>:227: warning: trailing space in the line
troff:<stdin>:276: warning: trailing space in the line
troff:<stdin>:293: warning: trailing space in the line
troff:<stdin>:299: warning: trailing space in the line
troff:<stdin>:310: warning: trailing space in the line
troff:<stdin>:323: warning: trailing space in the line
troff:<stdin>:405: warning: trailing space in the line
--- hosts_access.5      2025-02-10 16:20:10.326670681 +0000
+++ hosts_access.5.new  2025-02-10 16:27:11.904070924 +0000
@@ -51,7 +51,7 @@ being optional:
 daemon_list : client_list [ : shell_command ]
 .PP
 \fIdaemon_list\fR is a list of one or more daemon process names
-(argv[0] values) or server port numbers or wildcards (see below).  
+(argv[0] values) or server port numbers or wildcards (see below).
 .PP
 \fIclient_list\fR is a list
 of one or more host names, host addresses, patterns or wildcards (see
@@ -61,7 +61,7 @@ The more complex forms \fIdaemon@host\fR
 explained in the sections on server endpoint patterns and on client
 username lookups, respectively.
 .PP
-List elements should be separated by blanks and/or commas.  
+List elements should be separated by blanks and/or commas.
 .PP
 With the exception of NIS (YP) netgroup lookups, all access control
 checks are case insensitive.
@@ -135,9 +135,9 @@ network address will be unavailable when
 what type of network it is talking to.
 .IP PARANOID
 Matches any host whose name does not match its address.  When tcpd is
-built with -DPARANOID (default mode), it drops requests from such
+built with \-DPARANOID (default mode), it drops requests from such
 clients even before looking at the access control tables.  Build
-without -DPARANOID when you want more control over such requests.
+without \-DPARANOID when you want more control over such requests.
 .ne 6
 .SH OPERATORS
 .IP EXCEPT
@@ -202,7 +202,9 @@ Patterns like these can be used when the
 addresses with different internet hostnames.  Service providers can use
 this facility to offer FTP, GOPHER or WWW archives with internet names
 that may even belong to different organizations. See also the `twist\'
-option in the hosts_options(5) document. Some systems (Solaris,
+option in the
+.BR hosts_options (5)
+document. Some systems (Solaris,
 FreeBSD) can have more than one internet address on one physical
 interface; with other systems you may have to resort to SLIP or PPP
 pseudo interfaces that live in a dedicated network address space.
@@ -224,14 +226,14 @@ The daemon wrappers can be configured at
 rule-driven username lookups (default) or to always interrogate the
 client host.  In the case of rule-driven username lookups, the above
 rule would cause username lookup only when both the \fIdaemon_list\fR
-and the \fIhost_pattern\fR match. 
+and the \fIhost_pattern\fR match.
 .PP
 A user pattern has the same syntax as a daemon process pattern, so the
 same wildcards apply (netgroup membership is not supported).  One
 should not get carried away with username lookups, though.
 .IP \(bu
 The client username information cannot be trusted when it is needed
-most, i.e. when the client system has been compromised.  In general,
+most, i.e., when the client system has been compromised.  In general,
 ALL and (UN)KNOWN are the only user name patterns that make sense.
 .IP \(bu
 Username lookups are possible only with TCP-based services, and only
@@ -273,7 +275,7 @@ client connection and the IDENT lookup,
 harder than spoofing just a client connection. It may also be that
 the client\'s IDENT server is lying.
 .PP
-Note: IDENT lookups don\'t work with UDP services. 
+Note: IDENT lookups don\'t work with UDP services.
 .SH EXAMPLES
 The language is flexible enough that different types of access control
 policy can be expressed with a minimum of fuss. Although the language
@@ -290,13 +292,13 @@ including address and/or network/netmask
 impact of temporary name server lookup failures.
 .SH MOSTLY CLOSED
 In this case, access is denied by default. Only explicitly authorized
-hosts are permitted access. 
+hosts are permitted access.
 .PP
 The default policy (no access) is implemented with a trivial deny
 file:
 .PP
 .ne 2
-/etc/hosts.deny: 
+/etc/hosts.deny:
 .in +3
 ALL: ALL
 .PP
@@ -307,7 +309,7 @@ The explicitly authorized hosts are list
 For example:
 .PP
 .ne 2
-/etc/hosts.allow: 
+/etc/hosts.allow:
 .in +3
 ALL: LOCAL @some_netgroup
 .br
@@ -320,7 +322,7 @@ netgroup.  The second rule permits acces
 \fIterminalserver.foobar.edu\fP.
 .SH MOSTLY OPEN
 Here, access is granted by default; only explicitly specified hosts are
-refused service. 
+refused service.
 .PP
 The default policy (access granted) makes the allow file redundant so
 that it can be omitted.  The explicitly non-authorized hosts are listed
@@ -349,9 +351,8 @@ in.tftpd: LOCAL, .my.domain
 .ne 2
 /etc/hosts.deny:
 .in +3
-.nf
-in.tftpd: ALL: (/usr/sbin/safe_finger -l @%h | \\
-       /usr/bin/mail -s %d-%h root) &
+in.tftpd: ALL: (/usr/sbin/safe_finger \-l @%h | \e
+       /usr/bin/mail \-s %d-%h root) &
 .fi
 .PP
 The safe_finger command comes with the tcpd wrapper and should be
@@ -387,9 +388,9 @@ that shouldn\'t.  All problems are repor
 .fi
 .SH SEE ALSO
 .nf
-hosts_options(5) extended syntax.
-tcpd(8) tcp/ip daemon wrapper program.
-tcpdchk(8), tcpdmatch(8), test programs.
+.BR hosts_options "(5) extended syntax."
+.BR tcpd "(8) tcp/ip daemon wrapper program."
+.BR tcpdchk "(8), " tcpdmatch "(8), test programs."
 .SH BUGS
 If a name server lookup times out, the host name will not be available
 to the access control software, even though the host is registered.
@@ -402,6 +403,6 @@ netgroup lookups are case sensitive.
 Wietse Venema (wie...@wzv.win.tue.nl)
 Department of Mathematics and Computing Science
 Eindhoven University of Technology
-Den Dolech 2, P.O. Box 513, 
+Den Dolech 2, P.O. Box 513,
 5600 MB Eindhoven, The Netherlands
 \" @(#) hosts_access.5 1.20 95/01/30 19:51:46
  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

-.-

  Any "autogenerator" should check its products with the above mentioned
'groff', 'mandoc', and additionally with 'nroff ...'.

  It should also check its input files for too long (> 80) lines.

  This is just a simple quality control measure.

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

  Common defects:

  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.
Line length should thus be reduced.

  The script "reportbug" uses 'quoted-printable' encoding when a line is
longer than 1024 characters in an 'ascii' file.

  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 -d -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 from 'diff -d -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)

-.-

Reply via email to