From e18041358c3049741b9733c25e409a57340f9007 Mon Sep 17 00:00:00 2001 From: Sergey Nazaryev Date: Fri, 6 May 2022 14:20:44 +0300 Subject: [PATCH] build: fix indeterminacy of icu_locales value `icu_locales` is generated by joining values from `set` data structure. However, `set` doesn't guarantee an order, so the result of `icu_locales` is not determined. For example, the result value could be 'en,root' or 'root,en'. This fix makes it deterministic. The main reason of this fix is to restore the reproducibility of the build because the value of `icu_locales` is embedded into `node` binary. PR-URL: https://github.com/nodejs/node/pull/42865 Reviewed-By: Richard Lau Reviewed-By: Luigi Pinca Reviewed-By: Mestery --- configure.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.py b/configure.py index c81bf03acb89fa..6acd2842ea6ee8 100755 --- a/configure.py +++ b/configure.py @@ -1654,7 +1654,7 @@ def icu_download(path): o['variables']['icu_small'] = b(True) locs = set(options.with_icu_locales.split(',')) locs.add('root') # must have root - o['variables']['icu_locales'] = ','.join(str(loc) for loc in locs) + o['variables']['icu_locales'] = ','.join(str(loc) for loc in sorted(locs)) # We will check a bit later if we can use the canned deps/icu-small o['variables']['icu_default_data'] = options.with_icu_default_data_dir or '' elif with_intl == 'full-icu':