Bug 12334

Summary: buildhistory-diff misreports RPROVIDES
Product: [Build System, Metadata & Runtime] OE-Core Reporter: Ross Burton <ross.burton>
Component: Scripts and ToolsAssignee: Amanda Brindle <amanda.r.brindle>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Medium+ CC: ross.burton, stephano
Version: 2.5   
Target Milestone: 2.5 M3   
Hardware: x86   
OS: Multiple   
Whiteboard:
OS type for building Yocto: --- Type of Regression: ---
Verified: Documentation change: No (bug/feature does not impact docs)

Description Ross Burton 2017-11-10 13:04:10 UTC
buildhistory-diff has started reporting that RPROVIDES has changed order:

$ buildhistory-diff | grep RPROVIDES
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-bin: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-dbg: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-dev: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-doc: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-icu-dev: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-icu: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-locale: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz-staticdev: RPROVIDES: changed order
packages/corei7-64-poky-linux/harfbuzz/harfbuzz: RPROVIDES: changed order

But the actual change in buildhistory is:

-RPROVIDES = harfbuzz-bin (=1.4.8)
+RPROVIDES = harfbuzz-bin (=1.6.3)
-RPROVIDES = harfbuzz-dbg (=1.4.8)
+RPROVIDES = harfbuzz-dbg (=1.6.3)
-RPROVIDES = harfbuzz-dev (=1.4.8)
+RPROVIDES = harfbuzz-dev (=1.6.3)
-RPROVIDES = harfbuzz-doc (=1.4.8)
+RPROVIDES = harfbuzz-doc (=1.6.3)

The order hasn't changed, the version has which is to be expected and should be ignored.
Comment 1 Paul Eggleton 2017-12-18 22:48:09 UTC
Right - the assumption of the code if no items are added or removed is that the list has changed order, I guess I erroneously assumed versions weren't in the list when I wrote this. We could just exclude those from the comparison if they've increased - in fact I thought we were doing that already in compare_pkg_lists() so that part is unclear to me; we're certainly using bb.utils.explode_dep_versions2() there to get the versions.