Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package tar for openSUSE:Factory checked in at 2026-08-01 18:26:56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/tar (Old) and /work/SRC/openSUSE:Factory/.tar.new.16738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "tar" Sat Aug 1 18:26:56 2026 rev:92 rq:1368079 version:1.35 Changes: -------- --- /work/SRC/openSUSE:Factory/tar/tar.changes 2026-07-20 09:56:49.619056204 +0200 +++ /work/SRC/openSUSE:Factory/.tar.new.16738/tar.changes 2026-08-01 18:27:04.635191359 +0200 @@ -1,0 +2,7 @@ +Thu Jul 23 14:35:33 UTC 2026 - Antonio Teixeira <[email protected]> + +- Add tar-assume-dir-size-0.patch + * Fixes tar incorrectly skipping members in certain archives containing + dirs with non-zero sizes (bsc#1271272) + +------------------------------------------------------------------- New: ---- tar-assume-dir-size-0.patch ----------(New B)---------- New: - Add tar-assume-dir-size-0.patch * Fixes tar incorrectly skipping members in certain archives containing ----------(New E)---------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ tar.spec ++++++ --- /var/tmp/diff_new_pack.EDiJjQ/_old 2026-08-01 18:27:05.507221151 +0200 +++ /var/tmp/diff_new_pack.EDiJjQ/_new 2026-08-01 18:27:05.511221288 +0200 @@ -68,6 +68,9 @@ Patch23: openat2-fix-dotlike-failure.patch # PATCH-FIX-UPSTREAM https://cgit.git.savannah.gnu.org/cgit/tar.git/patch/?id=08c3fc2e9337094aff01a511170fd35fdb8f1ee3 Patch24: tar-acl_-prefix.patch +# PATCH-FIX-UPSTREAM https://cgit.git.savannah.gnu.org/cgit/tar.git/patch/?id=19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d +# Fix for bsc#1271272 +Patch25: tar-assume-dir-size-0.patch BuildRequires: automake >= 1.15 BuildRequires: libacl-devel BuildRequires: libselinux-devel ++++++ tar-assume-dir-size-0.patch ++++++ commit 19a3a73e8c48bd3c59cbea9b5ed6780fc6836c6d Author: Sergey Poznyakoff <[email protected]> Date: Thu Jul 23 10:42:56 2026 +0300 Assume directory members have size=0. Since commit b8d8a61b, tar started honoring size field in headers of the directory archive members when listing and extracting. That doesn't seem right: although GNU tar always stores 0 for such members, there are other tar implementation that don't. As a result, GNU tar skips the actual directory contents when listing or extracting archives created by such implementations. This commit fixes that by assuming that size is 0 for directory archive members. * src/list.c (member_is_dir): Restore function. (skim_member): Don't apply skim_file to directory members. * tests/skipdir.at: Fix expectations. diff --git a/src/list.c b/src/list.c index cf7b41c4..1f441364 100644 --- a/src/list.c +++ b/src/list.c @@ -1437,6 +1437,24 @@ skip_member (void) skim_member (false); } +static bool +member_is_dir (struct tar_stat_info *info, char typeflag) +{ + switch (typeflag) + { + case AREGTYPE: + case REGTYPE: + case CONTTYPE: + return info->had_trailing_slash; + + case DIRTYPE: + return true; + + default: + return false; + } +} + /* Skip the current member in the archive. If MUST_COPY, always copy instead of skipping. */ void @@ -1450,7 +1468,8 @@ skim_member (bool must_copy) if (current_stat_info.is_sparse) sparse_skim_file (¤t_stat_info, must_copy); - else + else if (!member_is_dir (¤t_stat_info, + current_header->header.typeflag)) skim_file (current_stat_info.stat.st_size, must_copy); mv_end ();
