Hide Forgot
Description of problem: When I: $ rpm -ivh foo.src.rpm $ rpmbuild -bc foo.spec $ rpmbuild -bi --short-circuit foo.spec $ rpmbuild -bb --short-circuit foo.spec # rpm -Fvh foo.i686.rpm Then the rebuilt rpms cannot be upgraded like: # env LANG=C rpm -Fvh xscreensaver-*rpm error: Failed dependencies: rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-1:5.12-10.1.fc.i686 rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-base-1:5.12-10.1.fc.i686 rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-debuginfo-1:5.12-10.1.fc.i686 rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-extras-1:5.12-10.1.fc.i686 rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-extras-base-1:5.12-10.1.fc.i686 rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-gl-base-1:5.12-10.1.fc.i686 rpmlib(ShortCircuited) <= 4.9.0-1 is needed by xscreensaver-gl-extras-1:5.12-10.1.fc.i686 Version-Release number of selected component (if applicable): rpm-4.9.0-0.beta1.1.fc15.i686 How reproducible: 100%
By design? To quote from the rpm.org release notes for 4.9.0. http://rpm.org/wiki/Releases/4.9.0 "Short-circuiting binary builds is now allowed by rpmbuild for developer convenience while testing. Short-circuited packages are tainted with an unsatisfiable dependency to limit their use for the intended testing-only purpose. "
Testing cannot be done without actually installing the rebuilt rpm, I guess?
By design, yes. For testing purposes you can circumvent it with --nodeps on install. It also means you can easily find any short-circuited packages on a system with 'rpm -Va --nofiles'.