Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/portage:master commit in: pym/repoman/modules/vcs/, pym/repoman/modules/vcs/cvs/, pym/repoman/
Date: Sun, 01 May 2016 03:32:33
Message-Id: 1462073527.d715028a686513979e6fb2b270df5f825d30cb65.zmedico@gentoo
1 commit: d715028a686513979e6fb2b270df5f825d30cb65
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Sun May 1 03:31:04 2016 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Sun May 1 03:32:07 2016 +0000
6 URL: https://gitweb.gentoo.org/proj/portage.git/commit/?id=d715028a
7
8 repoman: handle removed packages in vcs_files_to_cps (bug 546010)
9
10 X-Gentoo-Bug: 546010
11 X-Gentoo-Bug-URL: https://bugs.gentoo.org/show_bug.cgi?id=546010
12
13 pym/repoman/actions.py | 1 +
14 pym/repoman/modules/vcs/cvs/changes.py | 1 +
15 pym/repoman/modules/vcs/vcs.py | 7 +++++--
16 pym/repoman/scanner.py | 1 +
17 4 files changed, 8 insertions(+), 2 deletions(-)
18
19 diff --git a/pym/repoman/actions.py b/pym/repoman/actions.py
20 index 643e24c..4144b45 100644
21 --- a/pym/repoman/actions.py
22 +++ b/pym/repoman/actions.py
23 @@ -370,6 +370,7 @@ class Actions(object):
24 committer_name = utilities.get_committer_name(env=self.repoman_settings)
25 for x in sorted(vcs_files_to_cps(
26 chain(myupdates, mymanifests, myremoved),
27 + self.repo_settings.repodir,
28 self.scanner.repolevel, self.scanner.reposplit, self.scanner.categories)):
29 catdir, pkgdir = x.split("/")
30 checkdir = self.repo_settings.repodir + "/" + x
31
32 diff --git a/pym/repoman/modules/vcs/cvs/changes.py b/pym/repoman/modules/vcs/cvs/changes.py
33 index 3e2f97a..c3d880b 100644
34 --- a/pym/repoman/modules/vcs/cvs/changes.py
35 +++ b/pym/repoman/modules/vcs/cvs/changes.py
36 @@ -112,6 +112,7 @@ class Changes(ChangesBase):
37 if updates or removed:
38 for x in sorted(vcs_files_to_cps(
39 chain(updates, removed, manifests),
40 + self.repo_settings.repodir,
41 scanner.repolevel, scanner.reposplit, scanner.categories)):
42 self.repoman_settings["O"] = os.path.join(self.repo_settings.repodir, x)
43 digestgen(mysettings=self.repoman_settings, myportdb=self.repo_settings.portdb)
44
45 diff --git a/pym/repoman/modules/vcs/vcs.py b/pym/repoman/modules/vcs/vcs.py
46 index c8cb55d..e9d45d4 100644
47 --- a/pym/repoman/modules/vcs/vcs.py
48 +++ b/pym/repoman/modules/vcs/vcs.py
49 @@ -96,7 +96,7 @@ def FindVCS(cwd=None):
50 return outvcs
51
52
53 -def vcs_files_to_cps(vcs_file_iter, repolevel, reposplit, categories):
54 +def vcs_files_to_cps(vcs_file_iter, repodir, repolevel, reposplit, categories):
55 """
56 Iterate over the given modified file paths returned from the vcs,
57 and return a frozenset containing category/pn strings for each
58 @@ -127,7 +127,10 @@ def vcs_files_to_cps(vcs_file_iter, repolevel, reposplit, categories):
59 if len(f_split) > 3 and f_split[1] in categories:
60 modified_cps.append("/".join(f_split[1:3]))
61
62 - return frozenset(modified_cps)
63 + # Exclude packages that have been removed, since calling
64 + # code assumes that the packages exist.
65 + return frozenset(x for x in frozenset(modified_cps)
66 + if os.path.exists(os.path.join(repodir, x)))
67
68
69 def vcs_new_changed(relative_path, mychanged, mynew):
70
71 diff --git a/pym/repoman/scanner.py b/pym/repoman/scanner.py
72 index e383c8d..fd07209 100644
73 --- a/pym/repoman/scanner.py
74 +++ b/pym/repoman/scanner.py
75 @@ -177,6 +177,7 @@ class Scanner(object):
76 if self.options.if_modified == "y":
77 self.effective_scanlist = sorted(vcs_files_to_cps(
78 chain(self.changed.changed, self.changed.new, self.changed.removed),
79 + self.repo_settings.repodir,
80 self.repolevel, self.reposplit, self.categories))
81
82 # Create our kwargs dict here to initialize the plugins with