From 460eae630ef0848ca3f29e620ea53d1c74eafdaa Mon Sep 17 00:00:00 2001 From: Silvie Chlupova Date: Oct 17 2019 10:47:02 +0000 Subject: the %copr_username isn't defined on copr builders Fixes: #1037 --- diff --git a/rpmbuild/copr_rpmbuild/builders/mock.py b/rpmbuild/copr_rpmbuild/builders/mock.py index 66f9658..f20eaa2 100644 --- a/rpmbuild/copr_rpmbuild/builders/mock.py +++ b/rpmbuild/copr_rpmbuild/builders/mock.py @@ -27,6 +27,8 @@ class MockBuilder(object): self.resultdir = resultdir self.config = config self.logfile = self.config.get("main", "logfile") + self.copr_username = task.get("project_owner") + self.copr_projectname = task.get("project_name") def run(self): open(self.logfile, 'w').close() # truncate logfile @@ -66,7 +68,8 @@ class MockBuilder(object): template = jinja_env.get_template("mock.cfg.j2") return template.render(chroot=self.chroot, task_id=self.task_id, buildroot_pkgs=self.buildroot_pkgs, enable_net=self.enable_net, use_bootstrap_container=self.use_bootstrap_container, - repos=self.repos, pkg_manager_conf=self.pkg_manager_conf) + repos=self.repos, pkg_manager_conf=self.pkg_manager_conf, + copr_username=self.copr_username, copr_projectname=self.copr_projectname) def produce_srpm(self, spec, sources, configdir, resultdir): cmd = MOCK_CALL + [ diff --git a/rpmbuild/mock.cfg.j2 b/rpmbuild/mock.cfg.j2 index 4efb180..73b9341 100644 --- a/rpmbuild/mock.cfg.j2 +++ b/rpmbuild/mock.cfg.j2 @@ -14,6 +14,8 @@ config_opts['rpmbuild_networking'] = False config_opts['use_host_resolv'] = False {% endif %} +config_opts['macros']['%copr_username'] = '{{ copr_username }}' +config_opts['macros']['%copr_projectname'] = '{{ copr_projectname }}' config_opts['use_bootstrap_container'] = {{ 'True' if use_bootstrap_container else 'False' }} {% if use_bootstrap_container %} diff --git a/rpmbuild/tests/test_mock.py b/rpmbuild/tests/test_mock.py index 473c67e..89ad911 100644 --- a/rpmbuild/tests/test_mock.py +++ b/rpmbuild/tests/test_mock.py @@ -68,7 +68,8 @@ class TestMockBuilder(unittest.TestCase): # This is how mock itself does it def include(*args, **kwargs): pass - config_opts = {"yum.conf": []} + + config_opts = {"macros": {"%copr_username": "@copr", "%copr_projectname": "copr-dev"}, "yum.conf": []} cfg = re.sub(r'include\((.*)\)', r'include(\g<1>, config_opts, True)', cfg) code = compile(cfg, "/tmp/foobar", 'exec') exec(code) @@ -77,6 +78,8 @@ class TestMockBuilder(unittest.TestCase): self.assertEqual(config_opts["chroot_additional_packages"], "pkg1 pkg2 pkg3") self.assertEqual(config_opts["rpmbuild_networking"], True) self.assertEqual(config_opts["use_bootstrap_container"], False) + self.assertEqual(config_opts["macros"]["%copr_username"], "@copr") + self.assertEqual(config_opts["macros"]["%copr_projectname"], "copr-dev") self.assertEqual(config_opts["yum.conf"], []) @mock.patch("copr_rpmbuild.builders.mock.get_mock_uniqueext")