[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#973604: lintian reports spare-manual-page on PAM and NSS modules



On Mon, Nov 02, 2020 at 07:12:59AM -0800, Felix Lechner wrote:
> Hi nicoo,

Hi Felix,

> We have a misunderstanding about the purpose of manual section 8. It
> was not mentioned in the original UN*X Programmer's Manual [1], but I
> believe it was created for system commands and daemons. They are
> always executable, usually executed as root, and often (but not
> always) located in /sbin or /usr/sbin.

The disagreement is either there, or in the nature of PAM.

> There are no executables with the name 'pam_u2f'. That is why you see
> the Lintian tag.

Yes, obviously, and I'm not suggesting it in section 1.
Yet, those manual page contain information that is relevant for system
administration, and not library documentation.

Indeed, no program is supposed to invoke PAM modules directly, and
instead should use libpam, whose API is indeed documented in section 3:

	libpam0g-dev: /usr/share/man/man3/pam_acct_mgmt.3.gz
	[...]
	libpam0g-dev: /usr/share/man/man3/pam_xauth_data.3.gz


> As you pointed out, many PAM-related packages ship manual pages in
> section 8, but PAM modules are specially constructed shared libraries
> and not system commands in a broader sense. I understand why someone
> might have put them there, but I think they would do better in section
> 5, where 'pam.5' is also located.

`pam(5)` is unrelated to Pluggable Authentication Modules:

	NAME
	  	pam - portable arbitrary map file format

	DESCRIPTION
		The PAM image format is a lowest common denominator 2 dimensional map for‐
		mat.

		It is designed to be used for any of myriad kinds  of  graphics,  but  can
		theoretically  be  used for any kind of data that is arranged as a two di‐
		mensional rectangular array.  Actually, from another perspective it can be
		seen as a format for data arranged as a three dimensional array.


Section 5 is also intended for “file formats and conventions”, which seems
wholy inappropriate for PAM modules.

Using apt-file, I generated an exhaustive list of manpages whose name start
with pam_.  Using this, I was able to ascertain that only the following are
*not* in section 8:

- libpam-wrapper: /usr/share/man/man1/pam_wrapper.1.gz
  An executable called `pam_wrapper`, meant for testing PAM.

- libpam-abl: /usr/share/man/man1/pam_abl.1.gz
  This is for an executable called `pam_abl`, and there is a separate
  `pam_abl(8)` manpage for the PAM module itself.

- libpam-abl: /usr/share/man/man5/pam_abl.conf.5.gz
  libpam-ldap: /usr/share/man/man5/pam_ldap.conf.5.gz
  libpam-modules: /usr/share/man/man5/pam_env.conf.5.gz
  libpam-mount: /usr/share/man/man5/pam_mount.conf.5.gz
  libpam-winbind: /usr/share/man/man5/pam_winbind.conf.5.gz
  Configuration files, so section 5 does make sense for those.

- libpam-afs-session: /usr/share/man/man5/pam_afs_session.5.gz
  libpam-heimdal: /usr/share/man/man5/pam_krb5.5.gz
  libpam-krb5: /usr/share/man/man5/pam_krb5.5.gz
  libpam-ldap: /usr/share/man/man5/pam_ldap.5.gz
  Indeed PAM modules

- libpam-krb5-migrate-heimdal: /usr/share/man/man7/pam_krb5_migrate_heimdal.7.gz
  libpam-krb5-migrate-mit: /usr/share/man/man7/pam_krb5_migrate_mit.7.gz
  libpam-modules: /usr/share/man/man7/pam_env.7.gz
  libpam-modules: /usr/share/man/man7/pam_selinux.7.gz

  More PAM modules; section 7 is “Miscellaneous (including macro packages and
  conventions), e.g. man(7), groff(7)” so those seem most likely misfiled.


> many PAM-related packages ship manual pages in section 8

There are literally 4 PAM modules whose documentation is in section 5,
4 more in section 7 (misfiled?) and... 83 modules whose documentation is
in section 8.  (I'm attaching the list for those as a separate file)

As the very least, there is an existing consensus to use section 8 there,
and it seems strange for Lintian to enforce different standards without
prior coordination?


> I'll try to find some additional documentation for the different
> manual sections. Please forward anything you might have also. Thank
> you!

I'll also try to see if there is anything semi-formal written down
on the topic, and/or confirm that section 8 is also what's used in
other operating systems which aren't Debian derivatives...
just not tonight, it's already past 2am 😱


Best,

  nicoo

Attachment: signature.asc
Description: PGP signature


Reply to: