Subject: Re: [bug#62432] [PATCH] gnu: libicns: fix riscv64 cross-build.
From: Efraim Flashner <[email-masked]>
To: 宋文武 <[email-masked]>
Cc: [email-masked], Z572 <[email-masked]>
Date: Sun, 4 Jun 2023 15:29:45 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

On Mon, Apr 03, 2023 at 07:04:18PM +0800, 宋文武 via Guix-patches via wrote:
> 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).

I would certainly like something like this. I suppose it could be made
more general by using find-file to find all occurrences of config.guess
and config.sub and replacing those.

In the meantime I've pushed this patch after replacing (target-riscv64?)
with (and (target-riscv64?) (%current-target-system)).

-- 
Efraim Flashner   <[email-masked]>   רנשלפ םירפא
GPG key = A28B F40C 3E55 1372 662D  14F7 41AA E7DC CA3D 8351
Confidentiality cannot be guaranteed on emails sent or received unencrypted