<?xml version="1.0" encoding="utf-8"?>
<!--
   Licensed to the Apache Software Foundation (ASF) under one or more
   contributor license agreements.  See the NOTICE file distributed with
   this work for additional information regarding copyright ownership.
   The ASF licenses this file to You under the Apache License, Version 2.0
   (the "License"); you may not use this file except in compliance with
   the License.  You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and
   limitations under the License.
-->
<!DOCTYPE document
[
<!ELEMENT document (properties?, release+)>
<!ELEMENT properties (title)>
<!ELEMENT title (#PCDATA)>
<!ELEMENT release (action*)>
<!ELEMENT action (#PCDATA)>
<!ATTLIST release
          version CDATA #REQUIRED
          date CDATA #REQUIRED
          description CDATA #IMPLIED>
<!ATTLIST action
          issue CDATA #IMPLIED
          type (add|fix|remove|update) #REQUIRED
          breaks-bwc (true|false) #IMPLIED>
]
>
  <document>
    <properties>
      <title>Apache Compress Ant Library</title>
    </properties>

    <release version="1.1" date="unpublished">
      <action type="update" breaks-bwc="true">
        The Apache Compress Antlib now requires Apache Commons
        Compress 1.3 which in turn requires Java5 at runtime.
        This change allows the Compress Antlib to support Zip64
        extensions.
      </action>
      <action type="add">
        Support for pack200 compression has been added.
      </action>
      <action type="add">
        The new pack200normalize task allows you to prepare JAR
        archives so they can be signed and compressed with pack200 and
        the signature will still be valid after uncompressing them
        again.
      </action>
      <action type="add">
        Read-only support for the Unix dump format has been added in
        the form of an &lt;undump&gt; task and corresponding
        &lt;dumpentry&gt; and &lt;dumpfileset&gt; resources.
      </action>
      <action type="update">
        A new attribute zip64Mode provides finer grained control over
        whether Zip64 extensions will be used in the &lt;zip&gt; task.
      </action>
      <action type="update">
        The &lt;zip&gt; task has a new attribute zip64Mode that
        controls whether Zip64 extended information is written to the
        archive.
      </action>
      <action type="update">
        The &lt;ar&gt; task now optionally suppports writing entries
        with names longer than 16 characters using the BSD variant of
        AR archives.
      </action>
      <action type="add">
        The unarchiving tasks and fileset types share a new attribute
        skipUnreadableEntries that can be used to ignore archive
        entries that Apache Commons Compress knows it cannot handle
        (like encrypted ZIP entries or sparse files in GNU tar
        archives).
      </action>
      <action type="update">
        The preserveLeadingSlashes attribute of the &lt;tar&gt; task
        now works as expected.
      </action>
    </release>
  </document>
