Author: renodr Date: Sun Aug 16 11:21:37 2020 New Revision: 4166 Log: Add libarchive patch
Added: trunk/libarchive/libarchive-3.4.3-testsuite_fix-1.patch Added: trunk/libarchive/libarchive-3.4.3-testsuite_fix-1.patch ============================================================================== --- /dev/null 00:00:00 1970 (empty, because file is newly added) +++ trunk/libarchive/libarchive-3.4.3-testsuite_fix-1.patch Sun Aug 16 11:21:37 2020 (r4166) @@ -0,0 +1,60 @@ +Submitted By: Douglas R. Reno <renodr at linuxfromscratch dot org> +Date: 2020-08-16 +Initial Package Version: 3.4.3 +Upstream Status: Committed +Origin: Upstream (https://github.com/libarchive/libarchive/issues/1379) +Description: Fixes a test suite problem due to the introduction of + an incomplete implementation of lchmod() in glibc. + +diff -Naurp libarchive-3.4.3.orig/libarchive/test/test_write_disk_secure.c libarchive-3.4.3/libarchive/test/test_write_disk_secure.c +--- libarchive-3.4.3.orig/libarchive/test/test_write_disk_secure.c 2019-12-14 15:13:52.000000000 -0600 ++++ libarchive-3.4.3/libarchive/test/test_write_disk_secure.c 2020-08-16 13:07:59.253574207 -0500 +@@ -40,6 +40,10 @@ DEFINE_TEST(test_write_disk_secure) + struct archive *a; + struct archive_entry *ae; + struct stat st; ++#if defined(HAVE_LCHMOD) && defined(HAVE_SYMLINK) && \ ++ defined(S_IRUSR) && defined(S_IWUSR) && defined(S_IXUSR) ++ int working_lchmod; ++#endif + + /* Start with a known umask. */ + assertUmask(UMASK); +@@ -251,10 +255,33 @@ DEFINE_TEST(test_write_disk_secure) + assert(0 == lstat("link_to_dir", &st)); + failure("link_to_dir: st.st_mode=%o", st.st_mode); + assert(S_ISLNK(st.st_mode)); +-#if HAVE_LCHMOD +- /* Systems that lack lchmod() can't set symlink perms, so skip this. */ +- failure("link_to_dir: st.st_mode=%o", st.st_mode); +- assert((st.st_mode & 07777) == 0755); ++#if defined(HAVE_SYMLINK) && defined(HAVE_LCHMOD) && \ ++ defined(S_IRUSR) && defined(S_IWUSR) && defined(S_IXUSR) ++ /* Verify that we are able to lchmod() */ ++ if(symlink("dir", "testlink_to_dir") == 0) { ++ if (lchmod("testlink_to_dir", ++ S_IRUSR | S_IWUSR | S_IXUSR) != 0) { ++ switch (errno) { ++ case ENOTSUP: ++ case ENOSYS: ++#if ENOTSUP != EOPNOTSUPP ++ case EOPNOTSUPP: ++#endif ++ working_lchmod = 0; ++ break; ++ default: ++ working_lchmod = 1; ++ } ++ } else ++ working_lchmod = 1; ++ } else ++ working_lchmod = 0; ++ ++ ++ if (working_lchmod) { ++ failure("link_to_dir: st.st_mode=%o", st.st_mode); ++ assert((st.st_mode & 07777) == 0755); ++ } + #endif + + assert(0 == lstat("dir/filea", &st)); -- http://lists.linuxfromscratch.org/listinfo/patches FAQ: http://www.linuxfromscratch.org/blfs/faq.html Unsubscribe: See the above information page