public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-dev] [PATCH 1/2] meson.eclass: call die -n in phase helpers
@ 2024-03-26 15:01 Mike Gilbert
  2024-03-26 15:01 ` [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib Mike Gilbert
  0 siblings, 1 reply; 4+ messages in thread
From: Mike Gilbert @ 2024-03-26 15:01 UTC (permalink / raw)
  To: gentoo-dev; +Cc: Mike Gilbert

This allows the ebuild author to treat some errors as nonfatal.

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 eclass/meson.eclass | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index 3240fddf7e86..3074fcb09fb0 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -425,7 +425,7 @@ meson_src_configure() {
 		export -n {C,CPP,CXX,F,OBJC,OBJCXX,LD}FLAGS PKG_CONFIG_{LIBDIR,PATH}
 		echo meson setup "${MESONARGS[@]}" >&2
 		meson setup "${MESONARGS[@]}"
-	) || die
+	) || die -n
 }
 
 # @FUNCTION: meson_src_compile
@@ -450,7 +450,7 @@ meson_src_compile() {
 
 	set -- meson compile "${mesoncompileargs[@]}"
 	echo "$@" >&2
-	"$@" || die "compile failed"
+	"$@" || die -n "compile failed"
 }
 
 # @FUNCTION: meson_src_test
@@ -469,7 +469,7 @@ meson_src_test() {
 
 	set -- meson test "${mesontestargs[@]}"
 	echo "$@" >&2
-	"$@" || die "tests failed"
+	"$@" || die -n "tests failed"
 }
 
 # @FUNCTION: meson_install
@@ -488,7 +488,7 @@ meson_install() {
 
 	set -- meson install "${mesoninstallargs[@]}"
 	echo "$@" >&2
-	"$@" || die "install failed"
+	"$@" || die -n "install failed"
 }
 
 # @FUNCTION: meson_src_install
-- 
2.44.0



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

* [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib
  2024-03-26 15:01 [gentoo-dev] [PATCH 1/2] meson.eclass: call die -n in phase helpers Mike Gilbert
@ 2024-03-26 15:01 ` Mike Gilbert
  2024-03-26 16:51   ` Michał Górny
  0 siblings, 1 reply; 4+ messages in thread
From: Mike Gilbert @ 2024-03-26 15:01 UTC (permalink / raw)
  To: gentoo-dev; +Cc: Mike Gilbert

meson.build has some logic to build ia32 EFI binaries on x86_64 if the
toolchain is compatible. Rather than trying to reproduce this logic in
the ebuild, just try to build it and ignore any failures.

If meson.build actually defines the targets but we have some other
compile error, this will move the failure to the install phase instead.

Signed-off-by: Mike Gilbert <floppym@gentoo.org>
---
 sys-apps/systemd-utils/systemd-utils-255.4.ebuild | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sys-apps/systemd-utils/systemd-utils-255.4.ebuild b/sys-apps/systemd-utils/systemd-utils-255.4.ebuild
index b258f5748243..7f17b37aa3ea 100644
--- a/sys-apps/systemd-utils/systemd-utils-255.4.ebuild
+++ b/sys-apps/systemd-utils/systemd-utils-255.4.ebuild
@@ -253,7 +253,7 @@ multilib_src_configure() {
 }
 
 multilib_src_compile() {
-	local targets=()
+	local targets=() optional_targets=()
 	if multilib_is_native_abi; then
 		if use boot; then
 			local efi_arch= efi_arch_alt=
@@ -275,7 +275,10 @@ multilib_src_compile() {
 				src/boot/efi/addon${efi_arch}.efi.stub
 			)
 			if [[ -n ${efi_arch_alt} ]]; then
-				targets+=(
+				# If we have a multilib toolchain, meson.build will build the
+				# "alt" arch (ia32). There's no easy way to detect this, so try
+				# to build it and ignore failure.
+				optional_targets+=(
 					src/boot/efi/systemd-boot${efi_arch_alt}.efi
 					src/boot/efi/linux${efi_arch_alt}.efi.stub
 					src/boot/efi/addon${efi_arch_alt}.efi.stub
@@ -392,9 +395,12 @@ multilib_src_compile() {
 			)
 		fi
 	fi
-	if multilib_is_native_abi || use udev; then
+	if [[ ${#targets[@]} -ne 0 ]]; then
 		meson_src_compile "${targets[@]}"
 	fi
+	if [[ ${#optional_targets[@]} -ne 0 ]]; then
+		nonfatal meson_src_compile "${optional_targets[@]}"
+	fi
 }
 
 multilib_src_test() {
-- 
2.44.0



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

* Re: [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib
  2024-03-26 15:01 ` [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib Mike Gilbert
@ 2024-03-26 16:51   ` Michał Górny
  2024-03-26 16:57     ` Mike Gilbert
  0 siblings, 1 reply; 4+ messages in thread
From: Michał Górny @ 2024-03-26 16:51 UTC (permalink / raw)
  To: gentoo-dev; +Cc: Mike Gilbert

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

On Tue, 2024-03-26 at 11:01 -0400, Mike Gilbert wrote:
> meson.build has some logic to build ia32 EFI binaries on x86_64 if the
> toolchain is compatible. Rather than trying to reproduce this logic in
> the ebuild, just try to build it and ignore any failures.
> 
> If meson.build actually defines the targets but we have some other
> compile error, this will move the failure to the install phase instead.
> 

That's not a correct use of nonfatal.  It is supposed to be used to
provide customized error handling (e.g. cleanup step before dying), not
a cheap way to ignore errors.

-- 
Best regards,
Michał Górny


[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 512 bytes --]

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

* Re: [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib
  2024-03-26 16:51   ` Michał Górny
@ 2024-03-26 16:57     ` Mike Gilbert
  0 siblings, 0 replies; 4+ messages in thread
From: Mike Gilbert @ 2024-03-26 16:57 UTC (permalink / raw)
  To: gentoo-dev

On Tue, Mar 26, 2024 at 12:51 PM Michał Górny <mgorny@gentoo.org> wrote:
>
> On Tue, 2024-03-26 at 11:01 -0400, Mike Gilbert wrote:
> > meson.build has some logic to build ia32 EFI binaries on x86_64 if the
> > toolchain is compatible. Rather than trying to reproduce this logic in
> > the ebuild, just try to build it and ignore any failures.
> >
> > If meson.build actually defines the targets but we have some other
> > compile error, this will move the failure to the install phase instead.
> >
>
> That's not a correct use of nonfatal.  It is supposed to be used to
> provide customized error handling (e.g. cleanup step before dying), not
> a cheap way to ignore errors.

I disagree; the error will not go unhandled, it's just being deferred
until later.


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

end of thread, other threads:[~2024-03-26 16:58 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-03-26 15:01 [gentoo-dev] [PATCH 1/2] meson.eclass: call die -n in phase helpers Mike Gilbert
2024-03-26 15:01 ` [gentoo-dev] [PATCH 2/2] sys-apps/systemd-utils: add workaround for no-multilib Mike Gilbert
2024-03-26 16:51   ` Michał Górny
2024-03-26 16:57     ` Mike Gilbert

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