[RFC]: Breaking out fontconfig and freetype into seperate packages

Harold L Hunt II huntharo@msu.edu
Sat Aug 2 19:23:00 GMT 2003


Nicholas,

That is precisely the kind of info I wanted to see.  You really went 
over and above the call of duty on this one.

I am all for breaking them out into seperate packages.  You have my 
approval to go ahead with this.  We will need to coordinate some testing 
of your new packages with my modified XFree86 packages that have 
freetype and fontconfig removed from them.

As for the defines used in building the server --- that is some great 
information!  I inherited all of that crap and there wasn't much info 
about what was required and what was thrown in for good measure.  There 
also weren't any notes that would help to figure out when certain 
defines were no longer needed.  I would very much appreciate any help 
you can give in using more of the functionality built into Cygwin via 
the removal of extraneous defines.

Lets do this thing.  Let me know when you are ready for the next steps 
and what they are.

Harold

Nicholas Wourms wrote:
> Harold L Hunt II wrote:
> 
>> Nicholas,
>>
>> Can you explain to me what fontconfig and freetype2 are, specifically?
> 
> 
> Freetype2, quoting the homepage [1]:
>      "FreeType 2 is a software font engine that is designed to be small,
>       efficient, highly customizable and portable while capable of
>       producing high-quality output (glyph images)."
>       ...
>       "Note that FreeType2 is a font service and doesn't provide APIs
>        to perform higher-level features, like text layout or graphics
>        processing (e.g. colored text rendering, "hollowing", etc..).
>        However, it greatly simplifies these tasks by providing a simple,
>        easy to use and uniform interface to access the content of font
>        files."
> 
> In other words, freetype2 provides the generic API for reading and 
> preprocessing font files.  It also provides the core engine for certain 
> font-related features (such as hinting, anti-aliasing, & greater 
> multibyte glyph capabilities).  It currently supports:
>      *TrueType fonts (and collections)
>      *Adobe Type 1 fonts
>      *CID-keyed Type 1 fonts
>      *CFF fonts
>      *OpenType fonts (both TrueType and CFF variants)
>      *SFNT-based bitmap fonts
>      *X11 PCF fonts
>      *Windows FNT fonts
>      *BDF fonts (including anti-aliased ones)
>      *PFR fonts
>      *Adobe Type42 fonts (limited support)
> 
> Freetype1 is an older version of freetype2 and is NOT API source or 
> binary compatible with freetype2.  Some applications still depend on it 
> at compile-time, but I don't think XFree86 still does.  Most notable is 
> the fact that its library is libttf* as opposed to libfreetype* in 
> freetype2.
> 
> Fontconfig is a library for configuring and customizing font access. It 
> is the middleware between freetype2 and Xft.  But it also provides 
> equivalent interfaces between freetype2 and other applications.  From 
> the webpage[2]:
> 
> "Fontconfig can:
> 
> *discover new fonts when installed automatically, removing a common
>  source of configuration problems.
> *perform font name substitution, so that appropriate alternative fonts
>  can be selected if fonts are missing.
> *identify the set of fonts required to completely cover a set of
>  languages.
> *have GUI configuration tools built as it uses an XML-based
>  configuration file (though with autodiscovery, we believe this need is
>  minimized).
> *efficiently and quickly find the fonts you need among the set of fonts
>  you have installed, even if you have installed thousands of fonts,
>  while minimizing memory usage.
> *be used in concert with the X Render Extension and FreeType to
>  implement high quality, anti-aliased and subpixel rendered text on a
>  display.
> 
> Fontconfig does not:
> 
> *render the fonts themselves (this is left to FreeType or other
>  rendering mechanisms)
> *depend on the X Window System in any fashion, so that printer only
>  applications do not have such dependencies."
> 
> If you are interested, the XFree86 backend (Xft2) is described in detail 
> on the same page.
> 
>> Do they consist of a couple libraries and some executables?
>> How many files are involved in a package that contains them?
> 
> 
> freetype1, freetype2, & fontconfig each consist of some headers, some 
> shared data, some i18n/l10n crap, and a few utility executables.
> 
> For instance, redhat has the following packages in Shrike(RH9):
> [Note that the freetype1 stuff is included in the freetype2 packages]
> 
> freetype 2.1.3-6:
> -----------------
> /usr/lib/libfreetype.so.6
> /usr/lib/libfreetype.so.6.3.2
> /usr/lib/libttf.so.2
> /usr/lib/libttf.so.2.3.0
> /usr/share/doc/freetype-2.1.3
> /usr/share/doc/freetype-2.1.3/ChangeLog
> /usr/share/doc/freetype-2.1.3/README
> /usr/share/doc/freetype-2.1.3/README.UNX
> /usr/share/doc/freetype-2.1.3/announce
> /usr/share/doc/freetype-2.1.3/docs
> /usr/share/doc/freetype-2.1.3/docs/BUGS
> /usr/share/doc/freetype-2.1.3/docs/BUILD
> /usr/share/doc/freetype-2.1.3/docs/CHANGES
> /usr/share/doc/freetype-2.1.3/docs/DEBUG.TXT
> /usr/share/doc/freetype-2.1.3/docs/FTL.txt
> /usr/share/doc/freetype-2.1.3/docs/GPL.txt
> /usr/share/doc/freetype-2.1.3/docs/INSTALL
> /usr/share/doc/freetype-2.1.3/docs/PATENTS
> /usr/share/doc/freetype-2.1.3/docs/TODO
> /usr/share/doc/freetype-2.1.3/docs/VERSION.DLL
> /usr/share/doc/freetype-2.1.3/docs/cache.html
> /usr/share/doc/freetype-2.1.3/docs/design
> /usr/share/doc/freetype-2.1.3/docs/design/basic-design.png
> /usr/share/doc/freetype-2.1.3/docs/design/design-1.html
> /usr/share/doc/freetype-2.1.3/docs/design/design-2.html
> /usr/share/doc/freetype-2.1.3/docs/design/design-3.html
> /usr/share/doc/freetype-2.1.3/docs/design/design-4.html
> /usr/share/doc/freetype-2.1.3/docs/design/design-5.html
> /usr/share/doc/freetype-2.1.3/docs/design/design-6.html
> /usr/share/doc/freetype-2.1.3/docs/design/detailed-design.png
> /usr/share/doc/freetype-2.1.3/docs/design/hierarchy-example.png
> /usr/share/doc/freetype-2.1.3/docs/design/index.html
> /usr/share/doc/freetype-2.1.3/docs/design/library-model.png
> /usr/share/doc/freetype-2.1.3/docs/design/modules.html
> /usr/share/doc/freetype-2.1.3/docs/design/simple-model.png
> /usr/share/doc/freetype-2.1.3/docs/freetype2
> /usr/share/doc/freetype-2.1.3/docs/freetype2/build-system.html
> /usr/share/doc/freetype-2.1.3/docs/freetype2/demo-programs.png
> /usr/share/doc/freetype-2.1.3/docs/freetype2/drivers-list.png
> /usr/share/doc/freetype-2.1.3/docs/freetype2/index.html
> /usr/share/doc/freetype-2.1.3/docs/freetype2/io-frames.html
> /usr/share/doc/freetype-2.1.3/docs/freetype2/library-compilation.png
> /usr/share/doc/freetype-2.1.3/docs/freetype2/logo1.png
> /usr/share/doc/freetype-2.1.3/docs/freetype2/platform-detection.png
> /usr/share/doc/freetype-2.1.3/docs/freetype2/system-interface.html
> /usr/share/doc/freetype-2.1.3/docs/freetype2/tutorial.html
> /usr/share/doc/freetype-2.1.3/docs/ft2faq.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs
> /usr/share/doc/freetype-2.1.3/docs/glyphs/Image1.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/Image2.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/Image3.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/Image4.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/bbox1.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/bbox2.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/body_comparison.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/bravo_kerned.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/bravo_unkerned.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/clipping.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/down_flow.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-1.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-2.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-3.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-4.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-5.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-6.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/glyphs-7.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/grid_1.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/index.html
> /usr/share/doc/freetype-2.1.3/docs/glyphs/index2.htm
> /usr/share/doc/freetype-2.1.3/docs/glyphs/points_conic.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/points_conic2.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/points_cubic.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/points_segment.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/twlewis1.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/twlewis2.png
> /usr/share/doc/freetype-2.1.3/docs/glyphs/up_flow.png
> /usr/share/doc/freetype-2.1.3/docs/license.txt
> /usr/share/doc/freetype-2.1.3/docs/modules.txt
> /usr/share/doc/freetype-2.1.3/docs/readme.vms
> /usr/share/doc/freetype-2.1.3/docs/reference
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-base_interface.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-basic_types.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-bdf_fonts.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-cache_subsystem.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-computations.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-glyph_management.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-header_file_macros.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-index.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-list_processing.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-mac_specific.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-module_management.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-multiple_masters.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-outline_processing.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-pfr_fonts.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-raster.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-sfnt_names.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-sizes_management.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-system_interface.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-toc.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-truetype_tables.html
> /usr/share/doc/freetype-2.1.3/docs/reference/ft2-type1_tables.html
> /usr/share/doc/freetype-2.1.3/docs/tutorial
> /usr/share/doc/freetype-2.1.3/docs/tutorial/metrics.png
> /usr/share/doc/freetype-2.1.3/docs/tutorial/metrics2.png
> /usr/share/doc/freetype-2.1.3/docs/tutorial/step1.html
> /usr/share/doc/freetype-2.1.3/docs/tutorial/step2.html
> /usr/share/locale/cs/LC_MESSAGES/freetype.mo
> /usr/share/locale/de/LC_MESSAGES/freetype.mo
> /usr/share/locale/es/LC_MESSAGES/freetype.mo
> /usr/share/locale/fr/LC_MESSAGES/freetype.mo
> /usr/share/locale/nl/LC_MESSAGES/freetype.mo
> 
> freetype-devel 2.1.3-6:
> -----------------------
> /usr/bin/freetype-config
> /usr/include/freetype1
> /usr/include/freetype1/freetype
> /usr/include/freetype1/freetype/freetype.h
> /usr/include/freetype1/freetype/fterrid.h
> /usr/include/freetype1/freetype/ftnameid.h
> /usr/include/freetype1/freetype/ftxcmap.h
> /usr/include/freetype1/freetype/ftxerr18.h
> /usr/include/freetype1/freetype/ftxgasp.h
> /usr/include/freetype1/freetype/ftxgdef.h
> /usr/include/freetype1/freetype/ftxgpos.h
> /usr/include/freetype1/freetype/ftxgsub.h
> /usr/include/freetype1/freetype/ftxkern.h
> /usr/include/freetype1/freetype/ftxopen.h
> /usr/include/freetype1/freetype/ftxpost.h
> /usr/include/freetype1/freetype/ftxsbit.h
> /usr/include/freetype1/freetype/ftxwidth.h
> /usr/include/freetype2
> /usr/include/freetype2/freetype
> /usr/include/freetype2/freetype/cache
> /usr/include/freetype2/freetype/cache/ftccache.h
> /usr/include/freetype2/freetype/cache/ftccmap.h
> /usr/include/freetype2/freetype/cache/ftcglyph.h
> /usr/include/freetype2/freetype/cache/ftcimage.h
> /usr/include/freetype2/freetype/cache/ftcmanag.h
> /usr/include/freetype2/freetype/cache/ftcsbits.h
> /usr/include/freetype2/freetype/cache/ftlru.h
> /usr/include/freetype2/freetype/config
> /usr/include/freetype2/freetype/config/ftconfig.h
> /usr/include/freetype2/freetype/config/ftheader.h
> /usr/include/freetype2/freetype/config/ftmodule.h
> /usr/include/freetype2/freetype/config/ftoption.h
> /usr/include/freetype2/freetype/config/ftstdlib.h
> /usr/include/freetype2/freetype/freetype.h
> /usr/include/freetype2/freetype/ftbbox.h
> /usr/include/freetype2/freetype/ftbdf.h
> /usr/include/freetype2/freetype/ftcache.h
> /usr/include/freetype2/freetype/ftchapters.h
> /usr/include/freetype2/freetype/fterrdef.h
> /usr/include/freetype2/freetype/fterrors.h
> /usr/include/freetype2/freetype/ftglyph.h
> /usr/include/freetype2/freetype/ftgzip.h
> /usr/include/freetype2/freetype/ftimage.h
> /usr/include/freetype2/freetype/ftincrem.h
> /usr/include/freetype2/freetype/ftlist.h
> /usr/include/freetype2/freetype/ftmac.h
> /usr/include/freetype2/freetype/ftmm.h
> /usr/include/freetype2/freetype/ftmoderr.h
> /usr/include/freetype2/freetype/ftmodule.h
> /usr/include/freetype2/freetype/ftoutln.h
> /usr/include/freetype2/freetype/ftpfr.h
> /usr/include/freetype2/freetype/ftrender.h
> /usr/include/freetype2/freetype/ftsizes.h
> /usr/include/freetype2/freetype/ftsnames.h
> /usr/include/freetype2/freetype/ftstroker.h
> /usr/include/freetype2/freetype/ftsynth.h
> /usr/include/freetype2/freetype/ftsysio.h
> /usr/include/freetype2/freetype/ftsysmem.h
> /usr/include/freetype2/freetype/ftsystem.h
> /usr/include/freetype2/freetype/fttrigon.h
> /usr/include/freetype2/freetype/fttypes.h
> /usr/include/freetype2/freetype/ftxf86.h
> /usr/include/freetype2/freetype/internal
> /usr/include/freetype2/freetype/internal/autohint.h
> /usr/include/freetype2/freetype/internal/bdftypes.h
> /usr/include/freetype2/freetype/internal/cfftypes.h
> /usr/include/freetype2/freetype/internal/fnttypes.h
> /usr/include/freetype2/freetype/internal/ftcalc.h
> /usr/include/freetype2/freetype/internal/ftcore.h
> /usr/include/freetype2/freetype/internal/ftdebug.h
> /usr/include/freetype2/freetype/internal/ftdriver.h
> /usr/include/freetype2/freetype/internal/ftexcept.h
> /usr/include/freetype2/freetype/internal/ftgloadr.h
> /usr/include/freetype2/freetype/internal/fthash.h
> /usr/include/freetype2/freetype/internal/ftmemory.h
> /usr/include/freetype2/freetype/internal/ftobject.h
> /usr/include/freetype2/freetype/internal/ftobjs.h
> /usr/include/freetype2/freetype/internal/ftstream.h
> /usr/include/freetype2/freetype/internal/fttrace.h
> /usr/include/freetype2/freetype/internal/internal.h
> /usr/include/freetype2/freetype/internal/pcftypes.h
> /usr/include/freetype2/freetype/internal/pfr.h
> /usr/include/freetype2/freetype/internal/psaux.h
> /usr/include/freetype2/freetype/internal/pshints.h
> /usr/include/freetype2/freetype/internal/psnames.h
> /usr/include/freetype2/freetype/internal/sfnt.h
> /usr/include/freetype2/freetype/internal/t1types.h
> /usr/include/freetype2/freetype/internal/t42types.h
> /usr/include/freetype2/freetype/internal/tttypes.h
> /usr/include/freetype2/freetype/t1tables.h
> /usr/include/freetype2/freetype/ttnameid.h
> /usr/include/freetype2/freetype/tttables.h
> /usr/include/freetype2/freetype/tttags.h
> /usr/include/ft2build.h
> /usr/lib/libfreetype.a
> /usr/lib/libfreetype.la
> /usr/lib/libfreetype.so
> /usr/lib/libttf.a
> /usr/lib/libttf.la
> /usr/lib/libttf.so
> /usr/share/aclocal/freetype2.m4
> 
> freetype-utils 2.1.3-6:
> -----------------------
> /usr/bin/fterror
> /usr/bin/ftmetric
> /usr/bin/ftsbit
> /usr/bin/ftstrpnm
> 
> freetype-demos 2.1.3-6:
> -----------------------
> /usr/bin/ftdump
> /usr/bin/ftlint
> /usr/bin/ftmemchk
> /usr/bin/ftmulti
> /usr/bin/ftstring
> /usr/bin/fttimer
> /usr/bin/ftview
> 
> fontconfig 2.1-9:
> -----------------
> /etc/fonts
> /etc/fonts/fonts.conf
> /etc/fonts/fonts.dtd
> /usr/bin/fc-cache
> /usr/bin/fc-list
> /usr/lib/libfontconfig.so.1
> /usr/lib/libfontconfig.so.1.0
> /usr/share/doc/fontconfig-2.1
> /usr/share/doc/fontconfig-2.1/AUTHORS
> /usr/share/doc/fontconfig-2.1/COPYING
> /usr/share/doc/fontconfig-2.1/README
> /usr/share/man/man3/fontconfig.3.gz
> 
> fontconfig-devel 2.1-9:
> -----------------------
> /usr/bin/fontconfig-config
> /usr/include/fontconfig
> /usr/include/fontconfig/fcfreetype.h
> /usr/include/fontconfig/fcprivate.h
> /usr/include/fontconfig/fontconfig.h
> /usr/lib/libfontconfig.so
> /usr/lib/pkgconfig
> /usr/lib/pkgconfig/fontconfig.pc
> 
> However, as a disciple of the packaging gospel according to Charles 
> Wilson, I will be sticking to the system he uses.  This is how I've 
> tentatively split the packages:
> 
> freetype1         - contains core exe's and/or scripts + runtime shared
>                     data + manpages + documentation
> freetype1-contrib - contains extra/non-essential exe's and/or scripts
> freetype1-devel   - contains headers + static&import&libtool archives
>                     + *-config scripts + pkgconfig data
> libttf2           - contains the single runtime dll
> -------------------
> freetype2         - contains core exe's and/or scripts + runtime shared
>                     data + manpages + documentation
> freetype2-contrib - contains extra/non-essential exe's and/or scripts
> freetype2-devel   - contains headers + static&import&libtool archives
>                     + *-config scripts + pkgconfig data
> libfreetype(n)    - contains the single runtime dll (n being the libtool
>                     versioned dll identifier)
> -------------------
> fontconfig        - contains core exe's and/or scripts + runtime shared
>                     data + manpages + documentation
> fontconfig-devel  - contains headers + static&import&libtool archives
>                     + *-config scripts + pkgconfig data
> libfontconfig(n)  - contains the single runtime dll (n being the libtool
>                     versioned dll identifier)
> 
> In addition, I plan to include ttfmkdir, which assists in generating 
> font config files specifically for TTF's.
> 
>> Are any of their libraries linked to from within the standard XFree86 
>> distribution?
> 
> 
> Yes, but the sources are actually contained in xc/extra/freetype2 and 
> xc/extra/fontconfig and there are Imake directives to automagically 
> handle external versions as opposed to internal versions.  This is how 
> the aforementioned vendors do it, by adding the following directives to 
> host.def (or whatever you use for xcompiling)*:
> 
> HasFreetype2  YES
> HasFontconfig YES
> HasExpat      YES
> HasZlib       YES
> 
> The Imake system will look in the standard location under /usr for these 
> libs, so no additional fuss is necessary.  It should be fairly automated 
> from there.  Do make sure to include these directives in the default 
> configuration when installed.
> 
> I also plan to keep abreast of any vendor and/or XFree86 patches to 
> these libs, so there ought to be no negative impact on how XFree86 behaves.
> 
> *Note that I haven't inspected your tree to see what directives you are 
> using, so I might be redundant in some cases.
> 
>> The reason I ask these questions is that I am all for splitting out 
>> fontconfig and freetype2, as long as I can cleanly exclude them from 
>> the packaging scripts and if I don't have to do too much recompiling 
>> when new fontconfig/freetype2 packages are released.
> 
> 
> No problem, I understand.  I anticipate that the installation size will 
> not or only slightly exceed the size for current dependencies.
> I anticipate that the only packages actually required by the core server 
> should be:
> *libfreetype(n)
> *libfontconfig(n)
> 
> If any fonts are installed, then we add to the dependencies (this is 
> because the post-install scripts for the fonts may need to run some of 
> the utilities):
> *freetype2
> *fontconfig
> *ttmkfdir(possibly)
> 
> Finally, I see that the following being dependencies of the XFree86 
> devel package:
> *freetype2-devel
> *fontconfig-devel
> 
> The way the scheme works, even *if* they make horrendous binary 
> incompatible changes to the core libs (thus changing the result of the 
> libtool versioning expression [[CURRENT] - [AGE]]), you'll still be 
> fine.  Since the gospel of packaging according to Chuck dictates that 
> prior runtime library versions must still be available, you need not 
> recompile against the new version until YOU are ready to.  Think 
> ncurses.  Of course, if some incompatibility does slip in without a 
> versioning bump, I can always manually bump it.
> 
> That being said, you'll initially have to recompile against the new 
> libraries since libtool versioning is slightly more sophisticated then 
> Imake versioning (unfortunately), thus meaning the runtime dlls are 
> probably going to have different numerical suffixes.
> 
> Also, a few vendor patches may need to be applied to the core sources 
> now and in the future if there are critical issues with font 
> readability.  Of course, this is at your discretion and definitely at 
> your convience as to when and if you do it.  I guess we can cross that 
> bridge when we come to it.
> 
> Finally, we might want to dll'ize some X libraries which are currently 
> only built static.  I hope (and pray) that we can nip the libXt problem 
> in order to get a shared libXt.  This is currently what prevents me from 
> releasing a new Xaw3d with working shared libs (static is ok).  Still, I 
> don't anticipate the libXt problem to enter into the scenario I'm 
> proposing now.  Also, I noticed that we could probably change some of 
> the defines when we migrated to 1.5.0, most notably is that the alloca 
> interface is now provided by cygwin and cygwin has much more support for 
> widechars.
> 
> Ditch -DNO_ALLOCA and replace with -DINCLUDE_ALLOCA_H for 
> AllocateLocalDefines.
> 
> Ditch "-DUSE_XWCHAR_STRING -DUSE_XMBTOWC" and use "-DHAS_WCHAR_H 
> -DHAS_WCTYPE_H -DHAS_ISW_FUNCS -DNO_WIDEC_H" for XawI18nDefines.
> 
> I'd willing to do some careful auditing of our current defines to see 
> what else the cygwin dll is providing that we aren't taking advantage 
> of.  Of course, I'll leave that for future discussions.
> 
>> Answer those questions and we can think about it.
>>
> 
> I hope my response was detailed and concise enough to alleviate any 
> fears.  I look forward to further discussion.
> 
> The good news is, that by using the most current of these libraries, 
> most newer versions of our included windowmanagers will support using 
> the truetype fonts found on every Windows box.  Openbox, WindowMaker, 
> and lesstif all have some base support for these libs.  Unfortunately, 
> the older fontconfig distributed with 4.3.0.1 had some pretty notorious 
> issues, but it is too long of a story to get into about why XFree86 is 
> so slow to update (This centers around the whole Keith 
> Packard/XFree86-core falling out).
> 
> Cheers,
> Nicholas
> 
> [1] http://freetype.sourceforge.net/freetype2/index.html#features
> [2] http://fontconfig.org/
> 



More information about the Cygwin-apps mailing list