diff --git a/pungi/gather_dnf.py b/pungi/gather_dnf.py index 62de26c3..5b905638 100644 --- a/pungi/gather_dnf.py +++ b/pungi/gather_dnf.py @@ -334,7 +334,6 @@ class Gather(GatherBase): exclude = set() for pattern in excludes: with Profiler("Gather._apply_excludes():exclude"): - # TODO: debug if pattern.endswith(".+"): pkgs = self.q_multilib_binary_packages.filter( name__glob=pattern[:-2], arch__neq='noarch', @@ -343,6 +342,10 @@ class Gather(GatherBase): pkgs = self.q_source_packages.filter( name__glob=pattern[:-4], reponame__neq=self.opts.lookaside_repos) + elif pungi.util.pkg_is_debug(pattern): + pkgs = self.q_debug_packages.filter( + name__glob=pattern, + reponame__neq=self.opts.lookaside_repos) else: pkgs = self.q_binary_packages.filter( name__glob=pattern, @@ -366,6 +369,8 @@ class Gather(GatherBase): self._filter_queue('q_multilib_binary_packages', exclude) self._filter_queue('q_noarch_binary_packages', exclude) self._filter_queue('q_source_packages', exclude) + self._filter_queue('q_native_debug_packages', exclude) + self._filter_queue('q_multilib_debug_packages', exclude) @Profiler("Gather.add_initial_packages()") def add_initial_packages(self, pattern_list): diff --git a/tests/test_gather.py b/tests/test_gather.py index 0b015abe..5aa09ce7 100644 --- a/tests/test_gather.py +++ b/tests/test_gather.py @@ -174,6 +174,61 @@ class DepsolvingBase(object): ]) self.assertItemsEqual(pkg_map["debuginfo"], []) + def test_bash_exclude_debuginfo(self): + packages = [ + 'dummy-bash', + '-dummy-bash-debuginfo', + '-dummy-bash-debugsource', + ] + pkg_map = self.go(packages, None, greedy="none") + + self.assertItemsEqual(pkg_map["rpm"], [ + "dummy-basesystem-10.0-6.noarch.rpm", + "dummy-bash-4.2.37-6.x86_64.rpm", + "dummy-filesystem-4.2.37-6.x86_64.rpm", + "dummy-glibc-2.14-5.x86_64.rpm", + "dummy-glibc-common-2.14-5.x86_64.rpm", + ]) + self.assertItemsEqual(pkg_map["srpm"], [ + "dummy-basesystem-10.0-6.src.rpm", + "dummy-bash-4.2.37-6.src.rpm", + "dummy-filesystem-4.2.37-6.src.rpm", + "dummy-glibc-2.14-5.src.rpm", + ]) + self.assertItemsEqual(pkg_map["debuginfo"], [ + "dummy-glibc-debuginfo-2.14-5.x86_64.rpm", + "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm", + ]) + + def test_bash_multilib_exclude_debuginfo(self): + packages = [ + 'dummy-bash.+', + '-dummy-bash-debuginfo', + '-dummy-bash-debugsource', + ] + pkg_map = self.go(packages, None, greedy="none") + + self.assertItemsEqual(pkg_map["rpm"], [ + "dummy-basesystem-10.0-6.noarch.rpm", + "dummy-bash-4.2.37-6.i686.rpm", + "dummy-filesystem-4.2.37-6.x86_64.rpm", + "dummy-glibc-2.14-5.i686.rpm", + "dummy-glibc-2.14-5.x86_64.rpm", + "dummy-glibc-common-2.14-5.x86_64.rpm", + ]) + self.assertItemsEqual(pkg_map["srpm"], [ + "dummy-basesystem-10.0-6.src.rpm", + "dummy-bash-4.2.37-6.src.rpm", + "dummy-filesystem-4.2.37-6.src.rpm", + "dummy-glibc-2.14-5.src.rpm", + ]) + self.assertItemsEqual(pkg_map["debuginfo"], [ + "dummy-glibc-debuginfo-2.14-5.i686.rpm", + "dummy-glibc-debuginfo-2.14-5.x86_64.rpm", + "dummy-glibc-debuginfo-common-2.14-5.i686.rpm", + "dummy-glibc-debuginfo-common-2.14-5.x86_64.rpm", + ]) + def test_bash(self): packages = [ "dummy-bash",