.\" 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::Profile 3" .TH Lintian::Profile 3 "2021-02-01" "Lintian v2.104.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::Profile \- Profile parser for Lintian .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& my $profile = Lintian::Profile\->new (\*(Aqdebian\*(Aq); .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Lintian::Profile handles finding, parsing and implementation of Lintian Profiles as well as loading the relevant Lintian checks. .SH "INSTANCE METHODS" .IX Header "INSTANCE METHODS" .ie n .IP "$prof\->\fBknown_aliases()\fR" 4 .el .IP "\f(CW$prof\fR\->\fBknown_aliases()\fR" 4 .IX Item "$prof->known_aliases()" Returns a hash with old names that have new names. .ie n .IP "$prof\->profile_list" 4 .el .IP "\f(CW$prof\fR\->profile_list" 4 .IX Item "$prof->profile_list" Returns a list ref of the (normalized) names of the profile and its parents. The last element of the list is the name of the profile itself, the second last is its parent and so on. .Sp Note: This list reference and its contents should not be modified. .ie n .IP "$prof\->name" 4 .el .IP "\f(CW$prof\fR\->name" 4 .IX Item "$prof->name" Returns the name of the profile, which may differ from the name used to create this instance of the profile (e.g. due to symlinks). .ie n .IP "load ([$profname[, $ipath[, $extra]]])" 4 .el .IP "load ([$profname[, \f(CW$ipath\fR[, \f(CW$extra\fR]]])" 4 .IX Item "load ([$profname[, $ipath[, $extra]]])" Loads a new profile. \f(CW$profname\fR is the name of the profile and \f(CW$ipath\fR is a list reference containing the path to one (or more) Lintian \&\*(L"roots\*(R". .Sp If \f(CW$profname\fR is \f(CW\*(C`undef\*(C'\fR, the default vendor will be loaded based on Dpkg::Vendor::get_current_vendor. .Sp If \f(CW$ipath\fR is not given, a default one will be used. .ie n .IP "$prof\->known_tags" 4 .el .IP "\f(CW$prof\fR\->known_tags" 4 .IX Item "$prof->known_tags" .PD 0 .ie n .IP "$prof\->enabled_tags" 4 .el .IP "\f(CW$prof\fR\->enabled_tags" 4 .IX Item "$prof->enabled_tags" .ie n .IP "$prof\->get_tag ($name)" 4 .el .IP "\f(CW$prof\fR\->get_tag ($name)" 4 .IX Item "$prof->get_tag ($name)" .PD Returns the Lintian::Tag for \f(CW$tag\fR if known. Otherwise it returns undef. .ie n .IP "$prof\->is_overridable ($tag)" 4 .el .IP "\f(CW$prof\fR\->is_overridable ($tag)" 4 .IX Item "$prof->is_overridable ($tag)" Returns a false value if the tag has been marked as \&\*(L"non-overridable\*(R". Otherwise it returns a truth value. .ie n .IP "$prof\->known_checks" 4 .el .IP "\f(CW$prof\fR\->known_checks" 4 .IX Item "$prof->known_checks" .PD 0 .ie n .IP "$prof\->enabled_checks" 4 .el .IP "\f(CW$prof\fR\->enabled_checks" 4 .IX Item "$prof->enabled_checks" .ie n .IP "$prof\->get_checkinfo ($name)" 4 .el .IP "\f(CW$prof\fR\->get_checkinfo ($name)" 4 .IX Item "$prof->get_checkinfo ($name)" .PD Returns the Lintian::Check::Info for \f(CW$name\fR. Otherwise it returns undef. .ie n .IP "$prof\->enable_tag ($name)" 4 .el .IP "\f(CW$prof\fR\->enable_tag ($name)" 4 .IX Item "$prof->enable_tag ($name)" Enables a tag. .ie n .IP "$prof\->disable_tag ($name)" 4 .el .IP "\f(CW$prof\fR\->disable_tag ($name)" 4 .IX Item "$prof->disable_tag ($name)" Disable a tag. .ie n .IP "$prof\->include_path ([$path])" 4 .el .IP "\f(CW$prof\fR\->include_path ([$path])" 4 .IX Item "$prof->include_path ([$path])" Returns an array of paths to the (partial) Lintian roots, which are used by this profile. The paths are ordered from \*(L"highest\*(R" to \&\*(L"lowest\*(R" priority (i.e. items in the earlier paths should shadow those in later ones). .Sp If \f(CW$path\fR is given, the array will contain the paths to the path in these roots denoted by \f(CW$path\fR. .Sp Paths returned are not guaranteed to exists. .IP "read_profile" 4 .IX Item "read_profile" .PD 0 .IP "display_level_for_tag" 4 .IX Item "display_level_for_tag" .IP "tag_is_enabled(\s-1TAG\s0)" 4 .IX Item "tag_is_enabled(TAG)" .IP "display(\s-1OPERATION, RELATION, SEVERITY\s0)" 4 .IX Item "display(OPERATION, RELATION, SEVERITY)" .PD Configure which tags are displayed by severity. \s-1OPERATION\s0 is \f(CW\*(C`+\*(C'\fR to display the indicated tags, \f(CW\*(C`\-\*(C'\fR to not display the indicated tags, or \f(CW\*(C`=\*(C'\fR to not display any tags except the indicated ones. \s-1RELATION\s0 is one of \f(CW\*(C`<\*(C'\fR, \f(CW\*(C`<=\*(C'\fR, \f(CW\*(C`=\*(C'\fR, \f(CW\*(C`>=\*(C'\fR, or \f(CW\*(C`>\*(C'\fR. The \&\s-1OPERATION\s0 will be applied to all values of severity that match the given \s-1RELATION\s0 on the \s-1SEVERITY\s0 argument. If either of those arguments are undefined, the action applies to any value for that variable. For example: .Sp .Vb 1 \& $tags\->display(\*(Aq=\*(Aq, \*(Aq>=\*(Aq, \*(Aqerror\*(Aq); .Ve .Sp turns off display of all tags and then enables display of any tag of severity error or higher. .Sp .Vb 1 \& $tags\->display(\*(Aq+\*(Aq, \*(Aq>\*(Aq, \*(Aqwarning\*(Aq); .Ve .Sp adds to the current configuration display of all tags with a severity higher than warning. .Sp .Vb 1 \& $tags\->display(\*(Aq\-\*(Aq, \*(Aq=\*(Aq, \*(Aqinfo\*(Aq); .Ve .Sp turns off display of tags of severity info. .Sp This method throws an exception on errors, such as an unknown severity or an impossible constraint (like \f(CW\*(C`> serious\*(C'\fR). .SH "AUTHOR" .IX Header "AUTHOR" Originally written by Niels Thykier for Lintian. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBlintian\fR\|(1)