summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJavier Jardón <jjardon@gnome.org>2017-07-19 16:57:28 +0000
committerJavier Jardón <jjardon@gnome.org>2017-07-19 16:57:28 +0000
commit61fbcd3d4ae831722efb0d80c9b16e1055c80589 (patch)
tree1d5a75edf4ea988171a1bd6b500e5f20f12a49c0
parente48b216e362c43a32f5c688757550364f4ca338d (diff)
parentf81c24bda1228f86cfa3c96ab18b6ea52138bd05 (diff)
downloadybd-61fbcd3d4ae831722efb0d80c9b16e1055c80589.tar.gz
Merge branch 'benbrown/metafile-fix' into 'master'
Extract metafiles into the metadir See merge request !375
-rw-r--r--ybd/rpm.py16
1 files changed, 15 insertions, 1 deletions
diff --git a/ybd/rpm.py b/ybd/rpm.py
index ebc085b..1e262b5 100644
--- a/ybd/rpm.py
+++ b/ybd/rpm.py
@@ -214,7 +214,7 @@ def generate_spec(dn, stage_dir, metafile, output, name, system):
if type(package.get('files')) is not list:
continue
- metafile = package.get('metafile', '')
+ metafile = package.get('metafile', '').lstrip(os.sep)
if metafile:
metafile = " -f " + metafile
@@ -250,6 +250,18 @@ def extract_defines(dn):
return ''.join(strings)
+def extract_metafiles(metadata, instdir, metadir):
+ if isinstance(metadata, Mapping):
+ packages = metadata.get('packages', [])
+ else:
+ packages = metadata
+
+ for package in packages:
+ metafile = package.get('metafile', '').lstrip(os.sep)
+ if metafile:
+ shutil.move(os.path.join(instdir, metafile), metadir)
+
+
def get_package_names_with_fields(system, dn, fields):
# Ignores subpackages without files sections as those aren't generated.
if 'rpm-metadata' not in dn:
@@ -445,10 +457,12 @@ def package_one_rpm(dn, userdata):
if generate_spec(dn, fulldir, metafile, specfile,
name, system):
defines = extract_defines(dn)
+ extract_metafiles(dn['rpm-metadata'], fulldir, metadir)
# XXX Now we gonna run rpmbuild in the sandbox !!!
command = ('rpmbuild ' + common_rpm_args +
' --buildroot=/%s.inst' % name +
+ ' --define "_builddir /%s.meta"' % name +
' --define "_rpmdir /RPMS"' + defines +
' --target %s' % app.config['cpu'] +
' -bb /%s.meta/%s.spec' % (name, name))