diff mbox series

[v2] core-image: Exclude openssh complementary packages

Message ID 20220828195405.8213-1-pavel@zhukoff.net
State New
Headers show
Series [v2] core-image: Exclude openssh complementary packages | expand

Commit Message

Pavel Zhukov Aug. 28, 2022, 7:54 p.m. UTC
Openssh (main) package may be marked for installation via complementary
packages mechanism as a dependency of openssh-ptest
and this causes conflict with dropbear [Yocto #14858] [1].
Excluding openssh complementary packages if ssh-server-dropbear is in
DISTRO_FEATURES fixes this issue.
To install openssh complementary packages in the images with
ssh-server-dropbear they may be added manually into the list because
they will be excluded from the installation even if corresonding class
(dev-pkg or dbg-pkgs) inherited.

[1]
Error:
 Problem: problem with installed package dropbear-2020.81-r0.core2_64
  - package dropbear-2020.81-r0.core2_64 conflicts with openssh provided by openssh-8.9p1-r0.core2_64
  - package openssh-8.9p1-r0.core2_64 conflicts with dropbear provided by dropbear-2020.81-r0.core2_64
  - package openssh-ptest-8.9p1-r0.core2_64 requires openssh, but none of the providers can be installed
  - conflicting requests
(try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)

Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
---
 meta/classes-recipe/core-image.bbclass | 1 +
 1 file changed, 1 insertion(+)

Comments

Richard Purdie Sept. 3, 2022, 9:54 p.m. UTC | #1
On Sun, 2022-08-28 at 21:54 +0200, Pavel Zhukov wrote:
> Openssh (main) package may be marked for installation via complementary
> packages mechanism as a dependency of openssh-ptest
> and this causes conflict with dropbear [Yocto #14858] [1].
> Excluding openssh complementary packages if ssh-server-dropbear is in
> DISTRO_FEATURES fixes this issue.
> To install openssh complementary packages in the images with
> ssh-server-dropbear they may be added manually into the list because
> they will be excluded from the installation even if corresonding class
> (dev-pkg or dbg-pkgs) inherited.
> 
> [1]
> Error:
>  Problem: problem with installed package dropbear-2020.81-r0.core2_64
>   - package dropbear-2020.81-r0.core2_64 conflicts with openssh provided by openssh-8.9p1-r0.core2_64
>   - package openssh-8.9p1-r0.core2_64 conflicts with dropbear provided by dropbear-2020.81-r0.core2_64
>   - package openssh-ptest-8.9p1-r0.core2_64 requires openssh, but none of the providers can be installed
>   - conflicting requests
> (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
> 
> Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
> ---
>  meta/classes-recipe/core-image.bbclass | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/meta/classes-recipe/core-image.bbclass b/meta/classes-recipe/core-image.bbclass
> index 4b5f2c99c4b..fa38ae876d0 100644
> --- a/meta/classes-recipe/core-image.bbclass
> +++ b/meta/classes-recipe/core-image.bbclass
> @@ -78,5 +78,6 @@ CORE_IMAGE_BASE_INSTALL = '\
>  CORE_IMAGE_EXTRA_INSTALL ?= ""
>  
>  IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
> +PACKAGE_EXCLUDE_COMPLEMENTARY:append = "{@ openssh if 'ssh-server-dropbear' in d.getVar('IMAGE_FEATURES')}"

This doesn't seem to be correct syntax, e.g. no $ before {@ and I'm not
sure that is valid python?

Cheers,

Richard
Pavel Zhukov Sept. 5, 2022, 4:27 p.m. UTC | #2
"Richard Purdie" <richard.purdie@linuxfoundation.org> writes:

> On Sun, 2022-08-28 at 21:54 +0200, Pavel Zhukov wrote:
>> Openssh (main) package may be marked for installation via complementary
>> packages mechanism as a dependency of openssh-ptest
>> and this causes conflict with dropbear [Yocto #14858] [1].
>> Excluding openssh complementary packages if ssh-server-dropbear is in
>> DISTRO_FEATURES fixes this issue.
>> To install openssh complementary packages in the images with
>> ssh-server-dropbear they may be added manually into the list because
>> they will be excluded from the installation even if corresonding class
>> (dev-pkg or dbg-pkgs) inherited.
>> 
>> [1]
>> Error:
>>  Problem: problem with installed package dropbear-2020.81-r0.core2_64
>>   - package dropbear-2020.81-r0.core2_64 conflicts with openssh provided by openssh-8.9p1-r0.core2_64
>>   - package openssh-8.9p1-r0.core2_64 conflicts with dropbear provided by dropbear-2020.81-r0.core2_64
>>   - package openssh-ptest-8.9p1-r0.core2_64 requires openssh, but none of the providers can be installed
>>   - conflicting requests
>> (try to add '--allowerasing' to command line to replace conflicting packages or '--skip-broken' to skip uninstallable packages)
>> 
>> Signed-off-by: Pavel Zhukov <pavel@zhukoff.net>
>> ---
>>  meta/classes-recipe/core-image.bbclass | 1 +
>>  1 file changed, 1 insertion(+)
>> 
>> diff --git a/meta/classes-recipe/core-image.bbclass b/meta/classes-recipe/core-image.bbclass
>> index 4b5f2c99c4b..fa38ae876d0 100644
>> --- a/meta/classes-recipe/core-image.bbclass
>> +++ b/meta/classes-recipe/core-image.bbclass
>> @@ -78,5 +78,6 @@ CORE_IMAGE_BASE_INSTALL = '\
>>  CORE_IMAGE_EXTRA_INSTALL ?= ""
>>  
>>  IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
>> +PACKAGE_EXCLUDE_COMPLEMENTARY:append = "{@ openssh if 'ssh-server-dropbear' in d.getVar('IMAGE_FEATURES')}"
>
> This doesn't seem to be correct syntax, e.g. no $ before {@ and I'm not
> sure that is valid python?

Resent. I should have tested it more carefully.
I've tested new revision with few cases I'm aware of and it worked.

>
> Cheers,
>
> Richard
>
>
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#170271): https://lists.openembedded.org/g/openembedded-core/message/170271
> Mute This Topic: https://lists.openembedded.org/mt/93313521/6390638
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [pavel@zhukoff.net]
> -=-=-=-=-=-=-=-=-=-=-=-
diff mbox series

Patch

diff --git a/meta/classes-recipe/core-image.bbclass b/meta/classes-recipe/core-image.bbclass
index 4b5f2c99c4b..fa38ae876d0 100644
--- a/meta/classes-recipe/core-image.bbclass
+++ b/meta/classes-recipe/core-image.bbclass
@@ -78,5 +78,6 @@  CORE_IMAGE_BASE_INSTALL = '\
 CORE_IMAGE_EXTRA_INSTALL ?= ""
 
 IMAGE_INSTALL ?= "${CORE_IMAGE_BASE_INSTALL}"
+PACKAGE_EXCLUDE_COMPLEMENTARY:append = "{@ openssh if 'ssh-server-dropbear' in d.getVar('IMAGE_FEATURES')}"
 
 inherit image