Hi, So my goals is to make the complex syncing logic in owncloud-client usable from other applications. In order to achieve this, I'm splitting out non-GUI functionality into its own lib to be able to use it from my own client (a Plasma-based UI).
The owncloud-client repository already contains two libraries: ocsync (a low level fork of csync) and owncloudsync (a slightly higher level, Qt-style API on top of csync which handles the actual syncing). My plan (after discussing this with Olivier and Klaas is to split out yet another library which has the account handling and sits on top of owncloudsync. The bits that stay in the client are then basically just the GUI (mostly the QWidget-dependent code). So I went ahead with this and cut up the client further, to a point where it works again against my split-out libs. I haven't noticed any regressions, but I also haven't built it for Windows or Mac (I don't have such systems available), so it would be helpful if someone could build my branch against these systems to catch further fallout. The library already works with my (unfinished) Plasma client, as a proof-of-concept. Along with the splitting, there are some cleanups for buildsystem inconsistencies, I've tried separating them out, but it quickly became quite a chore to test these things individually, and really -- if it works as a whole, we should be fine. My code is in https://github.com/sebasje/mirall/tree/sebas/libsplit and is up to date with owncloud-client's master. I'd be happy if you guys could have a look and tell me what needs to happen to get this merged. Once the library split is merged, we can make further improvements, for example cmake find module, librarizing things more (EXPORT macros), moving stuff in different libraries into their own namespaces, reviewing and polishing the API further, and moving things between libraries to improve the semantics of the splitting. I've also not moved any code files yet to make merging in upstream changes easier. (I'm a bit afraid of bitrot, so I'd rather get this stuff in sooner than later, and incrementally improve upon the result then.) As I said, reviews and comments are most welcome. Cheers, -- sebas Sebastian Kügler | http://vizZzion.org | http://kde.org _______________________________________________ Devel mailing list [email protected] http://mailman.owncloud.org/mailman/listinfo/devel
