Blame README

Packit 044de2
libwmf-0.2.9 Release Notes
Packit 044de2
--------------------------
Packit 044de2
Packit 044de2
Seeing as wvware.sourceforge.net seems to be dead, but libwmf is still in use
Packit 044de2
and has had a bunch of security bugs reported against, and I've a history with
Packit 044de2
libwmf, I'll call this libwmf 0.2.9 and merge in my (Red Hat) fixes.
Packit 044de2
Packit 044de2
libwmf-0.2.2 Release Notes
Packit 044de2
--------------------------
Packit 044de2
Packit 044de2
While there have been some improvements to text placement and rendering in the
Packit 044de2
X and gd layers, most changes are in the configuration. (It is now possible to
Packit 044de2
build libwmf without any device layers, but this has not been tested extensively
Packit 044de2
and is not recommended for general use.)
Packit 044de2
Packit 044de2
Special thanks to Bob Friesenhahn, Leonard Rosenthol, David C Sterratt and
Packit Service db9f23
Tomasz Kłoczko.
Packit 044de2
Packit 044de2
Hopefully this release will build on Solaris. My apologies to everyone who had
Packit 044de2
problems with libwmf-0.2.1.
Packit 044de2
Packit 044de2
libwmf-0.2.1 Release Notes
Packit 044de2
--------------------------
Packit 044de2
Packit 044de2
In adherence with the ancient philosophy of `It's my birthday and I'll release
Packit 044de2
if I want to,' today, August 22nd 2001, sees the release of libwmf-0.2.1,
Packit 044de2
a.k.a. `The Inspector General's Nose'.
Packit 044de2
Packit 044de2
I was, in fact, tempted to call it version 0.3.0, but I've been calling it
Packit 044de2
0.2.1 for so many preview snapshots that, well, to do otherwise now would seem
Packit 044de2
like a betrayal.
Packit 044de2
Packit 044de2
The most significant change is the introduction of redirectable character
Packit 044de2
output streams (i.e., wmfStream) which should facilitate the writing of WMF
Packit 044de2
importers. - Speaking of which, CVS sodipodi now has optional support for
Packit 044de2
importing WMF, requiring libwmf-0.2.1, and an importer for AbiWord is in the
Packit 044de2
works.
Packit 044de2
Packit 044de2
This has, however, necessitated a slight change in the API, and people who use
Packit 044de2
libwmf in conjuction with wv will need to upgrade to wv-0.7.0 or later.
Packit 044de2
Packit 044de2
Other significant changes are support for a ghostscript-style fontmap and the
Packit 044de2
beginnings of doxygen-generated documentation (which will grow more complete
Packit 044de2
with future releases).
Packit 044de2
Packit 044de2
Otherwise, there has been considerable clean-up, bug-fixes and improvement of
Packit 044de2
both the source and the build system, and some additional functionality,
Packit 044de2
including:
Packit 044de2
(a) The .fig export uses scaling now, and has options to save images as PNG
Packit 044de2
    or JPEG.
Packit 044de2
(b) The .svg export now supports inline (data URI) images and compression to
Packit 044de2
    .svgz (plus sodipodi-specific workarounds).
Packit 044de2
(c) Use of metafile size info., if any (a mixed blessing).
Packit 044de2
Packit 044de2
Special thanks to:
Packit 044de2
(a) Matej Vila, for helping to make libwmf more Debian-friendly;
Packit 044de2
(b) Michael Cree, for helping me to get libwmf working on Tru64;
Packit 044de2
(c) Steve Oney, whose help I have not yet done justice to...
Packit 044de2
Packit 044de2
Thanks also to: Bob Friesenhahn, Michal Jaegermann, Anil Madhavapeddy,
Packit 044de2
Jacqueline Signore, Shuang Wang, Sean Young, and Kees Zeelenberg.
Packit 044de2
Packit 044de2
Finally, having just assumed the mantle of maintainership, I would like to
Packit 044de2
take this opportunity once again to thank Martin Vermeer for all of his work
Packit 044de2
on libwmf.
Packit 044de2
Packit 044de2
Francis James Franklin <fjf@alinameridon.com>                 22nd August, 2001
Packit 044de2
===============================================================================
Packit 044de2
Packit 044de2
Amendment #1
Packit 044de2
------------
Packit 044de2
Packit 044de2
This version of libwmf is now officially part of the wvWare project, available
Packit 044de2
by CVS under the module named `libwmf2'.
Packit 044de2
Packit 044de2
I have added device layers for SVG (W3C's XML-based vector graphic format) and
Packit 044de2
MVG (ImageMagick's proprietary vector graphic format); the X device layer has
Packit 044de2
not been changed and I have no intention of changing it in the near future, but
Packit 044de2
it works. I have also added a device layer for GNU plotutils, but currently it
Packit 044de2
is only a shell, so don't use it.
Packit 044de2
Packit 044de2
The MVG work is based on information supplied by Bob Friesenhahn who did the
Packit 044de2
WMF coder for ImageMagick. (ImageMagick's WMF coder links against libwmf(1),
Packit 044de2
not this version.) I am using version ImageMagick-5.3.3, and I don't know
Packit 044de2
whether earlier (or later) versions will be compatible with the MVG format
Packit 044de2
assumed by libwmf. In fact, I am already finding bugs, particularly with
Packit 044de2
dashed lines... Also, I don't really know how to implement fonts; I suspect
Packit 044de2
ImageMagick could do with some serious hacking on this point...
Packit 044de2
Packit 044de2
Martin Vermeer has added a FIG device layer, so now there are two routes
Packit 044de2
available if anyone wants to *edit* the images as vector graphics:
Packit 044de2
(a) WMF->FIG for editing with xfig;
Packit 044de2
(b) WMF->SVG for editing with, for example, sodipodi (best to get the *very*
Packit 044de2
    latest source for sodipodi; the GNOME-1.4 release and earlier are colour-
Packit 044de2
    blind).
Packit 044de2
Packit 044de2
The svg & magick device layers write all bitmap data as PNG images, using
Packit 044de2
filenames provided via the device layer interface.
Packit 044de2
Packit 044de2
The current version of the GD library subsumed within libwmf is gd-2.0.0, with
Packit 044de2
my additions. This supports 24-bit colour.
Packit 044de2
Packit 044de2
There is some documentation, but the best way to learn how to use the various
Packit 044de2
the device layers is to read the source in src/convert/
Packit 044de2
Packit 044de2
Francis James Franklin <fjf@alinameridon.com>                    13th May, 2001
Packit 044de2
===============================================================================
Packit 044de2
Packit 044de2
This is my own (i.e., unofficial) development version of libwmf which I propose
Packit 044de2
as a candidate for release as (official) libwmf version 0.2.0.
Packit 044de2
Packit 044de2
Although based on Caolan's excellent libwmf, there has been an almost complete
Packit 044de2
restructuring to take libwmf away from it's batch-process origins and make it
Packit 044de2
as well-behaved a library as possible.
Packit 044de2
Packit 044de2
(1) The names have been changed to protect the innocent. All global / external
Packit 044de2
    variables have the prefix `wmf' (or, since the GD library is subsumed
Packit 044de2
    within libwmf, `gd'). With very few exceptions:
Packit 044de2
    (a) functions: wmf_function_name (...)
Packit 044de2
    (b) types:     wmfType, or wmfType_t
Packit 044de2
    (c) macros:    WMF_Macro (...)
Packit 044de2
Packit 044de2
(2) It is my belief that device-layer (e.g., output) implementations should
Packit 044de2
    not need to know anything about wmf files or the interpreter's methods.
Packit 044de2
    In addition, the writing of such device-layers should be made as simple
Packit 044de2
    as possible, though not of course at the expense of image fidelity or
Packit 044de2
    quality.
Packit 044de2
Packit 044de2
    As such, I have crafted a new interface between the interpreter and the
Packit 044de2
    device layer, which I choose to call the `ipa' (as opposed to the `api'
Packit 044de2
    which is the `application / program interface'). There must also be an
Packit 044de2
    interface between the application and the device layer, but this third
Packit 044de2
    interface is independent of the interpreter.
Packit 044de2
Packit 044de2
    Although this may sound unnecessarily complicated, in fact it makes
Packit 044de2
    programming applications or device layers significantly easier.
Packit 044de2
Packit 044de2
(3) With very few exceptions, all function calls refer to a variable of type
Packit 044de2
    `wmfAPI' which incorporates all data associated with a given wmf file.
Packit 044de2
    A final call to wmf_api_destroy frees up all memory allocated during the
Packit 044de2
    initialization and processing of the metafile.
Packit 044de2
Packit 044de2
(4) (a) There is no longer any dependence on temporary files; all processing
Packit 044de2
        of the metafile is performed in-memory or w.r.t. original metafile.
Packit 044de2
    (b) Metafiles can be in-memory if desired; or applications can specify
Packit 044de2
        their own read/seek/tell functions for reading the metafile.
Packit 044de2
Packit 044de2
(5) (a) Xpm dependence & system calls have been removed; libwmf provides
Packit 044de2
        bitmap scaling functionality.
Packit 044de2
    (b) Bitmaps are read using code taken from ImageMagick [?? - are there
Packit 044de2
        licensing issues to be addressed here?]
Packit 044de2
    (c) libwmf now uses freetype (2) for stringwidth calculations, and is
Packit 044de2
        bundled with the standard thirteen ghostscript fonts [?? - are there
Packit 044de2
        licensing issues to be addressed here?]
Packit 044de2
    (d) libwmf incorporates GD (gd-1.8.4 at time of writing) which supports
Packit 044de2
        freetype (2), with some enhancements (filled arcs & clipping).
Packit 044de2
     *  
Packit 044de2
     *  libz, libpng and freetype(2) are the sole required external libraries.
Packit 044de2
     *  
Packit 044de2
Packit 044de2
(6) (a) The build system uses automake and libtool, and the only library
Packit 044de2
        created is `libwmf', which includes the eps and gd device layers and
Packit 044de2
        the GD library as well as the interpreter and api.
Packit 044de2
    (b) Header files are installed in a `libwmf' sub-directory.
Packit 044de2
Packit 044de2
(7) I have added the wmf examples with Tor Lillqvist's plug-in for the Gimp:
Packit 044de2
    http://www.iki.fi/tml/gimp/wmf
Packit 044de2
    [?? - are there licensing issues to be addressed here?]
Packit 044de2
Packit 044de2
Currently the only device layers are eps [eps & ps] and gd [png & jpeg].
Packit 044de2
Implementing more should be relatively straight-forward. I recognize that,
Packit 044de2
until device layers for X, xfig and magick exist, this proposed revision of
Packit 044de2
libwmf is at a disadvantage...
Packit 044de2
Packit 044de2
I have tested only with PPC Linux 2000 and (x86) Linux RH7.
Packit 044de2
Packit 044de2
Francis James Franklin <fjf@alinameridon.com>                   4th March, 2001
Packit 044de2
===============================================================================