[Sugar-devel] 0depend feature request

Michael Stone michael at laptop.org
Tue Nov 24 15:01:07 EST 2009


Aleksey wrote:

> To have some implementation mockups for next 0install debates,
> I've coded how(I'm thinking) 0install integration could be implemented
> in sugar[1]. To check existed code, pull sugar and sugar-toolkit cloned
> repos[2] and follow simple test case[3].
> 
> [1] http://wiki.sugarlabs.org/go/Zero_Depend
> [2] http://wiki.sugarlabs.org/go/Zero_Depend#Scope
> [3] http://wiki.sugarlabs.org/go/Zero_Depend#How_To_Test

Aleksey,

I tried out your patches in a Debian Sid chroot with

   zeroinstall-injector-0.42.1-1

installed and got the following exception in shell.log when running your test
case:

   Traceback (most recent call last):
     File "/usr/lib/python2.5/site-packages/jarabe/desktop/favoritesview.py", line 519, in __button_release_event_cb
       self._activate()
     File "/usr/lib/python2.5/site-packages/jarabe/desktop/favoritesview.py", line 531, in _activate
       self._resume(self._journal_entries[0])
     File "/usr/lib/python2.5/site-packages/jarabe/desktop/favoritesview.py", line 524, in _resume
       shell.resume(journal_entry, self._activity_info.get_bundle_id())
     File "/usr/lib/python2.5/site-packages/jarabe/util/shell.py", line 222, in resume
       launch(bundle, handle, get_icon_color(metadata))
     File "/usr/lib/python2.5/site-packages/jarabe/util/shell.py", line 238, in launch
       launcher.add_launcher(bundle, activity_handle, color)
     File "/usr/lib/python2.5/site-packages/jarabe/view/launcher.py", line 185, in add_launcher
       zdepend.fetch(zfeed, progress, create_activity, cancel)
     File "/usr/lib/python2.5/site-packages/jarabe/util/zdepend.py", line 49, in fetch
       downloaded = policy.download_uncached_implementations()
     File "/usr/lib/python2.5/site-packages/zeroinstall/injector/policy.py", line 393, in download_uncached_implementations
       assert self.solver.ready, "Solver is not ready!\n%s" % self.solver.selections
   AssertionError: Solver is not ready!
   {<Interface http://rox.sourceforge.net/2005/interfaces/ROX-Lib>: None, <Interface /home/sugar/Activities/Terminal.activity/activity/0depend.xml>: v1 (/home/sugar/Activities/Terminal.activity/activity)}

The problem seems to be that you haven't told the policy object to solve the
feeds. You can do that with 

   policy.solve_with_downloads()

and maybe in other ways too.

Anyway, after teaching zdepend.py to solve the policy, I ran into into further
trouble because my zeroinstall trust-db doesn't contain the ROX keys.

To deal with this, I think you need to construct the policy object with a
Handler object

   http://0install.net/python-api/html/zeroinstall.injector.handler.Handler-class.html

and override its confirm_keys method.

@Thomas, Rene: is this about right?

Michael 


More information about the Sugar-devel mailing list