Package: libcap-dev Version: 1:2.66-5+b1 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 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.10-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 libcap-dev depends on: ii libc6 2.40-6 ii libcap2 1:2.66-5+b1 libcap-dev recommends no packages. Versions of packages libcap-dev suggests: ii manpages-dev 6.9.1-1 -- no debconf information
Input file is cap_copy_ext.3 Output from "mandoc -T lint cap_copy_ext.3": (shortened list) 1 whitespace at end of input line -.-. Output from "test-groff -mandoc -t -ww -z cap_copy_ext.3": (shortened list) 1 Use macro '.B' for one argument or split argument. 1 .BR is for at least 2 arguments, got 1 -.-. 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 1 -.-. Use the correct macro for the font change of a single argument or split the argument into two. 89:.BR errno -.-. Put a parenthetical sentence, phrase on a separate line, if not part of a code. See man-pages(7), item "semantic newline". cap_copy_ext.3:23:returns the total length (in bytes) that the capability state in working -.-. Output from "test-groff -mandoc -t -K utf8 -rF0 -rHY=0 -rCHECKSTYLE=10 -ww -z ": an.tmac:<stdin>:1: style: .TH missing fourth argument; consider package/project name and version (e.g., "groff 1.23.0") an.tmac:<stdin>:89: misuse, warning: .BR is for at least 2 arguments, got 1 Use macro '.B' for one argument or split argument.
--- cap_copy_ext.3 2025-01-30 01:43:00.295259515 +0000 +++ cap_copy_ext.3.new 2025-01-30 01:55:13.697305542 +0000 @@ -14,35 +14,46 @@ cap_t cap_copy_int(const void * ext_p); Link with \fI\-lcap\fP. .SH DESCRIPTION These functions translate between internal and external -representations of a capability state. The external representation is -an exportable, contiguous, persistent representation of a capability -state in user-managed space. The internal representation is managed +representations of a capability state. +The external representation is an exportable, +contiguous, +persistent representation of a capability state in user-managed space. +The internal representation is managed by the capability functions in working storage. .PP .BR cap_size () -returns the total length (in bytes) that the capability state in working -storage identified by +returns the total length +(in bytes) +that the capability state in working storage identified by .I cap_p -would require when converted by +would require +when converted by .BR cap_copy_ext (). -This function is used primarily to determine the amount of buffer space that -must be provided to the +This function is used primarily to determine the amount of buffer space +that must be provided to the .BR cap_copy_ext () function in order to hold the capability data record created from .IR cap_p . .PP .BR cap_copy_ext () -copies a capability state in working storage, identified by +copies a capability state in working storage, +identified by .IR cap_p , from system-managed space to user-managed space (pointed to by .IR ext_p ) -and returns the length of the resulting data record. The size parameter -represents the maximum size, in bytes, of the resulting data record. The +and returns the length of the resulting data record. +The size parameter represents the maximum size, +in bytes, +of the resulting data record. +The .BR cap_copy_ext () function will do any conversions necessary to convert the capability -state from the undefined internal format to an exportable, contiguous, -persistent data record. It is the responsibility of the user to -allocate a buffer large enough to hold the copied data. The buffer +state from the undefined internal format to an exportable, +contiguous, +persistent data record. +It is the responsibility of the user to +allocate a buffer large enough to hold the copied data. +The buffer length required to hold the copied data may be obtained by a call to the .BR cap_size () @@ -50,23 +61,32 @@ function. .PP .BR cap_copy_int () copies a capability state from a capability data record in user-managed -space to a new capability state in working storage, allocating any -memory necessary, and returning a pointer to the newly created capability -state. The function initializes the capability state and then copies +space to a new capability state in working storage, +allocating any memory necessary, +and returning a pointer to the newly created capability state. +The function initializes the capability state and then copies the capability state from the record pointed to by .I ext_p -into the capability state, converting, if necessary, the data from a -contiguous, persistent format to an undefined, internal format. Once -copied into internal format, the object can be manipulated by the capability +into the capability state, +converting, +if necessary, +the data from a contiguous, +persistent format to an undefined, +internal format. +Once copied into internal format, +the object can be manipulated by the capability state manipulation functions (see .BR cap_clear (3)). Note that the record pointed to by .I ext_p -must have been obtained from a previous, successful call to +must have been obtained from a previous, +successful call to .BR cap_copy_ext () -for this function to work successfully. The caller should free any -releasable memory, when the capability state in working storage is no -longer required, by calling +for this function to work successfully. +The caller should free any releasable memory, +when the capability state in working storage is no +longer required, +by calling .BR cap_free () with the .I cap_t @@ -78,15 +98,17 @@ and \-1 on failure. .PP .BR cap_copy_ext () returns the number of bytes placed in the user managed space pointed to by -.I ext_p -on success, and \-1 on failure. +.I ext_p +on success, +and \-1 on failure. .PP .BR cap_copy_int () returns a pointer to the newly created capability state in working storage -on success, and NULL on failure. +on success, +and NULL on failure. .PP On failure, -.BR errno +.B errno is set to .BR EINVAL , .BR ENOMEM ,
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 -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 -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) -.-