From: Ralf B. <Ral...@ou...> - 2007-09-29 11:00:51
|
Imported now Patricks patch to trunk, I splitted it the following way: 1. mbstring save handling of content-length header: created a common function bytes(string), which works with mbstring.func_overload set AND also with mbstring completely absent. That function already existed as method in some eGW classes, but it's now centralized in phpgwapi/inc/common_functions.inc.php ==> commited to trunk AND 1.4 2. logout.php patch is not commited at the moment, as it is not SyncML releated and I'm not sure what's it's purpose 3. SyncML patches, here's patricks description: - handles the default config for current versions of funambol (i.e. the scard/stask/snote/scal locations) - tries to be a bit smarter on how the data content should be encoded based on what the client specified (sif+base64/vcard, / fragmented or not, etc.) - workaround a bug in some versions of funambol, where funambol does not specify the proper sif type for the type of requested data - imported patch #117 from egw's tracker - make sure that the logs generated by the horde code go to stderr so they can be view in the webserver's logs - as much as possible reduce code duplication. For example, the categories are handled in the parent classes for both the SIF avn VCAL formats for each type of data (addressbook,infolog,calendar). - make sure the code can handle more than one categories in each direction - treat the 'sony ericsson' vendor string just like 'sonyericsson', the newer phones apparently have a space in the vendor string... (this touches some files in the icalsrv as well) - handle notes: these should now work with everything (funambol or other) - remove more code duplication: the syncml "api" for the various data types (calendar, contacts, infolog) is now common for both the vcard and sif data formats (cf the files that need to be removed) - handle the "privat" filter in infolog like the "private" filter (some part of the code use the name without the trailing e) - imported patch # 267 from egw's tracker ==> commited to trunk as r24476 If you want to test it on an up to date 1.4 svn install, you can use: cd /path/to/egroupware ./svn-helper merge -c 24476 http://svn.egroupware.org/egroupware/trunk/\$module If you dont want to experiment with your SyncML install you better not update in trunk at the moment (or only 'til revision 24475)! I keep you posted about our test progress. Ralf Ralf Becker schrieb: > Patrick send me a huge patch fixing many issues in our current SyncML > implementation. > > I looked at the patch briefly and really like it :-) > > As the patch arrived on the day of the 1.4.002 maintenance release and > it's really huge, I decided to not include it immediately. > > I want to import it into trunk in the next days, so it can have some > more review and testing. If it improves our SyncML support as described > by Patrick and there are no problems, we can add it in a few weeks to > the 1.4 branch and have an other maintenance release. > > I also asked Patrick about helping to develop and maintain the SyncML > code in eGroupWare, to which he agreed. Therefore I want to add Patrick > as a developer to the project and I'm willing to mentor him, if there's > no other candidate. > > Please object, if you dont agree ... > > Ralf > > Patrick Bihan-Faou schrieb: >> Hi Ralf, >> >> >> >> Ralf Becker a écrit : >>> Hi Patrick, >>> >>> Patrick Bihan-Faou schrieb: >>> >>>> Ralf Becker a écrit : >>>> >>>>> Hi Patrick, >>>>> >>>>> sure send them to me. >>>>> >>>>> Are you interested in joining the project to help maintain the SyncML stuff? >>>>> >>>>> >>>>> >>>> Yes, I can handle that I think. >>>> >>> good news :-) >>> >>> >>>> I am preparing the patchset for syncml, expect it for later today. >>>> >>> Ok. I'm preparing for the 1.4.002 bugfix and maintainance release, which >>> is to be released tomorrow. >>> >>> It would be helpful if you not only provide a patch but also a kind of >>> list what's fixed and how you assess the stability of the new code. >>> >>> >> Here is my set of patches for syncml. This patchset covers a bit more >> though and I left some unrelated stuff because I feel they are important >> in areas that approach syncml. >> >> I used svn rev 24462 from the 1.4 branch as the base for the diffs so it >> should apply fairly cleanly without any trouble... >> >> In addition to this patch, the files in syncml/sif* should be removed as >> they serve no purpose anymore (the code was merged in the other >> syncml/[contact|calendar|...]/api.php files). >> >> Here is a quick summary of what this set of patches brings: >> >> - handles the default config for current versions of funambol (i.e. the >> scard/stask/snote/scal locations) >> - tries to be a bit smarter on how the data content should be encoded >> based on what the client specified (sif+base64/vcard, / fragmented or >> not, etc.) >> - workaround a bug in some versions of funambol, where funambol does not >> specify the proper sif type for the type of requested data >> - imported patch #117 from egw's tracker >> - make sure that the logs generated by the horde code go to stderr so >> they can be view in the webserver's logs >> - everywhere the Content-length HTTP header is set, make sure we do >> count actual bytes rather than just "characters" as this may be wrong in >> multibyte setups (this covers more than just syncml) >> - as much as possible reduce code duplication. For example, the >> categories are handled in the parent classes for both the SIF avn VCAL >> formats for each type of data (addressbook,infolog,calendar). >> - make sure the code can handle more than one categories in each direction >> - treat the 'sony ericsson' vendor string just like 'sonyericsson', the >> newer phones apparently have a space in the vendor string... (this >> touches some files in the icalsrv as well) >> - handle notes: these should now work with everything (funambol or other) >> - remove more code duplication: the syncml "api" for the various data >> types (calendar, contacts, infolog) is now common for both the vcard and >> sif data formats (cf the files that need to be removed) >> - handle the "privat" filter in infolog like the "private" filter (some >> part of the code use the name without the trailing e) >> - imported patch # 267 from egw's tracker >> >> >> That's about it... >> >> Completely unrelated, but potentially usefull: >> - add support for "logout" when HTTP auth is used (in the logour.php >> file) this is completely unrelated to syncml, but is quite handy... Feel >> free to exclude that part of the patchset. >> >> >> >> All in all, I have about half a dozen installs of egw with these patches >> and with them nobody complains about problems with syncs over SyncML >> anymore. There might be some bugs in there, but so far this is quite >> stable. These patches have made some users select egroupware (in cases >> where syncs with outlook where an absolute must have). >> >> I have noticed one issue, which is probably present in the unpatched >> code as well: when a participant is removed from an event, the remote >> device is not told to delete the event in question for that participant. >> This is because the LUID/GUID map is not used by the SyncML code yet for >> calendar items. Note that similar bugs are likely to be present with tasks. >> >> I plan on working further on this code, I'll try to add support for >> event participants in SIF (it is being implemented in funambol 6.5) and >> also email sync using syncml. Also I'd like to work on server triggered >> syncs, but this is more far fetched... >> >> If you have any question, please contact me. >> >> Don't pay attention to the svn rev that is indicated in the patch. I >> have my own subversion repos to maintain my changes to egroupware: trunk >> == my version, egroupware's version is branches/egroupware.org. >> >> >> Patrick. >> >> > -- Ralf Becker eGroupWare Training & Support ==> http://www.egroupware-support.de Outdoor Unlimited Training GmbH [www.outdoor-training.de] Handelsregister HRB Kaiserslautern 3587 Geschäftsführer Birgit und Ralf Becker Leibnizstr. 17, 67663 Kaiserslautern, Germany Telefon +49 (0)631 31657-0 |