OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

office message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [office] RE: Directories in Zip packages


Michael Stahl <michael.x.stahl@oracle.com> wrote on 09/28/2010 08:24:09 
AM:

> one reason why a ZIP producer would create entries for directories is to
> store things like UID/GID and such using various platform specific 
extensions.
> AFAIK Info-Zip can do this.
> 
> of course for an ODF package that kind of thing is completely 
unnecessary.
> But on the other hand using some generic ZIP implementation to modify 
ODF
> packages can be very convenient at times, and if such a generic ZIP
> implementation happens to create entires for directories then IMHO that
> shouldn't make the ODF package invalid or non-conformant.
> 
> [the extra platform specific stuff shouldn't be in a conformant package 
of
> course, IIRC that is what the conformance clauses say.]

I agree that a full, integrated ODF editor is likely to write only the 
minimum necessary entries, so A/B/C.

However, there will continue to ODF consumers and producers that are not 
full editors.  They could be simply programs, say shell scripts that 
unzip, insert files, re-zip.  They could be programs in Perl, Python, 
Ruby, Java, C, etc.  So in many cases the ODF document that you read in 
your editor might have been created or modified using some other ZIP tool, 
perhaps one that creates separate directory entries in the ZIP.

The reason I bring this up is it makes the signing logic non-trivial if we 
say we're going to sign some directory entries but not others.

For example a ZIP with entries:

A/
A/B/
A/B/C
A/B/D/
A/B/D/E/

So the A/B/ directory is not empty because it contains file C

And clearly A/B/D/E/ is an empty directory because it contains nothing.

But what about A/B/D/ ?  It contains only the empty subdirectory A/B/C/E/. 
 So it is not empty, but it only contains empty things.  So is it signed?


-Rob


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]