Add glibc.i686 to specs if its glibc request

Add glibc.i686 to specs if its glibc request, therefore, repochecker
will not ignore glibc.i686 binaries in case some binaries need them.
Also ignore build_excluded if it's i686 only package, and downloading
it's i586 packages.
This commit is contained in:
Max Lin 2016-04-20 20:54:56 +08:00
parent b9c98afa34
commit fb7f304edd
2 changed files with 20 additions and 2 deletions

View File

@ -51,6 +51,15 @@ def _check_repo_download(self, request):
# XXX TODO - Rewrite the logic here, meanwhile set is to x86_64
arch = 'x86_64'
if request.src_package in request.i686_only:
# Use imported binaries from x86_64 to check the requirements is fine,
# but we can not get rpmlint.log from x86_64 repo if it was excluded,
# i586 repo should be are build succeeded already as we have check it
# in repositories_to_check(). Therefore, we have to download binary
# binary files from i586 repo.
arch = 'i586'
# if not request.build_excluded:
# arch = 'x86_64'
# else:

View File

@ -67,6 +67,7 @@ class Request(object):
self.action_type = 'submit' # assume default
self.downloads = []
self.is_shadow_devel = False
self.i686_only = ['glibc.i686']
if element:
self.load(element)
@ -439,6 +440,12 @@ class CheckRepo(object):
specs = [en.attrib['name'][:-5] for en in root.findall('entry')
if en.attrib['name'].endswith('.spec')]
# special case for glibc.i686, it have not the relevant specfile for glibc.i686
# but must be add it to requests list as a dummy request, otherwise the state
# has not be check and won't download it's binaries.
if 'glibc' in specs:
specs.append('glibc.i686')
# source checker already validated it
if rq.src_package in specs:
specs.remove(rq.src_package)
@ -772,8 +779,10 @@ class CheckRepo(object):
for arch in repository.findall('arch'):
if arch.attrib['arch'] not in ('i586', 'x86_64'):
continue
if arch.attrib['result'] == 'excluded' and arch.attrib['arch'] == 'x86_64':
request.build_excluded = True
if arch.attrib['result'] == 'excluded':
if ((arch.attrib['arch'] == 'x86_64' and request.src_package not in request.i686_only) or
(arch.attrib['arch'] == 'i586' and request.src_package in request.i686_only)):
request.build_excluded = True
if 'missing' in arch.attrib:
for package in arch.attrib['missing'].split(','):
if not self.is_binary(