Message ID | 20231009144001.21150-1-pavel@zhukoff.net |
---|---|
State | New |
Headers | show |
Series | [v3,1/4] dummy-sdk-package.inc: Filter packages which are marked for installation | expand |
Hello Pavel, On Mon, 9 Oct 2023 16:39:58 +0200 "Pavel Zhukov" <pavel@zhukoff.net> wrote: > 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> Testing with this series applied results in lots of errors like these: stdio: ERROR: core-image-minimal-1.0-r0 do_rootfs: No SPDX file found for package base-files, False sstate:base-files:qemux86_64-poky-linux:3.0.14:r0:qemux86_64:11: sstate:base-files::3.0.14:r0::11: stdio: ERROR: core-image-minimal-mtdutils-1.0-r0 do_rootfs: No SPDX file found for package base-files, False sstate:base-files:qemux86_64-poky-linux:3.0.14:r0:qemux86_64:11: sstate:base-files::3.0.14:r0::11: See the full log at: https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/5894/steps/14/logs/stdio Luca
Hi Alex, Luca, Can you please retest this patchset one more time please? Neither myself nor RP could reproduce build failure with recent master/sstate so it might be fixed in the meantime.
Hello, This still causes issues: https://autobuilder.yoctoproject.org/typhoon/#/builders/79/builds/6252/steps/14/logs/stdio https://autobuilder.yoctoproject.org/typhoon/#/builders/80/builds/6203/steps/14/logs/stdio https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/6256/steps/14/logs/stdio https://autobuilder.yoctoproject.org/typhoon/#/builders/87/builds/6263/steps/14/logs/stdio https://autobuilder.yoctoproject.org/typhoon/#/builders/127/builds/2682/steps/15/logs/stdio 2023-12-31 22:35:38,306 - oe-selftest - INFO - 5: 63/78 555/579 (65.04s) (0 failed) (spdx.SPDXCheck.test_spdx_base_files) 2023-12-31 22:35:38,306 - oe-selftest - INFO - testtools.testresult.real._StringException: Traceback (most recent call last): File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/selftest/cases/spdx.py", line 54, in test_spdx_base_files self.check_recipe_spdx("packages", "base-files.spdx.json", "base-files") File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/selftest/cases/spdx.py", line 50, in check_recipe_spdx self.assertExists(full_file_path) File "/home/pokybuild/yocto-worker/oe-selftest-centos/build/meta/lib/oeqa/selftest/case.py", line 251, in assertExists raise self.failureException(msg) AssertionError: '/home/pokybuild/yocto-worker/oe-selftest-centos/build/build-st-3943718/tmp/deploy/spdx/qemux86_64/packages/base-files.spdx.json' does not exist On 18/12/2023 11:28:04+0100, Pavel Zhukov wrote: > Hi Alex, Luca, > > Can you please retest this patchset one more time please? > Neither myself nor RP could reproduce build failure with recent > master/sstate so it might be fixed in the meantime. > > -- > Pavel > > On 2023-10-12 09:36, Luca Ceresoli via lists.openembedded.org wrote: > > Hello Pavel, > > > > On Mon, 9 Oct 2023 16:39:58 +0200 > > "Pavel Zhukov" <pavel@zhukoff.net> wrote: > > > > > 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> > > > > Testing with this series applied results in lots of errors like these: > > > > stdio: ERROR: core-image-minimal-1.0-r0 do_rootfs: No SPDX file found > > for package base-files, False > > sstate:base-files:qemux86_64-poky-linux:3.0.14:r0:qemux86_64:11: > > sstate:base-files::3.0.14:r0::11: > > stdio: ERROR: core-image-minimal-mtdutils-1.0-r0 do_rootfs: No SPDX > > file found for package base-files, False > > sstate:base-files:qemux86_64-poky-linux:3.0.14:r0:qemux86_64:11: > > sstate:base-files::3.0.14:r0::11: > > > > See the full log at: > > > > https://autobuilder.yoctoproject.org/typhoon/#/builders/86/builds/5894/steps/14/logs/stdio > > > > Luca > > > > > > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#192628): https://lists.openembedded.org/g/openembedded-core/message/192628 > Mute This Topic: https://lists.openembedded.org/mt/101853406/3617179 > Group Owner: openembedded-core+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [alexandre.belloni@bootlin.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta/recipes-core/meta/dummy-sdk-package.inc b/meta/recipes-core/meta/dummy-sdk-package.inc index bd26e39ad3..99863b86f1 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 None or 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}") }
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(-)