OpenJade 1.3.1

Release Notes

OpenJade Project


Table of Contents
Acknowledgements
1. OpenJade 1.3.1 Release Notes
Applications of OpenJade
Obtaining OpenJade
Supported Platforms
Building OpenJade from Source
Binary Distributions
Installation
Support
Version 1.3.1
Version 1.3
Version 1.2.2
Jade Version 1.2.1
List of Tables
1-1. Platforms on which OpenJade is known to build
1-2. OpenJade specific configure options
1-3. Changes for release 1.3.1

Acknowledgements

It goes without saying that the release of OpenJade 1.3.1 is the work of many people and it would be impossible to name everyone who has made some contribution. However, I would particularly like to thank for their patches, testing and feedback: Karl Eichwalder (SuSE), Clive George (LOOK Systems), Markus Hoenika, Francis J. Lacoste, Kogulé Ryo, Leigh Smith (Fink Project), Tim Waugh (Red Hat), and Didier PH Martin.

I would also like to thank sourceforge.net for their great gift of providing CVS, email and the compile farm which have made the task of getting this release ready much easier.

Finally, I must thank my employers, LOOK Systems, for their generosity in allowing me to work on this release, even though I spent much more time on it than I said I would.


Ian Castle 
Yorkshire
England
January 2002


Chapter 1. OpenJade 1.3.1 Release Notes

OpenJade is a suite of tools for validating, processing and applying DSSSL (Document Style Semantics and Specification Language) style sheets to SGML and XML documents.

OpenJade is a project undertaken by the DSSSL community to maintain and extend James Clark's Jade, as well as the related SP suite of SGML/XML processing tools. OpenJade and OpenSP are distributed under the same license as Jade.


Applications of OpenJade

Many different projects, organizations and companies make use of OpenJade to publish documentation. The SGML/XML backend enables the generation of "world wide web ready" documents while the TeX backend allows high quality "ready for press" output to be obtained. The FreeBSD Handbook (second edition) ISBN: 1571763031 is one such example of a book created using OpenJade.

The OpenSP (and SP) library has been used for the basis of a number of projects. The World Wide Web consortium on-line HTML and XHTML validator is based on the SP library.


Obtaining OpenJade

OpenJade is a project hosted at sourceforge.net and is available from the OpenJade web site at http://openjade.sourceforge.net or directly from the OpenJade project page at http://sourceforge.net/projects/openjade

OpenJade is provided in source code form. However as a courtesy to Win32 users where development tools are not always available, a binary release for the Win32 platform is usually available.


Supported Platforms

OpenJade is intended to be as portable as possible. It should be possible to compile and build on most contemporary UNIX type platforms. In addition OpenJade will also build on Microsoft's Win32 based operating systems.

OpenJade is known to compile with both the GNU gcc c++ compiler and Microsoft Visual C++. Other compilers have not been extensively tested.

OpenJade has been successfully built with the following GNU compilers: egcs++ 1.1.2 (g++ 2.91.66), g++ 2.95.3, g++ 3.0.3 and should also compile with g++ 3.1 when it becomes available

OpenJade has been built on a number of architectures including Intel i386 and ia64, Alpha AXP, Sparc, PPC and S/390, S/390x.

The following table details known successful builds

Table 1-1. Platforms on which OpenJade is known to build

Arch.OSCompilerNotes
i386Red Hat Linux 6.2egcs++, gcc 2.95.3 
Red Hat Linux 7.2Red Hat gcc 2.96 
SuSE Linux 7.xgcc 2.95.3 
Mandrake Linux 8.0, 8.1Red Hat gcc 2.96 
Debian GNU/Linux 2.2gcc 2.95.3 
FreeBSD 4.4gcc 2.95.3Use gmake (GNU Make) rather than the default make program.
Microsoft Win32Visual C++ 6.0It is likely that VC++ 4.2 and 5.0 will also work, see build.htm for further details.
Cygwin 1.3.6 Win32gcc 2.95.3Executables and Libraries must be built statically. Later versions of Cygwin should also work.
Alpha AXPSuSE Linux 7.1gcc 2.95.3 
Debian GNU/Linux 2.2gcc 2.95.3 
Digital UNIX 4.0Dgcc 2.95.3Use gmake (GNU Make) rather than the default make program.
ia64SuSE Linux 7.2  
PPCSuSE Linux 7.3gcc 2.95.3 
Mac OS X 10.1 (Darwin 1.4)gcc 2.95.3Use gmake (GNU Make) rather than the default make program.
SparcSuSE Linux 7.3gcc 2.95.3 
Solaris (SunOS 5.8)gcc 2.95.3Use gmake (GNU Make) rather than the default make program. Use configure options --enable-static=yes --enable-shared=no to prevent core dump on startup.
S/390SuSE Linux 7.2gcc 2.95.3 

Please report any successful builds not mentioned above to , including any diffs/patches you have used.


Building OpenJade from Source

OpenJade requires 40Mb to 50Mb of disk space to build. An installation will require around 15Mb to 20Mb depending on architecture.

OpenJade makes use of the GNU software configuration tools (autoconf, libtool, automake etc). The GNU C++ compiler and make utility should also be used. The steps required to build the OpenJade tools (onsgmls, openjade, osgmlnorm, ospam, ospent, osx) and libraries are as follows:

gzip -d openjade-1.3.1.tar.gz | tar xvf -
cd openjade-1.3.1
./configure [options…]
make
You may need to switch to the super user root to complete the installation

make install
If you wish to install man pages for the various commands you should then do

make install-man
The configure script supports many options. These can be displayed using the command

./configure --help
In addition to the standard options, the following table describes options specific to openjade.

Table 1-2. OpenJade specific configure options

OptionDefaultExplanation
--enable-httpNo http supportInclude support for http. This allows the OpenJade tools to be used to validate or process SGML or XML documents directly from the World Wide Web. Example:
onsgmls -s http://www.example.com
--disable-mifMIF support is enableddisable support for FrameMaker MIF output (the -t mif option) to openjade.
--disable-htmlhtml support enableddisable support for HTML+CSS output (the -t html to openjade).
--enable-default-catalog=pathlistNot enabledProvide one or more default catalog files or sysids, e.g. /usr/local/lib/sgml/catalog
--enable-default-search-path=pathlistNot enabledProvide a default value for SGML_SEARCH_PATH

Please refer to the system documentation for details on building on the Win32 platform.


Binary Distributions

Although the OpenJade project does not make binary distributions available, OpenJade has been a part of many software distributions, including the major Linux distributions as well as FreeBSD. Expect pre-compiled and packaged versions of the latest version of OpenJade to be available from your distributor in due course.


Installation

In addition to the OpenJade executables and libraries you will also need various DTDs and stylesheets. Some DTDs and associated files (entity definitions) are available in the pubtext directory of the distribution. However, more authoritative sources should be referenced to ensure that up-to-date versions are used. If you wish to process XML files, then suitable SGML declarations for valid XML documents should be used. Again, a sample set of declarations (xml.dcl) is provided in the pubtext, but more complete or recent versions may be available from other sources.

OpenJade supports the standard SGML catalog facility; it is recommended that you set up and use such a catalog system. Generally speaking you will create your own DSSSL stylesheets for use with OpenJade, however, users of the OASIS DocBook DTD should be aware that extensive, and modular, stylesheets are available from the DocBook project at http://docbook.sourceforge.net.

If you wish to make use of the TeX backend you will require an up to date distribution of laTeX such as teTeX, TeXlive or fpTeX. In addition you will also require the jadetex package, available from http://jadetex.sourceforge.net.


Support

If, after reading the documentation, you still have a problem, then you may require some additional help. The OpenJade project is a volunteer effort and as such does not provide any formal support. Instead, you should look to the community for support. Once part of the community, you, in turn, will be able to play your part in helping those that come after you. Here are some pointers to obtaining help:

  • If you obtained your OpenJade tools in binary form from your operating system distributor and you have a build related problem - such as openjade crashing, then your first port of call should be your distributor.

  • If you have a problem with the usage of openjade and tools, or general queries about DSSSL then you should try the DSSSL mailing list, see http://www.mulberrytech.com/dsssl/dssslist/ for details.

  • If you are using the DocBook DTD and especially if you are also using the Modular DocBook DSSSL stylesheets, then the docbook-apps mailing list is the place to go. See http://www.oasis-open.org/docbook/mailinglist/ for details.

  • If you have a patch or bug fix for OpenJade, or are trying to use the OpenSP API then the openjade-devel mailing list is the appropriate forum.

Please choose only one mailing list to post to, as cross-posting is generally frowned upon. The various mailing lists are archived and searchable. It is always worth searching for your problem first, as it is often the case that someone has had the same problem before.


Version 1.3.1

Released January 2002. This release is primarily a maintenance release. It delivers two key advantages over the OpenJade 1.3 release: Support for contemporary platforms (operating systems and compilers) and incorporates the various patches and improvements, especially to the TeX backend, which have been extensively used over the last few years. Probably the biggest benefit to TeX backend users are the enhanced table support and improved two sided output support (in conjunction with improvements to the companion jadetex package).

The following table details the major improvements in Openjade 1.3.1

Table 1-3. Changes for release 1.3.1

Item 1Support for MacOS X/ Darwin

References

Fink Project; Kogulé, Ryo

Category

Software Bug

Problem

OpenJade 1.3 does not build and run on the Mac OS X/Darwin platform

Resolution

OpenJade 1.3.1 has been enhanced to support Mac OS X/Darwin 1.4. The autoconf configuration system has been upgraded and also includes specific platform support. Some minor code alterations to improve code portability (C++ style changes). Note that the POSIX locale feature is not available on this platform.

Item 2UNIX on-line manual pages

References

None

Category

Documentation Bug

Problem

No on-line manual (man) pages available on UNIX platforms

Resolution

OpenJade 1.3.1 now has a man page for every command. Additionally, if OpenJade is used as a replacement for Jade, then compatibility man pages are included (i.e. man jade is synonymous with man openjade).

Item 3Upgrade GNU source configuration tools

References

Various sourceforge problem reports, SuSE Linux 7.3, Red Hat 7.2, Red Hat Bugzilla #46212

Category

Software Bug

Problem

The source configuration system is based on old versions of libtool and autoconf. In addition, there are problems with the generated Makefile files such that installation directories are not created.

Resolution

Upgraded to autoconf 2.52 and libtool 1.4. Upgraded the various support files. Included elements of automake support. Made the Makefiles more robust. These changes should facilitate porting to new/updated environments (i.e. those supported by newer versions of autoconf). Work has been done to enhance some of the custom autoconf tests to improve reliability.

Item 4Support for XML Byte Order Marks (BOM)

References

Source Forge bug #442560 (Terje Bless/Liam Quinn)

Category

Software Bug

Problem

Since OpenJade 1.3 was released, a second edition of the XML 1.0 specification has been released (REC-xml-20001006). This specification introduced the concept of Byte Order Marks to increase the sophistication of the detection of the character encoding system. OpenJade 1.3 would not recognize these, and rejected any XML file which included these as invalid.

Resolution

XML 1.0 Byte Order Marks are now accepted as valid XML.

Item 5Fix missing white space problem in processing instruction flow object

References

Source Forge Ref #505113, #505124 (Markus Hoenicka)

Category

Software Bug

Problem

No white space was emitted between the public-id and the system-id causing a malformed XML file to be generated.

Resolution

Fixed OpenJade to output a space between the public-id and the system-id.

Item 6Jadetex is now distributed independently

References

None

Category

Software Bug

Problem

OpenJade 1.3 shipped with Jadetex 2.7. Jadetex is developed and released separately from OpenJade.

Resolution

Removed jadetex files. Jadetex can be obtained from http://jadetex.sourceforge.net

Item 7Support for FreeBSD 4.4

References

FreeBSD 4.4 openjade port

Category

Software Bug

Problem

OpenJade 1.3 would not build on FreeBSD 4.x

Resolution

The source configuration system has been enhanced to support FreeBSD out of the box. Note that the POSIX locale feature of OpenJade is not available under FreeBSD.

Item 8Allow non alpha numeric characters in Table of Contents

References

Red Hat Bugzilla #31525

Category

Software Bug

Problem

Certain non alpha-numeric characters (such as $) do not appear correctly in the table of contents. This problem is confined to the TeX backend.

Resolution

Special characters are now correctly escaped in the TeX output file.

Item 9Support for latest Win32 build environments

References

None

Category

Software Bug

Problem

OpenJade 1.3 does not build with Visual C++ 6.0

Resolution

Fix C++ style to be compatible with Visual C++. Update build environment. OpenJade 1.3.1 should run in all Windows 32 environments from Windows 95 through Windows NT to Windows XP.

Item 10Enhancements for Software Packaging

References

SuSE Linux 7.3

Category

Software Bug

Problem

Numerous patches need to be applied to OpenJade 1.3 to enable packages to be built (RPM)

Resolution

Enhance Makefiles to ensure that packages are easy to build (including addition of DESTDIR environment variable). It should now be possible to build RPM packages and BSD ports without resorting to patches.

Item 11Support for newer GNU C++ compilers

References

SuSE Linux 7.3 (Andreas Schwab), Red Hat Linux 7.2, Connectiva Linux

Category

Software Bug

Problem

C++ is a shifting target. New compilers/standards demand changes.

Resolution

Various enhancements to allow OpenJade to build with the new GNU GCC 3.0 and the soon to be released GNU GCC 3.1 c++ compilers

Item 12Support for jadetex 3.4 and greater macros for two sided support

References

Sourceforge patch #439755, http://iNdev.iNsu.COM/openjade/ (Francis J. Lacoste)

Category

Software Bug

Problem

Two Sided output support with the TeX backend is unreliable in OpenJade 1.3 and Jadetex 2.x.

Resolution

Enhance the TeX backend two sided output support and bring into line with advances in the jadetex latex front end. Two extension characteristics are introduced to allow control of two-side and two-side-start-on-right. This also fixes the "blank page at the end of the document" problem. The following new characteristics are available:


  "UNREGISTERED::OpenJade//Characteristic::page-two-side?"

  "UNREGISTERED::OpenJade//Characteristic::two-side-start-on-right?"

Item 13Prevent incorrect generation of ligatures in the TeX Backend

References

Red Hat Bugzilla #11497, #11779

Category

Software Bug

Problem

Certain sequences of characters (such as --) are not correctly escaped in the TeX backend, so that TeX incorrectly creates ligatures out of them (so that -- becomes an em dash —).

Resolution

OpenJade 1.3.1 now correctly escapes these character sequences. This is a particular problem when representing program code where sequences such as -- are often operators.

Item 14Improved time string handling

References

http://iNdev.iNsu.COM/openjade/ (Francis J. Lacoste)

Category

Software Bug

Problem

OpenJade 1.3 does not support the (time<=?) comparison

Resolution

Various bugs fixed in the time string support of OpenJade. It is now possible to compare time, date and datetime. Also partial formats (such as YY-MM-DD, YYYY-MM or HH:MM) are now supported

Item 15Improvements in handling sosofo-append

References

http://iNdev.iNsu.COM/openjade/ (Francis J. Lacoste)

Category

Software Bug

Problem

sosofo-append has problems with memory/stack usage when handling large lists of sosofo

Resolution

The fix optimizes sosofo-append to reduce its memory and stack usage when using it to build long list of sosofo :


    (let loop ( (res (empty-sosofo))
        (nl  (node-list-rest (children (current-node)))))
	    (loop (sosofo-append res (process-node-list
        (node-list-first nl)))
            (node-list-rest nl)))

Item 16Improved Table handling in TeX Backend

References

http://iNdev.iNsu.COM/openjade/ (Francis J. Lacoste)

Category

Software Bug

Problem

Table handling in the TeX backend has numerous problems.

Resolution

Support for tables in the TeX backend has been improved with:

  • Support for nested tables.

  • cell-after-column-margin: and cell-before-column-margin: wasn't really working.

  • Row spanning was broken. This fix only supports 'start row alignment though.

  • Paragraphs in cell spanning multiple column are now working.

  • Support for the row-alignment: characteristic.

  • Support for cell-background? and background-color properties

Item 17Support for 'asis and 'asis-wrap

References

http://iNdev.iNsu.COM/openjade/ (Francis J. Lacoste)

Category

Software Bug

Problem

The lines: characteristic in the paragraph flow object does not support the 'asis and 'asis-wrap values.

Resolution

This adds support for the 'asis and 'asis-wrap values for the paragraph's lines: characteristic.


Version 1.3

Released October 1999. Version 1.3 added many improvements to increase the scope of the implementation of DSSSL. Changes include:

  • The SGML backend will now emit linebreaks when used as -t sgml-raw.

  • Jade can bind variables to arbitrary values on the command line with the -V option.

  • The prlabs1 module of the SGML property set is supported.

  • Style sheet extensions.dsl lists all known external procedures ready for easy inclusion as an external-specification.

  • External procedure with public identifier

    
  "UNREGISTERED::OpenJade//Procedure::expt"
    
    to provide integral powers of quantities.

  • External procedure with public identifier

    
  "UNREGISTERED::OpenJade//Procedure::sgml-parse"
    
    allows to parse w.r.t. an architecture.

  • Jade supports force! for inherited characteristics.

  • Jade supports character properties.

  • Jade supports special-query-expressions.

  • Jade can bind variables to string values on the command line.

  • All standard color spaces supported.

  • Jade ignores duplicate keywords in make expressions, as mandated by DSSSL.

  • External procedure with public identifier

    
  "UNREGISTERED::OpenJade//Procedure::language"
    
    to create a language object by reference to a POSIX locale.

  • Language-dependent procedures of the expression language: language?, current-language, declare-default-language, with-language, define-language, char<?, char>?, char<=?, char>=?, char-ci=?, char-ci<?, char-ci>?, char-ci<=?, char-ci<=?, char-upcase, char-downcase, string-ci=?, string-equiv?, string<?, string>?, string<=?, string>=?, string-ci<?, string-ci>?, string-ci<=?, string-ci>=?.

  • The style-sheet.dtd derived from the DSSSL architecture has been extended (in a backward compatible way) to include the declaration element type forms supported by Jade. The public identifier for the dtd is

    
  "-//OpenJade//DTD DSSSL Style Sheet//EN" 
    

  • char-repertoire, add-name-chars and add-separator-chars declaration element type forms are supported. When given the -s command line flag, Jade doesn't use its built in character repertoire.

  • Most of the derived procedures in the query language: current-root, node-list-reduce, node-list-contains?, node-list-remove-duplicates, node-list-union, node-list-intersection, node-list-difference, node-list-symmetric-difference, node-list-union-map, node-list-some?, node-list-every?, node-list-filter, node-list->list, node-list-tail, node-list-head, node-list-sublist, node-list-count, node-list-last, node-list-property, origin, origin-to-subnode-rel, tree-root, grove-root, source, subtree, subgrove, ancestors, grove-root-path, rsiblings, ipreced, ifollow, grove-before?, sort-in-tree-order, tree-before?, tree-before, property-lookup, select-by-property, select-by-null-property, select-by-missing-property, attribute, referent, q-element, q-class, q-sdata.


Version 1.2.2

Released June 1999. The first release of OpenJade.

Changes in OpenJade 1.2.2

  • The HTML and MIF backends are now enabled by default.

  • The TeX backend has support for PDF bookmarks. This is supported by the new version of jadetex which is included.

  • Predefined character names line-feed and carriage-return for the character numbers 10 and 13.

  • standard-chars and map-sdata-entity declaration element type forms are supported.

  • Style language additions: map-constructor.

  • + and - return a length-spec if any of there arguments is a length-spec.

  • Most of the DSSSL non-core expression language: c...r, assoc, keyword->string, string->keyword, exact?, inexact?, zero?, positive?, negative?, odd?, even?, exp, log, sin, cos, tan, asin, acos, atan, expt, exact->inexact, inexact->exact, quantity->number, string->list, list->string, map, time<?, time>?, time<=?, time>=?.


Jade Version 1.2.1

Released October 1998. Jade 1.2.1 was the final release of jade from James Clark. OpenJade is based on this code base.