From 42482caad31aa091bff5cc3996287e56441b6ec7 Mon Sep 17 00:00:00 2001 From: Pavel Raiskup Date: Nov 06 2020 08:13:31 +0000 Subject: rpmbuild: set Vendor metadata for builds This is configurable per Copr instance in main.ini (the main.rpm_vendor_copr_name option). The final Vendor format is e.g. "Fedora Copr - group @copr". This should be useful in the future "sticky vendors" DNF's feature. Fixes: #1543 Merges: #1548 --- diff --git a/rpmbuild/copr_rpmbuild/builders/mock.py b/rpmbuild/copr_rpmbuild/builders/mock.py index 43d17a0..5106e70 100644 --- a/rpmbuild/copr_rpmbuild/builders/mock.py +++ b/rpmbuild/copr_rpmbuild/builders/mock.py @@ -32,6 +32,12 @@ class MockBuilder(object): self.copr_username = task.get("project_owner") self.copr_projectname = task.get("project_name") self.modules = task.get("modules") + rpm_vendor_copr_name = self.config.get("main", "rpm_vendor_copr_name") + self.vendor = "{0} - {1} {2}".format( + rpm_vendor_copr_name, + "group" if self.copr_username.startswith("@") else "user", + self.copr_username, + ) def run(self): open(self.logfile, 'w').close() # truncate logfile @@ -72,7 +78,8 @@ class MockBuilder(object): repos=self.repos, copr_username=self.copr_username, copr_projectname=self.copr_projectname, modules=self.enable_modules, - copr_build_id=self.build_id) + copr_build_id=self.build_id, + vendor=self.vendor) def produce_srpm(self, spec, sources, resultdir): cmd = MOCK_CALL + [ diff --git a/rpmbuild/copr_rpmbuild/helpers.py b/rpmbuild/copr_rpmbuild/helpers.py index e526554..6264de8 100644 --- a/rpmbuild/copr_rpmbuild/helpers.py +++ b/rpmbuild/copr_rpmbuild/helpers.py @@ -153,6 +153,7 @@ def read_config(config_path=None): "logfile": "/var/lib/copr-rpmbuild/main.log", "pidfile": "/var/lib/copr-rpmbuild/pid", "enabled_source_protocols": "https ftps", + "rpm_vendor_copr_name": "Unknown Copr", }) config_paths = [os.path.join(path, "main.ini") for path in CONF_DIRS] config.read(config_path or reversed(config_paths)) diff --git a/rpmbuild/main.ini b/rpmbuild/main.ini index 9cb7b1d..bbe5fcb 100644 --- a/rpmbuild/main.ini +++ b/rpmbuild/main.ini @@ -4,6 +4,8 @@ backend_url = https://copr-be.cloud.fedoraproject.org enabled_source_protocols = https ftps distgit_lookaside_url = {scheme}://{netloc}/repo/pkgs/%(ns1)s/%(name)s/%(filename)s/%(hashtype)s/%(hash)s/%(filename)s distgit_clone_url = {scheme}://{netloc}/%(module)s +# The final %vendor would be e.g. "Fedora Copr - group @copr" +#rpm_vendor_copr_name="Fedora Copr" [distgit0] distgit_hostname_pattern = src.fedoraproject.org diff --git a/rpmbuild/mock.cfg.j2 b/rpmbuild/mock.cfg.j2 index 577d811..806afc2 100644 --- a/rpmbuild/mock.cfg.j2 +++ b/rpmbuild/mock.cfg.j2 @@ -3,7 +3,7 @@ include('/etc/mock/{{ chroot }}.cfg') {% if buildroot_pkgs %} config_opts['chroot_additional_packages'] = '{{ buildroot_pkgs| join(" ") }}' {% endif %} - +config_opts['macros']['%vendor'] = '{{ vendor }}' {% if enable_net %} config_opts['rpmbuild_networking'] = True config_opts['use_host_resolv'] = True diff --git a/rpmbuild/tests/test_mock.py b/rpmbuild/tests/test_mock.py index f808379..9ea23ee 100644 --- a/rpmbuild/tests/test_mock.py +++ b/rpmbuild/tests/test_mock.py @@ -92,6 +92,7 @@ class TestMockBuilder(object): self.config = configparser.RawConfigParser() self.config.add_section('main') self.config.set('main', 'logfile', '/dev/null') + self.config.set('main', 'rpm_vendor_copr_name', 'Copr Testsuite') def teardown_method(self, method): shutil.rmtree(self.resultdir) @@ -144,7 +145,7 @@ include('/etc/mock/fedora-24-x86_64.cfg') config_opts['chroot_additional_packages'] = 'pkg1 pkg2 pkg3' - +config_opts['macros']['%vendor'] = 'Copr Testsuite - group @copr' config_opts['rpmbuild_networking'] = True config_opts['use_host_resolv'] = True