[Buildroot] [PATCH] support/download/svn: use 'svn info' whith LC_ALL=C
Arnout Vandecappelle
arnout at rnout.be
Wed Apr 16 21:26:57 UTC 2025
On 03/04/2025 08:47, Romain Naour via buildroot wrote:
> Use the 'C' locale when retrieving the date of the last change using
> 'svn info' since the svn download helper script expect
> "Last Changed Date" string.
>
> If another locale is used, the 'date' is empty so the generated
> archive (by mk_tar_gz) will not match the expected hash since
> the file timestamp is not set properly.
>
> If LANG=fr_FR.UTF-8 is defined in the host system, svn print some
> "French encrypted" text:
>
> eval svn --non-interactive --config-option servers:global:http-timeout=10 info ''\''https://svn.code.sf.net/p/xmlrpc-c/code/advanced@r3176'\'''
> ...
> Date de la dernière modification: 2023-09-02 19:13:35 +0200 (sam. 02 sept. 2023)
>
> diffoscope confirm that the file timestamp is not set correctly
> in the generated archive:
>
> $ diffoscope NOK/libxmlrpc-r3176-svn5.tar.gz OK/libxmlrpc-r3176-svn5.tar.gz
> --- NOK/libxmlrpc-r3176-svn5.tar.gz
> +++ OK/libxmlrpc-r3176-svn5.tar.gz
> ├── libxmlrpc-r3176-svn5.tar
> │ ├── file list
> │ │ @@ -1,626 +1,626 @@
> │ │ --rw-r--r-- 0 0 0 6937 2025-04-02 00:00:00.000000 libxmlrpc-r3176/GNUmakefile
> │ │ +-rw-r--r-- 0 0 0 6937 2023-09-02 17:13:35.000000 libxmlrpc-r3176/GNUmakefile
>
> Fix this issue using 'C' locale:
>
> LC_ALL=C eval svn --non-interactive --config-option servers:global:http-timeout=10 info ''\''https://svn.code.sf.net/p/xmlrpc-c/code/advanced@r3176'\'''
> ...
> Last Changed Date: 2023-09-02 19:13:35 +0200 (Sat, 02 Sep 2023)
>
> Fixes: 89f5e989323ace815a32fced27eaefee2f4666de
>
> Signed-off-by: Romain Naour <romain.naour at smile.fr>
Applied to 2025.02.x, 2024.11.x and 2024.02.x, thanks.
Regards,
Arnout
> ---
> support/download/svn | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/support/download/svn b/support/download/svn
> index ff33f1fa39..576fd48303 100755
> --- a/support/download/svn
> +++ b/support/download/svn
> @@ -81,7 +81,7 @@ done
> # In case there is a redirection (e.g. http -> https), just keep the
> # last line (svn outputs everything on stdout)
> # shellcheck disable=SC2086 # creds may be empty
> -date="$( _plain_svn info ${creds} "'${uri}@${rev}'" \
> +date="$( LC_ALL=C _plain_svn info ${creds} "'${uri}@${rev}'" \
> |sed -r -e '/^Last Changed Date: /!d; s///'
> )"
>
More information about the buildroot
mailing list