| 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(-)