Merge lp:~albertomilone/jockey/pkg-version-ubuntu into lp:~ubuntu-core-dev/jockey/ubuntu

Proposed by Alberto Milone
Status: Needs review
Proposed branch: lp:~albertomilone/jockey/pkg-version-ubuntu
Merge into: lp:~ubuntu-core-dev/jockey/ubuntu
Diff against target: 201 lines (+54/-3)
10 files modified
data/handlers/nvidia.py (+7/-0)
debian/changelog (+14/-1)
gtk/jockey-gtk (+1/-1)
jockey/backend.py (+1/-0)
jockey/handlers.py (+9/-0)
jockey/oslib.py (+11/-0)
jockey/ui.py (+5/-1)
kde/jockey-kde (+2/-0)
tests/backend.py (+2/-0)
tests/handlers.py (+2/-0)
To merge this branch: bzr merge lp:~albertomilone/jockey/pkg-version-ubuntu
Reviewer Review Type Date Requested Status
Martin Pitt Disapprove
Review via email: mp+23191@code.launchpad.net

Description of the change

This branch completes support for retrieving the package version (this is not mandatory and is currently used only by the nvidia handler) which, together with the code in the pkg-version branch, allows us to fix LP: #543176

To post a comment you must log in.
Revision history for this message
Martin Pitt (pitti) wrote :
review: Disapprove

Unmerged revisions

415. By Alberto Milone

* jockey/oslib.py:
  - Implement the package_version() method so that we
    can get the version of a package from apt.
* data/handlers/nvidia.py:
  - Implement the pkg_version() method so that we can
    show the version of the driver instead of being
    limited to the information carried by the version
    attribute. For example, in the case of the
    nvidia-current package, self.version is an
    unlocalised and therefore rather confusing string
    i.e. current when it should really be something
    like 195 (LP: #543176).

414. By Alberto Milone

Merge from trunk

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'data/handlers/nvidia.py'
--- data/handlers/nvidia.py 2010-04-10 21:01:07 +0000
+++ data/handlers/nvidia.py 2010-04-11 19:12:20 +0000
@@ -40,6 +40,7 @@
4040
41 self._module_alias = 'nvidia'41 self._module_alias = 'nvidia'
42 self._recommended = None42 self._recommended = None
43 self._pkg_version = None
43 self._do_rebind = False44 self._do_rebind = False
44 self._alternatives = Alternatives('gl_conf')45 self._alternatives = Alternatives('gl_conf')
45 self.version = version46 self.version = version
@@ -115,6 +116,12 @@
115 self._recommended = self.package == nd.selectDriver()116 self._recommended = self.package == nd.selectDriver()
116 return self._recommended117 return self._recommended
117118
119 def pkg_version(self):
120 if self._pkg_version == None:
121 self._pkg_version = OSLib.inst.package_version(self.package)
122 self._pkg_version = self._pkg_version and self._pkg_version.split('.')[0]
123 return self._pkg_version
124
118 def enabled(self):125 def enabled(self):
119 # See if nvidia (e.g. nvidia-current) is the current alternative126 # See if nvidia (e.g. nvidia-current) is the current alternative
120 target_alternative = self._alternatives.get_alternative_by_name(self.package)127 target_alternative = self._alternatives.get_alternative_by_name(self.package)
121128
=== modified file 'debian/changelog'
--- debian/changelog 2010-04-10 21:01:07 +0000
+++ debian/changelog 2010-04-11 19:12:20 +0000
@@ -6,8 +6,21 @@
6 its alias are not blacklisted. This prevents Jockey from claiming6 its alias are not blacklisted. This prevents Jockey from claiming
7 that the installation of nvidia driver failed when when it7 that the installation of nvidia driver failed when when it
8 didn't (LP: #552653).8 didn't (LP: #552653).
9 * Get support for pkg_version() from trunk.
10 * jockey/oslib.py:
11 - Implement the package_version() method so that we
12 can get the version of a package from apt.
13 * data/handlers/nvidia.py:
14 - Implement the pkg_version() method so that we can
15 show the version of the driver instead of being
16 limited to the information carried by the "version"
17 attribute. For example, in the case of the
18 "nvidia-current" package, self.version is an
19 unlocalised and therefore rather confusing string
20 i.e. "current" when it should really be something
21 like "195" (LP: #543176).
922
10 -- Alberto Milone <alberto.milone@canonical.com> Sat, 10 Apr 2010 22:54:28 +020023 -- Alberto Milone <alberto.milone@canonical.com> Sun, 11 Apr 2010 19:12:37 +0200
1124
12jockey (0.5.8-0ubuntu6) lucid; urgency=low25jockey (0.5.8-0ubuntu6) lucid; urgency=low
1326
1427
=== modified file 'gtk/jockey-gtk'
--- gtk/jockey-gtk 2010-02-02 00:21:04 +0000
+++ gtk/jockey-gtk 2010-04-11 19:12:20 +0000
@@ -181,7 +181,7 @@
181 indicator = jockey.ui.AbstractUI.ui_notification(self, None, None)181 indicator = jockey.ui.AbstractUI.ui_notification(self, None, None)
182 print 'GTK ui_notification: got appindicator'182 print 'GTK ui_notification: got appindicator'
183 menu = gtk.Menu()183 menu = gtk.Menu()
184 item = gtk.MenuItem('Install Drivers')184 item = gtk.MenuItem(self.string_install_drivers)
185 menu.append(item)185 menu.append(item)
186 item.show()186 item.show()
187 item.connect('activate', lambda widget: self.ui_show_main())187 item.connect('activate', lambda widget: self.ui_show_main())
188188
=== modified file 'jockey/backend.py'
--- jockey/backend.py 2010-03-11 16:32:22 +0000
+++ jockey/backend.py 2010-04-11 19:12:20 +0000
@@ -237,6 +237,7 @@
237 'changed': str(h.changed()),237 'changed': str(h.changed()),
238 'recommended': str(h.recommended()),238 'recommended': str(h.recommended()),
239 'announce': str(h.announce),239 'announce': str(h.announce),
240 'pkg_version': str(h.pkg_version()),
240 }241 }
241 for f in ['description', 'rationale', 'can_change']:242 for f in ['description', 'rationale', 'can_change']:
242 v = getattr(h, f)()243 v = getattr(h, f)()
243244
=== modified file 'jockey/handlers.py'
--- jockey/handlers.py 2010-02-02 00:21:04 +0000
+++ jockey/handlers.py 2010-04-11 19:12:20 +0000
@@ -77,6 +77,7 @@
77 self.version = None77 self.version = None
78 self.repository = None78 self.repository = None
79 self._recommended = False79 self._recommended = False
80 self._pkg_version = None
8081
81 def _package_defaults(self):82 def _package_defaults(self):
82 '''Set fallback name/description/freeness from package.'''83 '''Set fallback name/description/freeness from package.'''
@@ -190,6 +191,14 @@
190 version of a driver is provided, then it should return False.191 version of a driver is provided, then it should return False.
191 '''192 '''
192 return self._recommended193 return self._recommended
194
195 def pkg_version(self):
196 '''Return the package version of a certain driver.
197
198 This method should return the package version retrieved by the package
199 manager.
200 '''
201 return self._pkg_version
193 202
194 def available(self):203 def available(self):
195 '''Return if the conditions to use this handler on the system are met.204 '''Return if the conditions to use this handler on the system are met.
196205
=== modified file 'jockey/oslib.py'
--- jockey/oslib.py 2010-03-22 14:55:16 +0000
+++ jockey/oslib.py 2010-04-11 19:12:20 +0000
@@ -172,6 +172,17 @@
172172
173 raise ValueError, 'package %s does not exist' % package173 raise ValueError, 'package %s does not exist' % package
174174
175 def package_version(self, package):
176 '''Return the version of a given package.'''
177
178 out = self._apt_show(package)
179 if out:
180 for l in out.splitlines():
181 if l.startswith('Version:'):
182 s = l.split()[-1]
183 return s.strip()
184 return None
185
175 def package_files(self, package):186 def package_files(self, package):
176 '''Return a list of files shipped by a package.187 '''Return a list of files shipped by a package.
177 188
178189
=== modified file 'jockey/ui.py'
--- jockey/ui.py 2010-03-26 16:41:03 +0000
+++ jockey/ui.py 2010-04-11 19:12:20 +0000
@@ -170,6 +170,7 @@
170 # this is used when one version of a driver is recommended over others170 # this is used when one version of a driver is recommended over others
171 self.string_recommended = self._('Recommended')171 self.string_recommended = self._('Recommended')
172 self.string_license_dialog_title = self._('License Text for Device Driver')172 self.string_license_dialog_title = self._('License Text for Device Driver')
173 self.string_install_drivers = self._('Install Drivers')
173174
174 def main_window_title(self):175 def main_window_title(self):
175 '''Return an appropriate translated window title.176 '''Return an appropriate translated window title.
@@ -242,7 +243,10 @@
242 result = handler_info['name']243 result = handler_info['name']
243 result = self._(result)244 result = self._(result)
244 if 'version' in handler_info:245 if 'version' in handler_info:
245 result += ' (%s)' % (self._('version %s') % handler_info['version'])246 if 'pkg_version' in handler_info:
247 result += ' (%s)' % (self._('version %s') % handler_info['pkg_version'])
248 else:
249 result += ' (%s)' % (self._('version %s') % handler_info['version'])
246 if bool(handler_info['recommended']):250 if bool(handler_info['recommended']):
247 result += ' [%s]' % self.string_recommended251 result += ' [%s]' % self.string_recommended
248 return result252 return result
249253
=== modified file 'kde/jockey-kde'
--- kde/jockey-kde 2010-03-20 21:36:17 +0000
+++ kde/jockey-kde 2010-04-11 19:12:20 +0000
@@ -94,6 +94,8 @@
9494
95 # connect signals95 # connect signals
96 self.mw.connect(self.mw.buttonBox, SIGNAL('rejected()'), self.on_buttonBox_rejected)96 self.mw.connect(self.mw.buttonBox, SIGNAL('rejected()'), self.on_buttonBox_rejected)
97 self.mw.connect(self.mw, SIGNAL('rejected()'), self.on_buttonBox_rejected) # A minor hack, but since we now exit with sys.exit( ) - we will avoid a Segmentation fault
98 # This is not the best fix, but is 100x better than no fix.
97 self.mw.connect(self.mw.buttonBox, SIGNAL('helpRequested()'),99 self.mw.connect(self.mw.buttonBox, SIGNAL('helpRequested()'),
98 self.on_buttonBox_helpRequested)100 self.on_buttonBox_helpRequested)
99101
100102
=== modified file 'tests/backend.py'
--- tests/backend.py 2009-09-21 11:21:44 +0000
+++ tests/backend.py 2010-04-11 19:12:20 +0000
@@ -122,6 +122,7 @@
122 'changed': 'False',122 'changed': 'False',
123 'recommended': 'False',123 'recommended': 'False',
124 'announce': 'True',124 'announce': 'True',
125 'pkg_version': 'None',
125 })126 })
126127
127 def test_set_enabled(self):128 def test_set_enabled(self):
@@ -333,6 +334,7 @@
333 'package': 'mesa-vanilla',334 'package': 'mesa-vanilla',
334 'recommended': 'False',335 'recommended': 'False',
335 'announce': 'True',336 'announce': 'True',
337 'pkg_version': 'None',
336 })338 })
337339
338 def test_handler_files(self):340 def test_handler_files(self):
339341
=== modified file 'tests/handlers.py'
--- tests/handlers.py 2009-04-01 08:26:35 +0000
+++ tests/handlers.py 2010-04-11 19:12:20 +0000
@@ -132,6 +132,7 @@
132 self.assert_(h.free())132 self.assert_(h.free())
133 self.assert_(h.enabled())133 self.assert_(h.enabled())
134 self.assertEqual(h.recommended(), False)134 self.assertEqual(h.recommended(), False)
135 self.assertEqual(h.pkg_version(), None)
135 self.assert_(h.used())136 self.assert_(h.used())
136 self.assertEqual(h.available(), None)137 self.assertEqual(h.available(), None)
137 138
@@ -166,6 +167,7 @@
166 self.failIf(h.free())167 self.failIf(h.free())
167 self.assert_(h.enabled())168 self.assert_(h.enabled())
168 self.assertEqual(h.recommended(), False)169 self.assertEqual(h.recommended(), False)
170 self.assertEqual(h.pkg_version(), None)
169 self.failIf(h.used())171 self.failIf(h.used())
170 self.assertEqual(h.available(), None)172 self.assertEqual(h.available(), None)
171173

Subscribers

People subscribed via source and target branches

to all changes: