components/vim/patches/7.4.2035.patch
author Vladimir Marek <Vladimir.Marek@oracle.com>
Mon, 25 Jul 2016 13:45:37 +0200
changeset 6475 abfc9174d2f0
permissions -rw-r--r--
24006594 vim removes complex ACLs with backupcopy=yes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
6475
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     1
Patch 7.4.2035
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     2
Problem:    On Solaris with ZFS the ACL may get removed.
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     3
Solution:   Always restore the ACL for Solaris ZFS. (Danek Duvall)
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     4
Files:      src/fileio.c
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     5
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     6
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     7
*** ../vim-7.4.2034/src/fileio.c	2016-07-10 22:11:11.870751341 +0200
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     8
--- src/fileio.c	2016-07-14 20:33:57.407544979 +0200
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
     9
***************
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    10
*** 4709,4717 ****
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    11
      if (perm >= 0)		/* set perm. of new file same as old file */
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    12
  	(void)mch_setperm(wfname, perm);
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    13
  #ifdef HAVE_ACL
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    14
!     /* Probably need to set the ACL before changing the user (can't set the
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    15
!      * ACL on a file the user doesn't own). */
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    16
      if (!backup_copy)
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    17
  	mch_set_acl(wfname, acl);
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    18
  #endif
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    19
  #ifdef FEAT_CRYPT
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    20
--- 4709,4725 ----
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    21
      if (perm >= 0)		/* set perm. of new file same as old file */
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    22
  	(void)mch_setperm(wfname, perm);
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    23
  #ifdef HAVE_ACL
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    24
!     /*
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    25
!      * Probably need to set the ACL before changing the user (can't set the
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    26
!      * ACL on a file the user doesn't own).
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    27
!      * On Solaris, with ZFS and the aclmode property set to "discard" (the
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    28
!      * default), chmod() discards all part of a file's ACL that don't represent
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    29
!      * the mode of the file.  It's non-trivial for us to discover whether we're
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    30
!      * in that situation, so we simply always re-set the ACL.
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    31
!      */
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    32
! # ifndef HAVE_SOLARIS_ZFS_ACL
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    33
      if (!backup_copy)
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    34
+ # endif
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    35
  	mch_set_acl(wfname, acl);
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    36
  #endif
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    37
  #ifdef FEAT_CRYPT
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    38
*** ../vim-7.4.2034/src/version.c	2016-07-14 20:24:59.351396346 +0200
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    39
--- src/version.c	2016-07-14 20:34:53.154732074 +0200
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    40
***************
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    41
*** 760,761 ****
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    42
--- 760,763 ----
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    43
  {   /* Add new patch number below this line */
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    44
+ /**/
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    45
+     2035,
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    46
  /**/
abfc9174d2f0 24006594 vim removes complex ACLs with backupcopy=yes
Vladimir Marek <Vladimir.Marek@oracle.com>
parents:
diff changeset
    47