Hello community,

here is the log from the commit of package physfs for openSUSE:Factory checked 
in at 2019-01-08 12:24:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/physfs (Old)
 and      /work/SRC/openSUSE:Factory/.physfs.new.28833 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "physfs"

Tue Jan  8 12:24:09 2019 rev:27 rq:658962 version:3.0.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/physfs/physfs.changes    2017-06-22 
10:40:43.278845343 +0200
+++ /work/SRC/openSUSE:Factory/.physfs.new.28833/physfs.changes 2019-01-08 
12:25:54.972440451 +0100
@@ -1,0 +2,116 @@
+Tue Dec 11 15:12:57 UTC 2018 - [email protected]
+
+- Add physfs-empty_dir_fix.patch (hg a29fef4a20fd, fixes creation 
+  of empty files when a directory doesn't exist)
+- Removed physfs-gcc7.patch (fixed in upstream)
+
+-------------------------------------------------------------------
+Mon Dec 10 17:24:33 UTC 2018 - [email protected]
+
+- Notable changes in 3.0.1:
+  * Trying to use the new mount functions (PHYSFS_mountIo, 
+    PHYSFS_mountMemory, PHYSFS_mountHandle) with a NULL filename 
+    would cause several problems. This now reports an error without
+    mounting. Docs have been corrected to reflect this reality. 
+  * Trying to mounting an archive inside a .zip file with 
+    PHYSFS_mountHandle() would crash with a NULL pointer 
+    dereference. Fixed. 
+  * Trying to access a file in the search path named "." or 
+    ".." no longer succeeds. Previously, this bug meant you could 
+    enumerate (but not access) files in the parent of a mounted 
+    native directory. Trying to open "." or ".." might have crashed 
+    or hung PhysicsFS. This only applies to the literal string "." 
+    or ".."; if there was a '/' char in the path, PhysicsFS would 
+    correctly reject a path with an element named as such. 
+  * Trying to mount a symlink to a directory would 
+    (incorrectly) fail on Unix and Apple platforms instead of 
+    mounting the directory the symlink points to. Fixed. 
+  * Fixed several crashes/hangs that a maliciously-crafted .iso 
+    file could trigger.
+- Notable changes in 3.0.0:
+  * PhysicsFS now is super-easy to build. You can usually just 
+    drop all the C files into your project and compile it with 
+    everything else without any magic configuration step. The CMake
+    file is still there and useful for packaging, etc, but it's 
+    100% optional. 
+  * ZIP files can now use the newer zip64 format. 
+  * ZIP files may be password-protected. As the PkWare specs 
+    specify, each file in the .zip may have a different password, 
+    so you call PHYSFS_openRead(a, "file_that_i_want.txt$PASSWORD")
+    to make it work. Note that this is a wildly insecure way to 
+    protect your app's data, both in how you'd have to manage 
+    passwords and that "traditional" PkWare crypto is not really 
+    hardened anyhow. But if you have a basic password-protected 
+    archive, PhysicsFS can get into it now! 
+  * 7zip support has been rewritten and improved. 
+  * ISO9660 archives are now supported. 
+  * VDF (Gothic/Gothic2) archives are now supported. 
+  * SLB (Independence War) archives are now supported. 
+  * Everything behind the scenes now uses an abstract i/o 
+    interface (PHYSFS_Io) instead of talking directly to files, and 
+    this interface is available to applications. This allows you to 
+    mount anything as an archive that you can wrap in a PHYSFS_Io, 
+    through the new PHYSFS_mountIo() function. The obvious and most 
+    useful implementations are already implemented for you behind 
+    the scenes on top of PHYSFS_Io: PHYSFS_mountMemory() to mount 
+    an archive that's in a block of RAM, and PHYSFS_mountHandle() 
+    to mount from a PHYSFS_File*...that is to say: you now have an 
+    interface to do archives inside archives. 
+  * The abstract interface that PhysicsFS uses to talk to 
+    archives (PHYSFS_Archiver) is now public, so apps can implement 
+    their own archivers and register them into the system. If you 
+    have a custom archive format for your app, you can plug it into 
+    PhysicsFS at runtime without modifying PhysicsFS itself. 
+  * There's now a PHYSFS_getPrefDir() to figure out where it is 
+    safe to write files on a given platform. This is usually a 
+    per-user, per-application space, and should be used instead of 
+    PHYSFS_getUserDir(). It might report something under 
+    ~/Library/Application Support on a Mac, somewhere under AppData 
+    for Windows, or ~/.local/share on Linux, etc. 
+  * There's now a PHYSFS_unmount() to match 2.0.0's 
+    PHYSFS_mount(). 
+  * There's now a PHYSFS_utf8FromUtf16(), so stop using 
+    PHYSFS_utf8FromUcs2().   :) 
+  * There's now PHYSFS_utf8stricmp() for case-insensitive UTF-8 
+    string comparison, in case you need to compare filenames. 
+  * Enumerating files can now report errors, instead of quietly 
+    dropping files when there were problems. Enumeration callbacks 
+    can now return results too ("keep going", "stop enumerating, no 
+    error I just got what I needed", "something went wrong, stop 
+    and return an error to the app"). 
+  * There is now a PHYSFS_stat() call that returns metadata on 
+    a specific file as a whole instead of using 
+    PHYSFS_isDirectory(), PHYSFS_getLastModTime(), etc 
+    separately). 
+  * There's now a PHYSFS_readBytes() function that operates 
+    more like Unix read()...the older PHYSFS_read() operates more 
+    like ANSI C's fread(), but had undefined behavior if it reads 
+    half an object. There is also an equivalent 
+    PHYSFS_writeBytes(). 
+  * Errors are now reported by numeric codes your app can 
+    process (there's a function to turn them into human readable 
+    strings). Apps can set the per-thread error code now, too, 
+    which is useful if you're writing an PHYSFS_Archiver or 
+    PHYSFS_Io. 
+  * The OS/2 port has Unicode support now. 
+  * The Windows port now uses UTF-16 for Unicode instead of 
+    UCS-2, and dropped the ANSI fallbacks (so among other hurdles, 
+    you'll need to bring your own UNICOWS.DLL if you want Win95 
+    support still). 
+  * Lots of improvements, redesigns, bug fixes, corner cases, 
+    and optimizations. 
+  * There's now a buildbot that makes sure this builds across 
+    two dozen different targets on every commit: 
+    https://physfs-buildbot.icculus.org/waterfall 
+  * New platforms: iOS, Android, Emscripten, WinRT (UWP, 
+    Windows Phone, Windows Store), Win64, QNX, Solaris, Hurd, 
+    Debian/kFreeBSD, ArcaOS, probably others. 
+  * Dropped platforms: BeOS (Haiku is still supported), Windows 
+    CE (Windows Phone is supported), Windows 95/98/ME (WinXP and 
+    later are supported) MacOS Classic (macOS and iOS are 
+    supported). Even these might work with minor patches if there's 
+    an urgent demand. 
+  * Probably many other things. This work encompasses many 
+    years of effort and quite a bit of internal redesign.
+
+-------------------------------------------------------------------

Old:
----
  physfs-2.0.3.tar.bz2
  physfs-gcc7.patch

New:
----
  physfs-3.0.1.tar.bz2
  physfs-empty_dir_fix.patch

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

Other differences:
------------------
++++++ physfs.spec ++++++
--- /var/tmp/diff_new_pack.dgE1xt/_old  2019-01-08 12:25:55.468439907 +0100
+++ /var/tmp/diff_new_pack.dgE1xt/_new  2019-01-08 12:25:55.472439903 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package physfs
 #
-# Copyright (c) 2017 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -36,14 +36,14 @@
 your program is running, etc."\
 
 Name:           physfs
-Version:        2.0.3
+Version:        3.0.1
 Release:        0
 Summary:        PhysicsFS file abstraction layer for games
-License:        (LGPL-2.1+ or CPL-1.0) and Zlib
+License:        (LGPL-2.1-or-later OR CPL-1.0) AND Zlib
 Group:          System/Libraries
 Url:            http://www.icculus.org/physfs/
 Source:         http://icculus.org/physfs/downloads/%{name}-%{version}.tar.bz2
-Patch0:         physfs-gcc7.patch
+Patch0:         physfs-empty_dir_fix.patch
 BuildRequires:  cmake
 BuildRequires:  gcc-c++
 BuildRequires:  pkgconfig
@@ -111,7 +111,7 @@
 
 %files -n lib%{name}%{so_nr}
 %defattr(0644,root,root,0755)
-%doc CREDITS.txt INSTALL.txt LICENSE.txt TODO.txt
+%doc docs/CREDITS.txt docs/INSTALL.txt LICENSE.txt docs/TODO.txt
 %{_libdir}/libphysfs.so.%{so_nr}
 %{_libdir}/libphysfs.so.%{version}
 

++++++ physfs-2.0.3.tar.bz2 -> physfs-3.0.1.tar.bz2 ++++++
++++ 127049 lines of diff (skipped)

++++++ physfs-empty_dir_fix.patch ++++++
diff -up physfs-3.0.1/src/physfs.c.orig physfs-3.0.1/src/physfs.c
--- physfs-3.0.1/src/physfs.c.orig      2018-10-05 14:58:25.549372371 -0400
+++ physfs-3.0.1/src/physfs.c   2018-10-05 14:59:30.720938234 -0400
@@ -879,13 +879,20 @@ static DirHandle *openDirectory(PHYSFS_I
 
     if (io == NULL)
     {
+        /* file doesn't exist, etc? Just fail out. */
+        PHYSFS_Stat statbuf;
+        BAIL_IF_ERRPASS(!__PHYSFS_platformStat(d, &statbuf, 1), NULL);
+
         /* DIR gets first shot (unlike the rest, it doesn't deal with files). 
*/
-        retval = tryOpenDir(io, &__PHYSFS_Archiver_DIR, d, forWriting, 
&claimed);
-        if (retval || claimed)
-            return retval;
+        if (statbuf.filetype == PHYSFS_FILETYPE_DIRECTORY)
+        {
+            retval = tryOpenDir(io, &__PHYSFS_Archiver_DIR, d, forWriting, 
&claimed);
+            if (retval || claimed)
+                return retval;
+        } /* if */
 
         io = __PHYSFS_createNativeIo(d, forWriting ? 'w' : 'r');
-        BAIL_IF_ERRPASS(!io, 0);
+        BAIL_IF_ERRPASS(!io, NULL);
         created_io = 1;
     } /* if */
 

Reply via email to