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_supported(with_lts=False)¶
- class mini_buildd.dist.UbuntuDistroInfo¶
Bases:
distro_info.UbuntuDistroInfo
- mbd_supported(with_lts=False)¶
- class mini_buildd.dist.SourceSetup(origin, codename, apt_keys, extra_options='')¶
Bases:
object
Note
pycompat: With
python 3.7
, this could be a namedtuple w/ defaults.
- mini_buildd.dist.get_codenames(vendors=None, with_unsupported=False, with_lts=False)¶
- mini_buildd.dist.is_security_codename(origin, codename)¶
- mini_buildd.dist.get_lintian_options(codename, kind)¶
Get lintian options from SETUP.
>>> get_lintian_options("bullseye", "common") ['--suppress-tags', 'bad-distribution-in-changes-file'] >>> get_lintian_options("bullseye", "warnfail") ['--fail-on', 'error,warning'] >>> get_lintian_options("buster", "common") ['--suppress-tags', 'bad-distribution-in-changes-file'] >>> get_lintian_options("buster", "warnfail") ['--fail-on-warnings']
- 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'