evolution/e-util and evolution-data-server/libedataserver contains lots of overlapping files. These need to be compared and the duplicates removed. Also check out http://bugzilla.gnome.org/show_bug.cgi?id=323529.
Identical Files, Remove
These files are either completely identical, or have some non-semantic changes, like in comments or added G_BEGIN_DECLS/G_END_DECLS guards. Usually it's the libedataserver copy being the one that has been updated. The copies in evolution/e-util can be dropped from the Makefile.am and cvs rm'ed.
Same Name Different Code, Needs Work
Here the copies in evolution/e-util are the ones that have been developed further. Either those changes should be merged into the copy in libedataserver and the e-util copies dropped. Or, if there is functionality in these that is truly private to the Evolution app and that shouldn't be in libedataserver's API, then create a new header for Evolution suitably named for that functionality. Keeping two copies with the same name is confusing and should not continue.
Same Code in Several Places
- e-d-s/servers/exchange/storage/exchange-account.c:e_filaname_make_safe(). Exact duplicate of evolution/e-util/e-util.c:e_filename_make_safe()
- e-d-s/servers/exchange/storage/e-folder-exchange.c:e_mkdir_hier(). Essentially a third copy of this function, also found in libedataserver/e-util.c as e_util_mkdir_hier() and in evolution/e-util/e-util.c as e_mkdir_hier(). All are essentially the same (although the Evo one has received Win32 love) and obsoleted by g_mkdir_with_parents().
Unique To Evolution, Keep