Patchwork [2/3] rpm: Fix rpm -V usage

login
register
mail settings
Submitter Robert Yang
Date May 27, 2014, 2:15 a.m.
Message ID <2f566f6e402b82c19a1aa0e822c4ebc5dccc2ca7.1401154976.git.liezhi.yang@windriver.com>
Download mbox | patch
Permalink /patch/72781/
State New
Headers show

Comments

Robert Yang - May 27, 2014, 2:15 a.m.
From: Mark Hatle <mark.hatle@windriver.com>

[YOCTO #6309]

It appears a logic issue has caused rpm -V to no longer
verify the files on the filesystem match what was installed.

(From OE-Core master rev: 117862cd0eebf6887c2ea6cc353432caee2653aa)

Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
---
 .../rpm/rpm/rpm-verify-files.patch                 |   22 ++++++++++++++++++++
 meta/recipes-devtools/rpm/rpm_5.4.9.bb             |    1 +
 2 files changed, 23 insertions(+)
 create mode 100644 meta/recipes-devtools/rpm/rpm/rpm-verify-files.patch

Patch

diff --git a/meta/recipes-devtools/rpm/rpm/rpm-verify-files.patch b/meta/recipes-devtools/rpm/rpm/rpm-verify-files.patch
new file mode 100644
index 0000000..fddac7a
--- /dev/null
+++ b/meta/recipes-devtools/rpm/rpm/rpm-verify-files.patch
@@ -0,0 +1,22 @@ 
+lib/verify.c: Fix rpm -V file processing
+
+rpm -V should verify the md5sum and other values on individual files.
+A logic error in the query for GHOST files prevented this from working.
+
+[ Upstream-Status: Submitted ]
+
+Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
+
+Index: rpm-5.4.9/lib/verify.c
+===================================================================
+--- rpm-5.4.9.orig/lib/verify.c
++++ rpm-5.4.9/lib/verify.c
+@@ -587,7 +587,7 @@ uint32_t fc = rpmfiFC(fi);
+ 
+ 	/* If not verifying %ghost, skip ghost files. */
+ 	/* XXX the broken!!! logic disables %ghost queries always. */
+-	if (!(FF_ISSET(qva->qva_fflags, GHOST) && FF_ISSET(fflags, GHOST)))
++	if (!(FF_ISSET(qva->qva_fflags, GHOST)) && FF_ISSET(fflags, GHOST))
+ 	    continue;
+ 
+ 	/* Gather per-file data into a carrier. */
diff --git a/meta/recipes-devtools/rpm/rpm_5.4.9.bb b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
index c2f2279..702a142 100644
--- a/meta/recipes-devtools/rpm/rpm_5.4.9.bb
+++ b/meta/recipes-devtools/rpm/rpm_5.4.9.bb
@@ -89,6 +89,7 @@  SRC_URI = "http://www.rpm5.org/files/rpm/rpm-5.4/rpm-5.4.9-0.20120508.src.rpm;ex
 	   file://debugedit-valid-file-to-fix-segment-fault.patch \
 	   file://rpm-platform-file-fix.patch \
 	   file://rpm-lsb-compatibility.patch \
+	   file://rpm-verify-files.patch \
 	  "
 
 # Uncomment the following line to enable platform score debugging