.\" Automatically generated by Pod::Man 4.10 (Pod::Simple 3.35) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "Lintian::Maintainer 3" .TH Lintian::Maintainer 3 "2020-06-01" "Lintian v2.78.0~bpo10+1" "Debian Package Checker" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Lintian::Maintainer \-\- Lintian checks shared between multiple scripts .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Lintian::Maintainer qw(check_maintainer); \& \& my ($maintainer, $field) = (\*(AqJohn Doe\*(Aq, \*(Aquploader\*(Aq); \& check_maintainer ($maintainer, $field); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" This module provides functions to do some Lintian checks that need to be done in multiple places. There are certain low-level checks, such as validating a maintainer name and e\-mail address or checking spelling, which apply in multiple situations and should be done in multiple checks scripts or in checks scripts and the Lintian front-end. .PP The functions provided by this module issue tags directly, usually either taking the tag name to issue as an argument or dynamically constructing the tag name based on function parameters. The caller is responsible for ensuring that all tags are declared in the relevant *.desc file with proper descriptions and other metadata. The possible tags issued by each function are described in the documentation for that function. .SH "FUNCTIONS" .IX Header "FUNCTIONS" .IP "check_maintainer(\s-1MAINTAINER, FIELD\s0)" 4 .IX Item "check_maintainer(MAINTAINER, FIELD)" Checks the maintainer name and address \s-1MAINTAINER\s0 for Policy compliance and other issues. \s-1FIELD\s0 is the context in which the maintainer name and address was seen and should be one of \f(CW\*(C`maintainer\*(C'\fR (the Maintainer field in a control file), \f(CW\*(C`uploader\*(C'\fR (the Uploaders field in a control file), or \f(CW\*(C`changed\-by\*(C'\fR (the Changed-By field in a changes file). .Sp The following tags may be issued by this function. The string \f(CW%s\fR in the tags below will be replaced with the value of \s-1FIELD.\s0 .RS 4 .ie n .IP "%s\-address\-is\-on\-localhost" 4 .el .IP "\f(CW%s\fR\-address\-is\-on\-localhost" 4 .IX Item "%s-address-is-on-localhost" The e\-mail address portion of \s-1MAINTAINER\s0 is at \f(CW\*(C`localhost\*(C'\fR or some other similar domain. .Sp = item \f(CW%s\fR\-address\-is\-root\-user .Sp The user (from email or username) of \s-1MAINTAINER\s0 is root. .ie n .IP "%s\-address\-causes\-mail\-loops\-or\-bounces" 4 .el .IP "\f(CW%s\fR\-address\-causes\-mail\-loops\-or\-bounces" 4 .IX Item "%s-address-causes-mail-loops-or-bounces" The e\-mail address portion of \s-1MAINTAINER\s0 or \s-1UPLOADER\s0 refers to the \s-1PTS\s0 e\-mail addresses \f(CW\*(C`package@packages.debian.org\*(C'\fR or \&\f(CW\*(C`package@packages.qa.debian.org\*(C'\fR, or, alternatively refers to a mailing list which is known to bounce off-list mails sent by Debian role accounts. .ie n .IP "%s\-address\-malformed" 4 .el .IP "\f(CW%s\fR\-address\-malformed" 4 .IX Item "%s-address-malformed" \&\s-1MAINTAINER\s0 doesn't fit the basic syntax of a maintainer name and address as specified in Policy. .ie n .IP "%s\-name\-missing" 4 .el .IP "\f(CW%s\fR\-name\-missing" 4 .IX Item "%s-name-missing" \&\s-1MAINTAINER\s0 does not contain a full name before the address, or the e\-mail address was not in angle brackets. .IP "wrong-debian-qa-address-set-as-maintainer" 4 .IX Item "wrong-debian-qa-address-set-as-maintainer" \&\s-1MAINTAINER\s0 appears to be the Debian \s-1QA\s0 Group, but the e\-mail address portion is wrong for orphaned packages. This tag is only issued for a \&\s-1FIELD\s0 of \f(CW\*(C`maintainer\*(C'\fR. .IP "wrong-debian-qa-group-name" 4 .IX Item "wrong-debian-qa-group-name" \&\s-1MAINTAINER\s0 appears to be the Debian \s-1QA\s0 Group, but the name portion is not \&\f(CW\*(C`Debian QA Group\*(C'\fR. This tag is only issued for a \s-1FIELD\s0 of \f(CW\*(C`maintainer\*(C'\fR. .RE .RS 4 .Sp The last two tags are issued here rather than in a location more specific to checks of the Maintainer control field because they take advantage of the parsing done by the rest of the function. .RE .SH "AUTHOR" .IX Header "AUTHOR" Originally written by Russ Allbery for Lintian. Based on code from checks scripts by Marc Brockschmidt and Richard Braakman. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBlintian\fR\|(1)