reassign 588925 libarchive1 2.8.3-1 retitle 588925 archive_read_disk_entry_from_file() fails on hppa/sh4 etc. affects 588925 src:cmake severity 588925 grave thanks
Hello, On antradienis 13 Liepa 2010 16:44:09 dann frazier wrote: > CPack Error: archive_read_disk_entry_from_file:(Empty error > message)Function not implemented -20 CPack Error: > archive_read_disk_entry_from_file:(Empty error message)Function not > implemented -20 CPack Error: archive_read_disk_entry_from_file:(Empty > error message)Function not implemented -20 CPack Error: > archive_read_disk_entry_from_file:(Empty error message)Function not [..snip..] This is a libarchive bug. archive_read_disk_entry_from_file() does not work on hppa/sh4 at all. libarchive's own testsuite fails on hppa but unfortunately packaging ignores that failure and the bug is not caught early. Check ./libarchive_test debugging session on paer.debian.org (hppa) below. Basically llistxattr() fails with "Function not implemented" error (ENOSYS) and setup_xattrs() treats it as a fatal error. It should ignore this error like it does with ENOTSUP. While hppa build log is not available, the same error can be seen on sh4 as well [1]. Please note that many tests fail with similar extended attr errors on those arches. [1] http://buildd.debian- ports.org/fetch.php?&pkg=libarchive&ver=2.8.3-1&arch=sh4&stamp=1272046835&file=log&as=raw $ gdb ./libarchive_test GNU gdb (GDB) 7.1-debian Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "hppa-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/modax/src/libarchive-2.8.3/libarchive_test...done. (gdb) b test_read_disk_entry_from_file Breakpoint 1 at 0x7392c: file libarchive/test/test_read_disk_entry_from_file.c, line 50. (gdb) b archive_read_disk_entry_from_file Breakpoint 2 at 0x1d35c: file libarchive/archive_read_disk_entry_from_file.c, line 89. (gdb) r Starting program: /home/modax/src/libarchive-2.8.3/libarchive_test [Thread debugging using libthread_db enabled] If tests fail or crash, details will be in: /tmp/libarchive_test.2010-07-14T23.05.33-000 Reference files will be read from: /home/modax/src/libarchive-2.8.3/libarchive/test Exercising: libarchive 2.8.3 0: test_acl_basic ok 1: test_acl_freebsd ok 2: test_acl_pax ok 3: test_archive_api_feature ok 4: test_bad_fd ok 5: test_compat_bzip2 ok 6: test_compat_cpio ok 7: test_compat_gtar ok 8: test_compat_gzip ok 9: test_compat_lzma ok 10: test_compat_solaris_tar_acl ok 11: test_compat_tar_hardlink ok 12: test_compat_xz ok 13: test_compat_zip ok 14: test_empty_write ok 15: test_entry ok 16: test_entry_strmode ok 17: test_extattr_freebsd ok 18: test_fuzz ok 19: test_link_resolver ok 20: test_open_fd ok 21: test_open_file ok 22: test_open_filename ok 23: test_pax_filename_encoding ok 24: test_read_compress_program ok 25: test_read_data_large ok 26: test_read_disk ok 27: test_read_disk_entry_from_file Breakpoint 1, test_read_disk_entry_from_file () at libarchive/test/test_read_disk_entry_from_file.c:50 50 assert((a = archive_read_disk_new()) != NULL); (gdb) c Continuing. Breakpoint 2, archive_read_disk_entry_from_file (_a=0x4820068, entry=0x4823588, fd=-1, st=0x0) at libarchive/archive_read_disk_entry_from_file.c:89 89 struct archive_read_disk *a = (struct archive_read_disk *)_a; (gdb) n 92 int initial_fd = fd; (gdb) 95 archive_clear_error(_a); (gdb) 96 path = archive_entry_sourcepath(entry); (gdb) 97 if (path == NULL) (gdb) 98 path = archive_entry_pathname(entry); (gdb) 116 if (st == NULL) { (gdb) 123 if (fd >= 0) { (gdb) 132 if (!a->follow_symlinks) { (gdb) 133 if (lstat(path, &s) != 0) { (gdb) 145 st = &s; (gdb) 147 archive_entry_copy_stat(entry, st); (gdb) 150 name = archive_read_disk_uname(_a, archive_entry_uid(entry)); (gdb) 151 if (name != NULL) (gdb) 152 archive_entry_copy_uname(entry, name); (gdb) 153 name = archive_read_disk_gname(_a, archive_entry_gid(entry)); (gdb) 154 if (name != NULL) (gdb) 155 archive_entry_copy_gname(entry, name); (gdb) 165 if (S_ISLNK(st->st_mode)) { (gdb) 189 r = setup_acls_posix1e(a, entry, fd); (gdb) 190 r1 = setup_xattrs(a, entry, fd); (gdb) s setup_xattrs (a=0x4820068, entry=0x4823588, fd=-1) at libarchive/archive_read_disk_entry_from_file.c:391 391 path = archive_entry_sourcepath(entry); (gdb) n 392 if (path == NULL) (gdb) 393 path = archive_entry_pathname(entry); (gdb) 395 if (!a->follow_symlinks) (gdb) 396 list_size = llistxattr(path, NULL, 0); (gdb) 400 if (list_size == -1) { (gdb) 401 if (errno == ENOTSUP) (gdb) 403 archive_set_error(&a->archive, errno, (gdb) p perror("failure:") failure:: Function not implemented $13 = 0 gdb) p errno $14 = 251 (gdb) n 405 return (ARCHIVE_WARN); (gdb) n 437 } (gdb) archive_read_disk_entry_from_file (_a=0x4820068, entry=0x4823588, fd=-1, st=0xfaf016f0) at libarchive/archive_read_disk_entry_from_file.c:191 191 if (r1 < r) (gdb) 192 r = r1; (gdb) 194 if (initial_fd != fd) (gdb) 196 return (r); (gdb) 197 } (gdb) test_read_disk_entry_from_file () at libarchive/test/test_read_disk_entry_from_file.c:73 73 assertEqualString(archive_entry_uname(entry), "FOO"); (gdb) c Continuing. FAIL 28: test_read_extract ok 29: test_read_file_nonexistent ok 30: test_read_format_ar ok 31: test_read_format_cpio_bin_be ok 32: test_read_format_cpio_bin_bz2 ok 33: test_read_format_cpio_bin ok 34: test_read_format_cpio_bin_gz ok 35: test_read_format_cpio_bin_lzma ok 36: test_read_format_cpio_bin_xz ok 37: test_read_format_cpio_bin_Z ok 38: test_read_format_cpio_odc ok 39: test_read_format_cpio_svr4_bzip2_rpm ok 40: test_read_format_cpio_svr4c_Z ok 41: test_read_format_cpio_svr4_gzip ok 42: test_read_format_cpio_svr4_gzip_rpm ok 43: test_read_format_empty ok 44: test_read_format_gtar_gz ok 45: test_read_format_gtar_lzma ok 46: test_read_format_gtar_sparse ok 47: test_read_format_iso_gz ok 48: test_read_format_isojoliet_bz2 ok 49: test_read_format_isojoliet_long ok 50: test_read_format_isojoliet_rr ok 51: test_read_format_iso_multi_extent ok 52: test_read_format_isorr_bz2 ok 53: test_read_format_isorr_ce ok 54: test_read_format_isorr_new_bz2 ok 55: test_read_format_isorr_rr_moved ok 56: test_read_format_isozisofs_bz2 ok 57: test_read_format_mtree ok 58: test_read_format_pax_bz2 ok 59: test_read_format_raw ok 60: test_read_format_tar ok 61: test_read_format_tar_empty_filename ok 62: test_read_format_tbz ok 63: test_read_format_tgz ok 64: test_read_format_tlz ok 65: test_read_format_txz ok 66: test_read_format_tz ok 67: test_read_format_xar ok 68: test_read_format_zip ok 69: test_read_large ok 70: test_read_pax_truncated ok 71: test_read_position ok 72: test_read_truncated ok 73: test_read_uu ok 74: test_tar_filenames ok 75: test_tar_large ok 76: test_ustar_filenames ok 77: test_write_compress_bzip2 ok 78: test_write_compress ok 79: test_write_compress_gzip ok 80: test_write_compress_lzma ok 81: test_write_compress_program ok 82: test_write_compress_xz ok 83: test_write_disk ok 84: test_write_disk_failures ok 85: test_write_disk_hardlink ok 86: test_write_disk_perms ok 87: test_write_disk_secure ok 88: test_write_disk_symlink ok 89: test_write_disk_sparse ok 90: test_write_disk_times ok 91: test_write_format_ar ok 92: test_write_format_cpio ok 93: test_write_format_cpio_empty ok 94: test_write_format_cpio_newc ok 95: test_write_format_cpio_odc ok 96: test_write_format_mtree ok 97: test_write_format_pax ok 98: test_write_format_shar_empty ok 99: test_write_format_tar ok 100: test_write_format_tar_empty ok 101: test_write_format_tar_ustar ok 102: test_write_format_zip ok 103: test_write_format_zip_empty ok 104: test_write_format_zip_no_compression ok 105: test_write_open_memory ok Totals: Tests run: 106 Tests failed: 1 Assertions checked: 2823912 Assertions failed: 1 Skips reported: 15 Failing tests: 27: test_read_disk_entry_from_file (1 failures) Details for failing tests: /tmp/libarchive_test.2010-07-14T23.05.33-000 Program exited with code 01. (gdb) $ grep 251 /usr/include/asm/errno.h #define ENOSYS 251 /* Function not implemented */ $ -- Modestas Vainius <[email protected]>
signature.asc
Description: This is a digitally signed message part.

