[Scons-dev] Documentation in EPUB-format
Andrew Featherstone
andrew.featherstone at cantab.net
Wed Oct 9 18:38:14 EDT 2013
On 10/09/2013 09:18 AM, Dirk Bächle wrote:
> Andrew,
>
> thanks for the update on your progress. Sounds good so far...
>
> On 09.10.2013 00:26, Andrew Featherstone wrote:
>> Hi Dirk,
>>
>> Yes my tool takes care of zipping up and formatting the container
>> correctly. Unfortunately the SCons Zip builder method doesn't support
>> source files with different compression types; perhaps that's a
>> separate feature that could be added. For now I'm using the Python
>> zipfile module directly and achieving what's required.
>>
>
> I had a look at the Zip Builder too. From what I understood you should
> be able to call it repeatedly, such that you append files to an
> already existing archive. Wouldn't this open the possibility of
> specifying different compression modes then?
Whilst that's true, I can't get the desired results. As a simple example
where foo.txt and bar.txt are two files to be compressed using different
compression algorithms
# SConstruct
import zipfile
Zip('out', 'foo.txt', ZIPCOMPRESSION=zipfile.ZIP_STORED)
Zip('out', 'bar.txt', ZIPCOMPRESSION=zipfile.ZIP_DEFLATED)
$ scons
scons: Reading SConscript files ...
scons: *** Two environments with different actions were specified for
the same target: out.zip
Creating a intermediate target doesn't help, as the result is simply
nested zip archives. E.g.
# SConstruct
import zipfile
Zip('tmp', 'foo.txt', ZIPCOMPRESSION=zipfile.ZIP_STORED)
Zip('outer', ['bar.txt', 'tmp.zip'], ZIPCOMPRESSION=zipfile.ZIP_DEFLATED)
results in outer.zip containing bar.txt compressed using the deflate
algorithm, and an archive containing a single uncompressed foo.txt.
>
>
> The EPUB recipes on the Internet that I found used the simple "zip
> -X9rD OEBPS" to archive the stuff together. So I'm wondering whether
> it's really required to support special compression settings...
>
My understanding of the specification is that the mimetype file needs to
be uncompressed. See
http://www.idpf.org/epub/30/spec/epub30-ocf.html#sec-zip-container-mime
. It's permitted for all files to be uncompressed, but that results in
needlessly large EPUB files. I imagine that lots of EPUB readers are
designed to be tolerant of recipes that compress everything, despite it
being against the specification.
Regards,
Andrew
More information about the Scons-dev
mailing list