.\" 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::Processable 3" .TH Lintian::Processable 3 "2019-05-26" "Lintian v2.15.0" "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::Processable \-\- An (abstract) object that Lintian can process .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Lintian::Processable::Package; \& \& # Instantiate via Lintian::Processable::Package \& my $proc = Lintian::Processable::Package\->new (\*(Aqlintian_2.5.0_all.deb\*(Aq); \& my $pkg_name = $proc\->pkg_name; \& my $pkg_version = $proc\->pkg_version; \& # etc. .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Instances of this perl class are objects that Lintian can process (e.g. deb files). Multiple objects can then be combined into groups, which Lintian will process together. .SH "CLASS METHODS" .IX Header "CLASS METHODS" .IP "new_from_metadata (\s-1TYPE,\s0 PARAGRAPH[, \s-1BASEPATH\s0])" 4 .IX Item "new_from_metadata (TYPE, PARAGRAPH[, BASEPATH])" Returns a Lintian::Processable from a \s-1PARAGRAPH\s0 in a Sources or a Packages file with the following exception. .Sp If the \s-1PARAGRAPH\s0 has a field named \*(L"pkg_path\*(R", then that is used instead of creating the path from \s-1BASEPATH\s0 path concatenated with the \&\s-1TYPE\s0 specific field(s). Hench \s-1BASEPATH\s0 is optional if and only if, the paragraph has a field called \*(L"pkg_path\*(R". .Sp The \s-1TYPE\s0 parameter determines the type of the processable and is required. .Sp \&\s-1NB:\s0 Optional fields (e.g. \*(L"Source\*(R" for binaries) may be omitted in \&\s-1PARAGRAPH\s0 as usual. In this case, the respective values are computed from the required fields according to the Policy Manual. .SH "INSTANCE METHODS" .IX Header "INSTANCE METHODS" .ie n .IP "$proc\->pkg_name" 4 .el .IP "\f(CW$proc\fR\->pkg_name" 4 .IX Item "$proc->pkg_name" Returns the package name. .ie n .IP "$proc\->pkg_version" 4 .el .IP "\f(CW$proc\fR\->pkg_version" 4 .IX Item "$proc->pkg_version" Returns the version of the package. .ie n .IP "$proc\->pkg_path" 4 .el .IP "\f(CW$proc\fR\->pkg_path" 4 .IX Item "$proc->pkg_path" Returns the path to the packaged version of actual package. This path is used in case the data needs to be extracted from the package. .Sp Note: This may return the path to a symlink to the package. .ie n .IP "$proc\->pkg_type" 4 .el .IP "\f(CW$proc\fR\->pkg_type" 4 .IX Item "$proc->pkg_type" Returns the type of package (e.g. binary, source, udeb ...) .ie n .IP "$proc\->pkg_arch" 4 .el .IP "\f(CW$proc\fR\->pkg_arch" 4 .IX Item "$proc->pkg_arch" Returns the architecture(s) of the package. May return multiple values from changes processables. For source processables it is \*(L"source\*(R". .ie n .IP "$proc\->pkg_src" 4 .el .IP "\f(CW$proc\fR\->pkg_src" 4 .IX Item "$proc->pkg_src" Returns the name of the source package. .ie n .IP "$proc\->pkg_src_version" 4 .el .IP "\f(CW$proc\fR\->pkg_src_version" 4 .IX Item "$proc->pkg_src_version" Returns the version of the source package. .ie n .IP "$proc\->tainted" 4 .el .IP "\f(CW$proc\fR\->tainted" 4 .IX Item "$proc->tainted" Returns a truth value if one or more fields in this Processable is tainted. On a best effort basis tainted fields will be sanitized to less dangerous (but possibly invalid) values. .ie n .IP "$proc\->identifier" 4 .el .IP "\f(CW$proc\fR\->identifier" 4 .IX Item "$proc->identifier" Produces an identifier for this processable. The identifier is based on the type, name, version and architecture of the package. .ie n .IP "$proc\->group([$group])" 4 .el .IP "\f(CW$proc\fR\->group([$group])" 4 .IX Item "$proc->group([$group])" Returns the group \f(CW$proc\fR is in, if any. If the processable is not in a group, this returns \f(CW\*(C`undef\*(C'\fR. .Sp Can also be used to set the group of this processable. .ie n .IP "$proc\->info" 4 .el .IP "\f(CW$proc\fR\->info" 4 .IX Item "$proc->info" Returns \f(CW$info\fR element for this processable. .Sp Note: This method must be implemented by sub-classes unless they provide an \*(L"info\*(R" field. .ie n .IP "$proc\->clear_cache" 4 .el .IP "\f(CW$proc\fR\->clear_cache" 4 .IX Item "$proc->clear_cache" Discard the info element, so the memory used by it can be reclaimed. Mostly useful when checking a lot of packages (e.g. on lintian.d.o). .Sp Note: By default this does nothing, but it may (and should) be overridden by sub-classes. .ie n .IP "$proc\->get_field ($field[, $def])" 4 .el .IP "\f(CW$proc\fR\->get_field ($field[, \f(CW$def\fR])" 4 .IX Item "$proc->get_field ($field[, $def])" Optional method to access a field in the underlying data set. .Sp Returns \f(CW$def\fR if the field is not present or the implementation does not have (or want to expose) it. This method is \fInot\fR guaranteed to return the same value as \*(L"$proc\->info\->field ($field, \f(CW$def\fR)\*(R". .Sp If \f(CW$def\fR is omitted is defaults to \f(CW\*(C`undef\*(C'\fR. .Sp Default implementation accesses them via the hashref stored in \&\*(L"extra-fields\*(R" if present. If the field is present, but not defined \&\f(CW$def\fR is returned instead. .Sp \&\s-1NB:\s0 This is mostly an optimization used by Lintian::Lab to avoid (re\-)reading the underlying package data. .SH "AUTHOR" .IX Header "AUTHOR" Originally written by Niels Thykier for Lintian. .SH "SEE ALSO" .IX Header "SEE ALSO" \&\fBlintian\fR\|(1) .PP Lintian::ProcessableGroup