[Dextrose] [PATCH sugar-toolkit 1/4] Not able to access files on external device from within an activity on new system d.l.o #10218

Aleksey Lim alsroot at member.fsf.org
Sat Jan 15 12:07:16 EST 2011

From: Simon Schampijer <simon at schampijer.de>

The error we were seeing was that the '(env.get_profile_path(),
'data'))' does not exist yet at system start. Symlinks are created
there when accessing data on an external device. The directory
gets created when an activity like Browse or Terminal has been
run for the first time or you start Read for the first time by
resuming the file on the external device.

 src/sugar/datastore/datastore.py |    6 ++++--
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/sugar/datastore/datastore.py b/src/sugar/datastore/datastore.py
index 1618cef..656afcc 100644
--- a/src/sugar/datastore/datastore.py
+++ b/src/sugar/datastore/datastore.py
@@ -250,9 +250,11 @@ class RawObject(object):
         # to create hardlinks to jobject files
         # and w/o this, it wouldn't work since we have file from mounted device
         if self._file_path is None:
+            data_path = os.path.join(env.get_profile_path(), 'data')
             self._file_path = tempfile.mktemp(
-                    prefix='rawobject',
-                    dir=os.path.join(env.get_profile_path(), 'data'))
+                    prefix='rawobject', dir=data_path)
+            if not os.path.exists(data_path):
+                os.makedirs(data_path)
             os.symlink(self.object_id, self._file_path)
         return self._file_path

More information about the Dextrose mailing list