Here is a new bdist_rpm patch that adds the following variables to package_data:
Strings: icon - path (relative to setup.py) to an icon which will be used for the package in graphical rpm front-ends
distribution_name - placed in spec file 'Distribution' field
pre, post, preun, postun, prep, build, install, clean - spec file scripts (defaults are still provided for prep, build, clean, and install that should work 99% of the time)
String or number: serial - placed in spec file 'Serial' field
Lists of strings or strings: provides, requires, build_requires, conflicts, obsoletes - placed in appropriate fields in spec file
The default value of 'group' in package_data has been changed from 'Applications' to 'Development/Libraries'. Type checking has been cleaned up a little. The default addition of 'README' and 'README.txt' to the doc files can be overridden by defining doc as a string rather than as a list of strings. Defining doc as '' will prevent any files including 'README' and 'README.txt' from being include in the doc files.
I modified clean.py so that 'clean -a' removes the 'build/rpm' directory. (The rpm program handles cleaning of the 'build/rpm/BUILD' directory, unless 'bdist_rpm --no-clean' is specified. (Or should --no-clean be the default for bdist_rpm?))