aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMark Johnston <markj@FreeBSD.org>2025-06-25 12:57:26 +0000
committerMark Johnston <markj@FreeBSD.org>2025-06-25 13:46:31 +0000
commitdf84bd484cb813fc5ab76c81ac2c35fdd78c8235 (patch)
treeaa7e7e3721a4828871ee129232536f4a0455ff7a
parent32f9c9699a5a56ef8ef1da8e2974a8b34e2b84f5 (diff)
release: Sort keys in generate-ucl.lua
When writing out the UCL file containing a package's metadata, metadata values consisting of key-value pairs were not sorted. For instance, in the certctl package we could have either "deps": { "FreeBSD-openssl": { ... }, "FreeBSD-caroot": { ... }, } or "deps": { "FreeBSD-caroot": { ... }, "FreeBSD-openssl": { ... }, } This breaks reproducibility. Use the undocumented third parameter to libucl's to_format() to request recursive sorting of keys. Reviewed by: manu, bapt MFC after: 2 weeks Sponsored by: The FreeBSD Foundation Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D51021
-rwxr-xr-xrelease/packages/generate-ucl.lua2
1 files changed, 1 insertions, 1 deletions
diff --git a/release/packages/generate-ucl.lua b/release/packages/generate-ucl.lua
index de52802913f8..ae6ee58dd84a 100755
--- a/release/packages/generate-ucl.lua
+++ b/release/packages/generate-ucl.lua
@@ -31,5 +31,5 @@ if not f then
os.exit(1)
end
local obj = parser:get_object()
-f:write(ucl.to_format(obj, 'ucl'))
+f:write(ucl.to_format(obj, 'ucl', true))
f:close()