[Reproducible-builds] u-boot locale variations with it_*.UTF-8

HW42 hw42 at ipsumj.de
Thu Jun 9 02:33:00 UTC 2016

Vagrant Cascadian:
> Well, I've been debugging why u-boot stopped building reprodicbly, and
> it appears to be that the recent fix that really switches armhf to build
> with it_CH.UTF-8 locale actually breaks u-boot reproducibility.
> So, just for comparison, I also tested with other locales, including
> some with non-latin "alphabets" and other countries just to vary as much
> as possible, and the following all built reproducibly with each other:
>   C
>   el_GR.UTF-8
>   ru_RU.UTF-8
>   ar_EG.UTF-8
>   zh_CN.UTF-8
>   es_ES.UTF-8
>   fr_CH.UTF-8
>   et_EE.UTF-8
>   ja_JP.UTF-8
>   ko_KR.UTF-8
>   en_US.UTF-8
> And these locales built reproducibly with each other:
>   it_CH.UTF-8
>   it_IT.UTF-8
> Haven't really figured out *what* the actual issue is, but figured I'd
> share my confusion.
> With this as evidence, there appear to be two kinds of locales, Italian,
> and not-Italian. At least when it comes to u-boot. :)


We found out the reason is [0] because:

  $ LANG=C ld --version | head -n 1
  GNU ld (GNU Binutils for Debian) 2.26

  $ LANG=fr_CH.UTF-8 ld --version | head -n 1
  GNU ld (GNU Binutils for Debian) 2.26

  $ LANG=it_CH.UTF-8 ld --version | head -n 1
  ld di GNU (GNU Binutils for Debian) 2.26

While debugging this I noticed that this Makefile resets LC_ALL [1]. So this
variation was only detected because we also set LANG. So I think we
should set all LC_* variables.

[0]: https://sources.debian.net/src/u-boot/2016.07~rc1%2Bdfsg1-1/Makefile/#L1274
[1]: https://sources.debian.net/src/u-boot/2016.07~rc1%2Bdfsg1-1/Makefile/#L22


I found the additional issue with dra7xx_evm. This target uses another
image format which embeds timestamps which aren't set to
SOURCE_DATE_EPOCH [2]. See attached patch to fix this (might need some
cleanup before upstreaming).

[2]: https://sources.debian.net/src/u-boot/2016.07~rc1%2Bdfsg1-1/tools/fit_image.c/#L55

-------------- next part --------------
A non-text attachment was scrubbed...
Name: fit_image-SOURCE_DATE_EPOCH.patch
Type: text/x-patch
Size: 2739 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20160609/8fc04c65/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 801 bytes
Desc: OpenPGP digital signature
URL: <http://lists.alioth.debian.org/pipermail/reproducible-builds/attachments/20160609/8fc04c65/attachment.sig>

More information about the Reproducible-builds mailing list