- it comes with free collation when moving the LC_ALL declaration up a bit; this fixes a bug where the .FILES were not being properly sorted and their order depended on directory creation order, which broke reproducible builds in the wild. - it handles sorting null-delimited output everywhere, without sort -z; this lets us get rid of sed hacks - it is faster than invoking multiple find subprocesses - dotfiles can be automatically printed *and the C locale sorts them first* with a single ** glob Signed-off-by: Eli Schwartz <eschwartz@archlinux.org> --- scripts/makepkg.sh.in | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in index ae1ef01b..1325b019 100644 --- a/scripts/makepkg.sh.in +++ b/scripts/makepkg.sh.in @@ -711,10 +711,14 @@ write_buildinfo() { # database files are placed at the beginning of the package regardless of # sorting list_package_files() { - (find . -path './.*' \! -name '.'; find . \! -path './.*' \! -name '.' | LC_ALL=C sort) | - sed -e 's|^\./||' | tr '\n' '\0' + ( + export LC_COLLATE=C + shopt -s dotglob globstar + printf '%s\0' ** + ) } + create_package() { (( NOARCHIVE )) && return 0 -- 2.18.0