Creating an EPUB file with the ZIP module



I'm using the built-in ZIP module to try and build a minimal EPUB file like so:

Rebol [
    Title: "Package The Test Book"
    Date: 5-Feb-2019
    Author: "Christopher Ross-Gill"
    Notes: [
        {Source of Minimal eBook}

zip %Test.epub [
    %mimetype {application/epub+zip}

    %META-INF/container.xml {
        <?xml version="1.0"?>
        <container version="1.0" xmlns="urn:oasis:names:tc:opendocument:xmlns:container">
                <rootfile full-path="OEBPS/content.opf" media-type="application/oebps-package+xml"/>

    %OEBPS/content.opf {
        <?xml version="1.0" encoding="UTF-8" ?>
        <package xmlns="" xmlns:dc="" unique-identifier="db-id" version="3.0">

            <dc:title id="t1">Title</dc:title>
            <dc:identifier id="db-id">isbn</dc:identifier>
            <meta property="dcterms:modified">2014-03-27T09:14:09Z</meta>

            <item id="toc" properties="nav" href="toc.xhtml" media-type="application/xhtml+xml" />
            <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml" />
            <item id="template_css" href="template.css" media-type="text/css" />
            <item id="hello" href="1_hello.xhtml" media-type="application/xhtml+xml" />

        <spine toc="ncx">
            <itemref idref="hello" />


    %OEBPS/toc.xhtml {
        <?xml version="1.0" encoding="utf-8"?>
        <html xmlns="" xmlns:epub="">
        <link href="template.css" rel="stylesheet" type="text/css" />


            <nav id="toc" epub:type="toc">
                <h1 class="frontmatter">Table of Contents</h1>
                <ol class="contents">
                       <li><a href="1_hello.xhtml">Hello</a></li>




    %OEBPS/1_hello.xhtml {
        <?xml version="1.0" encoding="utf-8"?>
        <html xmlns="" xmlns:epub="">
        <link href="template.css" rel="stylesheet" type="text/css" />


            <h1>Hello World!</h1>


    %OEBPS/toc.ncx {
        <?xml version="1.0" encoding="UTF-8" ?>
        <ncx version="2005-1" xml:lang="en" xmlns="">

            <meta name="dtb:uid" content="isbn"/>
            <meta name="dtb:depth" content="1"/>


            <navPoint id="hello" playOrder="1">
                <content src="1_hello.xhtml" />


    %OEBPS/template.css {
        h1 {
          text-align: center;


Currently it doesn't validate.

$ epubcheck Test.epub
FATAL(PKG-008): Test.epub/META-INF/container.xml(-1,-1): Unable to read file 'META-INF/container.xml'.
ERROR(RSC-003): Test.epub/META-INF/container.xml(-1,-1): No rootfile tag with media type 'application/oebps-package+xml' was found in the container.

Check finished with errors
Messages: 1 fatal / 1 errors / 0 warnings / 0 info

epubcheck completed

Nor does the archive unpack as a .zip on MacOS Finder.


Was the result of a simple bug in the call to the zlib wrapper that DEFLATE and INFLATE were doing. Fixed!