[pacman-dev] [PATCH] makepkg: use builtin globbing to print files in package
Eli Schwartz
eschwartz at archlinux.org
Tue Aug 21 14:15:12 UTC 2018
- 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 at 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
More information about the pacman-dev
mailing list