[Xfce4-commits] r22552 - xarchiver/branches/xarchiver-psybsd/libxarchiver

Benedikt Meurer benedikt.meurer at unix-ag.uni-siegen.de
Fri Jul 28 15:42:30 CEST 2006

Stephan Arts wrote:
> Author: stephan
> Date: 2006-07-28 13:33:20 +0000 (Fri, 28 Jul 2006)
> New Revision: 22552
> Modified:
>    xarchiver/branches/xarchiver-psybsd/libxarchiver/archive-support.c
> Log:
> Added path-suffix check for tar detection. (traditional tar missing magic-nr)

Just an idea, but if you are going to rewrite xarchiver anyway, why not
simply use libarchive (the library that drives various tar/pax/cpio
implementations) for the supported formats? Of course this will require
threading the loading, extracting and creation of archives, but on the
other hand you don't need to fiddle with command line tools that all
have different semantics on various platforms for the most common
archive formats.

Currently, the library automatically detects and reads the following:
  * gzip compression
  * bzip2 compression
  * compress/LZW compression
  * GNU tar format (including GNU long filenames, long link names, and
    sparse files)
  * Solaris 9 extended tar format (including ACLs)
  * Old V7 tar archives
  * POSIX ustar
  * POSIX pax interchange format
  * POSIX octet-oriented cpio
  * SVR4 ASCII cpio
  * Binary cpio (big-endian or little-endian)
  * ISO9660 CD-ROM images (with optional Rockridge extensions)
  * ZIP archives (with uncompressed or "deflate" compressed entries)

The library can write:
  * gzip compression
  * bzip2 compression
  * POSIX ustar
  * POSIX pax interchange format
  * "restricted" pax format, which will create ustar archives except for
    entries that require pax extensions (for long filenames, ACLs, etc).
  * POSIX octet-oriented cpio
  * shar archives

The library is under a BSD license, so you can easily include it in
xarchiver tarball and use the included version if the system is missing
a copy of libarchive or its header files.


More information about the Xfce4-dev mailing list