diff --git a/_pkg.sh b/_pkg.sh index 31d67fc84..d9dcf1ea3 100755 --- a/_pkg.sh +++ b/_pkg.sh @@ -65,6 +65,8 @@ create_pkg() { _pkg="${_OUT}${_suf}${arch_ext}" + _FLS="$(dirname "$0")/_files" + ( cd "${_DST}/.." case "${_HOST}" in @@ -73,21 +75,24 @@ create_pkg() { find "${_DST}" -depth -type d -exec touch -c -r "$1" '{}' + + find "${_BAS}" | sort > "${_FLS}" + rm -f "${_cdo}/${_pkg}" case "${arch_ext}" in .tar.xz) TZ=UTC tar --create \ --format=ustar \ --owner=0 --group=0 --numeric-owner \ - --sort=name "${_BAS}" | xz > "${_cdo}/${_pkg}";; - .zip) - find "${_BAS}" | sort | \ - TZ=UTC zip --quiet -9 --strip-extra \ - --names-stdin - > "${_cdo}/${_pkg}" - ;; + --sort=name \ + --no-recursion \ + --files-from "${_FLS}" | xz > "${_cdo}/${_pkg}";; + .zip) TZ=UTC zip --quiet -9 --strip-extra \ + --names-stdin - < "${_FLS}" > "${_cdo}/${_pkg}";; esac touch -c -r "$1" "${_cdo}/${_pkg}" ) + rm -f "${_FLS}" + # : bytes case "${_HOST}" in bsd|mac) TZ=UTC stat -f '%N: %z bytes %Sm' -t '%Y-%m-%d %H:%M' "${_pkg}";;