all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* [bug#72136] [PATCH 0/2] Guard against producing derivations for platforms with no system
@ 2024-07-16  8:42 Christopher Baines
  2024-07-16  8:45 ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: Don't support targets " Christopher Baines
  0 siblings, 1 reply; 4+ messages in thread
From: Christopher Baines @ 2024-07-16  8:42 UTC (permalink / raw)
  To: 72136

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


Christopher Baines (2):
  gnu: coreutils-minimal: Don't support targets with no system.
  gnu: bash-minimal: Don't support targets with no system.

 gnu/packages/base.scm | 15 ++++++++++++++-
 gnu/packages/bash.scm | 16 +++++++++++++++-
 2 files changed, 29 insertions(+), 2 deletions(-)

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 987 bytes --]

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

* [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: Don't support targets with no system.
  2024-07-16  8:42 [bug#72136] [PATCH 0/2] Guard against producing derivations for platforms with no system Christopher Baines
@ 2024-07-16  8:45 ` Christopher Baines
  2024-07-16  8:45   ` [bug#72136] [PATCH 2/2] gnu: bash-minimal: " Christopher Baines
  2024-07-18  9:33   ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: " Ludovic Courtès
  0 siblings, 2 replies; 4+ messages in thread
From: Christopher Baines @ 2024-07-16  8:45 UTC (permalink / raw)
  To: 72136; +Cc: Ludovic Courtès

Since I believe coreutils-minimal will fail to build for these targets, this
will catch this early and display a clear message for both this package and
packages using it as an input.

* gnu/packages/base.scm (coreutils-minimal)[native-inputs]: Check the target
if there is one.

Change-Id: Id37cf6ac0b63226261a85a00699dfd06188c1475
---
 gnu/packages/base.scm | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/base.scm b/gnu/packages/base.scm
index 66c5b7d237..05c3278e2e 100644
--- a/gnu/packages/base.scm
+++ b/gnu/packages/base.scm
@@ -67,6 +67,7 @@ (define-module (gnu packages base)
   #:use-module (guix utils)
   #:use-module (guix gexp)
   #:use-module (guix packages)
+  #:use-module (guix platform)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
@@ -76,6 +77,8 @@ (define-module (gnu packages base)
   #:use-module (ice-9 optargs)
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:export (glibc
             libc-for-target
             libc-locales-for-target
@@ -537,7 +540,17 @@ (define-public coreutils-minimal
     (inherit coreutils)
     (name "coreutils-minimal")
     (outputs '("out"))
-    (native-inputs '())
+    (native-inputs
+     (begin
+       (let ((target (%current-target-system)))
+         (when target
+           (unless (platform-system (lookup-platform-by-target target))
+             (raise
+              (condition
+               (&package-unsupported-target-error
+                (package this-package)
+                (target target)))))))
+       '()))
     (inputs '())))
 
 (define-public coreutils-8.30

base-commit: bf6ab0e0f5066d999e027a7eb8ecf05db71123ce
-- 
2.45.2





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

* [bug#72136] [PATCH 2/2] gnu: bash-minimal: Don't support targets with no system.
  2024-07-16  8:45 ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: Don't support targets " Christopher Baines
@ 2024-07-16  8:45   ` Christopher Baines
  2024-07-18  9:33   ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: " Ludovic Courtès
  1 sibling, 0 replies; 4+ messages in thread
From: Christopher Baines @ 2024-07-16  8:45 UTC (permalink / raw)
  To: 72136

Since I believe bash-minimal will fail to build for these targets, this will
catch this early and display a clear message for both this package and
packages using it as an input.

* gnu/packages/base.scm (bash-minimal)[inputs]: Check the target if there is
one.

Change-Id: I3768c7fa05f5375a1227551e2b7ae66a741ef93d
---
 gnu/packages/bash.scm | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)

diff --git a/gnu/packages/bash.scm b/gnu/packages/bash.scm
index 9ecec0a484..c29400c1e4 100644
--- a/gnu/packages/bash.scm
+++ b/gnu/packages/bash.scm
@@ -41,6 +41,7 @@ (define-module (gnu packages bash)
   #:use-module (gnu packages version-control)
   #:use-module (gnu packages less)
   #:use-module (guix packages)
+  #:use-module (guix platform)
   #:use-module (guix download)
   #:use-module (guix git-download)
   #:use-module (guix utils)
@@ -57,6 +58,8 @@ (define-module (gnu packages bash)
 
   #:use-module (srfi srfi-1)
   #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (ice-9 format))
 
 (define (patch-url seqno)
@@ -226,7 +229,18 @@ (define-public bash-minimal
   ;; A stripped-down Bash for non-interactive use.
   (package (inherit bash)
     (name "bash-minimal")
-    (inputs '())                                ; no readline, no curses
+    (inputs
+     (begin
+       (let ((target (%current-target-system)))
+         (when target
+           (unless (platform-system (lookup-platform-by-target target))
+             (raise
+              (condition
+               (&package-unsupported-target-error
+                (package this-package)
+                (target target)))))))
+
+       '()))                            ; no readline, no curses
 
     ;; No "include" output because there's no support for loadable modules.
     (outputs (delete "include" (package-outputs bash)))
-- 
2.45.2





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

* [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: Don't support targets with no system.
  2024-07-16  8:45 ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: Don't support targets " Christopher Baines
  2024-07-16  8:45   ` [bug#72136] [PATCH 2/2] gnu: bash-minimal: " Christopher Baines
@ 2024-07-18  9:33   ` Ludovic Courtès
  1 sibling, 0 replies; 4+ messages in thread
From: Ludovic Courtès @ 2024-07-18  9:33 UTC (permalink / raw)
  To: Christopher Baines; +Cc: 72136

Hello,

Christopher Baines <mail@cbaines.net> skribis:

> Since I believe coreutils-minimal will fail to build for these targets, this
> will catch this early and display a clear message for both this package and
> packages using it as an input.
>
> * gnu/packages/base.scm (coreutils-minimal)[native-inputs]: Check the target
> if there is one.
>
> Change-Id: Id37cf6ac0b63226261a85a00699dfd06188c1475

[...]

> +    (native-inputs
> +     (begin
> +       (let ((target (%current-target-system)))
> +         (when target
> +           (unless (platform-system (lookup-platform-by-target target))
> +             (raise
> +              (condition
> +               (&package-unsupported-target-error
> +                (package this-package)
> +                (target target)))))))
> +       '()))

I understand the rationale, but this raises a few issues IMO:

  1. This is abusing the ‘native-inputs’ field.

  2. It’s the kind of thing that should be purely declarative, much like
     ‘supported-systems’.

  3. So far, we do not keep track of the supported cross-compilation
     targets of each package, and I think it’s probably better that way:
     the set of cross-compilation targets is pretty much open-ended and
     we only check them on a best-effort basis, for select packages
     (typically those listed in ‘packages-to-cross-build’ in (gnu ci)
     and/or ‘etc/release-manifest.scm’).  I think we’d rather not start
     annotating packages for supported cross-compilation target.

That said, the initial problem remains: how can we ensure that the Data
Service does not attempt to compute cross-build derivations that don’t
make sense, such as Coreutils on bare-metal targets like ‘avr’?

My take is that we should bake knowledge about what makes sense to be
tested somewhere.  It could be either arranging so (gnu ci) can be used
by the Data Service (it’s currently used by Cuirass), or
‘etc/release-manifest.scm’, or even just a hard-coded listed of
supported targets—we’re talking about a list of ten triplets or so,
that’s okay.

Or perhaps there’s room for something nicer in (guix platforms), but I
don’t see how we could determine whether a given package is eligible for
a bare-metal target.

Thoughts?

Ludo’.




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

end of thread, other threads:[~2024-07-18  9:37 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-07-16  8:42 [bug#72136] [PATCH 0/2] Guard against producing derivations for platforms with no system Christopher Baines
2024-07-16  8:45 ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: Don't support targets " Christopher Baines
2024-07-16  8:45   ` [bug#72136] [PATCH 2/2] gnu: bash-minimal: " Christopher Baines
2024-07-18  9:33   ` [bug#72136] [PATCH 1/2] gnu: coreutils-minimal: " Ludovic Courtès

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.