Re: rpm queryformat %{fileverifyflags}

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 20 Oct 2009, Greg_Swift@xxxxxxxxxxxxxxxxx wrote:


I just had a script brought to my attention that utilizes output containing
the %{fileverifyflags} output.  I have read a few results from google that
mention this flag, but non seem to explain what a "-1" result means.  On my
system I have 1385 packages that return -1, and around 30 that return
various other numbers (mostly -40).  The results of running rpm -qV on
those packages that return -1 can vary.

http://www.rpm.org/max-rpm/ch-queryformat-tags.html
http://rpm5.org/docs/api/queryformat.html


I am having a hard time deciphering the purpose of this test, and the
context clues in our code are not very helpful.

FILEVERIFYFLAGS tells rpm which properties of a file should be verified by "rpm -V <pkg>". Like several other similar query tags, FILEVERIFYFLAGS is a bitfield of flags which without further formatting is not of much use to humans.

For FILEVERIFYFLAGS there are no human-readable formatting extensions available, to make sense out of it, you'll need to look at the bits defined by rpmVerifyAttrs enumeration, you can find the values from eg
http://rpm.org/api/4.7.0/rpmvf_8h.html.

Hex formatting, ie --qf "[%{fileverifyflags:hex}\n], makes it easier to see which bits are on than the decimal output. Typically all the bits are enabled, but sometimes it doesn't make sense to verify everything, such as in case of %ghost files.

Now to your actual question... the script you've come across seems pretty broken:
a) FILEVERIFYFLAGS is an array of per-file values, the value it returns
   without the [] array query formatter is meaningless (well it's the
   flags of the first file in the package)
b) comparing against hardcoded decimal values like -1 or -40 only
   "works" on 32bit systems, and even that only on older rpm versions
   where signed integers are used
c) I dont quite see what use it is for a script to try to interpret
   the value of FILEVERIFYFLAGS, it's only really useful to rpm itself
   in verify mode

But ok, on 32bit system, with rpm < 4.6.0 (which use signed integers here), value -1 means "verify all aspects of this file" (again you need to look at the entire array for it to mean anything), and -40 is "everything but file checksum, file size, symlink contents and mtime", which happens to be what %ghost files get by default.

	- Panu -
_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxxxxx
http://lists.rpm.org/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux