]> git.ipfire.org Git - thirdparty/libarchive.git/commitdiff
Fix compilation on Mac OS X versions without ACL_SYNCHRONIZE
authorMartin Matuska <martin@matuska.org>
Tue, 28 Feb 2017 16:02:50 +0000 (17:02 +0100)
committerMartin Matuska <martin@matuska.org>
Tue, 28 Feb 2017 16:02:50 +0000 (17:02 +0100)
libarchive/archive_read_disk_entry_from_file.c
libarchive/archive_write_disk_acl.c

index b2f1d17d9718fbf4e672ed2652df7968181b519f..4e1de0e9b65543bb1f60441a9e4ae83594399be1 100644 (file)
@@ -674,7 +674,9 @@ static const struct {
        {ARCHIVE_ENTRY_ACL_READ_ACL, ACL_READ_SECURITY},
        {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_SECURITY},
        {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_CHANGE_OWNER},
+#ifdef ACL_SYNCHRONIZE
        {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE}
+#endif
 #else  /* POSIX.1e ACL permissions */
        {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE},
        {ARCHIVE_ENTRY_ACL_WRITE, ACL_WRITE},
@@ -1382,6 +1384,11 @@ translate_acl(struct archive_read_disk *a,
                                ae_perm |= acl_perm_map[i].archive_perm;
                }
 
+#if defined(HAVE_DARWIN_ACL) && !defined(ACL_SYNCHRONIZE)
+               /* On Mac OS X without ACL_SYNCHRONIZE assume it is set */
+               ae_perm |= ARCHIVE_ENTRY_ACL_SYNCHRONIZE;
+#endif
+
                archive_entry_acl_add_entry(entry, entry_acl_type,
                                            ae_perm, ae_tag,
                                            ae_id, ae_name);
index 144ab7e72e1b674ff6018c268cd03e7a990c119c..30727fb940321455f2008faf006980d28e44fcf0 100644 (file)
@@ -158,7 +158,9 @@ static const struct {
        {ARCHIVE_ENTRY_ACL_READ_ACL, ACL_READ_SECURITY},
        {ARCHIVE_ENTRY_ACL_WRITE_ACL, ACL_WRITE_SECURITY},
        {ARCHIVE_ENTRY_ACL_WRITE_OWNER, ACL_CHANGE_OWNER},
+#ifdef ACL_SYNCHRONIZE
        {ARCHIVE_ENTRY_ACL_SYNCHRONIZE, ACL_SYNCHRONIZE}
+#endif
 #else  /* POSIX.1e ACL permissions */
        {ARCHIVE_ENTRY_ACL_EXECUTE, ACL_EXECUTE},
        {ARCHIVE_ENTRY_ACL_WRITE, ACL_WRITE},