Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package tar for openSUSE:Factory checked in 
at 2024-07-17 15:14:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/tar (Old)
 and      /work/SRC/openSUSE:Factory/.tar.new.17339 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "tar"

Wed Jul 17 15:14:25 2024 rev:85 rq:1187615 version:1.35

Changes:
--------
--- /work/SRC/openSUSE:Factory/tar/tar.changes  2024-03-05 18:46:50.768730261 
+0100
+++ /work/SRC/openSUSE:Factory/.tar.new.17339/tar.changes       2024-07-17 
15:15:02.461825908 +0200
@@ -1,0 +2,7 @@
+Wed Jul 10 20:09:28 UTC 2024 - Antonio Teixeira <antonio.teixe...@suse.com>
+
+- Updated tar-fix-extract-unlink.patch
+  * Replace patch with an equivalent upstreamed commit
+  * Fixes bsc#1225407
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------

++++++ tar-fix-extract-unlink.patch ++++++
--- /var/tmp/diff_new_pack.6SCGvm/_old  2024-07-17 15:15:03.117849932 +0200
+++ /var/tmp/diff_new_pack.6SCGvm/_new  2024-07-17 15:15:03.121850079 +0200
@@ -1,90 +1,87 @@
+From 1e6ce98e3a4ef5c807458a35973af7e3503c678c Mon Sep 17 00:00:00 2001
+From: Sergey Poznyakoff <g...@gnu.org>
+Date: Wed, 5 Jun 2024 18:19:10 +0300
+Subject: [PATCH] Fix spurious diagnostic during extraction of . with
+ --keep-newer-files
+
+Bug reported in https://savannah.gnu.org/bugs/?65838.
+
+Bug introduced by 79d1ac38c1.
+
+* src/extract.c (make_directories): Restore second argument.  This
+reverts the change made in 79d1ac38c1.
+(maybe_recoverable, rename_directory): Update calls to make_directories.
+* tests/extrac27.at: New file.
+* tests/Makefile.am: Add new test.
+* tests/testsuite.at: Likewise.
+---
+ src/extract.c      | 19 ++++++++++---------
+ tests/Makefile.am  |  1 +
+ tests/extrac27.at  | 46 ++++++++++++++++++++++++++++++++++++++++++++++
+ tests/testsuite.at |  1 +
+ 4 files changed, 58 insertions(+), 9 deletions(-)
+ create mode 100644 tests/extrac27.at
+
 diff --git a/src/extract.c b/src/extract.c
-index 0261134f..f913575c 100644
+index 0fef0562..41f8418f 100644
 --- a/src/extract.c
 +++ b/src/extract.c
-@@ -711,7 +711,7 @@ fixup_delayed_set_stat (char const *src, char const *dst)
+@@ -709,9 +709,9 @@ fixup_delayed_set_stat (char const *src, char const *dst)
+ /* After a file/link/directory creation has failed due to ENOENT,
+    create all required directories.  Return zero if all the required
     directories were created, nonzero (issuing a diagnostic) otherwise.
-    Set *INTERDIR_MADE if at least one directory was created.  */
+-   Set *INTERDIR_MADE if at least one directory was created.  */
++   Set *INTERDIR_MADE (unless NULL) if at least one directory was created. */
  static int
 -make_directories (char *file_name)
 +make_directories (char *file_name, bool *interdir_made)
  {
    char *cursor0 = file_name + FILE_SYSTEM_PREFIX_LEN (file_name);
    char *cursor;                       /* points into the file name */
-@@ -755,6 +755,7 @@ make_directories (char *file_name)
+@@ -753,7 +753,8 @@ make_directories (char *file_name)
+         delay_set_stat (file_name,
+                         0, mode & ~ current_umask, MODE_RWX,
                          desired_mode, AT_SYMLINK_NOFOLLOW);
- 
+-
++        if (interdir_made)
++          *interdir_made = true;
          print_for_mkdir (file_name, desired_mode);
-+        *interdir_made = true;
          parent_end = NULL;
        }
-       else
-@@ -910,11 +911,8 @@ maybe_recoverable (char *file_name, bool regular, bool 
*interdir_made)
+@@ -793,6 +794,9 @@ make_directories (char *file_name)
+       errno = parent_errno;
+       mkdir_error (file_name);
+     }
++  else if (interdir_made)
++    *interdir_made = true;
++
+   *parent_end = '/';
+ 
+   return stat_status;
+@@ -910,11 +914,8 @@ maybe_recoverable (char *file_name, bool regular, bool 
*interdir_made)
  
      case ENOENT:
        /* Attempt creating missing intermediate directories. */
 -      if (make_directories (file_name) == 0)
 -      {
 -        *interdir_made = true;
-+      if (make_directories (file_name, interdir_made) == 0)
-         return RECOVER_OK;
+-        return RECOVER_OK;
 -      }
++      if (make_directories (file_name, interdir_made) == 0 && *interdir_made)
++      return RECOVER_OK;
        break;
  
      default:
-@@ -1109,7 +1107,7 @@ extract_dir (char *file_name, int typeflag)
-             || old_files_option == NO_OVERWRITE_DIR_OLD_FILES
-             || old_files_option == DEFAULT_OLD_FILES
-             || old_files_option == OVERWRITE_OLD_FILES)
--          {
-+              {
-             struct stat st;
-             st.st_mode = 0;
- 
-@@ -1117,21 +1115,21 @@ extract_dir (char *file_name, int typeflag)
-                 && is_directory_link (file_name, &st))
-               return 0;
- 
--            if ((st.st_mode != 0 && fstatat_flags == 0)
--                || deref_stat (file_name, &st) == 0)
--              {
-+      if ((st.st_mode != 0 && fstatat_flags == 0)
-+        || deref_stat (file_name, &st) == 0)
-+                  {
-                 current_mode = st.st_mode;
-                 current_mode_mask = ALL_MODE_BITS;
- 
-                 if (S_ISDIR (current_mode))
--                  {
--                    if (interdir_made)
--                      {
--                        repair_delayed_set_stat (file_name, &st);
--                        return 0;
--                      }
--                    else if (old_files_option == NO_OVERWRITE_DIR_OLD_FILES)
-                       {
-+                    if (interdir_made)
-+                          {
-+                        repair_delayed_set_stat (file_name, &st);
-+                        return 0;
-+                          }
-+            else if (old_files_option == NO_OVERWRITE_DIR_OLD_FILES)
-+                          {
-                         /* Temporarily change the directory mode to a safe
-                            value, to be able to create files in it, should
-                            the need be.
-@@ -2007,11 +2005,12 @@ rename_directory (char *src, char *dst)
-   else
-     {
-       int e = errno;
-+      bool interdir_made;
- 
+@@ -2011,7 +2012,7 @@ rename_directory (char *src, char *dst)
        switch (e)
        {
        case ENOENT:
 -        if (make_directories (dst) == 0)
-+        if (make_directories (dst, &interdir_made) == 0)
++        if (make_directories (dst, NULL) == 0)
            {
              if (renameat (chdir_fd, src, chdir_fd, dst) == 0)
                return true;
+-- 
+2.45.2
+
 

Reply via email to