Package Distribution Restrictions

Packages can now restrict the debian distribution for which they can build using the new 'dists' package key.
This is a csv list of distribution codenames. If the currently building distribution is not in the list then
the package is ignored.
This commit is contained in:
Jeffrey Townsend
2018-12-25 15:29:32 +00:00
parent 9c21d1631c
commit ce19018897

View File

@@ -136,8 +136,10 @@ class OnlPackage(object):
'BUILD_DIR' : 'BUILD/%s' % g_dist_codename,
# Default Templates Location
'ONL_TEMPLATES' : "%s/packages/base/any/templates" % os.getenv("ONL")
'ONL_TEMPLATES' : "%s/packages/base/any/templates" % os.getenv("ONL"),
# Default Distribution
'DISTS' : g_dist_codename,
}
############################################################
@@ -503,6 +505,13 @@ class OnlPackageGroup(object):
return False
return True
def distcheck(self):
for p in self.packages:
if p.pkg.get("dists", None):
if g_dist_codename not in p.pkg['dists'].split(','):
return False
return True
def prerequisite_packages(self):
rv = []
for e in list(onlu.sflatten(self._pkgs.get('prerequisites', {}).get('packages', []))):
@@ -863,7 +872,8 @@ class OnlPackageManager(object):
pg.filtered = True
if not pg.archcheck(arches):
pg.filtered = True
if not pg.distcheck():
pg.filtered = True
def load(self, basedir, usecache=True, rebuildcache=False):
pkgspec = [ 'PKG.yml', 'pkg.yml' ]
@@ -1089,6 +1099,8 @@ class OnlPackageManager(object):
def list_platforms(self, arch):
platforms = []
for pg in self.package_groups:
if not pg.distcheck():
continue
for p in pg.packages:
(name, pkgArch) = OnlPackage.idparse(p.id())
m = re.match(r'onl-platform-config-(?P<platform>.*)', name)
@@ -1103,7 +1115,7 @@ def defaultPm():
packagedirs = os.environ['ONLPM_OPTION_PACKAGEDIRS'].split(':')
repoPackageDir = os.environ.get('ONLPM_OPTION_REPO_PACKAGE_DIR', 'packages')
subdir = os.getcwd()
arches = ['amd64', 'powerpc', 'armel', 'arm64', 'all',]
arches = ['amd64', 'powerpc', 'armel', 'armhf', 'arm64', 'all',]
if envJson:
for j in envJson.split(':'):
@@ -1139,7 +1151,7 @@ if __name__ == '__main__':
ap.add_argument("--csv", action='store_true')
ap.add_argument("--show-group", action='store_true')
ap.add_argument("--arch")
ap.add_argument("--arches", nargs='+', default=['amd64', 'powerpc', 'armel', 'arm64', 'all']),
ap.add_argument("--arches", nargs='+', default=['amd64', 'powerpc', 'armel', 'armhf', 'arm64', 'all']),
ap.add_argument("--pmake", action='store_true')
ap.add_argument("--prereq-packages", action='store_true')
ap.add_argument("--lookup", metavar='PACKAGE')