Hi there, My name is Daniel Ferreira and as a Google Summer of Code project I decided to tackle the ten-year-long[1] effort of porting WebKit to GNUstep one more time (and hopefully get somewhere this time).
Since 2009, GNUstep has gained a lot of maturity in its graphics stack and on its implementation of CoreFoundation, so now having a WebKit port in it seems like a more plausible goal – as well as a fun challenge. This is very important to GS since it still has no web browser running on top of it. Also since 2009, it seems like WebKit has gained mature ports on GTK and Qt, which has made the demand for a GNUstep port quite smaller for the project. However, it does seem interesting to offer a cross-platform port that adds portability to a lot of currently Mac-specific code – a goal a GNUstep port would fulfill. In an ideal world, GNUstep would be mature enough for us to build the Mac port on a Linux machine pointing to GNUstep libraries and all would be well. Sadly, this is not the case and a GNUstep port on WebKit would require some adjustments on WebKit (although GNUstep certainly would receive many patches as well implementing stuff WebKit would use). That being said, I decided to try compiling WTF as a first approach to this undertaking, and I introduced a "PlatformGNUstep.cmake" file that is mostly a copy of PlatformMac.cmake. It ends up defining WTF_PLATFORM_MAC and WTF_PLATFORM_GNUSTEP as code macros, and whenever there is some Mac-specific code that GNUstep can't tackle, we try a cross-platform alternative. Otherwise, the behavior is just like that of the Mac port. Through some adjustments to WebKit code (e.g. GNUstep does not support XPC, QOS, Mach kernel memory operations, so in these cases we either do nothing or use Linux-specific code as an implementation) and GNUstep adjustments (regarding some missing CoreFoundation functions), I managed to get WTF compiled and linked. I'm now moving on to JavaScriptCore to be able to test everything (and very likely spend quite some time figuring out the most diverse issues that will show up). That being said, I will send a patch as soon as I get JSC in a semi-decent state. However I wondered if this introduce new platform + do the same thing as Mac port with some exceptions approach seems reasonable to the project now that I have realized it is actually feasible. Thanks, -- Daniel. [1]: https://lists.webkit.org/pipermail/webkit-dev/2009-October/010333.html _______________________________________________ webkit-dev mailing list [email protected] https://lists.webkit.org/mailman/listinfo/webkit-dev

