diff mbox series

[yocto-autobuilder-helper] config.json: Add lib32-matchbox-terminal to multilib images

Message ID 20231122014822.3871458-1-raj.khem@gmail.com
State New
Headers show
Series [yocto-autobuilder-helper] config.json: Add lib32-matchbox-terminal to multilib images | expand

Commit Message

Khem Raj Nov. 22, 2023, 1:48 a.m. UTC
This avoids an issue when a package that pulls in gtk4 into
core-image-sato but not into multilib pieces results in different
gschema compiled files as reported in [1]

[1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15291

Signed-off-by: Khem Raj <raj.khem@gmail.com>
---
 config.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Ross Burton Nov. 23, 2023, 11:49 a.m. UTC | #1
Is this working around a failure on the autobuilder?  How does matchbox-terminal pull in gtk4?

Ross
> On 22 Nov 2023, at 01:48, Khem Raj via lists.yoctoproject.org <raj.khem=gmail.com@lists.yoctoproject.org> wrote:
> 
> This avoids an issue when a package that pulls in gtk4 into
> core-image-sato but not into multilib pieces results in different
> gschema compiled files as reported in [1]
> 
> [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15291
> 
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> config.json | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/config.json b/config.json
> index c5fca45..e95a292 100644
> --- a/config.json
> +++ b/config.json
> @@ -900,7 +900,7 @@
>                     "MULTILIBS = 'multilib:lib32'",
>                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
>                     "RPM_PREFER_ELF_ARCH = '1'",
> -                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
> +                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
>                 ]
>             },
>             "step4" : {
> @@ -915,7 +915,7 @@
>                     "MULTILIBS = 'multilib:lib32'",
>                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
>                     "RPM_PREFER_ELF_ARCH = '1'",
> -                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
> +                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
>                 ]
>             },
>             "step5" : {
> -- 
> 2.43.0
> 
> 
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#61728): https://lists.yoctoproject.org/g/yocto/message/61728
> Mute This Topic: https://lists.yoctoproject.org/mt/102741765/6875888
> Group Owner: yocto+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [ross.burton@arm.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Alexander Kanavin Nov. 23, 2023, noon UTC | #2
matchbox-terminal depends on vte, and latest vte enables gtk4 support.

Also, I do not understand how the fix works. How does installing
additional packages into an image resolve a conflict between two
packages installing different files into the same location?

Alex

On Thu, 23 Nov 2023 at 12:50, Ross Burton <ross.burton@arm.com> wrote:
>
> Is this working around a failure on the autobuilder?  How does matchbox-terminal pull in gtk4?
>
> Ross
> > On 22 Nov 2023, at 01:48, Khem Raj via lists.yoctoproject.org <raj.khem=gmail.com@lists.yoctoproject.org> wrote:
> >
> > This avoids an issue when a package that pulls in gtk4 into
> > core-image-sato but not into multilib pieces results in different
> > gschema compiled files as reported in [1]
> >
> > [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15291
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> > config.json | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/config.json b/config.json
> > index c5fca45..e95a292 100644
> > --- a/config.json
> > +++ b/config.json
> > @@ -900,7 +900,7 @@
> >                     "MULTILIBS = 'multilib:lib32'",
> >                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
> >                     "RPM_PREFER_ELF_ARCH = '1'",
> > -                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
> > +                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
> >                 ]
> >             },
> >             "step4" : {
> > @@ -915,7 +915,7 @@
> >                     "MULTILIBS = 'multilib:lib32'",
> >                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
> >                     "RPM_PREFER_ELF_ARCH = '1'",
> > -                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
> > +                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
> >                 ]
> >             },
> >             "step5" : {
> > --
> > 2.43.0
> >
> >
> >
> >
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#61738): https://lists.yoctoproject.org/g/yocto/message/61738
> Mute This Topic: https://lists.yoctoproject.org/mt/102741765/1686489
> Group Owner: yocto+owner@lists.yoctoproject.org
> Unsubscribe: https://lists.yoctoproject.org/g/yocto/leave/6691550/1686489/412949215/xyzzy [alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Ross Burton Nov. 23, 2023, 12:14 p.m. UTC | #3
On 23 Nov 2023, at 12:00, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
> 
> matchbox-terminal depends on vte, and latest vte enables gtk4 support.

Are you sure?

https://git.yoctoproject.org/poky/tree/meta/recipes-support/vte/vte_0.72.2.bb#n14

> Also, I do not understand how the fix works. How does installing
> additional packages into an image resolve a conflict between two
> packages installing different files into the same location?

The problem is that the ipkg rootfs generation works “interestingly” and appears to create two parallel rootfs (one for normal one for multilib) and then splats them together.

The schemas are installed in /usr/share but if you have different sets of libraries in /usr/lib and /usr/lib32 then the compiled schemas are different.

This feels like an issue which has existed for a long time, so how has it only just been noticed?  Did something change?

Ross
Alexander Kanavin Nov. 23, 2023, 12:19 p.m. UTC | #4
On Thu, 23 Nov 2023 at 13:14, Ross Burton <Ross.Burton@arm.com> wrote:
>
> On 23 Nov 2023, at 12:00, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
> >
> > matchbox-terminal depends on vte, and latest vte enables gtk4 support.
>
> Are you sure?
>
> https://git.yoctoproject.org/poky/tree/meta/recipes-support/vte/vte_0.72.2.bb#n14

Latest, as in latest submitted version update (to 0.74). Various
people are trying to make it pass the AB, first Markus, now Khem. It
has gained gtk4 support and it is enabled.

> The problem is that the ipkg rootfs generation works “interestingly” and appears to create two parallel rootfs (one for normal one for multilib) and then splats them together.
>
> The schemas are installed in /usr/share but if you have different sets of libraries in /usr/lib and /usr/lib32 then the compiled schemas are different.
>
> This feels like an issue which has existed for a long time, so how has it only just been noticed?  Did something change?

The conflicting schemas come from gtk4 and I guess until now there was
no multilib scenario where it would get pulled in?

Alex
Ross Burton Nov. 23, 2023, 2:01 p.m. UTC | #5
On 23 Nov 2023, at 12:19, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
> 
> On Thu, 23 Nov 2023 at 13:14, Ross Burton <Ross.Burton@arm.com> wrote:
>> 
>> On 23 Nov 2023, at 12:00, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
>>> 
>>> matchbox-terminal depends on vte, and latest vte enables gtk4 support.
>> 
>> Are you sure?
>> 
>> https://git.yoctoproject.org/poky/tree/meta/recipes-support/vte/vte_0.72.2.bb#n14
> 
> Latest, as in latest submitted version update (to 0.74). Various
> people are trying to make it pass the AB, first Markus, now Khem. It
> has gained gtk4 support and it is enabled.

Ah.

Surely it shouldn’t be shipping the gtk3 and gtk4 libraries in a single package?

Ross
Dave Hitchman Nov. 23, 2023, 3:13 p.m. UTC | #6
I am trying to append to linux-imx.
If I deliberately put a wrong filename in the src_uri append it warns me and carries on with no effect or worry.
Anything I put in the do_configure:append() or prepend() is just totally and utterly ignored.
Khem Raj Nov. 23, 2023, 4:38 p.m. UTC | #7
On Thu, Nov 23, 2023 at 3:50 AM Ross Burton <Ross.Burton@arm.com> wrote:
>
> Is this working around a failure on the autobuilder?  How does matchbox-terminal pull in gtk4?

yes
it pulls in lib32-vte which pulls in lib32-gtk4

>
> Ross
> > On 22 Nov 2023, at 01:48, Khem Raj via lists.yoctoproject.org <raj.khem=gmail.com@lists.yoctoproject.org> wrote:
> >
> > This avoids an issue when a package that pulls in gtk4 into
> > core-image-sato but not into multilib pieces results in different
> > gschema compiled files as reported in [1]
> >
> > [1] https://bugzilla.yoctoproject.org/show_bug.cgi?id=15291
> >
> > Signed-off-by: Khem Raj <raj.khem@gmail.com>
> > ---
> > config.json | 4 ++--
> > 1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/config.json b/config.json
> > index c5fca45..e95a292 100644
> > --- a/config.json
> > +++ b/config.json
> > @@ -900,7 +900,7 @@
> >                     "MULTILIBS = 'multilib:lib32'",
> >                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
> >                     "RPM_PREFER_ELF_ARCH = '1'",
> > -                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
> > +                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
> >                 ]
> >             },
> >             "step4" : {
> > @@ -915,7 +915,7 @@
> >                     "MULTILIBS = 'multilib:lib32'",
> >                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
> >                     "RPM_PREFER_ELF_ARCH = '1'",
> > -                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
> > +                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
> >                 ]
> >             },
> >             "step5" : {
> > --
> > 2.43.0
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#61728): https://lists.yoctoproject.org/g/yocto/message/61728
> > Mute This Topic: https://lists.yoctoproject.org/mt/102741765/6875888
> > Group Owner: yocto+owner@lists.yoctoproject.org
> > Unsubscribe: https://lists.yoctoproject.org/g/yocto/unsub [ross.burton@arm.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
>
Khem Raj Nov. 23, 2023, 4:42 p.m. UTC | #8
On Thu, Nov 23, 2023 at 4:14 AM Ross Burton <Ross.Burton@arm.com> wrote:
>
> On 23 Nov 2023, at 12:00, Alexander Kanavin <alex.kanavin@gmail.com> wrote:
> >
> > matchbox-terminal depends on vte, and latest vte enables gtk4 support.
>
> Are you sure?
>
> https://git.yoctoproject.org/poky/tree/meta/recipes-support/vte/vte_0.72.2.bb#n14
>
> > Also, I do not understand how the fix works. How does installing
> > additional packages into an image resolve a conflict between two
> > packages installing different files into the same location?
>
> The problem is that the ipkg rootfs generation works “interestingly” and appears to create two parallel rootfs (one for normal one for multilib) and then splats them together.
>
> The schemas are installed in /usr/share but if you have different sets of libraries in /usr/lib and /usr/lib32 then the compiled schemas are different.

Does not depend on content of /usr/lib or /usr/lib32, depending upon
whats getting into given rootfs, the schemas pulled are different and
hence the compiled gschema is
different which is them being overlayed into combined rootfs finally.
A good solution would be to create. common /usr/share directory
between two rootfs'es and let it be
populated with given dependencies, that way it will generate correct superset.

>
> This feels like an issue which has existed for a long time, so how has it only just been noticed?  Did something change?
>
> Ross
Khem Raj Nov. 23, 2023, 4:44 p.m. UTC | #9
maybe your bbappend is not matching in name to recipe or maybe
something else, typos etc. Showing exact code can help a bit more in
understanding what might be going on.

On Thu, Nov 23, 2023 at 7:13 AM Dave Hitchman <dave.hitchman@kymati.com> wrote:
>
> I am trying to append to linux-imx.
> If I deliberately put a wrong filename in the src_uri append it warns me and carries on with no effect or worry.
> Anything I put in the do_configure:append() or prepend() is just totally and utterly ignored.
>
>
Dave Hitchman Nov. 23, 2023, 7:06 p.m. UTC | #10
The name matches for sure, it seems to be a question of exact spacing or similar... its just crazy that it doesnt even error and stop when it doesnt understand things
________________________________
From: Khem Raj <raj.khem@gmail.com>
Sent: 23 November 2023 17:44
To: Dave Hitchman <dave.hitchman@kymati.com>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>; ross.burton@arm.com <ross.burton@arm.com>; yocto@lists.yoctoproject.org <yocto@lists.yoctoproject.org>
Subject: Re: [yocto] [yocto-autobuilder-helper][PATCH] how can a missing file be a WARNING and the build 'succeed'?

maybe your bbappend is not matching in name to recipe or maybe
something else, typos etc. Showing exact code can help a bit more in
understanding what might be going on.

On Thu, Nov 23, 2023 at 7:13 AM Dave Hitchman <dave.hitchman@kymati.com> wrote:
>
> I am trying to append to linux-imx.
> If I deliberately put a wrong filename in the src_uri append it warns me and carries on with no effect or worry.
> Anything I put in the do_configure:append() or prepend() is just totally and utterly ignored.
>
>
Dave Hitchman Nov. 23, 2023, 7:07 p.m. UTC | #11
But to be fair... 'Files' has decided to stop working properly as well on this machine, I mean, do an ll on a directory and find 5 sub directories while 'Files' claims 2, then if you close ALL the 'Files' windows it finally learns to look at the disk. Just said to a colleague I think I will give up and become a monk
________________________________
From: Khem Raj <raj.khem@gmail.com>
Sent: 23 November 2023 17:44
To: Dave Hitchman <dave.hitchman@kymati.com>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>; ross.burton@arm.com <ross.burton@arm.com>; yocto@lists.yoctoproject.org <yocto@lists.yoctoproject.org>
Subject: Re: [yocto] [yocto-autobuilder-helper][PATCH] how can a missing file be a WARNING and the build 'succeed'?

maybe your bbappend is not matching in name to recipe or maybe
something else, typos etc. Showing exact code can help a bit more in
understanding what might be going on.

On Thu, Nov 23, 2023 at 7:13 AM Dave Hitchman <dave.hitchman@kymati.com> wrote:
>
> I am trying to append to linux-imx.
> If I deliberately put a wrong filename in the src_uri append it warns me and carries on with no effect or worry.
> Anything I put in the do_configure:append() or prepend() is just totally and utterly ignored.
>
>
Dave Hitchman Nov. 23, 2023, 7:14 p.m. UTC | #12
Is there some rule I dont know about that says each line of the contents of a prepend HAVE to be indented with a single tab? It appears that might be some way to solving the issue? Which only leaves the next problem - I want to copy files that are in the same directory as the bbappend, now the suggestion I have seen is ${WORKDIR} but it doesnt appear if I print it out that this is the directory I expect.
________________________________
From: Khem Raj <raj.khem@gmail.com>
Sent: 23 November 2023 17:44
To: Dave Hitchman <dave.hitchman@kymati.com>
Cc: Alexander Kanavin <alex.kanavin@gmail.com>; ross.burton@arm.com <ross.burton@arm.com>; yocto@lists.yoctoproject.org <yocto@lists.yoctoproject.org>
Subject: Re: [yocto] [yocto-autobuilder-helper][PATCH] how can a missing file be a WARNING and the build 'succeed'?

maybe your bbappend is not matching in name to recipe or maybe
something else, typos etc. Showing exact code can help a bit more in
understanding what might be going on.

On Thu, Nov 23, 2023 at 7:13 AM Dave Hitchman <dave.hitchman@kymati.com> wrote:
>
> I am trying to append to linux-imx.
> If I deliberately put a wrong filename in the src_uri append it warns me and carries on with no effect or worry.
> Anything I put in the do_configure:append() or prepend() is just totally and utterly ignored.
>
>
Ross Burton Nov. 24, 2023, 12:09 p.m. UTC | #13
On 23 Nov 2023, at 16:38, Khem Raj <raj.khem@gmail.com> wrote:
> 
> it pulls in lib32-vte which pulls in lib32-gtk4

So the trigger is bad packaging, as surely the vte recipe should split the libraries up so that installing a gtk*3* based terminal doesn’t pull in gtk4 for no reason.

Ross
Khem Raj Nov. 24, 2023, 4:53 p.m. UTC | #14
On Fri, Nov 24, 2023 at 4:09 AM Ross Burton <Ross.Burton@arm.com> wrote:

> On 23 Nov 2023, at 16:38, Khem Raj <raj.khem@gmail.com> wrote:
> >
> > it pulls in lib32-vte which pulls in lib32-gtk4
>
> So the trigger is bad packaging, as surely the vte recipe should split the
> libraries up so that installing a gtk*3* based terminal doesn’t pull in
> gtk4 for no reason.
>

New vte enables both gtk3 and gtk4 support I don’t think it’s bad
packaging. Multiple versions of gtk can live together in a rootfs without
conflict


> Ross
Ross Burton Nov. 24, 2023, 5:04 p.m. UTC | #15
> On 24 Nov 2023, at 16:53, Khem Raj <raj.khem@gmail.com> wrote:
> So the trigger is bad packaging, as surely the vte recipe should split the libraries up so that installing a gtk*3* based terminal doesn’t pull in gtk4 for no reason.
> 
> New vte enables both gtk3 and gtk4 support I don’t think it’s bad packaging. Multiple versions of gtk can live together in a rootfs without conflict 

Sure they _can_ but it’s a terrible idea to pull in both if they’re not needed.

Ross
Khem Raj Nov. 24, 2023, 5:09 p.m. UTC | #16
On Fri, Nov 24, 2023 at 9:04 AM Ross Burton <Ross.Burton@arm.com> wrote:

>
>
> > On 24 Nov 2023, at 16:53, Khem Raj <raj.khem@gmail.com> wrote:
> > So the trigger is bad packaging, as surely the vte recipe should split
> the libraries up so that installing a gtk*3* based terminal doesn’t pull in
> gtk4 for no reason.
> >
> > New vte enables both gtk3 and gtk4 support I don’t think it’s bad
> packaging. Multiple versions of gtk can live together in a rootfs without
> conflict
>
> Sure they _can_ but it’s a terrible idea to pull in both if they’re not
> needed.


Ok so do we think should gtk4 be a distro feature which conflicts with gtk3
?


>
> Ross
Ross Burton Nov. 24, 2023, 5:12 p.m. UTC | #17
On 24 Nov 2023, at 17:09, Khem Raj <raj.khem@gmail.com> wrote:
> > New vte enables both gtk3 and gtk4 support I don’t think it’s bad packaging. Multiple versions of gtk can live together in a rootfs without conflict 
> 
> Sure they _can_ but it’s a terrible idea to pull in both if they’re not needed.
> 
> Ok so do we think should gtk4 be a distro feature which conflicts with gtk3 ?

Definitely not.

Ross
diff mbox series

Patch

diff --git a/config.json b/config.json
index c5fca45..e95a292 100644
--- a/config.json
+++ b/config.json
@@ -900,7 +900,7 @@ 
                     "MULTILIBS = 'multilib:lib32'",
                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
                     "RPM_PREFER_ELF_ARCH = '1'",
-                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
+                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
                 ]
             },
             "step4" : {
@@ -915,7 +915,7 @@ 
                     "MULTILIBS = 'multilib:lib32'",
                     "DEFAULTTUNE:virtclass-multilib-lib32 = 'x86'",
                     "RPM_PREFER_ELF_ARCH = '1'",
-                    "IMAGE_INSTALL:append = ' lib32-connman-gnome pango-module-basic-fc lib32-pango-module-basic-fc'"
+                    "IMAGE_INSTALL:append = ' lib32-connman-gnome lib32-matchbox-terminal pango-module-basic-fc lib32-pango-module-basic-fc'"
                 ]
             },
             "step5" : {