1. I have to untar, build and install every time I want to re-build the package. This is a design flaw. 2. RPM cannot grok rpmrc created by `rpm --showrc > /etc/rpmrc` 3. RPM runs chown -R root.root/chmod -R. While the latter can be rendered (relatively) harmless by a `fixperms' in rpmrc, the former does damage which can be fixed by hand. If you want the files in the RPMs to have certain ownership/permission, you don't have to mess with the actual filesystem on disk.
Specific answers: 1) You can do a) tarball: rpm -ta foo.tar.gz b) src.rpm: rpm --rebuild foo*src.rpm to eliminate unnecessary steps. 2) rpm --shworc is for humans. Why should the displayed output use the same syntax as the rpmrc file? 3) I build rpm's all day long using non-root uid without rpm running chown/chmod root.root. I need to know more specifics in order to remedy. As for ownership of files within the binary rpm, I routinely add %defattr(-,root,root) to top of %files to get predictable ownership. Make sure that you have specific %attr's for setuid programs however. Try rpm-list if you need more info.