public inbox for openembedded-core@lists.openembedded.org
 help / color / mirror / Atom feed
* [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
@ 2025-04-15  3:08 Lei Maohui
  2025-04-17  9:19 ` Jose Quaresma
  0 siblings, 1 reply; 7+ messages in thread
From: Lei Maohui @ 2025-04-15  3:08 UTC (permalink / raw)
  To: Anuj Mittal; +Cc: openembedded-core, Lei Maohui

Error: Transaction test error:
  file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted installs of lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and gstreamer1.0-dev-1.26.0-r0.core2_64

fixed-size differs between 32 bit and 64 bit system

$ diff /mnt/test/build_auh/tmp/work/core2-64-poky-linux/gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir /mnt/test/build_auh/tmp/work/core2-32-pokymllib32-linux/lib32-gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir
31864c31864
<         <array zero-terminated="0" fixed-size="8">
---
>         <array zero-terminated="0" fixed-size="12">

source code:
$ less gstreamer1.0-dev/usr/include/gstreamer-1.0/gst/gstidstr.h
typedef struct {
  /* < private > */
  gpointer pointer;
  guint8 padding[8];
  guint8 padding[12];
  #error "Only 32 bit and 64 bit pointers supported currently"
} GstIdStr;

Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
---
 meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
index a908ecd166..5c795ad676 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
@@ -8,7 +8,7 @@ LICENSE = "LGPL-2.1-or-later"
 
 DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
 
-inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
+inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome multilib_script
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
                     file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
@@ -68,6 +68,8 @@ FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
 FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
 FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
 
+MULTILIB_SCRIPTS:append = "${PN}-dev:${datadir}/gir-1.0/Gst-1.0.gir"
+
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"
 
 CVE_PRODUCT = "gstreamer"
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
  2025-04-15  3:08 Lei Maohui
@ 2025-04-17  9:19 ` Jose Quaresma
  0 siblings, 0 replies; 7+ messages in thread
From: Jose Quaresma @ 2025-04-17  9:19 UTC (permalink / raw)
  To: leimaohui; +Cc: Anuj Mittal, openembedded-core

[-- Attachment #1: Type: text/plain, Size: 3196 bytes --]

leimaohui via lists.openembedded.org <leimaohui=
fujitsu.com@lists.openembedded.org> escreveu (terça, 15/04/2025 à(s) 04:08):

> Error: Transaction test error:
>   file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted installs
> of lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and
> gstreamer1.0-dev-1.26.0-r0.core2_64
>
> fixed-size differs between 32 bit and 64 bit system
>
> $ diff
> /mnt/test/build_auh/tmp/work/core2-64-poky-linux/gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir
> /mnt/test/build_auh/tmp/work/core2-32-pokymllib32-linux/lib32-gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir
> 31864c31864
> <         <array zero-terminated="0" fixed-size="8">
> ---
> >         <array zero-terminated="0" fixed-size="12">
>
> source code:
> $ less gstreamer1.0-dev/usr/include/gstreamer-1.0/gst/gstidstr.h
> typedef struct {
>   /* < private > */
>   gpointer pointer;
>   guint8 padding[8];
>   guint8 padding[12];
>   #error "Only 32 bit and 64 bit pointers supported currently"
> } GstIdStr;
>
> Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
> ---
>  meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
> b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
> index a908ecd166..5c795ad676 100644
> --- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
> +++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
> @@ -8,7 +8,7 @@ LICENSE = "LGPL-2.1-or-later"
>
>  DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
>
> -inherit meson pkgconfig gettext upstream-version-is-even
> gobject-introspection ptest-gnome
> +inherit meson pkgconfig gettext upstream-version-is-even
> gobject-introspection ptest-gnome multilib_script
>
>  LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
>
>  file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
> @@ -68,6 +68,8 @@ FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a
> ${libdir}/gstreamer-1.0/include"
>  FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/
> ${datadir}/bash-completion/helpers/gst*"
>  FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
>
> +MULTILIB_SCRIPTS:append = "${PN}-dev:${datadir}/gir-1.0/Gst-1.0.gir"
> +
>

Missing space on the beginning of the string, it should be:
MULTILIB_SCRIPTS:append = " ${PN}-dev:${datadir}/gir-1.0/Gst-1.0.gir"

Jose


>  RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"
>
>  CVE_PRODUCT = "gstreamer"
> --
> 2.43.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#214816):
> https://lists.openembedded.org/g/openembedded-core/message/214816
> Mute This Topic: https://lists.openembedded.org/mt/112270803/5052612
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> quaresma.jose@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

-- 
Best regards,

José Quaresma

[-- Attachment #2: Type: text/html, Size: 5145 bytes --]

^ permalink raw reply	[flat|nested] 7+ messages in thread

* [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
@ 2025-04-22  2:51 Lei Maohui
  2025-04-22 10:44 ` Ross Burton
  2025-04-22 11:17 ` Ross Burton
  0 siblings, 2 replies; 7+ messages in thread
From: Lei Maohui @ 2025-04-22  2:51 UTC (permalink / raw)
  To: Ross Burton; +Cc: openembedded-core, Lei Maohui

Error: Transaction test error:
  file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted installs of lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and gstreamer1.0-dev-1.26.0-r0.core2_64

fixed-size differs between 32 bit and 64 bit system

$ diff /mnt/test/build_auh/tmp/work/core2-64-poky-linux/gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir /mnt/test/build_auh/tmp/work/core2-32-pokymllib32-linux/lib32-gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir
31864c31864
<         <array zero-terminated="0" fixed-size="8">
---
>         <array zero-terminated="0" fixed-size="12">

The issue that "/usr/share is a architecture-independent location but contains architecture-dependent file", is
a "long-known problem with gobject-introspection. You'll probably find an issue or three from 10 years ago about that"
according to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4377

We can found issue reported years ago, gstreamer community will not handle this issue for now
https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues?search=multiarch

Signed-off-by: Lei Maohui <leimaohui@fujitsu.com>
---
 meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
index a908ecd166..5c795ad676 100644
--- a/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
+++ b/meta/recipes-multimedia/gstreamer/gstreamer1.0_1.26.0.bb
@@ -8,7 +8,7 @@ LICENSE = "LGPL-2.1-or-later"
 
 DEPENDS = "glib-2.0 glib-2.0-native libxml2 bison-native flex-native"
 
-inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome
+inherit meson pkgconfig gettext upstream-version-is-even gobject-introspection ptest-gnome multilib_script
 
 LIC_FILES_CHKSUM = "file://COPYING;md5=69333daa044cb77e486cc36129f7a770 \
                     file://gst/gst.h;beginline=1;endline=21;md5=e059138481205ee2c6fc1c079c016d0d"
@@ -68,6 +68,8 @@ FILES:${PN}-dev += "${libdir}/gstreamer-1.0/*.a ${libdir}/gstreamer-1.0/include"
 FILES:${PN}-bash-completion += "${datadir}/bash-completion/completions/ ${datadir}/bash-completion/helpers/gst*"
 FILES:${PN}-dbg += "${datadir}/gdb ${datadir}/gstreamer-1.0/gdb"
 
+MULTILIB_SCRIPTS:append = " ${PN}-dev:${datadir}/gir-1.0/Gst-1.0.gir"
+
 RDEPENDS:${PN}-ptest:append:libc-glibc = " glibc-gconv-iso8859-5"
 
 CVE_PRODUCT = "gstreamer"
-- 
2.43.0



^ permalink raw reply related	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
  2025-04-22  2:51 [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib Lei Maohui
@ 2025-04-22 10:44 ` Ross Burton
  2025-04-24  1:01   ` 回复: " Yiding Liu (Fujitsu)
  2025-04-22 11:17 ` Ross Burton
  1 sibling, 1 reply; 7+ messages in thread
From: Ross Burton @ 2025-04-22 10:44 UTC (permalink / raw)
  To: Lei Maohui; +Cc: openembedded-core@lists.openembedded.org

On 22 Apr 2025, at 03:51, Lei Maohui <leimaohui@fujitsu.com> wrote:
> 
> Error: Transaction test error:
>  file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted installs of lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and gstreamer1.0-dev-1.26.0-r0.core2_64
> 
> fixed-size differs between 32 bit and 64 bit system
> 
> $ diff /mnt/test/build_auh/tmp/work/core2-64-poky-linux/gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir /mnt/test/build_auh/tmp/work/core2-32-pokymllib32-linux/lib32-gstreamer1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir
> 31864c31864
> <         <array zero-terminated="0" fixed-size="8">
> ---
>>        <array zero-terminated="0" fixed-size="12">
> 
> The issue that "/usr/share is a architecture-independent location but contains architecture-dependent file", is
> a "long-known problem with gobject-introspection. You'll probably find an issue or three from 10 years ago about that"
> according to https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4377
> 
> We can found issue reported years ago, gstreamer community will not handle this issue for now
> https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues?search=multiarch

And I still reject this as being an inappropriate workaround: you shouldn’t have to use update-alternatives to build something unless desperately needed.

Following the search you provided we come across https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/323 for the general issue and the accepted MR https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/63 that was filed by Kang Kai from Wind River.

This is not the solution.  Putting the .gir into $libdir is the answer.  See, for example, the Debian G-I policy: https://salsa.debian.org/gnome-team/gobject-introspection/-/blob/debian/latest/debian/policy.txt?ref_type=heads.

The interesting question is why Debian doesn’t feel the need to do this.

Ross

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
  2025-04-22  2:51 [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib Lei Maohui
  2025-04-22 10:44 ` Ross Burton
@ 2025-04-22 11:17 ` Ross Burton
  2025-04-23  2:57   ` 回复: " Yiding Liu (Fujitsu)
  1 sibling, 1 reply; 7+ messages in thread
From: Ross Burton @ 2025-04-22 11:17 UTC (permalink / raw)
  To: Lei Maohui; +Cc: openembedded-core@lists.openembedded.org

On 22 Apr 2025, at 03:51, Lei Maohui <leimaohui@fujitsu.com> wrote:
> 
> Error: Transaction test error:
>  file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted installs of lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and gstreamer1.0-dev-1.26.0-r0.core2_64
> 
> fixed-size differs between 32 bit and 64 bit system

Also what exact configuration are you replicating this in, and what is the surrounding type that contains the differing size?  I can’t replicate with qemux86 vs qemux86-64:

$ ls core2-*/gstreamer1.0/*/image/usr/share/gir-1.0/Gst-1.0.gir
core2-32-poky-linux/gstreamer1.0/1.24.12/image/usr/share/gir-1.0/Gst-1.0.gir
core2-64-poky-linux/gstreamer1.0/1.24.12/image/usr/share/gir-1.0/Gst-1.0.gir

$ diff core2-*/gstreamer1.0/*/image/usr/share/gir-1.0/Gst-1.0.gir
$

Ross

^ permalink raw reply	[flat|nested] 7+ messages in thread

* 回复: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
  2025-04-22 11:17 ` Ross Burton
@ 2025-04-23  2:57   ` Yiding Liu (Fujitsu)
  0 siblings, 0 replies; 7+ messages in thread
From: Yiding Liu (Fujitsu) @ 2025-04-23  2:57 UTC (permalink / raw)
  To: ross.burton@arm.com; +Cc: openembedded-core@lists.openembedded.org



> -----邮件原件-----
> 发件人: openembedded-core@lists.openembedded.org
> <openembedded-core@lists.openembedded.org> 代表 Ross Burton via
> lists.openembedded.org
> 发送时间: 2025年4月22日 19:17
> 收件人: Lei, Maohui/雷 茂慧 <leimaohui@fujitsu.com>
> 抄送: openembedded-core@lists.openembedded.org
> 主题: Re: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable
> multilib
> 
> On 22 Apr 2025, at 03:51, Lei Maohui <leimaohui@fujitsu.com> wrote:
> >
> > Error: Transaction test error:
> >  file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted installs of
> lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and
> gstreamer1.0-dev-1.26.0-r0.core2_64
> >
> > fixed-size differs between 32 bit and 64 bit system
> 
> Also what exact configuration are you replicating this in, and what is the
> surrounding type that contains the differing size?  I can’t replicate with
> qemux86 vs qemux86-64:
> 
> $ ls core2-*/gstreamer1.0/*/image/usr/share/gir-1.0/Gst-1.0.gir
> core2-32-poky-linux/gstreamer1.0/1.24.12/image/usr/share/gir-1.0/Gst-1.0.
> gir
> core2-64-poky-linux/gstreamer1.0/1.24.12/image/usr/share/gir-1.0/Gst-1.0.
> gir
> 
> $ diff core2-*/gstreamer1.0/*/image/usr/share/gir-1.0/Gst-1.0.gir
> $

I will work on this patch on behalf of my colleague from now

reproduce steps:
1. Add in local.conf the following lines:

  MACHINE ?= "qemux86-64"

  require conf/multilib.conf

  MULTILIBS ?= "multilib:lib32"

  DEFAULTTUNE:virtclass-multilib-lib32 ?= "core2-32"

2. add lib32-gstreamer1.0-dev gstreamer1.0-dev to core-image-minimal.bb

  IMAGE_INSTALL = "packagegroup-core-boot ${CORE_IMAGE_EXTRA_INSTALL} lib32-gstreamer1.0-dev gstreamer1.0-dev "

3. $ bitbake core-image-minimal

Liu Yiding

> 
> Ross

^ permalink raw reply	[flat|nested] 7+ messages in thread

* 回复: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib
  2025-04-22 10:44 ` Ross Burton
@ 2025-04-24  1:01   ` Yiding Liu (Fujitsu)
  0 siblings, 0 replies; 7+ messages in thread
From: Yiding Liu (Fujitsu) @ 2025-04-24  1:01 UTC (permalink / raw)
  To: ross.burton@arm.com, Maohui Lei (Fujitsu)
  Cc: openembedded-core@lists.openembedded.org



> -----邮件原件-----
> 发件人: openembedded-core@lists.openembedded.org
> <openembedded-core@lists.openembedded.org> 代表 Ross Burton via
> lists.openembedded.org
> 发送时间: 2025年4月22日 18:45
> 收件人: Lei, Maohui/雷 茂慧 <leimaohui@fujitsu.com>
> 抄送: openembedded-core@lists.openembedded.org
> 主题: Re: [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable
> multilib
> 
> On 22 Apr 2025, at 03:51, Lei Maohui <leimaohui@fujitsu.com> wrote:
> >
> > Error: Transaction test error:
> >  file /usr/share/gir-1.0/Gst-1.0.gir conflicts between attempted
> > installs of lib32-gstreamer1.0-dev-1.26.0-r0.core2_32 and
> > gstreamer1.0-dev-1.26.0-r0.core2_64
> >
> > fixed-size differs between 32 bit and 64 bit system
> >
> > $ diff
> > /mnt/test/build_auh/tmp/work/core2-64-poky-linux/gstreamer1.0/1.26.0/i
> > mage/usr/share/gir-1.0/Gst-1.0.gir
> > /mnt/test/build_auh/tmp/work/core2-32-pokymllib32-linux/lib32-gstreame
> > r1.0/1.26.0/image/usr/share/gir-1.0/Gst-1.0.gir
> > 31864c31864
> > <         <array zero-terminated="0" fixed-size="8">
> > ---
> >>        <array zero-terminated="0" fixed-size="12">
> >
> > The issue that "/usr/share is a architecture-independent location but
> > contains architecture-dependent file", is a "long-known problem with
> gobject-introspection. You'll probably find an issue or three from 10 years ago
> about that"
> > according to
> > https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4377
> >
> > We can found issue reported years ago, gstreamer community will not
> > handle this issue for now
> > https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues?search=m
> > ultiarch
> 
> And I still reject this as being an inappropriate workaround: you shouldn’t have to
> use update-alternatives to build something unless desperately needed.
> 
> Following the search you provided we come across
> https://gitlab.gnome.org/GNOME/gobject-introspection/-/issues/323 for the
> general issue and the accepted MR
> https://gitlab.gnome.org/GNOME/gobject-introspection/-/merge_requests/63
> that was filed by Kang Kai from Wind River.
> 
> This is not the solution.  Putting the .gir into $libdir is the answer.  See, for
> example, the Debian G-I policy:
> https://salsa.debian.org/gnome-team/gobject-introspection/-/blob/debian/lates
> t/debian/policy.txt?ref_type=heads.
> 
> The interesting question is why Debian doesn’t feel the need to do this.

Yesterday, I spent several hours trying to install GIR files into libdir instead of datadir. However, it seems this is not a straightforward task.

I sought help from the GStreamer community here:
https://gitlab.freedesktop.org/gstreamer/gstreamer/-/issues/4383

According to the owner's response:
"This is not going to work as gobject-introspection (and meson) expect it to be installed in /usr/share. This has to be fixed in gobject-introspection first."

I realize this isn’t something that I can easily accomplish, sorry.

Liu Yiding
> 
> Ross

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2025-04-24  1:02 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-04-22  2:51 [OE-core] [PATCH] gstreamer1.0-dev: Fix install conflict when enable multilib Lei Maohui
2025-04-22 10:44 ` Ross Burton
2025-04-24  1:01   ` 回复: " Yiding Liu (Fujitsu)
2025-04-22 11:17 ` Ross Burton
2025-04-23  2:57   ` 回复: " Yiding Liu (Fujitsu)
  -- strict thread matches above, loose matches on Subject: below --
2025-04-15  3:08 Lei Maohui
2025-04-17  9:19 ` Jose Quaresma

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox