meta-egl failure: Nothing RPROVIDES polkit


Luca Ceresoli
 

Hello,

we are experiencing build failures of the meta-agl build on the Yocto
autobuilders with this error message:

ERROR: Nothing RPROVIDES 'polkit' (but /home/pokybuild/yocto-worker/meta-agl-core/build/meta-agl/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb RDEPENDS on or otherwise requires it)

Here are a few logs:

https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1239/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1240/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1241/steps/12/logs/stdio

The error started showing up today, and given the error message it is
possibly related with this commit on meta-agl master:

packagegroup-agl-graphical-weston: Add polkit to RDEPENDS

https://git.automotivelinux.org/AGL/meta-agl/commit/?id=a8c060f736a66dde56cc2ba1803d35531c62d610

Do you think the above error can be caused by this commit?

Best regards.
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


Jan Simon Moeller <jsmoeller@...>
 

Hi !

Yes, we need to look into this and likely change the location of the RDEPENDS.
Thanks for flagging.

Best regards,
Jan-Simon

------
Jan-Simon Möller
AGL Release Manager
The Linux Foundation

Visit us at:
www.automotivegradelinux.org
lists.automotivelinux.org
www.linuxfoundation.org

On Fri, May 27, 2022 at 1:57 PM Luca Ceresoli <luca.ceresoli@...> wrote:

Hello,

we are experiencing build failures of the meta-agl build on the Yocto
autobuilders with this error message:

ERROR: Nothing RPROVIDES 'polkit' (but /home/pokybuild/yocto-worker/meta-agl-core/build/meta-agl/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb RDEPENDS on or otherwise requires it)

Here are a few logs:

https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1239/steps/12/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1240/steps/13/logs/stdio
https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1241/steps/12/logs/stdio

The error started showing up today, and given the error message it is
possibly related with this commit on meta-agl master:

packagegroup-agl-graphical-weston: Add polkit to RDEPENDS

https://git.automotivelinux.org/AGL/meta-agl/commit/?id=a8c060f736a66dde56cc2ba1803d35531c62d610

Do you think the above error can be caused by this commit?

Best regards.
--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


Tim Orling
 



On Fri, May 27, 2022 at 9:18 AM Jan Simon Moeller <jsmoeller@...> wrote:
Hi !

Yes, we need to look into this and likely change the location of the RDEPENDS.
Thanks for flagging.

polkit needs to be in DISTRO_FEATURES and the recipe needs to have a check for that (and inherit features_check)
 
Best regards,
Jan-Simon

------
Jan-Simon Möller
AGL Release Manager
The Linux Foundation

Visit us at:
www.automotivegradelinux.org
lists.automotivelinux.org
www.linuxfoundation.org

On Fri, May 27, 2022 at 1:57 PM Luca Ceresoli <luca.ceresoli@...> wrote:
>
> Hello,
>
> we are experiencing build failures of the meta-agl build on the Yocto
> autobuilders with this error message:
>
> ERROR: Nothing RPROVIDES 'polkit' (but /home/pokybuild/yocto-worker/meta-agl-core/build/meta-agl/meta-agl-core/recipes-platform/packagegroups/packagegroup-agl-graphical-weston.bb RDEPENDS on or otherwise requires it)
>
> Here are a few logs:
>
> https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1239/steps/12/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1240/steps/13/logs/stdio
> https://autobuilder.yoctoproject.org/typhoon/#/builders/120/builds/1241/steps/12/logs/stdio
>
> The error started showing up today, and given the error message it is
> possibly related with this commit on meta-agl master:
>
>   packagegroup-agl-graphical-weston: Add polkit to RDEPENDS
>
> https://git.automotivelinux.org/AGL/meta-agl/commit/?id=a8c060f736a66dde56cc2ba1803d35531c62d610
>
> Do you think the above error can be caused by this commit?
>
> Best regards.
> --
> Luca Ceresoli, Bootlin
> Embedded Linux and Kernel engineering
> https://bootlin.com




Scott Murray
 

On Fri, 27 May 2022, Tim Orling wrote:

On Fri, May 27, 2022 at 9:18 AM Jan Simon Moeller <
jsmoeller@...> wrote:

Hi !

Yes, we need to look into this and likely change the location of the
RDEPENDS.
Thanks for flagging.

polkit needs to be in DISTRO_FEATURES and the recipe needs to have a check
for that (and inherit features_check)
[snip]

For an immediate fix I've moved the polkit addition to a bbappend added
via BBFILES_DYNAMIC, gated on meta-oe presence. The current intent is
that the meta-agl-core test on the autobuilder only need poky, so letting
this slip in was a thinko on our part. We may revisit making meta-oe a
required dependency when binary packagefeed prototyping starts in AGL.
Your comment re features_check is right on, I'll add that when I get a
chance over the weekend. One thing I may bring up on the next dev call
is Weston does need polkit in some situations (hence the addition in
AGL), so maybe shifting it to oe-core starts to make more sense now...

Cheers,

Scott


Luca Ceresoli
 

Hi Scott,

Il giorno Fri, 27 May 2022 16:25:00 -0400 (EDT)
Scott Murray <scott.murray@...> ha scritto:

On Fri, 27 May 2022, Tim Orling wrote:

On Fri, May 27, 2022 at 9:18 AM Jan Simon Moeller <
jsmoeller@...> wrote:

Hi !

Yes, we need to look into this and likely change the location of the
RDEPENDS.
Thanks for flagging.

polkit needs to be in DISTRO_FEATURES and the recipe needs to have a check
for that (and inherit features_check)
[snip]

For an immediate fix I've moved the polkit addition to a bbappend added
via BBFILES_DYNAMIC, gated on meta-oe presence.
Thanks for taking care. I confirm my testing build today didn't show up
this failure anymore.

--
Luca Ceresoli, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com


Richard Purdie
 

On Sat, 2022-05-28 at 07:40 +0300, Marius Vlad wrote:
On Fri, May 27, 2022 at 04:25:00PM -0400, Scott Murray wrote:
On Fri, 27 May 2022, Tim Orling wrote:

On Fri, May 27, 2022 at 9:18 AM Jan Simon Moeller <
jsmoeller@...> wrote:

Hi !

Yes, we need to look into this and likely change the location of the
RDEPENDS.
Thanks for flagging.

polkit needs to be in DISTRO_FEATURES and the recipe needs to have a check
for that (and inherit features_check)
[snip]

For an immediate fix I've moved the polkit addition to a bbappend added
via BBFILES_DYNAMIC, gated on meta-oe presence. The current intent is
that the meta-agl-core test on the autobuilder only need poky, so letting
this slip in was a thinko on our part. We may revisit making meta-oe a
required dependency when binary packagefeed prototyping starts in AGL.
Your comment re features_check is right on, I'll add that when I get a
chance over the weekend. One thing I may bring up on the next dev call
is Weston does need polkit in some situations (hence the addition in
AGL), so maybe shifting it to oe-core starts to make more sense now...
Yes, when using the logind launcher, or the seatd launcher with the
logind back-end, polkit is needed to activate the session. There's no
more a direct launcher, weston-launch has been removed and upstream weston
can for some time now use systemd user sessions to starting-up.

The seatd launcher with daemon or built-in back-end, appears to be doing
the activation on its own, but I reckon systemd-logind back-end will be
the de-facto back-end if changing the launcher in weston to seatd, and
removing systemd-logind launcher (as we're currently working towards
having just a single launcher).

One thing to mention here is that while digging this up I've found a
patch to systemd-logind [1] which supposedely should allow just logind
to activate the session as a non-root user, just that either it wasn't
working or it is no longer present, as I haven't been able to activate
sessions without polkit installed.

[1] https://github.com/openembedded/openembedded-core/commit/e42dd9cff98f2149904e104f08bc3f19ee7b6fc0
Adding Joshua, I'm hoping he might have some ideas here?

Cheers,

Richard


Joshua Watt
 

On Tue, May 31, 2022 at 7:27 AM <richard.purdie@...> wrote:

On Sat, 2022-05-28 at 07:40 +0300, Marius Vlad wrote:
On Fri, May 27, 2022 at 04:25:00PM -0400, Scott Murray wrote:
On Fri, 27 May 2022, Tim Orling wrote:

On Fri, May 27, 2022 at 9:18 AM Jan Simon Moeller <
jsmoeller@...> wrote:

Hi !

Yes, we need to look into this and likely change the location of the
RDEPENDS.
Thanks for flagging.

polkit needs to be in DISTRO_FEATURES and the recipe needs to have a check
for that (and inherit features_check)
[snip]

For an immediate fix I've moved the polkit addition to a bbappend added
via BBFILES_DYNAMIC, gated on meta-oe presence. The current intent is
that the meta-agl-core test on the autobuilder only need poky, so letting
this slip in was a thinko on our part. We may revisit making meta-oe a
required dependency when binary packagefeed prototyping starts in AGL.
Your comment re features_check is right on, I'll add that when I get a
chance over the weekend. One thing I may bring up on the next dev call
is Weston does need polkit in some situations (hence the addition in
AGL), so maybe shifting it to oe-core starts to make more sense now...
Yes, when using the logind launcher, or the seatd launcher with the
logind back-end, polkit is needed to activate the session. There's no
more a direct launcher, weston-launch has been removed and upstream weston
can for some time now use systemd user sessions to starting-up.

The seatd launcher with daemon or built-in back-end, appears to be doing
the activation on its own, but I reckon systemd-logind back-end will be
the de-facto back-end if changing the launcher in weston to seatd, and
removing systemd-logind launcher (as we're currently working towards
having just a single launcher).

One thing to mention here is that while digging this up I've found a
patch to systemd-logind [1] which supposedely should allow just logind
to activate the session as a non-root user, just that either it wasn't
working or it is no longer present, as I haven't been able to activate
sessions without polkit installed.

[1] https://github.com/openembedded/openembedded-core/commit/e42dd9cff98f2149904e104f08bc3f19ee7b6fc0
Adding Joshua, I'm hoping he might have some ideas here?
That patch in question fixed a regression in systemd behavior that was
introduced at some point that broke the non-polkit behavior. I was
able to get it fixed, but I also suspect that fighting against using
polkit isn't going to be productive in the long run and we should look
at a way to pull it in..... preferably without needing mozjs (why a
policy system decided to rely on javascript is beyond me). Eventually,
we are going to want polkit-only features from systemd and there won't
be grounds (like "This worked before polkit") to get upstream systemd
to change to support it.


Cheers,

Richard


Mikko Rapeli
 

On Tue, May 31, 2022 at 07:52:05AM -0500, Joshua Watt wrote:
On Tue, May 31, 2022 at 7:27 AM <richard.purdie@...> wrote:

On Sat, 2022-05-28 at 07:40 +0300, Marius Vlad wrote:
On Fri, May 27, 2022 at 04:25:00PM -0400, Scott Murray wrote:
On Fri, 27 May 2022, Tim Orling wrote:

On Fri, May 27, 2022 at 9:18 AM Jan Simon Moeller <
jsmoeller@...> wrote:

Hi !

Yes, we need to look into this and likely change the location of the
RDEPENDS.
Thanks for flagging.

polkit needs to be in DISTRO_FEATURES and the recipe needs to have a check
for that (and inherit features_check)
[snip]

For an immediate fix I've moved the polkit addition to a bbappend added
via BBFILES_DYNAMIC, gated on meta-oe presence. The current intent is
that the meta-agl-core test on the autobuilder only need poky, so letting
this slip in was a thinko on our part. We may revisit making meta-oe a
required dependency when binary packagefeed prototyping starts in AGL.
Your comment re features_check is right on, I'll add that when I get a
chance over the weekend. One thing I may bring up on the next dev call
is Weston does need polkit in some situations (hence the addition in
AGL), so maybe shifting it to oe-core starts to make more sense now...
Yes, when using the logind launcher, or the seatd launcher with the
logind back-end, polkit is needed to activate the session. There's no
more a direct launcher, weston-launch has been removed and upstream weston
can for some time now use systemd user sessions to starting-up.

The seatd launcher with daemon or built-in back-end, appears to be doing
the activation on its own, but I reckon systemd-logind back-end will be
the de-facto back-end if changing the launcher in weston to seatd, and
removing systemd-logind launcher (as we're currently working towards
having just a single launcher).

One thing to mention here is that while digging this up I've found a
patch to systemd-logind [1] which supposedely should allow just logind
to activate the session as a non-root user, just that either it wasn't
working or it is no longer present, as I haven't been able to activate
sessions without polkit installed.

[1] https://github.com/openembedded/openembedded-core/commit/e42dd9cff98f2149904e104f08bc3f19ee7b6fc0
Adding Joshua, I'm hoping he might have some ideas here?
That patch in question fixed a regression in systemd behavior that was
introduced at some point that broke the non-polkit behavior. I was
able to get it fixed, but I also suspect that fighting against using
polkit isn't going to be productive in the long run and we should look
at a way to pull it in..... preferably without needing mozjs (why a
policy system decided to rely on javascript is beyond me). Eventually,
we are going to want polkit-only features from systemd and there won't
be grounds (like "This worked before polkit") to get upstream systemd
to change to support it.
oe-core and poky master already switched from mozjs to duktape with polkit.
I've cherry-picked these changes for my own branches of older yocto releases.

-Mikko