[Sugar-devel] Journal-like activities (was: Re: [ASLO] Release Read ETexts-19)

Martin Langhoff martin.langhoff at gmail.com
Thu Mar 18 11:07:04 EDT 2010


Hi James,

I am very glad people are exploring alternatives around the Journal.
Not sure what your goals are -- would be interesting to hear.

Comments

 - I don't know how "pluggable" the Journal is, but I'd encourage
working on patches to the Journal itself. I don't think a proper
activity can take the role of the Journal, as it is pretty "special".

 - There's been interesting discussions around teaching the Journal
about it's backup, which is on the XS (if there is one). An exciting
idea bandied about was to do something inspired by Apple's Time
Machine. I am happy to improve things on the XS side if needed.

Aleksey is the current maintainer, he'll probably have suggestions ;-)

cheers,


m

On Thu, Mar 18, 2010 at 10:44 AM, James Simmons <nicestep at gmail.com> wrote:
> Sascha,
>
> No need to apologize for a long email; this is interesting.  I'm
> thinking I'll start working on an improved version of Gabriel's Leer
> Pen Drive and see where that takes me.  I like the idea of the Journal
> very much, but the implementation of the Journal Activity (if it's
> correct to call it that) is not what I would like it to be.
>
> James Simmons
>
>
> On Thu, Mar 18, 2010 at 8:09 AM, Sascha Silbe
> <sascha-ml-ui-sugar-devel at silbe.org> wrote:
>> On Wed, Mar 17, 2010 at 05:08:08PM -0500, James Simmons wrote:
>>
>>> I was looking at the code for Leer Pen Drive and thinking how I could
>>> improve on it, and in the process I ended up looking at
>>> git.sugarlabs.org at the code for Journal.  Apparently that is not the
>>> most recent code,
>>
>> I guess you were looking at the "journal" project (don't have internet
>> access right now, so cannot check the exact name). That's indeed rather old
>> code; the Journal has been integrated into the sugar package.
>>
>>> That wouldn't be too surprising except that the Journal Activity can write
>>> to a USB or thumb drive.  I couldn't figure out how or even where it was
>>> doing it, [...]
>>
>> The "journal" project is part of 0.82. Back then the data store handled
>> removable media.
>> In 0.84+, the data store was rewritten from scratch [1] and only handles the
>> on-disk, native Sugar objects. Handling of "traditional" (POSIX) file
>> storage (USB sticks, hard disks, etc.) has been moved into the Journal.
>> The code you're looking for is sugar/src/jarabe/journal/model.py. In there,
>> the classes DatastoreResultSet and InplaceResultSet form an abstraction
>> layer over the data store and mounted (POSIX) file systems.
>>
>>> but it does seem that you could write an Activity that does everything the
>>> Journal does, from writing to mounted media to unmounting it.
>>
>> Almost everything the Journal does can be done in an activity as well. It
>> all boils down to permissions; usually the permissions are based on security
>> considerations.
>> The following actions are implemented (source references are for 0.88):
>>
>> - show item in Journal (D-Bus API)
>>   - sugar/src/jarabe/journal/journalactivity.py
>>   - D-Bus doesn't allow a second process with the same service name, so not
>> overridable
>>
>> - show object picker (D-Bus API)
>>   - sugar/src/jarabe/journal/journalactivity.py
>>   - again, D-Bus prevents activities from providing this
>>
>> - mounting/unmounting file systems (e.g. USB sticks)
>>   - show new mount points: sugar/src/jarabe/journal/volumestoolbar.py
>>   - unmounting: sugar/src/jarabe/view/palettes.py:VolumePalette
>>   - mounting (Frame, not Journal): sugar/extensions/deviceicon/volume.py
>>   - without Rainbow:
>>     - activities are able to mount and umount file systems using gio (resp.
>> gvfs for older systems)
>>   - with Rainbow:
>>     - gio/gvfs probably refuses to unmount file systems mounted by the Frame
>> from within activities (because the user ids are different)
>>
>> - browsing data store / file systems, reading all entries / files
>>   - sugar/src/jarabe/journal/model.py
>>   - without Rainbow:
>>     - unrestricted
>>   - with Rainbow:
>>     - currently:
>>       - data store access unrestricted
>>       - file system access prevented by gio/gvfs permission settings
>>     - future:
>>       - see P_DOCUMENT / P_DOCUMENT_RO Bitfrost [2] protections
>>
>> - reading a single data store entry / file via Object Picker
>>   - sugar-toolkit/src/sugar/graphics/objectchooser.py
>>   - unrestricted
>>
>> - writing a single data store entry / file (acquired via Object Picker)
>>   - without Rainbow:
>>     - unrestricted
>>   - with Rainbow:
>>     - currently:
>>       - data store access unrestricted
>>       - file system access prevented by gio/gvfs permission settings
>>     - future
>>       - unrestricted
>>
>> - writing random data store entries / files
>>   - without Rainbow:
>>     - unrestricted
>>   - with Rainbow:
>>     - currently:
>>       - data store access unrestricted
>>       - file system access prevented by gio/gvfs permission settings
>>     - future
>>       - subject to P_DOCUMENT Bitfrost [2] protection
>>
>>
>> Bitfrost protections can be disabled, see the Bitfrost specs [2] for
>> details.
>>
>> Sorry for the long mail; it's not just an answer to your questions but also
>> a Rainbow TODO list. :)
>>
>>
>> [1] http://wiki.sugarlabs.org/go/Development_Team/Datastore_Rewrite
>> [2] http://dev.laptop.org/git/security/tree/bitfrost.txt
>>
>> CU Sascha
>>
>> --
>> http://sascha.silbe.org/
>> http://www.infra-silbe.de/
>> -----BEGIN PGP SIGNATURE-----
>> Version: GnuPG v1.4.10 (GNU/Linux)
>>
>> iQEcBAEBAgAGBQJLoiYRAAoJELpz82VMF3Dan24H/A9eXdL4OLzivkJf65mZLiUb
>> IsHnMj7/n7zWAFSbuSWNQDdwXrhNhdoVzFQD6eNP9waV7vCYPw3UCMPLie7Qvo70
>> HRetYCRtiJf9cAzvRGry1jddznzxknwzACFLxeqBP8LMvJDtPyc1qoyikAAuzOnw
>> ehfpgY8U5X5k0i6RwqOUd0vZmkSjxrKslVEqwKoM30w1pTycK+sNngDOPCDe+ex3
>> roU0FeyTXHTWWCqO9lN2CN+zbrArbolXLhAHvBVUlNUj0cu/sBN86tfXWktGKhql
>> 4ewJeP3Ytl+sSh+w93bkRkNRvEirDZ6TK+B6xixhgkNZ/7r04sZs6Aj7Q4/a6/w=
>> =nFrr
>> -----END PGP SIGNATURE-----
>>
>>
> _______________________________________________
> Sugar-devel mailing list
> Sugar-devel at lists.sugarlabs.org
> http://lists.sugarlabs.org/listinfo/sugar-devel
>



-- 
 martin.langhoff at gmail.com
 martin at laptop.org -- School Server Architect
 - ask interesting questions
 - don't get distracted with shiny stuff  - working code first
 - http://wiki.laptop.org/go/User:Martinlanghoff


More information about the Sugar-devel mailing list