- 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 <[email protected]>
---
 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

Reply via email to