From dc7d3b36abd6f2a9e6474052740f020d11d6cc3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lubom=C3=ADr=20Sedl=C3=A1=C5=99?= Date: Mon, 30 Jan 2017 10:16:03 +0100 Subject: [PATCH] repoclosure: Don't run build deps check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes: #521 Signed-off-by: Lubomír Sedlář --- pungi/phases/test.py | 35 ++----------------------------- pungi/wrappers/repoclosure.py | 9 +------- tests/test_repoclosure_wrapper.py | 4 +--- tests/test_test_phase.py | 6 ++---- 4 files changed, 6 insertions(+), 48 deletions(-) diff --git a/pungi/phases/test.py b/pungi/phases/test.py index 031c4236..ddc641fc 100644 --- a/pungi/phases/test.py +++ b/pungi/phases/test.py @@ -34,18 +34,13 @@ class TestPhase(PhaseBase): def run_repoclosure(compose): - # TODO: Special handling for src packages (use repoclosure param builddeps) - msg = "Running repoclosure" compose.log_info("[BEGIN] %s" % msg) # Variant repos - all_repos = {} # to be used as lookaside for the self-hosting check - all_arches = set() for arch in compose.get_arches(): is_multilib = is_arch_multilib(compose.conf, arch) arches = get_valid_arches(arch, is_multilib) - all_arches.update(arches) for variant in compose.get_variants(arch=arch): if variant.is_empty: continue @@ -70,37 +65,11 @@ def run_repoclosure(compose): # https://bugzilla.redhat.com/show_bug.cgi?id=795137 tmp_dir = compose.mkdtemp(prefix="repoclosure_") try: - run(cmd, logfile=compose.paths.log.log_file(arch, "repoclosure-%s" % variant), show_cmd=True, can_fail=True, workdir=tmp_dir) + run(cmd, logfile=compose.paths.log.log_file(arch, "repoclosure-%s" % variant), + show_cmd=True, can_fail=True, workdir=tmp_dir) finally: rmtree(tmp_dir) - all_repos.update(repos) - all_repos.update(lookaside) - repo_id = "repoclosure-%s.%s" % (variant.uid, "src") - repo_dir = compose.paths.compose.repository(arch="src", variant=variant) - all_repos[repo_id] = repo_dir - - # A SRPM can be built on any arch and is always rebuilt before building on the target arch. - # This means the deps can't be always satisfied within one tree arch. - # As a workaround, let's run the self-hosting check across all repos. - - # XXX: This doesn't solve a situation, when a noarch package is excluded due to ExcludeArch/ExclusiveArch and it's still required on that arch. - # In this case, it's an obvious bug in the test. - - # check BuildRequires (self-hosting) - try: - cmd = repoclosure.get_repoclosure_cmd(backend=compose.conf['repoclosure_backend'], - repos=all_repos, arch=all_arches, builddeps=True) - except RuntimeError as exc: - compose.log_error('%s, skipping builddeps check...' % str(exc)) - # Use temp working directory directory as workaround for - # https://bugzilla.redhat.com/show_bug.cgi?id=795137 - tmp_dir = compose.mkdtemp(prefix="repoclosure_") - try: - run(cmd, logfile=compose.paths.log.log_file("global", "repoclosure-builddeps"), show_cmd=True, can_fail=True, workdir=tmp_dir) - finally: - rmtree(tmp_dir) - compose.log_info("[DONE ] %s" % msg) diff --git a/pungi/wrappers/repoclosure.py b/pungi/wrappers/repoclosure.py index 1b261816..a71a3cc4 100644 --- a/pungi/wrappers/repoclosure.py +++ b/pungi/wrappers/repoclosure.py @@ -19,11 +19,7 @@ import os from kobo.shortcuts import force_list -def get_repoclosure_cmd(backend='yum', arch=None, builddeps=False, - repos=None, lookaside=None): - if backend == 'dnf' and builddeps: - raise RuntimeError('dnf repoclosure does not support builddeps') - +def get_repoclosure_cmd(backend='yum', arch=None, repos=None, lookaside=None): cmds = { 'yum': {'cmd': ['/usr/bin/repoclosure'], 'repoarg': '--repoid=%s', 'lookaside': '--lookaside=%s'}, 'dnf': {'cmd': ['dnf', 'repoclosure'], 'repoarg': '--repo=%s', 'lookaside': '--repo=%s'}, @@ -39,9 +35,6 @@ def get_repoclosure_cmd(backend='yum', arch=None, builddeps=False, for i in force_list(arch or []): cmd.append("--arch=%s" % i) - if builddeps: - cmd.append("--builddeps") - repos = repos or {} for repo_id, repo_path in repos.iteritems(): cmd.append("--repofrompath=%s,%s" % (repo_id, _to_url(repo_path))) diff --git a/tests/test_repoclosure_wrapper.py b/tests/test_repoclosure_wrapper.py index 4a6213dd..4b670369 100755 --- a/tests/test_repoclosure_wrapper.py +++ b/tests/test_repoclosure_wrapper.py @@ -36,13 +36,11 @@ class RepoclosureWrapperTestCase(unittest.TestCase): repos = {'my-repo': '/mnt/koji/repo'} lookaside = {'fedora': 'http://kojipkgs.fp.o/repo'} - cmd = rc.get_repoclosure_cmd(arch='x86_64', builddeps=True, - repos=repos, lookaside=lookaside) + cmd = rc.get_repoclosure_cmd(arch='x86_64', repos=repos, lookaside=lookaside) self.assertEqual(cmd[0], '/usr/bin/repoclosure') self.assertItemsEqual( cmd[1:], ['--arch=x86_64', - '--builddeps', '--repofrompath=my-repo,file:///mnt/koji/repo', '--repofrompath=fedora,http://kojipkgs.fp.o/repo', '--repoid=my-repo', diff --git a/tests/test_test_phase.py b/tests/test_test_phase.py index dcf47447..8ee738c3 100644 --- a/tests/test_test_phase.py +++ b/tests/test_test_phase.py @@ -198,8 +198,7 @@ class TestRepoclosure(PungiTestCase): mock.call(backend='yum', arch=['x86_64', 'noarch'], lookaside={}, repos=self._get_repo('Server', 'x86_64')), mock.call(backend='yum', arch=['x86_64', 'noarch'], lookaside={}, - repos=self._get_repo('Everything', 'x86_64')), - mock.call(backend='yum', arch={'x86_64', 'amd64', 'noarch'}, builddeps=True, repos=all_repos)]) + repos=self._get_repo('Everything', 'x86_64'))]) @mock.patch('pungi.wrappers.repoclosure.get_repoclosure_cmd') @mock.patch('pungi.phases.test.run') @@ -224,8 +223,7 @@ class TestRepoclosure(PungiTestCase): mock.call(backend='dnf', arch=['x86_64', 'noarch'], lookaside={}, repos=self._get_repo('Server', 'x86_64')), mock.call(backend='dnf', arch=['x86_64', 'noarch'], lookaside={}, - repos=self._get_repo('Everything', 'x86_64')), - mock.call(backend='dnf', arch={'x86_64', 'amd64', 'noarch'}, builddeps=True, repos=all_repos)]) + repos=self._get_repo('Everything', 'x86_64'))]) if __name__ == "__main__":