[Rpm-maint] rpm --verify -p does not work
pmatilai at laiskiainen.org
Fri May 13 12:49:37 UTC 2011
On 05/12/2011 06:56 PM, Michael Schroeder wrote:
> rpm --verify -p<rpm> doesn't run verifyscripts since rpm-4.8.
> For rpm-4.9 it segfaults.
> The code fakes an TR_REMOVE TE, which works for installed
> packages but fails if an rpm is given on the command line.
> It segfaults in 4.9 because of the collection code. I don't
> think collections should be run for --verify ;-)
Yup, and actually there's more to it than just verifyscript: the
%pretrans and %posttrans could also cause collections to execute, and
collections don't take --justdb / --test (and maybe something else too)
into account. Collections are marked EXPERIMENTAL in 4.9.0 for a reason
:) but of course an experimental feature shouldn't cause segfaults and
other side-effects when not actually used.
> Patch attached. It now calls rpmteNew() directly and
> uses rpmteSetHeader() to attach the heade. I also needed
> to change the code in rpmte so that it no longer calls
> rpmteOpen() for a PKG_VERIFY goal, but that doesn't seem
> to be bad anyway.
Hmm. Collections aside, me thinks the actual bug is permitting verify to
run on non-installed packages in the first place, verify (and
verifyscript) is only meaningful for installed packages.
- Panu -
More information about the Rpm-maint