Merge lp:~ilidrissi.amine/software-center/addons-provides into lp:software-center

Proposed by Mohamed Amine Ilidrissi
Status: Merged
Merged at revision: 1082
Proposed branch: lp:~ilidrissi.amine/software-center/addons-provides
Merge into: lp:software-center
Diff against target: 60 lines (+23/-2)
2 files modified
debian/changelog (+5/-1)
softwarecenter/apt/aptcache.py (+18/-1)
To merge this branch: bzr merge lp:~ilidrissi.amine/software-center/addons-provides
Reviewer Review Type Date Requested Status
software-store-developers Pending
Review via email: mp+33903@code.launchpad.net

Description of the change

This branch changes the add-on implementation: packages that enhances a package that is provided by the application are now add-ons.

To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'debian/changelog'
2--- debian/changelog 2010-08-27 08:46:56 +0000
3+++ debian/changelog 2010-08-27 13:19:39 +0000
4@@ -9,7 +9,11 @@
5 * softwarecenter/apt/aptcache.py:
6 - don't crash on encountering broken packages while getting deps
7
8- -- Michael Vogt <michael.vogt@ubuntu.com> Fri, 27 Aug 2010 09:57:53 +0200
9+ [ Mohamed Amine IL Idrissi ]
10+ * softwarecenter/apt/aptcache.py: Packages that enhance a package that
11+ is provided by the main app are now add-ons (LP: #625252)
12+
13+ -- Mohamed Amine IL Idrissi <ilidrissiamine@gmail.com> Fri, 27 Aug 2010 13:10:54 +0000
14
15 software-center (2.1.14.1) maverick; urgency=low
16
17
18=== modified file 'softwarecenter/apt/aptcache.py'
19--- softwarecenter/apt/aptcache.py 2010-08-26 18:03:31 +0000
20+++ softwarecenter/apt/aptcache.py 2010-08-27 13:19:39 +0000
21@@ -220,7 +220,11 @@
22 def get_enhances(self, pkg):
23 return self._get_depends_by_type_str(pkg, self.ENHANCES_TYPES)
24 def get_provides(self, pkg):
25- return self._get_depends_by_type_str(pkg, self.PROVIDES_TYPES)
26+ provides_list = pkg.candidate._cand.provides_list
27+ provides = []
28+ for provided in provides_list:
29+ provides.append(provided[0]) # the package name
30+ return provides
31
32 # reverse pkg relations
33 def get_rdepends(self, pkg):
34@@ -231,6 +235,12 @@
35 return self._get_rdepends_by_type(pkg, self.SUGGESTS_TYPES, False)
36 def get_renhances(self, pkg):
37 return self._get_rdepends_by_type(pkg, self.ENHANCES_TYPES, False)
38+ def get_renhances_lowlevel(self, pkg):
39+ renhances = []
40+ for dep in pkg.rev_depends_list:
41+ if dep.dep_type_untranslated == "Enhances":
42+ renhances.append(dep.parent_pkg.name)
43+ return renhances
44 def get_rprovides(self, pkg):
45 return self._get_rdepends_by_type(pkg, self.PROVIDES_TYPES, False)
46
47@@ -369,6 +379,13 @@
48 renhances = self.get_renhances(pkg)
49 LOG.debug("renhances: %s" % renhances)
50 addons_sug += renhances
51+ provides = self.get_provides(pkg)
52+ LOG.debug("provides: %s" % provides)
53+ for provide in provides:
54+ virtual_pkg = self._cache._cache[provide]
55+ renhances = self.get_renhances_lowlevel(virtual_pkg)
56+ LOG.debug("renhances of %s: %s" % (provide, renhances))
57+ addons_sug += renhances
58
59 # get more addons, the idea is that if a package foo-data
60 # just depends on foo we want to get the info about

Subscribers

People subscribed via source and target branches