package_rpm: Clean up unset runtime package variable handling

If the R* runtime package variables are unset it could cause trackbacks. There
were some fallbacks already, clean this up to handle consistently.

The code was expecting strings but setting defaults of empty lists
which silently were converted to strings by the "or" statements which
was a nightmare to understand or alter.

(From OE-Core rev: 06bf68012302330c2b14f59541f78f48c7389c37)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
Richard Purdie
2021-01-27 21:48:54 +00:00
parent f9d0bc709f
commit b033409243

View File

@@ -300,13 +300,13 @@ python write_specfile () {
srccustomtagschunk = get_package_additional_metadata("rpm", localdata)
srcdepends = d.getVar('DEPENDS')
srcrdepends = []
srcrrecommends = []
srcrsuggests = []
srcrprovides = []
srcrreplaces = []
srcrconflicts = []
srcrobsoletes = []
srcrdepends = ""
srcrrecommends = ""
srcrsuggests = ""
srcrprovides = ""
srcrreplaces = ""
srcrconflicts = ""
srcrobsoletes = ""
srcrpreinst = []
srcrpostinst = []
@@ -365,13 +365,13 @@ python write_specfile () {
# Map the dependencies into their final form
mapping_rename_hook(localdata)
splitrdepends = localdata.getVar('RDEPENDS')
splitrrecommends = localdata.getVar('RRECOMMENDS')
splitrsuggests = localdata.getVar('RSUGGESTS')
splitrprovides = localdata.getVar('RPROVIDES')
splitrreplaces = localdata.getVar('RREPLACES')
splitrconflicts = localdata.getVar('RCONFLICTS')
splitrobsoletes = []
splitrdepends = localdata.getVar('RDEPENDS') or ""
splitrrecommends = localdata.getVar('RRECOMMENDS') or ""
splitrsuggests = localdata.getVar('RSUGGESTS') or ""
splitrprovides = localdata.getVar('RPROVIDES') or ""
splitrreplaces = localdata.getVar('RREPLACES') or ""
splitrconflicts = localdata.getVar('RCONFLICTS') or ""
splitrobsoletes = ""
splitrpreinst = localdata.getVar('pkg_preinst')
splitrpostinst = localdata.getVar('pkg_postinst')
@@ -439,9 +439,9 @@ python write_specfile () {
spec_preamble_bottom.append(splitcustomtagschunk)
# Replaces == Obsoletes && Provides
robsoletes = bb.utils.explode_dep_versions2(splitrobsoletes or "")
rprovides = bb.utils.explode_dep_versions2(splitrprovides or "")
rreplaces = bb.utils.explode_dep_versions2(splitrreplaces or "")
robsoletes = bb.utils.explode_dep_versions2(splitrobsoletes)
rprovides = bb.utils.explode_dep_versions2(splitrprovides)
rreplaces = bb.utils.explode_dep_versions2(splitrreplaces)
for dep in rreplaces:
if not dep in robsoletes:
robsoletes[dep] = rreplaces[dep]
@@ -533,9 +533,9 @@ python write_specfile () {
tail_source(d)
# Replaces == Obsoletes && Provides
robsoletes = bb.utils.explode_dep_versions2(srcrobsoletes or "")
rprovides = bb.utils.explode_dep_versions2(srcrprovides or "")
rreplaces = bb.utils.explode_dep_versions2(srcrreplaces or "")
robsoletes = bb.utils.explode_dep_versions2(srcrobsoletes)
rprovides = bb.utils.explode_dep_versions2(srcrprovides)
rreplaces = bb.utils.explode_dep_versions2(srcrreplaces)
for dep in rreplaces:
if not dep in robsoletes:
robsoletes[dep] = rreplaces[dep]