In meson
's debian/control
file, I see its Build-Depends
is as follows (see the last line):
Source: meson
Maintainer: Jussi Pakkanen <[email protected]>
Section: devel
Priority: optional
Standards-Version: 4.5.0
Homepage: https://mesonbuild.com
X-Python3-Version: >= 3.7
Rules-Requires-Root: no
Build-Depends: debhelper (>= 12),
python3:any (>= 3.5),
... ...
What is the meaning of "any" in "python3:any (>= 3.5)"?
I found the related part of the source code here (and hopefully I found the right code):
return if not $dep =~
m{^\s* # skip leading whitespace
($pkgname_re) # package name
(?: # start of optional part
: # colon for architecture
([a-zA-Z0-9][a-zA-Z0-9-]*) # architecture name
)? # end of optional part
The code comment says the ":any" part specifies the architecture.
However, after reading the following chapters in Debian Policy Manual v4.5.0.2:
[2] does talk about the bracket syntax (e.g., "hurd-dev [hurd-i386]") that specifies the architectures that the package should be installed. I haven't found the text that mentions this colon syntax.
So my previous question can be further divided into:
- Am I correct that the "any" part specifies the architecture?
- If "any" specifies the architecture, what's the difference between the colon syntax (e.g., "python3:any") and the bracket syntax (e.g., "hurd-dev [hurd-i386]")?
- Why is the colon syntax needed if we already have the bracket syntax?
- Most importantly, could someone point me to the related documentation for this colon syntax?
Right terms first so they lead to the right docs. First of all, such fields as Build-Depends are called relationship fields. And there I could find that
So, then Architecture specification strings is what we are looking for. From this we can deduce that these are defined by dpkg-architecture. And from its manpage, architecture name is either
or
Here is additional explanation:
,BTW contrary to all which