implement multilib

This commit is contained in:
Jay Greguske 2016-02-11 14:33:03 -05:00 committed by Mike McLean
parent 8f638935b6
commit 4f4c7e3d4e
4 changed files with 276 additions and 96 deletions

View file

@ -7091,7 +7091,7 @@ def handle_signed_repo(options, session, args):
help=_('Create delta-rpms. PATH points to (older) rpms to generate against. May be specified multiple times. These have to be reachable by the builder too, so the path needs to reach shared storage.'))
parser.add_option('--event', type='int',
help=_('create a signed repository based on a Brew event'))
parser.add_option('--multilib', action='store_true', default=None,
parser.add_option('--multilib', default=None,
help=_('Include multilib packages in the repository using a config'))
parser.add_option("--noinherit", action='store_true', default=False,
help=_('Do not consider tag inheritance'))
@ -7111,6 +7111,7 @@ def handle_signed_repo(options, session, args):
parser.error(_('could not find %s' % task_opts.comps))
session.uploadWrapper(task_opts.comps, stuffdir,
callback=_progress_callback)
print
task_opts.comps = os.path.join(stuffdir,
os.path.basename(task_opts.comps))
if len(task_opts.delta_rpms) > 0:
@ -7119,13 +7120,6 @@ def handle_signed_repo(options, session, args):
print _("Warning: %s is not reachable locally. If this" % path)
print _(" host does not have access to Koji's shared storage")
print _(" this can be ignored.")
if task_opts.multilib:
if not os.path.exists(task_opts.multilib):
parser.error(_('could not find %s' % task_opts.multilib))
session.uploadWrapper(task_opts.multilib, stuffdir,
callback=_progress_callback)
task_opts.comps = os.path.join(stuffdir,
os.path.basename(task_opts.multilib))
tag = args[0]
keys = args[1:]
taginfo = session.getTag(tag)
@ -7139,6 +7133,20 @@ def handle_signed_repo(options, session, args):
for a in task_opts.arch:
if not taginfo['arches'] or a not in taginfo['arches']:
print _('Warning: %s is not in the list of tag arches' % a)
if task_opts.multilib:
if not os.path.exists(task_opts.multilib):
parser.error(_('could not find %s' % task_opts.multilib))
if 'x86_64' in task_opts.arch and not 'i686' in task_opts.arch:
parser.error(_('The multilib arch (i686) must be included'))
if 's390x' in task_opts.arch and not 's390' in task_opts.arch:
parser.error(_('The multilib arch (s390) must be included'))
if 'ppc64' in task_opts.arch and not 'ppc' in task_opts.arch:
parser.error(_('The multilib arch (ppc) must be included'))
session.uploadWrapper(task_opts.multilib, stuffdir,
callback=_progress_callback)
task_opts.multilib = os.path.join(stuffdir,
os.path.basename(task_opts.multilib))
print
try:
task_opts.arch.remove('noarch') # handled specifically
task_opts.arch.remove('src') # ditto