Red Hat Bugzilla – Bug 64189
confusing output from rpm -b without rpm-build installed
Last modified: 2008-05-01 11:38:02 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:0.9.9) Gecko/20020408
Description of problem:
Novice users have little chance of figuring out what's wrong when they try to
rebuild packages without rpm-build installed.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.# rpm -bp /usr/src/redhat/SPECS/lvm.spec
/usr/src/redhat/SPECS/lvm.spec: No such file or directory
2.# ls -l /usr/src/redhat/SPECS/lvm.spec
-rw-rw-r-- 1 root root 3928 Mar 27 22:13
Expected Results: it would be nice if rpm warned
"please install rpm-build to use the -b option"
when /usr/lib/rpm/rpmb is missing.
Invoke rpmbuild not rpm. The build modes
of rpm have moved to a separate executable,
and the final "fix" will be to remove legacy
compatibility, thereby changing the error message
rpm -ba ...
-ba: unknown option
I hope there will be an interim stage (== RH 7.3), where rpm -b gives the
diagnostic "-b is obsolete. use rpmbuild(1)" or something to that effect :)
All of Red Hat 7.x was an "interim stage",
the change was made almost 2 years ago, that's
more than enough time to convert IMHO.
strange, I can't remember reading anything about this change in the release notes.
this is not an obvious change. you need to give people notification before
changing this interface. commercial vendors (vmware, nvidia) has not picked up
on this (how could they?) and updated their documentation.
Again 2 years is more than enough time to convert.
There's even a rpmbuild man page since rpm-4.0.3.
I may be spoiled by Solaris. their developers don't think to themselves, "from
now on, people shouldn't be doing that", they actually put it to paper and tell
their users that this and that will be changing in the NEXT release.
I really can't see the need for changing the interface with no prior warning.
FWIW, the interface is not changed, but merely resident
in a different binary. The new binary is even executed
in a legacy compatible manner iff the rpm-build
package is installed. Furthermore, a better error message
cannot be produced without changing (i.e. breaking) the popt
library API, which introduces even worse incompatibilities.
In essence you're asking one binary to report an error message
when given options for another binary, that's how popt aliases
1) install the rpm-build package and be happy.
2) type rpmbuild, not rpm, when building and be happy.
3) use dpkg on Solaris.