mini_buildd.distribution module¶
-
class
mini_buildd.distribution.
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.
-
class
-
class
mini_buildd.distribution.
Codename
(codename)¶ Bases:
object
-
DEBIAN_INFO
= <distro_info.DebianDistroInfo object>¶
-
UBUNTU_INFO
= <distro_info.UbuntuDistroInfo object>¶
-
has_lintian_suppress
()¶ Test if the distribution (identified by the codename) has a recent lintian with the ‘–suppress-tags’ option.
-
lintian_options
(check)¶
-
produces_ddeb_appendix
()¶ Get list of codenames that (oddly) use ddeb as file appendix.
Some Ubuntu codenames produce ‘ddeb’ file appendix for automated debug packages. reprepro can’t handle these yet – so this is needed for a workaround for the wizard setup.
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730572
-
arch_optional
(arch)¶ Ubuntu drops i386.
‘focal’ still has i386 repo (debootrap still works), so i386 is still picked by mini-buildd’s setup. However, builds no longer work (default resolver aptitude missing). Choosing “apt” resolver would master this hurdle, but this would also change the default resolver for amd64. Imho best solution for mini-buildd’s setup is to make this arch optional.
Ref: https://discourse.ubuntu.com/t/community-process-for-32-bit-compatibility/12598?u=d0od
-
apt_allow_unauthenticated
()¶
-
-
class
mini_buildd.distribution.
Distribution
(distribution)¶ Bases:
object
A mini-buildd distribution string.
Normal distribution:
>>> d = Distribution("squeeze-test-stable") >>> d.codename.codename, d.repository, d.suite ('squeeze', 'test', 'stable') >>> d.get() 'squeeze-test-stable'
Rollback distribution:
>>> d = Distribution("squeeze-test-stable-rollback5") >>> d.is_rollback True >>> d.codename.codename, d.repository, d.suite, d.rollback ('squeeze', 'test', 'stable', 'rollback5') >>> d.get() 'squeeze-test-stable-rollback5' >>> d.rollback_no 5
Malformed distributions:
>>> Distribution("-squeeze-stable") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution '-squeeze-stable': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
>>> Distribution("squeeze--stable") Traceback (most recent call last): ... mini_buildd.HTTPBadRequest: HTTP 400: Malformed distribution 'squeeze--stable': Must be '<codename>-<repoid>-<suite>[-rollback<n>]'
>>> Distribution("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>]'
>>> Distribution("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>]'
>>> Distribution("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.distribution.
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'