Add an mtree file to the package with all file information. This
can be added to the local pacman database on install allowing full
package verification.

Signed-off-by: Allan McRae <al...@archlinux.org>
---
 scripts/makepkg.sh.in |   10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index d36dbd6..08f4b62 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -1351,8 +1351,6 @@ create_package() {
        done
 
        # tar it up
-       msg2 "$(gettext "Compressing package...")"
-
        local fullver=$(get_full_version)
        local pkg_file="$PKGDEST/${nameofpkg}-${fullver}-${pkgarch}${PKGEXT}"
        local ret=0
@@ -1363,6 +1361,14 @@ create_package() {
        # when fileglobbing, we want * in an empty directory to expand to
        # the null string rather than itself
        shopt -s nullglob
+
+       msg2 "$(gettext "Generating .MTREE file...")"
+       bsdtar -czf .MTREE --format=mtree \
+               --options='!all,use-set,type,uid,gid,mode,time,size,md5,link' \
+               "${comp_files[@]}" *
+       comp_files+=(".MTREE")
+
+       msg2 "$(gettext "Compressing package...")"
        # TODO: Maybe this can be set globally for robustness
        shopt -s -o pipefail
        # bsdtar's gzip compression always saves the time stamp, making one
-- 
1.7.10.1


Reply via email to