Message ID | 20231004065728.4283-1-pavel@zhukoff.net |
---|---|
State | New |
Headers | show |
Series | [1/3] dummy-sdk-package.inc: Filter packages which are marked for installation | expand |
Wrong mailing list core layer patches go to oe-core mailing list not oe-devel On Wed, Oct 4, 2023 at 8:07 AM Pavel Zhukov <pavel@zhukoff.net> wrote: > From: Pavel Zhukov <pavel@zhukoff.net> > > if packages is provided by dummysdk and in the same time marked for > installation with IMAGE_INSTALL it causes conflict in apt because virtual > providers are > not taken into account if package is asked to be installed explicitly. > Filter such packages from provides/conflicts to workaround this problem. > This workaround brakes RPM usecase because of file conlicts with > DUMMYPROVIDES, use DUMMYPROVIDES_PACKAGES_MULTILIB instead (which > doesn't include file based conflicts). > While this is needed for the case of package_deb only adding it for all > package managers to not complicate the code. > > Fixes: [Yocto #13338] [Yocto #14066] > > Fixes: > The following information may help to resolve the situation: > > The following packages have unmet dependencies: > target-sdk-provides-dummy : Conflicts: bash > E: Unable to correct problems, you have held broken packages. > > Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> > --- > meta/recipes-core/meta/dummy-sdk-package.inc | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/meta/recipes-core/meta/dummy-sdk-package.inc > b/meta/recipes-core/meta/dummy-sdk-package.inc > index bd26e39ad3..6ccafbf8bc 100644 > --- a/meta/recipes-core/meta/dummy-sdk-package.inc > +++ b/meta/recipes-core/meta/dummy-sdk-package.inc > @@ -19,13 +19,14 @@ PR[vardeps] += "DUMMYPROVIDES" > PR[vardeps] += "DUMMYPROVIDES_PACKAGES" > > DUMMYPROVIDES_PACKAGES ??= "" > -DUMMYPROVIDES_PACKAGES_MULTILIB = "${@' '.join([multilib_pkg_extend(d, > pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])}" > +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 += "${DUMMYPROVIDES_PACKAGES_MULTILIB}" > > python populate_packages:prepend() { > p = d.getVar("PN") > d.appendVar("RPROVIDES:%s" % p, "${DUMMYPROVIDES}") > - d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES}") > + d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") > d.appendVar("RREPLACES:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") > } > > -- > 2.41.0 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#105332): > https://lists.openembedded.org/g/openembedded-devel/message/105332 > Mute This Topic: https://lists.openembedded.org/mt/101757079/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [ > raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- > >
Whoops. Sorry. wrong alias. I'm resending to proper ML. On Wed, Oct 4, 2023, at 17:51, Khem Raj wrote: > Wrong mailing list core layer patches go to oe-core mailing list not oe-devel > > On Wed, Oct 4, 2023 at 8:07 AM Pavel Zhukov <pavel@zhukoff.net> wrote: >> From: Pavel Zhukov <pavel@zhukoff.net> >> >> if packages is provided by dummysdk and in the same time marked for >> installation with IMAGE_INSTALL it causes conflict in apt because virtual providers are >> not taken into account if package is asked to be installed explicitly. >> Filter such packages from provides/conflicts to workaround this problem. >> This workaround brakes RPM usecase because of file conlicts with >> DUMMYPROVIDES, use DUMMYPROVIDES_PACKAGES_MULTILIB instead (which >> doesn't include file based conflicts). >> While this is needed for the case of package_deb only adding it for all >> package managers to not complicate the code. >> >> Fixes: [Yocto #13338] [Yocto #14066] >> >> Fixes: >> The following information may help to resolve the situation: >> >> The following packages have unmet dependencies: >> target-sdk-provides-dummy : Conflicts: bash >> E: Unable to correct problems, you have held broken packages. >> >> Signed-off-by: Pavel Zhukov <pavel@zhukoff.net> >> --- >> meta/recipes-core/meta/dummy-sdk-package.inc | 5 +++-- >> 1 file changed, 3 insertions(+), 2 deletions(-) >> >> diff --git a/meta/recipes-core/meta/dummy-sdk-package.inc b/meta/recipes-core/meta/dummy-sdk-package.inc >> index bd26e39ad3..6ccafbf8bc 100644 >> --- a/meta/recipes-core/meta/dummy-sdk-package.inc >> +++ b/meta/recipes-core/meta/dummy-sdk-package.inc >> @@ -19,13 +19,14 @@ PR[vardeps] += "DUMMYPROVIDES" >> PR[vardeps] += "DUMMYPROVIDES_PACKAGES" >> >> DUMMYPROVIDES_PACKAGES ??= "" >> -DUMMYPROVIDES_PACKAGES_MULTILIB = "${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])}" >> +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 += "${DUMMYPROVIDES_PACKAGES_MULTILIB}" >> >> python populate_packages:prepend() { >> p = d.getVar("PN") >> d.appendVar("RPROVIDES:%s" % p, "${DUMMYPROVIDES}") >> - d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES}") >> + d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") >> d.appendVar("RREPLACES:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") >> } >> >> -- >> 2.41.0 >> >> >>
diff --git a/meta/recipes-core/meta/dummy-sdk-package.inc b/meta/recipes-core/meta/dummy-sdk-package.inc index bd26e39ad3..6ccafbf8bc 100644 --- a/meta/recipes-core/meta/dummy-sdk-package.inc +++ b/meta/recipes-core/meta/dummy-sdk-package.inc @@ -19,13 +19,14 @@ PR[vardeps] += "DUMMYPROVIDES" PR[vardeps] += "DUMMYPROVIDES_PACKAGES" DUMMYPROVIDES_PACKAGES ??= "" -DUMMYPROVIDES_PACKAGES_MULTILIB = "${@' '.join([multilib_pkg_extend(d, pkg) for pkg in d.getVar('DUMMYPROVIDES_PACKAGES').split()])}" +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 += "${DUMMYPROVIDES_PACKAGES_MULTILIB}" python populate_packages:prepend() { p = d.getVar("PN") d.appendVar("RPROVIDES:%s" % p, "${DUMMYPROVIDES}") - d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES}") + d.appendVar("RCONFLICTS:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") d.appendVar("RREPLACES:%s" % p, "${DUMMYPROVIDES_PACKAGES_MULTILIB}") }