Merge lp:~barry/computer-janitor/545306-dialog into lp:computer-janitor
- 545306-dialog
- Merge into trunk
Proposed by
Barry Warsaw
Status: | Merged |
---|---|
Approved by: | Barry Warsaw |
Approved revision: | 236 |
Merged at revision: | 235 |
Proposed branch: | lp:~barry/computer-janitor/545306-dialog |
Merge into: | lp:computer-janitor |
Diff against target: |
869 lines (+263/-105) 15 files modified
computerjanitorapp/__init__.py (+1/-1) computerjanitorapp/gtk/dialogs.py (+30/-2) computerjanitorapp/gtk/ui.py (+10/-3) computerjanitord/collector.py (+9/-1) computerjanitord/errors.py (+16/-6) computerjanitord/tests/test_collector.py (+43/-5) debian/changelog (+8/-1) po/POTFILES.in (+1/-1) po/computerjanitor.pot (+24/-14) po/es.po (+24/-14) po/fi.po (+24/-14) po/fr.po (+24/-14) po/ja.po (+24/-14) po/pl.po (+24/-14) setup.py (+1/-1) |
To merge this branch: | bzr merge lp:~barry/computer-janitor/545306-dialog |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Barry Warsaw | Approve | ||
Review via email: mp+25691@code.launchpad.net |
Commit message
Description of the change
Might as well walk the walk and get this code reviewed before I merge it into trunk.
This fixes bug 545306 so that a dialog is displayed in the gtk version when another package manager such as Synaptic is running. This instead of crashing or (just) printing a traceback to the log file.
To post a comment you must log in.
Revision history for this message
Barry Warsaw (barry) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'computerjanitorapp/__init__.py' |
2 | --- computerjanitorapp/__init__.py 2010-02-09 21:24:21 +0000 |
3 | +++ computerjanitorapp/__init__.py 2010-05-20 13:55:46 +0000 |
4 | @@ -23,7 +23,7 @@ |
5 | ] |
6 | |
7 | |
8 | -__version__ = '2.0' |
9 | +__version__ = '2.0.1' |
10 | |
11 | |
12 | # Set up gettext. |
13 | |
14 | === renamed file 'computerjanitorapp/gtk/areyousure.py' => 'computerjanitorapp/gtk/dialogs.py' |
15 | --- computerjanitorapp/gtk/areyousure.py 2010-04-15 16:09:46 +0000 |
16 | +++ computerjanitorapp/gtk/dialogs.py 2010-05-20 13:55:46 +0000 |
17 | @@ -19,6 +19,7 @@ |
18 | __metaclass__ = type |
19 | __all__ = [ |
20 | 'AreYouSure', |
21 | + 'CleanupProblem', |
22 | ] |
23 | |
24 | |
25 | @@ -31,12 +32,16 @@ |
26 | NL = '\n' |
27 | |
28 | |
29 | -class AreYouSure: |
30 | - """Confirmation of destructive actions.""" |
31 | +class DialogBase: |
32 | + """Base class for dialogs.""" |
33 | |
34 | def __init__(self, ui): |
35 | self._ui = ui |
36 | |
37 | + |
38 | +class AreYouSure(DialogBase): |
39 | + """Confirmation of destructive actions.""" |
40 | + |
41 | def verify(self): |
42 | """Confirm package removal.""" |
43 | # Start by getting all the active, non-ignored cruft. These are the |
44 | @@ -77,3 +82,26 @@ |
45 | response = dialog.run() |
46 | dialog.hide() |
47 | return response == gtk.RESPONSE_YES |
48 | + |
49 | + |
50 | +class CleanupProblem(DialogBase): |
51 | + """Some problem occurred during cleanup. |
52 | + |
53 | + This is almost definitely caused by another package manager running at the |
54 | + same time. |
55 | + """ |
56 | + |
57 | + def run(self): |
58 | + """Show the dialog and wait for confirmation.""" |
59 | + message = _('System clean up could not complete. ' |
60 | + 'Be sure no other package manager such as Synaptic or ' |
61 | + 'Update Manager is running.') |
62 | + dialog = gtk.MessageDialog( |
63 | + parent=self._ui.widgets['window'], |
64 | + type=gtk.MESSAGE_ERROR, |
65 | + buttons=gtk.BUTTONS_OK, |
66 | + message_format=message) |
67 | + dialog.set_title(_('System clean up failure')) |
68 | + dialog.show_all() |
69 | + dialog.run() |
70 | + dialog.hide() |
71 | |
72 | === modified file 'computerjanitorapp/gtk/ui.py' |
73 | --- computerjanitorapp/gtk/ui.py 2010-04-15 16:09:46 +0000 |
74 | +++ computerjanitorapp/gtk/ui.py 2010-05-20 13:55:46 +0000 |
75 | @@ -24,13 +24,14 @@ |
76 | |
77 | import os |
78 | import gtk |
79 | +import sys |
80 | import dbus |
81 | import glib |
82 | import pango |
83 | import gobject |
84 | |
85 | from computerjanitorapp import __version__, setup_gettext |
86 | -from computerjanitorapp.gtk.areyousure import AreYouSure |
87 | +from computerjanitorapp.gtk.dialogs import AreYouSure, CleanupProblem |
88 | from computerjanitorapp.gtk.store import ( |
89 | ListStoreColumns, Store, optimize, unused) |
90 | from computerjanitorapp.utilities import format_size |
91 | @@ -505,9 +506,15 @@ |
92 | # Make various ui elements insensitive. |
93 | self.desensitize() |
94 | cleanable = [cruft for cruft, ispkg in self.get_cleanable_cruft()] |
95 | - # XXX 2010-03-08 barry: Do better than this. |
96 | def error(exception): |
97 | - print exception |
98 | + # XXX 2010-05-19 barry: This will (almost?) always be caused by |
99 | + # some other package manager already running, so if we get that |
100 | + # exception, display a (hopefully) useful dialog. I'm not sure |
101 | + # it's very helpful to display the low-level apt exception in a |
102 | + # dialog. `exception` will always be a DBusException; we won't |
103 | + # get the more useful PackageCleanupError. |
104 | + print >> sys.stderr, exception |
105 | + CleanupProblem(self).run() |
106 | self.working = False |
107 | def reply(): |
108 | pass |
109 | |
110 | === modified file 'computerjanitord/collector.py' |
111 | --- computerjanitord/collector.py 2010-03-16 14:43:33 +0000 |
112 | +++ computerjanitord/collector.py 2010-05-20 13:55:46 +0000 |
113 | @@ -27,7 +27,7 @@ |
114 | import logging |
115 | |
116 | from computerjanitor import PluginManager |
117 | -from computerjanitord.errors import DuplicateCruftError |
118 | +from computerjanitord.errors import DuplicateCruftError, PackageCleanupError |
119 | from computerjanitord.whitelist import Whitelist |
120 | |
121 | |
122 | @@ -147,6 +147,14 @@ |
123 | else: |
124 | try: |
125 | plugin.post_cleanup() |
126 | + except SystemError as error: |
127 | + # apt will raise a SystemError if some other package |
128 | + # manager is already running. Turn this into a dbus |
129 | + # derived exception so the client will be properly |
130 | + # informed. |
131 | + log.exception( |
132 | + 'plugin.post_cleanup(): {0}'.format(plugin)) |
133 | + raise PackageCleanupError(str(error)) |
134 | except: |
135 | log.exception( |
136 | 'plugin.post_cleanup(): {0}'.format(plugin)) |
137 | |
138 | === modified file 'computerjanitord/errors.py' |
139 | --- computerjanitord/errors.py 2010-03-30 19:20:11 +0000 |
140 | +++ computerjanitord/errors.py 2010-05-20 13:55:46 +0000 |
141 | @@ -32,11 +32,15 @@ |
142 | import computerjanitor |
143 | |
144 | |
145 | -class PermissionDeniedError(dbus.DBusException): |
146 | - """Permission denied by policy""" |
147 | - |
148 | - |
149 | -class CruftError(dbus.DBusException): |
150 | +class DBusServiceBaseException(computerjanitor.Exception, dbus.DBusException): |
151 | + """Base class exception for the Computer Janitor DBus service.""" |
152 | + |
153 | + |
154 | +class PermissionDeniedError(DBusServiceBaseException): |
155 | + """Permission denied by policy.""" |
156 | + |
157 | + |
158 | +class CruftError(DBusServiceBaseException): |
159 | """Cruft exceptions passed back to dbus client.""" |
160 | |
161 | _errmsg = None |
162 | @@ -60,7 +64,7 @@ |
163 | _errmsg = 'No such cruft: {0.cruft_name}' |
164 | |
165 | |
166 | -class LandmarkPackageError(computerjanitor.Exception): |
167 | +class LandmarkPackageError(DBusServiceBaseException): |
168 | """Base class for problems with the landmark packages.""" |
169 | |
170 | _errmsg = None |
171 | @@ -83,3 +87,9 @@ |
172 | """A landmark package is not downloadable.""" |
173 | |
174 | _errmsg = 'Landmark package {0.package} is not downloadable' |
175 | + |
176 | + |
177 | +class PackageCleanupError(DBusServiceBaseException): |
178 | + """Could not complete plugin post-cleanup.""" |
179 | + |
180 | + _errmsg = 'Post-cleanup exception' |
181 | |
182 | === modified file 'computerjanitord/tests/test_collector.py' |
183 | --- computerjanitord/tests/test_collector.py 2010-02-06 01:58:07 +0000 |
184 | +++ computerjanitord/tests/test_collector.py 2010-05-20 13:55:46 +0000 |
185 | @@ -24,15 +24,23 @@ |
186 | |
187 | import os |
188 | import shutil |
189 | +import apt_pkg |
190 | import tempfile |
191 | import unittest |
192 | +import pkg_resources |
193 | +import multiprocessing |
194 | |
195 | from computerjanitor.plugin import Plugin |
196 | from computerjanitord.collector import Collector |
197 | -from computerjanitord.errors import DuplicateCruftError |
198 | +from computerjanitord.errors import DuplicateCruftError, PackageCleanupError |
199 | from computerjanitord.tests.test_application import ApplicationTestSetupMixin |
200 | |
201 | |
202 | +LOCK_FILE = pkg_resources.resource_filename( |
203 | + 'computerjanitord.tests', |
204 | + os.path.join('data', 'var', 'lib', 'dpkg', 'status')) |
205 | + |
206 | + |
207 | class MockCruft: |
208 | """Mock cruft that supports the required `get_name()` interface.""" |
209 | |
210 | @@ -66,10 +74,23 @@ |
211 | return [] |
212 | |
213 | |
214 | +class LockingPlugin(Plugin): |
215 | + """All this plugin does is acquire a fake apt lock after cleanup.""" |
216 | + |
217 | + def get_cruft(self): |
218 | + return [] |
219 | + |
220 | + def post_cleanup(self): |
221 | + # If the lock cannot be acquired, an exception is raised. |
222 | + with apt_pkg.FileLock(LOCK_FILE): |
223 | + # Do something. |
224 | + pass |
225 | + |
226 | + |
227 | class MockPluginManager: |
228 | def __init__(self, app, plugin_dirs): |
229 | + # Ignore plugin_dirs |
230 | self.app = app |
231 | - # Ignore plugin_dirs |
232 | |
233 | def get_plugins(self): |
234 | shortnames = ('one', 'two', 'three') |
235 | @@ -77,9 +98,10 @@ |
236 | plugin = MockPlugin(prefix, shortnames) |
237 | plugin.set_application(self.app) |
238 | yield plugin |
239 | - plugin = SawAppPlugin() |
240 | - plugin.set_application(self.app) |
241 | - yield plugin |
242 | + for plugin_class in (SawAppPlugin, LockingPlugin): |
243 | + plugin = plugin_class() |
244 | + plugin.set_application(self.app) |
245 | + yield plugin |
246 | |
247 | |
248 | class MockCruftExtra(MockCruft): |
249 | @@ -149,6 +171,22 @@ |
250 | cruft_names = set(cruft.get_name() for cruft in self.collector.cruft) |
251 | self.assertEqual(cruft_keys, cruft_names) |
252 | |
253 | + def test_cleanup_lock(self): |
254 | + # Pretend we're running synaptic at the same time. We have to acquire |
255 | + # this fake-synaptic lock in a subprocess. |
256 | + lock_event = multiprocessing.Event() |
257 | + continue_event = multiprocessing.Event() |
258 | + class AptLockThread(multiprocessing.Process): |
259 | + def run(self): |
260 | + with apt_pkg.FileLock(LOCK_FILE): |
261 | + lock_event.set() |
262 | + continue_event.wait(1.0) |
263 | + apt_locker = AptLockThread() |
264 | + apt_locker.start() |
265 | + lock_event.wait(1.0) |
266 | + self.assertRaises(PackageCleanupError, self.collector.clean, []) |
267 | + continue_event.set() |
268 | + |
269 | |
270 | class TestDuplicateCruftCollector( |
271 | unittest.TestCase, ApplicationTestSetupMixin): |
272 | |
273 | === modified file 'debian/changelog' |
274 | --- debian/changelog 2010-04-15 16:13:29 +0000 |
275 | +++ debian/changelog 2010-05-20 13:55:46 +0000 |
276 | @@ -1,4 +1,11 @@ |
277 | -computer-janitor (2.0-0ubuntu6) lucid; urgency=low |
278 | +computer-janitor (2.0.1~ppa1) lucid; urgency=low |
279 | + |
280 | + * Display dialog in gtk version when another package manager is running, |
281 | + preventing package plugin post-cleanup from completing. (LP: #545306) |
282 | + |
283 | + -- Barry Warsaw <barry@canonical.com> Thu, 20 May 2010 09:36:15 -0400 |
284 | + |
285 | +computer-janitor (2.0~ppa0) lucid; urgency=low |
286 | |
287 | * Since CJ 2.0 won't make it into Lucid, do Maverick updates now. |
288 | (LP: #552777) |
289 | |
290 | === modified file 'po/POTFILES.in' |
291 | --- po/POTFILES.in 2010-04-01 17:33:15 +0000 |
292 | +++ po/POTFILES.in 2010-05-20 13:55:46 +0000 |
293 | @@ -1,6 +1,6 @@ |
294 | [encoding: UTF-8] |
295 | computerjanitorapp/gtk/main.py |
296 | -computerjanitorapp/gtk/areyousure.py |
297 | +computerjanitorapp/gtk/dialogs.py |
298 | computerjanitorapp/gtk/ui.py |
299 | computerjanitorapp/gtk/__init__.py |
300 | computerjanitorapp/gtk/store.py |
301 | |
302 | === modified file 'po/computerjanitor.pot' |
303 | --- po/computerjanitor.pot 2010-04-15 16:09:46 +0000 |
304 | +++ po/computerjanitor.pot 2010-05-20 13:55:46 +0000 |
305 | @@ -8,7 +8,7 @@ |
306 | msgstr "" |
307 | "Project-Id-Version: PACKAGE VERSION\n" |
308 | "Report-Msgid-Bugs-To: \n" |
309 | -"POT-Creation-Date: 2010-04-15 12:09-0400\n" |
310 | +"POT-Creation-Date: 2010-05-20 09:32-0400\n" |
311 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
312 | "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
313 | "Language-Team: LANGUAGE <LL@li.org>\n" |
314 | @@ -20,54 +20,64 @@ |
315 | #. that would require a richer interface to the dbus service, and |
316 | #. probably to the cruft plugin architecture underneath that. |
317 | #. |
318 | -#: ../computerjanitorapp/gtk/areyousure.py:49 |
319 | +#: ../computerjanitorapp/gtk/dialogs.py:54 |
320 | msgid "Are you sure you want to clean your system?" |
321 | msgstr "" |
322 | |
323 | -#: ../computerjanitorapp/gtk/areyousure.py:55 |
324 | -#: ../computerjanitorapp/gtk/areyousure.py:69 |
325 | +#: ../computerjanitorapp/gtk/dialogs.py:60 |
326 | +#: ../computerjanitorapp/gtk/dialogs.py:74 |
327 | msgid "Clean up" |
328 | msgstr "" |
329 | |
330 | -#: ../computerjanitorapp/gtk/areyousure.py:62 |
331 | +#: ../computerjanitorapp/gtk/dialogs.py:67 |
332 | msgid "<b>Software packages to remove: {packages}</b>." |
333 | msgstr "" |
334 | |
335 | -#: ../computerjanitorapp/gtk/areyousure.py:63 |
336 | +#: ../computerjanitorapp/gtk/dialogs.py:68 |
337 | msgid "" |
338 | "\n" |
339 | "Removing packages that are still in use can cause errors." |
340 | msgstr "" |
341 | |
342 | -#: ../computerjanitorapp/gtk/areyousure.py:66 |
343 | +#: ../computerjanitorapp/gtk/dialogs.py:71 |
344 | msgid "Remove packages" |
345 | msgstr "" |
346 | |
347 | -#: ../computerjanitorapp/gtk/areyousure.py:68 |
348 | +#: ../computerjanitorapp/gtk/dialogs.py:73 |
349 | msgid "Non-package items to remove: {others}." |
350 | msgstr "" |
351 | |
352 | -#: ../computerjanitorapp/gtk/ui.py:48 |
353 | +#: ../computerjanitorapp/gtk/dialogs.py:96 |
354 | +msgid "" |
355 | +"System clean up could not complete. Be sure no other package manager such as " |
356 | +"Synaptic or Update Manager is running." |
357 | +msgstr "" |
358 | + |
359 | +#: ../computerjanitorapp/gtk/dialogs.py:104 |
360 | +msgid "System clean up failure" |
361 | +msgstr "" |
362 | + |
363 | +#: ../computerjanitorapp/gtk/ui.py:49 |
364 | msgid "Package will be <b>removed</b>." |
365 | msgstr "" |
366 | |
367 | -#: ../computerjanitorapp/gtk/ui.py:49 |
368 | +#: ../computerjanitorapp/gtk/ui.py:50 |
369 | msgid "Package will be <b>installed</b>." |
370 | msgstr "" |
371 | |
372 | -#: ../computerjanitorapp/gtk/ui.py:50 |
373 | +#: ../computerjanitorapp/gtk/ui.py:51 |
374 | msgid "File will be <b>removed</b>." |
375 | msgstr "" |
376 | |
377 | -#: ../computerjanitorapp/gtk/ui.py:264 |
378 | +#: ../computerjanitorapp/gtk/ui.py:265 |
379 | msgid "Size: {bytes}" |
380 | msgstr "" |
381 | |
382 | -#: ../computerjanitorapp/gtk/ui.py:346 |
383 | +#: ../computerjanitorapp/gtk/ui.py:347 |
384 | msgid "Processing {cruft}" |
385 | msgstr "" |
386 | |
387 | -#: ../computerjanitorapp/gtk/ui.py:469 |
388 | +#: ../computerjanitorapp/gtk/ui.py:470 |
389 | #: ../data/computer-janitor-gtk.desktop.in.h:2 |
390 | msgid "Computer Janitor" |
391 | msgstr "" |
392 | |
393 | === modified file 'po/es.po' |
394 | --- po/es.po 2010-04-15 16:09:46 +0000 |
395 | +++ po/es.po 2010-05-20 13:55:46 +0000 |
396 | @@ -9,7 +9,7 @@ |
397 | msgstr "" |
398 | "Project-Id-Version: PACKAGE VERSION\n" |
399 | "Report-Msgid-Bugs-To: \n" |
400 | -"POT-Creation-Date: 2010-04-15 12:09-0400\n" |
401 | +"POT-Creation-Date: 2010-05-20 09:32-0400\n" |
402 | "PO-Revision-Date: 2008-10-26 23:38+0100\n" |
403 | "Last-Translator: Ricardo Pérez López <ricardo@ubuntu.com>\n" |
404 | "Language-Team: \n" |
405 | @@ -21,56 +21,66 @@ |
406 | #. that would require a richer interface to the dbus service, and |
407 | #. probably to the cruft plugin architecture underneath that. |
408 | #. |
409 | -#: ../computerjanitorapp/gtk/areyousure.py:49 |
410 | +#: ../computerjanitorapp/gtk/dialogs.py:54 |
411 | msgid "Are you sure you want to clean your system?" |
412 | msgstr "" |
413 | |
414 | -#: ../computerjanitorapp/gtk/areyousure.py:55 |
415 | -#: ../computerjanitorapp/gtk/areyousure.py:69 |
416 | +#: ../computerjanitorapp/gtk/dialogs.py:60 |
417 | +#: ../computerjanitorapp/gtk/dialogs.py:74 |
418 | #, fuzzy |
419 | msgid "Clean up" |
420 | msgstr "_Limpiar" |
421 | |
422 | -#: ../computerjanitorapp/gtk/areyousure.py:62 |
423 | +#: ../computerjanitorapp/gtk/dialogs.py:67 |
424 | msgid "<b>Software packages to remove: {packages}</b>." |
425 | msgstr "" |
426 | |
427 | -#: ../computerjanitorapp/gtk/areyousure.py:63 |
428 | +#: ../computerjanitorapp/gtk/dialogs.py:68 |
429 | msgid "" |
430 | "\n" |
431 | "Removing packages that are still in use can cause errors." |
432 | msgstr "" |
433 | |
434 | -#: ../computerjanitorapp/gtk/areyousure.py:66 |
435 | +#: ../computerjanitorapp/gtk/dialogs.py:71 |
436 | #, fuzzy |
437 | msgid "Remove packages" |
438 | msgstr "paquete .deb" |
439 | |
440 | -#: ../computerjanitorapp/gtk/areyousure.py:68 |
441 | +#: ../computerjanitorapp/gtk/dialogs.py:73 |
442 | msgid "Non-package items to remove: {others}." |
443 | msgstr "" |
444 | |
445 | -#: ../computerjanitorapp/gtk/ui.py:48 |
446 | +#: ../computerjanitorapp/gtk/dialogs.py:96 |
447 | +msgid "" |
448 | +"System clean up could not complete. Be sure no other package manager such as " |
449 | +"Synaptic or Update Manager is running." |
450 | +msgstr "" |
451 | + |
452 | +#: ../computerjanitorapp/gtk/dialogs.py:104 |
453 | +msgid "System clean up failure" |
454 | +msgstr "" |
455 | + |
456 | +#: ../computerjanitorapp/gtk/ui.py:49 |
457 | msgid "Package will be <b>removed</b>." |
458 | msgstr "" |
459 | |
460 | -#: ../computerjanitorapp/gtk/ui.py:49 |
461 | +#: ../computerjanitorapp/gtk/ui.py:50 |
462 | msgid "Package will be <b>installed</b>." |
463 | msgstr "" |
464 | |
465 | -#: ../computerjanitorapp/gtk/ui.py:50 |
466 | +#: ../computerjanitorapp/gtk/ui.py:51 |
467 | msgid "File will be <b>removed</b>." |
468 | msgstr "" |
469 | |
470 | -#: ../computerjanitorapp/gtk/ui.py:264 |
471 | +#: ../computerjanitorapp/gtk/ui.py:265 |
472 | msgid "Size: {bytes}" |
473 | msgstr "" |
474 | |
475 | -#: ../computerjanitorapp/gtk/ui.py:346 |
476 | +#: ../computerjanitorapp/gtk/ui.py:347 |
477 | msgid "Processing {cruft}" |
478 | msgstr "" |
479 | |
480 | -#: ../computerjanitorapp/gtk/ui.py:469 |
481 | +#: ../computerjanitorapp/gtk/ui.py:470 |
482 | #: ../data/computer-janitor-gtk.desktop.in.h:2 |
483 | msgid "Computer Janitor" |
484 | msgstr "" |
485 | |
486 | === modified file 'po/fi.po' |
487 | --- po/fi.po 2010-04-15 16:09:46 +0000 |
488 | +++ po/fi.po 2010-05-20 13:55:46 +0000 |
489 | @@ -8,7 +8,7 @@ |
490 | msgstr "" |
491 | "Project-Id-Version: cruft-remover 1.10\n" |
492 | "Report-Msgid-Bugs-To: \n" |
493 | -"POT-Creation-Date: 2010-04-15 12:09-0400\n" |
494 | +"POT-Creation-Date: 2010-05-20 09:32-0400\n" |
495 | "PO-Revision-Date: 2008-10-09 23:02+0300\n" |
496 | "Last-Translator: Lars Wirzenius <lars@ubuntu.com>\n" |
497 | "Language-Team: Finnish\n" |
498 | @@ -21,56 +21,66 @@ |
499 | #. that would require a richer interface to the dbus service, and |
500 | #. probably to the cruft plugin architecture underneath that. |
501 | #. |
502 | -#: ../computerjanitorapp/gtk/areyousure.py:49 |
503 | +#: ../computerjanitorapp/gtk/dialogs.py:54 |
504 | msgid "Are you sure you want to clean your system?" |
505 | msgstr "" |
506 | |
507 | -#: ../computerjanitorapp/gtk/areyousure.py:55 |
508 | -#: ../computerjanitorapp/gtk/areyousure.py:69 |
509 | +#: ../computerjanitorapp/gtk/dialogs.py:60 |
510 | +#: ../computerjanitorapp/gtk/dialogs.py:74 |
511 | #, fuzzy |
512 | msgid "Clean up" |
513 | msgstr "_Puhdista" |
514 | |
515 | -#: ../computerjanitorapp/gtk/areyousure.py:62 |
516 | +#: ../computerjanitorapp/gtk/dialogs.py:67 |
517 | msgid "<b>Software packages to remove: {packages}</b>." |
518 | msgstr "" |
519 | |
520 | -#: ../computerjanitorapp/gtk/areyousure.py:63 |
521 | +#: ../computerjanitorapp/gtk/dialogs.py:68 |
522 | msgid "" |
523 | "\n" |
524 | "Removing packages that are still in use can cause errors." |
525 | msgstr "" |
526 | |
527 | -#: ../computerjanitorapp/gtk/areyousure.py:66 |
528 | +#: ../computerjanitorapp/gtk/dialogs.py:71 |
529 | #, fuzzy |
530 | msgid "Remove packages" |
531 | msgstr ".deb-paketti" |
532 | |
533 | -#: ../computerjanitorapp/gtk/areyousure.py:68 |
534 | +#: ../computerjanitorapp/gtk/dialogs.py:73 |
535 | msgid "Non-package items to remove: {others}." |
536 | msgstr "" |
537 | |
538 | -#: ../computerjanitorapp/gtk/ui.py:48 |
539 | +#: ../computerjanitorapp/gtk/dialogs.py:96 |
540 | +msgid "" |
541 | +"System clean up could not complete. Be sure no other package manager such as " |
542 | +"Synaptic or Update Manager is running." |
543 | +msgstr "" |
544 | + |
545 | +#: ../computerjanitorapp/gtk/dialogs.py:104 |
546 | +msgid "System clean up failure" |
547 | +msgstr "" |
548 | + |
549 | +#: ../computerjanitorapp/gtk/ui.py:49 |
550 | msgid "Package will be <b>removed</b>." |
551 | msgstr "" |
552 | |
553 | -#: ../computerjanitorapp/gtk/ui.py:49 |
554 | +#: ../computerjanitorapp/gtk/ui.py:50 |
555 | msgid "Package will be <b>installed</b>." |
556 | msgstr "" |
557 | |
558 | -#: ../computerjanitorapp/gtk/ui.py:50 |
559 | +#: ../computerjanitorapp/gtk/ui.py:51 |
560 | msgid "File will be <b>removed</b>." |
561 | msgstr "" |
562 | |
563 | -#: ../computerjanitorapp/gtk/ui.py:264 |
564 | +#: ../computerjanitorapp/gtk/ui.py:265 |
565 | msgid "Size: {bytes}" |
566 | msgstr "" |
567 | |
568 | -#: ../computerjanitorapp/gtk/ui.py:346 |
569 | +#: ../computerjanitorapp/gtk/ui.py:347 |
570 | msgid "Processing {cruft}" |
571 | msgstr "" |
572 | |
573 | -#: ../computerjanitorapp/gtk/ui.py:469 |
574 | +#: ../computerjanitorapp/gtk/ui.py:470 |
575 | #: ../data/computer-janitor-gtk.desktop.in.h:2 |
576 | msgid "Computer Janitor" |
577 | msgstr "" |
578 | |
579 | === modified file 'po/fr.po' |
580 | --- po/fr.po 2010-04-15 16:09:46 +0000 |
581 | +++ po/fr.po 2010-05-20 13:55:46 +0000 |
582 | @@ -8,7 +8,7 @@ |
583 | msgstr "" |
584 | "Project-Id-Version: cruft-remover 1.10\n" |
585 | "Report-Msgid-Bugs-To: \n" |
586 | -"POT-Creation-Date: 2010-04-15 12:09-0400\n" |
587 | +"POT-Creation-Date: 2010-05-20 09:32-0400\n" |
588 | "PO-Revision-Date: 2008-10-26 23:02+0300\n" |
589 | "Last-Translator: Jonathan Ernst <jonathan@ernstfamily.ch>\n" |
590 | "Language-Team: French\n" |
591 | @@ -21,56 +21,66 @@ |
592 | #. that would require a richer interface to the dbus service, and |
593 | #. probably to the cruft plugin architecture underneath that. |
594 | #. |
595 | -#: ../computerjanitorapp/gtk/areyousure.py:49 |
596 | +#: ../computerjanitorapp/gtk/dialogs.py:54 |
597 | msgid "Are you sure you want to clean your system?" |
598 | msgstr "" |
599 | |
600 | -#: ../computerjanitorapp/gtk/areyousure.py:55 |
601 | -#: ../computerjanitorapp/gtk/areyousure.py:69 |
602 | +#: ../computerjanitorapp/gtk/dialogs.py:60 |
603 | +#: ../computerjanitorapp/gtk/dialogs.py:74 |
604 | #, fuzzy |
605 | msgid "Clean up" |
606 | msgstr "_Nettoyer" |
607 | |
608 | -#: ../computerjanitorapp/gtk/areyousure.py:62 |
609 | +#: ../computerjanitorapp/gtk/dialogs.py:67 |
610 | msgid "<b>Software packages to remove: {packages}</b>." |
611 | msgstr "" |
612 | |
613 | -#: ../computerjanitorapp/gtk/areyousure.py:63 |
614 | +#: ../computerjanitorapp/gtk/dialogs.py:68 |
615 | msgid "" |
616 | "\n" |
617 | "Removing packages that are still in use can cause errors." |
618 | msgstr "" |
619 | |
620 | -#: ../computerjanitorapp/gtk/areyousure.py:66 |
621 | +#: ../computerjanitorapp/gtk/dialogs.py:71 |
622 | #, fuzzy |
623 | msgid "Remove packages" |
624 | msgstr "paquet .deb" |
625 | |
626 | -#: ../computerjanitorapp/gtk/areyousure.py:68 |
627 | +#: ../computerjanitorapp/gtk/dialogs.py:73 |
628 | msgid "Non-package items to remove: {others}." |
629 | msgstr "" |
630 | |
631 | -#: ../computerjanitorapp/gtk/ui.py:48 |
632 | +#: ../computerjanitorapp/gtk/dialogs.py:96 |
633 | +msgid "" |
634 | +"System clean up could not complete. Be sure no other package manager such as " |
635 | +"Synaptic or Update Manager is running." |
636 | +msgstr "" |
637 | + |
638 | +#: ../computerjanitorapp/gtk/dialogs.py:104 |
639 | +msgid "System clean up failure" |
640 | +msgstr "" |
641 | + |
642 | +#: ../computerjanitorapp/gtk/ui.py:49 |
643 | msgid "Package will be <b>removed</b>." |
644 | msgstr "" |
645 | |
646 | -#: ../computerjanitorapp/gtk/ui.py:49 |
647 | +#: ../computerjanitorapp/gtk/ui.py:50 |
648 | msgid "Package will be <b>installed</b>." |
649 | msgstr "" |
650 | |
651 | -#: ../computerjanitorapp/gtk/ui.py:50 |
652 | +#: ../computerjanitorapp/gtk/ui.py:51 |
653 | msgid "File will be <b>removed</b>." |
654 | msgstr "" |
655 | |
656 | -#: ../computerjanitorapp/gtk/ui.py:264 |
657 | +#: ../computerjanitorapp/gtk/ui.py:265 |
658 | msgid "Size: {bytes}" |
659 | msgstr "" |
660 | |
661 | -#: ../computerjanitorapp/gtk/ui.py:346 |
662 | +#: ../computerjanitorapp/gtk/ui.py:347 |
663 | msgid "Processing {cruft}" |
664 | msgstr "" |
665 | |
666 | -#: ../computerjanitorapp/gtk/ui.py:469 |
667 | +#: ../computerjanitorapp/gtk/ui.py:470 |
668 | #: ../data/computer-janitor-gtk.desktop.in.h:2 |
669 | msgid "Computer Janitor" |
670 | msgstr "" |
671 | |
672 | === modified file 'po/ja.po' |
673 | --- po/ja.po 2010-04-15 16:09:46 +0000 |
674 | +++ po/ja.po 2010-05-20 13:55:46 +0000 |
675 | @@ -8,7 +8,7 @@ |
676 | msgstr "" |
677 | "Project-Id-Version: cruft-remover 1.10\n" |
678 | "Report-Msgid-Bugs-To: \n" |
679 | -"POT-Creation-Date: 2010-04-15 12:09-0400\n" |
680 | +"POT-Creation-Date: 2010-05-20 09:32-0400\n" |
681 | "PO-Revision-Date: 2008-10-25 00:08+0900\n" |
682 | "Last-Translator: Mitsuya Shibata <mty.shibata@gmail.com>\n" |
683 | "Language-Team: Ubuntu Japanese Team <ubuntu-jp@lists.ubuntu.com>\n" |
684 | @@ -20,56 +20,66 @@ |
685 | #. that would require a richer interface to the dbus service, and |
686 | #. probably to the cruft plugin architecture underneath that. |
687 | #. |
688 | -#: ../computerjanitorapp/gtk/areyousure.py:49 |
689 | +#: ../computerjanitorapp/gtk/dialogs.py:54 |
690 | msgid "Are you sure you want to clean your system?" |
691 | msgstr "" |
692 | |
693 | -#: ../computerjanitorapp/gtk/areyousure.py:55 |
694 | -#: ../computerjanitorapp/gtk/areyousure.py:69 |
695 | +#: ../computerjanitorapp/gtk/dialogs.py:60 |
696 | +#: ../computerjanitorapp/gtk/dialogs.py:74 |
697 | #, fuzzy |
698 | msgid "Clean up" |
699 | msgstr "整頓する(_C)" |
700 | |
701 | -#: ../computerjanitorapp/gtk/areyousure.py:62 |
702 | +#: ../computerjanitorapp/gtk/dialogs.py:67 |
703 | msgid "<b>Software packages to remove: {packages}</b>." |
704 | msgstr "" |
705 | |
706 | -#: ../computerjanitorapp/gtk/areyousure.py:63 |
707 | +#: ../computerjanitorapp/gtk/dialogs.py:68 |
708 | msgid "" |
709 | "\n" |
710 | "Removing packages that are still in use can cause errors." |
711 | msgstr "" |
712 | |
713 | -#: ../computerjanitorapp/gtk/areyousure.py:66 |
714 | +#: ../computerjanitorapp/gtk/dialogs.py:71 |
715 | #, fuzzy |
716 | msgid "Remove packages" |
717 | msgstr "deb パッケージ" |
718 | |
719 | -#: ../computerjanitorapp/gtk/areyousure.py:68 |
720 | +#: ../computerjanitorapp/gtk/dialogs.py:73 |
721 | msgid "Non-package items to remove: {others}." |
722 | msgstr "" |
723 | |
724 | -#: ../computerjanitorapp/gtk/ui.py:48 |
725 | +#: ../computerjanitorapp/gtk/dialogs.py:96 |
726 | +msgid "" |
727 | +"System clean up could not complete. Be sure no other package manager such as " |
728 | +"Synaptic or Update Manager is running." |
729 | +msgstr "" |
730 | + |
731 | +#: ../computerjanitorapp/gtk/dialogs.py:104 |
732 | +msgid "System clean up failure" |
733 | +msgstr "" |
734 | + |
735 | +#: ../computerjanitorapp/gtk/ui.py:49 |
736 | msgid "Package will be <b>removed</b>." |
737 | msgstr "" |
738 | |
739 | -#: ../computerjanitorapp/gtk/ui.py:49 |
740 | +#: ../computerjanitorapp/gtk/ui.py:50 |
741 | msgid "Package will be <b>installed</b>." |
742 | msgstr "" |
743 | |
744 | -#: ../computerjanitorapp/gtk/ui.py:50 |
745 | +#: ../computerjanitorapp/gtk/ui.py:51 |
746 | msgid "File will be <b>removed</b>." |
747 | msgstr "" |
748 | |
749 | -#: ../computerjanitorapp/gtk/ui.py:264 |
750 | +#: ../computerjanitorapp/gtk/ui.py:265 |
751 | msgid "Size: {bytes}" |
752 | msgstr "" |
753 | |
754 | -#: ../computerjanitorapp/gtk/ui.py:346 |
755 | +#: ../computerjanitorapp/gtk/ui.py:347 |
756 | msgid "Processing {cruft}" |
757 | msgstr "" |
758 | |
759 | -#: ../computerjanitorapp/gtk/ui.py:469 |
760 | +#: ../computerjanitorapp/gtk/ui.py:470 |
761 | #: ../data/computer-janitor-gtk.desktop.in.h:2 |
762 | msgid "Computer Janitor" |
763 | msgstr "" |
764 | |
765 | === modified file 'po/pl.po' |
766 | --- po/pl.po 2010-04-15 16:09:46 +0000 |
767 | +++ po/pl.po 2010-05-20 13:55:46 +0000 |
768 | @@ -3,7 +3,7 @@ |
769 | msgstr "" |
770 | "Project-Id-Version: Cruft Remover\n" |
771 | "Report-Msgid-Bugs-To: \n" |
772 | -"POT-Creation-Date: 2010-04-15 12:09-0400\n" |
773 | +"POT-Creation-Date: 2010-05-20 09:32-0400\n" |
774 | "PO-Revision-Date: 2008-10-28 10:35+0100\n" |
775 | "Last-Translator: Piotr Makowski <pzaryk@aviary.pl>\n" |
776 | "Language-Team: Piotr Makowski (Aviary.pl) <pmakowski@aviary.pl>\n" |
777 | @@ -20,56 +20,66 @@ |
778 | #. that would require a richer interface to the dbus service, and |
779 | #. probably to the cruft plugin architecture underneath that. |
780 | #. |
781 | -#: ../computerjanitorapp/gtk/areyousure.py:49 |
782 | +#: ../computerjanitorapp/gtk/dialogs.py:54 |
783 | msgid "Are you sure you want to clean your system?" |
784 | msgstr "" |
785 | |
786 | -#: ../computerjanitorapp/gtk/areyousure.py:55 |
787 | -#: ../computerjanitorapp/gtk/areyousure.py:69 |
788 | +#: ../computerjanitorapp/gtk/dialogs.py:60 |
789 | +#: ../computerjanitorapp/gtk/dialogs.py:74 |
790 | #, fuzzy |
791 | msgid "Clean up" |
792 | msgstr "_Wyczyść" |
793 | |
794 | -#: ../computerjanitorapp/gtk/areyousure.py:62 |
795 | +#: ../computerjanitorapp/gtk/dialogs.py:67 |
796 | msgid "<b>Software packages to remove: {packages}</b>." |
797 | msgstr "" |
798 | |
799 | -#: ../computerjanitorapp/gtk/areyousure.py:63 |
800 | +#: ../computerjanitorapp/gtk/dialogs.py:68 |
801 | msgid "" |
802 | "\n" |
803 | "Removing packages that are still in use can cause errors." |
804 | msgstr "" |
805 | |
806 | -#: ../computerjanitorapp/gtk/areyousure.py:66 |
807 | +#: ../computerjanitorapp/gtk/dialogs.py:71 |
808 | #, fuzzy |
809 | msgid "Remove packages" |
810 | msgstr "pakiet .deb" |
811 | |
812 | -#: ../computerjanitorapp/gtk/areyousure.py:68 |
813 | +#: ../computerjanitorapp/gtk/dialogs.py:73 |
814 | msgid "Non-package items to remove: {others}." |
815 | msgstr "" |
816 | |
817 | -#: ../computerjanitorapp/gtk/ui.py:48 |
818 | +#: ../computerjanitorapp/gtk/dialogs.py:96 |
819 | +msgid "" |
820 | +"System clean up could not complete. Be sure no other package manager such as " |
821 | +"Synaptic or Update Manager is running." |
822 | +msgstr "" |
823 | + |
824 | +#: ../computerjanitorapp/gtk/dialogs.py:104 |
825 | +msgid "System clean up failure" |
826 | +msgstr "" |
827 | + |
828 | +#: ../computerjanitorapp/gtk/ui.py:49 |
829 | msgid "Package will be <b>removed</b>." |
830 | msgstr "" |
831 | |
832 | -#: ../computerjanitorapp/gtk/ui.py:49 |
833 | +#: ../computerjanitorapp/gtk/ui.py:50 |
834 | msgid "Package will be <b>installed</b>." |
835 | msgstr "" |
836 | |
837 | -#: ../computerjanitorapp/gtk/ui.py:50 |
838 | +#: ../computerjanitorapp/gtk/ui.py:51 |
839 | msgid "File will be <b>removed</b>." |
840 | msgstr "" |
841 | |
842 | -#: ../computerjanitorapp/gtk/ui.py:264 |
843 | +#: ../computerjanitorapp/gtk/ui.py:265 |
844 | msgid "Size: {bytes}" |
845 | msgstr "" |
846 | |
847 | -#: ../computerjanitorapp/gtk/ui.py:346 |
848 | +#: ../computerjanitorapp/gtk/ui.py:347 |
849 | msgid "Processing {cruft}" |
850 | msgstr "" |
851 | |
852 | -#: ../computerjanitorapp/gtk/ui.py:469 |
853 | +#: ../computerjanitorapp/gtk/ui.py:470 |
854 | #: ../data/computer-janitor-gtk.desktop.in.h:2 |
855 | msgid "Computer Janitor" |
856 | msgstr "" |
857 | |
858 | === modified file 'setup.py' |
859 | --- setup.py 2010-03-18 13:19:32 +0000 |
860 | +++ setup.py 2010-05-20 13:55:46 +0000 |
861 | @@ -31,7 +31,7 @@ |
862 | |
863 | |
864 | setup(name='computer-janitor', |
865 | - version="2.0", |
866 | + version="2.0.1", |
867 | description="Clean up a system so it's more like a freshly " |
868 | "installed one", |
869 | author='Computer Janitor Hackers', |