Don't hardcode architectures - take it from the project
This commit is contained in:
parent
3d387a5829
commit
1bae4083b2
@ -92,10 +92,6 @@ class CommandLineInterface(ToolBase.CommandLineInterface):
|
|||||||
|
|
||||||
api = StagingAPI(apiurl, target_project)
|
api = StagingAPI(apiurl, target_project)
|
||||||
|
|
||||||
archs_key = 'pkglistgen-archs'
|
|
||||||
|
|
||||||
if archs_key in target_config:
|
|
||||||
self.options.architectures = target_config.get(archs_key).split(' ')
|
|
||||||
main_repo = target_config['main-repo']
|
main_repo = target_config['main-repo']
|
||||||
|
|
||||||
if apiurl.find('suse.de') > 0:
|
if apiurl.find('suse.de') > 0:
|
||||||
|
@ -8,15 +8,13 @@ from lxml import etree as ET
|
|||||||
|
|
||||||
import solv
|
import solv
|
||||||
|
|
||||||
ARCHITECTURES = ['x86_64', 'ppc64le', 's390x', 'aarch64']
|
|
||||||
|
|
||||||
class Group(object):
|
class Group(object):
|
||||||
|
|
||||||
def __init__(self, name, pkglist):
|
def __init__(self, name, pkglist):
|
||||||
self.name = name
|
self.name = name
|
||||||
self.safe_name = re.sub(r'\W', '_', name.lower())
|
self.safe_name = re.sub(r'\W', '_', name.lower())
|
||||||
self.pkglist = pkglist
|
self.pkglist = pkglist
|
||||||
self.architectures = pkglist.architectures
|
self.architectures = pkglist.all_architectures
|
||||||
self.conditional = None
|
self.conditional = None
|
||||||
self.packages = dict()
|
self.packages = dict()
|
||||||
self.locked = set()
|
self.locked = set()
|
||||||
@ -25,7 +23,7 @@ class Group(object):
|
|||||||
self.not_found = dict()
|
self.not_found = dict()
|
||||||
self.unresolvable = dict()
|
self.unresolvable = dict()
|
||||||
self.default_support_status = None
|
self.default_support_status = None
|
||||||
for a in ARCHITECTURES:
|
for a in self.architectures:
|
||||||
self.packages[a] = []
|
self.packages[a] = []
|
||||||
self.unresolvable[a] = dict()
|
self.unresolvable[a] = dict()
|
||||||
|
|
||||||
@ -120,6 +118,7 @@ class Group(object):
|
|||||||
|
|
||||||
self.srcpkgs = dict()
|
self.srcpkgs = dict()
|
||||||
self.recommends = dict()
|
self.recommends = dict()
|
||||||
|
self.suggested = dict()
|
||||||
for arch in self.pkglist.filtered_architectures:
|
for arch in self.pkglist.filtered_architectures:
|
||||||
pool = self.pkglist._prepare_pool(arch)
|
pool = self.pkglist._prepare_pool(arch)
|
||||||
solver = pool.Solver()
|
solver = pool.Solver()
|
||||||
@ -182,6 +181,7 @@ class Group(object):
|
|||||||
if n in self.expand_suggested:
|
if n in self.expand_suggested:
|
||||||
for s in solver.get_suggested():
|
for s in solver.get_suggested():
|
||||||
suggested[s.name] = group + ':suggested:' + n
|
suggested[s.name] = group + ':suggested:' + n
|
||||||
|
self.suggested.setdefault(s.name, suggested[s.name])
|
||||||
|
|
||||||
trans = solver.transaction()
|
trans = solver.transaction()
|
||||||
if trans.isempty():
|
if trans.isempty():
|
||||||
|
@ -34,7 +34,7 @@ except ImportError:
|
|||||||
from urlparse import urlparse
|
from urlparse import urlparse
|
||||||
|
|
||||||
from pkglistgen import file_utils, solv_utils
|
from pkglistgen import file_utils, solv_utils
|
||||||
from pkglistgen.group import Group, ARCHITECTURES
|
from pkglistgen.group import Group
|
||||||
|
|
||||||
SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
|
SCRIPT_PATH = os.path.dirname(os.path.realpath(__file__))
|
||||||
|
|
||||||
@ -59,10 +59,10 @@ class PkgListGen(ToolBase.ToolBase):
|
|||||||
self.logger = logging.getLogger(__name__)
|
self.logger = logging.getLogger(__name__)
|
||||||
self.filtered_architectures = None
|
self.filtered_architectures = None
|
||||||
self.dry_run = False
|
self.dry_run = False
|
||||||
self.architectures = ARCHITECTURES
|
self.all_architectures = None
|
||||||
|
|
||||||
def filter_architectures(self, architectures):
|
def filter_architectures(self, architectures):
|
||||||
self.filtered_architectures = list(set(architectures) & set(self.architectures))
|
self.filtered_architectures = list(set(architectures) & set(self.all_architectures))
|
||||||
|
|
||||||
def _load_supportstatus(self):
|
def _load_supportstatus(self):
|
||||||
# XXX
|
# XXX
|
||||||
@ -110,7 +110,7 @@ class PkgListGen(ToolBase.ToolBase):
|
|||||||
|
|
||||||
# required to generate release spec files (only)
|
# required to generate release spec files (only)
|
||||||
def write_group_stubs(self):
|
def write_group_stubs(self):
|
||||||
archs = ['*'] + self.architectures
|
archs = ['*'] + self.all_architectures
|
||||||
for name in self.groups:
|
for name in self.groups:
|
||||||
group = self.groups[name]
|
group = self.groups[name]
|
||||||
group.solved_packages = dict()
|
group.solved_packages = dict()
|
||||||
@ -124,7 +124,7 @@ class PkgListGen(ToolBase.ToolBase):
|
|||||||
def write_all_groups(self):
|
def write_all_groups(self):
|
||||||
self._check_supplements()
|
self._check_supplements()
|
||||||
summary = dict()
|
summary = dict()
|
||||||
archs = ['*'] + self.architectures
|
archs = ['*'] + self.all_architectures
|
||||||
for name in self.groups:
|
for name in self.groups:
|
||||||
group = self.groups[name]
|
group = self.groups[name]
|
||||||
if not group.solved:
|
if not group.solved:
|
||||||
@ -373,10 +373,10 @@ class PkgListGen(ToolBase.ToolBase):
|
|||||||
for prj in list(oldprjs) + [target]:
|
for prj in list(oldprjs) + [target]:
|
||||||
self.repos += self.expand_repos(prj, 'standard')
|
self.repos += self.expand_repos(prj, 'standard')
|
||||||
|
|
||||||
self.update_repos(self.architectures)
|
self.update_repos(self.all_architectures)
|
||||||
|
|
||||||
drops = dict()
|
drops = dict()
|
||||||
for arch in self.architectures:
|
for arch in self.all_architectures:
|
||||||
pool = solv.Pool()
|
pool = solv.Pool()
|
||||||
pool.setarch(arch)
|
pool.setarch(arch)
|
||||||
|
|
||||||
@ -423,7 +423,7 @@ class PkgListGen(ToolBase.ToolBase):
|
|||||||
if drops[name]['repo'] != '{}/{}'.format(project, repo):
|
if drops[name]['repo'] != '{}/{}'.format(project, repo):
|
||||||
#print(drops[name]['repo'], '!=', '{}/{}'.format(project, repo))
|
#print(drops[name]['repo'], '!=', '{}/{}'.format(project, repo))
|
||||||
continue
|
continue
|
||||||
if len(drops[name]['archs']) == len(self.architectures):
|
if len(drops[name]['archs']) == len(self.all_architectures):
|
||||||
print('Provides: weakremover({})'.format(name))
|
print('Provides: weakremover({})'.format(name))
|
||||||
else:
|
else:
|
||||||
jarch = ' '.join(sorted(drops[name]['archs']))
|
jarch = ' '.join(sorted(drops[name]['archs']))
|
||||||
@ -587,6 +587,7 @@ class PkgListGen(ToolBase.ToolBase):
|
|||||||
def update_and_solve_target(self, api, target_project, target_config, main_repo,
|
def update_and_solve_target(self, api, target_project, target_config, main_repo,
|
||||||
project, scope, force, no_checkout,
|
project, scope, force, no_checkout,
|
||||||
only_release_packages, stop_after_solve, drop_list=False):
|
only_release_packages, stop_after_solve, drop_list=False):
|
||||||
|
self.all_architectures = target_config.get('pkglistgen-archs').split(' ')
|
||||||
self.repos = self.expand_repos(project, main_repo)
|
self.repos = self.expand_repos(project, main_repo)
|
||||||
print('[{}] {}/{}: update and solve'.format(scope, project, main_repo))
|
print('[{}] {}/{}: update and solve'.format(scope, project, main_repo))
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user