Hello community,

here is the log from the commit of package unrar for openSUSE:Factory:NonFree 
checked in at 2019-11-18 20:12:26
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory:NonFree/unrar (Old)
 and      /work/SRC/openSUSE:Factory:NonFree/.unrar.new.26869 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "unrar"

Mon Nov 18 20:12:26 2019 rev:84 rq:749149 version:5.8.4

Changes:
--------
--- /work/SRC/openSUSE:Factory:NonFree/unrar/unrar.changes      2019-10-21 
12:32:40.616251550 +0200
+++ /work/SRC/openSUSE:Factory:NonFree/.unrar.new.26869/unrar.changes   
2019-11-18 20:12:56.725513855 +0100
@@ -1,0 +2,6 @@
+Sun Nov 17 21:04:09 UTC 2019 - Ismail Dönmez <[email protected]>
+
+- Update to version 5.8.4
+  * Based on WinRAR version 5.80 beta 4
+
+-------------------------------------------------------------------

Old:
----
  unrarsrc-5.8.3.tar.gz

New:
----
  unrarsrc-5.8.4.tar.gz

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

Other differences:
------------------
++++++ unrar.spec ++++++
--- /var/tmp/diff_new_pack.v3H01n/_old  2019-11-18 20:12:57.229513598 +0100
+++ /var/tmp/diff_new_pack.v3H01n/_new  2019-11-18 20:12:57.233513596 +0100
@@ -18,10 +18,10 @@
 
 # majorversion should match the major version number.
 %define majorversion 5
-%define libsuffix 5_8_3
+%define libsuffix 5_8_4
 
 Name:           unrar
-Version:        5.8.3
+Version:        5.8.4
 Release:        0
 Summary:        A program to extract, test, and view RAR archives
 License:        NonFree

++++++ unrarsrc-5.8.3.tar.gz -> unrarsrc-5.8.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/archive.hpp new/unrar/archive.hpp
--- old/unrar/archive.hpp       2019-10-20 13:20:09.000000000 +0200
+++ new/unrar/archive.hpp       2019-11-17 13:23:47.000000000 +0100
@@ -29,7 +29,6 @@
     void UpdateLatestTime(FileHeader *CurBlock);
     void ConvertNameCase(wchar *Name);
     void ConvertFileHeader(FileHeader *hd);
-    void WriteBlock50(HEADER_TYPE HeaderType,BaseBlock *wb,bool 
OnlySetSize,bool NonFinalWrite);
     size_t ReadHeader14();
     size_t ReadHeader15();
     size_t ReadHeader50();
@@ -65,8 +64,6 @@
     size_t SearchBlock(HEADER_TYPE HeaderType);
     size_t SearchSubBlock(const wchar *Type);
     size_t SearchRR();
-    void WriteBlock(HEADER_TYPE HeaderType,BaseBlock *wb=NULL,bool 
OnlySetSize=false,bool NonFinalWrite=false);
-    void SetBlockSize(HEADER_TYPE HeaderType,BaseBlock *wb=NULL) 
{WriteBlock(HeaderType,wb,true);}
     size_t ReadHeader();
     void CheckArc(bool EnableBroken);
     void CheckOpen(const wchar *Name);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/arcread.cpp new/unrar/arcread.cpp
--- old/unrar/arcread.cpp       2019-10-20 13:20:09.000000000 +0200
+++ new/unrar/arcread.cpp       2019-11-17 13:23:47.000000000 +0100
@@ -720,6 +720,7 @@
           UnkEncVerMsg(FileName,Info);
           return 0;
         }
+
         Raw.GetB(CryptHead.Salt,SIZE_SALT50);
         if (CryptHead.UsePswCheck)
         {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/dll.rc new/unrar/dll.rc
--- old/unrar/dll.rc    2019-10-20 12:54:48.000000000 +0200
+++ new/unrar/dll.rc    2019-11-17 13:01:32.000000000 +0100
@@ -2,8 +2,8 @@
 #include <commctrl.h>
 
 VS_VERSION_INFO VERSIONINFO
-FILEVERSION 5, 80, 3, 3220
-PRODUCTVERSION 5, 80, 3, 3220
+FILEVERSION 5, 80, 4, 3248
+PRODUCTVERSION 5, 80, 4, 3248
 FILEOS VOS__WINDOWS32
 FILETYPE VFT_APP
 {
@@ -14,8 +14,8 @@
       VALUE "CompanyName", "Alexander Roshal\0"
       VALUE "ProductName", "RAR decompression library\0"
       VALUE "FileDescription", "RAR decompression library\0"
-      VALUE "FileVersion", "5.80.3\0"
-      VALUE "ProductVersion", "5.80.3\0"
+      VALUE "FileVersion", "5.80.4\0"
+      VALUE "ProductVersion", "5.80.4\0"
       VALUE "LegalCopyright", "Copyright � Alexander Roshal 1993-2019\0"
       VALUE "OriginalFilename", "Unrar.dll\0"
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/extract.cpp new/unrar/extract.cpp
--- old/unrar/extract.cpp       2019-10-20 13:20:09.000000000 +0200
+++ new/unrar/extract.cpp       2019-11-17 13:23:47.000000000 +0100
@@ -735,38 +735,52 @@
       else
         mprintf(L"\b\b\b\b\b     ");
 
+      // If we successfully unpacked a hard link, we wish to set its file
+      // attributes. Hard link shares file metadata with link target,
+      // so we do not need to set link time or owner. But when we overwrite
+      // an existing link, we can call PrepareToDelete(), which affects
+      // link target attributes as well. So we set link attributes to restore
+      // both target and link attributes if PrepareToDelete() changed them.
+      bool SetAttrOnly=LinkEntry && Arc.FileHead.RedirType==FSREDIR_HARDLINK 
&& LinkSuccess;
+
       if (!TestMode && (Command=='X' || Command=='E') &&
-          (!LinkEntry || Arc.FileHead.RedirType==FSREDIR_FILECOPY && 
LinkSuccess) && 
+          (!LinkEntry || SetAttrOnly || 
Arc.FileHead.RedirType==FSREDIR_FILECOPY && LinkSuccess) && 
           (!BrokenFile || Cmd->KeepBroken))
       {
-        // We could preallocate more space that really written to broken file
-        // or file with crafted header.
-        if (Preallocated>0 && (BrokenFile || DataIO.CurUnpWrite!=Preallocated))
-          CurFile.Truncate();
-
-#if defined(_WIN_ALL) || defined(_EMX)
-        if (Cmd->ClearArc)
-          Arc.FileHead.FileAttr&=~FILE_ATTRIBUTE_ARCHIVE;
-#endif
-
-
-        CurFile.SetOpenFileTime(
-          Cmd->xmtime==EXTTIME_NONE ? NULL:&Arc.FileHead.mtime,
-          Cmd->xctime==EXTTIME_NONE ? NULL:&Arc.FileHead.ctime,
-          Cmd->xatime==EXTTIME_NONE ? NULL:&Arc.FileHead.atime);
-        CurFile.Close();
+        // Below we use DestFileName instead of CurFile.FileName,
+        // so we can set file attributes also for hard links, which do not
+        // have the open CurFile. These strings are the same for other items.
+
+        if (!SetAttrOnly)
+        {
+          // We could preallocate more space that really written to broken file
+          // or file with crafted header.
+          if (Preallocated>0 && (BrokenFile || 
DataIO.CurUnpWrite!=Preallocated))
+            CurFile.Truncate();
+
+
+          CurFile.SetOpenFileTime(
+            Cmd->xmtime==EXTTIME_NONE ? NULL:&Arc.FileHead.mtime,
+            Cmd->xctime==EXTTIME_NONE ? NULL:&Arc.FileHead.ctime,
+            Cmd->xatime==EXTTIME_NONE ? NULL:&Arc.FileHead.atime);
+          CurFile.Close();
+
+          SetFileHeaderExtra(Cmd,Arc,DestFileName);
+
+          CurFile.SetCloseFileTime(
+            Cmd->xmtime==EXTTIME_NONE ? NULL:&Arc.FileHead.mtime,
+            Cmd->xatime==EXTTIME_NONE ? NULL:&Arc.FileHead.atime);
+        }
+        
 #if defined(_WIN_ALL) && !defined(SFX_MODULE)
         if (Cmd->SetCompressedAttr &&
             (Arc.FileHead.FileAttr & FILE_ATTRIBUTE_COMPRESSED)!=0)
-          SetFileCompression(CurFile.FileName,true);
+          SetFileCompression(DestFileName,true);
+        if (Cmd->ClearArc)
+          Arc.FileHead.FileAttr&=~FILE_ATTRIBUTE_ARCHIVE;
 #endif
-        SetFileHeaderExtra(Cmd,Arc,CurFile.FileName);
-
-        CurFile.SetCloseFileTime(
-          Cmd->xmtime==EXTTIME_NONE ? NULL:&Arc.FileHead.mtime,
-          Cmd->xatime==EXTTIME_NONE ? NULL:&Arc.FileHead.atime);
-        if (!Cmd->IgnoreGeneralAttr && 
!SetFileAttr(CurFile.FileName,Arc.FileHead.FileAttr))
-          uiMsg(UIERROR_FILEATTR,Arc.FileName,CurFile.FileName);
+        if (!Cmd->IgnoreGeneralAttr && 
!SetFileAttr(DestFileName,Arc.FileHead.FileAttr))
+          uiMsg(UIERROR_FILEATTR,Arc.FileName,DestFileName);
 
         PrevProcessed=true;
       }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/savepos.hpp new/unrar/savepos.hpp
--- old/unrar/savepos.hpp       2019-10-20 13:20:10.000000000 +0200
+++ new/unrar/savepos.hpp       2019-11-17 13:23:48.000000000 +0100
@@ -14,13 +14,26 @@
     }
     ~SaveFilePos()
     {
-      // If file is already closed by current exception processing,
-      // we would get uneeded error messages and an exception inside of
-      // exception and terminate if we try to seek without checking
-      // if file is still opened. We should not also restore the position
-      // if external code closed the file on purpose.
+      // Unless the file is already closed either by current exception
+      // processing or intentionally by external code.
       if (SaveFile->IsOpened())
-        SaveFile->Seek(SavePos,SEEK_SET);
+      {
+        try
+        {
+          SaveFile->Seek(SavePos,SEEK_SET);
+        }
+        catch(RAR_EXIT)
+        {
+          // Seek() can throw an exception and it terminates process
+          // if we are already processing another exception. Also in C++ 11
+          // an exception in destructor always terminates process unless
+          // we mark destructor with noexcept(false). So we do not want to
+          // throw here. To prevent data loss we do not want to continue
+          // execution after seek error, so we close the file.
+          // Any next access to this file will return an error.
+          SaveFile->Close();
+        }
+      }
     }
 };
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/unpack50.cpp new/unrar/unpack50.cpp
--- old/unrar/unpack50.cpp      2019-10-20 13:20:11.000000000 +0200
+++ new/unrar/unpack50.cpp      2019-11-17 13:23:49.000000000 +0100
@@ -436,6 +436,10 @@
       }
       return SrcData;
     case FILTER_ARM:
+      // 2019-11-15: we turned off ARM filter by default when compressing,
+      // mostly because it is inefficient for modern 64 bit ARM binaries.
+      // It was turned on by default in 5.0 - 5.80b3 , so we still need it
+      // here for compatibility with some of previously created archives.
       {
         uint FileOffset=(uint)WrittenFileSize;
         // DataSize is unsigned, so we use "CurPos+3" and not "DataSize-3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/unrar/version.hpp new/unrar/version.hpp
--- old/unrar/version.hpp       2019-10-20 13:20:11.000000000 +0200
+++ new/unrar/version.hpp       2019-11-17 13:23:49.000000000 +0100
@@ -1,6 +1,6 @@
 #define RARVER_MAJOR     5
 #define RARVER_MINOR    80
-#define RARVER_BETA      3
-#define RARVER_DAY      20
-#define RARVER_MONTH    10
+#define RARVER_BETA      4
+#define RARVER_DAY      17
+#define RARVER_MONTH    11
 #define RARVER_YEAR   2019


Reply via email to