The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=df84bd484cb813fc5ab76c81ac2c35fdd78c8235
commit df84bd484cb813fc5ab76c81ac2c35fdd78c8235 Author: Mark Johnston <ma...@freebsd.org> AuthorDate: 2025-06-25 12:57:26 +0000 Commit: Mark Johnston <ma...@freebsd.org> CommitDate: 2025-06-25 13:46:31 +0000 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 --- release/packages/generate-ucl.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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()