<?xml version="1.0" encoding="utf-8" ?>
<!-- vim: sta et sw=2
-->
<sect1 id="changes">
<sect1info>
<abstract role="texinfo-node">
<para>Changes to the package between releases</para>
</abstract>
</sect1info>
<title>Release history</title>
<indexterm><primary>change log</primary></indexterm>
<indexterm><primary>history</primary></indexterm>
<indexterm><primary>release history</primary></indexterm>
<indexterm><primary>news</primary></indexterm>
<indexterm><primary>bugs</primary></indexterm>
<formalpara id="changes-0.8.8">
<title>docbook2X 0.8.8</title>
<para>
<itemizedlist>
<listitem>
<para>
Errors in the Man-XML and Texi-XML DTD were fixed.
</para>
<para>
These DTDs are now used to validate the output coming
out of the stylesheets, as part of automated testing.
(Validation provides some assurance that the
result of the conversions are correct.)
</para>
</listitem>
<listitem>
<para>
Several rendering errors were fixed after
they had been discovered through automated testing.
</para>
</listitem>
<listitem>
<para>
Two HTML files in the docbook2X documentation were
accidentally omitted in the last release.
They have been added.
</para>
</listitem>
<listitem>
<para>
The pure-XSLT-based man-page conversion now supports
table markup. The implemented was copied from
the one by Michael Smith in the DocBook XSL stylesheets.
Many thanks!
</para>
</listitem>
<listitem>
<para>
As requested by Daniel Leidert,
the man-pages stylesheets now support the
<sgmltag class="element">segmentedlist</sgmltag>,
<sgmltag class="element">segtitle</sgmltag>
and <sgmltag class="element">seg</sgmltag>
DocBook elements.
</para>
</listitem>
<listitem>
<para>
As suggested by Matthias Kievermagel,
docbook2X now supports the <sgmltag class="element">code</sgmltag>
element.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.7">
<title>docbook2X 0.8.7</title>
<para>
<itemizedlist>
<listitem>
<para>
Some stylistic improvements were made
to the man-pages output.
</para>
<para>
This includes fixing a bug that, in some cases, caused
an extra blank line to occur after lists in man pages.
</para>
</listitem>
<listitem>
<para>
There is a new value <literal>utf-8//TRANSLIT</literal>
for the <option>--encoding</option> option
to &db2x_manxml; and &db2x_texixml;.
</para>
</listitem>
<listitem>
<para>
Added <option>-m</option> to &utf8trans; for modifying
(a large number of) files in-place.
</para>
</listitem>
<listitem>
<para>
Added a section to the documentation discussing conversion
performance.
</para>
<para>
There is also a new test script,
<filename>test/mass/test.pl</filename>
that can exercise docbook2X by converting many documents
at one time, with a focus on achieving the fastest
conversion speed.
</para>
</listitem>
<listitem>
<para>
The documentation has also been improved in several places.
Most notably, the
<citerefentry>
<refentrytitle>docbook2X</refentrytitle>
<manvolnum>1</manvolnum>
</citerefentry>
man page has been split into two much more detailed
man pages explaining
man-page conversion and Texinfo conversion separately,
along with a reference of stylesheet parameters.
</para>
<para>
The documentation has also been re-indexed (finally!)
</para>
<para>
Also, due to an oversight, the last release omitted the stylesheet
reference documentation. They are now included again.
</para>
</listitem>
<listitem>
<para>
Craig Ruff’s patches were not integrated correctly in the last
release; this has been fixed.
</para>
</listitem>
<listitem>
<para>
By popular demand, man-page conversion can also be done
with XSLT alone — i.e. no Perl scripts or compiling required,
just a XSLT processor.
</para>
<para>
If you want to convert with pure XSLT, invoke
the XSLT stylesheet in
<filename>xslt/backend/db2x_manxml.xsl</filename>
in lieu of the &db2x_manxml; Perl script.
</para>
</listitem>
<listitem>
<para>
Make the <command>xmlcharmap2utf8trans</command> script
(convert XSLT 2.0 character maps to character maps in utf8trans
format) really work.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.6">
<title>docbook2X 0.8.6</title>
<para>
<itemizedlist>
<listitem>
<para>
Added rudimentary support for <sgmltag>entrytbl</sgmltag>
in man pages; patch by Craig Ruff.
</para>
</listitem>
<listitem>
<para>
Added template for <sgmltag>personname</sgmltag>; patch by Aaron Hawley.
</para>
</listitem>
<listitem>
<para>
Fix a build problem that happened on IRIX; patch by Dirk Tilger.
</para>
</listitem>
<listitem>
<para>
Better rendering of man pages in general. Fixed
an incompatibility with Solaris troff of some generated man pages.
</para>
</listitem>
<listitem>
<para>
Fixed some minor bugs in the Perl wrapper scripts.
</para>
</listitem>
<listitem>
<para>
There were some fixes to the Man-XML and Texi-XML document types.
Some of these changes are backwards-incompatible with previous
docbook2X releases. In particular, Man-XML and Texi-XML now
have their own XML namespaces, so if you were using custom XSLT
stylesheets you will need to add the appropriate namespace
declarations.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.5">
<title>docbook2X 0.8.5</title>
<para>
<itemizedlist>
<listitem>
<para>
Fixed a bug, from version 0.8.4, with the generated Texinfo
files not setting the Info directory information correctly.
(This is exactly the patch that was on the docbook2X Web site.)
</para>
</listitem>
<listitem>
<para>
Fixed a problem with &db2x_manxml; not calling &utf8trans; properly.
</para>
</listitem>
<listitem>
<para>
Added heavy-duty testing to the docbook2X distribution.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.4">
<title>docbook2X 0.8.4</title>
<para>
<itemizedlist>
<listitem>
<para>
There is now an <emphasis>experimental</emphasis>
implementation of &db2x_manxml; and &db2x_texixml; using pure XSLT,
for those who can’t use the Perl one for whatever reason.
See the <filename>xslt/backend/</filename> directory.
Do not expect this to work completely yet.
In particular, tables are not yet available in man pages.
(They are, of course, still available in the Perl
implementation.)
</para>
</listitem>
<listitem>
<para>
Texinfo conversion does not require XSLT extensions anymore!
See <xref linkend="xslt-extensions-move" /> for the full story.
</para>
<para>
As a consequence, &db2x_xsltproc; has been rewritten to be
a Perl wrapper script around the stock &xsltproc_cmd;.
</para>
</listitem>
<listitem>
<para>
The <option>-S</option> option to &db2x_xsltproc;
no longer uses libxml’s hackish “SGML DocBook” parser, but now
calls &sgml2xml;.
The corresponding long option has been renamed to
<option>--sgml</option> from <option>--sgml-docbook</option>.
</para>
</listitem>
<listitem>
<para>
Fixed a heap of bugs — that caused invalid output — in the
XSLT stylesheets, &db2x_manxml; and &db2x_texixml;.
</para>
<para>
Some features such as <sgmltag
class="element">cmdsynopsis</sgmltag>
and <sgmltag class="element">funcsynopsis</sgmltag>
are rendered more nicely.
</para>
</listitem>
<listitem>
<para>
Man-XML and Texi-XML now have DTDs —
these are useful when writing and debugging stylesheets.
</para>
</listitem>
<listitem>
<para>
Added a <option>--plaintext</option> option to &db2x_texixml;.
</para>
</listitem>
<listitem>
<para>
Updates to the docbook2X manual.
Stylesheet documentation is in.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.3">
<title>docbook2X 0.8.3</title>
<para>
<itemizedlist>
<listitem>
<para>
Incorporated Michael Smith’s much-expanded roff character maps.
</para>
</listitem>
<listitem>
<para>
There are some improvements to the stylesheets themselves, here and
there.
</para>
<para>
Also I made the Texinfo stylesheets adapt to the XSLT processor
automatically (with regards to the XSLT extensions). This
might be of interest to anybody wanting to use the stylesheets
with some other XSLT processor (especially SAXON).
</para>
</listitem>
<listitem>
<para>
Fixed a couple of bugs that prevented docbook2X from
working on Cygwin.
</para>
</listitem>
<listitem>
<para>
Fixed a programming error in &utf8trans; that caused it to
segfault. At the same time, I rewrote parts of it
to make it more efficient for large character maps
(those with more than a thousand entries).
</para>
</listitem>
<listitem>
<para>
The Perl component of docbook2X has switched from using
libxml-perl (a SAX1 interface) to XML-SAX (a SAX2 interface).
I had always wanted to do the switch since libxml-perl
is not maintained, but the real impetus this time is
that XML-SAX has a pure Perl XML parser. If you have
difficulties building <classname>XML::Parser</classname>
on Cygwin, like I did, the Perl component will automatically
fall back on the pure Perl parser.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.2">
<title>docbook2X 0.8.2</title>
<para>
<itemizedlist>
<listitem>
<para>
Added support for tables in man pages.
Almost all table features that can be supported with
<command>tbl</command> will work.
The rest will be fixed in a subsequent release.
</para>
</listitem>
<listitem>
<para>
Copied the “gentext” stuff over from Norman Walsh’s XSL stylesheets.
This gives (incomplete) localizations for the same languages
that are supported by the Norman Walsh’s XSL stylesheets.
</para>
<para>
Although incomplete, they should be sufficient for localized
man-page output, for which there are only a few strings
like “Name” and “Synopsis” that need to be translated.
</para>
<para>
If you do make non-English man pages, you will need
to revise the localization files; please send patches
to fix them afterwards.
</para>
</listitem>
<listitem><para>
Rendering of bibliography, and other less common DocBook
elements is broken. Actually, it was probably also
slightly broken before. Some time will be needed to
go through the stylesheets to check/document everything in
it and to add anything that is still missing.
</para></listitem>
<listitem><para>
Added <option>--info</option> option to &db2x_texixml;,
to save typing the <command>makeinfo</command> command.
</para></listitem>
<listitem><para>
Rename <option>--stringparam</option> option
in &db2x_xsltproc; to <option>--string-param</option>,
though the former option name is still accepted
for compatibility.
</para></listitem>
<listitem><para>
Added the stylesheet for generating the XSLT reference
documentation. But the reference documentation is not
integrated into the main docbook2X documentation yet.
</para></listitem>
<listitem><para>
docbook2X no longer uses SGML-based tools to build.
HTML documentation is now built with the DocBook XSL stylesheets.
</para></listitem>
<listitem><para>
Changed the license of this package to the MIT license.
This is in case someone wants to copy snippets of the XSLT stylesheets,
and requiring the resulting stylesheet to be GPL seems too onerous.
Actually there is no real loss since no one wants to hide XSLT source
anyway.
</para></listitem>
<listitem><para>
Switched to a newer version of autoconf.
</para></listitem>
<listitem><para>
Fixes for portability (to non-Linux OSes).
</para></listitem>
<listitem><para>
A number of small rendering bug fixes, as usual.
</para></listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.1">
<title>docbook2X 0.8.1</title>
<para>
<itemizedlist>
<listitem>
<para>
Bug fixes.
</para>
</listitem>
<listitem>
<para>
Texinfo menu generation has been improved: the menus now look almost
as good as human-authored Texinfo pages and include detailed node listings
(<markup>@detailmenu</markup>) also.
</para>
</listitem>
<listitem>
<para>
Added option to process XInclude in &db2x_xsltproc; just like standard
<command>xsltproc</command>.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.8.0">
<title>docbook2X 0.8.0</title>
<para>
<itemizedlist>
<listitem>
<para>
Moved <command>docbook2man-spec.pl</command> to a sister package,
docbook2man-sgmlspl, since it seems to be used quite a lot.
</para>
</listitem>
<listitem>
<para>
There are now XSLT stylesheets for man page conversion, superceding the
&docbook2manxml;. &docbook2manxml; had some neat code in it, but I
fear maintaining two man-page converters will take too much time in the
future, so I am dropping it now instead of later.
</para>
</listitem>
<listitem>
<para>
Fixed build errors involving libxslt headers, etc. that plagued the last
release. The libxslt wrapper (name changed to &db2x_xsltproc;, formerly
called <command>docbook2texi-libxslt</command>) has been
updated for the recent libxslt changes.
Catalog support working.
</para>
</listitem>
<listitem>
<para>
Transcoding output to non-UTF-8 charsets is automatic.
</para>
</listitem>
<listitem>
<para>
Made some wrapper scripts for the two-step conversion process.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.7.0">
<title>docbook2X 0.7.0</title>
<para>
<itemizedlist>
<listitem><para>
More bug squashing and features in XSLT stylesheets and Perl scripts.
Too many to list.
</para></listitem>
<listitem><para>
Added <command>docbook2texi-libxslt</command>, which uses libxslt.
Finally, no more Java is necessary.
</para></listitem>
<listitem><para>
Added a C-based tool to translate UTF-8 characters to arbitrary (byte)
sequences, to avoid having to patch <command>recode</command> every time
the translation changes. However, Christoph Spiel has ported the recode
utf8..texi patch to GNU recode 3.6 if you prefer to use recode.
</para></listitem>
<listitem>
<para>As usual, the documentation has been improved.</para>
<para>The documentation for the XSLT stylesheets can be extracted
automatically. (Caveat: libxslt has a bug which affects this process,
so if you want to build this part of the documentation yourself you must
use some other XSLT processor. There is no <sgmltag
class="element">jrefentry</sgmltag> support in docbook2X yet, so the
reference is packaged in HTML format; this will change in the next
release, hopefully.)
</para>
</listitem>
<listitem><para>
Build system now uses autoconf and automake.
</para></listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.6.9">
<title>docbook2X 0.6.9</title>
<para>
<itemizedlist>
<listitem><para>
Removed old unmaintained code such as <command>docbook2man</command>,
<command>docbook2texi</command>.
Moved Perl scripts to <filename>perl/</filename> directory and did some
renaming of the scripts to saner names.
</para></listitem>
<listitem><para>
Better make system.
</para></listitem>
<listitem><para>
Debugged, fixed the XSLT stylesheets more and added libxslt invocation.
</para></listitem>
<listitem><para>
Cut down the superfluity in the documentation.
</para></listitem>
<listitem><para>
Fixed other bugs in <command>docbook2manxml</command> and the Texi-XML,
Man-XML tools.
</para></listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.6.1">
<title>docbook2X 0.6.1</title>
<para>
<itemizedlist>
<listitem><para>
<command>docbook2man-spec.pl</command> has an option to strip or
not strip letters in man page section names, and xref may now refer to
<sgmltag class="element">refsect<replaceable>n</replaceable></sgmltag>.
I have not personally tested these options, but loosing them
in the interests of release early and often.
</para></listitem>
<listitem><para>
Menu label quirks, <sgmltag class="element">paramdef</sgmltag>
non-conformance, and vertical simplelists with multiple columns fixed in
<command>docbook2texixml</command>.
</para></listitem>
<listitem><para>
Brought <command>docbook2manxml</command> up
to speed. It builds its own documentation now.
</para></listitem>
<listitem><para>
Arcane bugs in <command>texi_xml</command> and <command>man_xml</command>
fixed.
</para></listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.6.0">
<title>docbook2X 0.6.0</title>
<para>
<itemizedlist>
<listitem>
<para>Introduced Texinfo XSLT stylesheets. </para>
</listitem>
<listitem>
<para>
Bugfixes to <command>texi_xml</command> and
<command>docbook2texixml</command>.
</para>
</listitem>
<listitem>
<para>Produced patch to GNU <command>recode</command> which maps Unicode
characters to the corresponding Texinfo commands or characters.
It is in <filename>ucs2texi.patch</filename>.
I have already sent this patch to the maintainer of <command>recode</command>.
</para>
</listitem>
<listitem>
<para>Updated documentation.</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
<formalpara id="changes-0.5.9">
<title>docbook2X 0.5.9</title>
<para>
<itemizedlist>
<listitem>
<para>
Both <command>docbook2texixml</command> transform into intermediate XML
format which closely resembles the Texinfo format, and then another
tool is used to convert this XML to the actual format.
</para>
<para>
This scheme moves all the messy whitespace, newline, and escaping issues
out of the actual transformation code. Another benefit is that other
stylesheets (systems), can be used to do the transformation, and it
serves as a base for transformation to Texinfo from other
DTDs.
</para>
</listitem>
<listitem>
<para>
Texinfo node handling has been rewritten. Node handling used to work
back and forth between IDs and node names, which caused a lot of
confusion. The old code also could not support DocBook
<sgmltag>set</sgmltag>s because it did not keep track of the Texinfo
file being processed.
</para>
<para>
As a consequence, the bug in which <command>docbook2texixml</command> did
not output the <literal>@setinfofile</literal> is fixed.
<sgmltag>xreflabel</sgmltag> handling is also sane now.
</para>
<para>
In the new scheme, elements are referred to by their ID (auto-generated
if necessary). The Texinfo node names are generated before doing the
actual transformation, and subsequent <function>texinode_get</function>
simply looks up the node name when given an element.
</para>
</listitem>
<listitem>
<para>
The stylesheet architecture allows internationalization to be
implemented easily, although it is not done yet.
</para>
</listitem>
<listitem>
<para>
The (non-XML-based) old code is still in the CVS tree, but I’m not
really interested in maintaining it. I’ll still accept patches to them,
and probably will keep them around for reference and porting purposes.
</para>
<para>
There are some changes to the old code base in
this new release; see old change log for details.
</para>
</listitem>
<listitem>
<para>
The documentation has been revised.
</para>
</listitem>
<listitem>
<para>
I am currently rewriting docbook2man using the same transform-to-XML technique.
It’s not included in 0.5.9 simply because I wanted to get the improved
Texinfo tool out quickly.
Additional XSLT stylesheets will be written.
</para>
</listitem>
</itemizedlist>
</para>
</formalpara>
</sect1>