5 Feb 2002 Donwulff   » (Journeyer)

Well, is it really so much of a surprise that open source is lots of work? I mean, after being faced with the Advogato's journal greeting of "The range of stuff you can do with your Advogato account is increasing. Now you can certify other people on the site.", that is. I think we've only had it since Before Christ or so.

Anyway, more seriously, a week or two back I was working on checking if GCJ could cross-compile the rhug Java- package collection. Easy enough, you say, just build the cross-compiler, configure the package, and off you go! Well, not so fast. First you need to get across at least six different bugs in building the cross-compiler needed for rhug. And don't bother clicking on the previous link, either; it takes half of an eternity for the GCC gnatsweb to answer. After you've done that, it's time to re-write the build scripts for the package. Okay, simple enough - once you find all the problems.

Being an all around nice guy, I thought I'd provide the fruits of that simple effort to others as well, and took a quick CVS diff that I passed on to maintainers. Well, there's quick, and then there's CVS. Needless to say, in this case you could go have a few cups of coffee (Or CocaCola, if you prefer) while waiting for the CVS load to go low enough for them to allow you to access it. And then a few more. Once you actually get through, it's time go for few more coffee cups while waiting for the diff to finish. Or actually, you can have cups of coffee until you're taken into hospital, had your stomach pumped for caffeine poisoning, and the cvs diff would still not be finished.

But anyway, I finally made it and submitted the diff, with applicable ChangeLog entries. So, on Monday, I found an e- mail in my mailbox from the maintainers telling that every one of the hunks in the patch failed, and I should provide a separate, non-patch ChangeLog entry preceeding any hunks they apply to.

Oh yeah, did I remember to mention rhug is a collection of 16 Java program that can be compiled with GCJ? Each directory with their own ChangeLog, every directory and the main makefile needing a slightly different combination of changes and, I'm not kidding, ChangeLog datestamp formats. Need I go on? So this patch would be essentially 17 different ChangeLog entries, each followed by one or two hunks of actual patch. I suppose I should feel glad this project even had ChangeLogs, unlike most Open Source software, but right now that isn't really comforting me.

Well, I just spent practically whole yesterday producing the required patches, trying my best to distinquish the further experimental changes I'd made since submitting the last patch, and working around CVS diff's and patch's braindeadness. I didn't bother to break it up into separate hunks, with each one preceded by a distinct ChangeLog entry, with an exact millisecond-precision timestamp of the last change I made in the particular timestamp and timezone. I hope the patch will suffice this time.

So okay, it's a rant, but maybe it's time to consider a move from Open Sources present stone-age project- and source-management tools into something more modern. Unfortunately, even my long journey into the abyss of CVS, diff, patch, ChangeLog entries and the unholy trinity of the "automated makefile tools" didn't cause me to have a magic inspiration on what that replacement should be.

Meanwhile, on the Windows side, every open source project I've ran into in so long a time requires either latest version of Microsoft Visual Studio or (in some cases AND) latest Borland C++ Builder Professional. I'm not sure that's the way to go, either. If I had that kind of money, I wouldn't have need nor time for open source!

Latest blog entries     Older blog entries

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!