-------- Original Message --------
Subject: X11R7 font server and utilities [LSARC/2008/009 FastTrack timeout
01/14/2008]
Date: Mon, 07 Jan 2008 18:24:19 -0800 (PST)
From: Alan Coopersmith <al...@sac.sfbay.sun.com>
To: LSARC-ext at Sun.COM
CC: xserver-group at Sun.COM


Template Version: @(#)sac_nextcase 1.64 07/13/07 SMI
This information is Copyright 2008 Sun Microsystems
1. Introduction
    1.1. Project/Component Working Name:
         X11R7 font server and utilities
    1.2. Name of Document Author/Supplier:
         Author:  Alan Coopersmith
    1.3  Date of This Document:
        07 January, 2008
4. Technical Description

This project delivers the X11R7 versions of the X font server and
several related X utilities that operate directly on font files,
replacing the current versions based on Sun's fork of X11R6.

Changes that affect all font programs:
--------------------------------------

These programs all utilize the Consolidation Private X font library to
handle the various font file formats and font metadata/index files.
Previously they used the /usr/openwin/server/lib/libfont.so.1
delivered with the Xsun server - this project migrates them to
utilitizing instead the /usr/X11/lib/X11/xserver/libXfont.so.1
delivered with the Xorg server.  While the API's in the two are almost
the same (Sun previously made some changes in our fork which we're not
carrying forward), there are some user-visible effects in terms of the
handling for various font formats.

The old libfont.so.1 included support for the F3 scalable font format.
Support for this format was EOF'ed long ago, but the code never disabled
or removed.  In July 1997, the Solaris 2.6 Release Notes stated:

    Support for F3 fonts and the TypeScaler rasterizer, SunSoft's
    proprietary scalable font technology, is no longer available in
    Solaris 2.6. SunSoft plans to enhance the font technology offering
    in Solaris and has chosen to focus support only on the two
    industry standard font formats:

        * Type1
        * TrueType

    F3 fonts will be removed in releases of Solaris greater than 2.6.
    End-of-Life specifies that in all releases of Solaris greater
    than 2.6 during the next 5 years, the 57 F3 fonts and the
    TypeScaler rasterizer may not necessarily ship with the Solaris
    software but the 57 fonts have to be installed from an optional
    package. The fonts may no longer be found in the End User
    Cluster. Typescaler rasterizer support will continue to be part of
    the window server for the next 5 years. If you want to continue to
    use F3 fonts, you will need to install them from the optional
    package.

The new libXfont does not support this font format, finally carrying out
the final phase of this EOF after 10 years, instead of the promised 5.

The old libfont incorporated a proprietary TrueType engine that Sun
licensed from a third-party for Solaris 2.6 and later.  The new
libXfont replaces this with calls to the open source FreeType library
that handles not only the original TrueType format (.ttf), but adds
support for TrueType Collections files (.ttc) and OpenType format
fonts (.otf) as well.

The old libfont supported CID-keyed PostScript Type 1 Fonts.
These were originally created to support East Asian character sets in
Type 1 fonts, but have since been replaced almost universally by
TrueType and OpenType fonts.   Removal of CID fonts in Solaris was
listed as a future EOF in the Solaris 9 release notes, and the last
known CID fonts shipped in Solaris were removed in s10_48.   X.Org
removed CID font support in X11R7.2, and Xorg in Solaris dropped this
support in the 7.2 integration (PSARC 2007/051).

For character set encoding definitions, the software will use the
tables provided with the new libXfont in /usr/X11/lib/X11/fonts/encodings
instead of the encoding tables provided by the old libfont in
/usr/openwin/lib/X11/fonts/encodings and
/usr/openwin/lib/X11/fonts/TrueType/ttmap.

Since after this project completes, the only consumer of libfont and its
associated files will be Xsun itself, and the X servers based upon it, this
project will move those files from SUNWxwfsw (the X Window System Font
Software package) to SUNWxsun-server.

All the utilities being upgraded will be moved from /usr/openwin/bin to
/usr/X11/bin as part of this migration, with symlinks left for backwards
compatibility.


Individual program changes:
---------------------------

xfs - the X font server:

    X.Org has added several options to xfs, which are mainly useful for
    starting xfs as a standalone daemon, as many Linux distros do, instead
    of utilizing inetd to start it as Solaris defaults to.

    We will support these options, though we only provide an SMF manifest
    for inetd operation, not standalone daemon mode:

     -daemon
          instructs xfs  to  fork  and  go  into  the  background
          automatically at startup.  If this option is not speci-
          fied, xfs will run as a regular process (unless it  was
          built to daemonize by default).  When running as a dae-
          mon, xfs will attempt to create a file /var/run/xfs.pid
          in which it stores its process ID, and will delete that
          file upon exit.

     -nodaemon
          instructs xfs not to daemonize (fork  and  detach  from
          its  controlling  terminal).   This  option only has an
          effect if xfs is built to daemonize by  default,  which
          is not the stock configuration.

     -droppriv
          instructs xfs to attempt to run as user and  group  xfs
          (unless  the  -user  option  is  used).   This has been
          implemented for  security  reasons,  as  xfs  may  have
          undiscovered buffer overflows or other paths for possi-
          ble exploit, both local and remote.   When  using  this
          option, you may also wish to specify no-listen = tcp in
          the config file, which ensures that xfs will not to use
          a  TCP port at all.  By default, xfs runs with the user
          and group IDs of the user who invoked it.

     -user username
          instructs xfs to run as the user username.  See  -drop-
          priv for why this may be desired.  By default, xfs runs
          with the user and group IDs of the user who invoked it.

    A new option has been added to the xfs configuration file as well:

     no-listen (trans-type)
          disables the specified transport  type.   For  example,
          TCP/IP connections can be disabled with:
                  no-listen = tcp

    The previous xfs used the first configuration file found in the list:
        /etc/openwin/fs/fontserver.cfg
        /usr/openwin/lib/X11/fontserver.cfg
    and delivered the default configuration to
    /usr/openwin/lib/X11/fontserver.cfg

    The X11R7 xfs defaults to /usr/lib/X11/fs/config, and delivers its
    default there.   (On Solaris, /usr/lib/X11 is a symlink to /usr/X11/lib.)

    To preserve compatibility and the ability for admins to have site/zone
    specific configuration files in /etc, the xfs delivered by this project
    will use the first configuration file found in the list:    
        /etc/X11/fontserver.cfg
        /usr/X11/lib/X11/fs/config
        /etc/openwin/fs/fontserver.cfg
        /usr/openwin/lib/X11/fontserver.cfg
    The default configuration file will be delivered in
    /usr/X11/lib/X11/fs/config.

    If logging of messages via syslog(3) is enabled (it's off by default),
    the old xfs specified an identifier of "Font Server" and a facility of
    LOG_LOCAL0 - the new xfs uses the identifier "xfs" and LOG_DAEMON.

mkfontscale - create an index of scalable font files for X

    XFree86 introduced, and X11R6.7 later adopted, this program to generate
    the fonts.scale index files that mkfontdir needs to include TrueType and
    Postscript format scalable fonts in fonts.dir files so they may be used
    by the X server and X font server.    Since it overlapped with much of
    the mkfontdir code, it was eventually merged with mkfontdir into a single
    binary, that can now create both the fonts.scale and font.dir index files.
    This project adds mkfontscale to Solaris.   The case materials include
    mkfontscale.man documenting the command line syntax and options.

mkfontdir - create an index of X font files in a directory

    As the functionality of mkfontdir has been subsumed into
    mkfontscale, mkfontdir is now simply a shell script that calls
    mkfontscale with appropriate options.  The previous Solaris
    version only accepted directory names on the command line, but
    this version supports several command line flags.  See the
    mkfontdir.man file in the case materials for details.

makebdf - create bitmap files from scalable F3 or X11/NeWS font files

    As these font formats are no longer supported, this project removes
    /usr/openwin/bin/makebdf and provides no replacement for it.


Release Bindings
----------------
While there are no plans to backport at this time, we believe the addition
of mkfontscale qualifies for patch/update release binding.

For the other changes, since they remove support for EOF'ed font formats, we
are only requesting minor release binding.


Interfaces Imported
-------------------
/usr/X11/lib/X11/xserver/libXfont.so.1
                                Consolidation Private   PSARC 2007/051
fonts.dir & fonts.scale         Standard                PSARC 1992/133
X Font Server protocol          Standard                PSARC 1992/133  
/usr/openwin/bin/xfs            Public                  PSARC 1992/133  
/usr/openwin/bin/mkfontdir      Public                  PSARC 1992/133  
/usr/openwin/bin/makebdf        Public                  PSARC 1992/133

Interfaces Exported
-------------------
/usr/X11/bin/xfs                Committed               [1]
/usr/X11/bin/mkfontdir          Uncommitted             [2]
/usr/X11/bin/mkfontscale        Uncommitted             [3]

/usr/openwin/bin/makebdf        Removed
/usr/openwin/bin/mkfontdir      Obsolete
/usr/openwin/bin/fs             Obsolete
/usr/openwin/bin/xfs            Obsolete


References
----------

All of the following files can be found in the case materials directory:

[1] xfs.man & xfs.man.diff
[2] mkfontdir.man & mkfontdir.man.diff
[3] mkfontscale.man

6. Resources and Schedule
    6.4. Steering Committee requested information
        6.4.1. Consolidation C-team Name:
                X Consolidation / Desktop C-Team
    6.5. ARC review type: FastTrack
    6.6. ARC Exposure: open


-- 
        -Alan Coopersmith-           alan.coopersmith at sun.com
         Sun Microsystems, Inc. - X Window System Engineering


Reply via email to