summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Brown <ben.brown@codethink.co.uk>2017-07-21 12:09:42 +0100
committerBen Brown <ben.brown@codethink.co.uk>2017-07-31 16:13:20 +0100
commit7a6e56d69c130ade4731512819d222e7db0dd17b (patch)
treee96ecc6331fbeabf935b983c18d6d239381464f7
parent03118ff399b71daac9a9978c6a3f5f7df4319a00 (diff)
downloadybd-7a6e56d69c130ade4731512819d222e7db0dd17b.tar.gz
Add support for 'Conflicts' and 'Obsoletes' fieldsbenbrown/obsoletes-conflicts
Iterates over a tuple of the fields that expect lists, to avoid further duplication.
-rw-r--r--ybd/rpm.py23
1 files changed, 11 insertions, 12 deletions
diff --git a/ybd/rpm.py b/ybd/rpm.py
index 8309a47..ed855b5 100644
--- a/ybd/rpm.py
+++ b/ybd/rpm.py
@@ -143,6 +143,7 @@ def generate_spec(dn, stage_dir, metafile, output, name, system):
output_f.write('Summary: %s\n' % description)
output_f.write('License: %s\n' % 'Undetermined')
output_f.write('Prefix: %s\n' % dn.get('prefix', '/usr'))
+ list_fields = ('Requires', 'Conflicts', 'Provides', 'Obsoletes')
# Add all the main package Provides:
for package in package_list:
if is_main_package(system, dn, package['name']):
@@ -165,12 +166,11 @@ def generate_spec(dn, stage_dir, metafile, output, name, system):
if 'epoch' in d), None)
if epoch:
output_f.write('Epoch: %s\n' % epoch)
- if 'provides' in package:
- for provide in package['provides']:
- output_f.write('Provides: %s\n' % provide)
- if 'requires' in package:
- for require in package['requires']:
- output_f.write('Requires: %s\n' % require)
+ for field in list_fields:
+ field_l = field.lower()
+ if field_l in package:
+ for item in package[field_l]:
+ output_f.write('%s: %s\n' % (field, item))
output_f.write('\n')
output_f.write('%%description\n')
@@ -189,12 +189,11 @@ def generate_spec(dn, stage_dir, metafile, output, name, system):
.format(package['release'], dn['sha']))
if 'epoch' in package:
output_f.write('Epoch: %s\n' % package['epoch'])
- if 'provides' in package:
- for provide in package['provides']:
- output_f.write('Provides: %s\n' % provide)
- if 'requires' in package:
- for require in package['requires']:
- output_f.write('Requires: %s\n' % require)
+ for field in list_fields:
+ field_l = field.lower()
+ if field_l in package:
+ for item in package[field_l]:
+ output_f.write('%s: %s\n' % (field, item))
output_f.write('\n')
output_f.write('%%description -n %s\n' % package['name'])
output_f.write('%s\n' % description)