From 4414e3a1e03dfb97d3ddecab8058d0dc69735cbc Mon Sep 17 00:00:00 2001 From: Mike McLean Date: Jul 15 2019 17:24:36 +0000 Subject: PR#898: Add support for tag/target macros for Mageia Merges #898 https://pagure.io/koji/pull-request/898 --- diff --git a/builder/kojid b/builder/kojid index d2bb977..3f84887 100755 --- a/builder/kojid +++ b/builder/kojid @@ -276,6 +276,11 @@ class BuildRoot(object): opts['module_hotfixes'] = self.config['extra']['mock.yum.module_hotfixes'] if self.internal_dev_setup is not None: opts['internal_dev_setup'] = bool(self.internal_dev_setup) + opts['tag_macros'] = {} + for key in self.config['extra']: + if key.startswith('rpm.macro.'): + macro = '%' + key[10:] + opts['tag_macros'][macro] = self.config['extra'][key] output = koji.genMockConfig(self.name, self.br_arch, managed=True, **opts) #write config diff --git a/koji/__init__.py b/koji/__init__.py index 3fda59e..46c7a72 100644 --- a/koji/__init__.py +++ b/koji/__init__.py @@ -1547,18 +1547,21 @@ name=build 'root_cache_enable': False } - #XXX - this needs to be configurable macros = { - '%_topdir' : '%s/build' % config_opts['chroothome'], '%_rpmfilename' : '%%{NAME}-%%{VERSION}-%%{RELEASE}.%%{ARCH}.rpm', - '%_host_cpu' : opts.get('target_arch', arch), - '%_host': '%s-%s' % (opts.get('target_arch', arch), opts.get('mockhost', 'koji-linux-gnu')), '%vendor' : opts.get('vendor', 'Koji'), '%packager' : opts.get('packager', 'Koji'), '%distribution': opts.get('distribution', 'Unknown') - #TODO - track some of these in the db instead? } + # Load tag specific macros, which can override macros above + macros.update(opts.get('tag_macros', {})) + + # The following macro values cannot be overridden by tag options + macros['%_topdir'] = '%s/build' % config_opts['chroothome'] + macros['%_host_cpu'] = opts.get('target_arch', arch) + macros['%_host'] = '%s-%s' % (opts.get('target_arch', arch), opts.get('mockhost', 'koji-linux-gnu')) + parts = ["""# Auto-generated by the Koji build system """] if managed: