The branch main has been updated by jrtc27:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=e571b0f8f8c1730330fb656d54f081beb993c962

commit e571b0f8f8c1730330fb656d54f081beb993c962
Author:     Jessica Clarke <[email protected]>
AuthorDate: 2022-10-03 16:16:19 +0000
Commit:     Jessica Clarke <[email protected]>
CommitDate: 2022-10-03 16:16:19 +0000

    etcupdate: Fix -N support for build command
    
    Whilst febca0e64361 added -N for both build and extract, it only fully
    worked for extract; build would perform the actual tree build with
    -DNO_ROOT and construct the intended METALOG, but the subsequent tarball
    creation did not take this into account and just tarred up the the
    directory as-is rather than using the METALOG. This resulted in the
    permissions and ownership not being correct, as well as there being a
    stray METALOG file in the tarball's root.
    
    Reported by:    avg
    Reviewed by:    avg, jhb, imp
    Tested by:      avg
    Fixes:          febca0e64361 ("etcupdate: Add a -N flag to perform a 
NO_ROOT build")
    Differential Revision:  https://reviews.freebsd.org/D36845
---
 usr.sbin/etcupdate/etcupdate.sh | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/usr.sbin/etcupdate/etcupdate.sh b/usr.sbin/etcupdate/etcupdate.sh
index 0190e5868f05..445b8e105c61 100755
--- a/usr.sbin/etcupdate/etcupdate.sh
+++ b/usr.sbin/etcupdate/etcupdate.sh
@@ -1321,7 +1321,7 @@ handle_added_file()
 # Build a new tree and save it in a tarball.
 build_cmd()
 {
-       local dir
+       local dir tartree
 
        if [ $# -ne 1 ]; then
                echo "Missing required tarball."
@@ -1342,7 +1342,12 @@ build_cmd()
                remove_tree $dir
                exit 1
        fi
-       if ! tar cfj $1 -C $dir . >&3 2>&1; then
+       if [ -n "$noroot" ]; then
+               tartree=@METALOG
+       else
+               tartree=.
+       fi
+       if ! tar cfj $1 -C $dir $tartree >&3 2>&1; then
                echo "Failed to create tarball."
                remove_tree $dir
                exit 1

Reply via email to