mini_buildd.distribution module¶
-
class
mini_buildd.distribution.Codename(codename)¶ Bases:
object-
has_lintian_suppress()¶ Test if the distribution (identified by the codename) has a recent lintian with the ‘–suppress-tags’ option.
-
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 autosetup. 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 autosetup is to make this arch optional.
Ref: https://discourse.ubuntu.com/t/community-process-for-32-bit-compatibility/12598?u=d0od
-
apt_transports_apt_get_options()¶
-
-
class
mini_buildd.distribution.Distribution(distribution)¶ Bases:
objectA 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'