Subject: [bug#60224] [PATCH v3 07/11] gnu: make-u-boot-sunxi64-package: Use gexps and adjust file name.

From: Maxim Cournoyer <[email-masked]>
Date: Wed, 11 Jan 2023 14:55:48 -0500

Hi Vagrant!

Vagrant Cascadian <[email-masked]> writes:

> On 2023-01-01, Maxim Cournoyer wrote:
>> * gnu/packages/bootloaders.scm (make-u-boot-sunxi64-package)
>> [phases] {set-environment}: Replace bl31.bin with bl31.elf; bl31.elf doesn't
>> exist anymore for some reason.
>
> Seems like the description is the inverse of what it is actually
> doing. But what it is doing is ... not right either. :/

[...]

>> +          #~(modify-phases #$phases
>> +              (add-after 'unpack 'set-environment
>> +                (lambda* (#:key native-inputs inputs #:allow-other-keys)
>> +                  (setenv "BL31" (search-input-file (or native-inputs inputs)
>> +                                                    "bl31.elf"))))))))
>
> bl31.elf is built on rockchip platforms, but not sunxi/allwinner
> platforms. The sunxi/allwinner platforms need bl31.bin.

This ^ ...
>
>>        (native-inputs
>> -       `(("firmware" ,arm-trusted-firmware-sun50i-a64)
>> -         ,@(package-native-inputs base))))))
>> +       (modify-inputs (package-native-inputs base)
>> +         (append arm-trusted-firmware-rk3399))))))
>

... was the product of the above typo; thanks for catching it!

> This is absolutely incorrect, as this forces it to be rk3399, which is
> not even a sunxi platform, and will break all the sun50i-a64 platforms
> (e.g. pine64, pinebook).  That said, there are technically sunxi64
> platforms that would use a different arm-trusted-firmware build, so this
> could use improving.

I've now removed that commit; and undid the previous change to, which
was based on that mistake.

I'll sent a v4 shortly.

I've noted something annoying though; is that cross-compiling doesn't
work yet because U-Boot uses python packages, which barfs like:

--8<---------------cut here---------------start------------->8---
$ ./pre-inst-env guix build u-boot-puma-rk3399 guix build: error: gnu/packages/check.scm:1997:2:
[email-masked]: build system `python' does not support cross
builds
--8<---------------cut here---------------end--------------->8---

So currently the only way to build it is via --system, e.g. 'guix build
-s aarch64-linux u-boot-puma-rk3399'.  The complications I simplified
were probably papering over that issue.  That said, I see no reason we
couldn't convince our Python build system to "cross-compile" Python
packages, so I intend to look at this.  Not sure if this should be a
blocker or not.

-- 
Thanks,
Maxim