diff options
author | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2017-04-24 13:58:02 +0100 |
---|---|---|
committer | Jonathan Maw <jonathan.maw@codethink.co.uk> | 2017-04-24 14:47:18 +0100 |
commit | 0db54cd8c41f0bb1afa0e7ae325d16a89c311c71 (patch) | |
tree | bc0405180efb61d952365bc1b015ab00f7661d7a | |
parent | 2d7b77b3aa008dd8d1d5e03f784dac908ce87599 (diff) | |
download | ybd-jonathan/rpm-export-use-version.tar.gz |
rpm: use 'version' metadata field instead of timejonathan/rpm-export-use-version
-rwxr-xr-x | ybd/__main__.py | 6 | ||||
-rw-r--r-- | ybd/rpm.py | 19 |
2 files changed, 10 insertions, 15 deletions
diff --git a/ybd/__main__.py b/ybd/__main__.py index 2ceef47..614d8f3 100755 --- a/ybd/__main__.py +++ b/ybd/__main__.py @@ -29,7 +29,6 @@ from concourse import Pipeline import cache from release_note import do_release_note from rpm import package_rpms -import time import sandbox import sandboxlib import argparse @@ -125,7 +124,6 @@ with timer('TOTAL'): os._exit(1) if config.get('generate-rpms', False) is not False: - now = int(time.time()) # The generate-rpms setting can be 'True' to generate # all rpms, or it can be a list of chunk names for which @@ -135,11 +133,11 @@ with timer('TOTAL'): whitelist = None if target['kind'] == 'system': - package_rpms(target, now, whitelist) + package_rpms(target, whitelist) elif target['kind'] == 'cluster': # call package_rpms for each system in the cluster for system in target['systems']: - package_rpms(system['path'], now, whitelist) + package_rpms(system['path'], whitelist) else: log('RPM', ('%s is a %s, cannot package rpms!' @@ -109,9 +109,12 @@ def is_main_package(system, dn, package): return expand_macro(system, dn, package) == dn['name'] -def generate_spec(dn, stage_dir, metafile, output, name, time, system): +def generate_spec(dn, stage_dir, metafile, output, name, system): if 'rpm-metadata' not in dn: return False + if 'version' not in dn['rpm-metadata']: + app.log(dn, "Cannot generate spec, no version is defined!") + return False with open(metafile, "r") as metafile_f: metadata = yaml.safe_load(metafile_f) @@ -134,7 +137,7 @@ def generate_spec(dn, stage_dir, metafile, output, name, time, system): # Write out the package header first output_f.write('Name: %s\n' % name) output_f.write('Summary: %s\n' % description) - output_f.write('Version: %s\n' % time) + output_f.write('Version: %s\n' % dn['rpm-metadata']['version']) output_f.write('Release: %s\n' % dn['sha']) output_f.write('License: %s\n' % 'Undetermined') output_f.write('Prefix: %s\n' % dn.get('prefix', '/usr')) @@ -223,7 +226,6 @@ def extract_defines(dn): def package_one_rpm(dn, userdata): system = userdata['system'] - time = userdata['time'] kind = dn.get('kind') name = dn.get('name') @@ -254,7 +256,7 @@ def package_one_rpm(dn, userdata): success = True if generate_spec(dn, fulldir, metafile, specfile, - name, time, system): + name, system): defines = extract_defines(dn) # XXX Now we gonna run rpmbuild in the sandbox !!! @@ -285,7 +287,6 @@ def package_one_rpm(dn, userdata): # package_rpms # @system: The system to package rpms for -# @time: The number of whole seconds since the epoch # @whitelist: A whitelist of chunk names to package rpms for # # This function will first stage the given @system, which @@ -298,11 +299,7 @@ def package_one_rpm(dn, userdata): # dependencies, this should allow rpm to infer package dependencies # correctly # -# A package's version is the time when RPM assembly started, passed -# as the @time argument because package_rpms might be called for -# multiple systems, if a cluster was specified on the command-line. -# -def package_rpms(system, time, whitelist=None): +def package_rpms(system, whitelist=None): if type(system) is not dict: system = app.defs.get(system) @@ -327,7 +324,7 @@ def package_rpms(system, time, whitelist=None): # Package each rpm in order of build dependency package_results = foreach_def( - system, package_one_rpm, {'system': system, 'time': time}, + system, package_one_rpm, {'system': system}, whitelist=whitelist) errors = any(not t[1] for t in package_results) if errors: |