[Scons-dev] Documentation in EPUB-format
Andrew Featherstone
andrew.featherstone at gmail.com
Sun Oct 13 14:50:24 EDT 2013
On 10/10/2013 12:59 AM, William Deegan wrote:
> All,
>
> On Oct 9, 2013, at 3:38 PM, Andrew Featherstone <andrew.featherstone at cantab.net> wrote:
>
>> 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.
> The ZIPCOMPRESSION is stored in the OverrideEnvironment used for the target, and not on the sources (sadly), in this case.
> Definitely worth filing an enhancement report (bug) on tigris.org.
>
> I'm thinking there's likely an entire class of use cases where storing such on the source rather on the Builder would be useful..
> (forced static library,etc)..
>
> -Bill
> _______________________________________________
> Scons-dev mailing list
> Scons-dev at scons.org
> http://two.pairlist.net/mailman/listinfo/scons-dev
Dirk: I've pushed what I've got so far to
https://bitbucket.org/ajf58/scons_docbook/branch/epub . I've run a basic
Docbook through it and generated an EPUB file that passes the validation
test here http://validator.idpf.org/ . In it's current form there's a
bug in that the files added to the OEBPS directory aren't re-added when
the source files are changed. Is it possible for the action functions
passed to a Command builder to modify target and source lists?
Bill: I can raise an issue there if you think that's sensible. A quick
glance at http://scons.tigris.org/ shows a large number of open tickets.
Is this because issues are tracked elsewhere?
https://bitbucket.org/scons/scons itself seems to be active, and indeed
shows some work using Ghostscript to create EPUB files.
Cheers,
Andrew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://two.pairlist.net/pipermail/scons-dev/attachments/20131013/d61116c8/attachment.html>
More information about the Scons-dev
mailing list