2 commits - createrepo/readMetadata.py
[email protected] Mon, 31 Oct 2016 10:41:10 +0000 (UTC)
| Newsgroups | gmane.linux.rpm.metadata |
|---|---|
| Message-ID | <[email protected]> |
createrepo/readMetadata.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) New commits: commit 65bcc31251c544c353b63f67e686bdce1f6c37e0 Merge: 0904d34 cb0ee67 Author: Valentina Mukhamedzhanova <[email protected]> Date: Mon Oct 31 11:34:27 2016 +0100 Merge pull request #1 from dmnks/bz1174380 Fix --update for pkgs with same nevra. BZ 1174380 commit cb0ee67fbe6ee63951aa7030ecc318c276d537c7 Author: Michal Domonkos <[email protected]> Date: Fri Sep 16 13:49:32 2016 +0200 Fix --update for pkgs with same nevra. BZ 1174380 Make sure we don't mess up the primary file on --update by writing duplicate entries to it when the repo contains multiple rpms with the same nevra in their headers. diff --git a/createrepo/readMetadata.py b/createrepo/readMetadata.py index 30781da..ad70895 100644 --- a/createrepo/readMetadata.py +++ b/createrepo/readMetadata.py @@ -108,7 +108,16 @@ class MetadataIndex(object): """ if relpath in self.pkg_tups_by_path: pkgtup = self.pkg_tups_by_path[relpath] - return self._repo.sack.searchPkgTuple(pkgtup)[0] + pos = self._repo.sack.searchPkgTuple(pkgtup) + if len(pos) == 1: + return pos[0] + elif len(pos) > 1: + # Multiple matches for this pkgtup so look at their relpath + if self.opts.get('verbose'): + print _("Warning: Duplicate nevra detected for %s") % relpath + for po in pos: + if po.relativepath == relpath: + return po return None