Subject: [bug#62432] [PATCH] gnu: libicns: fix riscv64 cross-build.

From: 宋文武 <[email-masked]>
Date: Mon, 03 Apr 2023 19:04:18 +0800

Z572 <[email-masked]> writes:

> * gnu/packages/image.scm (libicns): fix riscv64 cross-build.

Hello, this message is already in the commit message title, So I think
there is no need to repeat it here.  Also look in the guix commit log,
I think it should be 'gnu: libicns: Fix cross-compilation for riscv64'.

> +    (arguments (if (target-riscv64?)
> +                   (list #:phases
> +                         #~(modify-phases %standard-phases
> +                             (add-after 'unpack 'update-config-scripts
> +                               (lambda* (#:key native-inputs inputs #:allow-other-keys)
> +                                 (for-each (lambda (file)
> +                                             (install-file
> +                                              (search-input-file
> +                                               (or native-inputs inputs)
> +                                               (string-append "/bin/" file)) "."))
> +                                           '("config.guess" "config.sub"))))) )
> +                   '()))
> +    (native-inputs
> +     (if (target-riscv64?)
> +         (list config)
> +         '()))

This updates 'config.guess' and 'config.sub' in a package to fix
cross-compilation for riscv64 seems like a common practice (eg: also in
your patches #62433, #62544).  How about make a procedure for it to
save some typing?  It could be:

```
(define (autotools-config-updated-package p)
  "Return package P with @command{config.guess} and
@command{config.sub} updated by the @code{config} package"
  (package (inherit p)
    ...))
```

Which could go into (guix transformations).