mirror of
				https://github.com/Telecominfraproject/OpenNetworkLinux.git
				synced 2025-11-04 04:08:18 +00:00 
			
		
		
		
	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:
		@@ -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')
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user