.\" 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::Architecture 3" .TH Lintian::Architecture 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::Architecture \-\- Lintian API for handling architectures and wildcards .SH "SYNOPSIS" .IX Header "SYNOPSIS" .Vb 1 \& use Lintian::Architecture qw(:all); \& \& print "arch\en" if is_arch (\*(Aqi386\*(Aq); \& print "wildcard\en" if is_arch_wildcard (\*(Aqany\*(Aq); \& print "either arch or wc\en" if is_arch_or_wildcard (\*(Aqlinux\-any\*(Aq); \& foreach my $arch (expand_arch_wildcard (\*(Aqany\*(Aq)) { \& print "any expands to $arch\en"; \& } .Ve .SH "DESCRIPTION" .IX Header "DESCRIPTION" Lintian \s-1API\s0 for checking and expanding architectures and architecture wildcards. The functions are backed by a data file, so it may be out of date (use private/refresh\-archs to update it). .PP Generally all architecture names are in the format \*(L"$os\-$arch\*(R" and wildcards are \*(L"$os\-any\*(R" or \*(L"any\-$cpu\*(R", though there are exceptions: .IP "\(bu" 4 \&\*(L"all\*(R" is the \*(L"architecture independent\*(R" architecture. .Sp Source: Policy X5.6.8 (v3.9.3) .IP "\(bu" 4 \&\*(L"any\*(R" is a wildcard matching any architecture except \*(L"all\*(R". .Sp Source: Policy X5.6.8 (v3.9.3) .IP "\(bu" 4 All other cases of \*(L"$arch\*(R" are short for \*(L"linux\-$arch\*(R" .Sp Source: Policy X11.1 (v3.9.3) .PP Note that the architecture and cpu name are not always identical (example architecture \*(L"armhf\*(R" has cpu name \*(L"arm\*(R"). .SH "FUNCTIONS" .IX Header "FUNCTIONS" The following methods are exportable: .IP "is_arch_wildcard ($wc)" 4 .IX Item "is_arch_wildcard ($wc)" Returns a truth value if \f(CW$wc\fR is a known architecture wildcard. .Sp Note: 'any' is considered a wildcard and not an architecture. .IP "is_arch ($arch)" 4 .IX Item "is_arch ($arch)" Returns a truth value if \f(CW$arch\fR is (an alias of) a Debian machine architecture \s-1OR\s0 the special value \*(L"all\*(R". It returns a false value for architecture wildcards (including \*(L"any\*(R") and unknown architectures. .IP "is_arch_or_wildcard ($arch)" 4 .IX Item "is_arch_or_wildcard ($arch)" Returns a truth value if \f(CW$arch\fR is either an architecture or an architecture wildcard. .Sp Shorthand for: .Sp .Vb 1 \& is_arch ($arch) || is_arch_wildcard ($arch) .Ve .IP "expand_arch_wildcard ($wc)" 4 .IX Item "expand_arch_wildcard ($wc)" Returns a list of architectures that this wildcard expands to. No order is guaranteed (even between calls). Returned values must not be modified. .Sp Note: This list is based on the architectures in Lintian's data file. However, many of these are not supported or used in Debian or any of its derivatives. .Sp The returned values matches the list generated by dpkg-architecture \-L, so the returned list may use (e.g.) \*(L"amd64\*(R" for \*(L"linux\-amd64\*(R". .ie n .IP "wildcard_includes_arch ($wc, $arch)" 4 .el .IP "wildcard_includes_arch ($wc, \f(CW$arch\fR)" 4 .IX Item "wildcard_includes_arch ($wc, $arch)" Returns a truth value if \f(CW$arch\fR is included in the list of architectures that \f(CW$wc\fR expands to. .Sp This is generally faster than .Sp .Vb 1 \& grep { $_ eq $arch } expand_arch_wildcard ($wc) .Ve .Sp It also properly handles cases like \*(L"linux\-amd64\*(R" and \*(L"amd64\*(R" being aliases. .IP "valid_wildcard" 4 .IX Item "valid_wildcard" .PD 0 .IP "wildcard_matches" 4 .IX Item "wildcard_matches"