> On Oct. 25, 2015, 5:09 p.m., David Faure wrote:
> > So every app (packaged this way) will need a copy of the .protocol files 
> > and the kioslave executable...
> > 
> > I much preferred the solution we talked about previously, where .protocol 
> > files would be embedded (as JSON) into the kio_<protocol> slave plugin. 
> > This at least simplified the deployment question to: how to ship and locate 
> > these plugins. And it's the Qt5 way :)
> > 
> > Wouldn't that make it simpler to package other apps like what you're doing?
> 
> Christoph Cullmann wrote:
>     Yeah, you need the kioslave exe in each bundle/installer, but that is 
> unavoidable, as you can't rely on having a "compatible" version around.
>     
>     For the .protocol files: I would like to have the metadata solution, too, 
> but after looking more into how it works ATM, that is more work than thought, 
> given you can have multiple .protocol files per slave (like for kio_http) and 
> then one needs an extra tool to convert that stuff (as e.g. the current 
> desktoptojson will just take one file and output one toplevel json map).
>     
>     I am still thinking about doing that long term, but at least the local 
> lookup of kioslave exe will still be needed and I think that the above 
> proposed solution is neither intrusive nor will it hurt the normal 
> non-bundled use case on linux or some ports system and it gives people a 
> 'working' kio on plain qt.
>     
>     And yes, without .protocol files one deployment step would be removed.
> 
> David Faure wrote:
>     Will your deployment solution be documented somewhere for everyone to see 
> and possibly replicate?
>     
>     I don't like adding "weird" code that makes one undocumented use case 
> work.
>     Looking up .protocol files in AppLocalDataLocation (which is btw the 
> non-deprecated name for DataLocation in Qt >= 5.4) is very unintuitive and 
> unexpected to me, I assume you're doing that because you're adding a path in 
> the .qrc file to AppLocalDataLocation somehow, or because that's where you're 
> copying files after installation. But then, wouldn't it be possible to copy 
> these files to somewhere where GenericDataLocation will find them?
>     
>     To say this another way... if we modified QSP to look into an 
> app-specific dir also for GenericDataLocation, then you wouldn't need to 
> modify every single use of GenericDataLocation in KF5 and KDE apps and 
> replace it with [AppLocal]DataLocation.
>     GenericDataLocation means shared, but it's already documented to not 
> really be shared on sandboxed OSes like iOS and Android .... and what you're 
> doing is basically sandboxing on OSX ;)
>     
>     As long as the app-specific dir is the fallback, I see no reason against 
> doing this.
>     
>     Completely untested: 
> http://www.davidfaure.fr/2015/qstandardpaths_mac_fallback.diff
> 
> Christoph Cullmann wrote:
>     For the deployment and documentation: using DataLocation (or its 
> replacement from Qt 5.4 which I can't use given we rely only on 5.3 ;=) as 
> default lookup place seems easy to document and handle by bundling. If you 
> create application bundles you need anyway to put your stuff somewhere in the 
> bundle, neither with this or any other patch this can be changed.
>     
>     For the patch to standarddirs, I think that doesn't cut it: First must be 
> the app local lookup, then the generic one. Otherwise, you can break any 
> bundle by just installing globally some different frameworks version. E.g. 
> you can break the kate.app bundle by installing some mac ports that uses a 
> more up-to-date Qt version.
>     
>     We really need to ensure that application local stuff wins (which is btw. 
> a problem with my other patches with "use resources" as fallback, too. You 
> just need to install some old/broken ui_standards.rc in etc => bamm, all 
> applications that use kxmlgui are dead, there in the long run I would even 
> remove the lookup in the filesystem).
> 
> Christoph Cullmann wrote:
>     Btw., what would be nice would be if one could tell QStandardPaths: 
> Search first in that location, than in that. That way one could decide which 
> order is wanted without my ugly "search here and then there" hack.
>     
>     Or simpler some fallback from app => generic for all operating systems, 
> just the reverse of your patch and for all OSes, but perhaps I misread the 
> diff.
>     
>     Still even then, as least until such a thing is in and we require such a 
> version of Qt, the manual app => generic search fallback would be needed?

You got me ;=) I will write some .protocol => json converted and the rest of 
the needed stuff.


- Christoph


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/125778/#review87371
-----------------------------------------------------------


On Oct. 24, 2015, 7:06 p.m., Christoph Cullmann wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/125778/
> -----------------------------------------------------------
> 
> (Updated Oct. 24, 2015, 7:06 p.m.)
> 
> 
> Review request for KDE Frameworks and David Faure.
> 
> 
> Repository: kio
> 
> 
> Description
> -------
> 
> Allow .protocol files to be bundled with applications.
> Search in app local paths first.
> Side effect: protocols() result is now sorted by name and allProtocols won't 
> create duplicated cache entries if .protocol files are duplicated
> 
> kioslave helper is search locally, too.
> 
> forkSlaves check was missing in holdSlave to avoid segfault without dbus.
> 
> 
> Diffs
> -----
> 
>   src/core/kprotocolinfofactory.cpp 29ba8f4 
>   src/core/slave.cpp 9ce0d78 
> 
> Diff: https://git.reviewboard.kde.org/r/125778/diff/
> 
> 
> Testing
> -------
> 
> .protocol files are now found if bundled with the application
> kwrite http://www.kde.org works on mac now.
> 
> 
> Thanks,
> 
> Christoph Cullmann
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to