I found these in a article on mach:
ref: http://psg.com/~brian/howto/mach.html

  1. Given a spec file, rpmbuild won't download the source tarball and/or patches. You have to fetch those yourself into the SOURCES directory.
  2. rpmbuild will abort if any build-time dependencies are missing, forcing you to stop what you're doing, and go and build and install those packages too.
  3. When your package configures itself, it may auto-detect libraries which are available on your build system, but which are not going to be available on the target system. For example, if openldap-devel is present then openldap may be linked into your binaries, but if the RPM doesn't declare openldap as a dependency, then it will fail to run on the target system. This is an insiduous problem, which I call "the curse of autoconf".
  4. You can only build packages for the same type of system as your build machine (e.g. CentOS 4 binaries on a CentOS 4 build system)
Is there a way we can use rpmbuild to resolve these issues?