Finder plugin don't find the syncdaemon executable
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Ubuntu One Client |
Triaged
|
Undecided
|
Unassigned | ||
dirspec |
Triaged
|
Undecided
|
Unassigned |
Bug Description
The OS X Finder plugin <https:/
When it try to find the Ubuntu One Syncdaemon executable, it fails, because the Finder bundle is not inside the "Ubuntu One.app" bundle (really it is the "Finder.app" bundle). For this reason I have added to the "ubuntuone-
https:/
In addition, when the plugin is bundled, the fallback directories are never used in "dirspec/
https:/
Changed in ubuntuone-client: | |
assignee: | nobody → José Expósito (jose-exposito89) |
status: | New → Fix Committed |
Changed in dirspec: | |
assignee: | nobody → José Expósito (jose-exposito89) |
status: | New → Fix Committed |
Changed in dirspec: | |
status: | Fix Committed → In Progress |
Changed in ubuntuone-client: | |
status: | Fix Committed → In Progress |
tags: | added: u1-notrack |
Changed in dirspec: | |
status: | In Progress → Triaged |
Changed in ubuntuone-client: | |
status: | In Progress → Triaged |
assignee: | José Expósito (jose-exposito89) → nobody |
Changed in dirspec: | |
assignee: | José Expósito (jose-exposito89) → nobody |
Hi Mike!
> Do you know why the test getattr(sys, 'frozen', None) is giving us None here?
> I built your bundle from your github repo using a recent py2app, and it has a
> boot script that does set sys.frozen = 'macosx_plugin'.
It looks like getattr(sys, 'frozen', None) is returning 'macosx_plugin' as expected.
> Ideally what should happen here is that when called from the finder bundle, path_frozen_ darwin is called, and that should be where we find the
> _get_exe_
> main app bundle, either by looking at __file__ or if that doesn't work, some
> other way.
"__file__" is set to "/Library/ ScriptingAdditi ons/U1 Finder Injector. osax/Contents/ Resources/ U1FinderLib. bundle/ Contents/ Resources/ lib/python2. 7/site- packages. zip/dirspec/ utils.pyc"
And "_get_exe_ path_frozen_ darwin" returns "/Library/ ScriptingAdditi ons/U1 Finder Injector. osax/Contents/ Resources/ U1FinderLib. bundle/ Contents/ Resources/ lib/python2. 7/site- packages. zip/dirspec/ utils.pyc/ Contents/ Resources/ UbuntuOne Syncdaemon. app/Contents/ MacOS/ubuntuone -syncdaemon"
Basically, the U1 Finder plugin has 3 components: the *injector*, that loads the *bundle* in the Finder process and the *U1 Python library*, used to comunicate with the Ubuntu One Sync Daemon.
The problem is that the *U1 Python library*, that executes "_get_exe_ path_frozen_ darwin" & company, is not able to find the Ubuntu One Sync Daemon exe, because it is not into the Ubuntu One bundle. Ubuntu One.app/ Contents/ Resources/ U1FinderLib. bundle" fixes the problem without make any change in the Ubuntu One source code.
Changing the deploy dirs, and putting this library in "/Applications/
For the moment I have problems finding the *U1 Python library* from the *bundle* and I'm using a hardcoded path. I have problems too deploying the *U1 Python library*, because it uses QtCore.so and this has a reference to "@executable_ path/.. /Frameworks/ QtCore. framework/ Versions/ 4/QtCore" that is not correct.
I'm going to close this branch and the ubuntuone-client branch.
How it is supposed to be distributing the Finder Plugin? Separate installer or with Ubuntu One? I can make an installer, but probably, distribute the plugin inside of the Ubuntu One bundle and extract the required files at first launch, could be the easiest way to the user...