Sunday, March 18, 2007

Help Port WebKit to GNUstep

Mark Rowe said
Please get in touch[2] with us if anyone is interested in getting involved with porting WebKit to GNUstep. It will almost certainly be a quicker means of having a fully-featured web browser on GNUstep than attempting to start from scratch.

Kind regards,

Mark Rowe
WebKit developer
... deleted ...
[2] has a number of types of contact info, with IRC usually being one of the more active means.

5 comments:

Mark said...

Including the contact link from my email would be handy ;-)

Yen-Ju Chen said...

I add it. It does not show up before because the format is not right. Thank you for report it.

Lars said...

A short Q&A done on #webkit:

(01:04:19) Topic for #webkit60 open P1 bugs: http://ln-s.net/IkX | Anonymous SVN repository moving: http://webkit.org/blog/97/svn-repository-location-change
iooi (01:04:36): Howdy!
iooi (01:04:56): Did you read this: http://gnustep.blogspot.com/2007/03/help-port-webkit-to-gnustep.html ?
dkirker (01:05:03): hi iooi!
iooi (01:05:09): hi!
dkirker (01:05:19): that was being discussed yesterday
dkirker (01:05:22): ask bdash
iooi (01:05:23): wonder how difficult that would be
dkirker (01:05:33): I don't know
dkirker (01:05:44): Probably not as difficult as a PalmOS port
iooi (01:05:51): :-)
iooi (01:06:22): is CoreFoundation still a requirement?
dkirker (01:06:31): Not sure
dkirker (01:06:37): I need to look up on that stuff
cheers (01:06:52): there's an off again on again windows port, so I don't think so?
iooi (01:07:01): Nokia did port it to their phones, right?
cheers (01:07:07): yup!
dkirker (01:07:12): yes :D
dkirker (01:07:20): I'll probably be porting that version
iooi (01:07:34): they surely don't have CF over there I guess
iooi (01:08:08): is Nokia's a fork?
dkirker (01:08:16): I believe so
iooi (01:08:40): so it's no longer in your repo?
dkirker (01:08:42): I thought I heard that they were trying to work it into the main branch(??)
dkirker (01:08:53): It is in the cvs
iooi (01:09:04): main branch of WebKit or of KHTML?
dkirker (01:09:10): WebKit
dkirker (01:09:14): 1 sec
dkirker (01:09:27): http://trac.webkit.org/projects/webkit/browser/
cheers (01:09:29): nokia is not a fork
dkirker (01:09:33): Ah, ok
othermaciej (01:09:34): Nokia's port is in SVN, but it's on a branch
cheers (01:09:37): they work on a branch in the main webkit respository
othermaciej (01:09:46): they are planning to merge it back, though unclear what the timing is
iooi (01:10:04): what did they change basically?
dkirker (01:10:06): Ok, that is what I heard
dkirker (01:10:29): I am not sure on that
dkirker (01:10:38): I'll let somebody with more knowledge comment
iooi (01:10:45): o.k.
proton (01:10:46): othermaciej: quick review please (xcode messed up the previous patch on me and I didn't notice) http://paste.lisp.org/display/38358
dkirker (01:10:51): but, I don't think that they use objective-c
iooi (01:11:12): I also think so
iooi (01:11:27): that would be a req. for GNUstep
cheers (01:11:39): using Obj-C?
dkirker (01:11:40): and PalmOS
proton (01:11:45): the "WebKit" layer is Obj-C++ and isn't used for the other ports in general
iooi (01:11:50): yeah ObjC
proton (01:11:59): a GNUstep port may wish to use that layer in some way
dkirker (01:12:02): well, err, PalmOS couldn't use ObjC
iooi (01:12:04): ObjC++ should also be o.k.
iooi (01:12:55): Somebody told me that WebKit is moving towards C++ in the future, is that right?
proton (01:13:28): iooi: WebCore is C++
dkirker (01:13:36): So then I take it that WebCore and JSCore would be ported, but a platform that couldn't support ObjC would have to have a WebKit written for it?
iooi (01:13:43): but WebCore != WebKit
proton (01:13:56): WebKit is essentially a nice Obj-C wrapper around WebCore, and given it's a publically supported API from Apple won't be going anywhere
bradee-meet (01:14:04): iooi - WebKit is largely built directly on top of WebCore
othermaciej (01:14:04): proton: what's this patch doing exactly
cheers (01:14:05): WebCore is a sub-framework (I think that's the right term) of webkit
othermaciej (01:14:06): ?
proton (01:14:21): othermaciej: telling Xcode to use spaces instead of tabs when editing files
proton (01:14:31): othermaciej: regardless of the user's settings in the Preferences
iooi (01:14:47): just the core functionality as the name implies I guess
othermaciej (01:14:53): proton: oh, good idea
cheers (01:15:01): iooi: pretty much
othermaciej (01:15:07): proton: r=me
proton (01:15:11): othermaciej: thanks
iooi (01:15:17): o.k. fine
bradee-meet (01:15:55): iooi: there are other ports of WebKit, though, that aren't obj-c. They try to replicate the cleanliness and the "time testedness" of the objc API in whatever language they are.
irc (01:15:59): bradee-meet is now known as bradee-oh

Mark said...

Attempting to build the Mac OS X version of WebKit on GNUstep will fail as it relies on details of Darwin, CoreFoundation, and Cocoa in some areas. JavaScriptCore and WebCore are quite portable, and have already been ported to Qt, Gdk and Windows. Work would need to go in at the WebCore layer to support GNUsteps rendering primitives (the Mac OS X version use CoreGraphics so isn't directly portable). Work would also need to go in at the WebKit level to have it function on GNUstep without its Mac OS X dependencies.

To summarise: very little of WebKit requires any Apple-specific technologies. The areas that do are those that have not yet been refactored to aid portability. The WebKit developers have done a lot of work in refactoring to ease ports to the other platforms listed above, and I'm sure GNUstep would be no exception.

carmstrong said...

You guys may already know, but I started work on a CoreFoundation emulation library built on top of gnustep-base. Remember that CoreFoundation is an extrapolation of whats in Foundation so the mapping is often 1-1, with a few anomalies (namely allocators and some extra helper objects).

Please feel free to use it in your efforts and extend it as necessary, as I don't think I'll have time to work on it:

http://carmstrong.fastmail.com.au/CoreFoundation-20070304-final.tgz

Chris