mini_buildd.dist module¶
Distribution setups && support.
Dist-like variable naming convention¶
diststr
: Instance ofstr
: “buster-test-unstable”.dist
: Instance ofmini_buildd.dist.Dist
: diststr parsed && support.distribution
: Instance ofmini_buildd.model.distribution.Distribution
: Configured distribution.
- class mini_buildd.dist.DebianDistroInfo¶
Bases:
distro_info.DebianDistroInfo
- mbd_lts()¶
Tip
What does
LTS
(mini-buildd speak) include for Debian?For mini-buildd,
LTS
meansDebian Long Term Support (LTS)
includingDebian Extended Long Term Support (ELTS)
.See: https://www.debian.org/lts/, https://wiki.debian.org/LTS/Extended
- class mini_buildd.dist.UbuntuDistroInfo¶
Bases:
distro_info.UbuntuDistroInfo
- mbd_lts()¶
Tip
What does
LTS
(mini-buildd speak) include for Ubuntu?For mini-buildd,
LTS
meansUbuntu Long Term Support (LTS)
includingUbuntu Extended Security Maintenance (ESM)
.
- class mini_buildd.dist.SourceSetup(origin, codename, apt_keys, extra_options='')¶
Bases:
object
Attention
compat (
python < 3.7
): Not using namedtuple w/ defaults.
- class mini_buildd.dist.Codenames¶
Bases:
dict
- get_supported(vendor)¶
- get_supported_plus_lts(vendor)¶
- classmethod get_working(vendor)¶
- classmethod is_security(origin, codename)¶
- get_lintian_options(codename, kind)¶
Get lintian options from SETUP.
- class mini_buildd.dist.SbuildCheck(checker, mode)¶
Bases:
object
Generic support for sbuild checks (lintian, piuparts, autopkgtest).
>>> SbuildCheck("lindian", "disabled") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Unknown sbuild checker: lindian (valid options: lintian,piuparts,autopkgtest) >>> SbuildCheck("lintian", "warnfall") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Unknown sbuild check mode: warnfall (valid options: DISABLED,IGNORE,ERRFAIL,WARNFAIL) >>> sc = SbuildCheck("lintian", "warnfail") >>> sc.checker 'lintian' >>> sc.mode <Mode.WARNFAIL: 3>
- class Mode(value)¶
Bases:
enum.Enum
An enumeration.
- DISABLED = 0¶
- IGNORE = 1¶
- ERRFAIL = 2¶
- WARNFAIL = 3¶
- CHECKERS = ['lintian', 'piuparts', 'autopkgtest']¶
- CHOICES = [(0, 'DISABLED'), (1, 'IGNORE'), (2, 'ERRFAIL'), (3, 'WARNFAIL')]¶
- STATUSES_PASS = ['pass', 'info']¶
From sbuild source code: We may expect these textual statuses:
- STATUSES_WARN = ['warn', 'no tests']¶
- STATUSES_FAIL = ['error', 'fail']¶
- classmethod desc()¶
- classmethod usage()¶
- check(status, ignore=False)¶
Check if status is ok in this mode.
- lintian_options(codename)¶
- class mini_buildd.dist.Dist(diststr)¶
Bases:
object
A mini-buildd distribution string.
Normal distribution:
>>> d = Dist("squeeze-test-stable") >>> d.codename, d.repository, d.suite ('squeeze', 'test', 'stable') >>> d.get() 'squeeze-test-stable'
Rollback distribution:
>>> d = Dist("squeeze-test-stable-rollback5") >>> d.is_rollback True >>> d.get(rollback=False) 'squeeze-test-stable' >>> d.codename, d.repository, d.suite, d.rollback ('squeeze', 'test', 'stable', 'rollback5') >>> d.get() 'squeeze-test-stable-rollback5' >>> d.rollback_no 5
Malformed distributions:
>>> Dist("-squeeze-stable") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution '-squeeze-stable': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
>>> Dist("squeeze--stable") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution 'squeeze--stable': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
>>> Dist("squeeze-test-stable-") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution 'squeeze-test-stable-': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
>>> Dist("squeeze-test-stable-rollback") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution 'squeeze-test-stable-rollback': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
>>> Dist("squeeze-test-stable-rolback0") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution 'squeeze-test-stable-rolback0': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
- get(rollback=True)¶
- mini_buildd.dist.guess_codeversion(release)¶
Guess the ‘codeversion’.
Aka the first two digits of a Debian release version; for releases without version, this falls back to the uppercase codename.
- In Debian,
point release <= sarge had the ‘M.PrN’ syntax (with 3.1 being a major release).
point release in squeeze used ‘M.0.N’ syntax.
point releases for >= wheezy have the ‘M.N’ syntax (with 7.1 being a point release).
testing and unstable do not gave a version in Release and fall back to uppercase codename
Ubuntu just uses YY.MM which we can use as-is.
>>> guess_codeversion({"Origin": "Debian", "Version": "3.1r8", "Codename": "sarge"}) '31' >>> guess_codeversion({"Origin": "Debian", "Version": "4.0r9", "Codename": "etch"}) '40' >>> guess_codeversion({"Origin": "Debian", "Version": "6.0.6", "Codename": "squeeze"}) '60' >>> guess_codeversion({"Origin": "Debian", "Version": "7.0", "Codename": "wheezy"}) '7' >>> guess_codeversion({"Origin": "Debian", "Version": "7.1", "Codename": "wheezy"}) '7' >>> guess_codeversion({"Origin": "Debian", "Codename": "jessie"}) '~JESSIE' >>> guess_codeversion({"Origin": "Debian", "Codename": "sid"}) '~SID' >>> guess_codeversion({"Origin": "Ubuntu", "Version": "12.10", "Codename": "quantal"}) '1210'