[WIDGETS] Zip Support (request for comments)

Hi all,
I'm currently trying to draft up the normative text for the level of
Zip support that the widgets spec should have. For the spec, I'm
trying to base the support for Zip on what is currently available
across various operating systems (Vista, XP, and OSX). I'm basing it
on those OSs for interoperability. The problem I am having is that
there is no formal "standard" for what features of Zip are currently
supported across the "native" OS implementations. The current version
of the zip APPNOTE (6.3.2) [1], has some nice features, but in no way
does it match the reality of what is currently implemented in the
various operating systems. Does anyone know of any definitive
reference of what parts of Zip are implemented across leading OSs?

The other problem is that the Zip spec is a non-normative text that is
periodically being updated. I've also found it difficult to locate
previous version of the specification so it is hard to mandate that
implementers adhere to a particular version of the Zip spec (eg.
version 2.0). Any ideas as to how to spec this (without actually
having to re-spec Zip itself)?

This is what I have got so far...

For the purposes of this specification, A valid Zip file is a data
object that conform to the Zip File Format Specification (version
6.3.2) with the exclusion or support of the following features. In the
event that a widget user agents encouters Zip file that is in error,
the widget user agent must abort any processing of the Zip file and
should inform the end-user with an appropriate localized error dialog:

Zip files must not be split into multiple files or span multiple
volumes. Zip files that are split into multiple files or span multiple
volumes are non-conforming. A widget user agent must treat Zip files
that have been split into multiple files or span multiple volumes as
being in error.

Zip files must be created using the Deflate compression algorithm as
specified in [Zip]. Zip files compressed with any other compression
algorithm are non-conforming. A widget user agent must treat Zip files
created using other compression algorithms as being in error.

A Zip file must not be created using the ZIP64 extensions defined in
Section of the Zip File Format Specification. A widget user agent must
consider Zip files created using ZIP64 extensions as being in error.

A Zip file must not be created using either the Traditional PKWARE
Encryption or Strong Encryption methods, or any other future
encryption method, defined in the Zip File Format Specification.
Widget user agents must treat encrypted Zip files as being in error.

The names of files and directories within a Zip file must be encoded
in US-ASCII within the range [a-z A-Z 0-9, ,. - _]. A Widget user
agent must consider Zip files that contain file or directory names
with characters outside the aforementioned character range as being in
error.

Kind regards,
Marcos

[1]http://www.pkware.com/documents/casestudies/APPNOTE.TXT
-- 
Marcos Caceres
http://datadriven.com.au

Received on Wednesday, 3 October 2007 05:14:42 UTC