In lib/macro.c:450 I read: /* Names must start with alphabetic or _ and be at least 3 chars */ Now, this is ridiculous - I used to do %define CC gcc [...snip...] %define EXTRA_BUILD CC='%{CC} -g' CFLAGS='blabla' which is no longer legal ... And the error message doesn't give any hint as to why.
One and two character macro names are reserved for the macro implementation itself. Performing the check on length rather than on a reserved keyword table permits a robust implementation for both forward and backward compatibility with different versions of rpm. Do you have specific suggestions and/or patches for improved error messages? Please reopen this bug if so.