GNOME Bugzilla – Bug 722068
Make Evolution build under Win32
Last modified: 2014-07-10 19:22:57 UTC
Created attachment 266088 [details] [review] evolution364-win32.patch Please consider attached patch, which permits Evolution to build and work under Win32. It basically adds configure checks, makes gnome-desktop and libsoup-gnome optional, reimplements platform-specific functions, and avoids use of win32-reserved type names.
Created attachment 266089 [details] [review] configureac.patch
Thanks for the patches, but these are for an obsolete version (3.6). Patches need to apply cleanly to the latest code in git.
It's weird you do not get the same error on 'interface' keyword also in evolution-data-server, where it is used quite many times. I guess you managed to compile evolution with a C++ compiler, instead of C, which would explain the error (I suppose you've got an error on the 'interface' word, because most of the patch is just about the replacement; by the way, I would prefer a change to 'iface', rather than 'interf' myself, following usual convention from GLib/GIO).
Ah, no, you filled bug #721128 for eds where you do the similar change. It confused me that you attached the eds part that sooner than evolution's. I'm sorry for my fault.
(In reply to comment #3) Hi Milan, You're totally right, "iface" would be a lot better than "interf" (even spotted parts of code using this name, but after the fix). I guess I can just sed the patch to do the replacement... Adapting the patch to git master is more time-consuming, so I've just put it on my TODO list. Still have to clean the binaries before that.
Right, we can do this in steps, and as the first, just replace 'interface' with 'iface' in evolution-data-server and evolution itself. The sed itself might not work 100%, as the 'interface' word is also included in comments, where it might not be replaced.
Created attachment 267490 [details] [review] evolution364-win32.patch Right, here the patch split into 2 pieces : - an "iface" patch with just the "interface -> iface" replacements ; - a standard patch with 2 other win32-specific replacements (SERVICE_DISABLED -> SERVICE_DISENABLED ; DOUBLE_CLICK -> DBL_CLICK) which shouldn't have impact, and the real implementation logic. Please note tht 2nd patch also splits the HTML_HEADER macro into two parts ; my compiler (GCC 4.6) wasn't able to use a #define that uses the result of a function (EVOLUTION_PRIVDATA) to do string concatenation. I'll do the same for evolution-data-server soon ; sorry for the delay, I'm trying to keep up.
Created attachment 267491 [details] [review] evolution364-win32-iface.patch Only "interface -> iface" replacements.
What's your process for building this on Windows, btw? I'd like to try and reproduce it. Are you using Cygwin or some other Unix-emulation toolset?
Oh, you still have it in 3.6.4 (as I realized within bug #721128), that's pity, because the target will be git master, but it's too different from 3.6.4.
Review of attachment 267490 [details] [review]: ::: modules/text-highlight/e-mail-formatter-text-highlight.c @@ +40,2 @@ #include <X11/Xlib.h> +#endif I think this should be dropped completely, to be 'ready' for wayland too (not that you should do it, just a side note from me).
Yes, sorry that they're still for 3.6.4 ; just trying to do one thing at a time. I'll try to make revised patches available next week. @Matthew Barnes : plain MinGW. I am preparing as reusable buildenv based on http://www.tarnyko.net/repo/gtk3_build_system, so anyone will be able to rebuild the whole stack with a few scripts.
Review of attachment 267491 [details] [review]: I just committed this to git master, as commit 5c60d57. The other patch still requires a rewrite to git master from 3.6.x.
(In reply to comment #12) > Yes, sorry that they're still for 3.6.4 ; just trying to do one thing at a > time. I'll try to make revised patches available next week. tarnyko: Any chance to rework the last patch?
I used some parts of your patch, but then also changed some other things. Created commit fa3d3c2 in evo master (3.13.4+) [1] Created commit f699d48 in evo evolution-3-12 (3.12.4+) [1] https://git.gnome.org/browse/evolution/commit/?id=fa3d3c2