./devel/physfs, Library providing abstract access to various archives

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 2.0.3nb1, Package name: physfs-2.0.3nb1, Maintainer: pkgsrc-users

PhysicsFS is a library to provide abstract access to various
archives. It is intended for use in video games, and the design
was somewhat inspired by Quake 3's file subsystem. The programmer
defines a "write directory" on the physical filesystem. No file
writing done through the PhysicsFS API can leave that write directory,
for security. For example, an embedded scripting language cannot
write outside of this path if it uses PhysFS for all of its I/O,
which means that untrusted scripts can run more safely. Symbolic
links can be disabled as well, for added safety. For file reading,
the programmer lists directories and archives that form a "search
path". Once the search path is defined, it becomes a single,
transparent hierarchical filesystem. This makes for easy access to
ZIP files in the same way as you access a file directly on the
disk, and it makes it easy to ship a new archive that will override
a previous archive on a per-file basis. Finally, PhysicsFS gives
you platform-abstracted means to determine if CD-ROMs are available,
the user's home directory, where in the real filesystem your program
is running, etc.

Master sites:

SHA1: 327308c777009a41bbabb9159b18c4c0ac069537
RMD160: a6122fe69bdb213409dbfc4927c7a5782e063e21
Filesize: 547.488 KB

Version history: (Expand)

CVS history: (Expand)

   2015-11-03 04:29:40 by Alistair G. Crooks | Files touched by this commit (1995)
Log message:
Add SHA512 digests for distfiles for devel category

Issues found with existing distfiles:
No changes made to these distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.
   2015-08-18 09:31:20 by Thomas Klausner | Files touched by this commit (282)
Log message:
Bump all packages that depend on curses.bui* or terminfo.bui* since they
might incur ncurses dependencies on some platforms, and ncurses just bumped
its shlib.
Some packages were bumped twice now, sorry for that.
   2014-07-07 19:01:57 by Jonathan Perkin | Files touched by this commit (1)
Log message:
Continue to disable CD-ROM support on SunOS, missed after the package
converted from autotools to CMake.
   2014-03-31 10:29:44 by Thomas Klausner | Files touched by this commit (6) | Package updated
Log message:
Update to 2.0.3:


- Source code now packaged in a .tar.bz2 instead of .tar.gz.
- Fixed "make docs" for out-of-tree builds.
- No longer builds annoying wxWidgets test program by default.
- Fixed logic bug in UTF-8 string processing.
- Fixed infinite loop on some .zip files with symlinks.
- Enabled CD-ROM support on Haiku OS.
- Fixed Win64 support.
- Fixed OpenBSD support.
- Fixed building of readline support in test program.
- Fixed .zip archiver losing files in some cases.
- Corrected copyright dates in license.
- Other minor tweaks and fixes.


- Fixed building with gcc 4.4.
- Workaround bug with lzma archiver not being able to reopen the same
file twice.
- Fixed reading of /proc/self/exe on Linux when calculating base dir.
Fixes unexpected PHYSFS_init() failures.
- Fixed cross-compiling problems.
- Fixed building with GCC on several platforms that don't support the
-fvisibility=hidden option.
- Added support for building with the Mac OS X 10.6 SDK.
- Fixed latin1-to-utf8 encoding conversion issue.
- Fixed logic error in the OS/2 code.
- Replaced some C++-style comments with C-style equivalents.
- Fixed compiler warning on newer Linux systems.
- Added support for GNU/Hurd.
- Doxygen corrections.
- Setting $HOME to a missing directory on Unix will no longer cause
PHYSFS_init() to fail.
- Improved CD-ROM/DVD-ROM detection for Linux systems.
- Corrected file sharing permissions on Windows and PocketPC.
- Other minor fixes.


PhysicsFS 2.0 offers many improvements over the 1.0 branch.

- New CMake-based build system. The autotools mess is gone, as are all
the specialized project files for various toolchains. We now maintain
one text file that describes the project, and use CMake
(http://www.cmake.org/) to generate real project files from there...it
produces standard Makefiles for most Unixes and BeOS, but also project
files for KDevelop, Xcode, Visual Studio 6/7/8, Watcom, Borland, and
other build tools on Windows and Mac OS X. If your platform or build
tool isn't supported, energy is better spent on enhancing CMake than
creating another project file for PhysicsFS. OS/2 still uses a batch
file to build for now, but everything else is either using CMake or will
be dropped.

- New archiver: lzma support (7zip archives), thanks to Dennis Schridde.

- Unicode support! All PhysicsFS APIs that deal with strings now expect
them to be UTF-8 encoded, and will convert behind the scenes as
appropriate, so eventually your UTF-8 encoded Japanese characters will
become 2-byte WCHAR strings when looking for filenames on a Windows NTFS
disc, etc. Windows will try to use the appropriate codepage on
Win95/98/ME, and use the actual Unicode entry points on NT/XP/Vista,
CFStrings on Mac OS X, etc. The platform layers in PhysicsFS for all
supported OSes are now Unicode clean, except OS/2 (to be considered).
There are new PhysicsFS APIs to provide conversion between some common
character encodings.

- Applications may now supply their own allocators for PhysicsFS to use
internally. If you don't want to supply one, PhysicsFS uses a reasonable
default for the platform (such as malloc() on Unix, or CoreFoundation
APIs on Mac OS X).

- New API: PHYSFS_mount(). This supercedes PHYSFS_addToSearchPath().
This lets you put your archives at specific points in the interpolated
file system. If you have an archive mounted to "/some/subdir" then it
treats it as if every file in that archive is under the /some/subdir
directory (so /path/x.txt will be accessible at
/some/subdir/path/x.txt). Developers can still use
PHYSFS_addToSearchPath() if source/binary compatibility with PhysicsFS
1.0.x is important, and even mix and match calls with PHYSFS_mount().

- New API: PHYSFS_isInit(), to determine if the library is ready for use
when you don't have access to the results of a previous PHYSFS_init() call.

- New API: PHYSFS_symbolicLinksPermitted(), to determine this state when
you don't control the calls to PHYSFS_permitSymbolicLinks().

- Symlinks are now supported on Windows Vista and later:
PHYSFS_isSymbolicLink() and PHYSFS_permitSymbolicLinks() work with the
native filesystem as expected in the new Windows version without losing
binary compatibility with older Windows releases.

- Public headers no longer use size_t, so they work without any system
headers pre-included.

- Internal mutexes are now recursive on all platforms, which means it's
now safe to call most PHYSFS_* functions from inside an enumeration
callback (including performing more enumerations from inside an

- Added unarchiver program as an example application, which actually
does enumerations from inside enumerations.  :)

- Added initial shot at a wxWidgets-based test program, to supersede
test_physfs.c ... still a work in progress.

- Mac OS classic support has been dropped. It could be readded if CMake
is enhanced to support CodeWarrior or MPW, and the code moves from
FSSpec to FSRef functions for Unicode support. Mac OS 8/9 support will
remain in the stable 1.0 branch, and Mac OS X is still, of course, fully
supported everywhere.

- Improvements to support Cygwin, Mingw32, and MSYS.

- Mac OS X now has its own Carbon-based code, split out from unix.c,
which helps with functionality like Unicode and recursive mutexes...the
bits in posix.c are still used on OS X, though.

- OS/2 now builds with Innotek GCC and klibc instead of EMX (although
can probably still work with EMX).

- Most systems can make do with PHYSFS_init(NULL) now (but still should
have argv[0] for cases where they can't!). This includes Linux and
systems that present a Linux-like /proc filesystem with /proc/self/exe ...

- Compiles on BeOS again (was broken in 1.1.0). Haiku is now a supported
target platform as well.

- On GCC 4 and later, will build with -fvisibility=hidden, so the only
symbols exported from the library are the public APIs. This makes the
library smaller and faster when built as a shared library, not to
mention prevents namespace pollution.

- Reduced malloc pressure a little more (see __PHYSFS_smallAlloc() in
physfs_internal.h). More to come.

- Other bug fixes, cleanups, refactoring, and improvements. A LOT of
internal code has changed...you can check the Mercurial repository
history for specific details.
   2013-07-17 14:24:41 by OBATA Akio | Files touched by this commit (6)
Log message:
catch up to changes in Makefile
 (devel/readline/buildlink3.mk => mk/readline.buildlink3.mk)
   2013-07-15 04:02:29 by Ryo ONODERA | Files touched by this commit (177)
Log message:
* .include "../../devel/readline/buildlink3.mk" with USE_GNU_READLINE=yes
  are replaced with .include "../../devel/readline/buildlink3.mk", and
  USE_GNU_READLINE are removed,

* .include "../../devel/readline/buildlink3.mk" without USE_GNU_READLINE
  are replaced with .include "../../mk/readline.buildlink3.mk".
   2012-10-31 12:19:55 by Aleksej Saushev | Files touched by this commit (1460)
Log message:
Drop superfluous PKG_DESTDIR_SUPPORT, "user-destdir" is default these days.
   2012-09-28 11:45:13 by Jonathan Perkin | Files touched by this commit (1)
Log message:
Disable CDROM support on Solaris, it is missing the necessary support.

Fixes package.