From b971f8de8e590e18151a709edf093ee735e090b6 Mon Sep 17 00:00:00 2001 From: volth Date: Sun, 13 Aug 2017 09:28:05 +0000 Subject: [PATCH 1/2] set-source-date-epoch-to-latest.sh: ignore generated files set-source-date-epoch-to-latest.sh to ignore files newer than "$NIX_BUILD_TOP/.." (unlike "$NIX_BUILD_TOP" it is root-owned and cannot be touched by nixbld1). --- .../setup-hooks/set-source-date-epoch-to-latest.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh index fe3458cd21e8..a2449b2704aa 100644 --- a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh +++ b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh @@ -4,8 +4,8 @@ updateSourceDateEpoch() { # Get the last modification time of all regular files, sort them, # and get the most recent. Maybe we should use # https://github.com/0-wiz-0/findnewest here. - local -a res=($(find "$path" -type f -print0 | xargs -0 -r stat -c '%Y %n' | sort -n | tail -n1)) - local time="${res[0]}" + local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\n' | sort -n | tail -n1)) + local time="${res[0]//\.[0-9]*/}" # remove the fraction part local newestFile="${res[1]}" # Update $SOURCE_DATE_EPOCH if the most recent file we found is newer. From 4ebeb7d78296b26eede37495a2674494290d14f8 Mon Sep 17 00:00:00 2001 From: volth Date: Sun, 13 Aug 2017 14:03:05 +0000 Subject: [PATCH 2/2] use \0 instead of \n --- .../setup-hooks/set-source-date-epoch-to-latest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh index a2449b2704aa..6bf9a65b35af 100644 --- a/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh +++ b/pkgs/build-support/setup-hooks/set-source-date-epoch-to-latest.sh @@ -4,7 +4,7 @@ updateSourceDateEpoch() { # Get the last modification time of all regular files, sort them, # and get the most recent. Maybe we should use # https://github.com/0-wiz-0/findnewest here. - local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\n' | sort -n | tail -n1)) + local -a res=($(find "$path" -type f -not -newer "$NIX_BUILD_TOP/.." -printf '%T@ %p\0' | sort -n --zero-terminated | tail -n1 --zero-terminated)) local time="${res[0]//\.[0-9]*/}" # remove the fraction part local newestFile="${res[1]}"