summaryrefslogtreecommitdiff
path: root/Master
diff options
context:
space:
mode:
Diffstat (limited to 'Master')
-rw-r--r--Master/tlpkg/TeXLive/TLPOBJ.pm23
1 files changed, 16 insertions, 7 deletions
diff --git a/Master/tlpkg/TeXLive/TLPOBJ.pm b/Master/tlpkg/TeXLive/TLPOBJ.pm
index 441d24006e8..87a19e70377 100644
--- a/Master/tlpkg/TeXLive/TLPOBJ.pm
+++ b/Master/tlpkg/TeXLive/TLPOBJ.pm
@@ -581,13 +581,22 @@ sub make_container {
}
}
- # No owner/group options if we are being called on a user's machine to
- # make a backup. We only want these when we are making the master
- # containers for tlnet. Also exclude .svn directories when making the
- # masters. We determine user vs. master by whether there's a revision
- # suffix in the container name.
- my @attrs = $containername =~ /\.r[0-9]/
- ? () : ("--owner", "0", "--group", "0", "--exclude", ".svn");
+ # Here we need to distinguish between making the master containers for
+ # tlnet (where we can assume GNU tar) and making backups on a user's
+ # machine (where we can assume nothing). We determine this by whether
+ # there's a revision suffix in the container name.
+ #
+ # For the master containers, we want to set the owner/group, exclude
+ # .svn directories, and force ustar format. This last is for the sake
+ # of packages such as pgf which have filenames long enough that they
+ # overflow standard tar format and result in special things being
+ # done. We don't want the GNU-specific special things.
+ #
+ my @attrs
+ = $containername =~ /\.r[0-9]/
+ ? ()
+ : ( "--owner", "0", "--group", "0", "--exclude", ".svn",
+ "--format", "ustar" );
my @cmdline = ($tar, "-cf", "$destdir/$tarname", @attrs);
# Get list of files and symlinks to back up. Nothing else should be