package_rpm: Ensure package dependencies have correct version numbers

If a recipe has versioned dependencies on another package within
the same recipe, there are potentially races where the version
remapping may not happen correctly.

This issue triggered with neard in multilib builds since it
uses a "-" character in its PV which is illegal in an rpm version
field. The remapping to "+" was not occuring.

It only triggers in the multilib case since in this case, expansion
of the datastore happens at slightly different points.

The correct fix is to search for PV, not PKGV but substitute the
PV value.

(From OE-Core rev: bd03014c8fd080e04dd0a96a6b4b9211568c1cf1)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie 2013-03-14 00:15:10 +00:00
parent 05f231d7fe
commit 7803f5f98c
1 changed files with 3 additions and 2 deletions

View File

@ -607,8 +607,9 @@ python write_specfile () {
if '-' in ver:
subd = oe.packagedata.read_subpkgdata_dict(dep, d)
if 'PKGV' in subd:
pv = subd['PKGV']
reppv = pv.replace('-', '+')
pv = subd['PV']
pkgv = subd['PKGV']
reppv = pkgv.replace('-', '+')
verlist.append(ver.replace(pv, reppv))
else:
verlist.append(ver)