Something weird happens if the format of the .rpmmacros file is wrong: If I do: "%_topdir /home/crichton/srpm" I get: Failed to rename /usr/share/locale/en_US/LC_MESSAGES/libc.mo to /usr/src/redhat/SPECS/rpm-spec.1GN3Nd: Permission denied: No such file or directory If the quotes are gone, things work. I have a funny feeling about this one... RPM is stock from Zoot, no errata fixes applied.
This is basically a configuration problem, and rpm should arguably enforce stricter rules in parsing the macros file (current behavior is to ignore any lines, after trimming leading white space, that do not begin with a leading '%'). Trying to build with a broken configuration (i.e. the correct value for %_topdir was not set) can lead to all sorts of weirdness, as the _topdir value is used to construct almost all of rpm's paths. Try alka-seltzer for the "funny feeling", it ain't what you think it is :-)
OOPs, yes it was you think it is, freed memory used in an error message. This is fixed in the tree.