From 633e78249c3a39a05ef84e47477b018eb0029b24 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Jul 25 2016 06:31:42 +0000 Subject: [PATCH 1/2] use shutil.copy() instead of exec'ing cp --- diff --git a/rpmfluff.py b/rpmfluff.py index ca82df1..1a36e15 100644 --- a/rpmfluff.py +++ b/rpmfluff.py @@ -1211,7 +1211,7 @@ class YumRepoBuild: # Now assemble into a yum repo: for pkg in self.rpmBuilds: for arch in arches: - check_call(['cp', pkg.get_built_rpm(arch), self.repoDir]) + shutil.copy(pkg.get_built_rpm(arch), self.repoDir) check_call(["createrepo_c", self.repoDir]) From 8d49535e2db59d3c2b5658be70ddd4bc84bf0474 Mon Sep 17 00:00:00 2001 From: Dan Callaghan Date: Jul 25 2016 06:33:38 +0000 Subject: [PATCH 2/2] include all subpackages in yum repos --- diff --git a/rpmfluff.py b/rpmfluff.py index 1a36e15..cab4dda 100644 --- a/rpmfluff.py +++ b/rpmfluff.py @@ -1211,7 +1211,8 @@ class YumRepoBuild: # Now assemble into a yum repo: for pkg in self.rpmBuilds: for arch in arches: - shutil.copy(pkg.get_built_rpm(arch), self.repoDir) + for subpackage in pkg.get_subpackage_names(): + shutil.copy(pkg.get_built_rpm(arch, name=subpackage), self.repoDir) check_call(["createrepo_c", self.repoDir]) @@ -1827,6 +1828,22 @@ class YumRepoBuildTests(unittest.TestCase): for pkg in repo.rpmBuilds: shutil.rmtree(pkg.get_base_dir()) + @unittest.skipIf(not shutil.which('createrepo_c'), 'createrepo_c not found in PATH') + def test_includes_subpackages(self): + package = SimpleRpmBuild('test-package', '0.1', '1') + package.add_devel_subpackage() + package.add_subpackage('python') + repo = YumRepoBuild([package]) + self.addCleanup(shutil.rmtree, package.get_base_dir()) + self.addCleanup(shutil.rmtree, repo.repoDir) + + repo.make(expectedArch) + + self.assert_is_dir(os.path.join(repo.repoDir, 'repodata')) + self.assert_is_file(os.path.join(repo.repoDir, 'test-package-0.1-1.%s.rpm' % expectedArch)) + self.assert_is_file(os.path.join(repo.repoDir, 'test-package-devel-0.1-1.%s.rpm' % expectedArch)) + self.assert_is_file(os.path.join(repo.repoDir, 'test-package-python-0.1-1.%s.rpm' % expectedArch)) + @unittest.skipIf(expectedArch != 'x86_64' or not shutil.which("createrepo_c"), 'host arch is not x86_64 or createrepo_c not found in PATH') def test_multiple_arches(self):