setup: export SOURCE_DATE_EPOCH from outside of chroot

git-worktree(1), and Git shared repository can use a plain text file
named `.git` at the root of working tree, containing `gitdir: <path>` to
point to the real directory that has repository.
See: gitrepository-layout(5).

But, that directory is usually inaccessible inside chroot.

In order to support git-worktree(1) and Git shared repository, compute
SOURCE_DATE_EPOCH from outside of chroot, and the chroot will carry it
over to inside chroot.

I've only tested again xbps-uunshare(1).
This commit is contained in:
Đoàn Trần Công Danh 2020-04-21 00:14:49 +07:00 committed by Danh Doan
parent fd61886616
commit 2cd2b99e41
1 changed files with 5 additions and 2 deletions

View File

@ -7,9 +7,12 @@ fi
if [ -n "$XBPS_USE_BUILD_MTIME" ]; then
unset SOURCE_DATE_EPOCH
elif [ -z "${SOURCE_DATE_EPOCH}" -a -n "$IN_CHROOT" ]; then
elif [ -z "${SOURCE_DATE_EPOCH}" ]; then
if [ -n "$IN_CHROOT" ]; then
msg_error "xbps-src's BUG: SOURCE_DATE_EPOCH is undefined\n"
fi
# check if the template is under version control:
if [ -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
if [ -n "$basepkg" -a -z "$($XBPS_GIT_CMD -C ${XBPS_SRCPKGDIR}/${basepkg} ls-files template)" ]; then
export SOURCE_DATE_EPOCH="$(stat -c %Y ${XBPS_SRCPKGDIR}/${basepkg}/template)"
else
export SOURCE_DATE_EPOCH="$($XBPS_GIT_CMD -C ${XBPS_DISTDIR} log --pretty='%ct' -n1 HEAD)"