6654393 Upgrade libfreetype to 2.3.5
authorStefan Teleman <Stefan.Teleman@Sun.COM>
Fri, 22 Feb 2008 15:07:27 -0800
changeset 325 ab2a98db8d31
parent 324 f645da0bdd43
child 326 db53d7d95c65
6654393 Upgrade libfreetype to 2.3.5 6654835 Replace iceauth with Xorg Open Source version of iceauth 6654836 libICE should be replaced with the Open Source version from X.org 6654837 libSM should be replaced by the Open Source version delivered by X.org
open-src/app/Makefile
open-src/app/iceauth/Makefile
open-src/lib/Makefile
open-src/lib/freetype/CVE-2007-2754.patch
open-src/lib/freetype/Makefile
open-src/lib/freetype/freetype-2.3.5.configure.patch
open-src/lib/freetype/freetype-2.3.5.freetype.h.patch
open-src/lib/freetype/freetype-2.3.5.ftoption.h.patch
open-src/lib/freetype/freetype-2.3.5.ttgload.c.patch
open-src/lib/freetype/freetype-2.3.5.ttinterp.c.patch
open-src/lib/freetype/freetype-2.3.5.ttinterp.h.patch
open-src/lib/freetype/freetype-2.3.5.ttobjs.c.patch
open-src/lib/freetype/freetype-2.3.5.ttobjs.h.patch
open-src/lib/freetype/freetype-config.patch
open-src/lib/libICE/Makefile
open-src/lib/libICE/icetrans.c.patch
open-src/lib/libICE/spec/ICE.spec
open-src/lib/libICE/spec/versions
open-src/lib/libSM/Makefile
open-src/lib/libSM/libsm.SMlibint.h.patch
open-src/lib/libSM/libsm.globals.h.patch
open-src/lib/libSM/libsm.sm_client.c.patch
open-src/lib/libSM/libsm.sm_manager.c.patch
open-src/lib/libSM/spec/SM.spec
open-src/lib/libSM/spec/versions
packages/SUNWfreetype2/prototype
packages/SUNWxwice/prototype
packages/SUNWxwinc/prototype
packages/SUNWxwplt/prototype_com
--- a/open-src/app/Makefile	Fri Feb 22 14:58:31 2008 -0800
+++ b/open-src/app/Makefile	Fri Feb 22 15:07:27 2008 -0800
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.28	08/02/22
+# @(#)Makefile	1.29	08/02/22
 #
 ###############################################################################
 
@@ -37,6 +37,7 @@
 	bitmap \
 	constype \
 	editres \
+	iceauth \
 	listres \
 	mesa-demos \
 	mkfontscale \
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/app/iceauth/Makefile	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,59 @@
+###############################################################################
+#
+# iceauth 1.x Makefile
+#
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+# 
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+#
+# @(#)Makefile	1.2	08/02/21
+#
+
+# this ./configure wants bash not /bin/sh
+
+SHELL = /bin/bash
+MAKESHELL = /bin/bash
+
+# Package name used in tarballs
+APP_NAME=iceauth
+
+# Version number (used in path names)
+APP_VERS=1.0.2
+
+# Patches to apply to source after unpacking, in order
+SOURCE_PATCHES =
+
+# Man pages to apply Sun footer to & attributes to list
+SUNTOUCHED_MANPAGES=*.man
+SUNTOUCH_MAN_FLAGS= \
+ -a '{Availability, SUNWxplt} {Interface Stability, Committed}'
+
+# Need to link with lib in server private directory
+APP_ADD_LDFLAGS=-L$(PROTODIR)$(X11_SERVERLIBS_DIR)$(ARCHLIBSUBDIR) -lX11 -lICE
+
+include ../Makefile.inc
+
--- a/open-src/lib/Makefile	Fri Feb 22 14:58:31 2008 -0800
+++ b/open-src/lib/Makefile	Fri Feb 22 15:07:27 2008 -0800
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.12	08/01/20
+# @(#)Makefile	1.13	08/02/21
 #
 ###############################################################################
 
@@ -38,6 +38,8 @@
 	libxtrans \
 	libXau \
 	libXdmcp \
+	libICE \
+	libSM \
 	libfontenc \
 	libXmu \
 	libXpm \
--- a/open-src/lib/freetype/CVE-2007-2754.patch	Fri Feb 22 14:58:31 2008 -0800
+++ b/open-src/lib/freetype/CVE-2007-2754.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -1,35 +1,20 @@
-Patch from http://cvs.savannah.nongnu.org/viewvc/freetype2/src/truetype/ttgload.c?root=freetype&r1=1.177&r2=1.178&diff_format=l
-adapted to freetype 2.1.10 source
-
---- src/truetype/ttgload.c	2007-07-31 08:42:26.523963000 -0700
-+++ src/truetype/ttgload.c	2007-08-06 17:47:11.675935000 -0700
-@@ -465,7 +465,11 @@
- 
-     n_points = 0;
-     if ( n_contours > 0 )
-+    {
-       n_points = cont[-1] + 1;
-+      if ( n_points < 0 )
-+        goto Invalid_Outline;
-+    }
- 
-     error = FT_GlyphLoader_CheckPoints( gloader, n_points + 4, 0 );
-     if ( error )
-@@ -771,7 +775,7 @@
-   {
-     FT_GlyphLoader  gloader  = load->gloader;
-     FT_Outline*     outline  = &gloader->current.outline;
--    FT_UInt         n_points = outline->n_points;
-+    FT_Int          n_points = outline->n_points;
- #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
-     FT_UInt         n_ins;
- #endif
-@@ -838,7 +842,7 @@
-       FT_Vector*    deltas;
-       FT_Memory     memory       = load->face->memory;
-       FT_StreamRec  saved_stream = *(load->stream);
--      FT_UInt       i;
-+      FT_Int        i;
+--- src/truetype/ttgload.c	2008-02-21 12:41:14.527300000 -0500
++++ src/truetype/ttgload.c	2008-02-21 12:42:20.925042000 -0500
+@@ -710,7 +710,7 @@
+     FT_GlyphLoader  gloader = loader->gloader;
+     FT_Error        error   = TT_Err_Ok;
+     FT_Outline*     outline;
+-    FT_UInt         n_points;
++    FT_Int          n_points;
  
  
-       /* TT_Vary_Get_Glyph_Deltas uses a frame, thus we have to save */
+     outline  = &gloader->current.outline;
+@@ -737,7 +737,7 @@
+       /* Deltas apply to the unscaled data. */
+       FT_Vector*  deltas;
+       FT_Memory   memory = loader->face->memory;
+-      FT_UInt     i;
++      FT_Int      i;
+ 
+ 
+       error = TT_Vary_Get_Glyph_Deltas( (TT_Face)(loader->face),
--- a/open-src/lib/freetype/Makefile	Fri Feb 22 14:58:31 2008 -0800
+++ b/open-src/lib/freetype/Makefile	Fri Feb 22 15:07:27 2008 -0800
@@ -2,7 +2,7 @@
 #
 # Freetype 2.x Makefile
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
@@ -30,7 +30,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.69	07/11/27
+# @(#)Makefile	1.70	08/02/21
 #
 
 PWD:sh=pwd
@@ -41,33 +41,49 @@
 BUILD_TYPES_SET=yes
 
 # Version number (used in path names)
-FT_VERS=2.1.10
+FT_VERS=2.3.5
 
 # Source tarball
 SOURCE_TARBALL_NAME=freetype-$(FT_VERS).tar.bz2
 
 # Download site for source
-SOURCE_URL=http://savannah.nongnu.org/download/freetype/$(SOURCE_TARBALL_NAME)
+SOURCE_URL=http://download.savannah.gnu.org/releases/freetype/$(SOURCE_TARBALL_NAME)
 SOURCE_URL_SET=yes
 
 # Patches to apply to source after unpacking, in order
-SOURCE_PATCHES= freetype-$(FT_VERS).patch 6425531.patch 6542352.patch \
-	freetype-$(FT_VERS).hint.patch 6539893.patch,-p1 CVE-2007-2754.patch \
-	freetype-config.patch
+SOURCE_PATCHES= \
+	freetype-config.patch \
+	freetype-2.3.5.ttobjs.h.patch \
+	freetype-2.3.5.ttinterp.h.patch \
+	freetype-2.3.5.ttinterp.c.patch \
+	freetype-2.3.5.ttobjs.c.patch \
+	freetype-2.3.5.ttgload.c.patch \
+	CVE-2007-2754.patch \
+	freetype-2.3.5.ftoption.h.patch \
+	freetype-2.3.5.freetype.h.patch \
+	freetype-2.3.5.configure.patch
 
 # Directory created by unpacking source
 SOURCE_DIR=$(BUILD_DIR)/freetype-$(FT_VERS)
 
 # Where to install freetype files
-FT_prefix=/usr
+FT_prefix=$(PROTODIR)/usr
+FT_bindir=$(FT_prefix)/bin$(LIBSUBDIR)
+FT_libdir=$(FT_prefix)/lib$(LIBSUBDIR)
 
 # Command line options to GNU autoconf configure script
-FT_CFG=--enable-shared=yes --enable-static=no --prefix=$(FT_prefix) \
-	--libdir=$(FT_prefix)/lib$(LIBSUBDIR) \
-	--bindir=$(FT_prefix)/bin$(LIBSUBDIR)
+FT_CFG= --prefix=$(FT_prefix) \
+	--libdir=$(FT_libdir) \
+	--bindir=$(FT_bindir) \
+	--localstatedir=/var \
+	--enable-shared \
+	--disable-static \
+	--disable-libtool-lock \
+	--with-zlib \
+	--with-pic
 
 # Library built in tree
-FT_LIB=$(SOURCE_DIR)/objs/.libs/libfreetype.so.6.3.8
+FT_LIB=$(FT_DIR)/objs/.libs/libfreetype.so.6.3.16
 
 # What to build
 BUILD_TARGETS=$(GNUMAKE) $(FT_LIB)
@@ -78,28 +94,53 @@
 ### Include common rulesets
 include $(TOP)/common/Makefile.inc
 
+# GNU make wants bash
+SHELL = /bin/bash
+
 ### Rules specific to this directory:
 
 # Run configure script (Freetype helpfully does this the first time you call
 # gmake - this isn't normal for autoconf programs)
 $(SOURCE_DIR)/config.mk: $(UNPACK_TARGET)
 	(cd $(SOURCE_DIR) ; \
-	 chmod a+x builds/unix/configure builds/unix/mkinstalldirs builds/unix/install-sh ; \
-	 CC=$(CC) CFLAGS="$(LIB_CFLAGS)" LD="$(CC) $(LIB_CFLAGS) $(LDFLAGS)" \
-	 LDFLAGS="$(LIB_LDFLAGS)" MAKE=$(GNUMAKE) CFG="$(FT_CFG)" \
-	 INSTALL="$(TOP)/common/install-sh -c" CPPROG="cp -p" \
-	 $(GNUMAKE) $(MFLAGS) )
+	chmod a+x builds/unix/configure builds/unix/mkinstalldirs builds/unix/install-sh ; \
+	    SHELL="/bin/bash" \
+	    MAKESHELL="/bin/bash" \
+	    CONFIG_SHELL="/bin/bash" \
+	    CC="$(CC)" \
+	    CXX="$(CXX)" \
+	    CPP="$(CC) -E $(LIB_CFLAGS)" \
+	    CXXCPP="$(CXX) -E $(CXXFLAGS)" \
+	    CFLAGS="$(LIB_CFLAGS)" \
+	    CXXFLAGS="$(LIB_CXXFLAGS)" \
+	    LDFLAGS="$(LIB_LDFLAGS)" \
+	    CFG="$(FT_CFG)" \
+	    LD="$(CC) $(LIB_CFLAGS) $(LIB_LDFLAGS)" \
+	    MAKE=$(GNUMAKE) GNUMAKE=$(GNUMAKE) CFG="$(FT_CFG)" \
+	    INSTALL="$(TOP)/common/install-sh -c" CPPROG="cp -p" \
+	    $(GNUMAKE) )
 
 # Build Freetype
 $(FT_LIB): $(SOURCE_DIR)/config.mk
-	(cd $(SOURCE_DIR) ; LD_OPTIONS="$(LIB_LDFLAGS)" $(GNUMAKE) )
+	(cd $(SOURCE_DIR) ; \
+	    SHELL="/bin/bash" \
+	    MAKESHELL="/bin/bash" \
+	    CONFIG_SHELL="/bin/bash" \
+	    CC="$(CC)" \
+	    CXX="$(CXX)" \
+	    CPP="$(CC) -E $(LIB_CFLAGS)" \
+	    CXXCPP="$(CXX) -E $(CXXFLAGS)" \
+	    CFLAGS="$(LIB_CFLAGS)" \
+	    CXXFLAGS="$(LIB_CXXFLAGS)" \
+	    LDFLAGS="$(LIB_LDFLAGS)" \
+	    MAKE=$(GNUMAKE) GNUMAKE=$(GNUMAKE) \
+	    LDFLAGS="$(LIB_LDFLAGS)" \
+	    CFG="$(FT_CFG)" \
+	    LD="$(CC) $(LIB_CFLAGS) $(LIB_LDFLAGS)" \
+	    INSTALL="$(TOP)/common/install-sh -c" \
+	    $(GNUMAKE) )
 
 install_gen: $(FT_LIB)
-	mkdir -p $(PROTODIR)$(FT_prefix)/bin$(ARCHLIBSUBDIR)
-	(cd $(SOURCE_DIR) ; $(GNUMAKE) prefix=$(PROTODIR)$(FT_prefix) libdir=$(PROTODIR)$(FT_prefix)/lib$(ARCHLIBSUBDIR) bindir=$(PROTODIR)$(FT_prefix)/bin$(ARCHLIBSUBDIR) install )
+	(cd $(SOURCE_DIR) ; $(GNUMAKE) prefix=$(FT_prefix) libdir=$(FT_libdir)$(ARCHLIBSUBDIR) bindir=$(FT_prefix)/bin$(ARCHLIBSUBDIR) install )
+	mkdir -p $(PROTODIR)/usr/bin$(ARCHLIBSUBDIR)
 
-install_64::
-	-/bin/rm -f $(PROTODIR)$(FT_prefix)/lib/64 $(PROTODIR)$(FT_prefix)/bin/64
-	ln -s $(SUBDIR64) $(PROTODIR)$(FT_prefix)/lib/64
-	ln -s $(SUBDIR64) $(PROTODIR)$(FT_prefix)/bin/64
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.configure.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,108 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- builds/unix/configure	2007-07-02 17:41:45.000000000 -0400
++++ builds/unix/configure	2008-02-21 15:16:44.087906000 -0500
+@@ -1,4 +1,4 @@
+-#! /bin/sh
++#! /bin/bash
+ # Guess values for system-dependent variables and create Makefiles.
+ # Generated by GNU Autoconf 2.61 for FreeType 2.3.5.
+ #
+@@ -41,7 +41,7 @@
+ 
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
++  echo "#! /bin/bash" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
+@@ -553,7 +553,7 @@
+ 
+ 
+ # Check that we are running under the correct shell.
+-SHELL=${CONFIG_SHELL-/bin/sh}
++SHELL=${CONFIG_SHELL-/bin/bash}
+ 
+ case X$ECHO in
+ X*--fallback-echo)
+@@ -638,7 +638,7 @@
+     elif (test -f /bin/ksh || test -f /bin/ksh$ac_exeext) &&
+ 	 test "X$CONFIG_SHELL" != X/bin/ksh; then
+       # If we have ksh, try running configure again with it.
+-      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh}
++      ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/bash}
+       export ORIGINAL_CONFIG_SHELL
+       CONFIG_SHELL=/bin/ksh
+       export CONFIG_SHELL
+@@ -680,7 +680,7 @@
+ 	if test "$prev" != 'sed 50q "$0"'; then
+ 	  echo_test_string=`eval $prev`
+ 	  export echo_test_string
+-	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"}
++	  exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/bash}} "$0" ${1+"$@"}
+ 	else
+ 	  # Oops.  We lost completely, so just stick with echo.
+ 	  echo=echo
+@@ -723,7 +723,7 @@
+ subdirs=
+ MFLAGS=
+ MAKEFLAGS=
+-SHELL=${CONFIG_SHELL-/bin/sh}
++SHELL=${CONFIG_SHELL-/bin/bash}
+ 
+ # Identity of this package.
+ PACKAGE_NAME='FreeType'
+@@ -7324,7 +7324,7 @@
+     *64-bit*)
+       case $lt_cv_prog_gnu_ld in
+       yes*) LD="${LD-ld} -m elf64_sparc" ;;
+-      *)    LD="${LD-ld} -64" ;;
++      *)    LD="${LD-ld}" ;;
+       esac
+       ;;
+     esac
+@@ -8434,7 +8434,7 @@
+     # If test is not a shell built-in, we'll probably end up computing a
+     # maximum length that is only half of the actual maximum length, but
+     # we can't tell.
+-    SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
++    SHELL=${SHELL-${CONFIG_SHELL-/bin/bash}}
+     while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \
+ 	       = "XX$teststring") >/dev/null 2>&1 &&
+ 	    new_result=`expr "X$teststring" : ".*" 2>&1` &&
+@@ -21607,7 +21607,7 @@
+ 
+ # The user is always right.
+ if test "${PATH_SEPARATOR+set}" != set; then
+-  echo "#! /bin/sh" >conf$$.sh
++  echo "#! /bin/bash" >conf$$.sh
+   echo  "exit 0"   >>conf$$.sh
+   chmod +x conf$$.sh
+   if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.freetype.h.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,40 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- include/freetype/freetype.h	2007-07-02 17:06:00.000000000 -0400
++++ include/freetype/freetype.h	2008-02-06 19:39:09.295359000 -0500
+@@ -2362,6 +2362,9 @@
+ #define FT_LOAD_FORCE_AUTOHINT               0x20
+ #define FT_LOAD_CROP_BITMAP                  0x40
+ #define FT_LOAD_PEDANTIC                     0x80
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++#define FT_LOAD_USE_FULL_HINTING             0x100
++#endif
+ #define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH  0x200
+ #define FT_LOAD_NO_RECURSE                   0x400
+ #define FT_LOAD_IGNORE_TRANSFORM             0x800
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.ftoption.h.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,49 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- include/freetype/config/ftoption.h	2007-06-26 00:28:12.000000000 -0400
++++ include/freetype/config/ftoption.h	2008-02-06 19:40:48.436807000 -0500
+@@ -458,7 +458,8 @@
+   /*   Do not #undef this macro here, since the build system might         */
+   /*   define it for certain configurations only.                          */
+   /*                                                                       */
+-/* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
++#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
++#define FT_CONFIG_ADD_FULL_HINTING
+ 
+ 
+   /*************************************************************************/
+@@ -505,7 +506,7 @@
+   /*     ...                                                               */
+   /*   }                                                                   */
+   /*                                                                       */
+-#define TT_CONFIG_OPTION_UNPATENTED_HINTING
++/* #define TT_CONFIG_OPTION_UNPATENTED_HINTING */
+ 
+ 
+   /*************************************************************************/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.ttgload.c.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,81 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/truetype/ttgload.c	2007-07-01 08:24:23.000000000 -0400
++++ src/truetype/ttgload.c	2008-02-06 19:35:32.350620000 -0500
+@@ -666,7 +666,15 @@
+       debug = FT_BOOL( !( loader->load_flags & FT_LOAD_NO_SCALE ) &&
+                        ((TT_Size)loader->size)->debug             );
+ 
+-      error = TT_Run_Context( loader->exec, debug );
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++      if ( loader->load_flags & FT_LOAD_USE_FULL_HINTING )
++#endif
++          error = TT_Run_Context( loader->exec, debug );
++#ifdef FT_CONFIG_ADD_FULL_HINTING
++      else
++          error = TT_Err_Ok;
++#endif /* FT_CONFIG_ADD_FULL_HINTING */
++
+       if ( error && loader->exec->pedantic_hinting )
+         return error;
+     }
+@@ -1403,7 +1411,7 @@
+ 
+ 
+         if ( loader->exec )
+-          saved_GS = loader->exec->GS;
++          saved_GS = loader->exec->FT_GS;
+ 
+         FT_GlyphLoader_Add( gloader );
+ 
+@@ -1415,7 +1423,7 @@
+ 
+           /* reinitialize graphics state */
+           if ( loader->exec )
+-            loader->exec->GS = saved_GS;
++            loader->exec->FT_GS = saved_GS;
+ 
+           /* Each time we call load_truetype_glyph in this loop, the   */
+           /* value of `gloader.base.subglyphs' can change due to table */
+@@ -1789,12 +1797,12 @@
+       }
+ 
+       /* see whether the cvt program has disabled hinting */
+-      if ( exec->GS.instruct_control & 1 )
++      if ( exec->FT_GS.instruct_control & 1 )
+         load_flags |= FT_LOAD_NO_HINTING;
+ 
+       /* load default graphics state -- if needed */
+-      if ( exec->GS.instruct_control & 2 )
+-        exec->GS = tt_default_graphics_state;
++      if ( exec->FT_GS.instruct_control & 2 )
++        exec->FT_GS = tt_default_graphics_state;
+ 
+       exec->pedantic_hinting = FT_BOOL( load_flags & FT_LOAD_PEDANTIC );
+       loader->exec = exec;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.ttinterp.c.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,1324 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/truetype/ttinterp.c     2007-07-01 01:41:24.000000000 -0400
++++ src/truetype/ttinterp.c	2007-12-15 08:22:56.138596000 -0500
+@@ -237,8 +237,8 @@
+ #define GUESS_VECTOR( V )                                         \
+   if ( CUR.face->unpatented_hinting )                             \
+   {                                                               \
+-    CUR.GS.V.x = (FT_F2Dot14)( CUR.GS.both_x_axis ? 0x4000 : 0 ); \
+-    CUR.GS.V.y = (FT_F2Dot14)( CUR.GS.both_x_axis ? 0 : 0x4000 ); \
++    CUR.FT_GS.V.x = (FT_F2Dot14)( CUR.FT_GS.both_x_axis ? 0x4000 : 0 ); \
++    CUR.FT_GS.V.y = (FT_F2Dot14)( CUR.FT_GS.both_x_axis ? 0 : 0x4000 ); \
+   }
+ #else
+ #define GUESS_VECTOR( V )
+@@ -585,7 +585,7 @@
+         exec->codeRangeTable[i] = size->codeRangeTable[i];
+ 
+       /* set graphics state */
+-      exec->GS = size->GS;
++      exec->FT_GS = size->FT_GS;
+ 
+       exec->cvtSize = size->cvt_size;
+       exec->cvt     = size->cvt;
+@@ -713,22 +713,22 @@
+     exec->zp1 = exec->pts;
+     exec->zp2 = exec->pts;
+ 
+-    exec->GS.gep0 = 1;
+-    exec->GS.gep1 = 1;
+-    exec->GS.gep2 = 1;
++    exec->FT_GS.gep0 = 1;
++    exec->FT_GS.gep1 = 1;
++    exec->FT_GS.gep2 = 1;
+ 
+-    exec->GS.projVector.x = 0x4000;
+-    exec->GS.projVector.y = 0x0000;
++    exec->FT_GS.projVector.x = 0x4000;
++    exec->FT_GS.projVector.y = 0x0000;
+ 
+-    exec->GS.freeVector = exec->GS.projVector;
+-    exec->GS.dualVector = exec->GS.projVector;
++    exec->FT_GS.freeVector = exec->FT_GS.projVector;
++    exec->FT_GS.dualVector = exec->FT_GS.projVector;
+ 
+ #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
+-    exec->GS.both_x_axis = TRUE;
++    exec->FT_GS.both_x_axis = TRUE;
+ #endif
+ 
+-    exec->GS.round_state = 1;
+-    exec->GS.loop        = 1;
++    exec->FT_GS.round_state = 1;
++    exec->FT_GS.loop        = 1;
+ 
+     /* some glyphs leave something on the stack. so we clean it */
+     /* before a new execution.                                  */
+@@ -1350,7 +1350,7 @@
+ #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
+       if ( CUR.face->unpatented_hinting )
+       {
+-        if ( CUR.GS.both_x_axis )
++        if ( CUR.FT_GS.both_x_axis )
+           CUR.tt_metrics.ratio = CUR.tt_metrics.x_ratio;
+         else
+           CUR.tt_metrics.ratio = CUR.tt_metrics.y_ratio;
+@@ -1358,10 +1358,10 @@
+       else
+ #endif
+       {
+-        if ( CUR.GS.projVector.y == 0 )
++        if ( CUR.FT_GS.projVector.y == 0 )
+           CUR.tt_metrics.ratio = CUR.tt_metrics.x_ratio;
+ 
+-        else if ( CUR.GS.projVector.x == 0 )
++        else if ( CUR.FT_GS.projVector.x == 0 )
+           CUR.tt_metrics.ratio = CUR.tt_metrics.y_ratio;
+ 
+         else
+@@ -1369,9 +1369,9 @@
+           FT_Long  x, y;
+ 
+ 
+-          x = TT_MULDIV( CUR.GS.projVector.x,
++          x = TT_MULDIV( CUR.FT_GS.projVector.x,
+                          CUR.tt_metrics.x_ratio, 0x4000 );
+-          y = TT_MULDIV( CUR.GS.projVector.y,
++          y = TT_MULDIV( CUR.FT_GS.projVector.y,
+                          CUR.tt_metrics.y_ratio, 0x4000 );
+           CUR.tt_metrics.ratio = TT_VecLen( x, y );
+         }
+@@ -1551,7 +1551,7 @@
+     FT_ASSERT( !CUR.face->unpatented_hinting );
+ #endif
+ 
+-    v = CUR.GS.freeVector.x;
++    v = CUR.FT_GS.freeVector.x;
+ 
+     if ( v != 0 )
+     {
+@@ -1562,7 +1562,7 @@
+       zone->tags[point] |= FT_CURVE_TAG_TOUCH_X;
+     }
+ 
+-    v = CUR.GS.freeVector.y;
++    v = CUR.FT_GS.freeVector.y;
+ 
+     if ( v != 0 )
+     {
+@@ -1604,14 +1604,14 @@
+     FT_ASSERT( !CUR.face->unpatented_hinting );
+ #endif
+ 
+-    v = CUR.GS.freeVector.x;
++    v = CUR.FT_GS.freeVector.x;
+ 
+     if ( v != 0 )
+       zone->org[point].x += TT_MULDIV( distance,
+                                        v * 0x10000L,
+                                        CUR.F_dot_P );
+ 
+-    v = CUR.GS.freeVector.y;
++    v = CUR.FT_GS.freeVector.y;
+ 
+     if ( v != 0 )
+       zone->org[point].y += TT_MULDIV( distance,
+@@ -2191,8 +2191,8 @@
+ #endif
+ 
+     return TT_DotFix14( dx, dy,
+-                        CUR.GS.projVector.x,
+-                        CUR.GS.projVector.y );
++                        CUR.FT_GS.projVector.x,
++                        CUR.FT_GS.projVector.y );
+   }
+ 
+ 
+@@ -2217,8 +2217,8 @@
+                          FT_Pos  dy )
+   {
+     return TT_DotFix14( dx, dy,
+-                        CUR.GS.dualVector.x,
+-                        CUR.GS.dualVector.y );
++                        CUR.FT_GS.dualVector.x,
++                        CUR.FT_GS.dualVector.y );
+   }
+ 
+ 
+@@ -2295,18 +2295,18 @@
+       /* `both-x-axis' true, otherwise set it false.  The x values only     */
+       /* need be tested because the vector has been normalised to a unit    */
+       /* vector of length 0x4000 = unity.                                   */
+-      CUR.GS.both_x_axis = (FT_Bool)( CUR.GS.projVector.x == 0x4000 &&
+-                                      CUR.GS.freeVector.x == 0x4000 );
++      CUR.FT_GS.both_x_axis = (FT_Bool)( CUR.FT_GS.projVector.x == 0x4000 &&
++                                      CUR.FT_GS.freeVector.x == 0x4000 );
+ 
+       /* Throw away projection and freedom vector information */
+       /* because the patents don't allow them to be stored.   */
+       /* The relevant US Patents are 5155805 and 5325479.     */
+-      CUR.GS.projVector.x = 0;
+-      CUR.GS.projVector.y = 0;
+-      CUR.GS.freeVector.x = 0;
+-      CUR.GS.freeVector.y = 0;
++      CUR.FT_GS.projVector.x = 0;
++      CUR.FT_GS.projVector.y = 0;
++      CUR.FT_GS.freeVector.x = 0;
++      CUR.FT_GS.freeVector.y = 0;
+ 
+-      if ( CUR.GS.both_x_axis )
++      if ( CUR.FT_GS.both_x_axis )
+       {
+         CUR.func_project   = Project_x;
+         CUR.func_move      = Direct_Move_X;
+@@ -2319,11 +2319,11 @@
+         CUR.func_move_orig = Direct_Move_Orig_Y;
+       }
+ 
+-      if ( CUR.GS.dualVector.x == 0x4000 )
++      if ( CUR.FT_GS.dualVector.x == 0x4000 )
+         CUR.func_dualproj = Project_x;
+       else
+       {
+-        if ( CUR.GS.dualVector.y == 0x4000 )
++        if ( CUR.FT_GS.dualVector.y == 0x4000 )
+           CUR.func_dualproj = Project_y;
+         else
+           CUR.func_dualproj = Dual_Project;
+@@ -2336,32 +2336,32 @@
+     }
+ #endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
+ 
+-    if ( CUR.GS.freeVector.x == 0x4000 )
+-      CUR.F_dot_P       = CUR.GS.projVector.x * 0x10000L;
++    if ( CUR.FT_GS.freeVector.x == 0x4000 )
++      CUR.F_dot_P       = CUR.FT_GS.projVector.x * 0x10000L;
+     else
+     {
+-      if ( CUR.GS.freeVector.y == 0x4000 )
+-        CUR.F_dot_P       = CUR.GS.projVector.y * 0x10000L;
++      if ( CUR.FT_GS.freeVector.y == 0x4000 )
++        CUR.F_dot_P       = CUR.FT_GS.projVector.y * 0x10000L;
+       else
+-        CUR.F_dot_P = (FT_Long)CUR.GS.projVector.x * CUR.GS.freeVector.x * 4 +
+-                      (FT_Long)CUR.GS.projVector.y * CUR.GS.freeVector.y * 4;
++        CUR.F_dot_P = (FT_Long)CUR.FT_GS.projVector.x * CUR.FT_GS.freeVector.x * 4 +
++                      (FT_Long)CUR.FT_GS.projVector.y * CUR.FT_GS.freeVector.y * 4;
+     }
+ 
+-    if ( CUR.GS.projVector.x == 0x4000 )
++    if ( CUR.FT_GS.projVector.x == 0x4000 )
+       CUR.func_project = (TT_Project_Func)Project_x;
+     else
+     {
+-      if ( CUR.GS.projVector.y == 0x4000 )
++      if ( CUR.FT_GS.projVector.y == 0x4000 )
+         CUR.func_project = (TT_Project_Func)Project_y;
+       else
+         CUR.func_project = (TT_Project_Func)Project;
+     }
+ 
+-    if ( CUR.GS.dualVector.x == 0x4000 )
++    if ( CUR.FT_GS.dualVector.x == 0x4000 )
+       CUR.func_dualproj = (TT_Project_Func)Project_x;
+     else
+     {
+-      if ( CUR.GS.dualVector.y == 0x4000 )
++      if ( CUR.FT_GS.dualVector.y == 0x4000 )
+         CUR.func_dualproj = (TT_Project_Func)Project_y;
+       else
+         CUR.func_dualproj = (TT_Project_Func)Dual_Project;
+@@ -2372,14 +2372,14 @@
+ 
+     if ( CUR.F_dot_P == 0x40000000L )
+     {
+-      if ( CUR.GS.freeVector.x == 0x4000 )
++      if ( CUR.FT_GS.freeVector.x == 0x4000 )
+       {
+         CUR.func_move      = (TT_Move_Func)Direct_Move_X;
+         CUR.func_move_orig = (TT_Move_Func)Direct_Move_Orig_X;
+       }
+       else
+       {
+-        if ( CUR.GS.freeVector.y == 0x4000 )
++        if ( CUR.FT_GS.freeVector.y == 0x4000 )
+         {
+           CUR.func_move      = (TT_Move_Func)Direct_Move_Y;
+           CUR.func_move_orig = (TT_Move_Func)Direct_Move_Orig_Y;
+@@ -2576,13 +2576,13 @@
+     A = (FT_Short)( CUR.opcode & 1 ) << 14; \
+     B = A ^ (FT_Short)0x4000;               \
+                                             \
+-    CUR.GS.freeVector.x = A;                \
+-    CUR.GS.projVector.x = A;                \
+-    CUR.GS.dualVector.x = A;                \
++    CUR.FT_GS.freeVector.x = A;                \
++    CUR.FT_GS.projVector.x = A;                \
++    CUR.FT_GS.dualVector.x = A;                \
+                                             \
+-    CUR.GS.freeVector.y = B;                \
+-    CUR.GS.projVector.y = B;                \
+-    CUR.GS.dualVector.y = B;                \
++    CUR.FT_GS.freeVector.y = B;                \
++    CUR.FT_GS.projVector.y = B;                \
++    CUR.FT_GS.dualVector.y = B;                \
+                                             \
+     COMPUTE_Funcs();                        \
+   }
+@@ -2596,11 +2596,11 @@
+     A = (FT_Short)( CUR.opcode & 1 ) << 14; \
+     B = A ^ (FT_Short)0x4000;               \
+                                             \
+-    CUR.GS.projVector.x = A;                \
+-    CUR.GS.dualVector.x = A;                \
++    CUR.FT_GS.projVector.x = A;                \
++    CUR.FT_GS.dualVector.x = A;                \
+                                             \
+-    CUR.GS.projVector.y = B;                \
+-    CUR.GS.dualVector.y = B;                \
++    CUR.FT_GS.projVector.y = B;                \
++    CUR.FT_GS.dualVector.y = B;                \
+                                             \
+     GUESS_VECTOR( freeVector );             \
+                                             \
+@@ -2616,8 +2616,8 @@
+     A = (FT_Short)( CUR.opcode & 1 ) << 14; \
+     B = A ^ (FT_Short)0x4000;               \
+                                             \
+-    CUR.GS.freeVector.x = A;                \
+-    CUR.GS.freeVector.y = B;                \
++    CUR.FT_GS.freeVector.x = A;                \
++    CUR.FT_GS.freeVector.y = B;                \
+                                             \
+     GUESS_VECTOR( projVector );             \
+                                             \
+@@ -2629,9 +2629,9 @@
+     if ( INS_SxVTL( (FT_UShort)args[1],               \
+                     (FT_UShort)args[0],               \
+                     CUR.opcode,                       \
+-                    &CUR.GS.projVector ) == SUCCESS ) \
++                    &CUR.FT_GS.projVector ) == SUCCESS ) \
+     {                                                 \
+-      CUR.GS.dualVector = CUR.GS.projVector;          \
++      CUR.FT_GS.dualVector = CUR.FT_GS.projVector;          \
+       GUESS_VECTOR( freeVector );                     \
+       COMPUTE_Funcs();                                \
+     }
+@@ -2641,7 +2641,7 @@
+     if ( INS_SxVTL( (FT_UShort)args[1],               \
+                     (FT_UShort)args[0],               \
+                     CUR.opcode,                       \
+-                    &CUR.GS.freeVector ) == SUCCESS ) \
++                    &CUR.FT_GS.freeVector ) == SUCCESS ) \
+     {                                                 \
+       GUESS_VECTOR( projVector );                     \
+       COMPUTE_Funcs();                                \
+@@ -2650,7 +2650,7 @@
+ 
+ #define DO_SFVTPV                          \
+     GUESS_VECTOR( projVector );            \
+-    CUR.GS.freeVector = CUR.GS.projVector; \
++    CUR.FT_GS.freeVector = CUR.FT_GS.projVector; \
+     COMPUTE_Funcs();
+ 
+ 
+@@ -2666,9 +2666,9 @@
+     S = (FT_Short)args[0];                      \
+     X = (FT_Long)S;                             \
+                                                 \
+-    NORMalize( X, Y, &CUR.GS.projVector );      \
++    NORMalize( X, Y, &CUR.FT_GS.projVector );      \
+                                                 \
+-    CUR.GS.dualVector = CUR.GS.projVector;      \
++    CUR.FT_GS.dualVector = CUR.FT_GS.projVector;      \
+     GUESS_VECTOR( freeVector );                 \
+     COMPUTE_Funcs();                            \
+   }
+@@ -2686,7 +2686,7 @@
+     S = (FT_Short)args[0];                      \
+     X = S;                                      \
+                                                 \
+-    NORMalize( X, Y, &CUR.GS.freeVector );      \
++    NORMalize( X, Y, &CUR.FT_GS.freeVector );      \
+     GUESS_VECTOR( projVector );                 \
+     COMPUTE_Funcs();                            \
+   }
+@@ -2696,18 +2696,18 @@
+ #define DO_GPV                                   \
+     if ( CUR.face->unpatented_hinting )          \
+     {                                            \
+-      args[0] = CUR.GS.both_x_axis ? 0x4000 : 0; \
+-      args[1] = CUR.GS.both_x_axis ? 0 : 0x4000; \
++      args[0] = CUR.FT_GS.both_x_axis ? 0x4000 : 0; \
++      args[1] = CUR.FT_GS.both_x_axis ? 0 : 0x4000; \
+     }                                            \
+     else                                         \
+     {                                            \
+-      args[0] = CUR.GS.projVector.x;             \
+-      args[1] = CUR.GS.projVector.y;             \
++      args[0] = CUR.FT_GS.projVector.x;             \
++      args[1] = CUR.FT_GS.projVector.y;             \
+     }
+ #else
+ #define DO_GPV                                   \
+-    args[0] = CUR.GS.projVector.x;               \
+-    args[1] = CUR.GS.projVector.y;
++    args[0] = CUR.FT_GS.projVector.x;               \
++    args[1] = CUR.FT_GS.projVector.y;
+ #endif
+ 
+ 
+@@ -2715,72 +2715,72 @@
+ #define DO_GFV                                   \
+     if ( CUR.face->unpatented_hinting )          \
+     {                                            \
+-      args[0] = CUR.GS.both_x_axis ? 0x4000 : 0; \
+-      args[1] = CUR.GS.both_x_axis ? 0 : 0x4000; \
++      args[0] = CUR.FT_GS.both_x_axis ? 0x4000 : 0; \
++      args[1] = CUR.FT_GS.both_x_axis ? 0 : 0x4000; \
+     }                                            \
+     else                                         \
+     {                                            \
+-      args[0] = CUR.GS.freeVector.x;             \
+-      args[1] = CUR.GS.freeVector.y;             \
++      args[0] = CUR.FT_GS.freeVector.x;             \
++      args[1] = CUR.FT_GS.freeVector.y;             \
+     }
+ #else
+ #define DO_GFV                                   \
+-    args[0] = CUR.GS.freeVector.x;               \
+-    args[1] = CUR.GS.freeVector.y;
++    args[0] = CUR.FT_GS.freeVector.x;               \
++    args[1] = CUR.FT_GS.freeVector.y;
+ #endif
+ 
+ 
+ #define DO_SRP0                      \
+-    CUR.GS.rp0 = (FT_UShort)args[0];
++    CUR.FT_GS.rp0 = (FT_UShort)args[0];
+ 
+ 
+ #define DO_SRP1                      \
+-    CUR.GS.rp1 = (FT_UShort)args[0];
++    CUR.FT_GS.rp1 = (FT_UShort)args[0];
+ 
+ 
+ #define DO_SRP2                      \
+-    CUR.GS.rp2 = (FT_UShort)args[0];
++    CUR.FT_GS.rp2 = (FT_UShort)args[0];
+ 
+ 
+ #define DO_RTHG                                         \
+-    CUR.GS.round_state = TT_Round_To_Half_Grid;         \
++    CUR.FT_GS.round_state = TT_Round_To_Half_Grid;         \
+     CUR.func_round = (TT_Round_Func)Round_To_Half_Grid;
+ 
+ 
+ #define DO_RTG                                     \
+-    CUR.GS.round_state = TT_Round_To_Grid;         \
++    CUR.FT_GS.round_state = TT_Round_To_Grid;         \
+     CUR.func_round = (TT_Round_Func)Round_To_Grid;
+ 
+ 
+ #define DO_RTDG                                           \
+-    CUR.GS.round_state = TT_Round_To_Double_Grid;         \
++    CUR.FT_GS.round_state = TT_Round_To_Double_Grid;         \
+     CUR.func_round = (TT_Round_Func)Round_To_Double_Grid;
+ 
+ 
+ #define DO_RUTG                                       \
+-    CUR.GS.round_state = TT_Round_Up_To_Grid;         \
++    CUR.FT_GS.round_state = TT_Round_Up_To_Grid;         \
+     CUR.func_round = (TT_Round_Func)Round_Up_To_Grid;
+ 
+ 
+ #define DO_RDTG                                         \
+-    CUR.GS.round_state = TT_Round_Down_To_Grid;         \
++    CUR.FT_GS.round_state = TT_Round_Down_To_Grid;         \
+     CUR.func_round = (TT_Round_Func)Round_Down_To_Grid;
+ 
+ 
+ #define DO_ROFF                                 \
+-    CUR.GS.round_state = TT_Round_Off;          \
++    CUR.FT_GS.round_state = TT_Round_Off;          \
+     CUR.func_round = (TT_Round_Func)Round_None;
+ 
+ 
+ #define DO_SROUND                                \
+     SET_SuperRound( 0x4000, args[0] );           \
+-    CUR.GS.round_state = TT_Round_Super;         \
++    CUR.FT_GS.round_state = TT_Round_Super;         \
+     CUR.func_round = (TT_Round_Func)Round_Super;
+ 
+ 
+ #define DO_S45ROUND                                 \
+     SET_SuperRound( 0x2D41, args[0] );              \
+-    CUR.GS.round_state = TT_Round_Super_45;         \
++    CUR.FT_GS.round_state = TT_Round_Super_45;         \
+     CUR.func_round = (TT_Round_Func)Round_Super_45;
+ 
+ 
+@@ -2788,19 +2788,19 @@
+     if ( args[0] < 0 )                 \
+       CUR.error = TT_Err_Bad_Argument; \
+     else                               \
+-      CUR.GS.loop = args[0];
++      CUR.FT_GS.loop = args[0];
+ 
+ 
+ #define DO_SMD                         \
+-    CUR.GS.minimum_distance = args[0];
++    CUR.FT_GS.minimum_distance = args[0];
+ 
+ 
+ #define DO_SCVTCI                                     \
+-    CUR.GS.control_value_cutin = (FT_F26Dot6)args[0];
++    CUR.FT_GS.control_value_cutin = (FT_F26Dot6)args[0];
+ 
+ 
+ #define DO_SSWCI                                     \
+-    CUR.GS.single_width_cutin = (FT_F26Dot6)args[0];
++    CUR.FT_GS.single_width_cutin = (FT_F26Dot6)args[0];
+ 
+ 
+     /* XXX: UNDOCUMENTED! or bug in the Windows engine?   */
+@@ -2810,23 +2810,23 @@
+     /*      units.                                        */
+     /*                                                    */
+ #define DO_SSW                                                 \
+-    CUR.GS.single_width_value = (FT_F26Dot6)( args[0] >> 10 );
++    CUR.FT_GS.single_width_value = (FT_F26Dot6)( args[0] >> 10 );
+ 
+ 
+ #define DO_FLIPON            \
+-    CUR.GS.auto_flip = TRUE;
++    CUR.FT_GS.auto_flip = TRUE;
+ 
+ 
+ #define DO_FLIPOFF            \
+-    CUR.GS.auto_flip = FALSE;
++    CUR.FT_GS.auto_flip = FALSE;
+ 
+ 
+ #define DO_SDB                             \
+-    CUR.GS.delta_base = (FT_Short)args[0];
++    CUR.FT_GS.delta_base = (FT_Short)args[0];
+ 
+ 
+ #define DO_SDS                              \
+-    CUR.GS.delta_shift = (FT_Short)args[0];
++    CUR.FT_GS.delta_shift = (FT_Short)args[0];
+ 
+ 
+ #define DO_MD  /* nothing */
+@@ -4776,7 +4776,7 @@
+ 
+     /* not part of the specs, but here for safety */
+ 
+-    if ( CUR.GS.gep2 == 0 )
++    if ( CUR.FT_GS.gep2 == 0 )
+       CUR.zp2.org[L] = CUR.zp2.cur[L];
+   }
+ 
+@@ -4868,7 +4868,7 @@
+       A = -C;
+     }
+ 
+-    NORMalize( A, B, &CUR.GS.dualVector );
++    NORMalize( A, B, &CUR.FT_GS.dualVector );
+ 
+     {
+       FT_Vector*  v1 = CUR.zp1.cur + p2;
+@@ -4886,7 +4886,7 @@
+       A = -C;
+     }
+ 
+-    NORMalize( A, B, &CUR.GS.projVector );
++    NORMalize( A, B, &CUR.FT_GS.projVector );
+ 
+     GUESS_VECTOR( freeVector );
+ 
+@@ -4919,7 +4919,7 @@
+       return;
+     }
+ 
+-    CUR.GS.gep0 = (FT_UShort)args[0];
++    CUR.FT_GS.gep0 = (FT_UShort)args[0];
+   }
+ 
+ 
+@@ -4948,7 +4948,7 @@
+       return;
+     }
+ 
+-    CUR.GS.gep1 = (FT_UShort)args[0];
++    CUR.FT_GS.gep1 = (FT_UShort)args[0];
+   }
+ 
+ 
+@@ -4977,7 +4977,7 @@
+       return;
+     }
+ 
+-    CUR.GS.gep2 = (FT_UShort)args[0];
++    CUR.FT_GS.gep2 = (FT_UShort)args[0];
+   }
+ 
+ 
+@@ -5009,9 +5009,9 @@
+     CUR.zp1 = CUR.zp0;
+     CUR.zp2 = CUR.zp0;
+ 
+-    CUR.GS.gep0 = (FT_UShort)args[0];
+-    CUR.GS.gep1 = (FT_UShort)args[0];
+-    CUR.GS.gep2 = (FT_UShort)args[0];
++    CUR.FT_GS.gep0 = (FT_UShort)args[0];
++    CUR.FT_GS.gep1 = (FT_UShort)args[0];
++    CUR.FT_GS.gep2 = (FT_UShort)args[0];
+   }
+ 
+ 
+@@ -5040,8 +5040,8 @@
+     if ( L != 0 )
+         L = K;
+ 
+-    CUR.GS.instruct_control = FT_BOOL(
+-      ( (FT_Byte)CUR.GS.instruct_control & ~(FT_Byte)K ) | (FT_Byte)L );
++    CUR.FT_GS.instruct_control = FT_BOOL(
++      ( (FT_Byte)CUR.FT_GS.instruct_control & ~(FT_Byte)K ) | (FT_Byte)L );
+   }
+ 
+ 
+@@ -5062,12 +5062,12 @@
+ 
+     if ( A == 0xFF )
+     {
+-      CUR.GS.scan_control = TRUE;
++      CUR.FT_GS.scan_control = TRUE;
+       return;
+     }
+     else if ( A == 0 )
+     {
+-      CUR.GS.scan_control = FALSE;
++      CUR.FT_GS.scan_control = FALSE;
+       return;
+     }
+ 
+@@ -5075,25 +5075,25 @@
+ 
+ #if 0
+     if ( ( args[0] & 0x100 ) != 0 && CUR.metrics.pointSize <= A )
+-      CUR.GS.scan_control = TRUE;
++      CUR.FT_GS.scan_control = TRUE;
+ #endif
+ 
+     if ( ( args[0] & 0x200 ) != 0 && CUR.tt_metrics.rotated )
+-      CUR.GS.scan_control = TRUE;
++      CUR.FT_GS.scan_control = TRUE;
+ 
+     if ( ( args[0] & 0x400 ) != 0 && CUR.tt_metrics.stretched )
+-      CUR.GS.scan_control = TRUE;
++      CUR.FT_GS.scan_control = TRUE;
+ 
+ #if 0
+     if ( ( args[0] & 0x800 ) != 0 && CUR.metrics.pointSize > A )
+-      CUR.GS.scan_control = FALSE;
++      CUR.FT_GS.scan_control = FALSE;
+ #endif
+ 
+     if ( ( args[0] & 0x1000 ) != 0 && CUR.tt_metrics.rotated )
+-      CUR.GS.scan_control = FALSE;
++      CUR.FT_GS.scan_control = FALSE;
+ 
+     if ( ( args[0] & 0x2000 ) != 0 && CUR.tt_metrics.stretched )
+-      CUR.GS.scan_control = FALSE;
++      CUR.FT_GS.scan_control = FALSE;
+   }
+ 
+ 
+@@ -5114,7 +5114,7 @@
+       if ( args[0] == 3 )
+         args[0] = 2;
+ 
+-      CUR.GS.scan_type = (FT_Int)args[0];
++      CUR.FT_GS.scan_type = (FT_Int)args[0];
+     }
+   }
+ 
+@@ -5142,13 +5142,13 @@
+     FT_UNUSED_ARG;
+ 
+ 
+-    if ( CUR.top < CUR.GS.loop )
++    if ( CUR.top < CUR.FT_GS.loop )
+     {
+       CUR.error = TT_Err_Too_Few_Arguments;
+       return;
+     }
+ 
+-    while ( CUR.GS.loop > 0 )
++    while ( CUR.FT_GS.loop > 0 )
+     {
+       CUR.args--;
+ 
+@@ -5165,10 +5165,10 @@
+       else
+         CUR.pts.tags[point] ^= FT_CURVE_TAG_ON;
+ 
+-      CUR.GS.loop--;
++      CUR.FT_GS.loop--;
+     }
+ 
+-    CUR.GS.loop = 1;
++    CUR.FT_GS.loop = 1;
+     CUR.new_top = CUR.args;
+   }
+ 
+@@ -5243,12 +5243,12 @@
+     if ( CUR.opcode & 1 )
+     {
+       zp = CUR.zp0;
+-      p  = CUR.GS.rp1;
++      p  = CUR.FT_GS.rp1;
+     }
+     else
+     {
+       zp = CUR.zp1;
+-      p  = CUR.GS.rp2;
++      p  = CUR.FT_GS.rp2;
+     }
+ 
+     if ( BOUNDS( p, zp.n_points ) )
+@@ -5267,7 +5267,7 @@
+ #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
+     if ( CUR.face->unpatented_hinting )
+     {
+-      if ( CUR.GS.both_x_axis )
++      if ( CUR.FT_GS.both_x_axis )
+       {
+         *x = d;
+         *y = 0;
+@@ -5282,10 +5282,10 @@
+ #endif
+     {
+       *x = TT_MULDIV( d,
+-                      (FT_Long)CUR.GS.freeVector.x * 0x10000L,
++                      (FT_Long)CUR.FT_GS.freeVector.x * 0x10000L,
+                       CUR.F_dot_P );
+       *y = TT_MULDIV( d,
+-                      (FT_Long)CUR.GS.freeVector.y * 0x10000L,
++                      (FT_Long)CUR.FT_GS.freeVector.y * 0x10000L,
+                       CUR.F_dot_P );
+     }
+ 
+@@ -5302,7 +5302,7 @@
+ #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
+     if ( CUR.face->unpatented_hinting )
+     {
+-      if ( CUR.GS.both_x_axis )
++      if ( CUR.FT_GS.both_x_axis )
+       {
+         CUR.zp2.cur[point].x += dx;
+         if ( touch )
+@@ -5318,14 +5318,14 @@
+     }
+ #endif
+ 
+-    if ( CUR.GS.freeVector.x != 0 )
++    if ( CUR.FT_GS.freeVector.x != 0 )
+     {
+       CUR.zp2.cur[point].x += dx;
+       if ( touch )
+         CUR.zp2.tags[point] |= FT_CURVE_TAG_TOUCH_X;
+     }
+ 
+-    if ( CUR.GS.freeVector.y != 0 )
++    if ( CUR.FT_GS.freeVector.y != 0 )
+     {
+       CUR.zp2.cur[point].y += dy;
+       if ( touch )
+@@ -5353,7 +5353,7 @@
+     FT_UNUSED_ARG;
+ 
+ 
+-    if ( CUR.top < CUR.GS.loop )
++    if ( CUR.top < CUR.FT_GS.loop )
+     {
+       CUR.error = TT_Err_Invalid_Reference;
+       return;
+@@ -5362,7 +5362,7 @@
+     if ( COMPUTE_Point_Displacement( &dx, &dy, &zp, &refp ) )
+       return;
+ 
+-    while ( CUR.GS.loop > 0 )
++    while ( CUR.FT_GS.loop > 0 )
+     {
+       CUR.args--;
+       point = (FT_UShort)CUR.stack[CUR.args];
+@@ -5379,10 +5379,10 @@
+         /* XXX: UNDOCUMENTED! SHP touches the points */
+         MOVE_Zp2_Point( point, dx, dy, TRUE );
+ 
+-      CUR.GS.loop--;
++      CUR.FT_GS.loop--;
+     }
+ 
+-    CUR.GS.loop = 1;
++    CUR.FT_GS.loop = 1;
+     CUR.new_top = CUR.args;
+   }
+ 
+@@ -5476,9 +5476,9 @@
+     /*      Twilight zone has no contours, so use `n_points'.   */
+     /*      Normal zone's `n_points' includes phantoms, so must */
+     /*      use end of last contour.                            */
+-    if ( CUR.GS.gep2 == 0 && CUR.zp2.n_points > 0 )
++    if ( CUR.FT_GS.gep2 == 0 && CUR.zp2.n_points > 0 )
+       last_point = (FT_UShort)( CUR.zp2.n_points - 1 );
+-    else if ( CUR.GS.gep2 == 1 && CUR.zp2.n_contours > 0 )
++    else if ( CUR.FT_GS.gep2 == 1 && CUR.zp2.n_contours > 0 )
+       last_point = (FT_UShort)( CUR.zp2.contours[CUR.zp2.n_contours - 1] );
+     else
+       last_point = 0;
+@@ -5505,7 +5505,7 @@
+     FT_UShort   point;
+ 
+ 
+-    if ( CUR.top < CUR.GS.loop + 1 )
++    if ( CUR.top < CUR.FT_GS.loop + 1 )
+     {
+       CUR.error = TT_Err_Invalid_Reference;
+       return;
+@@ -5514,7 +5514,7 @@
+ #ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
+     if ( CUR.face->unpatented_hinting )
+     {
+-      if ( CUR.GS.both_x_axis )
++      if ( CUR.FT_GS.both_x_axis )
+       {
+         dx = TT_MulFix14( args[0], 0x4000 );
+         dy = 0;
+@@ -5528,11 +5528,11 @@
+     else
+ #endif
+     {
+-      dx = TT_MulFix14( args[0], CUR.GS.freeVector.x );
+-      dy = TT_MulFix14( args[0], CUR.GS.freeVector.y );
++      dx = TT_MulFix14( args[0], CUR.FT_GS.freeVector.x );
++      dy = TT_MulFix14( args[0], CUR.FT_GS.freeVector.y );
+     }
+ 
+-    while ( CUR.GS.loop > 0 )
++    while ( CUR.FT_GS.loop > 0 )
+     {
+       CUR.args--;
+ 
+@@ -5549,10 +5549,10 @@
+       else
+         MOVE_Zp2_Point( point, dx, dy, TRUE );
+ 
+-      CUR.GS.loop--;
++      CUR.FT_GS.loop--;
+     }
+ 
+-    CUR.GS.loop = 1;
++    CUR.FT_GS.loop = 1;
+     CUR.new_top = CUR.args;
+   }
+ 
+@@ -5573,7 +5573,7 @@
+     point = (FT_UShort)args[0];
+ 
+     if ( BOUNDS( point,      CUR.zp1.n_points ) ||
+-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
++         BOUNDS( CUR.FT_GS.rp0, CUR.zp0.n_points ) )
+     {
+       if ( CUR.pedantic_hinting )
+         CUR.error = TT_Err_Invalid_Reference;
+@@ -5581,24 +5581,24 @@
+     }
+ 
+     /* XXX: UNDOCUMENTED! behaviour */
+-    if ( CUR.GS.gep1 == 0 )   /* if the point that is to be moved */
++    if ( CUR.FT_GS.gep1 == 0 )   /* if the point that is to be moved */
+                               /* is in twilight zone              */
+     {
+-      CUR.zp1.org[point] = CUR.zp0.org[CUR.GS.rp0];
++      CUR.zp1.org[point] = CUR.zp0.org[CUR.FT_GS.rp0];
+       CUR_Func_move_orig( &CUR.zp1, point, args[1] );
+       CUR.zp1.cur[point] = CUR.zp1.org[point];
+     }
+ 
+     distance = CUR_Func_project( CUR.zp1.cur + point,
+-                                 CUR.zp0.cur + CUR.GS.rp0 );
++                                 CUR.zp0.cur + CUR.FT_GS.rp0 );
+ 
+     CUR_Func_move( &CUR.zp1, point, args[1] - distance );
+ 
+-    CUR.GS.rp1 = CUR.GS.rp0;
+-    CUR.GS.rp2 = point;
++    CUR.FT_GS.rp1 = CUR.FT_GS.rp0;
++    CUR.FT_GS.rp2 = point;
+ 
+     if ( ( CUR.opcode & 1 ) != 0 )
+-      CUR.GS.rp0 = point;
++      CUR.FT_GS.rp0 = point;
+   }
+ 
+ 
+@@ -5638,8 +5638,8 @@
+ 
+     CUR_Func_move( &CUR.zp0, point, distance );
+ 
+-    CUR.GS.rp0 = point;
+-    CUR.GS.rp1 = point;
++    CUR.FT_GS.rp0 = point;
++    CUR.FT_GS.rp1 = point;
+   }
+ 
+ 
+@@ -5693,10 +5693,10 @@
+ 
+     distance = CUR_Func_read_cvt( cvtEntry );
+ 
+-    if ( CUR.GS.gep0 == 0 )   /* If in twilight zone */
++    if ( CUR.FT_GS.gep0 == 0 )   /* If in twilight zone */
+     {
+-      CUR.zp0.org[point].x = TT_MulFix14( distance, CUR.GS.freeVector.x );
+-      CUR.zp0.org[point].y = TT_MulFix14( distance, CUR.GS.freeVector.y ),
++      CUR.zp0.org[point].x = TT_MulFix14( distance, CUR.FT_GS.freeVector.x );
++      CUR.zp0.org[point].y = TT_MulFix14( distance, CUR.FT_GS.freeVector.y ),
+       CUR.zp0.cur[point]   = CUR.zp0.org[point];
+     }
+ 
+@@ -5704,7 +5704,7 @@
+ 
+     if ( ( CUR.opcode & 1 ) != 0 )   /* rounding and control cutin flag */
+     {
+-      if ( FT_ABS( distance - org_dist ) > CUR.GS.control_value_cutin )
++      if ( FT_ABS( distance - org_dist ) > CUR.FT_GS.control_value_cutin )
+         distance = org_dist;
+ 
+       distance = CUR_Func_round( distance, CUR.tt_metrics.compensations[0] );
+@@ -5712,8 +5712,8 @@
+ 
+     CUR_Func_move( &CUR.zp0, point, distance - org_dist );
+ 
+-    CUR.GS.rp0 = point;
+-    CUR.GS.rp1 = point;
++    CUR.FT_GS.rp0 = point;
++    CUR.FT_GS.rp1 = point;
+   }
+ 
+ 
+@@ -5733,7 +5733,7 @@
+     point = (FT_UShort)args[0];
+ 
+     if ( BOUNDS( point,      CUR.zp1.n_points ) ||
+-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
++         BOUNDS( CUR.FT_GS.rp0, CUR.zp0.n_points ) )
+     {
+       if ( CUR.pedantic_hinting )
+         CUR.error = TT_Err_Invalid_Reference;
+@@ -5745,10 +5745,10 @@
+ 
+     /* XXX: UNDOCUMENTED: twilight zone special case */
+ 
+-    if ( CUR.GS.gep0 == 0 || CUR.GS.gep1 == 0 )
++    if ( CUR.FT_GS.gep0 == 0 || CUR.FT_GS.gep1 == 0 )
+     {
+       FT_Vector*  vec1 = &CUR.zp1.org[point];
+-      FT_Vector*  vec2 = &CUR.zp0.org[CUR.GS.rp0];
++      FT_Vector*  vec2 = &CUR.zp0.org[CUR.FT_GS.rp0];
+ 
+ 
+       org_dist = CUR_Func_dualproj( vec1, vec2 );
+@@ -5756,7 +5756,7 @@
+     else
+     {
+       FT_Vector*  vec1 = &CUR.zp1.orus[point];
+-      FT_Vector*  vec2 = &CUR.zp0.orus[CUR.GS.rp0];
++      FT_Vector*  vec2 = &CUR.zp0.orus[CUR.FT_GS.rp0];
+ 
+ 
+       if ( CUR.metrics.x_scale == CUR.metrics.y_scale )
+@@ -5779,13 +5779,13 @@
+ 
+     /* single width cut-in test */
+ 
+-    if ( FT_ABS( org_dist - CUR.GS.single_width_value ) <
+-         CUR.GS.single_width_cutin )
++    if ( FT_ABS( org_dist - CUR.FT_GS.single_width_value ) <
++         CUR.FT_GS.single_width_cutin )
+     {
+       if ( org_dist >= 0 )
+-        org_dist = CUR.GS.single_width_value;
++        org_dist = CUR.FT_GS.single_width_value;
+       else
+-        org_dist = -CUR.GS.single_width_value;
++        org_dist = -CUR.FT_GS.single_width_value;
+     }
+ 
+     /* round flag */
+@@ -5805,28 +5805,28 @@
+     {
+       if ( org_dist >= 0 )
+       {
+-        if ( distance < CUR.GS.minimum_distance )
+-          distance = CUR.GS.minimum_distance;
++        if ( distance < CUR.FT_GS.minimum_distance )
++          distance = CUR.FT_GS.minimum_distance;
+       }
+       else
+       {
+-        if ( distance > -CUR.GS.minimum_distance )
+-          distance = -CUR.GS.minimum_distance;
++        if ( distance > -CUR.FT_GS.minimum_distance )
++          distance = -CUR.FT_GS.minimum_distance;
+       }
+     }
+ 
+     /* now move the point */
+ 
+     org_dist = CUR_Func_project( CUR.zp1.cur + point,
+-                                 CUR.zp0.cur + CUR.GS.rp0 );
++                                 CUR.zp0.cur + CUR.FT_GS.rp0 );
+ 
+     CUR_Func_move( &CUR.zp1, point, distance - org_dist );
+ 
+-    CUR.GS.rp1 = CUR.GS.rp0;
+-    CUR.GS.rp2 = point;
++    CUR.FT_GS.rp1 = CUR.FT_GS.rp0;
++    CUR.FT_GS.rp2 = point;
+ 
+     if ( ( CUR.opcode & 16 ) != 0 )
+-      CUR.GS.rp0 = point;
++      CUR.FT_GS.rp0 = point;
+   }
+ 
+ 
+@@ -5855,7 +5855,7 @@
+ 
+     if ( BOUNDS( point,      CUR.zp1.n_points ) ||
+          BOUNDS( cvtEntry,   CUR.cvtSize + 1 )  ||
+-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
++         BOUNDS( CUR.FT_GS.rp0, CUR.zp0.n_points ) )
+     {
+       if ( CUR.pedantic_hinting )
+         CUR.error = TT_Err_Invalid_Reference;
+@@ -5869,36 +5869,36 @@
+ 
+     /* single width test */
+ 
+-    if ( FT_ABS( cvt_dist - CUR.GS.single_width_value ) <
+-         CUR.GS.single_width_cutin )
++    if ( FT_ABS( cvt_dist - CUR.FT_GS.single_width_value ) <
++         CUR.FT_GS.single_width_cutin )
+     {
+       if ( cvt_dist >= 0 )
+-        cvt_dist =  CUR.GS.single_width_value;
++        cvt_dist =  CUR.FT_GS.single_width_value;
+       else
+-        cvt_dist = -CUR.GS.single_width_value;
++        cvt_dist = -CUR.FT_GS.single_width_value;
+     }
+ 
+     /* XXX: UNDOCUMENTED! -- twilight zone */
+ 
+-    if ( CUR.GS.gep1 == 0 )
++    if ( CUR.FT_GS.gep1 == 0 )
+     {
+-      CUR.zp1.org[point].x = CUR.zp0.org[CUR.GS.rp0].x +
+-                             TT_MulFix14( cvt_dist, CUR.GS.freeVector.x );
++      CUR.zp1.org[point].x = CUR.zp0.org[CUR.FT_GS.rp0].x +
++                             TT_MulFix14( cvt_dist, CUR.FT_GS.freeVector.x );
+ 
+-      CUR.zp1.org[point].y = CUR.zp0.org[CUR.GS.rp0].y +
+-                             TT_MulFix14( cvt_dist, CUR.GS.freeVector.y );
++      CUR.zp1.org[point].y = CUR.zp0.org[CUR.FT_GS.rp0].y +
++                             TT_MulFix14( cvt_dist, CUR.FT_GS.freeVector.y );
+ 
+       CUR.zp1.cur[point] = CUR.zp0.cur[point];
+     }
+ 
+     org_dist = CUR_Func_dualproj( &CUR.zp1.org[point],
+-                                  &CUR.zp0.org[CUR.GS.rp0] );
++                                  &CUR.zp0.org[CUR.FT_GS.rp0] );
+     cur_dist = CUR_Func_project ( &CUR.zp1.cur[point],
+-                                  &CUR.zp0.cur[CUR.GS.rp0] );
++                                  &CUR.zp0.cur[CUR.FT_GS.rp0] );
+ 
+     /* auto-flip test */
+ 
+-    if ( CUR.GS.auto_flip )
++    if ( CUR.FT_GS.auto_flip )
+     {
+       if ( ( org_dist ^ cvt_dist ) < 0 )
+         cvt_dist = -cvt_dist;
+@@ -5911,8 +5911,8 @@
+       /* XXX: UNDOCUMENTED!  Only perform cut-in test when both points */
+       /*      refer to the same zone.                                  */
+ 
+-      if ( CUR.GS.gep0 == CUR.GS.gep1 )
+-        if ( FT_ABS( cvt_dist - org_dist ) >= CUR.GS.control_value_cutin )
++      if ( CUR.FT_GS.gep0 == CUR.FT_GS.gep1 )
++        if ( FT_ABS( cvt_dist - org_dist ) >= CUR.FT_GS.control_value_cutin )
+           cvt_dist = org_dist;
+ 
+       distance = CUR_Func_round(
+@@ -5930,25 +5930,25 @@
+     {
+       if ( org_dist >= 0 )
+       {
+-        if ( distance < CUR.GS.minimum_distance )
+-          distance = CUR.GS.minimum_distance;
++        if ( distance < CUR.FT_GS.minimum_distance )
++          distance = CUR.FT_GS.minimum_distance;
+       }
+       else
+       {
+-        if ( distance > -CUR.GS.minimum_distance )
+-          distance = -CUR.GS.minimum_distance;
++        if ( distance > -CUR.FT_GS.minimum_distance )
++          distance = -CUR.FT_GS.minimum_distance;
+       }
+     }
+ 
+     CUR_Func_move( &CUR.zp1, point, distance - cur_dist );
+ 
+-    CUR.GS.rp1 = CUR.GS.rp0;
++    CUR.FT_GS.rp1 = CUR.FT_GS.rp0;
+ 
+     if ( ( CUR.opcode & 16 ) != 0 )
+-      CUR.GS.rp0 = point;
++      CUR.FT_GS.rp0 = point;
+ 
+     /* XXX: UNDOCUMENTED! */
+-    CUR.GS.rp2 = point;
++    CUR.FT_GS.rp2 = point;
+   }
+ 
+ 
+@@ -5967,15 +5967,15 @@
+     FT_UNUSED_ARG;
+ 
+ 
+-    if ( CUR.top < CUR.GS.loop ||
+-         BOUNDS( CUR.GS.rp0, CUR.zp0.n_points ) )
++    if ( CUR.top < CUR.FT_GS.loop ||
++         BOUNDS( CUR.FT_GS.rp0, CUR.zp0.n_points ) )
+     {
+       if ( CUR.pedantic_hinting )
+         CUR.error = TT_Err_Invalid_Reference;
+       return;
+     }
+ 
+-    while ( CUR.GS.loop > 0 )
++    while ( CUR.FT_GS.loop > 0 )
+     {
+       CUR.args--;
+ 
+@@ -5992,15 +5992,15 @@
+       else
+       {
+         distance = CUR_Func_project( CUR.zp1.cur + point,
+-                                     CUR.zp0.cur + CUR.GS.rp0 );
++                                     CUR.zp0.cur + CUR.FT_GS.rp0 );
+ 
+         CUR_Func_move( &CUR.zp1, point, -distance );
+       }
+ 
+-      CUR.GS.loop--;
++      CUR.FT_GS.loop--;
+     }
+ 
+-    CUR.GS.loop = 1;
++    CUR.FT_GS.loop = 1;
+     CUR.new_top = CUR.args;
+   }
+ 
+@@ -6139,7 +6139,7 @@
+     FT_UNUSED_ARG;
+ 
+ 
+-    if ( CUR.top < CUR.GS.loop )
++    if ( CUR.top < CUR.FT_GS.loop )
+     {
+       CUR.error = TT_Err_Invalid_Reference;
+       return;
+@@ -6150,9 +6150,9 @@
+      * Otherwise, by definition, the value of CUR.twilight.orus[n] is (0,0),
+      * for every n.
+      */
+-    twilight = CUR.GS.gep0 == 0 || CUR.GS.gep1 == 0 || CUR.GS.gep2 == 0;
++    twilight = CUR.FT_GS.gep0 == 0 || CUR.FT_GS.gep1 == 0 || CUR.FT_GS.gep2 == 0;
+ 
+-    if ( BOUNDS( CUR.GS.rp1, CUR.zp0.n_points ) )
++    if ( BOUNDS( CUR.FT_GS.rp1, CUR.zp0.n_points ) )
+     {
+       if ( CUR.pedantic_hinting )
+         CUR.error = TT_Err_Invalid_Reference;
+@@ -6160,18 +6160,18 @@
+     }
+ 
+     if ( twilight )
+-      orus_base = &CUR.zp0.org[CUR.GS.rp1];
++      orus_base = &CUR.zp0.org[CUR.FT_GS.rp1];
+     else
+-      orus_base = &CUR.zp0.orus[CUR.GS.rp1];
++      orus_base = &CUR.zp0.orus[CUR.FT_GS.rp1];
+ 
+-    cur_base = &CUR.zp0.cur[CUR.GS.rp1];
++    cur_base = &CUR.zp0.cur[CUR.FT_GS.rp1];
+ 
+     /* XXX: There are some glyphs in some braindead but popular */
+     /*      fonts out there (e.g. [aeu]grave in monotype.ttf)   */
+     /*      calling IP[] with bad values of rp[12].             */
+     /*      Do something sane when this odd thing happens.      */
+-    if ( BOUNDS( CUR.GS.rp1, CUR.zp0.n_points ) ||
+-         BOUNDS( CUR.GS.rp2, CUR.zp1.n_points ) )
++    if ( BOUNDS( CUR.FT_GS.rp1, CUR.zp0.n_points ) ||
++         BOUNDS( CUR.FT_GS.rp2, CUR.zp1.n_points ) )
+     {
+       old_range = 0;
+       cur_range = 0;
+@@ -6179,16 +6179,16 @@
+     else
+     {
+       if ( twilight )
+-        old_range = CUR_Func_dualproj( &CUR.zp1.org[CUR.GS.rp2],
++        old_range = CUR_Func_dualproj( &CUR.zp1.org[CUR.FT_GS.rp2],
+                                        orus_base );
+       else
+-        old_range = CUR_Func_dualproj( &CUR.zp1.orus[CUR.GS.rp2],
++        old_range = CUR_Func_dualproj( &CUR.zp1.orus[CUR.FT_GS.rp2],
+                                        orus_base );
+ 
+-      cur_range = CUR_Func_project ( &CUR.zp1.cur[CUR.GS.rp2], cur_base );
++      cur_range = CUR_Func_project ( &CUR.zp1.cur[CUR.FT_GS.rp2], cur_base );
+     }
+ 
+-    for ( ; CUR.GS.loop > 0; --CUR.GS.loop )
++    for ( ; CUR.FT_GS.loop > 0; --CUR.FT_GS.loop )
+     {
+       FT_UInt     point = (FT_UInt)CUR.stack[--CUR.args];
+       FT_F26Dot6  org_dist, cur_dist, new_dist;
+@@ -6217,7 +6217,7 @@
+ 
+       CUR_Func_move( &CUR.zp2, (FT_UShort)point, new_dist - cur_dist );
+     }
+-    CUR.GS.loop = 1;
++    CUR.FT_GS.loop = 1;
+     CUR.new_top = CUR.args;
+   }
+ 
+@@ -6246,10 +6246,10 @@
+ 
+     mask = 0xFF;
+ 
+-    if ( CUR.GS.freeVector.x != 0 )
++    if ( CUR.FT_GS.freeVector.x != 0 )
+       mask &= ~FT_CURVE_TAG_TOUCH_X;
+ 
+-    if ( CUR.GS.freeVector.y != 0 )
++    if ( CUR.FT_GS.freeVector.y != 0 )
+       mask &= ~FT_CURVE_TAG_TOUCH_Y;
+ 
+     CUR.zp0.tags[point] &= mask;
+@@ -6557,14 +6557,14 @@
+           break;
+         }
+ 
+-        C += CUR.GS.delta_base;
++        C += CUR.FT_GS.delta_base;
+ 
+         if ( CURRENT_Ppem() == (FT_Long)C )
+         {
+           B = ( (FT_ULong)B & 0xF ) - 8;
+           if ( B >= 0 )
+             B++;
+-          B = B * 64 / ( 1L << CUR.GS.delta_shift );
++          B = B * 64 / ( 1L << CUR.FT_GS.delta_shift );
+ 
+           CUR_Func_move( &CUR.zp0, A, B );
+         }
+@@ -6652,14 +6652,14 @@
+           break;
+         }
+ 
+-        C += CUR.GS.delta_base;
++        C += CUR.FT_GS.delta_base;
+ 
+         if ( CURRENT_Ppem() == (FT_Long)C )
+         {
+           B = ( (FT_ULong)B & 0xF ) - 8;
+           if ( B >= 0 )
+             B++;
+-          B = B * 64 / ( 1L << CUR.GS.delta_shift );
++          B = B * 64 / ( 1L << CUR.FT_GS.delta_shift );
+ 
+           CUR_Func_move_cvt( A, B );
+         }
+@@ -7099,7 +7099,7 @@
+     }
+ 
+     COMPUTE_Funcs();
+-    COMPUTE_Round( (FT_Byte)exc->GS.round_state );
++    COMPUTE_Round( (FT_Byte)exc->FT_GS.round_state );
+ 
+     do
+     {
+@@ -7169,11 +7169,11 @@
+ 
+             if ( opcode < 4 )
+             {
+-              CUR.GS.projVector.x = AA;
+-              CUR.GS.projVector.y = BB;
++              CUR.FT_GS.projVector.x = AA;
++              CUR.FT_GS.projVector.y = BB;
+ 
+-              CUR.GS.dualVector.x = AA;
+-              CUR.GS.dualVector.y = BB;
++              CUR.FT_GS.dualVector.x = AA;
++              CUR.FT_GS.dualVector.y = BB;
+             }
+             else
+             {
+@@ -7182,8 +7182,8 @@
+ 
+             if ( ( opcode & 2 ) == 0 )
+             {
+-              CUR.GS.freeVector.x = AA;
+-              CUR.GS.freeVector.y = BB;
++              CUR.FT_GS.freeVector.x = AA;
++              CUR.FT_GS.freeVector.y = BB;
+             }
+             else
+             {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.ttinterp.h.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,39 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/truetype/ttinterp.h	2007-02-12 17:00:16.000000000 -0500
++++ src/truetype/ttinterp.h	2007-12-15 08:12:17.895216000 -0500
+@@ -138,7 +138,7 @@
+     FT_Size_Metrics    metrics;
+     TT_Size_Metrics    tt_metrics; /* size metrics */
+ 
+-    TT_GraphicsState   GS;         /* current graphics state */
++    TT_GraphicsState   FT_GS;      /* current graphics state */
+ 
+     FT_Int             curRange;  /* current code range number   */
+     FT_Byte*           code;      /* current code range          */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.ttobjs.c.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,57 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/truetype/ttobjs.c	2007-05-24 15:33:59.000000000 -0400
++++ src/truetype/ttobjs.c	2007-12-15 08:15:00.204463000 -0500
+@@ -510,7 +510,7 @@
+       error = TT_Err_Ok;
+ 
+     /* save as default graphics state */
+-    size->GS = exec->GS;
++    size->FT_GS = exec->FT_GS;
+ 
+     TT_Save_Context( exec, size );
+ 
+@@ -628,7 +628,7 @@
+ 
+     size->twilight.n_points = n_twilight;
+ 
+-    size->GS = tt_default_graphics_state;
++    size->FT_GS = tt_default_graphics_state;
+ 
+     /* set `face->interpreter' according to the debug hook present */
+     {
+@@ -690,7 +690,7 @@
+       for ( i = 0; i < (FT_UInt)size->storage_size; i++ )
+         size->storage[i] = 0;
+ 
+-      size->GS = tt_default_graphics_state;
++      size->FT_GS = tt_default_graphics_state;
+ 
+       error = tt_size_run_prep( size );
+       if ( !error )
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/freetype/freetype-2.3.5.ttobjs.h.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,39 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/truetype/ttobjs.h	2007-05-24 15:38:50.000000000 -0400
++++ src/truetype/ttobjs.h	2007-12-15 08:11:52.389103000 -0500
+@@ -339,7 +339,7 @@
+ 
+     TT_CodeRangeTable  codeRangeTable;
+ 
+-    TT_GraphicsState   GS;
++    TT_GraphicsState   FT_GS;
+ 
+     FT_ULong           cvt_size;      /* the scaled control value table */
+     FT_Long*           cvt;
--- a/open-src/lib/freetype/freetype-config.patch	Fri Feb 22 14:58:31 2008 -0800
+++ b/open-src/lib/freetype/freetype-config.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -1,4 +1,4 @@
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 # Use subject to license terms.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
@@ -10,7 +10,7 @@
 # copyright notice(s) and this permission notice appear in all copies of
 # the Software and that both the above copyright notice(s) and this
 # permission notice appear in supporting documentation.
-# 
+#
 # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
 # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
 # MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
@@ -19,37 +19,31 @@
 # INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
 # FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
 # NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
-# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
-# 
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
 # Except as contained in this notice, the name of a copyright holder
 # shall not be used in advertising or otherwise to promote the sale, use
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 
-Remove -lz from libraries line since Solaris shared libraries already take
-care of that dependency.  (Bug 6593503)
-
-Add -I ${includedir} to pkg-config file to fix include paths.  (Bug 6307947)
-
---- builds/unix/freetype-config.in	2005-06-04 14:58:48.000000000 -0700
-+++ builds/unix/freetype-config.in	2007-08-16 15:53:40.933280000 -0700
+--- builds/unix/freetype-config.in	2006-10-12 00:51:08.000000000 -0400
++++ builds/unix/freetype-config.in	2008-01-28 15:51:01.825647000 -0500
 @@ -141,7 +141,7 @@
    if test "$enable_shared" = "yes" ; then
      eval "rpath=\"$hardcode_libdir_flag_spec\""
    fi
--  libs="-lfreetype @LIBZ@"
-+  libs="-lfreetype"
+-  libs="-lfreetype @LIBZ@ @FT2_EXTRA_LIBS@"
++  libs="-lfreetype @FT2_EXTRA_LIBS@"
    if test "$libdir" != "/usr/lib" && test "$libdir" != "/usr/lib64"; then
      echo -L$libdir $rpath $libs
    else
 
---- builds/unix/freetype2.in	2003-06-01 14:30:03.000000000 -0700
-+++ builds/unix/freetype2.in	2007-08-16 15:57:00.539973000 -0700
+--- builds/unix/freetype2.in	2006-10-12 00:51:08.000000000 -0400
++++ builds/unix/freetype2.in	2008-01-28 15:51:38.094177000 -0500
 @@ -7,5 +7,5 @@
  Description: A free, high-quality, and portable font engine.
  Version: @ft_version@
  Requires:
--Libs: -L${libdir} -lfreetype @LIBZ@
--Cflags: -I${includedir}/freetype2
-+Libs: -L${libdir} -lfreetype
-+Cflags: -I${includedir} -I${includedir}/freetype2
+-Libs: -L${libdir} -lfreetype @LIBZ@ @FT2_EXTRA_LIBS@
++Libs: -L${libdir} -lfreetype @FT2_EXTRA_LIBS@
+ Cflags: -I${includedir}/freetype2 -I${includedir}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libICE/Makefile	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,79 @@
+###############################################################################
+#
+# ICE 1.x Makefile
+#
+# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+# 
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+#
+# @(#)Makefile	1.1	08/02/21
+#
+
+# Package name used in tarballs
+LIB_MODULE=libICE
+
+# Version number (used in path names)
+LIB_VERS=1.0.4
+
+# Patches to apply to source after unpacking, in order
+SOURCE_PATCHES = icetrans.c.patch
+
+# Library name (used for specfiles/mapfiles)
+LIBNAME=ICE
+
+# Man pages to apply Sun footer to & attributes to list
+SUNTOUCHED_MANPAGES=
+SUN_PACKAGE=SUNWxwice
+LIB_STABILITY=Committed
+LIB_MAN_SUFFIX=3ICE
+LIB_SUNTOUCH_MAN_FLAGS= -a '{Availability, $(SUN_PACKAGE)} {Interface Stability, $(LIB_STABILITY)} {MT-Level, Unsafe}'
+
+# Command line options to GNU autoconf configure script
+LIB_ADD_CONFIG_OPTS = --disable-libtool-lock \
+		      --enable-unix-transport \
+		      --enable-tcp-transport \
+		      --enable-IPv6 \
+		      --enable-lint-library \
+		      --with-pic \
+		      --with-lint \
+		      --with-release-version="1.0.4"
+
+# Library built in tree
+LIB_BUILT=$(BUILD_DIR)/.libs/libICE.so.6.3.0
+
+# libICE specific flags needed for Xtrans
+LIB_ADD_CFLAGS = -DTCPCONN -DUNIXCONN -DICE_t -DTRANS_CLIENT -DTRANS_SERVER -ULOCALCONN
+
+# Use specfile to make mapfile & link with it
+LIB_ADD_BUILD_DEPS = $(BUILD_DIR)/$(SPECMAP)
+
+LIB_ADD_LD_OPTIONS = -M $(PWD)/$(BUILD_DIR)/$(SPECMAP)
+
+# pkg-config files that need to have -R added
+FIX_PC_FILES=ice.pc.in
+
+include ../Makefile.inc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libICE/icetrans.c.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,62 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/icetrans.c.orig	2006-07-11 16:41:03.000000000 -0400
++++ src/icetrans.c	2008-02-08 18:29:40.557095000 -0500
+@@ -26,8 +26,31 @@
+ #include <config.h>
+ #endif
+ 
++#ifndef ICE_t
+ #define ICE_t
++#endif
++
++#ifndef TRANS_CLIENT
+ #define TRANS_CLIENT
++#endif
++
++#ifndef TRANS_SERVER
+ #define TRANS_SERVER
++#endif
++
++#ifndef TCPCONN
++#define TCPCONN
++#endif
++
++#ifndef UNIXCONN
++#define UNIXCONN
++#endif
++
++#ifdef LOCALCONN
++#undef LOCALCONN
++#endif
++
++#include <sys/filio.h>
+ 
+ #include <X11/Xtrans/transport.c>
++
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libICE/spec/ICE.spec	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,669 @@
+#
+# Copyright (c) 2008 by Sun Microsystems, Inc.
+# All rights reserved.
+#
+# @(#)ICE.spec	1.5   08/02/21
+#
+#lib/ICE/spec/ICE.spec
+#
+
+Function	_IceAddOpcodeMapping
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceAddReplyWait
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceAuthCount
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceAuthNames
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceCheckReplyReady
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceConnectionClosed
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceConnectionCount
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceConnectionObjs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceConnectionOpened
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceConnectionStrings
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceDefaultErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceDefaultIOErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorAuthenticationFailed
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorAuthenticationRejected
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorBadLength
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorBadMajor
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorBadMinor
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorBadState
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorBadValue
+Version         SUNWprivate
+Arch		all
+End
+
+Data		_IceErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorMajorOpcodeDuplicate
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorNoAuthentication
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorNoVersion
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorProtocolDuplicate
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorSetupFailed
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceErrorUnknownProtocol
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceFreeConnection
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceGetPaAuthData
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceGetPaValidAuthIndices
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceGetPeerName
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceGetPoAuthData
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceGetPoValidAuthIndices
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceIOErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceLastMajorOpcode
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IcePaAuthDataEntries
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IcePaAuthDataEntryCount
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IcePaAuthProcs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IcePaMagicCookie1Proc
+Version         SUNWprivate
+Arch		all
+End
+
+Data		_IcePoAuthProcs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IcePoMagicCookie1Proc
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceProcessCoreMessage
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceProtocols
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceRead
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceReadSkip
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceSearchReplyWaits
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceSetReplyReady
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransAccept
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransBytesReadable
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransClose
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransCloseForCloning
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransConnect
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransCreateListener
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransDisconnect
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransFreeConnInfo
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransGetConnectionNumber
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransGetHostname
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransGetMyAddr
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransGetMyNetworkId
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransGetPeerAddr
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceTransGetPeerNetworkId
+Version         SUNWprivate
+Arch		all
+End
+
+Function	_IceTransIsLocal
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransMakeAllCLTSServerListeners
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransMakeAllCOTSServerListeners
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransOpenCLTSClient
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransOpenCLTSServer
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransOpenCOTSClient
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransOpenCOTSServer
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransRead
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransReadv
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransResetListener
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransSetOption
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceTransSocketINETFuncs
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceTransSocketLocalFuncs
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceTransSocketTCPFuncs
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceTransSocketUNIXFuncs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransWrite
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceTransWritev
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceVersionCount
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceVersions
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_IceWatchProcs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_IceWrite
+Version         SUNWprivate
+Arch		all
+End
+
+Data		_end
+Version		SUNWprivate
+Arch		all
+End
+
+Function	IceAcceptConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceAddConnectionWatch
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceAllocScratch
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceAppLockConn
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceAppUnlockConn
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceAuthFileName
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceCheckShutdownNegotiation
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceCloseConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceComposeNetworkIdList
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceConnectionNumber
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceConnectionStatus
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceConnectionString
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceFlush
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceFreeAuthFileEntry
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceFreeListenObjs
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGenerateMagicCookie
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetAuthFileEntry
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetConnectionContext
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetInBufSize
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetListenConnectionNumber
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetListenConnectionString
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetOutBufSize
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceInitThreads
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceLastReceivedSequenceNumber
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceLastSentSequenceNumber
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceListenForConnections
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceLockAuthFile
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceGetPeerName
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceOpenConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IcePing
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceProcessMessages
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceProtocolRevision
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceProtocolSetup
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceProtocolShutdown
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceProtocolVersion
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceReadAuthFileEntry
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceRegisterForProtocolReply
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceRegisterForProtocolSetup
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceRelease
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceRemoveConnectionWatch
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceSetErrorHandler
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceSetHostBasedAuthProc
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceSetIOErrorHandler
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceSetPaAuthData
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceSetShutdownNegotiation
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceSwapping
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceUnlockAuthFile
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceVendor
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceWriteAuthFileEntry
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	IceListenForWellKnownConnections
+Version		SUNW_1.1
+Arch		all
+End
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libICE/spec/versions	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2000 by Sun Microsystems, Inc.
+# All rights reserved.
+#
+#ident  "@(#)versions	1.3	05/05/12 SMI"
+#
+#lib/ICE/spec/versions
+#
+
+amd64 {
+        SUNW_1.1;
+        SUNWprivate;
+}
+i386 {
+        SUNW_1.1;
+        SUNWprivate;
+}
+sparc {
+        SUNW_1.1;
+        SUNWprivate;
+}
+sparcv9 {
+        SUNW_1.1;
+        SUNWprivate;
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/Makefile	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,76 @@
+###############################################################################
+#
+# SM 1.x Makefile
+#
+# Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+# 
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+# 
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+#
+# @(#)Makefile	1.2	08/02/09
+#
+
+# Package name used in tarballs
+LIB_MODULE=libSM
+
+# Version number (used in path names)
+LIB_VERS=1.0.3
+
+# Patches to apply to source after unpacking, in order
+SOURCE_PATCHES = libsm.globals.h.patch libsm.SMlibint.h.patch libsm.sm_client.c.patch libsm.sm_manager.c.patch
+
+# Library name (used for specfiles/mapfiles)
+LIBNAME=SM
+
+# Man pages to apply Sun footer to & attributes to list
+SUNTOUCHED_MANPAGES=
+SUN_PACKAGE=SUNWxwplt
+LIB_STABILITY=Committed
+LIB_MAN_SUFFIX=3SM
+LIB_SUNTOUCH_MAN_FLAGS= -a '{Availability, $(SUN_PACKAGE)} {Interface Stability, $(LIB_STABILITY)} {MT-Level, Unsafe}'
+
+# Command line options to GNU autoconf configure script
+LIB_ADD_CONFIG_OPTS = --disable-libtool-lock \
+		      --enable-unix-transport \
+		      --enable-tcp-transport \
+		      --enable-IPv6 \
+		      --with-pic \
+		      --with-release-version="1.0.3"
+
+# Library built in tree
+LIB_BUILT=$(BUILD_DIR)/.libs/libSM.so.6.0.0
+
+# Use specfile to make mapfile & link with it
+LIB_ADD_BUILD_DEPS = $(BUILD_DIR)/$(SPECMAP)
+
+LIB_ADD_LD_OPTIONS = -M $(PWD)/$(BUILD_DIR)/$(SPECMAP)
+
+LIB_ADD_LDFLAGS = -lsocket -lnsl
+
+# pkg-config files that need to have -R added
+FIX_PC_FILES=sm.pc.in
+
+include ../Makefile.inc
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/libsm.SMlibint.h.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,50 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/SMlibint.h.orig	2007-05-13 04:48:38.000000000 -0400
++++ src/SMlibint.h	2008-02-09 02:07:50.405882000 -0500
+@@ -498,6 +498,9 @@
+ 
+ extern int     _SmcOpcode;
+ extern int     _SmsOpcode;
++extern int     _SmVersionCount;
++extern int     _SmAuthCount;
++extern char*   _SmAuthNames[];
+ 
+ extern SmsNewClientProc	_SmsNewClientProc;
+ extern SmPointer	_SmsNewClientData;
+@@ -505,4 +508,9 @@
+ extern SmcErrorHandler _SmcErrorHandler;
+ extern SmsErrorHandler _SmsErrorHandler;
+ 
++extern IcePoVersionRec  _SmcVersions[];
++extern IcePaVersionRec  _SmsVersions[];
++extern IcePoAuthProc    _SmcAuthProcs[];
++extern IcePaAuthProc    _SmsAuthProcs[];
++
+ #endif /* _SMLIBINT_H_ */
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/libsm.globals.h.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,59 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/globals.h.orig	2007-05-13 04:48:38.000000000 -0400
++++ src/globals.h	2008-02-09 02:23:34.978706000 -0500
+@@ -33,9 +33,28 @@
+ 
+ extern void _SmcDefaultErrorHandler ();
+ extern void _SmsDefaultErrorHandler ();
++extern void _SmcProcessMessage(IceConn, IcePointer, int,
++        unsigned long, Bool, IceReplyWaitInfo*, Bool*);
++extern void _SmsProcessMessage(IceConn, IcePointer, int,
++        unsigned long, Bool);
++
++extern IcePoAuthStatus  _IcePoMagicCookie1Proc();
++extern IcePaAuthStatus _IcePaMagicCookie1Proc();
+ 
+ int 	_SmcOpcode = 0;
+ int 	_SmsOpcode = 0;
++int     _SmVersionCount = 1;
++int     _SmAuthCount = 1;
++char    *_SmAuthNames[] = { "MIT-MAGIC-COOKIE-1" };
++
++IcePoVersionRec _SmcVersions[] = {
++    { SmProtoMajor, SmProtoMinor, _SmcProcessMessage } };
++
++IcePaVersionRec _SmsVersions[] = {
++    { SmProtoMajor, SmProtoMinor, _SmsProcessMessage } };
++
++IcePoAuthProc   _SmcAuthProcs[] = { _IcePoMagicCookie1Proc };
++IcePaAuthProc   _SmsAuthProcs[] = { _IcePaMagicCookie1Proc };
+ 
+ #ifndef __UNIXOS2__
+ SmsNewClientProc _SmsNewClientProc;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/libsm.sm_client.c.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,66 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/sm_client.c.orig	2007-05-13 04:48:38.000000000 -0400
++++ src/sm_client.c	2008-02-09 01:19:22.757882000 -0500
+@@ -39,7 +39,6 @@
+ #include "globals.h"
+ 
+ extern IcePoAuthStatus _IcePoMagicCookie1Proc ();
+-extern void _SmcProcessMessage ();
+ static void set_callbacks();
+ 
+ 
+@@ -75,16 +74,6 @@
+     _SmcRegisterClientReply	reply;
+     Bool			gotReply, ioErrorOccured;
+ 
+-    const char *auth_names[] = {"MIT-MAGIC-COOKIE-1"};
+-    IcePoAuthProc auth_procs[] = {_IcePoMagicCookie1Proc};
+-    int auth_count = 1;
+-
+-    IcePoVersionRec versions[] = {
+-        {SmProtoMajor, SmProtoMinor, _SmcProcessMessage}
+-    };
+-    int version_count = 1;
+-
+-
+     *clientIdRet = NULL;
+ 
+     if (errorStringRet && errorLength > 0)
+@@ -100,8 +89,8 @@
+ 	 */
+ 
+ 	if ((_SmcOpcode = IceRegisterForProtocolSetup ("XSMP",
+-	    SmVendorString, SmReleaseString, version_count, versions,
+-            auth_count, auth_names, auth_procs, NULL)) < 0)
++	    SmVendorString, SmReleaseString, _SmVersionCount, _SmcVersions,
++            _SmAuthCount, _SmAuthNames, _SmcAuthProcs, NULL)) < 0)
+ 	{
+ 	    if (errorStringRet && errorLength > 0) {
+ 		strncpy (errorStringRet,
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/libsm.sm_manager.c.patch	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,70 @@
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
+# Use subject to license terms.
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, and/or sell copies of the Software, and to permit persons
+# to whom the Software is furnished to do so, provided that the above
+# copyright notice(s) and this permission notice appear in all copies of
+# the Software and that both the above copyright notice(s) and this
+# permission notice appear in supporting documentation.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
+# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
+# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
+# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
+# # WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+# Except as contained in this notice, the name of a copyright holder
+# shall not be used in advertising or otherwise to promote the sale, use
+# or other dealings in this Software without prior written authorization
+# of the copyright holder.
+
+--- src/sm_manager.c.orig	2007-05-13 05:47:12.000000000 -0400
++++ src/sm_manager.c	2008-02-09 02:08:47.516426000 -0500
+@@ -43,11 +43,10 @@
+ #endif
+ 
+ extern IcePaAuthStatus _IcePaMagicCookie1Proc ();
+-extern void _SmsProcessMessage ();
+ 
+ 
+ 
+-static Status
++Status
+ _SmsProtocolSetupProc (IceConn    iceConn,
+ 		       int majorVersion,
+ 		       int minorVersion,
+@@ -129,15 +128,6 @@
+ char 		 		*errorStringRet;
+ 
+ {
+-    const char *auth_names[] = {"MIT-MAGIC-COOKIE-1"};
+-    IcePaAuthProc auth_procs[] = {_IcePaMagicCookie1Proc};
+-    int auth_count = 1;
+-
+-    IcePaVersionRec versions[] = {
+-        {SmProtoMajor, SmProtoMinor, _SmsProcessMessage}
+-    };
+-    int version_count = 1;
+-
+     if (errorStringRet && errorLength > 0)
+ 	*errorStringRet = '\0';
+ 
+@@ -157,8 +147,8 @@
+     {
+ 
+ 	if ((_SmsOpcode = IceRegisterForProtocolReply ("XSMP",
+-	    vendor, release, version_count, versions,
+-	    auth_count, auth_names, auth_procs, hostBasedAuthProc,
++	    vendor, release, _SmVersionCount, _SmsVersions,
++	    _SmAuthCount, _SmAuthNames, _SmsAuthProcs, hostBasedAuthProc,
+ 	    _SmsProtocolSetupProc,
+ 	    NULL,	/* IceProtocolActivateProc - we don't care about
+ 			   when the Protocol Reply is sent, because the
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/spec/SM.spec	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,289 @@
+#
+# Copyright (c) 2000 by Sun Microsystems, Inc.
+# All rights reserved.
+#
+#ident  "@(#)SM.spec 1.3     00/06/19 SMI"
+#
+#lib/SM/spec/SM.spec
+#
+
+Data		_SmAuthCount
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmAuthNames
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmVersionCount
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmcAuthProcs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_SmcDefaultErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmcErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmcOpcode
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_SmcProcessMessage
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmcVersions
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmsAuthProcs
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_SmsDefaultErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmsErrorHandler
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmsNewClientData
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmsNewClientProc
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmsOpcode
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_SmsProcessMessage
+Version		SUNWprivate
+Arch		all
+End
+
+Function	_SmsProtocolSetupProc
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_SmsVersions
+Version		SUNWprivate
+Arch		all
+End
+
+Data		_end
+Version		SUNWprivate
+Arch		all
+End
+
+Function	SmFreeProperty
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmFreeReasons
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcClientID
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcCloseConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcDeleteProperties
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcGetIceConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcGetProperties
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcInteractDone
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcInteractRequest
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcModifyCallbacks
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcOpenConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcProtocolRevision
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcProtocolVersion
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcRelease
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcRequestSaveYourself
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcRequestSaveYourselfPhase2
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcSaveYourselfDone
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcSetErrorHandler
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcSetProperties
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmcVendor
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsCleanUp
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsClientHostName
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsClientID
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsDie
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsGenerateClientID
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsGetIceConnection
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsInitialize
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsInteract
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsProtocolRevision
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsProtocolVersion
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsRegisterClientReply
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsReturnProperties
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsSaveComplete
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsSaveYourself
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsSaveYourselfPhase2
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsSetErrorHandler
+Version		SUNW_1.1
+Arch		all
+End
+
+Function	SmsShutdownCancelled
+Version		SUNW_1.1
+Arch		all
+End
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/open-src/lib/libSM/spec/versions	Fri Feb 22 15:07:27 2008 -0800
@@ -0,0 +1,26 @@
+#
+# Copyright (c) 2000 by Sun Microsystems, Inc.
+# All rights reserved.
+#
+#ident  "@(#)versions	1.3	05/05/12 SMI"
+#
+#lib/SM/spec/versions
+#
+
+ 
+amd64 {
+        SUNW_1.1;
+        SUNWprivate;
+}
+i386 {
+        SUNW_1.1;
+        SUNWprivate;
+}
+sparc {
+        SUNW_1.1;
+        SUNWprivate;
+}
+sparcv9 {
+        SUNW_1.1;
+        SUNWprivate;
+}
--- a/packages/SUNWfreetype2/prototype	Fri Feb 22 14:58:31 2008 -0800
+++ b/packages/SUNWfreetype2/prototype	Fri Feb 22 15:07:27 2008 -0800
@@ -1,6 +1,6 @@
 ###########################################################################
 #
-# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@
 #
 ###########################################################################
 #
-#	@(#)prototype	1.14	07/12/14 SMI
+#	@(#)prototype	1.15	08/02/22 SMI
 #
 #  FreeType 2 package
 
@@ -73,10 +73,13 @@
 f none include/freetype2/freetype/ftchapters.h			0444 root bin
 f none include/freetype2/freetype/fterrdef.h			0444 root bin
 f none include/freetype2/freetype/fterrors.h			0444 root bin
+f none include/freetype2/freetype/ftgasp.h			0444 root bin
 f none include/freetype2/freetype/ftglyph.h			0444 root bin
+f none include/freetype2/freetype/ftgxval.h			0444 root bin
 f none include/freetype2/freetype/ftgzip.h			0444 root bin
 f none include/freetype2/freetype/ftimage.h			0444 root bin
 f none include/freetype2/freetype/ftincrem.h			0444 root bin
+f none include/freetype2/freetype/ftlcdfil.h			0444 root bin
 f none include/freetype2/freetype/ftlist.h			0444 root bin
 f none include/freetype2/freetype/ftlzw.h			0444 root bin
 f none include/freetype2/freetype/ftmac.h			0444 root bin
@@ -91,8 +94,6 @@
 f none include/freetype2/freetype/ftsnames.h			0444 root bin
 f none include/freetype2/freetype/ftstroke.h			0444 root bin
 f none include/freetype2/freetype/ftsynth.h			0444 root bin
-f none include/freetype2/freetype/ftsysio.h			0444 root bin
-f none include/freetype2/freetype/ftsysmem.h			0444 root bin
 f none include/freetype2/freetype/ftsystem.h			0444 root bin
 f none include/freetype2/freetype/fttrigon.h			0444 root bin
 f none include/freetype2/freetype/fttypes.h			0444 root bin
@@ -104,16 +105,6 @@
 f none include/freetype2/freetype/tttags.h			0444 root bin
 f none include/freetype2/freetype/ttunpat.h			0444 root bin
 
-!search $HOME/include/freetype2/freetype/cache
-d none include/freetype2/freetype/cache				0755 root bin
-f none include/freetype2/freetype/cache/ftccache.h		0444 root bin
-f none include/freetype2/freetype/cache/ftccmap.h		0444 root bin
-f none include/freetype2/freetype/cache/ftcglyph.h		0444 root bin
-f none include/freetype2/freetype/cache/ftcimage.h		0444 root bin
-f none include/freetype2/freetype/cache/ftcmanag.h		0444 root bin
-f none include/freetype2/freetype/cache/ftcmru.h		0444 root bin
-f none include/freetype2/freetype/cache/ftcsbits.h		0444 root bin
-
 !search $HOME/include/freetype2/freetype/config
 d none include/freetype2/freetype/config			0755 root bin
 f none include/freetype2/freetype/config/ftconfig.h		0444 root bin
@@ -122,43 +113,9 @@
 f none include/freetype2/freetype/config/ftoption.h		0444 root bin
 f none include/freetype2/freetype/config/ftstdlib.h		0444 root bin
 
-!search $HOME/include/freetype2/freetype/internal
-d none include/freetype2/freetype/internal			0755 root bin
-f none include/freetype2/freetype/internal/autohint.h		0444 root bin
-f none include/freetype2/freetype/internal/ftcalc.h		0444 root bin
-f none include/freetype2/freetype/internal/ftdebug.h		0444 root bin
-f none include/freetype2/freetype/internal/ftdriver.h		0444 root bin
-f none include/freetype2/freetype/internal/ftgloadr.h		0444 root bin
-f none include/freetype2/freetype/internal/ftmemory.h		0444 root bin
-f none include/freetype2/freetype/internal/ftobjs.h		0444 root bin
-f none include/freetype2/freetype/internal/ftrfork.h		0444 root bin
-f none include/freetype2/freetype/internal/ftserv.h		0444 root bin
-f none include/freetype2/freetype/internal/ftstream.h		0444 root bin
-f none include/freetype2/freetype/internal/fttrace.h		0444 root bin
-f none include/freetype2/freetype/internal/ftvalid.h		0444 root bin
-f none include/freetype2/freetype/internal/internal.h		0444 root bin
-f none include/freetype2/freetype/internal/pcftypes.h		0444 root bin
-f none include/freetype2/freetype/internal/psaux.h		0444 root bin
-f none include/freetype2/freetype/internal/pshints.h		0444 root bin
-f none include/freetype2/freetype/internal/sfnt.h		0444 root bin
-f none include/freetype2/freetype/internal/svbdf.h		0444 root bin
-f none include/freetype2/freetype/internal/svgldict.h		0444 root bin
-f none include/freetype2/freetype/internal/svmm.h		0444 root bin
-f none include/freetype2/freetype/internal/svotval.h		0444 root bin
-f none include/freetype2/freetype/internal/svpfr.h		0444 root bin
-f none include/freetype2/freetype/internal/svpostnm.h		0444 root bin
-f none include/freetype2/freetype/internal/svpscmap.h		0444 root bin
-f none include/freetype2/freetype/internal/svpsinfo.h		0444 root bin
-f none include/freetype2/freetype/internal/svsfnt.h		0444 root bin
-f none include/freetype2/freetype/internal/svttcmap.h		0444 root bin
-f none include/freetype2/freetype/internal/svwinfnt.h		0444 root bin
-f none include/freetype2/freetype/internal/svxf86nm.h		0444 root bin
-f none include/freetype2/freetype/internal/t1types.h		0444 root bin
-f none include/freetype2/freetype/internal/tttypes.h		0444 root bin
-
 !search $HOME/lib
 d none lib 							0755 root bin
-f none lib/libfreetype.so.6=$HOME/lib/libfreetype.so.6.3.8	0755 root bin
+f none lib/libfreetype.so.6=$HOME/lib/libfreetype.so.6.3.16	0755 root bin
 s none lib/libfreetype.so=libfreetype.so.6
 
 d none share 							0755 root sys 
@@ -176,7 +133,7 @@
 !search $HOME/lib/$plat_64
 d none lib/$plat_64						0755 root bin
 s none lib/64=$plat_64
-f none lib/$plat_64/libfreetype.so.6=$HOME/lib/$plat_64/libfreetype.so.6.3.8	0755 root bin
+f none lib/$plat_64/libfreetype.so.6=$HOME/lib/$plat_64/libfreetype.so.6.3.16	0755 root bin
 s none lib/$plat_64/libfreetype.so=libfreetype.so.6
 
 !search $HOME/lib/$plat_64/pkgconfig
@@ -184,4 +141,3 @@
 f none lib/$plat_64/pkgconfig/freetype2.pc			0644 root bin
 
 
-
--- a/packages/SUNWxwice/prototype	Fri Feb 22 14:58:31 2008 -0800
+++ b/packages/SUNWxwice/prototype	Fri Feb 22 15:07:27 2008 -0800
@@ -1,6 +1,6 @@
 ###########################################################################
 #
-# Copyright 2004 Sun Microsystems, Inc.  All rights reserved.
+# Copyright 2008 Sun Microsystems, Inc.  All rights reserved.
 #
 # Permission is hereby granted, free of charge, to any person obtaining a
 # copy of this software and associated documentation files (the
@@ -29,7 +29,7 @@
 #
 ###########################################################################
 #
-# ident "@(#)prototype 1.11     07/11/05 SMI"
+# ident "@(#)prototype 1.12     08/02/22 SMI"
 #
 #    X Window System ICE library
 
@@ -37,24 +37,34 @@
 i copyright=../copyright
 i depend
 
-!HOME=../openwin
+!HOME=../X11
 
-d none openwin				0755 root bin
+d none X11				0755 root bin
 
 !search      $HOME/bin
-d none openwin/bin			0755 root bin
-f none openwin/bin/iceauth		0755 root bin
+d none X11/bin			0755 root bin
+f none X11/bin/iceauth		0755 root bin
+
+# Backwards compatible symbolic link
+s none openwin/bin/iceauth=../../X11/bin/iceauth
 
 !search  $HOME/lib
-d none openwin/lib 			0755 root bin
-f none openwin/lib/libICE.so.6          0755 root bin
-s none openwin/lib/libICE.so=./libICE.so.6
+d none X11/lib 			0755 root bin
+f none X11/lib/libICE.so.6=$HOME/X11/lib/libICE.so.6.3.8      0755 root bin
+s none X11/lib/libICE.so=./libICE.so.6
 
+# Backwards compatible symbolic links
+s none openwin/lib/libICE.so.6=../../X11/lib/libICE.so.6
+s none openwin/lib/libICE.so=../../X11/lib/libICE.so.6
 
 #    X Window System ICE 64-bit library
 !search  $HOME/lib/$plat_64
-d none openwin/lib/$plat_64 				0755 root bin
-s none openwin/lib/64=$plat_64
-f none openwin/lib/$plat_64/libICE.so.6          	0755 root bin
-s none openwin/lib/$plat_64/libICE.so=./libICE.so.6
+d none X11/lib/$plat_64 				0755 root bin
+s none X11/lib/64=$plat_64
+f none X11/lib/$plat_64/libICE.so.6=$HOME/X11/lib/$plat_64/libICE.so.6.3.8  0755 root bin
+s none X11/lib/$plat_64/libICE.so=./libICE.so.6
 
+# 64-bit Backwards compatible symbolic links
+s none openwin/lib/$plat_64/libICE.so.6=../../X11/lib/$plat_64/libICE.so.6
+s none openwin/lib/$plat_64/libICE.so=../../X11/lib/$plat_64/libICE.so.6
+
--- a/packages/SUNWxwinc/prototype	Fri Feb 22 14:58:31 2008 -0800
+++ b/packages/SUNWxwinc/prototype	Fri Feb 22 15:07:27 2008 -0800
@@ -27,7 +27,7 @@
 # of the copyright holder.
 # 
 #
-# ident	"@(#)prototype	35.75	08/01/16 SMI"
+# ident	"@(#)prototype	35.76	08/02/22 SMI"
 #
 #  X Window System include files
 
@@ -453,27 +453,38 @@
 s none openwin/share/include/X11/extensions/Xrender.h=../../../../../X11/include/X11/extensions/Xrender.h
 f none X11/include/X11/extensions/Xrender.h 0444 root bin
 
+# open-src/lib/libSM
+d none openwin/share/include/X11/SM 0755 root bin
+d none X11/include/X11/SM 0755 root bin
+s none openwin/share/include/X11/SM/SM.h=../../../../../X11/include/X11/SM/SM.h
+s none openwin/share/include/X11/SM/SMlib.h=../../../../../X11/include/X11/SM/SMlib.h
+s none openwin/share/include/X11/SM/SMproto.h=../../../../../X11/include/X11/SM/SMproto.h
+f none X11/include/X11/SM/SM.h  0644 root bin
+f none X11/include/X11/SM/SMlib.h  0644 root bin
+f none X11/include/X11/SM/SMproto.h  0644 root bin
+
+# open-src/lib/libICE
+d none openwin/share/include/X11/ICE 0755 root bin
+d none X11/include/X11/ICE 0755 root bin
+s none openwin/share/include/X11/ICE/ICE.h=../../../../../X11/include/X11/ICE/ICE.h
+s none openwin/share/include/X11/ICE/ICElib.h=../../../../../X11/include/X11/ICE/ICElib.h
+s none openwin/share/include/X11/ICE/ICEproto.h=../../../../../X11/include/X11/ICE/ICEproto.h
+s none openwin/share/include/X11/ICE/ICEmsg.h=../../../../../X11/include/X11/ICE/ICEmsg.h
+s none openwin/share/include/X11/ICE/ICEconn.h=../../../../../X11/include/X11/ICE/ICEconn.h
+s none openwin/share/include/X11/ICE/ICEutil.h=../../../../../X11/include/X11/ICE/ICEutil.h
+f none X11/include/X11/ICE/ICE.h 0644 root bin
+f none X11/include/X11/ICE/ICElib.h 0644 root bin
+f none X11/include/X11/ICE/ICEproto.h 0644 root bin
+f none X11/include/X11/ICE/ICEmsg.h 0644 root bin
+f none X11/include/X11/ICE/ICEconn.h 0644 root bin
+f none X11/include/X11/ICE/ICEutil.h 0644 root bin
+
 d none openwin/share/include/dga 0755 root bin
 !search                $HOME/openwin/include/dga
 f none openwin/share/include/dga/dga.h 0644 root bin
 f none openwin/share/include/dga/dga_externaldefs.h 0644 root bin
 f none openwin/share/include/dga/XineramaInfo.h 0644 root bin
 
-d none openwin/share/include/X11/SM 0755 root bin
-!search                $HOME/openwin/include/X11/SM
-f none openwin/share/include/X11/SM/SM.h 0644 root bin
-f none openwin/share/include/X11/SM/SMlib.h 0644 root bin
-f none openwin/share/include/X11/SM/SMproto.h 0644 root bin
-
-d none openwin/share/include/X11/ICE 0755 root bin
-!search                $HOME/openwin/include/X11/ICE
-f none openwin/share/include/X11/ICE/ICE.h 0644 root bin
-f none openwin/share/include/X11/ICE/ICElib.h 0644 root bin
-f none openwin/share/include/X11/ICE/ICEproto.h 0644 root bin
-f none openwin/share/include/X11/ICE/ICEmsg.h 0644 root bin
-f none openwin/share/include/X11/ICE/ICEconn.h 0644 root bin
-f none openwin/share/include/X11/ICE/ICEutil.h 0644 root bin
-
 # Xsun DDK headers
 !search                $HOME/openwin/server/include
 d none openwin/server					0755 root bin
@@ -614,6 +625,8 @@
 
 # Libraries
 
+f none lib/pkgconfig/ice.pc			0444 root bin
+f none lib/pkgconfig/sm.pc			0444 root bin
 f none lib/pkgconfig/xau.pc			0444 root bin
 f none lib/pkgconfig/xcomposite.pc		0444 root bin
 f none lib/pkgconfig/xcursor.pc			0444 root bin
@@ -662,6 +675,8 @@
 # Libraries need separate ones for 64-bit to get library paths right
 
 !search $HOME/lib/$plat_64/pkgconfig
+f none lib/$plat_64/pkgconfig/ice.pc			0444 root bin
+f none lib/$plat_64/pkgconfig/sm.pc			0444 root bin
 f none lib/$plat_64/pkgconfig/xau.pc			0444 root bin
 f none lib/$plat_64/pkgconfig/xcomposite.pc		0444 root bin
 f none lib/$plat_64/pkgconfig/xcursor.pc		0444 root bin
--- a/packages/SUNWxwplt/prototype_com	Fri Feb 22 14:58:31 2008 -0800
+++ b/packages/SUNWxwplt/prototype_com	Fri Feb 22 15:07:27 2008 -0800
@@ -26,7 +26,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 # 
-#	"@(#)prototype_com	35.153	08/02/21   Sun Microsystems" 
+#	"@(#)prototype_com	35.154	08/02/22   Sun Microsystems" 
 #
 # X Window System required core package
 
@@ -213,9 +213,7 @@
 f none openwin/lib/libowconfig.so.0 	0755 root bin
 f none openwin/lib/libFS.so.5	 	0755 root bin
 s none openwin/lib/libFS.so=./libFS.so.5
-s none openwin/lib/libSM.so=./libSM.so.6
-f none openwin/lib/libSM.so.6 		0755 root bin
-s none openwin/lib/libXIE.so=./libXIE.so.6
+s none /usr/X11/lib/libXIE.so=./libXIE.so.6.0.0
 f none openwin/lib/libXIE.so.6			0755 root bin
 
 # Trusted Extensions API support
@@ -237,6 +235,12 @@
 s none X11/lib/libXau.so=./libXau.so.6
 f none X11/lib/libXau.so.6			0555 root bin
 
+# open-src/lib/libSM
+s none openwin/lib/libSM.so.6=../../X11/lib/libSM.so.6
+s none openwin/lib/libSM.so=../../X11/lib/libSM.so.6
+s none X11/lib/libSM.so=./libSM.so.6
+f none X11/lib/libSM.so.6=$HOME/X11/lib/libSM.so.6.0.0  0755 root bin
+
 # open-src/lib/libXcomposite (never delivered into /usr/openwin/lib)
 f none X11/lib/libXcomposite.so.1 		0644 root bin
 s none X11/lib/libXcomposite.so=libXcomposite.so.1
@@ -314,6 +318,12 @@
 s none X11/lib/$plat_64/libXau.so=./libXau.so.6
 f none X11/lib/$plat_64/libXau.so.6		0555 root bin
 
+# open-src/lib/libSM
+s none openwin/lib/$plat_64/libSM.so.6=../../X11/lib/$plat_64/libSM.so.6
+s none openwin/lib/$plat_64/libSM.so=../../X11/lib/$plat_64/libSM.so.6
+s none X11/lib/$plat_64/libSM.so=./libSM.so.6
+f none X11/lib/$plat_64/libSM.so.6=$HOME/X11/lib/$plat_64/libSM.so.6.0.0        0755 root bin
+
 # open-src/lib/libXcomposite (never delivered into /usr/openwin/lib)
 f none X11/lib/$plat_64/libXcomposite.so.1 		0644 root bin
 s none X11/lib/$plat_64/libXcomposite.so=libXcomposite.so.1
@@ -676,8 +686,6 @@
 f none openwin/lib/$plat_64/libXaw.so.5 		0755 root bin
 s none openwin/lib/$plat_64/libXt.so=./libXt.so.4
 f none openwin/lib/$plat_64/libXt.so.4 		0755 root bin
-s none openwin/lib/$plat_64/libSM.so=./libSM.so.6
-f none openwin/lib/$plat_64/libSM.so.6 		0755 root bin
 s none openwin/lib/$plat_64/libXp.so=./libXp.so.1
 f none openwin/lib/$plat_64/libXp.so.1 	0755 root bin
 s none openwin/lib/$plat_64/libxkbfile.so=./libxkbfile.so.4