|
2003-12-31
|
GNOME
A new gnome-media release was due since the old one didn't build against the latest gstreamer release. Now, my problem with gnome-media every time I try to do some things in it is that make distcheck is completely broken because of all the weird hacks-upon-hacks in the build system. I've looked at it a few times and noticed small tweaks that could be made here and there, but never really got round to fixing stuff decently.
Since my job now currently also entails making sure GStreamer trickles down to applications properly, I feel more responsible for a working gnome-media as well. And since I'm really anal about build stuff anyway, I just didn't feel like I'd do a good release if the damn thing didn't manage to pass make distcheck.
So I put on my special autotools boots and jumped right in. Boy, was I in for a treat. I first picked off some issues that were plagueing more than one module, as well as looking at some intltool bug that crept in due to recent commits. Then I checked the strange scrollkeeper bug that everyone kept complaining about. Turned out it was a simple bug in a .h.in file that hardcoded the path to the logfile as ${prefix}/var/log/scrollkeeper.log, literally.
Then I fixed some bugs where generated source code from IDL was being built as two different objects because it was both used as source for a binary and a library. The simple way to fix this is to make a non-installed helper library.
Then I fixed some bugs with a whole bunch of generated files not being cleaned properly, just about everywhere. Sigh :)
After all of this, running make distcheck left me with two files that weren't cleaned that left me completely stumped. legal.xml in gnome-cd/doc, es and ko. But for none of the other languages.
I guess I spent three hours trying to figure out what the hell the difference between these two was, and why some rule was being triggered out of the blue that copies legal.xml to the build dir.
Following the build log, I traced it down to the two same commands giving different results, and I noticed a rule got triggered because legal.xml was commited one second after gnome-cd.xml in those two subdirs.
[gnome-head] [thomas@otto gnome-media.build]$ stat gnome-cd/doc/ko/legal.xml File: `gnome-cd/doc/ko/legal.xml' Size: 3282 Blocks: 8 IO Block: 4096 fichero regular Device: 306h/774d Inode: 804646 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 500/ thomas) Gid: ( 501/ gnome) Access: 2003-12-31 03:32:59.000000000 +0100 Modify: 2003-04-08 09:31:37.000000000 +0200 Change: 2003-12-16 13:00:56.000000000 +0100 [gnome-head] [thomas@otto gnome-media.build]$ stat gnome-cd/doc/ko/gnome-cd.xml File: `gnome-cd/doc/ko/gnome-cd.xml' Size: 16428 Blocks: 40 IO Block: 4096 fichero regular Device: 306h/774d Inode: 804645 Links: 1 Access: (0664/-rw-rw-r--) Uid: ( 500/ thomas) Gid: ( 501/ gnome) Access: 2003-12-31 03:32:59.000000000 +0100 Modify: 2003-04-08 09:31:36.000000000 +0200 Change: 2003-12-16 13:00:56.000000000 +0100
I have no clue what the rule is supposed to do. I know what it does, but I see no reason why it should do this, so I removed it.
I hope the three hours trying to figure out what the difference was will pay me back somewhere down the road.
Anyway, it's hard to explain how satisfying it is to finally see
================================================== gnome-media-2.5.2.tar.gz is ready for distribution ==================================================
after knowing the whole build was broken for months.
Not really sure if it will get noticed at all though :) But I figure I at least get some karma points for doing the ugly stuff nobody wants to do, and I've learned some new lessons along the way. I should really get started on my ideas for the gnome maintainer guide someday soon.
If you're wondering why I spend my time writing this, it's just because being on Spanish ADSL makes me realize how incredibly slow the CVS protocol is because it is sending diffs for every file back and forth. So I'm typing this during the time I spend waiting for each set of commits of my fixes. Sigh.
So, release done, I think I've postponed my break for about twenty times, so it's time for bed.