diff mbox series

[v2] vala: Fix install conflict when enable multilib.

Message ID 1678168291-14150-1-git-send-email-wangmy@fujitsu.com
State Accepted, archived
Commit 3cf894b8a9c4fa14fcc7c7445e85e9ae3192b398
Headers show
Series [v2] vala: Fix install conflict when enable multilib. | expand

Commit Message

Mingyu Wang (Fujitsu) March 7, 2023, 5:51 a.m. UTC
From: Wang Mingyu <wangmy@fujitsu.com>

Error: Transaction test error:
   file /usr/bin/vala-gen-introspect-0.56 conflicts between attempted installs of lib32-vala-0.56.3-r0.armv7ahf_neon and vala-0.56.3-r0.aarch64
   file /usr/bin/vapigen-wrapper conflicts between attempted installs
   of lib32-vala-0.56.3-r0.armv7ahf_neon and vala-0.56.3-r0.aarch64

Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
---
 meta/recipes-devtools/vala/vala.inc | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Comments

Alexander Kanavin March 7, 2023, 6:40 a.m. UTC | #1
On Tue, 7 Mar 2023 at 06:51, wangmy <wangmy@fujitsu.com> wrote:
> @@ -42,14 +42,20 @@ EXTRA_OECONF += " --disable-valadoc"
>  # Vapigen wrapper needs to be available system-wide, because it will be used
>  # to build vapi files from all other packages with vala support
>  do_install:append:class-target() {
> -        install -d ${D}${bindir_crossscripts}/
> -        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
> +        install -d ${D}${bindir_crossscripts}
> +        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}
> +        install ${B}/vapigen-wrapper ${D}${libdir}
>  }
>
> +FILES:${PN}-dev += "${libdir}/vapigen-wrapper"
> +

The correct way to fix this is to simply delete vapigen-wrapper from
target packages in vala_package_preprocess(). It is only needed in
sysroots, not on actual targets.

Alex
Richard Purdie March 7, 2023, 10:16 a.m. UTC | #2
On Tue, 2023-03-07 at 13:51 +0800, wangmy wrote:
> From: Wang Mingyu <wangmy@fujitsu.com>
> 
> Error: Transaction test error:
>    file /usr/bin/vala-gen-introspect-0.56 conflicts between attempted installs of lib32-vala-0.56.3-r0.armv7ahf_neon and vala-0.56.3-r0.aarch64
>    file /usr/bin/vapigen-wrapper conflicts between attempted installs
>    of lib32-vala-0.56.3-r0.armv7ahf_neon and vala-0.56.3-r0.aarch64
> 
> Signed-off-by: Wang Mingyu <wangmy@fujitsu.com>
> ---
>  meta/recipes-devtools/vala/vala.inc | 11 +++++++++--
>  1 file changed, 9 insertions(+), 2 deletions(-)

Alex's comment is correct, we should remove the wrapper.

I'd also remind about my previous comment on patches like this. I'd
like to see any changes for these kinds of errors containing a 
"diff -u" of the files so we can see what the issues are.

I will not be merging any without that information present in the
commit message.

Cheers,

Richard
diff mbox series

Patch

diff --git a/meta/recipes-devtools/vala/vala.inc b/meta/recipes-devtools/vala/vala.inc
index d3daee37dc..5f4d4ceb70 100644
--- a/meta/recipes-devtools/vala/vala.inc
+++ b/meta/recipes-devtools/vala/vala.inc
@@ -42,14 +42,20 @@  EXTRA_OECONF += " --disable-valadoc"
 # Vapigen wrapper needs to be available system-wide, because it will be used
 # to build vapi files from all other packages with vala support
 do_install:append:class-target() {
-        install -d ${D}${bindir_crossscripts}/
-        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}/
+        install -d ${D}${bindir_crossscripts}
+        install ${B}/vapigen-wrapper ${D}${bindir_crossscripts}
+        install ${B}/vapigen-wrapper ${D}${libdir}
 }
 
+FILES:${PN}-dev += "${libdir}/vapigen-wrapper"
+
 # Put vapigen wrapper into target sysroot so that it can be used when building
 # vapi files.
 SYSROOT_DIRS += "${bindir_crossscripts}"
 
+inherit multilib_script
+MULTILIB_SCRIPTS = "${PN}:${bindir}/vala-gen-introspect-0.56"
+
 SYSROOT_PREPROCESS_FUNCS:append:class-target = " vapigen_sysroot_preprocess"
 vapigen_sysroot_preprocess() {
         # Tweak the vapigen name in the vapigen pkgconfig file, so that it picks
@@ -65,4 +71,5 @@  PACKAGE_PREPROCESS_FUNCS += "vala_package_preprocess"
 
 vala_package_preprocess () {
 	sed -i -e 's:${RECIPE_SYSROOT}::g;' ${PKGD}${bindir_crossscripts}/vapigen-wrapper
+	rm -rf ${PKGD}${bindir_crossscripts}
 }