Set umask so that symlinks will have the right permissions on BSD.
authorMartin Pool <mbp@samba.org>
Thu, 6 Sep 2001 02:26:21 +0000 (02:26 +0000)
committerMartin Pool <mbp@samba.org>
Thu, 6 Sep 2001 02:26:21 +0000 (02:26 +0000)
testsuite/rsync.fns

index a80a96c..811c9ba 100644 (file)
@@ -20,10 +20,26 @@ printmsg() {
     echo "$1"
 }
 
+
+####################
+# Build test directories TO and FROM, with FROM full of files.
+
 hands_setup() {
     [ -d $FROM ] || mkdir $FROM
     [ -d $TO ] || mkdir $TO
 
+    # On some BSD systems, the umask affects the mode of created
+    # symlinks, even though the mode apparently has no effect on how
+    # the links behave in the future, and it cannot be changed using
+    # chmod!  rsync always sets its umask to 000 so that it can
+    # accurately recreate permissions, but this script is probably run
+    # with a different umask. 
+
+    # This causes a little problem that "ls -l" of the two will not be
+    # the same.  So, we need to set our umask before doing any creations.
+
+    umask 0
+
     # set up test data
     touch ${FROM}/empty
     mkdir ${FROM}/emptydir
@@ -42,9 +58,12 @@ hands_setup() {
     ls -ltr /etc > ${FROM}/dir/subdir/subsubdir/etc-ltr-list
     mkdir ${FROM}/dir/subdir/subsubdir2
     ls -lt /bin > ${FROM}/dir/subdir/subsubdir2/bin-lt-list
+
+    umask 077
 }
 
 
+
 ###########################
 # Run a test (in '$1') then compare directories $2 and $3 to see if
 # there are any difference.  If there are, explain them.