From: Rafael Garcia-Suarez Date: 10:32 on 13 Sep 2007 Subject: Some more cvs hate. You never get tired of hating CVS. $ cvs up cvs update: move away Foo/Bar.pm; it is in the way C Foo/Bar.pm okay. $ rm Foo/Bar.pm $ cvs up U Foo/Bar.pm File restored. You'd think cvs would know about it now, right? Let's redo a cvs up just to be sure. $ cvs up cvs update: move away Foo/Bar.pm; it is in the way C Foo/Bar.pm PRINT "HATE" GOTO 10
From: Rafael Garcia-Suarez
Date: 08:33 on 15 Mar 2006
Subject: Some fresh rpm hate
And now, some hate for developers. Sorry in advance for our
non-C-fluent readers.
Somewhere in the rpm library headers, up to version 4.4.4, you have
this nice typedef:
typedef void * (*rpmCallbackFunction)
(/*@null@*/ const void * h,
const rpmCallbackType what,
const unsigned long amount,
const unsigned long total,
/*@null@*/ fnpyKey key,
/*@null@*/ rpmCallbackData data)
So far so good. Except that in 4.4.5 the "amount" and "total"
arguments were changed to unsigned long long (without any mention in
the release changelog, of course, that would be telling).
So, if you have some C program that defines an rpmCallbackFunction,
when it gets called, the call stack is blown, your program segfaults
and gdb is confused. Hard to trace. Depending on the C application,
this might also have unnice consequences on your system's rpm
database, I suppose.
But it doesn't stop there. I haven't been able to figure out a way to
check for the version of the rpmlib you're linking against via plain
#ifdefs. Which means that I have to fallback to some Makefile magic to
add a CPP symbol that says whether I need an unsigned long or an
unsigned long long here. Duh.
From: Rafael Garcia-Suarez
Date: 19:03 on 13 Sep 2005
Subject: byacc
In the perl makefiles, there's this rule somewhere :
check_byacc:
@$(BYACC) -V 2>&1 | grep 'version 1\.8\.2'
So far so good. But on my system I've byacc 1.9 installed by default.
And recompiling a2p.y works fine with byacc 1.9 too. So I thought,
let's change this makefile so it allows byacc 1.9 too.
But you know what ? In 1.9 they've removed the -V option. Worse,
nothing else works: -v, -h, --version, --help,
--just-give-me-your-version-you-bloody-piece-of-junk, etc. Even worse,
strings(1) can't find the version of the binary.
Hate. You know what, I'll just use bison instead.
Generated at 10:28 on 16 Apr 2008 by mariachi