dpkg and apt seem to handle versioned provides correctly now [1] so this workaround is not needed anymore. This fixes [Yocto #14995] for package_deb.
[1] Signed-off-by: Pavel Zhukov <[email protected]> --- meta/classes-global/package_deb.bbclass | 9 +-------- meta/recipes-core/meta/dummy-sdk-package.inc | 9 ++++++--- 2 files changed, 7 insertions(+), 11 deletions(-) diff --git a/meta/classes-global/package_deb.bbclass b/meta/classes-global/package_deb.bbclass index 5aba3837bd..d7bbfae3fb 100644 --- a/meta/classes-global/package_deb.bbclass +++ b/meta/classes-global/package_deb.bbclass @@ -184,8 +184,6 @@ def deb_write_pkg(pkg, d): # '<' = less or equal # '>' = greater or equal # adjust these to the '<<' and '>>' equivalents - # Also, "=" specifiers only work if they have the PR in, so 1.2.3 != 1.2.3-r0 - # so to avoid issues, map this to ">= 1.2.3 << 1.2.3.0" for dep in list(var.keys()): if '(' in dep or '/' in dep: newdep = re.sub(r'[(:)/]', '__', dep) @@ -200,10 +198,6 @@ def deb_write_pkg(pkg, d): var[dep][i] = var[dep][i].replace("< ", "<< ") elif (v or "").startswith("> "): var[dep][i] = var[dep][i].replace("> ", ">> ") - elif (v or "").startswith("= ") and "-r" not in v: - ver = var[dep][i].replace("= ", "") - var[dep][i] = var[dep][i].replace("= ", ">= ") - var[dep].append("<< " + ver + ".0") rdepends = bb.utils.explode_dep_versions2(localdata.getVar("RDEPENDS") or "") debian_cmp_remap(rdepends) @@ -220,8 +214,7 @@ def deb_write_pkg(pkg, d): del rrecommends[dep] rsuggests = bb.utils.explode_dep_versions2(localdata.getVar("RSUGGESTS") or "") debian_cmp_remap(rsuggests) - # Deliberately drop version information here, not wanted/supported by deb - rprovides = dict.fromkeys(bb.utils.explode_dep_versions2(localdata.getVar("RPROVIDES") or ""), []) + rprovides = bb.utils.explode_dep_versions2(localdata.getVar("RPROVIDES") or "") # Remove file paths if any from rprovides, debian does not support custom providers for key in list(rprovides.keys()): if key.startswith('/'): diff --git a/meta/recipes-core/meta/dummy-sdk-package.inc b/meta/recipes-core/meta/dummy-sdk-package.inc index 6ccafbf8bc..8a07a431ab 100644 --- a/meta/recipes-core/meta/dummy-sdk-package.inc +++ b/meta/recipes-core/meta/dummy-sdk-package.inc @@ -18,15 +18,18 @@ ALLOW_EMPTY:${PN} = "1" PR[vardeps] += "DUMMYPROVIDES" PR[vardeps] += "DUMMYPROVIDES_PACKAGES" +DUMMYMAXVER ?= "999.9-r9" DUMMYPROVIDES_PACKAGES ??= "" DUMMYPROVIDES_PACKAGES_FILTERED = "${@' '.join([pkg for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split() if d.getVar('IMAGE_INSTALL') is not None and pkg not in d.getVar('IMAGE_INSTALL').split()])}" DUMMYPROVIDES_PACKAGES_MULTILIB = "${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES_FILTERED').split()])}" +DUMMYPROVIDES_MAXVER := "${@' '.join(['{} (= {})'.format(pkg, d.getVar('DUMMYMAXVER')) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES_MULTILIB').split()]) + d.getVar('DUMMYPROVIDES')}" +DUMMYCONFLICTS := "${@' '.join(['{} (< {})'.format(pkg, d.getVar('DUMMYMAXVER')) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES_MULTILIB').split()])}" DUMMYPROVIDES += "${DUMMYPROVIDES_PACKAGES_MULTILIB}" python populate_packages:prepend() { p = d.getVar("PN") - d.appendVar("RPROVIDES:%s" % p, "${DUMMYPROVIDES}") - d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") - d.appendVar("RREPLACES:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") + d.appendVar("RPROVIDES:%s" % p, "${DUMMYPROVIDES_MAXVER}") + d.appendVar("RCONFLICTS:%s" % p, "${DUMMYCONFLICTS}") + d.appendVar("RREPLACES:%s" % p, "${DUMMYCONFLICTS}") } -- 2.41.0
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#188691): https://lists.openembedded.org/g/openembedded-core/message/188691 Mute This Topic: https://lists.openembedded.org/mt/101758726/21656 Group Owner: [email protected] Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [[email protected]] -=-=-=-=-=-=-=-=-=-=-=-
