From Bugzilla Helper: User-Agent: Mozilla/4.78 [en] (X11; U; Linux 2.4.9-13 i686) Description of problem: When I specify --nodirtokens to build a pre rpmlib 3.0.4-1 (e.g., Red Hat 6.2) compatible package, the resulting package does not contain any of the files. rpm -qlp does list them, but the package is very small (10KB rather than the ~1.7MB it should have had) and installing it does not really install any of the files. Version-Release number of selected component (if applicable): How reproducible: Always Steps to Reproduce: Simply build some package using --nodirtokens. Additional info: running "rpm2cpio package.rpm | cpio --list" yields only "1 block", rather than the expected list of files. Building the same package without --nodirtokens yields a fully functional .rpm.
FWIW, rpm-4.0.2 has been released for Red Hat 6x, so that is the "supported" version of rpm at this time. --nodirtokens appears to work for me in rpm-4.0.3, verified by examining a binary rpm with hexedit, as I have no machines with pre-rpm-3.0.4 installed. Perhaps you need an explicit %define _noPayloadPrefix 1 to remove the leading "./" prefix in payload files. rpm itself is prepared this way.
Did you try "rpm2cpio package.rpm | cpio --list" ? After building with --nodirtokens, all I get is a "1 block" listed, rather than the list of names. I do have _noPayloadPrefix defined as you suggested. If you wish I can send you the script that builds the empty RPM for me. I just didn't include it right away because It's happened to me to *every* RPM I build with --nodirtokens...
I just tested this on Fedora Core 4 using rpm 4.4.1, and it's still broken. This bug was closed prematurely.
Continued on bug 462391.