summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Brown <ben.brown@codethink.co.uk>2017-07-06 15:17:03 +0100
committerBen Brown <ben.brown@codethink.co.uk>2017-07-10 09:13:49 +0000
commite21e7769d90f4ed93b1c99a7b7206a4d8794fef4 (patch)
treefe9ebce92f774ccf87190e143f6b07ee88b38985
parentcb0c5c04a83f622b14a9b485257925d79fd095de (diff)
downloadybd-e21e7769d90f4ed93b1c99a7b7206a4d8794fef4.tar.gz
Use top-level fields if package-level isn't present
-rw-r--r--ybd/rpm.py12
1 files changed, 8 insertions, 4 deletions
diff --git a/ybd/rpm.py b/ybd/rpm.py
index b69536f..45f4aea 100644
--- a/ybd/rpm.py
+++ b/ybd/rpm.py
@@ -152,14 +152,18 @@ def generate_spec(dn, stage_dir, metafile, output, name, system):
# Add all the main package Provides:
for package in package_list:
if is_main_package(system, dn, package['name']):
- if 'version' in package:
- output_f.write('Version: %s\n' % package['version'])
+ version = next((d['version'] for d in (package, rpm_metadata)
+ if 'version' in d), None)
+ if version:
+ output_f.write('Version: %s\n' % version)
else:
app.log(dn, "Main package has no version!")
return False
- if 'release' in package:
+ release = next((d['release'] for d in (package, rpm_metadata)
+ if 'release' in d), None)
+ if release:
output_f.write('Release: {}git{}\n'
- .format(package['release'], dn['sha']))
+ .format(release, dn['sha']))
else:
app.log(dn, "Main package has no release!")
return False