Merge lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk into lp:ubuntu/lucid/ubuntuone-client

Proposed by dobey
Status: Merged
Merged at revision: not available
Proposed branch: lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk
Merge into: lp:ubuntu/lucid/ubuntuone-client
Diff against target: 331 lines (+86/-17)
7 files modified
bin/ubuntuone-preferences (+6/-4)
configure (+10/-10)
configure.ac (+1/-1)
debian/changelog (+9/-0)
debian/ubuntuone-client.install (+2/-0)
tests/syncdaemon/test_vm.py (+51/-0)
ubuntuone/syncdaemon/volume_manager.py (+7/-2)
To merge this branch: bzr merge lp:~ubuntuone-control-tower/ubuntu/lucid/ubuntuone-client/trunk
Reviewer Review Type Date Requested Status
Ubuntu branches Pending
Review via email: mp+22658@code.launchpad.net
To post a comment you must log in.
26. By Sebastien Bacher

releasing version 1.1.91-0ubuntu1

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'bin/ubuntuone-preferences'
2--- bin/ubuntuone-preferences 2010-03-31 23:46:58 +0000
3+++ bin/ubuntuone-preferences 2010-04-01 20:36:38 +0000
4@@ -210,8 +210,8 @@
5 self.status_label = gtk.Label("")
6 self.attach(self.status_label, 0, 3, 2, 3)
7
8- self.description = gtk.Label(_("The devices connected with your"
9- " pseronal cloud network"
10+ self.description = gtk.Label(_("The devices connected to with your"
11+ " personal cloud network"
12 " are listed below"))
13 self.description.set_alignment(0., .5)
14 self.description.set_line_wrap(True)
15@@ -597,7 +597,7 @@
16 """Handle the dialog's response."""
17 self.hide()
18 self.devices.handle_bw_controls_changed()
19- gtk.main_quit()
20+ gobject.timeout_add_seconds(5, gtk.main_quit)
21
22 def _format_for_gb_display(self, bytes):
23 """Format bytes into reasonable gb display."""
24@@ -957,6 +957,7 @@
25 sw.show()
26 self.devices = DevicesWidget(self.__bus, self.keyring)
27 sw.add_with_viewport(self.devices)
28+ self.devices.list_devices()
29 self.devices.show_all()
30
31 # Services tab
32@@ -1058,7 +1059,8 @@
33 self.dialog.request_quota_info()
34 self.dialog.request_account_info()
35 self.dialog.devices.get_devices()
36- self.dialog.present_with_time(int(time.time()))
37+ if self.dialog.visible:
38+ self.dialog.present_with_time(int(time.time()))
39
40 def got_newcredentials(self, realm, consumer_key):
41 """Show our dialog, since we can do stuff now."""
42
43=== modified file 'configure'
44--- configure 2010-03-31 23:46:58 +0000
45+++ configure 2010-04-01 20:36:38 +0000
46@@ -1,6 +1,6 @@
47 #! /bin/sh
48 # Guess values for system-dependent variables and create Makefiles.
49-# Generated by GNU Autoconf 2.65 for ubuntuone-client 1.1.90.
50+# Generated by GNU Autoconf 2.65 for ubuntuone-client 1.1.91.
51 #
52 #
53 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
54@@ -698,8 +698,8 @@
55 # Identity of this package.
56 PACKAGE_NAME='ubuntuone-client'
57 PACKAGE_TARNAME='ubuntuone-client'
58-PACKAGE_VERSION='1.1.90'
59-PACKAGE_STRING='ubuntuone-client 1.1.90'
60+PACKAGE_VERSION='1.1.91'
61+PACKAGE_STRING='ubuntuone-client 1.1.91'
62 PACKAGE_BUGREPORT=''
63 PACKAGE_URL=''
64
65@@ -1476,7 +1476,7 @@
66 # Omit some internal or obsolete options to make the list less imposing.
67 # This message is too long to be a string in the A/UX 3.1 sh.
68 cat <<_ACEOF
69-\`configure' configures ubuntuone-client 1.1.90 to adapt to many kinds of systems.
70+\`configure' configures ubuntuone-client 1.1.91 to adapt to many kinds of systems.
71
72 Usage: $0 [OPTION]... [VAR=VALUE]...
73
74@@ -1547,7 +1547,7 @@
75
76 if test -n "$ac_init_help"; then
77 case $ac_init_help in
78- short | recursive ) echo "Configuration of ubuntuone-client 1.1.90:";;
79+ short | recursive ) echo "Configuration of ubuntuone-client 1.1.91:";;
80 esac
81 cat <<\_ACEOF
82
83@@ -1660,7 +1660,7 @@
84 test -n "$ac_init_help" && exit $ac_status
85 if $ac_init_version; then
86 cat <<\_ACEOF
87-ubuntuone-client configure 1.1.90
88+ubuntuone-client configure 1.1.91
89 generated by GNU Autoconf 2.65
90
91 Copyright (C) 2009 Free Software Foundation, Inc.
92@@ -1938,7 +1938,7 @@
93 This file contains any messages produced by compilers while
94 running configure, to aid debugging if configure makes a mistake.
95
96-It was created by ubuntuone-client $as_me 1.1.90, which was
97+It was created by ubuntuone-client $as_me 1.1.91, which was
98 generated by GNU Autoconf 2.65. Invocation command line was
99
100 $ $0 $@
101@@ -2748,7 +2748,7 @@
102
103 # Define the identity of the package.
104 PACKAGE='ubuntuone-client'
105- VERSION='1.1.90'
106+ VERSION='1.1.91'
107
108
109 cat >>confdefs.h <<_ACEOF
110@@ -12972,7 +12972,7 @@
111 # report actual input values of CONFIG_FILES etc. instead of their
112 # values after options handling.
113 ac_log="
114-This file was extended by ubuntuone-client $as_me 1.1.90, which was
115+This file was extended by ubuntuone-client $as_me 1.1.91, which was
116 generated by GNU Autoconf 2.65. Invocation command line was
117
118 CONFIG_FILES = $CONFIG_FILES
119@@ -13038,7 +13038,7 @@
120 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
121 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
122 ac_cs_version="\\
123-ubuntuone-client config.status 1.1.90
124+ubuntuone-client config.status 1.1.91
125 configured by $0, generated by GNU Autoconf 2.65,
126 with options \\"\$ac_cs_config\\"
127
128
129=== modified file 'configure.ac'
130--- configure.ac 2010-03-31 23:46:58 +0000
131+++ configure.ac 2010-04-01 20:36:38 +0000
132@@ -1,7 +1,7 @@
133 dnl Process this file with autoconf to produce a configure script.
134 AC_PREREQ(2.53)
135
136-AC_INIT([ubuntuone-client], [1.1.90])
137+AC_INIT([ubuntuone-client], [1.1.91])
138 AC_CONFIG_SRCDIR([config.h.in])
139
140 AM_INIT_AUTOMAKE([1.10 foreign])
141
142=== modified file 'contrib/__init__.pyc'
143Binary files contrib/__init__.pyc 2010-03-31 23:46:58 +0000 and contrib/__init__.pyc 2010-04-01 20:36:38 +0000 differ
144=== modified file 'contrib/dbus_util.pyc'
145Binary files contrib/dbus_util.pyc 2010-03-31 23:46:58 +0000 and contrib/dbus_util.pyc 2010-04-01 20:36:38 +0000 differ
146=== modified file 'contrib/mocker.pyc'
147Binary files contrib/mocker.pyc 2010-03-31 23:46:58 +0000 and contrib/mocker.pyc 2010-04-01 20:36:38 +0000 differ
148=== modified file 'contrib/testing/__init__.pyc'
149Binary files contrib/testing/__init__.pyc 2010-03-31 23:46:58 +0000 and contrib/testing/__init__.pyc 2010-04-01 20:36:38 +0000 differ
150=== modified file 'contrib/testing/testcase.pyc'
151Binary files contrib/testing/testcase.pyc 2010-03-31 23:46:58 +0000 and contrib/testing/testcase.pyc 2010-04-01 20:36:38 +0000 differ
152=== modified file 'debian/changelog'
153--- debian/changelog 2010-04-01 00:03:14 +0000
154+++ debian/changelog 2010-04-01 20:36:38 +0000
155@@ -1,3 +1,12 @@
156+ubuntuone-client (1.1.91-0ubuntu1) UNRELEASED; urgency=low
157+
158+ * New upstream release.
159+ - Fix to avoid AttributeError on exit (LP: #553318)
160+ - Fix typo and string change in prefs app (LP: #553324)
161+ - Add missing autostart files to packages (LP: #534707)
162+
163+ -- Rodney Dawes <rodney.dawes@canonical.com> Thu, 01 Apr 2010 16:17:17 -0400
164+
165 ubuntuone-client (1.1.90-0ubuntu1) lucid; urgency=low
166
167 * New upstream release.
168
169=== modified file 'debian/ubuntuone-client.install'
170--- debian/ubuntuone-client.install 2010-02-18 00:08:41 +0000
171+++ debian/ubuntuone-client.install 2010-04-01 20:36:38 +0000
172@@ -1,5 +1,7 @@
173+debian/tmp/etc/xdg/autostart
174 debian/tmp/usr/lib/ubuntuone-client/ubuntuone-syncdaemon
175 debian/tmp/usr/bin/u1sdtool
176+debian/tmp/usr/bin/ubuntuone-launch
177 debian/tmp/usr/share/dbus-1/services/com.ubuntuone.SyncDaemon.service
178 debian/tmp/usr/share/man/man1/u1sdtool.*
179 debian/tmp/usr/share/locale
180
181=== modified file 'tests/__init__.pyc'
182Binary files tests/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/__init__.pyc 2010-04-01 20:36:38 +0000 differ
183=== modified file 'tests/oauthdesktop/__init__.pyc'
184Binary files tests/oauthdesktop/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/__init__.pyc 2010-04-01 20:36:38 +0000 differ
185=== modified file 'tests/oauthdesktop/test_auth.pyc'
186Binary files tests/oauthdesktop/test_auth.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_auth.pyc 2010-04-01 20:36:38 +0000 differ
187=== modified file 'tests/oauthdesktop/test_config.pyc'
188Binary files tests/oauthdesktop/test_config.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_config.pyc 2010-04-01 20:36:38 +0000 differ
189=== modified file 'tests/oauthdesktop/test_key_acls.pyc'
190Binary files tests/oauthdesktop/test_key_acls.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_key_acls.pyc 2010-04-01 20:36:38 +0000 differ
191=== modified file 'tests/oauthdesktop/test_main.pyc'
192Binary files tests/oauthdesktop/test_main.pyc 2010-03-31 23:46:58 +0000 and tests/oauthdesktop/test_main.pyc 2010-04-01 20:36:38 +0000 differ
193=== modified file 'tests/syncdaemon/__init__.pyc'
194Binary files tests/syncdaemon/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/__init__.pyc 2010-04-01 20:36:38 +0000 differ
195=== modified file 'tests/syncdaemon/fsm/__init__.pyc'
196Binary files tests/syncdaemon/fsm/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/__init__.pyc 2010-04-01 20:36:38 +0000 differ
197=== modified file 'tests/syncdaemon/fsm/test_fsm.pyc'
198Binary files tests/syncdaemon/fsm/test_fsm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/test_fsm.pyc 2010-04-01 20:36:38 +0000 differ
199=== modified file 'tests/syncdaemon/fsm/test_fsm_run.pyc'
200Binary files tests/syncdaemon/fsm/test_fsm_run.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/test_fsm_run.pyc 2010-04-01 20:36:38 +0000 differ
201=== modified file 'tests/syncdaemon/fsm/test_run_hello.pyc'
202Binary files tests/syncdaemon/fsm/test_run_hello.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/fsm/test_run_hello.pyc 2010-04-01 20:36:38 +0000 differ
203=== modified file 'tests/syncdaemon/test_action_predicates.pyc'
204Binary files tests/syncdaemon/test_action_predicates.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_action_predicates.pyc 2010-04-01 20:36:38 +0000 differ
205=== modified file 'tests/syncdaemon/test_action_queue.pyc'
206Binary files tests/syncdaemon/test_action_queue.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_action_queue.pyc 2010-04-01 20:36:38 +0000 differ
207=== modified file 'tests/syncdaemon/test_config.pyc'
208Binary files tests/syncdaemon/test_config.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_config.pyc 2010-04-01 20:36:38 +0000 differ
209=== modified file 'tests/syncdaemon/test_dbus.pyc'
210Binary files tests/syncdaemon/test_dbus.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_dbus.pyc 2010-04-01 20:36:38 +0000 differ
211=== modified file 'tests/syncdaemon/test_eq_inotify.pyc'
212Binary files tests/syncdaemon/test_eq_inotify.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_eq_inotify.pyc 2010-04-01 20:36:38 +0000 differ
213=== modified file 'tests/syncdaemon/test_eventqueue.pyc'
214Binary files tests/syncdaemon/test_eventqueue.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_eventqueue.pyc 2010-04-01 20:36:38 +0000 differ
215=== modified file 'tests/syncdaemon/test_eventsnanny.pyc'
216Binary files tests/syncdaemon/test_eventsnanny.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_eventsnanny.pyc 2010-04-01 20:36:38 +0000 differ
217=== modified file 'tests/syncdaemon/test_fileshelf.pyc'
218Binary files tests/syncdaemon/test_fileshelf.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_fileshelf.pyc 2010-04-01 20:36:38 +0000 differ
219=== modified file 'tests/syncdaemon/test_fsm.pyc'
220Binary files tests/syncdaemon/test_fsm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_fsm.pyc 2010-04-01 20:36:38 +0000 differ
221=== modified file 'tests/syncdaemon/test_hashqueue.pyc'
222Binary files tests/syncdaemon/test_hashqueue.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_hashqueue.pyc 2010-04-01 20:36:38 +0000 differ
223=== modified file 'tests/syncdaemon/test_localrescan.pyc'
224Binary files tests/syncdaemon/test_localrescan.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_localrescan.pyc 2010-04-01 20:36:38 +0000 differ
225=== modified file 'tests/syncdaemon/test_logger.pyc'
226Binary files tests/syncdaemon/test_logger.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_logger.pyc 2010-04-01 20:36:38 +0000 differ
227=== modified file 'tests/syncdaemon/test_main.pyc'
228Binary files tests/syncdaemon/test_main.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_main.pyc 2010-04-01 20:36:38 +0000 differ
229=== modified file 'tests/syncdaemon/test_states.pyc'
230Binary files tests/syncdaemon/test_states.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_states.pyc 2010-04-01 20:36:38 +0000 differ
231=== modified file 'tests/syncdaemon/test_sync.pyc'
232Binary files tests/syncdaemon/test_sync.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_sync.pyc 2010-04-01 20:36:38 +0000 differ
233=== modified file 'tests/syncdaemon/test_tools.pyc'
234Binary files tests/syncdaemon/test_tools.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_tools.pyc 2010-04-01 20:36:38 +0000 differ
235=== modified file 'tests/syncdaemon/test_u1fsfsm.pyc'
236Binary files tests/syncdaemon/test_u1fsfsm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_u1fsfsm.pyc 2010-04-01 20:36:38 +0000 differ
237=== modified file 'tests/syncdaemon/test_u1sdtool.pyc'
238Binary files tests/syncdaemon/test_u1sdtool.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_u1sdtool.pyc 2010-04-01 20:36:38 +0000 differ
239=== modified file 'tests/syncdaemon/test_vm.py'
240--- tests/syncdaemon/test_vm.py 2010-03-31 23:46:58 +0000
241+++ tests/syncdaemon/test_vm.py 2010-04-01 20:36:38 +0000
242@@ -1707,6 +1707,57 @@
243 self.assertEquals(30, self.vm.get_free_space(udf.volume_id))
244 self.assertEquals(30, self.vm.get_free_space(root.volume_id))
245
246+ @defer.inlineCallbacks
247+ def test_UDF_cant_be_a_symlink(self):
248+ """Test that a UDF can't be a symlink."""
249+ # initialize the root
250+ self.vm.handle_SYS_ROOT_RECEIVED('root_uuid')
251+ real_udf_path = os.path.join(self.home_dir, "my_udf")
252+ udf_path = os.path.join(self.home_dir, "MyUDF")
253+ # patch FakeAQ
254+ def create_udf(path, name, marker):
255+ """Fake create_udf"""
256+ self.main.event_q.push("AQ_CREATE_UDF_OK", **dict(volume_id=uuid.uuid4(),
257+ node_id=uuid.uuid4(),
258+ marker=marker))
259+ self.main.action_q.create_udf = create_udf
260+ # create the symlink
261+ os.makedirs(real_udf_path)
262+ os.symlink(real_udf_path, udf_path)
263+ d = defer.Deferred()
264+ self._listen_for('VM_UDF_CREATE_ERROR', d.callback)
265+ self._listen_for('VM_UDF_CREATED', lambda r: d.errback(Exception(r)))
266+ self.vm.create_udf(udf_path)
267+ result = yield d
268+ self.assertEquals(0, len(list(self.vm.udfs.keys())))
269+ self.assertEquals(result[0], udf_path)
270+ self.assertEquals(result[1], "UDFs can not be a symlink")
271+
272+ @defer.inlineCallbacks
273+ def test_UDF_cant_be_inside_symlink(self):
274+ """Test that a UDF can't be inside a symlink."""
275+ # initialize the root
276+ self.vm.handle_SYS_ROOT_RECEIVED('root_uuid')
277+ real_udf_path = os.path.join(self.home_dir, "udf_parent", "my_udf")
278+ udf_path = os.path.join(self.home_dir, "MyUDF")
279+ # patch FakeAQ
280+ def create_udf(path, name, marker):
281+ """Fake create_udf"""
282+ self.main.event_q.push("AQ_CREATE_UDF_OK", **dict(volume_id=uuid.uuid4(),
283+ node_id=uuid.uuid4(),
284+ marker=marker))
285+ self.main.action_q.create_udf = create_udf
286+ # create the symlink
287+ os.makedirs(real_udf_path)
288+ os.symlink(real_udf_path, udf_path)
289+ d = defer.Deferred()
290+ self._listen_for('VM_UDF_CREATE_ERROR', d.callback)
291+ self._listen_for('VM_UDF_CREATED', lambda r: d.errback(Exception(r)))
292+ self.vm.create_udf(udf_path)
293+ result = yield d
294+ self.assertEquals(0, len(list(self.vm.udfs.keys())))
295+ self.assertEquals(result[0], udf_path)
296+ self.assertEquals(result[1], "UDFs can not be a symlink")
297
298 class MetadataTestCase(BaseTwistedTestCase):
299 md_version_None = False
300
301=== modified file 'tests/syncdaemon/test_vm.pyc'
302Binary files tests/syncdaemon/test_vm.pyc 2010-03-31 23:46:58 +0000 and tests/syncdaemon/test_vm.pyc 2010-04-01 20:36:38 +0000 differ
303=== modified file 'tests/test_login.pyc'
304Binary files tests/test_login.pyc 2010-03-31 23:46:58 +0000 and tests/test_login.pyc 2010-04-01 20:36:38 +0000 differ
305=== modified file 'tests/test_preferences.pyc'
306Binary files tests/test_preferences.pyc 2010-03-31 23:46:58 +0000 and tests/test_preferences.pyc 2010-04-01 20:36:38 +0000 differ
307=== modified file 'tests/u1sync/__init__.pyc'
308Binary files tests/u1sync/__init__.pyc 2010-03-31 23:46:58 +0000 and tests/u1sync/__init__.pyc 2010-04-01 20:36:38 +0000 differ
309=== modified file 'tests/u1sync/test_init.pyc'
310Binary files tests/u1sync/test_init.pyc 2010-03-31 23:46:58 +0000 and tests/u1sync/test_init.pyc 2010-04-01 20:36:38 +0000 differ
311=== modified file 'tests/u1sync/test_merge.pyc'
312Binary files tests/u1sync/test_merge.pyc 2010-03-31 23:46:58 +0000 and tests/u1sync/test_merge.pyc 2010-04-01 20:36:38 +0000 differ
313=== modified file 'ubuntuone/syncdaemon/volume_manager.py'
314--- ubuntuone/syncdaemon/volume_manager.py 2010-03-31 23:46:58 +0000
315+++ ubuntuone/syncdaemon/volume_manager.py 2010-04-01 20:36:38 +0000
316@@ -840,8 +840,13 @@
317 def create_udf(self, path):
318 """Request the creation of a UDF to AQ."""
319 self.log.debug('create udf: %r', path)
320- # check if the path it's ok (outside root and isn't a ancestor or
321- # child of another UDF)
322+ # check if path is the realpath, bail out if not
323+ if os.path.realpath(path) != path:
324+ self.m.event_q.push('VM_UDF_CREATE_ERROR', path,
325+ "UDFs can not be a symlink")
326+ return
327+ # check if the path it's ok (outside root and
328+ # isn't a ancestor or child of another UDF)
329 if self._is_nested_udf(path):
330 self.m.event_q.push('VM_UDF_CREATE_ERROR', path,
331 "UDFs can not be nested")

Subscribers

People subscribed via source and target branches

to all changes: