Loud ramblings of a Software Artisan

Thursday 6 October 2005


Where is the source?

Wednesday 5 October 2005

I'm so pissed off

I'm so pissed off. Hallski just announced that andersca was doing for Imendio a port of Gtk on MacOS X.

What piss me off even more, is that earlier in the year, andersca ordered me to stop working on it because he wanted to start in a few month. I told him no, because each time someone a similar situation occur, the whole project stop; so obviously continuing was the only way to keep a pace, even slow and not waste time ever again. At GUADEC, I wanted to talk to him about that, we never did (he sort of escaped, etc). I did put the code in Gtk CVS because that was the only way to make sure other people could work on it, I never got any feedback. At what point it was said to me that andersca might take another project because he wanted to do that solo (I knew that developers had big ego). Since I never heard from him I assumed he did pick something else. And the announcement that he got commit access to WebKit just led me to think the same.

OK, I haven't worked on it since really, mostly because of lack of time or motivation or a combination of both and of because other priorities like an utterly broken AbiWord on MacOS X (it still is). But I must admit that this is a nice backstabbing and it is really appreciated to see that amongst the GNOME community, there are still people who feel like the need to do so. I personnaly really feel offended as I never hid anything about what I was doing, and what Imendio did behind my back just assume that what I was doing is crap (because they didn't feel like cooperating).

That said, I no longer will be working on that port, because I don't care anymore. Maybe I'll just concentrate on things people give a little bit of appreciation and gratitude, because on that, Imendio, andersca and Hallski showed to be at the complete opposite.

Oh and if you think I'm writing that just because I'm just angry, it is not. In fact I have been mumbling about it for weeks, but I promised my "source", who gave me the info to be honest with me, to STFU. I did.

Thursday 21 July 2005

Desktop Developer Conference debriefing

Back from Ottawa and Desktop Developer Conference. I now have my head full of nice ideas for AbiWord, some crazy, some less:

Use UniConf for the preferences. This would be more a proof of concept and a toy to play with than a real feature for AbiWord. I don't see that very hard to do. Add that to my crazyness.

Write a Cairo backend for AbiWord. This is more sane, and somewhat a big work, but it is good crack. Here are the reasons:


  • one backend for Mac, Win and Gtk. Bug will be down to Cairo and not to each platform...
  • SVG support will be way easier. We need SVG support.


  • Cairo maturity. But if nobody use it, who will test it ? AbiWord pioneered with XML for the file format.
  • One more dependency, which seems to be a concern for win32 developers. Nothing that can't be solved.
  • Performance. Again, that will give a real test case.

And I think I'll move my Gtk+-MacOS X work in gtk+-2.7 branch (I mean rebranch from there) to use Cairo as well. Now it makes sense.

Monday 13 June 2005

gtk+ on Mac, status

Since people are asking about GTK+ on Mac, here it is.

I branched CVS off 2.6.7.

cvs rtag -rGTK_2_6_7 gtk-2-6-macosx-branchpoint gtk+
cvs rtag -b -rgtk-2-6-branchpoint gtk-2-6-macosx gtk+

Why this version ? Because I currently don't feel like working on the moving code base that is 2.7, and that using a "bug free" version is probably safer. I'll merge back to 2.7 at some point.

Now, I'm getting all my changes merged into that branch. It leads to nothing that work.

Friday 10 June 2005


I feel like completely demotivated by Apple and MacOS X. First they make barely possible to support older OS release with newer hardware. Then I realize that lot of core APIs are only available in newer OS release, like CoreGraphics. I'm not talking about new features, but APIs of existing things.

But then some people, including some Apple engineers, come and say "why do you want to support AbiWord on 10.2 while the current version is 10.4 ?".

  • First I don't have 10.4 because I don't have that much money to throw into an OS upgrade. And despite having had that machine in February, I haven't had any discount offer to upgrade. Not really incentive.
  • Second, I'm not alone, there are a lot of people that still use 10.2 or even before. I'd love to support 10.1, but technically it is not possible. 10.2 however is OK, API-wise. Then come the problem of building for 10.2. We have older fink, that work for the dependencies, but when you try to use the SDK for 10.2 as XCode allow, then you are out of luck as it fails (see bug 8971).
  • Third, I don't want to sponsor the upgrade push made by Apple towards MacOS X.

Some Anynoymous Coward also proposed the "compatibility lab" from Apple. Sure thing, if he want to pay for the access and the trip, because the closest location is Cupertino, California, and one need be ADC Select of ADC Premier member to access, or to get an asset from someone else (see info page). Remember, AbiWord is run by volunteers. But that is slightly overkill as all I need is a machine to load 10.2. Someone else suggested PearPC, I must say I tried that, but it was no fast on my PIII 1GHz.

Perhaps should I just follow Ulrich Drepper advice and focus on Linux (and GNOME) instead of trying to satisfy a minority. Yes, for me MacOS X become a minority. Its users seems to not care at all about Free Software, and its developers are not into the philosophy as we haven't had any developer on AbiWord beside FJF and I (and I must note one simple patch I got once from someone else). With Apple not helping, because they consider you have to pay big bucks to be a developer, as the ADC Online does provide virtually nothing, it is not encouraging.

So now what shall I do ? Continue the 2 Mac centric project I'm working on: AbiWord and Gtk for MacOS X ? Pass on and focus on other GNOME centric code ? I don't know. Perhaps I'm just having a moment of grumpiness. I was happy to see Apple releasing WebCore, but the more I think, the more I suspect it to be a smoke screen to appease developers, as nothing towards providing help to support open source project has been done, at least in the case of AbiWord, and given the state of OpenOffice, they probably don't care (but since Sun is behind I can eventually get the reason).

I see some objections like "Apple ported FireFox to Intel". Sure thing, they needed a demo and a major application for that purpose, so they couldn't have a better candidate than a big open source application that runs on Mac. They could have selection AbiWord, but it is not that popular, and in fact I don't care. It is all smoke and mirrors.

And like my rant is not finished, there are some people that ask me to drop my work on the port of Gtk on MacOS X because they want to do it. I'm just about to commit what I have done in GNOME CVS for sharing... that's what I prefer.

Friday 15 April 2005


I have implemented GdkDisplay on MacOS X. It is basically a wrapper around NSScreen class and NSApplication for a couple of things. It is probably not complete, like handling the clipboard.

Next will be GdkScreen, a wrapper the NSScren instances.

I also started to write some unit tests, so that with make check I can verify I'm not crashing, and that it works...

Wednesday 13 April 2005

New path

[Crashed Windows]

I started coding on Gtk MacOS X, and I investigated what they did in XDarwin the rootless XFree X server for MacOS X. I appears that they use Cocoa. So I decided that it my be a solution as I only need event and window management. The graphic layer will be Quartz directly.

Of course see screenshot on the side.

:-) Actually it is one of the "multimedia screen" I saw from outside on the street... crashed.

Friday 8 April 2005

Sane build

Today, part of my NDF, I started working on Gtk+ for MacOS X. So I had build a sane environment to get started.

Random caveats:

  • Fink only has glib 2.4. So have to build glib and atk as well.
  • On MacOS X, it is not LD_LIBRARY_PATH but DYLD_LIBRARY_PATH. Go figure why they do it differently on MacOS X, but this is a noticeable difference.
  • Freetype2 package from Fink is broken as it put freetype-config somewhere in /sw/lib/freetype2/bin/freetype-config. And no I can't use freetype-config to find freetype-config path unlike someone suggested, as a joke, on #gtk. Playing with PATH helps. Bug 1179574
  • CVS needs insane amount of disk space in /tmp. 70MB was not enough to import. I remove tetex as this machine is now head-less...

Here are the steps:

  1. get all the dependencies to be build. glib, atk and pango with Freetype2 backend are done.
  2. hack the configure to detect MacOS X. Almost done.
  3. port gdk by writing and Carbon and CoreGraphics backend.
  4. Have all the samples running.
  5. Make it a Framework for nice MacOS X integration.
  6. Write an ATSUI backend for Pango.
  7. Move to gtk 2.8. This may happen sooner depending on the time line.

Sorry, there is no screenshot.

Friday 1 April 2005

Even More about Gtk on MacOS X

My latest blog about Gtk MacOS X leveraged some questions. I'll try to answer:

Q: Why don't you help GTK-Cocoa guy ?

A: I never said I wouldn't. I'll just investigate that code and see what is good and what can be done. At first sight, two problems. It is a reimplementation of the widget in Cocoa, and it is Gtk+ 1.2.

Q: Why don't you start with Gtk+ 2.8 that has a Cairo backend which has a Quartz back end ?

A: So what do I do with the event management ? AFAIK Cairo does only provide graphic layer. I'd prefer go Quartz straight, with ATSUI for the text.


I took a shortcut saying that Cocoa use Carbon. Sure it does, for menus and to have the same print and file dialogs. But they are both based on CoreFoundation (in fact Cocoa more like interact transparently with CoreFondation), CoreGraphics and ATSUI.

Now, stop talking, start coding.

Thursday 31 March 2005

Gimp hack Photoshop look alike

So GimpShop has been released, it is a hack of Gimp to make it look alike Photoshop.

Too bad, it still require X11 on MacOS X.

I wish they spent more time doing really useful things like porting Gtk+ on MacOS X.

Wednesday 30 March 2005

More info on Gtk MacOS X

So I started looking at porting Gtk to MacOS X without requiring X11. Since I don't like reinventing the wheel, I'm looking at what has already been done.

Now a bunch of Q&A:

Q: Why did you start with Gtk 1.2 ?

A: I didn't I just built gtk-osx which is Gtk+ 1.2. My goal is to port Gtk+ 2.6.

Q: Will you use Cocoa ?

A: I don't think. Several reasons:

  • it is too high level
  • I plan to reuse gtk-osx which is Carbon code, as it is a port of the old MacOS 8 mac-gtk

And Carbon is faster and much lower-level. Cocoa itself use Carbon.

Q: Will it run on MacOS 9 ?

A: No plan at all. This will be pure MacOS X.

Q: What about Quartz ?

A: I'll use as much as I can instead of QuickDraw, but Quartz lack lot of functionnalities to be exposed.

Q: When will it done ?

A: Don't know. I haven't started to code. And I have AbiWord to work on.

Q: Why do you do that ?

A: I want people to use Gimp on MacOS X, as well as Gnumeric, Evolution and Dia. In fact any of the fantastic Gtk apps we have.

First step

I pulled a tarball of gtk-osx and did rebuild using Project Builder.

Here is the screenshot:

It is only gtk+ 1.2. It is a long way to the end.