6868816 move xscreensaver from X consolidation to Desktop consolidation
authorAlan Coopersmith <Alan.Coopersmith@Sun.COM>
Wed, 05 Aug 2009 16:10:40 -0700
changeset 763 16e275b50576
parent 762 99150230410a
child 764 ab397169f258
6868816 move xscreensaver from X consolidation to Desktop consolidation
make_release_packages
open-src/app/Makefile
open-src/app/rss-glx/Copyright-notices
open-src/app/rss-glx/Makefile
open-src/app/rss-glx/install-util.patch
open-src/app/rss-glx/matrixview.patch
open-src/app/xscreensaver/GNOME-desktop.patch
open-src/app/xscreensaver/Makefile
open-src/app/xscreensaver/NULLRootPasswd.patch
open-src/app/xscreensaver/RobustKBGrab.patch
open-src/app/xscreensaver/Sun-colors.patch
open-src/app/xscreensaver/Sun.app-defaults.patch
open-src/app/xscreensaver/XScr.ad.lockTimeout.patch
open-src/app/xscreensaver/accessibility.patch
open-src/app/xscreensaver/allow-root.patch
open-src/app/xscreensaver/allowRootByPassFlag.patch
open-src/app/xscreensaver/barcode-hack.patch
open-src/app/xscreensaver/bug-4802301.patch
open-src/app/xscreensaver/bug-6450019.patch
open-src/app/xscreensaver/bug-6461887.patch
open-src/app/xscreensaver/bug-6475285.patch
open-src/app/xscreensaver/bug-6478841.patch
open-src/app/xscreensaver/bug-6520014.patch
open-src/app/xscreensaver/bug-6573182.patch
open-src/app/xscreensaver/bug-6583181.patch
open-src/app/xscreensaver/bug-6583247.patch
open-src/app/xscreensaver/bug-6610282.patch
open-src/app/xscreensaver/bug-6670659.patch
open-src/app/xscreensaver/bug-6698996.patch
open-src/app/xscreensaver/bug-6736157.patch
open-src/app/xscreensaver/bug-6757448.patch
open-src/app/xscreensaver/bug-6769901.patch
open-src/app/xscreensaver/bug-6825374.patch
open-src/app/xscreensaver/bug-6857559.patch
open-src/app/xscreensaver/bug-6859039.patch
open-src/app/xscreensaver/bug1-6461887.patch
open-src/app/xscreensaver/datarootdir.patch
open-src/app/xscreensaver/debug-msgs.patch
open-src/app/xscreensaver/dont-bug-jwz.patch
open-src/app/xscreensaver/dpms.patch
open-src/app/xscreensaver/gl-error-capture.patch
open-src/app/xscreensaver/glsnake.patch
open-src/app/xscreensaver/gtk-lock.patch
open-src/app/xscreensaver/i18n.patch
open-src/app/xscreensaver/interference-hack.patch
open-src/app/xscreensaver/intltool.patch
open-src/app/xscreensaver/ldflags.patch
open-src/app/xscreensaver/notice_events.patch
open-src/app/xscreensaver/pam_audit.patch
open-src/app/xscreensaver/passwdTimeout-pref.patch
open-src/app/xscreensaver/solaris-paths.patch
open-src/app/xscreensaver/sun-src/ChangeLog
open-src/app/xscreensaver/sun-src/HACKING
open-src/app/xscreensaver/sun-src/driver/lock-Gtk.c
open-src/app/xscreensaver/sun-src/driver/opensolaris-logo.png
open-src/app/xscreensaver/sun-src/driver/trusted-utils.c
open-src/app/xscreensaver/sun-src/driver/trusted-utils.h
open-src/app/xscreensaver/trusted.patch
open-src/app/xscreensaver/xinput.patch
open-src/app/xscreensaver/xscreensaver-hush-misc.patch
packages/SUNW0xman/Makefile
packages/SUNW0xwsvr/depend
packages/SUNW0xwsvr/pkginfo.tmpl
packages/SUNW0xwsvr/prototype
packages/SUNWxscreensaver-hacks-gl/copyright.add
packages/SUNWxscreensaver-hacks-gl/depend_com
packages/SUNWxscreensaver-hacks-gl/depend_i386.tmpl
packages/SUNWxscreensaver-hacks-gl/depend_sparc.tmpl
packages/SUNWxscreensaver-hacks-gl/pkginfo.tmpl
packages/SUNWxscreensaver-hacks-gl/prototype_com
packages/SUNWxscreensaver-hacks-gl/prototype_i386
packages/SUNWxscreensaver-hacks-gl/prototype_sparc
packages/SUNWxscreensaver-hacks/copyright.add
packages/SUNWxscreensaver-hacks/depend.tmpl
packages/SUNWxscreensaver-hacks/pkginfo.tmpl
packages/SUNWxscreensaver-hacks/prototype
packages/SUNWxwsvr/copyright.add
packages/SUNWxwsvr/depend.tmpl
packages/SUNWxwsvr/pkginfo.tmpl
packages/SUNWxwsvr/prototype
packages/upgrade-X
--- a/make_release_packages	Mon Aug 03 15:21:13 2009 -0700
+++ b/make_release_packages	Wed Aug 05 16:10:40 2009 -0700
@@ -28,7 +28,7 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 # 
-# @(#)make_release_packages	1.74	09/06/18
+# ident	"@(#)make_release_packages	1.75	09/08/05 SMI"
 #
 #	Create and fill a package staging area for X
 #
@@ -62,11 +62,10 @@
     SUNWxorg-clientlibs SUNWxorg-compatlinks
     SUNWxorg-graphics-ddx SUNWxorg-headers
     SUNWxorg-server SUNWxorg-tsol-module 
-    SUNWxscreensaver-hacks SUNWxscreensaver-hacks-gl
     SUNWxvnc SUNWxwacx SUNWxwcft SUNWxwdem SUNWxwdxm
     SUNWxwfnt SUNWxwfs SUNWxwfsw SUNWxwice SUNWxwinc
     SUNWxwman SUNWxwmod SUNWxwoft SUNWxwopt SUNWxwplr
-    SUNWxwplt SUNWxwpmn SUNWxwrtl SUNWxwslb SUNWxwsvr
+    SUNWxwplt SUNWxwpmn SUNWxwrtl SUNWxwslb
     SUNWxwxft"
 
 XSUN_PACKAGE_LIST="SUNWxsun-headers SUNWxsun-server SUNWxwts"
@@ -84,7 +83,7 @@
 # Localization template packages for delivery to translation teams
 if [[ "$BUILD_L10N" != "no" ]]; then
     XW_L10N_PACKAGES="SUNW0xacx SUNW0xman SUNW0xpmn 
-		      SUNW0xwplt SUNW0xwopt SUNW0xwsvr"
+		      SUNW0xwplt SUNW0xwopt"
 else
     XW_L10N_PACKAGES=" "
 fi
--- a/open-src/app/Makefile	Mon Aug 03 15:21:13 2009 -0700
+++ b/open-src/app/Makefile	Wed Aug 05 16:10:40 2009 -0700
@@ -28,13 +28,10 @@
 # or other dealings in this Software without prior written authorization
 # of the copyright holder.
 #
-# @(#)Makefile	1.86	09/07/10
+# ident	"@(#)Makefile	1.87	09/08/05 SMI"
 #
 ###############################################################################
 
-# Dependency ordering:
-#  rss-glx needs to come after xscreensaver
-
 OS_SUBDIRS_common = \
 	accessx \
 	appres \
@@ -128,8 +125,6 @@
 	xwd \
 	xwininfo \
 	xwud \
-	xscreensaver \
-	rss-glx
 
 OS_SUBDIRS_sparc = $(OS_SUBDIRS_common)
 
@@ -137,7 +132,9 @@
 
 OBSOLETE_SUBDIRS = \
 	xplsprinters \
-	xprehashprinterlist
+	xprehashprinterlist \
+	xscreensaver \
+	rss-glx
 
 PWD:sh=pwd
 TOP=$(PWD)/..
--- a/open-src/app/rss-glx/Copyright-notices	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,706 +0,0 @@
-Utility code included in multiple "Really Slick Screensavers" (rss-glx) 
-hack modules is covered by the following notice:
-
-Copyright (C) 1999-2005  Terence M. Welsh
-
-Copyright (C) 2002 Tugrul Galatali <[email protected]>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as 
-published by the Free Software Foundation.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The biof hack is covered by the following notice:
-
-Copyright (c) 2002 by <[email protected]> and Tugrul Galatali.  
-
-BioF is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-BioF is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The busyspheres hack is covered by the following notice:
-
-Copyright (c) 2002 by <[email protected]> and Tugrul Galatali.  
-
-BusySpheres is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-BusySpheres is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The colorfire hack is covered by the following notice:
-
-Copyright (c) 1999 by Andreas Gustafsson and Tugrul Galatali.  
-
-Colorfire is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Colorfire is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The cyclone hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Cyclone is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Cyclone is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The drempels hack is covered by the following notice:
-
-Copyright (C) 2001 Ryan M. Geiss <guava at geissworks dot com>
-Ported to Linux by Tugrul Galatali <[email protected]>
-Copyright (C) 2009 Tugrul Galatali <[email protected]>
-Copyright � 2003-2005, Stefan Gustavson <[email protected]>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-------------------------------------------------------------------------------
-
-The euphoria hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Euphoria is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Euphoria is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The feedback hack is covered by the following notice:
-
-Copyright (C) 2009 Tugrul Galatali <[email protected]
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-------------------------------------------------------------------------------
-
-The fieldlines hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Fieldlines is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Fieldlines is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The flocks hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Flocks is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Flocks is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The flux hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Flux is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Flux is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The helios hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Helios is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Helios is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The hufo_smoke hack is covered by the following notice:
-
-Copyright (c) 2000 by Jeremie Allard and Tugrul Galatali.  
-Copyright (C) 2002  Jeremie Allard (Hufo / N.A.A.)
-
-hufo_smoke is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-hufo_smoke is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The hufo_tunnel hack is covered by the following notice:
-
-Copyright (c) 2000 by Jeremie Allard and Tugrul Galatali.  
-Copyright (C) 2002 Andreas Gustafsson
-Copyright (C) 2002 Jeremie Allard (Hufo / N.A.A.)
-
-hufo_tunnel is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-hufo_tunnel is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The hyperspace hack is covered by the following notice:
-
-Copyright (c) 2005 by Terry Walsh and Tugrul Galatali.  
-
-Hyperspace is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Hyperspace is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The lattice hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.
-
-Lattice is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Lattice is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The lorenz hack is covered by the following notice:
-
-Copyright (C) 2002, 2009  S?ren Sonnenburg <[email protected]>
-
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
-
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The matrixview hack is covered by the following notice:
-
-Copyright (c) 2003 by Alex Zolotov and Tugrul Galatali.  
-
-MatrixView is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-MatrixView is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The plasma hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Plasma is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Plasma is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The skyrocket hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Skyrocket is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Skyrocket is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The solarwinds hack is covered by the following notice:
-
-Copyright (c) 2002 by Terry Walsh and Tugrul Galatali.  
-
-Solarwinds is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Solarwinds is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The spirographx hack is covered by the following notice:
-
-Copyright (c) 2003 by Holmes Futrell and Tugrul Galatali.  
-
-SpirographX is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-SpirographX is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-The sundancer2 hack is covered by the following notice:
-
-Copyright (c) 2002 by Dirk Songuer and Tugrul Galatali.  
-
-Sundancer2 is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License version 2 as
-published by the Free Software Foundation.
-
-Sundancer2 is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-------------------------------------------------------------------------------
-
-		    GNU GENERAL PUBLIC LICENSE
-		       Version 2, June 1991
-
- Copyright (C) 1989, 1991 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-			    Preamble
-
-  The licenses for most software are designed to take away your
-freedom to share and change it.  By contrast, the GNU General Public
-License is intended to guarantee your freedom to share and change free
-software--to make sure the software is free for all its users.  This
-General Public License applies to most of the Free Software
-Foundation's software and to any other program whose authors commit to
-using it.  (Some other Free Software Foundation software is covered by
-the GNU Library General Public License instead.)  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-this service if you wish), that you receive source code or can get it
-if you want it, that you can change the software or use pieces of it
-in new free programs; and that you know you can do these things.
-
-  To protect your rights, we need to make restrictions that forbid
-anyone to deny you these rights or to ask you to surrender the rights.
-These restrictions translate to certain responsibilities for you if you
-distribute copies of the software, or if you modify it.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must give the recipients all the rights that
-you have.  You must make sure that they, too, receive or can get the
-source code.  And you must show them these terms so they know their
-rights.
-
-  We protect your rights with two steps: (1) copyright the software, and
-(2) offer you this license which gives you legal permission to copy,
-distribute and/or modify the software.
-
-  Also, for each author's protection and ours, we want to make certain
-that everyone understands that there is no warranty for this free
-software.  If the software is modified by someone else and passed on, we
-want its recipients to know that what they have is not the original, so
-that any problems introduced by others will not reflect on the original
-authors' reputations.
-
-  Finally, any free program is threatened constantly by software
-patents.  We wish to avoid the danger that redistributors of a free
-program will individually obtain patent licenses, in effect making the
-program proprietary.  To prevent this, we have made it clear that any
-patent must be licensed for everyone's free use or not licensed at all.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-		    GNU GENERAL PUBLIC LICENSE
-   TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-  0. This License applies to any program or other work which contains
-a notice placed by the copyright holder saying it may be distributed
-under the terms of this General Public License.  The "Program", below,
-refers to any such program or work, and a "work based on the Program"
-means either the Program or any derivative work under copyright law:
-that is to say, a work containing the Program or a portion of it,
-either verbatim or with modifications and/or translated into another
-language.  (Hereinafter, translation is included without limitation in
-the term "modification".)  Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not
-covered by this License; they are outside its scope.  The act of
-running the Program is not restricted, and the output from the Program
-is covered only if its contents constitute a work based on the
-Program (independent of having been made by running the Program).
-Whether that is true depends on what the Program does.
-
-  1. You may copy and distribute verbatim copies of the Program's
-source code as you receive it, in any medium, provided that you
-conspicuously and appropriately publish on each copy an appropriate
-copyright notice and disclaimer of warranty; keep intact all the
-notices that refer to this License and to the absence of any warranty;
-and give any other recipients of the Program a copy of this License
-along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and
-you may at your option offer warranty protection in exchange for a fee.
-
-  2. You may modify your copy or copies of the Program or any portion
-of it, thus forming a work based on the Program, and copy and
-distribute such modifications or work under the terms of Section 1
-above, provided that you also meet all of these conditions:
-
-    a) You must cause the modified files to carry prominent notices
-    stating that you changed the files and the date of any change.
-
-    b) You must cause any work that you distribute or publish, that in
-    whole or in part contains or is derived from the Program or any
-    part thereof, to be licensed as a whole at no charge to all third
-    parties under the terms of this License.
-
-    c) If the modified program normally reads commands interactively
-    when run, you must cause it, when started running for such
-    interactive use in the most ordinary way, to print or display an
-    announcement including an appropriate copyright notice and a
-    notice that there is no warranty (or else, saying that you provide
-    a warranty) and that users may redistribute the program under
-    these conditions, and telling the user how to view a copy of this
-    License.  (Exception: if the Program itself is interactive but
-    does not normally print such an announcement, your work based on
-    the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole.  If
-identifiable sections of that work are not derived from the Program,
-and can be reasonably considered independent and separate works in
-themselves, then this License, and its terms, do not apply to those
-sections when you distribute them as separate works.  But when you
-distribute the same sections as part of a whole which is a work based
-on the Program, the distribution of the whole must be on the terms of
-this License, whose permissions for other licensees extend to the
-entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest
-your rights to work written entirely by you; rather, the intent is to
-exercise the right to control the distribution of derivative or
-collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program
-with the Program (or with a work based on the Program) on a volume of
-a storage or distribution medium does not bring the other work under
-the scope of this License.
-
-  3. You may copy and distribute the Program (or a work based on it,
-under Section 2) in object code or executable form under the terms of
-Sections 1 and 2 above provided that you also do one of the following:
-
-    a) Accompany it with the complete corresponding machine-readable
-    source code, which must be distributed under the terms of Sections
-    1 and 2 above on a medium customarily used for software interchange; or,
-
-    b) Accompany it with a written offer, valid for at least three
-    years, to give any third party, for a charge no more than your
-    cost of physically performing source distribution, a complete
-    machine-readable copy of the corresponding source code, to be
-    distributed under the terms of Sections 1 and 2 above on a medium
-    customarily used for software interchange; or,
-
-    c) Accompany it with the information you received as to the offer
-    to distribute corresponding source code.  (This alternative is
-    allowed only for noncommercial distribution and only if you
-    received the program in object code or executable form with such
-    an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for
-making modifications to it.  For an executable work, complete source
-code means all the source code for all modules it contains, plus any
-associated interface definition files, plus the scripts used to
-control compilation and installation of the executable.  However, as a
-special exception, the source code distributed need not include
-anything that is normally distributed (in either source or binary
-form) with the major components (compiler, kernel, and so on) of the
-operating system on which the executable runs, unless that component
-itself accompanies the executable.
-
-If distribution of executable or object code is made by offering
-access to copy from a designated place, then offering equivalent
-access to copy the source code from the same place counts as
-distribution of the source code, even though third parties are not
-compelled to copy the source along with the object code.
-
-  4. You may not copy, modify, sublicense, or distribute the Program
-except as expressly provided under this License.  Any attempt
-otherwise to copy, modify, sublicense or distribute the Program is
-void, and will automatically terminate your rights under this License.
-However, parties who have received copies, or rights, from you under
-this License will not have their licenses terminated so long as such
-parties remain in full compliance.
-
-  5. You are not required to accept this License, since you have not
-signed it.  However, nothing else grants you permission to modify or
-distribute the Program or its derivative works.  These actions are
-prohibited by law if you do not accept this License.  Therefore, by
-modifying or distributing the Program (or any work based on the
-Program), you indicate your acceptance of this License to do so, and
-all its terms and conditions for copying, distributing or modifying
-the Program or works based on it.
-
-  6. Each time you redistribute the Program (or any work based on the
-Program), the recipient automatically receives a license from the
-original licensor to copy, distribute or modify the Program subject to
-these terms and conditions.  You may not impose any further
-restrictions on the recipients' exercise of the rights granted herein.
-You are not responsible for enforcing compliance by third parties to
-this License.
-
-  7. If, as a consequence of a court judgment or allegation of patent
-infringement or for any other reason (not limited to patent issues),
-conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot
-distribute so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you
-may not distribute the Program at all.  For example, if a patent
-license would not permit royalty-free redistribution of the Program by
-all those who receive copies directly or indirectly through you, then
-the only way you could satisfy both it and this License would be to
-refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under
-any particular circumstance, the balance of the section is intended to
-apply and the section as a whole is intended to apply in other
-circumstances.
-
-It is not the purpose of this section to induce you to infringe any
-patents or other property right claims or to contest validity of any
-such claims; this section has the sole purpose of protecting the
-integrity of the free software distribution system, which is
-implemented by public license practices.  Many people have made
-generous contributions to the wide range of software distributed
-through that system in reliance on consistent application of that
-system; it is up to the author/donor to decide if he or she is willing
-to distribute software through any other system and a licensee cannot
-impose that choice.
-
-This section is intended to make thoroughly clear what is believed to
-be a consequence of the rest of this License.
-
-  8. If the distribution and/or use of the Program is restricted in
-certain countries either by patents or by copyrighted interfaces, the
-original copyright holder who places the Program under this License
-may add an explicit geographical distribution limitation excluding
-those countries, so that distribution is permitted only in or among
-countries not thus excluded.  In such case, this License incorporates
-the limitation as if written in the body of this License.
-
-  9. The Free Software Foundation may publish revised and/or new versions
-of the General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-Each version is given a distinguishing version number.  If the Program
-specifies a version number of this License which applies to it and "any
-later version", you have the option of following the terms and conditions
-either of that version or of any later version published by the Free
-Software Foundation.  If the Program does not specify a version number of
-this License, you may choose any version ever published by the Free Software
-Foundation.
-
-  10. If you wish to incorporate parts of the Program into other free
-programs whose distribution conditions are different, write to the author
-to ask for permission.  For software which is copyrighted by the Free
-Software Foundation, write to the Free Software Foundation; we sometimes
-make exceptions for this.  Our decision will be guided by the two goals
-of preserving the free status of all derivatives of our free software and
-of promoting the sharing and reuse of software generally.
-
-			    NO WARRANTY
-
-  11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
-FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW.  EXCEPT WHEN
-OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
-PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
-OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
-MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  THE ENTIRE RISK AS
-TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.  SHOULD THE
-PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
-REPAIR OR CORRECTION.
-
-  12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
-REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
-INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
-OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
-TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
-YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
-PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
-POSSIBILITY OF SUCH DAMAGES.
-
-		     END OF TERMS AND CONDITIONS
-
-	    How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-convey the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation; either version 2 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this
-when it starts in an interactive mode:
-
-    Gnomovision version 69, Copyright (C) year  name of author
-    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, the commands you use may
-be called something other than `show w' and `show c'; they could even be
-mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your
-school, if any, to sign a "copyright disclaimer" for the program, if
-necessary.  Here is a sample; alter the names:
-
-  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
-  `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-  <signature of Ty Coon>, 1 April 1989
-  Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into
-proprietary programs.  If your program is a subroutine library, you may
-consider it more useful to permit linking proprietary applications with the
-library.  If this is what you want to do, use the GNU Library General
-Public License instead of this License.
--- a/open-src/app/rss-glx/Makefile	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-###############################################################################
-#
-# Really Slick Screensavers for GLX Makefile
-#
-# Copyright 2009 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.5	09/06/04
-#
-
-# Package name used in tarballs
-MODULE_NAME=rss-glx
-
-# Version number (used in path names)
-MODULE_VERSION=0.9.0
-
-# Source tarball/directory name - uses _ instead of default -
-SOURCE_DIRNAME=$(MODULE_NAME)_$(MODULE_VERSION)
-SOURCE_DIRNAME_SET=yes
-
-# Download site for source
-SOURCE_URL=$(SF_DOWNLOADS_URL)/rss-glx/$(SOURCE_TARBALL_NAME)
-SOURCE_URL_SET=yes
-
-# Patches to apply to source after unpacking, in order
-SOURCE_PATCHES = \
-	matrixview.patch \
-	install-util.patch
-
-# Man pages to apply Sun footer to & attributes to list
-SUNTOUCHED_MANPAGES=*src/*.1
-SUN_PACKAGE=SUNWxscreensaver-hacks-gl
-MODULE_STABILITY=Volatile
-MODULE_SUNTOUCH_MAN_FLAGS= -p $(XSS_DIR)/hacks/
-
-# The COPYING file in the release only contains the GPL license, not the
-# Copyright notices, so use the manually gathered one instead
-LICENSE_FILE=../../Copyright-notices
-LICENSE_FILE_SET=yes
-
-# Where to find OpenGL headers/libraries
-OPENGL_DIR_sparc=/usr/openwin
-OPENGL_DIR_i386=/usr/X11
-OPENGL_DIR=$(OPENGL_DIR_$(MACH))
-
-# Where to find/install Xscreensaver files
-XSS_DIR=$(X11_DIR)/lib/xscreensaver
-MODULE_PREFIX=$(XSS_DIR)
-MODULE_PREFIX_SET=yes
-
-include ../Makefile.inc
-
-# Need to fix libtool interference with our linker flags
-DELIBTOOLIZE=yes
-
-MODULE_CPPFLAGS=-D_FILE_OFFSET_BITS=64
-
-MODULE_CONFIG_OPTS=  --disable-sound \
-	--bindir='$$(prefix)/hacks' --mandir=$(X11_DIR)/share/man \
-	--with-configdir=$(XSS_DIR)/config/control-center-2.0
-
-# Override LDFLAGS to not include CFLAGS that confuse CC
-MODULE_CONFIG_ENV= LDFLAGS="$(DEFAULT_CONFIG_LDFLAGS) $(MODTYPE_LDFLAGS)"
-
-# Clear pictures we don't want in build
-source_gen::
-	rm $(SOURCE_DIR)/src/matrixview_textures/cpics
-	touch $(SOURCE_DIR)/src/matrixview_textures/cpics
-
-# XScreenSaver app-defaults file
-XSS_AD=$(PROTODIR)$(X11_DIR)/lib/X11/app-defaults/XScreenSaver
-$(XSS_AD):
-	(cd ../xscreensaver ; $(MAKE) $(MAKEFLAGS) install)
-
-install_gen:: $(XSS_AD)
-	$(PROTODIR)$(XSS_DIR)/hacks/rss-glx_install.pl $(XSS_AD)
-	mkdir -p $(PROTODIR)$(X11_DIR)/share/man/man6
-	-case '$(MAKEFLAGS)' in *[ik]*) set +e;; esac;
-	(cd $(SOURCE_DIR) ; \
-	 for m in $(SUNTOUCHED_MANPAGES) ; do \
-	    mv $(PROTODIR)$(X11_DIR)/share/man/man1/$$(basename $$m) \
-	       $(PROTODIR)$(X11_DIR)/share/man/man6/$$(basename $$m .1).6 ; \
-	 done )
-
-
-
-
--- a/open-src/app/rss-glx/install-util.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,37 +0,0 @@
-diff -urp -x '*~' -x '*.orig' utils/rss-glx_install.pl utils/rss-glx_install.pl
---- utils/rss-glx_install.pl	2009-05-20 20:16:33.348436000 -0700
-+++ utils/rss-glx_install.pl	2009-05-20 20:16:36.684360000 -0700
-@@ -1,10 +1,10 @@
- #!/usr/bin/env perl
- use strict;
- 
--if (`ps x | grep ' xscreensaver ' | grep -v grep`) {
--	print "XScreenSaver seems to be running. Exit it before running this script.\n";
--	exit;
--}
-+#if (`ps x | grep ' xscreensaver ' | grep -v grep`) {
-+#	print "XScreenSaver seems to be running. Exit it before running this script.\n";
-+#	exit;
-+#}
- 
- my $screensavers = { };
- 
-@@ -31,15 +31,15 @@ $screensavers->{'lorenz'}	= '  GL:      
- $screensavers->{'drempels'}	= '  GL:               "Drempels"  drempels --root                             \\n\\';
- $screensavers->{'feedback'}	= '  GL:               "Feedback"  feedback --root                             \\n\\';
- 
--open XSCREENSAVER, "$ENV{'HOME'}/.xscreensaver";
-+open XSCREENSAVER, "$ARGV[0]";
- my @xscreensaver_config_file = <XSCREENSAVER>;
- close XSCREENSAVER;
- 
--open XSCREENSAVER, ">$ENV{'HOME'}/.xscreensaver";
-+open XSCREENSAVER, ">$ARGV[0]";
- 
- my $programs_section_flag = 0;
- foreach my $line (@xscreensaver_config_file) {
--	if ($line =~ /^programs:/) {
-+	if ($line =~ /^\*programs:/) {
- 		$programs_section_flag = 1;
- 	} elsif ($programs_section_flag) {
- 		if ($line =~ /\\\s+/) {
--- a/open-src/app/rss-glx/matrixview.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
-Replace the removed default images for matrixview screensaver 
-with those found in /usr/share/pixmaps/faces
-
-diff -urp -x '*~' -x '*.orig' utils/rss-glx_install.pl utils/rss-glx_install.pl
---- utils/rss-glx_install.pl	2009-05-19 07:36:29.000000000 -0700
-+++ utils/rss-glx_install.pl	2009-05-20 20:16:33.348436000 -0700
-@@ -26,7 +26,7 @@ $screensavers->{'sundancer2'} 	= '  GL: 
- $screensavers->{'biof'} 	= '  GL:                   "BioF"  biof --root                                 \\n\\';
- $screensavers->{'busyspheres'} 	= '  GL:            "BusySpheres"  busyspheres --root                          \\n\\';
- $screensavers->{'spirographx'} 	= '  GL:            "SpirographX"  spirographx --root                          \\n\\';
--$screensavers->{'matrixview'} 	= '  GL:             "MatrixView"  matrixview --root                           \\n\\';
-+$screensavers->{'matrixview'} 	= '  GL:             "MatrixView"  matrixview --root -i /usr/share/pixmaps/faces \\n\\';
- $screensavers->{'lorenz'}	= '  GL:                 "Lorenz"  lorenz --root                               \\n\\';
- $screensavers->{'drempels'}	= '  GL:               "Drempels"  drempels --root                             \\n\\';
- $screensavers->{'feedback'}	= '  GL:               "Feedback"  feedback --root                             \\n\\';
--- a/open-src/app/xscreensaver/GNOME-desktop.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,76 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Changes needed for integration into Sun's GNOME desktop menus.
-Localized name & tooltips (Sun bug 5103358)
-
-diff -urp -x '*~' driver/screensaver-properties.desktop.in driver/screensaver-properties.desktop.in
---- driver/screensaver-properties.desktop.in	2003-12-15 03:16:12.000000000 -0800
-+++ driver/screensaver-properties.desktop.in	2006-08-08 15:24:22.756630000 -0700
-@@ -1,8 +1,35 @@
- [Desktop Entry]
- Exec=xscreensaver-demo
--Icon=xscreensaver.xpm
-+Icon=gnome-ccscreensaver.png
- Terminal=false
--_Name=Screensaver
--_Comment=Change screensaver properties
-+Name=Screensaver
-+Name[cs]=Spořič obrazovky
-+Name[de]=Bildschirmschoner
-+Name[es]=Salvapantallas
-+Name[fr]=Économiseur d'écran
-+Name[hu]=Képernyővédő
-+Name[it]=Salvaschermo
-+Name[ja]=スクリーンセーバー
-+Name[ko]=화면 보호기
-+Name[pt_BR]=Protetor de tela
-+Name[sv]=Skärmsläckare
-+Name[zh_CN]=屏幕保护程序
-+Name[zh_HK]=螢幕保護程式
-+Name[zh_TW]=螢幕保護程式
-+
-+Comment=Choose screensaver delay and appearance.
-+Comment[cs]=Konfigurace nastavení spořiče obrazovky.
-+Comment[de]=Bildschirmschonereinstellungen konfigurieren
-+Comment[es]=Configura los valores del salvapantallas.
-+Comment[fr]=Configurer les paramètres de l'économiseur d'écran.
-+Comment[hu]=A képernyővédő beállításainak megváltoztatása
-+Comment[it]=Configura le impostazioni del salvaschermo.
-+Comment[ja]=スクリーンセーバーを設定
-+Comment[ko]=화면 보호기 설정 구성
-+Comment[pt_BR]=Definir as configurações do protetor de tela.
-+Comment[sv]=Konfigurera inställningarna för skärmsläckaren.
-+Comment[zh_CN]=配置屏幕保护程序的设置。
-+Comment[zh_HK]=配置螢幕保護程式設定。
-+Comment[zh_TW]=配置螢幕保護程式設定。
- Type=Application
--Categories=Application;Settings;Appearance;AdvancedSettings;
-+Categories=GNOME;Settings;Appearance;
--- a/open-src/app/xscreensaver/Makefile	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,227 +0,0 @@
-###############################################################################
-#
-# Xscreensaver Makefile
-#
-# Copyright 2009 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.111	09/07/28
-#
-
-# Package name used in tarballs
-MODULE_NAME=xscreensaver
-
-# Version number (used in path names)
-MODULE_VERSION=5.01
-
-# Download site for source - master site no longer carries 5.01 so we use
-# a mirror site until we upgrade to a newer version
-#SOURCE_URL=http://www.jwz.org/xscreensaver/$(SOURCE_TARBALL_NAME)
-SOURCE_URL=http://dlc.sun.com/osol/x/downloads/mirrors/$(SOURCE_TARBALL_NAME)
-SOURCE_URL_SET=yes
-SOURCE_UNCOMPRESS=bzcat
-
-# Patches to apply to source after unpacking, in order
-SOURCE_PATCHES = \
-	datarootdir.patch,-p1 \
-	ldflags.patch \
-	Sun.app-defaults.patch \
-	GNOME-desktop.patch \
-	solaris-paths.patch \
-	dont-bug-jwz.patch \
-	gtk-lock.patch \
-	allow-root.patch \
-	passwdTimeout-pref.patch \
-	xinput.patch \
-	i18n.patch \
-	debug-msgs.patch \
-	dpms.patch \
-	gl-error-capture.patch \
-	accessibility.patch \
-	trusted.patch \
-	pam_audit.patch \
-	bug-6450019.patch \
-	Sun-colors.patch \
-	barcode-hack.patch \
-	glsnake.patch \
-        allowRootByPassFlag.patch \
-	bug-6478841.patch \
-	bug-6461887.patch \
-	bug1-6461887.patch \
-	bug-6520014.patch  \
-        NULLRootPasswd.patch \
-	RobustKBGrab.patch \
-	bug-6573182.patch \
-	bug-6610282.patch \
-	bug-6475285.patch \
-        XScr.ad.lockTimeout.patch \
-	bug-6583181.patch \
-        notice_events.patch \
-	bug-6670659.patch \
-	bug-6583247.patch \
-	xscreensaver-hush-misc.patch,-p1 \
-	bug-6698996.patch \
-	bug-4802301.patch \
-	interference-hack.patch \
-	intltool.patch \
-	bug-6769901.patch \
-        bug-6736157.patch \
-	bug-6757448.patch \
-	bug-6825374.patch \
-	bug-6857559.patch \
-	bug-6859039.patch
-
-# We patch configure.ac & Makefile.am's so need to autoreconf
-AUTORECONF=yes
-
-# Where to find OpenGL headers/libraries
-OPENGL_DIR_sparc=/usr/openwin
-OPENGL_DIR_i386=/usr/X11
-OPENGL_DIR=$(OPENGL_DIR_$(MACH))
-
-# Additional command line options to GNU autoconf configure script
-MODULE_CONFIG_OPTS= --enable-maintainer-mode \
- --with-gnome --enable-gtk-doc --with-gtk2=/usr --with-pixbuf=/usr \
- --enable-locking --with-pam=/usr --without-shadow --without-kerberos \
- --with-dpms --enable-dpms --disable-screengrab --enable-root-passwd \
- --with-gl=$(OPENGL_DIR)  --without-motif --with-jpeg=/usr \
- --datadir='$${prefix}/share' \
- --libexecdir='$${prefix}/lib/xscreensaver/bin' \
- --with-hackdir='$${prefix}/lib/xscreensaver/hacks' \
- --with-configdir=/usr/X11/lib/xscreensaver/config/control-center-2.0 \
- --with-image-directory=/usr/share/pixmaps/backgrounds \
- --with-text-file=/etc/motd \
- --with-x-app-defaults=/usr/X11/lib/X11/app-defaults
-
-MODULE_LDFLAGS="-R/usr/X11/lib"
-
-# Messages for translation
-XS_POT=$(SOURCE_DIR)/po/xscreensaver.pot
-POT_DEST=$(PROTODIR)/usr/X11/share/locale/C/LC_MESSAGES
-
-# Logo images
-LOGO_DEST=$(PROTODIR)/usr/X11/lib/xscreensaver/config
-LOGO_FILES=$(SOURCE_DIR)/utils/images/logo-180.gif \
-	$(SOURCE_DIR)/driver/*logo.png
-
-# Man pages
-XS_MAN=$(SOURCE_DIR)/driver/xscreensaver.man.orig
-
-# Additional optimization flags, to make the hacks show off the hardware
-# better and we can get away with optimizations not allowed in the core X code
-XS_ARCH_FLAGS_sparc=-xtarget=ultra2
-XS_ARCH_FLAGS_i386=
-XS_ARCH_FLAGS=$(XS_ARCH_FLAGS_$(MACH))
-MODULE_CFLAGS=-fsimple=2 -nofstore $(XS_ARCH_FLAGS)
-
-# Configure/Make variables to override
-# Set PERL to /usr/perl5/bin so it uses that path to perl for scripts
-# as required by Sun rules for using the bundled version of perl
-# XGETTEXT must be set to make sure we get GNU xgettext
-# since intltool-update doesn't work with Solaris xgettext (see bugs
-# 4812320 & 4826523)
-MODULE_CONFIG_ENV= \
-	PATH=/usr/perl5/bin:$(PATH) \
-	XGETTEXT=/usr/gnu/bin/xgettext \
-	GNOME_DATADIR='$${prefix}/lib/xscreensaver/config' \
-	GLADE_DATADIR='$${prefix}/lib/xscreensaver/config' \
-	PERL=/usr/perl5/bin/perl
-
-MODULE_BUILD_ENV= \
-	XGETTEXT=/usr/gnu/bin/xgettext
-
-MODULE_MAKEFLAGS=-e install_prefix=$(PROTODIR) 
-
-MODULE_ADD_BUILD_TARGETS=$(XS_MAN) $(XS_POT) set-install-perms
-
-INSTALL_TARGETS=set-install-perms default_install install_xs
-INSTALL_TARGETS_SET=yes
-
-include ../Makefile.inc
-
-# Merge in additional sources from sun-src directory
-source_gen:: $(LNDIR)
-	@case '$(MAKEFLAGS)' in *[ik]*) set +e;; esac; set -x ; \
-	cd $(SOURCE_DIR) ; \
-	$(LNDIR) ../../sun-src ; \
-	if [ -d ../../closed-src ] ; then \
-	    $(LNDIR) ../../closed-src ; \
-	fi ; \
-	chmod a+x install-sh ; \
-	cd driver ; \
-	for i in unlock-logo.png trusted-logo.png ; do \
-	    if [ ! -f $$i ] ; then \
-	        ln -s opensolaris-logo.png $$i ; \
-	    fi ; \
-	done
-
-$(XS_POT): $(CONFIGURE_TARGET)
-	(cd $(SOURCE_DIR)/po ; \
-	 $(BUILD_ENV) $(MAKE) $(MAKEFLAGS) $(MODULE_MAKEFLAGS) \
-		generate_potfiles_in POTFILES xscreensaver.pot )
-
-# Add Sun attributes section to man pages
-$(XS_MAN):
-	/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
-	    -a '{Availability, SUNWxscreensaver} {Interface Stability, Volatile}' \
-		-p /usr/X11/bin/ \
-		$(SOURCE_DIR)/driver/xscreensaver.man \
-		$(SOURCE_DIR)/driver/xscreensaver-command.man \
-		$(SOURCE_DIR)/driver/xscreensaver-demo.man
-	/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
-	    -a '{Availability, SUNWxscreensaver} {Interface Stability, Private}' \
-		-p /usr/X11/lib/xscreensaver/bin/ \
-		$(SOURCE_DIR)/driver/xscreensaver-get*.man \
-		$(SOURCE_DIR)/driver/xscreensaver-text.man
-	/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
-	    -a '{Availability, SUNWxscreensaver-hacks} {Interface Stability, Private}' \
-		-p /usr/X11/lib/xscreensaver/hacks/ $(SOURCE_DIR)/hacks/*.man
-	/usr/perl5/bin/perl $(TOP)/common/suntouch-manpages.pl \
-	    -a '{Availability, SUNWxscreensaver-hacks-gl} {Interface Stability, Private}' \
-		-p /usr/X11/lib/xscreensaver/hacks/ $(SOURCE_DIR)/hacks/glx/*.man
-
-set-install-perms:
-	(cd $(SOURCE_DIR) ; \
-	 chmod a+x install-sh intltool-*; \
-	 chmod +w hacks/vidwhacker hacks/webcollage \
-		driver/xscreensaver-getimage-file \
-		driver/xscreensaver-getimage-video )
-
-install_xs:: $(BUILD_TARGETS)
-	mkdir -p $(POT_DEST)
-	cp -pf $(XS_POT) $(POT_DEST)/xscreensaver.pot
-	mkdir -p $(LOGO_DEST)
-	@case '$(MAKEFLAGS)' in *[ik]*) set +e;; esac; set -x ; \
-	for i in $(LOGO_FILES) ; do \
-	    case $$i in \
-		*\**) ;; \
-		*) cp -pf $$i $(LOGO_DEST) ;; \
-	    esac ; \
-	done
-
-
--- a/open-src/app/xscreensaver/NULLRootPasswd.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for: 6541240, P2, Screen saver will lock user out of the system if they have no password set
-
---- driver/lock.c	Mon Jun 18 12:47:18 2007
-+++ driver/lock.c	Fri Jun 15 16:31:12 2007
-@@ -1351,6 +1351,9 @@
-   if (si->prefs.verbose_p)
-     fprintf (stderr, "destroy_passwd_window\n");
- 
-+  /*reset global flag to indicate passwd dialog is no longer there*/
-+  g_passwd_dialog_created = 0;
-+
-   if (pw == NULL || pw->got_windowid == 0 || si->external_passwd == 0)
-     return;
- 
-@@ -1357,8 +1360,6 @@
-   if (pw->timer)
-     XtRemoveTimeOut (pw->timer);
- 
--  /*reset global flag to indicate passwd dialog is no longer there*/
--  g_passwd_dialog_created = 0;
- 
- #ifdef HAVE_XSCREENSAVER_LOCK
-   if (si->external_passwd)
--- a/open-src/app/xscreensaver/RobustKBGrab.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for 6580862, P2, gnome/screensaver - Unable to type in windows session with full screen mode when hotdesked into the same DTU on TJDS
-Fix for 6531358 P2, gnome/screensaver - xscreensaver fails to properly lock screeen during typing break
-
---- driver/lock.c	Tue Sep 25 19:45:57 2007
-+++ driver/lock.c	Tue Sep 25 19:44:00 2007
-@@ -1960,11 +1960,53 @@
-   char *msg = 0;
-   XEvent event;
-   unsigned int caps_p = 0;
--
--/* bugid 6176524 passwdTimeout and reset timer for each key press */
-   passwd_dialog_data *pw = si->pw_data;
-   int ii;
-+   Window w;
-+  int mscreen;
-+  int status = -2;
-+  int counter = 0;
-+  int retries = 2;
- 
-+  /*bugid 6580862 Unable to type in windows session with full screen mode when hotdesked...
-+    The issue is sunray connector grabs keyboard and focus is in connector window. When xscreensaver
-+    pastes the unlock dialog box the password typed by user goes into connector window.
-+    The following code attempts to set focus back in unlock dialog box. The connector is looking
-+    for focus out events to get a hint to let go of keyboard grab. Which is exactly what we try to
-+    do in the following code.
-+  */
-+  write_to_child (si, "pw_read");
-+  mscreen = mouse_screen (si);
-+  w = RootWindowOfScreen(si->screens[mscreen].screen);
-+  /* grab_kbd() uses GrabModeSync which is holding up pointer events and hence unlcok
-+   * dialog box does not show up when you move mouse, only when you hit a key.
-+   * So, we locally call XGrabKeyboard() with GrabModeAsync instead of calling grab_kbd().
-+   * status = grab_kbd(si, w, mscreen);
-+   **/
-+  status = XGrabKeyboard (si->dpy, w, True,
-+                          GrabModeAsync, GrabModeAsync,
-+                          CurrentTime);
-+
-+  XSync (si->dpy, False);
-+  while (status != GrabSuccess && counter++ <=retries)
-+   {
-+    status = XGrabKeyboard (si->dpy, w, True,
-+                            GrabModeAsync, GrabModeAsync,
-+                            CurrentTime);
-+    write_to_child (si, "pw_read");
-+    usleep (250000); /** 1/4 second */
-+    XSync (si->dpy, False);
-+    if(p->verbose_p)
-+      fprintf (stderr, "event loop..trying to grab keyboard######\n");
-+   }
-+
-+  if (status == GrabSuccess)
-+    {
-+      si->keyboard_grab_window = w;
-+      si->keyboard_grab_screen = mscreen;
-+    }
-+
-+/* bugid 6176524 passwdTimeout and reset timer for each key press  */
-   passwd_animate_timer ((XtPointer) si, 0);
- 
-   while (si->pw_data && si->pw_data->state == pw_read)
-
---- driver/windows.c	Tue Sep 25 19:45:56 2007
-+++ driver/windows.c	Tue Sep 25 19:44:00 2007
-@@ -110,7 +110,7 @@
-     }
- }
- 
--static int
-+int
- grab_kbd(saver_info *si, Window w, int screen_no)
- {
-   saver_preferences *p = &si->prefs;
-@@ -245,8 +245,10 @@
-       if (kstatus == GrabSuccess)
-         break;
- 
--      /* else, wait a second and try to grab again. */
--      sleep (1);
-+      /* else, wait 1/8th second and try to grab again. 
-+       * sleeping for 1 sec is too long, compounded wih retries.
-+       */
-+      usleep (125000);
-     }
- 
-   if (kstatus != GrabSuccess)
-@@ -269,8 +271,8 @@
-       if (mstatus == GrabSuccess)
-         break;
- 
--      /* else, wait a second and try to grab again. */
--      sleep (1);
-+      /* else, wait 1/8th second and try to grab again. */
-+      usleep (125000);
-     }
- 
-   if (mstatus != GrabSuccess)
-@@ -1890,7 +1892,12 @@
- # endif /* 0 */
- 
-   if (!ok)
--    return False;
-+    {
-+     /* IF you have grabbed either the mouse or keyboard then let go of it */
-+     ungrab_keyboard_and_mouse(si);
-+     XSync (si->dpy, False);
-+     return False;
-+    }
- 
-   for (i = 0; i < si->nscreens; i++)
-     {
--- a/open-src/app/xscreensaver/Sun-colors.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,178 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Use Sun branding colors in various hacks to better match color schemes of JDS
-desktop.
-
-diff -urp -x '*~' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2006-09-19 17:09:08.203402000 -0700
-+++ driver/XScreenSaver.ad.in	2006-09-19 17:09:13.618387000 -0700
-@@ -293,7 +293,7 @@ GetViewPortIsFullOfLies: False
-                                 bubbles -root				    \n\
- 				pong -root				    \n\
- 				wormhole -root				    \n\
--				fuzzyflakes -root			    \n\
-+				fuzzyflakes -root -color A3B8CB		    \n\
- 				anemotaxis -root			    \n\
- 				memscroller -root			    \n\
- 				substrate -root				    \n\
-diff -urp -x '*~' hacks/glx/antinspect.c hacks/glx/antinspect.c
---- hacks/glx/antinspect.c	2006-02-25 12:13:26.000000000 -0800
-+++ hacks/glx/antinspect.c	2006-09-19 17:09:13.619018000 -0700
-@@ -94,13 +94,13 @@ static const float position1[] = {-1.0, 
- static const float lmodel_ambient[] = {0.5, 0.5, 0.5, 1.0};
- static const float lmodel_twoside[] = {GL_TRUE};
- 
--static const float MaterialRed[] =     {0.6, 0.0, 0.0, 1.0};
--static const float MaterialOrange[] =  {1.0, 0.69, 0.00, 1.0};
--static const float MaterialGray[] =    {0.2, 0.2, 0.2, 1.0};
-+static const float MaterialRed[] =     {0.90, 0.43, 0.0, 1.0};
-+static const float MaterialOrange[] =  {1.0, 0.78, 0.15, 1.0};
-+static const float MaterialGray[] =    {0.2, 0.21, 0.22, 1.0};
- static const float MaterialBlack[] =   {0.1, 0.1, 0.1, 0.4};
- static const float MaterialShadow[] =   {0.3, 0.3, 0.3, 0.3};
--static const float MaterialGray5[] =   {0.5, 0.5, 0.5, 0.3};
--static const float MaterialGray6[] =   {0.6, 0.6, 0.6, 1.0};
-+static const float MaterialGray5[] =   {0.5, 0.51, 0.53, 0.3};
-+static const float MaterialGray6[] =   {0.6, 0.61, 0.63, 1.0};
- 
- static antinspectstruct *antinspect = (antinspectstruct *) NULL;
- 
-diff -urp -x '*~' hacks/glx/antmaze.c hacks/glx/antmaze.c
---- hacks/glx/antmaze.c	2006-03-14 19:55:05.000000000 -0800
-+++ hacks/glx/antmaze.c	2006-09-19 17:09:13.619973000 -0700
-@@ -148,13 +148,13 @@ typedef struct {
- static antmazestruct *antmaze = (antmazestruct *) NULL;
- 
- 
--static const GLfloat MaterialRed[] = {0.6, 0.0, 0.0, 1.0};
-+static const GLfloat MaterialRed[] = {0.75, 0.40, 0.0, 1.0};
- /*static const GLfloat MaterialMagenta[] = {0.6, 0.2, 0.5, 1.0};*/
- static const GLfloat MaterialGray8[] = {0.8, 0.8, 0.8, 1.0};
--static const GLfloat MaterialGray35[] = {0.30, 0.30, 0.30, 1.0};
--static const GLfloat MaterialGray4[] = {0.40, 0.40, 0.40, 1.0};
--static const GLfloat MaterialOrange[] = {1.0, 0.69, 0.00, 1.0};
--static const GLfloat MaterialGreen[] = {0.1, 0.4, 0.2, 1.0};
-+static const GLfloat MaterialGray35[] = {0.30, 0.31, 0.33, 1.0};
-+static const GLfloat MaterialGray4[] = {0.4375, 0.4450, 0.4650, 1.0};
-+static const GLfloat MaterialOrange[] = {0.90, 0.43, 0.00, 1.0};
-+static const GLfloat MaterialGreen[] = {0.695, 0.734, 0.0, 1.0};
- 
- /* lighting variables */
- static const GLfloat front_shininess[] = {60.0};
-diff -urp -x '*~' hacks/glx/gears.c hacks/glx/gears.c
---- hacks/glx/gears.c	2006-03-12 03:15:36.000000000 -0800
-+++ hacks/glx/gears.c	2006-09-19 17:09:13.624041000 -0700
-@@ -640,10 +640,10 @@ pinit(ModeInfo * mi)
- {
- 	gearsstruct *gp = &gears[MI_SCREEN(mi)];
- 	static const GLfloat pos[4]   = {5.0, 5.0, 10.0, 1.0};
--	static const GLfloat red[4]   = {0.8, 0.1, 0.0, 1.0};
--	static const GLfloat green[4] = {0.0, 0.8, 0.2, 1.0};
--	static const GLfloat blue[4]  = {0.2, 0.2, 1.0, 1.0};
--	static const GLfloat gray[4]  = {0.5, 0.5, 0.5, 1.0};
-+	static const GLfloat red[4]   = {0.9023, 0.4336, 0.0, 1.0};
-+	static const GLfloat green[4] = {0.6953, 0.7344, 0.0, 1.0};
-+	static const GLfloat blue[4]  = {0.3242, 0.5078, 0.6289, 1.0};
-+	static const GLfloat gray[4]  = {0.4375, 0.4450, 0.4650, 1.0};
- 	static const GLfloat white[4] = {1.0, 1.0, 1.0, 1.0};
- 	int         wire = MI_IS_WIREFRAME(mi);
- 	int         mono = MI_IS_MONO(mi);
-diff -urp -x '*~' hacks/glx/sproingies.c hacks/glx/sproingies.c
---- hacks/glx/sproingies.c	2006-09-18 14:45:17.000000000 -0700
-+++ hacks/glx/sproingies.c	2006-09-19 17:09:13.657559000 -0700
-@@ -113,9 +113,9 @@ build_TopsSides(int wireframe)
- 
- 	/* Surface: Tops */
- 	glNewList(dl_num, GL_COMPILE);
--	mat_color[0] = 0.392157;
--	mat_color[1] = 0.784314;
--	mat_color[2] = 0.941176;
-+	mat_color[0] = 0.325490;
-+	mat_color[1] = 0.509804;
-+	mat_color[2] = 0.631373;
- 	if (wireframe)
- 		glColor3fv(mat_color);
- 	else {
-@@ -129,9 +129,9 @@ build_TopsSides(int wireframe)
- 		glColor3fv(mat_color);
- 	else {
-       /* jwz: in wireframe mode, color tops and sides the same. */
--      mat_color[0] = 0.156863;
--      mat_color[1] = 0.156863;
--      mat_color[2] = 0.392157;
-+		mat_color[0] = 0.207843;
-+		mat_color[1] = 0.333333;
-+		mat_color[2] = 0.419607;
- 		glMaterialfv(GL_FRONT, GL_AMBIENT_AND_DIFFUSE, mat_color);
- 	}
- 	glEndList();
-diff -urp -x '*~' utils/colors.c utils/colors.c
---- utils/colors.c	2006-02-04 05:39:41.000000000 -0800
-+++ utils/colors.c	2006-09-19 17:09:13.658183000 -0700
-@@ -598,6 +598,13 @@ make_uniform_colormap (Display *dpy, Vis
-   *ncolorsP = ncolors;
- }
- 
-+/* Use Sun branding colors first in random colormaps */
-+#define NUM_SUN_COLORS 12
-+static const XColor sun_colors[NUM_SUN_COLORS] = {
-+    { 83, 130, 161}, {231, 111,  0}, {178, 188,   0}, {255, 199,  38},
-+    { 53,  85, 107}, {192, 102,  0}, {127, 120,   0}, {198, 146,   0},
-+    {163, 184, 203}, {237, 155, 79}, {197, 213, 169}, {248, 213, 131}
-+};
- 
- void
- make_random_colormap (Display *dpy, Visual *visual, Colormap cmap,
-@@ -610,6 +617,7 @@ make_random_colormap (Display *dpy, Visu
-   Bool wanted_writable = (allocate_p && writable_pP && *writable_pP);
-   int ncolors = *ncolorsP;
-   int i;
-+  int sun_color_offset = random() % NUM_SUN_COLORS;
-   Screen *screen = (dpy ? DefaultScreenOfDisplay(dpy) : 0); /* #### WRONG! */
- 
-   if (*ncolorsP <= 0) return;
-@@ -631,9 +639,16 @@ make_random_colormap (Display *dpy, Visu
- 	}
-       else
- 	{
-+	  if (i < NUM_SUN_COLORS) {
-+	      int n = (i + sun_color_offset) % NUM_SUN_COLORS;
-+	      colors[i].red = sun_colors[n].red;
-+	      colors[i].green = sun_colors[n].green;
-+	      colors[i].blue = sun_colors[n].blue;
-+	  } else {
- 	  colors[i].red   = random() % 0xFFFF;
- 	  colors[i].green = random() % 0xFFFF;
- 	  colors[i].blue  = random() % 0xFFFF;
-+	  }
- 	}
-     }
- 
--- a/open-src/app/xscreensaver/Sun.app-defaults.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,310 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Various settings to meet Sun/Solaris policies/customizations, including:
-
-   -    enable screen lock by default, disable splash screen
-   -    disable using screen grabs in hacks to avoid security leaks
-   -    set default mode to screen blank
-   -    disable bsod by default to avoid confusion in shops with real NT boxes
-   -    enable & disable various hacks by default for aesthetic reasons
-4871833 DPMS settings should be consistent between CDE and Gnome
-6368607 increase unlock dialog box timeout to 2 minutes
-
-
-diff -urp -x '*~' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2006-05-23 16:01:34.000000000 -0700
-+++ driver/XScreenSaver.ad.in	2006-08-08 15:24:18.298277000 -0700
-@@ -28,39 +28,40 @@
- 
- ! /* (xrdb prevention kludge: whole file)
- 
--*mode:			random
--*timeout:		0:10:00
-+! We want the default mode to be just blank the screen
-+*mode:			blank
-+*timeout:		0:15:00
- *cycle:			0:10:00
--*lockTimeout:		0:00:00
--*passwdTimeout:		0:00:30
--*dpmsEnabled:		False
--*dpmsStandby:		2:00:00
--*dpmsSuspend:		2:00:00
--*dpmsOff:		4:00:00
--*grabDesktopImages:	True
-+*lockTimeout:		0:30:00
-+*passwdTimeout:		0:02:00
-+*dpmsEnabled:		True
-+*dpmsStandby:		0:15:00
-+*dpmsSuspend:		0:18:00
-+*dpmsOff:		0:21:00
-+*grabDesktopImages:	False
- *grabVideoFrames:	False
- *chooseRandomImages:	@DEFAULT_IMAGES_P@
- *imageDirectory:	@DEFAULT_IMAGE_DIRECTORY@
--*nice:			10
-+*nice:			19
- *memoryLimit:		0
--*lock:			False
-+*lock:			True
- *verbose:		False
- *timestamp:		True
- *fade:			True
- *unfade:		False
- *fadeSeconds:		0:00:03
- *fadeTicks:		20
--*splash:		True
-+*splash:		False
- *splashDuration:	0:00:05
- *visualID:		default
- *captureStderr: 	True
- *ignoreUninstalledPrograms: False
- 
--*textMode:		file
-+*textMode:		date
- *textLiteral:		XScreenSaver
- *textFile:		@DEFAULT_TEXT_FILE@
--*textProgram:		fortune
--*textURL:		http://www.livejournal.com/stats/latest-rss.bml
-+*textProgram:		date
-+*textURL:		http://blogs.sun.com/roller/rss
- 
- *overlayTextForeground:	#FFFF00
- *overlayTextBackground:	#000000
-@@ -149,9 +150,9 @@ GetViewPortIsFullOfLies: False
- ! screen savers interactively.
- !
- *programs:								      \
--		 "Qix (solid)" 	qix -root -solid -segments 100		    \n\
--	   "Qix (transparent)" 	qix -root -count 4 -solid -transparent	    \n\
--		"Qix (linear)" 	qix -root -count 5 -solid -transparent	      \
-+-		 "Qix (solid)" 	qix -root -solid -segments 100		    \n\
-+-	   "Qix (transparent)" 	qix -root -count 4 -solid -transparent	    \n\
-+-		"Qix (linear)" 	qix -root -count 5 -solid -transparent	      \
- 				  -linear -segments 250 -size 100	    \n\
- 									      \
- 	  "Attraction (balls)" 	attraction -root -mode balls		    \n\
-@@ -164,11 +165,11 @@ GetViewPortIsFullOfLies: False
- 									      \
- 				pyro -root				    \n\
- 				rocks -root				    \n\
--				helix -root				    \n\
--				pedal -root				    \n\
--				rorschach -root				    \n\
-+-				helix -root				    \n\
-+-				pedal -root				    \n\
-+-				rorschach -root				    \n\
- 				hopalong -root				    \n\
--				greynetic -root				    \n\
-+-				greynetic -root				    \n\
- 				imsmap -root				    \n\
- 				slidescreen -root			    \n\
- 				decayscreen -root			    \n\
-@@ -179,49 +180,49 @@ GetViewPortIsFullOfLies: False
- 				spotlight -root				    \n\
- 	      "Ripples (stir)"	ripples -root -oily -light 2 -stir	    \n\
- 	   "Ripples (desktop)"	ripples -root -water -light 6		    \n\
--				hypercube -root				    \n\
-+-				hypercube -root				    \n\
- -				hyperball -root				    \n\
- 				halo -root				    \n\
- 				maze -root				    \n\
- 				noseguy -root				    \n\
--				flame -root				    \n\
-+-				flame -root				    \n\
- -				lmorph -root				    \n\
- 				deco -root				    \n\
--				moire -root				    \n\
--				moire2 -root				    \n\
-+-				moire -root				    \n\
-+-				moire2 -root				    \n\
- 				lightning -root				    \n\
- 				strange -root				    \n\
- -				spiral -root				    \n\
--				laser -root				    \n\
-+-				laser -root				    \n\
- 	       			grav -root				    \n\
- 				drift -root				    \n\
- 				ifs -root				    \n\
--				julia -root				    \n\
-+-				julia -root				    \n\
- 				penrose -root				    \n\
- -				sierpinski -root			    \n\
- 				braid -root				    \n\
- 				galaxy -root				    \n\
- 				bouboule -root				    \n\
- 				swirl -root				    \n\
--				flag -root				    \n\
--				sphere -root				    \n\
--				forest -root				    \n\
-+-				flag -root				    \n\
-+-				sphere -root				    \n\
-+-				forest -root				    \n\
- -				lisa -root				    \n\
- -				lissie -root				    \n\
- 				goop -root				    \n\
- 				starfish -root				    \n\
--				munch -root				    \n\
-+-				munch -root				    \n\
- 				mismunch -root				    \n\
- 				fadeplot -root				    \n\
--				coral -root				    \n\
-+-				coral -root				    \n\
- 				mountain -root				    \n\
- 				triangle -root				    \n\
- -				worm -root				    \n\
- -				rotor -root				    \n\
---				demon -root				    \n\
-+				demon -root				    \n\
- -				loop -root				    \n\
- -				vines -root				    \n\
--				kaleidescope -root			    \n\
-+-				kaleidescope -root			    \n\
- 				xjack -root				    \n\
- 				xlyap -root				    \n\
- 				cynosure -root				    \n\
-@@ -229,7 +230,7 @@ GetViewPortIsFullOfLies: False
- 				epicycle -root				    \n\
- 				interference -root			    \n\
- 				truchet -root				    \n\
--				bsod -root				    \n\
-+-				bsod -root				    \n\
- 				crystal -root				    \n\
- 				discrete -root				    \n\
- 				kumppa -root				    \n\
-@@ -239,9 +240,9 @@ GetViewPortIsFullOfLies: False
- 				t3d -root				    \n\
- 				penetrate -root				    \n\
- 				deluxe -root				    \n\
--				compass -root				    \n\
-+-				compass -root				    \n\
- 				squiral -root				    \n\
--				xflame -root				    \n\
-+				xflame -root -bitmap /usr/share/pixmaps/gnome-logo-large.png \n\
- 				wander -root				    \n\
- 	      "Wander (spots)" 	wander -root -advance 0 -size 10 -circles     \
- 				  -length 10000 -reset 100000		    \n\
-@@ -259,18 +260,18 @@ GetViewPortIsFullOfLies: False
- 				bumps -root				    \n\
- 				xanalogtv -root				    \n\
- 				xspirograph -root			    \n\
--				nerverot -root				    \n\
-+-				nerverot -root				    \n\
- 				xrayswarm -root				    \n\
- -	       "Zoom (Fatbits)"	zoom -root				    \n\
- 	       "Zoom (Lenses)"	zoom -root -lenses			    \n\
- 				rotzoomer -root				    \n\
- 				whirlwindwarp -root			    \n\
-  	            		whirlygig -root				    \n\
-- 	            		speedmine -root				    \n\
-- 	            "SpeedWorm"	speedmine -root -worm			    \n\
-+- 	            		speedmine -root				    \n\
-+- 	            "SpeedWorm"	speedmine -root -worm			    \n\
-  	                	vermiculate -root			    \n\
-  	                	twang -root				    \n\
-- 	                	apollonian -root			    \n\
-+- 	                	apollonian -root			    \n\
-  	                	euler2d -root				    \n\
- 	     "Euler2d (dense)"	euler2d -root -count 4000 -eulertail 400      \
- 				  -ncolors 230				    \n\
-@@ -287,11 +288,9 @@ GetViewPortIsFullOfLies: False
-  	                	piecewise -root				    \n\
-  	                	cloudlife -root				    \n\
- 		   		fontglide -root				    \n\
--				apple2 -root				    \n\
-                                 bubbles -root				    \n\
- 				pong -root				    \n\
- 				wormhole -root				    \n\
--				pacman -root				    \n\
- 				fuzzyflakes -root			    \n\
- 				anemotaxis -root			    \n\
- 				memscroller -root			    \n\
-@@ -352,7 +351,6 @@ GetViewPortIsFullOfLies: False
- @GL_KLUDGE@ GL:			endgame -root				    \n\
- -	   GL:			glblur -root				    \n\
- @GL_KLUDGE@ GL:			atunnel -root				    \n\
--@GL_KLUDGE@ GL:			flyingtoasters -root			    \n\
- @GL_KLUDGE@ GL:			bouncingcow -root			    \n\
- @GL_KLUDGE@ GL:			jigglypuff -root			    \n\
- @GL_KLUDGE@ GL:			klein -root				    \n\
-@@ -363,23 +361,23 @@ GetViewPortIsFullOfLies: False
- @GL_KLUDGE@ GL:			blocktube -root				    \n\
- @GL_KLUDGE@ GL:			flipflop -root				    \n\
- @GL_KLUDGE@ GL:			antspotlight -root			    \n\
---	   GL:			glslideshow -root			    \n\
-+@GL_KLUDGE@ GL:			glslideshow -root			    \n\
- @GL_KLUDGE@ GL:			polytopes -root				    \n\
- @GL_KLUDGE@ GL:			gleidescope -root			    \n\
--- 	   GL:			mirrorblob -root			    \n\
--@GL_KLUDGE@ GL:	    "MirrorBlob (color only)"				      \
-+@GL_KLUDGE@ GL:			mirrorblob -root			    \n\
-+-	   GL:	    "MirrorBlob (color only)"				      \
-                                 mirrorblob -root -colour -no-texture	    \n\
- @GL_KLUDGE@ GL:			blinkbox -root				    \n\
- @GL_KLUDGE@ GL:			noof -root				    \n\
- @GL_KLUDGE@ GL:			polyhedra -root				    \n\
---	   GL:                  antinspect -root                            \n\
--@GL_KLUDGE@ GL:			providence -root			    \n\
-+@GL_KLUDGE@ GL:			antinspect -root                            \n\
-+-	   GL:			providence -root			    \n\
- @GL_KLUDGE@ GL:	"Pinion (large gears)"	pinion -root			    \n\
- @GL_KLUDGE@ GL:	"Pinion (small gears)"	pinion -root -size 0.2 -scroll 0.3  \n\
- @GL_KLUDGE@ GL:			boing -root -lighting -smooth		    \n\
---	   GL:                  carousel -root                              \n\
-+@GL_KLUDGE@ GL:			carousel -root                              \n\
- @GL_KLUDGE@ GL:			fliptext -root				    \n\
---	   GL:                  antmaze -root                               \n\
-+@GL_KLUDGE@ GL:			antmaze -root                               \n\
- @GL_KLUDGE@ GL:			tangram -root				    \n\
- @GL_KLUDGE@ GL:			crackberg -root				    \n\
- @GL_KLUDGE@ GL:			glhanoi -root				    \n\
-@@ -452,12 +450,12 @@ XScreenSaver.bourneShell:		/bin/sh
- *Dialog.shadowThickness:	2
- 
- *passwd.heading.label:		XScreenSaver %s
--*passwd.body.label:		Please enter your password.
-+*passwd.body.label:		This display is locked.
- *passwd.login.label:		New Login
- *passwd.user.label:		Username:
- *passwd.passwd.label:		Password:
- *passwd.thermometer.width:	8
--*passwd.asterisks:              True
-+*passwd.asterisks:              False
- *passwd.uname:                  True
- 
- *splash.heading.label:		XScreenSaver %s
-@@ -512,7 +510,6 @@ XScreenSaver.bourneShell:		/bin/sh
- *hacks.electricsheep.name:  ElectricSheep
- *hacks.sphereEversion.name: SphereEversion
- *hacks.fluidballs.name:     FluidBalls
--*hacks.flyingtoasters.name: FlyingToasters
- *hacks.bouncingcow.name:    BouncingCow
- *hacks.jigglypuff.name:     JigglyPuff
- *hacks.hypertorus.name:     HyperTorus
--- a/open-src/app/xscreensaver/XScr.ad.lockTimeout.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,43 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for: 6652454, P1, gnome/screensaver - xscreensaver does not invoke after IDLE time expires from a Sun Ray DTU
-
---- driver/XScreenSaver.ad.in	Thu Feb 14 18:02:56 2008
-+++ driver/XScreenSaver.ad.in	Thu Feb 14 18:04:39 2008
-@@ -32,7 +32,7 @@
- *mode:			blank
- *timeout:		0:15:00
- *cycle:			0:10:00
--*lockTimeout:		0:30:00
-+*lockTimeout:		0:00:00
- *passwdTimeout:		0:02:00
- *passwdTimeoutEnabled:	True
- *allowRoot:		False
--- a/open-src/app/xscreensaver/accessibility.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,565 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Sun bug 5077993/GNOME Bug 147639: 
-	Gok cant automatically UI grab screensaver preferences
-	http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5077993
-	http://bugzilla.gnome.org/show_bug.cgi?id=147639
-
-Sun bug 5083155:
-	Unable to unlock screen when running dual-head magnification
-	http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5083155
-
-Sun bug 5059445:
-	screen kb and screen reader support
-	http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5059445
-
-Sun bug 5039878:
-	"Password:" field should be focused / have flashing caret
-	http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5039878
-
-Sun bug 6176524:
-	passwdTimeoutEnable for disabled user (xscreensaver-lock)
-	http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6176524
-
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-08-09 14:27:11.803220000 -0700
-+++ driver/demo-Gtk.c	2006-08-09 14:27:18.141511000 -0700
-@@ -98,6 +98,8 @@
- # define G_MODULE_EXPORT /**/
- #endif /* !HAVE_GTK2 */
- 
-+#include <gconf/gconf-client.h>
-+
- #if defined(DEFAULT_ICONDIR) && !defined(GLADE_DIR)
- # define GLADE_DIR DEFAULT_ICONDIR
- #endif
-@@ -4578,6 +4580,10 @@ create_xscreensaver_settings_dialog (voi
- 
- #endif /* HAVE_GTK2 */
- 
-+/* AT-enabled */
-+#define KEY "/desktop/gnome/interface/accessibility"
-+gboolean         at_enable  = FALSE;
-+
- int
- main (int argc, char **argv)
- {
-@@ -4593,6 +4599,12 @@ main (int argc, char **argv)
-   char *geom = 0;
-   Bool crapplet_p = False;
-   char *str;
-+/*
-+** 5077993(P2)147639: Gok cant automatically UI grab screensaver preference
-+*/
-+  GConfClient *client;
-+  const char *modulesptr = NULL;
-+
- 
- #ifdef ENABLE_NLS
-   bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-@@ -4876,6 +4888,15 @@ main (int argc, char **argv)
- 
-   load_init_file (dpy, p);
-   initialize_sort_map (s);
-+  /* Bug 147639:Gok cant automatically UI grab screensaver preferences
-+  */
-+    /* AT-enable mode ? */
-+  client = gconf_client_get_default ();
-+  at_enable = gconf_client_get_bool (client, KEY, NULL);
-+   /* GTK Accessibility Module initialized */
-+  modulesptr = g_getenv ("GTK_MODULES");
-+  if (at_enable && (!modulesptr || modulesptr [0] == '\0'))
-+        putenv ("GTK_MODULES=gail:atk-bridge");
- 
-   /* Now that Xt has been initialized, and the resources have been read,
-      we can set our `progname' variable to something more in line with
-diff -urp -x '*~' driver/lock.c driver/lock.c
---- driver/lock.c	2006-08-09 14:27:11.540710000 -0700
-+++ driver/lock.c	2006-08-09 14:27:18.181823000 -0700
-@@ -21,6 +21,7 @@
- #include <X11/Intrinsic.h>
- #include <X11/cursorfont.h>
- #include <X11/Xos.h>		/* for time() */
-+#include <X11/Xatom.h>
- #include <time.h>
- #include <sys/time.h>
- #include <errno.h>
-@@ -77,6 +78,10 @@ vms_passwd_valid_p(char *pw, Bool verbos
- 
- #endif /* VMS */
- 
-+/* 5059445(p3) screen kb and reader support */
-+extern int grab_mouse (saver_info *si, Window window, Cursor cursor, int screen_no);
-+extern int grab_kbd (saver_info *si, Window window,  int screen_no);
-+
- extern int kill_job (saver_info *si, pid_t pid, int signal);
- extern struct screenhack_job *make_job (pid_t pid, int screen, const char *cmd);
- void hack_uid (saver_info *si);
-@@ -99,6 +104,105 @@ static void handle_passwd_button (saver_
- extern Atom XA_UNLOCK_RATIO;
- 
- 
-+/* GOK bug */
-+Window at_win[4] = {0,0,0,0};	/* wIds for XRestackWindows() */
-+				/* dialog, GOK, or MAG or screenSaver */
-+
-+int no_atserv = 0;		/* GOK or MAG or Both on def. screen 0 */
-+ 
-+Bool at_enabled = False; 	/* Ass. Tech support? def. no */
-+				/* for restoring the origin setting
-+				   override_redirect setting of MAG/GOK
-+				*/
-+Bool winatt_reset[2] = {FALSE,FALSE};
-+
-+/* 
-+5083155 Unable to unlock screen when running dual-head MAG
-+*adding dual or multiple heads for magnifier support
-+*
-+  screen 0: loginhelp can pass the raisedWid of GOK or MAG or both
-+	    found: return its parent Wid (child of root)
-+	    not found: 	0
-+
-+  other screen:	MAG only if the target screen no > 0 is selected
-+	found:	restack on that screen
-+		return 0
-+	not-found : rturn 0
-+
-+*/
-+Atom atom_type[1], atom_window_type;
-+
-+Window
-+check_raisedWid(saver_info *si,Window wid)
-+{
-+int screen_no,status;
-+Bool loop, found = FALSE;
-+Window root_ret, parent_ret, *children = NULL,root;
-+unsigned int nchildren = 0;
-+
-+Screen *screen;
-+saver_screen_info *ssi;
-+Display *dpy;
-+Window screen_win[2] = {0,0};
-+
-+
-+for (screen_no = 0; screen_no < si->nscreens; screen_no++)
-+ {
-+   loop = TRUE;
-+   ssi = &si->screens[screen_no];
-+   screen = ssi->screen;
-+   root =    RootWindowOfScreen (screen);
-+   if (screen_no == 0)
-+	dpy = DisplayOfScreen(screen);
-+   else
-+	dpy = ssi->other_dpy;
-+   if (dpy)
-+   {
-+     while (loop)
-+     {
-+     status =  
-+	XQueryTree (dpy, wid ,&root_ret,&parent_ret, &children, &nchildren);
-+/*  AT_LOCK_DEBUG
-+fprintf(stderr, " ==>screen(%x) root(%x) wid(%x) root_ret(%x) parent_ret(%x)\n", screen, root, wid, root_ret, parent_ret);
-+fprintf(stderr, " screen_no(%d) ==>dpy(%x)\n", screen_no,dpy);
-+*/
-+
-+	if (parent_ret == 0 || root != root_ret) /* not found */
-+			loop = FALSE;
-+        else if ( root_ret != parent_ret)
-+          wid  = parent_ret;
-+        else
-+	{
-+		    
-+	  loop = FALSE;
-+	  found = TRUE;
-+/*  AT_LOCK_DEBUG
-+fprintf(stderr,"==> found wid is 0x%x screen_no(%d)\n", wid, screen_no);
-+*/
-+	  if (screen_no)
-+	  {
-+/* 
-+** found in other screen(not scn 0), implies MAG target scn, 
-+** invoke XRestackWindow()
-+*/
-+		screen_win[0] = wid;
-+		screen_win[1] = ssi->screensaver_window;
-+		XRestackWindows(dpy, screen_win, 2);
-+		XSync (dpy, False);
-+		wid = 0;   /* no need to do the restack on screen 0 */
-+	   }
-+	   screen_no = si->nscreens;
-+	}
-+	} /* while loop */
-+  } /*dpy check */
-+   
-+ } /* for loop */
-+ if (found)
-+	return wid;
-+ else 
-+	return 0;
-+}
-+
- static int  ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error);
- 
- #ifdef HAVE_XSCREENSAVER_LOCK
-@@ -164,6 +268,7 @@ handle_passwd_input (XtPointer data, int
-   saver_preferences *p = &si->prefs;
-   char buffer[1024];
-   char *s;
-+  int status;
- 
-   if (si->prefs.verbose_p)
-     fprintf (stderr, "passwd input handler() fd=%d\n",*fd);
-@@ -206,9 +311,100 @@ handle_passwd_input (XtPointer data, int
-   else /* Get the window id of lock dialog from Child ***/
-     {
-       Window window = strtoul (s, NULL, 0);
--      /* FIXME: what to revert to? */
--      XSetInputFocus (si->dpy, window, RevertToParent, CurrentTime);
-+
-+        XSetWindowAttributes setwinattr;
-+        unsigned long valuemask = CWOverrideRedirect;
-+        XWindowChanges changes;
-+        setwinattr.override_redirect = True;
-+	XWindowAttributes window_attributes_return;
-+
-+      Window window1 = 0, passwd_win = 0,wintemp = 0; int j;
-+/*CR 5039878 2 3 "Password:" field should be focused / have flashing caret */
-+      s = fgets (buffer, sizeof (buffer), si->pw_data->input_file);
-+      passwd_win = strtoul (s, NULL, 0);
-+      no_atserv = 0;
-+      at_win[no_atserv] = window;
-+		
-+	/* There is no need to reset the timer for Normal user
-+	   for each pop-up dialog
-+	*/
-+      at_enabled = False;
-+
-+
-+      for (j= 0; j < 2; j++)
-+      {
-+        s = fgets (buffer, sizeof (buffer), si->pw_data->input_file);
-+        window1 = strtoul (s, NULL, 0);
-+/* GOK, MAG, not running, Ass. Tech support is still selected
-+   not enough interface info from loginhelper to cover all
-+   possible conditions, ungrab kb/mouse now
-+ */
-+        if (window1 == 0x1)
-+		at_enabled = True;
-+	else
-+        if (window1 != 0x0 ) {
-+/*
-+5083155 Unable to unlock screen when running dual-head MAG
-+*adding dual or multiple heads for magnifier support
-+*/
-+
-+		at_enabled = True;
-+		wintemp = check_raisedWid(si, window1);
-+                if (wintemp) {
-+	status = 
-+	XGetWindowAttributes(si->dpy,wintemp,&window_attributes_return);
-+	
-+	if ((status) && (!window_attributes_return.override_redirect))
-+	{
-+           XFlush(si->dpy);
-+	   XChangeWindowAttributes(si->dpy,wintemp,valuemask,&setwinattr);
-+	   winatt_reset[j] = TRUE;
-+/*  AT_LOCK_DEBUG
-+fprintf(stderr,"Debug: ==> winatt_reset[%d] override_redirect needs to be reset\n",j);
-+*/
-+        }
-+        XMapSubwindows(si->dpy, wintemp);
-+        no_atserv++;
-+        at_win[no_atserv] = wintemp;
-+		} /* wintemp != 0 */
-+        }
-+      }
-+	/* common parent, i.e root win */
-+
-+/* cases for running GOK , or MAG or GOK+MAG */
-+
-+        if (no_atserv > 0) {
-+        /* pop-up dialog in dock mode */
-+/* AT_LOCK_DEBUG
-+fprintf(stderr,"==> found dialog wid 0x%x\n", window);
-+*/
-+          XRestackWindows(si->dpy, at_win, no_atserv+1);
-+	  XUngrabKeyboard(si->dpy, CurrentTime);
-+          XUngrabPointer(si->dpy, CurrentTime);
-+          si->at_external_passwd = True;
-+          XFlush(si->dpy);
-+        }
-+	/* no MAG or GOK, only SPEECH is running 
-+	   just Ass. Tech support is selected
-+	*/
-+	else if ((no_atserv == 0) && (at_enabled))
-+	{
-+		XUngrabKeyboard(si->dpy, CurrentTime);
-+          	XUngrabPointer(si->dpy, CurrentTime);
-+		si->at_external_passwd = True;
-+		XFlush(si->dpy);
-+	}
-+
-+/*  AT_LOCK_DEBUG
-+	fprintf(stderr,"debug no_atserv   0x%x\n", no_atserv);
-+	fprintf(stderr,"debug passwd win   0x%x\n", passwd_win);
-+	fprintf(stderr,"debug window   0x%x\n", window);
-+*/
-+ 
-+      XSelectInput(si->dpy, passwd_win,KeyPressMask);
-+      XSetInputFocus (si->dpy, passwd_win,RevertToPointerRoot, CurrentTime);
-       XSync (si->dpy, False);
-+ 
-       si->pw_data->got_windowid = True;
-       si->passwd_dialog = window;
-       /**g_passwd_dialog_created = True;**/ /*set global flag to check in timers.c*/
-@@ -363,6 +559,7 @@ make_window (saver_info *si, enum window
-       return;
-     }
-   si->external_passwd = False;
-+  si->at_external_passwd = False;
-   /* FIXME: don't abort() */
-   /*abort ();*/
- #endif /* HAVE_XSCREENSAVER_LOCK */ 
-@@ -1123,6 +1320,13 @@ destroy_passwd_window (saver_info *si)
-   Colormap cmap;
-   Pixel black, white;
-   XEvent event;
-+/* CR5083155 [Cinn Solaris]Unable to unlock screen when running dual-head MAG
-+*/
-+  int j;
-+  XSetWindowAttributes setwinattr;
-+  unsigned long valuemask = CWOverrideRedirect;
-+  XWindowChanges changes;
-+  setwinattr.override_redirect = FALSE;
- 
-   if (si->prefs.verbose_p)
-     fprintf (stderr, "destroy_passwd_window\n");
-@@ -1171,6 +1375,7 @@ destroy_passwd_window (saver_info *si)
- 	}
-       
-       si->external_passwd = False;
-+      si->at_external_passwd = False;
-      }     
-   else
- #endif /* HAVE_XSCREENSAVER_LOCK */
-@@ -1292,6 +1497,19 @@ destroy_passwd_window (saver_info *si)
-   free (pw);
-   si->pw_data = 0;
-   ************/
-+
-+ for (j= 1; j < 3 ; j++)
-+ {
-+   if (winatt_reset[j-1] && at_win[j] )
-+   {
-+      XChangeWindowAttributes(si->dpy,at_win[j],valuemask,&setwinattr);
-+      winatt_reset[j-1] = FALSE;
-+      at_win[j] = 0;
-+/*fprintf(stderr, "DEBUG: at(%d) override_redirect set to FALSE\n", j);
-+*/
-+   }
-+ }
-+
- }
- 
- 
-@@ -1540,6 +1758,10 @@ passwd_animate_timer (XtPointer closure,
-       event.xclient.data.l[1] = 0;
-       event.xclient.data.l[2] = 0;
- 
-+/* CR 6176524 passwdTimeoutEnable for disabled user */
-+      if (!si->prefs.pwd_p)
-+        event.xclient.data.l[1] = 1;
-+
-       XSync (si->dpy, False);
-       old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
-       
-@@ -1709,6 +1931,10 @@ passwd_event_loop (saver_info *si)
-   XEvent event;
-   unsigned int caps_p = 0;
- 
-+/* bugid 6176524 passwdTimeout and reset timer for each key press */
-+  passwd_dialog_data *pw = si->pw_data;
-+  int ii;
-+
-   passwd_animate_timer ((XtPointer) si, 0);
- 
-   while (si->pw_data && si->pw_data->state == pw_read)
-@@ -1719,7 +1945,7 @@ passwd_event_loop (saver_info *si)
- 	{
- 	  if (si->pw_data->got_windowid)
- 	    {
--	      Bool status;
-+	      Bool status,pwd_status;
- 	      XErrorHandler old_handler;
- 	     
-               if(p->verbose_p)
-@@ -1735,6 +1961,22 @@ passwd_event_loop (saver_info *si)
-               XSync (si->dpy, False);
-               XSetErrorHandler (old_handler);
- 
-+/* CR 6176524 passwdTimeoutEnable for disabled user
-+   timer will be reset if 4 conditions art true (for each char of pwd)
-+   (status) && (p->pwd_p) && (at_enabled) && (pw->timer)
-+   However AT group wants to remove at_enabled
-+   i.e reset the password timer for each key for all users
-+   * 6240938 screensaver-lock's password timer needs to to be reset
-+        for each key (all users) and enabling AT support
-+*/
-+
-+	if ((status) && (p->pwd_p)  && (pw->timer)) {
-+        XtRemoveTimeOut (pw->timer);
-+	pw->ratio = 1.0;
-+        pw->timer = XtAppAddTimeOut (si->app, 166, passwd_animate_timer,
-+                                 (XtPointer) si);
-+	}
-+
-               if (p->verbose_p)
-                 {
-                   if (status)
-@@ -1775,8 +2017,61 @@ passwd_event_loop (saver_info *si)
- 	  si->pw_data->state = pw_read;
-        }
- 
-+ /*
-+* 5077974 P1 "Bug 147583: Screen Lock unlocks because of GOK dwell movement in
-+              core pointer mode"
-+* 
-+* ScreenLock did not unlock the screen, but WM's XRestackWindow() did.
-+* Once WM/metacity fixes the problem, the code can be removed.
-+  The problem:
-+  repositioning the Wids in the wrong positions when
-+  1. the window type is changed from NORMAL to DOCK or vice versa
-+  2. the Wid is managed
-+  within the X window stack with or without screen-lock in a mixed Wids
-+  there are two temp. get-around solutions:
-+  1. non-managed GOK or MAG Wid
-+  or
-+  2. screensaver picks up the WM's restacking task and fixes the prevous
-+     restacking problem.
-+     the cons: there is a flashing screen when corepointer is touching
-+     GOK or MAG and mouse is moved in a fast way
-+     when GOK or MAG window type is DOCK only.
-+     and it is not a good temp. get-around solution.
-+     This is the only choice if WM did not want to fix the problem now
-+     and AT group did not want to use non-managed Wids.
-+     Now, GOK only supports 2nd USB/mouse/Dwell, corepointer is supposed
-+     not to be used, and GOK cannot disable it
-+*/
-+        else if (((event.type == UnmapNotify)
-+                || (event.type == MapNotify )
-+                || (event.type == ConfigureNotify)
-+                || (event.type == PropertyNotify )
-+                || (event.type == ReparentNotify ))
-+                && (si->passwd_dialog) && (no_atserv))
-+        {
-+/* AT_LOCK_DEBUG
-+fprintf (stderr, "client window(0x%x) %s\n", event.xclient.window,blurb());
-+fprintf (stderr, "dialog window 0x%x:\n", si->passwd_dialog);
-+fprintf(stderr, "** no_atserv: %d \n", no_atserv);
-+for (ii = 0; ii < 4;  ii++)
-+         fprintf(stderr, "** win : 0x%x \n", at_win[ii]);
-+*/
-+          at_win[no_atserv+1] = si->screens[0].screensaver_window;
-+/* 2 => screensaver and dialog Wids */
-+         XRestackWindows(si->dpy, at_win, no_atserv+2);
-+          XFlush(si->dpy);
-+        }
-+/* the above new code for restacking under the conidtion
-+*/
-       else
--	XtDispatchEvent (&event);
-+        {
-+/*
-+         if ((si->passwd_dialog) && (no_atserv) && (event.type != 0))
-+         fprintf(stderr, "** DEbug other event %d\n", event.type);
-+*/
-+        XtDispatchEvent (&event);
-+        }
-+
-     }
- 
-   switch (si->pw_data->state)
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-08-09 14:27:11.897652000 -0700
-+++ driver/xscreensaver.c	2006-08-09 14:27:18.183551000 -0700
-@@ -933,6 +933,21 @@ initialize_per_screen_info (saver_info *
- 	      get_visual (ssi->screen, "GrayScale", True, False))
- 	    found_any_writable_cells = True;
- 	}
-+/* 
-+** 5083155 unable to unlock scr when runing dual-head MAG
-+*/
-+        if (i > 0)       /* other screens */
-+        {
-+        char other_dpyname[20];
-+        char *pdpy;
-+	sprintf(other_dpyname,":0.%d\0",i);
-+	pdpy = strdup(other_dpyname);
-+        ssi->other_dpy = XOpenDisplay(pdpy);
-+	free(pdpy);
-+/*
-+fprintf(stderr,"==>other dpy i(%d) dpy(%s) 0x%x\n",i,other_dpyname, ssi->other_dpy);
-+*/
-+    }
-     }
- 
-   si->fading_possible_p = found_any_writable_cells;
-@@ -1168,6 +1183,18 @@ main_loop (saver_info *si)
- {
-   saver_preferences *p = &si->prefs;
-   /* Bool ok_to_unblank; made this a global flag, gets set in timers.c */
-+  const char *modulesptr = NULL;
-+
-+/*
-+** CR4784055(P1)locked-screen dialog is inaccessible to Gnopernicus
-+** voice for each type-in char in the password field of
-+** pop-up diaglog
-+*/
-+
-+ /* GTK Accessibility Module initialized */
-+  modulesptr = getenv ("GTK_MODULES");
-+  if (!modulesptr || modulesptr [0] == '\0')
-+        putenv ("GTK_MODULES=gail:atk-bridge");
- 
-   while (1)
-     {
-diff -urp -x '*~' driver/xscreensaver.h driver/xscreensaver.h
---- driver/xscreensaver.h	2006-08-09 14:27:11.790468000 -0700
-+++ driver/xscreensaver.h	2006-08-09 14:27:18.199788000 -0700
-@@ -302,6 +302,8 @@ struct saver_screen_info {
-   GC stderr_gc;
-   Window stderr_overlay_window;    /* Used if the server has overlay planes */
-   Colormap stderr_cmap;
-+  Display *other_dpy;              /* used by AT's MAG XRestackWindow() */
-+				   /* 5083155 mag dual-heads */
- };
- 
- 
--- a/open-src/app/xscreensaver/allow-root.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for: 4849641: xscreensaver won't run as root
-
-Let root lock the screen, but don't launch the hacks for root.
-
-(Upstream maintainer argues instead that users should not login as root,
- which is correct, but not something we can force our customers to stop
- doing.  See http://www.jwz.org/xscreensaver/faq.html#root-lock for his side.)
-
-
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-08-08 17:26:21.212926000 -0700
-+++ driver/demo-Gtk.c	2006-08-08 17:26:28.136415000 -0700
-@@ -623,6 +623,14 @@ run_cmd (state *s, Atom command, int arg
-   char *err = 0;
-   int status;
- 
-+  if (getuid() == 0) 
-+   {
-+      char buf [255];
-+      strlcpy (buf, ("Can not run hacks if logged in as root!"), sizeof(buf));
-+      warning_dialog (s->toplevel_widget, buf, False, 100);
-+      return; 
-+   }
-+
-   flush_dialog_changes_and_save (s);
-   status = xscreensaver_command (GDK_DISPLAY(), command, arg, False, &err);
- 
-@@ -653,6 +661,14 @@ run_hack (state *s, int list_elt, Bool r
-   char *err = 0;
-   int status;
- 
-+  if (getuid() == 0) 
-+   {
-+      char buf [255];
-+      strlcpy (buf, _("Can not run hacks if logged in as root!"), sizeof(buf));
-+      warning_dialog (s->toplevel_widget, buf, False, 100);
-+     return; 
-+   }
-+
-   if (list_elt < 0) return;
-   hack_number = s->list_elt_to_hack_number[list_elt];
- 
-@@ -4948,6 +4964,15 @@ main (int argc, char **argv)
-     GtkMenu *menu = GTK_MENU (gtk_option_menu_get_menu (opt));
-     GList *kids = gtk_container_children (GTK_CONTAINER (menu));
-     int i;
-+
-+    if (getuid() == 0)
-+     {
-+      /*mali if logged in as root disable menu so user cant activate a hack...*/
-+      gtk_widget_set_sensitive (GTK_WIDGET (opt), False);
-+      gtk_widget_set_sensitive (GTK_WIDGET (menu), False);
-+     }
-+    else
-+     {
-     for (i = 0; kids; kids = kids->next, i++)
-       {
-         gtk_signal_connect (GTK_OBJECT (kids->data), "activate",
-@@ -4961,6 +4986,7 @@ main (int argc, char **argv)
-             mode_menu_order[i] == RANDOM_HACKS_SAME)
-           gtk_widget_hide (GTK_WIDGET (kids->data));
-       }
-+     }
- 
-     if (s->nscreens <= 1)   /* recompute option-menu size */
-       {
-diff -urp -x '*~' driver/exec.c driver/exec.c
---- driver/exec.c	2006-02-03 23:36:33.000000000 -0800
-+++ driver/exec.c	2006-08-08 17:26:28.136858000 -0700
-@@ -187,6 +187,7 @@ exec_command (const char *shell, const c
-   hairy_p = !!strpbrk (command, "*?$&!<>[];`'\\\"=");
-   /* note: = is in the above because of the sh syntax "FOO=bar cmd". */
- 
-+#ifdef DONT_ALLOW_ROOT_LOGIN
-   if (getuid() == (uid_t) 0 || geteuid() == (uid_t) 0)
-     {
-       /* If you're thinking of commenting this out, think again.
-@@ -197,6 +198,7 @@ exec_command (const char *shell, const c
-                blurb());
-       exit (-1);
-     }
-+#endif /*DONT_ALLOW_ROOT_LOGIN*/
- 
-   if (hairy_p)
-     /* If it contains any shell metacharacters, do it the hard way,
-diff -urp -x '*~' driver/setuid.c driver/setuid.c
---- driver/setuid.c	2006-08-08 17:26:21.309244000 -0700
-+++ driver/setuid.c	2006-08-08 17:26:28.137412000 -0700
-@@ -122,6 +122,10 @@ set_ids_by_number (uid_t uid, gid_t gid,
-   struct passwd *p = getpwuid (uid);
-   struct group  *g = getgrgid (gid);
- 
-+  /* if we are logged in as root i.e. uid==0 then dont do anything*/
-+  if (getuid() == 0)
-+   return 0;
-+
-   if (message_ret)
-     *message_ret = 0;
- 
-@@ -279,6 +283,9 @@ hack_uid (saver_info *si)
-          of the xscreensaver manual titled "LOCKING AND ROOT LOGINS",
-          and "USING XDM".
-    */
-+
-+/* We are letting root login to fix a P1 bug, i.e. root should lock screen*/
-+#ifdef DONT_ALLOW_ROOT_LOGIN
-   if (getuid() == (uid_t) 0)
-     {
-       si->locking_disabled_p = True;
-@@ -316,6 +323,7 @@ hack_uid (saver_info *si)
-       if (set_ids_by_number (p->pw_uid, p->pw_gid, &si->uid_message) != 0)
- 	saver_exit (si, -1, 0);
-     }
-+#endif /*DONT_ALLOW_ROOT_LOGIN*/
- 
- 
-   /* If there's anything even remotely funny looking about the passwd struct,
-@@ -358,7 +366,10 @@ hack_uid (saver_info *si)
- 		 (p && p->pw_name && *p->pw_name
- 		  ? p->pw_name : "<unknown>"));
- 	si->nolock_reason = buf;
-+
-+#ifdef DONT_ALLOW_ROOT_LOGIN
- 	si->locking_disabled_p = True;
-+#endif
- 	si->dangerous_uid_p = True;
-       }
-   }
-diff -urp -x '*~' driver/subprocs.c driver/subprocs.c
---- driver/subprocs.c	2006-08-08 17:26:21.310147000 -0700
-+++ driver/subprocs.c	2006-08-08 17:26:28.179189000 -0700
-@@ -1066,6 +1066,9 @@ check_if_hacks_dir_exists(void)
- void
- spawn_screenhack (saver_info *si, Bool first_time_p)
- {
-+  if (getuid() == 0)
-+    return;  /* Dont let hacks run if logged in as root*/
-+
-   if (si->prefs.verbose_p)
-    fprintf(stderr, "--> spawn_screenhack()\n");
- 
-diff -urp -x '*~' driver/timers.c driver/timers.c
---- driver/timers.c	2006-08-08 17:26:21.311523000 -0700
-+++ driver/timers.c	2006-08-08 17:26:28.180256000 -0700
-@@ -274,7 +274,8 @@ cycle_timer (XtPointer closure, XtInterv
-       maybe_reload_init_file (si);
-       kill_screenhack (si);
- 
--      if (!si->throttled_p)
-+      /* if we are root then dont run hacks*/
-+      if (!si->throttled_p && getuid() !=0)
-         spawn_screenhack (si, False);
-       else
-         {
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-08-08 17:26:21.345515000 -0700
-+++ driver/xscreensaver.c	2006-08-08 17:26:28.181466000 -0700
-@@ -402,6 +402,7 @@ startup_ehandler (String name, String ty
- 
-   describe_uids (si, stderr);
- 
-+#ifdef DONT_ALLOW_ROOT_LOGIN
-   if (si->orig_uid && !strncmp (si->orig_uid, "root/", 5))
-     {
-       fprintf (stderr, "\n"
-@@ -415,11 +416,11 @@ startup_ehandler (String name, String ty
-                blurb());
-     }
-   else
-+#endif /*DONT_ALLOW_ROOT_LOGIN*/
-     {
-       fprintf (stderr, "\n"
-           "%s: Errors at startup are usually authorization problems.\n"
--"              But you're not logging in as root (good!) so something\n"
--"              else must be wrong.  Did you read the manual and the FAQ?\n",
-+"              Did you read the manual and the FAQ?\n",
-            blurb());
-     }
- 
-@@ -1244,7 +1245,7 @@ main_loop (saver_info *si)
- 
-       kill_screenhack (si);
- 
--      if (!si->throttled_p)
-+      if (!si->throttled_p && getuid() != 0)
-         spawn_screenhack (si, True);
-       else if (p->verbose_p)
-         fprintf (stderr, "%s: not launching hack (throttled.)\n", blurb());
--- a/open-src/app/xscreensaver/allowRootByPassFlag.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for CR 6448236 xscreensaver should have option to control allowing root to unlock screen. Added allowRoot flag in XScreenSaver_ad.in which gets written to ~/.xscreensaver file through which you can allow if root has permission to break into a users locked screen, by typing in the root password.
-
-diff -urp -x '*~' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2006-09-19 17:09:25.247483000 -0700
-+++ driver/XScreenSaver.ad.in	2006-09-19 17:09:31.272293000 -0700
-@@ -35,6 +35,7 @@
- *lockTimeout:		0:30:00
- *passwdTimeout:		0:02:00
- *passwdTimeoutEnabled:	True
-+*allowRoot:		False
- *dpmsEnabled:		True
- *dpmsStandby:		0:24:00
- *dpmsSuspend:		0:27:00
-diff -urp -x '*~' driver/passwd-pam.c driver/passwd-pam.c
---- driver/passwd-pam.c	2006-09-19 17:09:25.244047000 -0700
-+++ driver/passwd-pam.c	2006-09-19 17:09:31.273288000 -0700
-@@ -647,32 +647,40 @@ pam_passwd_valid_p (void)
- */
- 
- #ifdef ALLOW_ROOT_PASSWD
--  /* If that didn't work, set the user to root, and try to authenticate again.
--   */
--  if (user) free (user);
--  user = strdup ("root");
--  c.user = user;
-+ if (si->prefs.verbose_p)
-+  fprintf(stderr,"\n\nRoot has permission to unlock screen?:%d\n\n", 
-+			si->prefs.allowRoot);
-+
-+ /* If allowRoot pref in ~/.xscreensaver is false, 
-+  * allow root to unlock a users session. 
-+  */
-+ if (si->prefs.allowRoot)
-+  {
-+   /* Set the user to root, and try to authenticate again.  */
-+   if (user) free (user);
-+   user = strdup ("root");
-+   c.user = user;
-  
--  not_a_failover_case = True; /* Set this so user is not prompted for root
-+   not_a_failover_case = True;/* Set this so user is not prompted for root
-                                * passwd instead the cached passwd from above
-                                * call to pam_authenticate() is used. 
-                                */
- 
--  status = pam_set_item (pamh, PAM_USER, c.user);
--  if (verbose_p)
-+   status = pam_set_item (pamh, PAM_USER, c.user);
-+   if (verbose_p)
-     fprintf (stderr, "%s:   pam_set_item(p, PAM_USER, \"%s\") ==> %d (%s)\n",
-              blurb(), c.user, status, PAM_STRERROR(pamh, status));
--  if (status != PAM_SUCCESS) goto DONE;
-+   if (status != PAM_SUCCESS) goto DONE;
- 
--  PAM_NO_DELAY(pamh);
-+   PAM_NO_DELAY(pamh);
- 
--  set = block_sigchld();
--  pam_auth_status = pam_authenticate (pamh, 0);
--  sigtimedwait(&set, NULL, &timeout);
--  unblock_sigchld();
-+   set = block_sigchld();
-+   pam_auth_status = pam_authenticate (pamh, 0);
-+   sigtimedwait(&set, NULL, &timeout);
-+   unblock_sigchld();
- 
--  /* Send status message to unlock dialog ***/
--  if (pam_auth_status == PAM_SUCCESS)
-+   /* Send status message to unlock dialog ***/
-+   if (pam_auth_status == PAM_SUCCESS)
-     {
-       write_to_child (si, "pw_ok");
-       tmp_buf = strdup (_("Letting you in as ROOT!!"));
-@@ -683,12 +691,13 @@ pam_passwd_valid_p (void)
- 	sleep (1);
-     }
- 
--  /* PAM_SUCCESS defined to be 0 in /usr/include/security/pam_appl.h */
--  si->pw_data->state = (pam_auth_status == PAM_SUCCESS ? pw_ok : pw_fail);
-+   /* PAM_SUCCESS defined to be 0 in /usr/include/security/pam_appl.h */
-+   si->pw_data->state = (pam_auth_status == PAM_SUCCESS ? pw_ok : pw_fail);
-   
--  if (verbose_p)
-+   if (verbose_p)
-     fprintf (stderr, "%s:   pam_authenticate as root user (...) ==> %d (%s)\n",
-              blurb(), pam_auth_status, PAM_STRERROR(pamh, pam_auth_status));
-+ } /* if prefs.allowRoot is True */
- 
- #endif /* ALLOW_ROOT_PASSWD */
- 
-diff -urp -x '*~' driver/prefs.c driver/prefs.c
---- driver/prefs.c	2006-09-19 17:09:25.231979000 -0700
-+++ driver/prefs.c	2006-09-19 17:09:31.294427000 -0700
-@@ -256,6 +256,7 @@ static const char * const prefs[] = {
-   "lockTimeout",
-   "passwdTimeout",
-   "passwdTimeoutEnabled",
-+  "allowRoot",
-   "visualID",
-   "installColormap",
-   "verbose",
-@@ -799,6 +800,7 @@ write_init_file (Display *dpy,
-       CHECK("lockVTs")		continue;  /* don't save, unused */
-       CHECK("lockTimeout")	type = pref_time, t = p->lock_timeout;
-       CHECK("passwdTimeout")	type = pref_time, t = p->passwd_timeout;
-+      CHECK("allowRoot")	type = pref_bool, b = p->allowRoot;
- 
- /* *bugid 5077981 pwd timeout */
-       CHECK("passwdTimeoutEnabled")		type = pref_bool, b = p->pwd_p;
-@@ -1117,6 +1119,7 @@ load_init_file (Display *dpy, saver_pref
-   }
-   /* *bugid 5077981 pwd timeout */
-   p->pwd_p	    = get_boolean_resource (dpy, "passwdTimeoutEnabled", "Boolean");
-+  p->allowRoot	    = get_boolean_resource (dpy, "allowRoot", "Boolean");
-   p->pointer_timeout = 1000 * get_seconds_resource (dpy, "pointerPollTime", "Time");
-   p->pointer_hysteresis = get_integer_resource (dpy, "pointerHysteresis","Integer");
-   p->notice_events_timeout = 1000*get_seconds_resource(dpy,
-diff -urp -x '*~' driver/prefs.h driver/prefs.h
---- driver/prefs.h	2006-09-19 17:09:25.232258000 -0700
-+++ driver/prefs.h	2006-09-19 17:09:31.306751000 -0700
-@@ -55,6 +55,7 @@ struct saver_preferences {
-   Bool lock_p;			/* whether to lock as well as save */
-   Bool pwd_p;			/* whether to disable/enable pwd timeout */
- 				/* bugid 5077981 */
-+  Bool allowRoot;               /* whether to allow root to unlock a users session */
- 
-   Bool fade_p;			/* whether to fade to black, if possible */
-   Bool unfade_p;		/* whether to fade from black, if possible */
--- a/open-src/app/xscreensaver/barcode-hack.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,385 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
-Replace words that may disturb easily-offended users or easily-worried lawyers
-with those that may entertain the easily-amused Sun engineer who had to edit
-the list.
-
-diff -urp -x '*~' hacks/barcode.c hacks/barcode.c
---- hacks/barcode.c	2006-04-05 23:40:32.000000000 -0700
-+++ hacks/barcode.c	2009-02-05 18:58:22.542671000 -0800
-@@ -102,44 +102,65 @@ static const char *words[] = 
-   "addiction",
-   "alertness",
-   "Algeria",
-+  "Amber Road",
-   "anxiety",
-   "aorta",
-   "argyle socks",
-   "attrition",
-+  "automagic",
-   "axis of evil",
-   "bamboo",
-+  "banana slug",
-   "bangle",
-   "bankruptcy",
-   "baptism",
-+  "barrelmaker",
-   "beer",
-   "bellicosity",
-   "bells",
-   "belly",
-+  "Beowawe",
-+  "Berkeley",
-+  "BFU",
-+  "biodiesel",
-+  "blastwave",
-   "bliss",
-   "bogosity",
--  "boobies",
--  "boobs",
-+  "bolthole",
-+  "Boole House",
-   "booty",
-   "bread",
-+  "brickify",
-+  "browncoat",
-   "bubba",
-   "burrito",
-+  "caiman",
-   "California",
-   "capybara",
-   "cardinality",
-   "caribou",
-   "carnage",
-+  "Chicago",
-   "children",
-+  "chime",
-   "chocolate",
-+  "chupacabra",
-+  "cinnabar",
-+  "Clear View",
-   "CLONE",
--  "cock",
-+  "Colorado",
-   "constriction",
-   "contrition",
-   "cop",
-+  "corona",
-   "corpse",
-   "cowboy",
-   "crabapple",
-   "craziness",
-+  "crossbow",
-   "cthulhu",
-+  "cuddle",
-+  "cuddletech",
-   "Death",
-   "decepticon",
-   "deception",
-@@ -148,20 +169,28 @@ static const char *words[] = 
-   "decoy",
-   "defenestration",
-   "democracy",
-+  "dendrite",
-   "dependency",
-   "despair",
-   "desperation",
-   "disease",
-   "disease",
-   "doberman",
-+  "dot com",
-   "DOOM",
--  "dreams",
-+  "DREAM",
-   "dreams",
-   "drugs",
-+  "Duckwater",
-+  "duraflame",
-   "easy",
-   "ebony",
-+  "ecoresponsibility",
-   "election",
-   "eloquence",
-+  "Elko",
-+  "Ely",
-+  "embiggen",
-   "emergency",
-   "eureka",
-   "excommunication",
-@@ -171,18 +200,27 @@ static const char *words[] = 
-   "fear",
-   "fever",
-   "filth",
-+  "fishworks",
-+  "flask",
-   "flatulence",
-   "fluff",
-   "fnord",
-+  "FOX",
-+  "frak",
-   "freedom",
-   "fruit",
--  "fruit",
-+  "fugu",
-   "futility",
-+  "galaxy",
-+  "genunix",
-   "gerbils",
--  "GOD",
-+  "Gerlach",
-   "goggles",
-   "goobers",
-   "gorilla",
-+  "grok",
-+  "grub",
-+  "Groom Lake",
-   "halibut",
-   "handmaid",
-   "happiness",
-@@ -193,23 +231,30 @@ static const char *words[] = 
-   "heroin",
-   "heroine",
-   "hope",
-+  "honeycomb",
-   "hysteria",
-+  "Ichthyosaur",
-   "icepick",
-   "identity",
-   "ignorance",
-   "importance",
-+  "Indiana",
-   "individuality",
-   "inkling",
-   "insurrection",
-   "intoxicant",
-   "ire",
-   "irritant",
-+  "iwashi",
-   "jade",
-   "jaundice",
-+  "Jet",
-   "Joyce",
-+  "Jupiter",
-   "kidney stone",
-   "kitchenette",
-   "kiwi",
-+  "Lahontan",
-   "lathe",
-   "lattice",
-   "lawyer",
-@@ -218,22 +263,35 @@ static const char *words[] = 
-   "lobbyist",
-   "love",
-   "lozenge",
-+  "Lund",
-+  "Mad Hatter",
-   "magazine",
-   "magnesium",
-   "malfunction",
-+  "Marrakesh",
-+  "Mars",
-   "marmot",
-   "marshmallow",
-+  "McGill",
-+  "Menlo Park",
-+  "mercurial",
-   "merit",
-   "merkin",
-   "mescaline",
-   "milk",
-   "mischief",
-   "mistrust",
-+  "Moapa",
-   "money",
-   "monkey",
-   "monkeybutter",
-+  "Muskoka",
-+  "mustang",
-   "nationalism",
-   "nature",
-+  "Nevada",
-+  "newt",
-+  "Niagara",
-   "neuron",
-   "noise",
-   "nomenclature",
-@@ -242,8 +300,11 @@ static const char *words[] = 
-   "ocelot",
-   "offspring",
-   "overseer",
-+  "Pahrump",
-   "pain",
-   "pajamas",
-+  "panic",
-+  "paravon",
-   "passenger",
-   "passion",
-   "Passover",
-@@ -253,6 +314,8 @@ static const char *words[] = 
-   "petticoat",
-   "pharmacist",
-   "PhD",
-+  "pinenut",
-+  "Pioche",
-   "pitchfork",
-   "plague",
-   "Poindexter",
-@@ -261,11 +324,10 @@ static const char *words[] = 
-   "presidency",
-   "prison",
-   "prophecy",
--  "Prozac",
-   "punishment",
-   "punk rock",
-   "punk",
--  "pussy",
-+  "quahog",
-   "quagmire",
-   "quarantine",
-   "quartz",
-@@ -274,13 +336,15 @@ static const char *words[] = 
-   "rage",
-   "readout",
-   "reality",
--  "rectum",
-   "reject",
-   "rejection",
-+  "Reno",
-   "respect",
-   "revolution",
-   "roadrunner",
-   "rule",
-+  "sagebrush",
-+  "Santa Cruz",
-   "savor",
-   "scab",
-   "scalar",
-@@ -289,16 +353,21 @@ static const char *words[] = 
-   "security",
-   "sediment",
-   "self worth",
-+  "shiny",
-   "sickness",
-+  "sierra",
-   "silicone",
-+  "Sirius",
-   "slack",
-   "slander",
-   "slavery",
-   "sledgehammer",
--  "smegma",
-   "smelly socks",
-+  "soda",
-+  "songbird",
-   "sorrow",
-   "space program",
-+  "Sparks",
-   "stamen",
-   "standardization",
-   "stench",
-@@ -308,24 +377,34 @@ static const char *words[] = 
-   "surrender",
-   "surveillance",
-   "synthesis",
-+  "tamarack",
-   "television",
-   "tenant",
-   "tendril",
-   "terror",
-   "terrorism",
-   "terrorist",
-+  "Tesla",
-   "the impossible",
-+  "the possimpible",
-   "the unknown",
-+  "thumper",
-+  "tiger",
-+  "tonic",
-   "toast",
-+  "Tonopah",
-   "topography",
-   "truism",
-+  "Tsinghua",
-   "turgid",
-+  "uisce",
-   "underbrush",
-   "underling",
-   "unguent",
-   "unusual",
-   "uplink",
-   "urge",
-+  "Utah",
-   "valor",
-   "variance",
-   "vaudeville",
-@@ -333,8 +412,7 @@ static const char *words[] = 
-   "vegetarian",
-   "venom",
-   "verifiability",
--  "viagra",
--  "vibrator",
-+  "vermillion",
-   "victim",
-   "vignette",
-   "villainy",
-@@ -344,25 +422,30 @@ static const char *words[] = 
-   "warehouse",
-   "waste",
-   "waveform",
-+  "Wendover",
-   "whiffle ball",
-   "whorl",
-   "windmill",
-+  "Winchester",
-   "words",
-   "worm",
-   "worship",
-   "worship",
--  "Xanax",
-+  "Wyoming",
-   "Xerxes",
-   "Xhosa",
-   "xylophone",
-   "yellow",
-+  "Yerington",
-   "yesterday",
-   "your nose",
-   "Zanzibar",
-   "zeal",
-   "zebra",
-   "zest",
--  "zinc"
-+  "zettabyte",
-+  "zinc",
-+  "Zulu"
- };
- 
- #define WORD_COUNT (sizeof(words) / sizeof(char *))
--- a/open-src/app/xscreensaver/bug-4802301.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,23 +0,0 @@
-4802301 xscreensaver should not tell root to "xhost +localhost"
-
-diff -urp -x '*~' -x '*.orig' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2009-02-05 18:18:40.560271000 -0800
-+++ driver/demo-Gtk.c	2009-02-05 18:18:55.408371000 -0800
-@@ -1006,16 +1006,7 @@ await_xscreensaver (state *s)
-         strcat (buf,
- 	  _("You are running as root.  This usually means that xscreensaver\n"
-             "was unable to contact your X server because access control is\n"
--            "turned on.  Try running this command:\n"
--            "\n"
--            "                        xhost +localhost\n"
--            "\n"
--            "and then selecting `File / Restart Daemon'.\n"
--            "\n"
--            "Note that turning off access control will allow anyone logged\n"
--            "on to this machine to access your screen, which might be\n"
--            "considered a security problem.  Please read the xscreensaver\n"
--            "manual and FAQ for more information.\n"
-+            "turned on.\n"
-             "\n"
-             "You shouldn't run X as root. Instead, you should log in as a\n"
-             "normal user, and `su' as necessary."));
--- a/open-src/app/xscreensaver/bug-6450019.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,97 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for bug id 6450019. I was checking if the user is root before deciding
-whether to prompt the user for password or simply use the cached password 
-for the root hack. This backfired when user logged in as root in which case
-there is no cached flag and we simply do not prompt user for password, 
-causing unlock dialog to not prompt for password and failing continously.
-
-Also, added a check for chauth_rc failure, in which case we do not unlock
-dialog box. This case was missing if password got expired and xscreensaver
-was letting user back in with expired passwd CR 6417168.
-
-diff -urp -x '*~' driver/passwd-pam.c driver/passwd-pam.c
---- driver/passwd-pam.c	2006-09-19 17:09:03.071424000 -0700
-+++ driver/passwd-pam.c	2006-09-19 17:09:08.463282000 -0700
-@@ -85,6 +85,13 @@ extern passwd_dialog_data* ptr_mygtkpwd;
- extern saver_info *global_si_kludge;
- extern Bool g_passwd_dialog_created;
- 
-+/* CR 6450019 Added this flag to track if orig passwd failed and before
-+ * trying root passwd. Trick is for orig passwd we prompt user and wait 
-+ * in PAM_ECHO_OFF/ON case whereas for root passwd we need to cache it 
-+ * and without prompting user send it to PAM to try root.
-+ */
-+static Bool not_a_failover_case = False; 
-+
- extern sigset_t block_sigchld (void);
- extern void unblock_sigchld (void);
- 
-@@ -585,6 +592,15 @@ pam_passwd_valid_p (void)
-           goto DONE;
-          }
- 	}
-+     else if (acct_rc != PAM_SUCCESS)
-+         {
-+          pam_auth_status = acct_rc;
-+          write_to_child (si, "pw_acct_fail");
-+          tmp_buf = (char*)PAM_STRERROR(pamh, acct_rc);
-+          write_to_child (si, tmp_buf);
-+          sleep (3);
-+          goto DONE;
-+         }
- 
-       /* Each time we successfully authenticate, refresh credentials,
-          for Kerberos/AFS/DCE/etc.  If this fails, just ignore that
-@@ -636,6 +652,12 @@ pam_passwd_valid_p (void)
-   if (user) free (user);
-   user = strdup ("root");
-   c.user = user;
-+ 
-+  not_a_failover_case = True; /* Set this so user is not prompted for root
-+                               * passwd instead the cached passwd from above
-+                               * call to pam_authenticate() is used. 
-+                               */
-+
-   status = pam_set_item (pamh, PAM_USER, c.user);
-   if (verbose_p)
-     fprintf (stderr, "%s:   pam_set_item(p, PAM_USER, \"%s\") ==> %d (%s)\n",
-@@ -860,8 +882,9 @@ pam_conversation (int nmsgs,
- 					msg[replies]->msg);
- 
-              /* For our hack to see if the user typed in root passwd to unlock. */
--             if (strcmp (c->user, "root") == 0)
-+             if (not_a_failover_case)
-               {
-+               not_a_failover_case = False; /* Reset flag */
-                if (c->verbose_p)
-                 {
-                  write_to_child (si, "Checking if you typed root password");
--- a/open-src/app/xscreensaver/bug-6461887.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-diff -urp -x '*~' driver/xscreensaver.c driver~/xscreensaver.c
---- driver/xscreensaver.c	2006-10-27 11:32:52.983453000 -0700
-+++ driver~/xscreensaver.c	2006-11-16 12:39:17.811467000 -0800
-@@ -152,6 +152,7 @@
- #include <X11/StringDefs.h>
- #include <X11/Shell.h>
- #include <X11/Xos.h>
-+#include <gconf/gconf-client.h>
- #include <time.h>
- #include <sys/time.h>
- #include <netdb.h>	/* for gethostbyname() */
-@@ -1208,10 +1209,21 @@ main_loop (saver_info *si)
- ** pop-up diaglog
- */
- 
-- /* GTK Accessibility Module initialized */
-+/*
-+** 2135519 at-spi-registryd starts when screen is locked even
-+** when accessible device support is off(SR)
-+** per AT core gp suggestion
-+** GTK_MODULES is set only if at support is enabled
-+*/
-+
-+  if (gconf_client_get_bool(gconf_client_get_default(), \
-+        "/desktop/gnome/interface/accessibility",NULL))
-+  {
-   modulesptr = getenv ("GTK_MODULES");
-   if (!modulesptr || modulesptr [0] == '\0')
-         putenv ("GTK_MODULES=gail:atk-bridge");
-+  }
-+
- 
-   while (1)
-     {
-diff -urp -x '*~' driver/lock.c driver~/lock.c
---- driver/lock.c	2006-10-27 11:32:50.941587000 -0700
-+++ driver~/lock.c	2006-11-16 12:50:05.636112000 -0800
-@@ -29,6 +29,7 @@
- #include "exec.h"
- #include "xscreensaver.h"
- #include "resources.h"
-+#include <gconf/gconf-client.h>
- 
- #ifndef NO_LOCKING              /* (mostly) whole file */
- 
-@@ -116,6 +117,9 @@ Bool at_enabled = False; 	/* Ass. Tech s
- 				*/
- Bool winatt_reset[2] = {FALSE,FALSE};
- 
-+char  *globalkey_text = NULL;
-+GConfClient *client = NULL;
-+
- /* 
- 5083155 Unable to unlock screen when running dual-head MAG
- *adding dual or multiple heads for magnifier support
-@@ -372,7 +376,11 @@ fprintf(stderr,"Debug: ==> winatt_reset[
- 	/* common parent, i.e root win */
- 
- /* cases for running GOK , or MAG or GOK+MAG */
--
-+/* 6461887(P1) screen lock does not prevent access to other
-+**  applications via 'alt-tab',
-+*/
-+	client = gconf_client_get_default();
-+       
-         if (no_atserv > 0) {
-         /* pop-up dialog in dock mode */
- /* AT_LOCK_DEBUG
-@@ -383,6 +391,11 @@ fprintf(stderr,"==> found dialog wid 0x%
-           XUngrabPointer(si->dpy, CurrentTime);
-           si->at_external_passwd = True;
-           XFlush(si->dpy);
-+          globalkey_text = gconf_client_get_string (client, \
-+        "/apps/metacity/global_keybindings/switch_windows", NULL);
-+          if (globalkey_text && strncmp(globalkey_text,"dis",3))
-+	    gconf_client_set_string (client, \
-+        "/apps/metacity/global_keybindings/switch_windows", "disabled", NULL);
-         }
- 	/* no MAG or GOK, only SPEECH is running 
- 	   just Ass. Tech support is selected
-@@ -393,6 +406,12 @@ fprintf(stderr,"==> found dialog wid 0x%
-           	XUngrabPointer(si->dpy, CurrentTime);
- 		si->at_external_passwd = True;
- 		XFlush(si->dpy);
-+		globalkey_text = \
-+		  gconf_client_get_string(client, \
-+		  "/apps/metacity/global_keybindings/switch_windows", NULL);
-+          	if ( globalkey_text && strncmp(globalkey_text,"dis",3))
-+		  gconf_client_set_string ( client, \
-+	"/apps/metacity/global_keybindings/switch_windows", "disabled", NULL);
- 	}
- 
- /*  AT_LOCK_DEBUG
-@@ -1509,7 +1528,13 @@ destroy_passwd_window (saver_info *si)
- */
-    }
-  }
--
-+/*
-+** restore the prev one
-+*/
-+	if ( client && globalkey_text)
-+	gconf_client_set_string ( client, \
-+        "/apps/metacity/global_keybindings/switch_windows", \
-+	globalkey_text, NULL);
- }
--- a/open-src/app/xscreensaver/bug-6475285.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,46 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-diff -urp -x '*~' driver/timers.c driver/timers.c
---- driver/timers.c	2008-02-08 15:07:06.086755600 -0800
-+++ driver/timers.c	2008-02-08 17:07:17.194700100 -0800
-@@ -329,6 +329,12 @@ activate_lock_timer (XtPointer closure, 
-   if (p->verbose_p)
-     fprintf (stderr, "-->activate_lock_timer() %s: timed out; activating lock.\n", 
- 					blurb());
-+  if (si->locked_p) {
-+        if (p->verbose_p)
-+           fprintf(stderr,"-->activate_lock_timer returning because screen already locked\n");
-+        return;
-+  }
-+
-   if (si->screen_blanked_p) /* Make sure screen is blanked before posting dialogbox*/
-    {
-   set_locked_p (si, True);
--- a/open-src/app/xscreensaver/bug-6478841.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-diff -urp -x '*~' driver/xscreensaver.c driver~/xscreensaver.c
---- driver/xscreensaver.c	2006-10-06 12:44:30.982326000 -0700
-+++ driver~/xscreensaver.c	2006-10-20 11:05:39.904940000 -0700
-@@ -749,6 +749,7 @@ print_banner (saver_info *si)
-     }
- }
- 
-+#define SZ_MAXBUF	20
- 
- /* Examine all of the display's screens, and populate the `saver_screen_info'
-    structures.  Make sure this is called after hack_environment() sets $PATH.
-@@ -758,6 +759,21 @@ initialize_per_screen_info (saver_info *
- {
-   Bool found_any_writable_cells = False;
-   int i;
-+/*
-+** 6478841: hard-coded display number in screensaver
-+** it needs to support SR full screen mag wiht dual heads under
-+** a certain SR policy condition
-+*/
-+
-+  char *dpystring = NULL;
-+  char *dpytail = NULL;
-+  char *dpytoken = NULL;
-+
-+  dpystring =  DisplayString(si->dpy);	
-+  if (dpystring)
-+	dpytail = (char *) strrchr(dpystring,':'); /* IPV6 ? */
-+  if (dpytail)
-+	dpytoken = strtok(dpytail,"\\." );
- 
-   si->nscreens = ScreenCount(si->dpy);
-   si->screens = (saver_screen_info *)
-@@ -814,12 +830,12 @@ initialize_per_screen_info (saver_info *
- */
-         if (i > 0)       /* other screens */
-         {
--        char other_dpyname[20];
--        char *pdpy;
--	sprintf(other_dpyname,":0.%d\0",i);
--	pdpy = strdup(other_dpyname);
--        ssi->other_dpy = XOpenDisplay(pdpy);
--	free(pdpy);
-+        char other_dpyname[SZ_MAXBUF];
-+	if (dpytoken)
-+		snprintf(other_dpyname,SZ_MAXBUF,"%s.%d",dpytoken,i);
-+	else
-+		snprintf(other_dpyname,SZ_MAXBUF,":0.%d",i);
-+        ssi->other_dpy = XOpenDisplay(other_dpyname);
- /*
- fprintf(stderr,"==>other dpy i(%d) dpy(%s) 0x%x\n",i,other_dpyname, ssi->other_dpy);
- */
--- a/open-src/app/xscreensaver/bug-6520014.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-diff -urp -x '*~' driver/lock.c driver~/lock.c
-diff -urp -x '*~' driver/Makefile.in driver~/Makefile.in
---- driver/lock.c	2007-02-15 13:20:38.239047000 -0800
-+++ driver~/lock.c	2007-02-23 15:56:09.614852000 -0800
-@@ -378,6 +378,7 @@ fprintf(stderr,"Debug: ==> winatt_reset[
- /* cases for running GOK , or MAG or GOK+MAG */
- /* 6461887(P1) screen lock does not prevent access to other
- **  applications via 'alt-tab',
-+** see 6519433 mem leaks in libgconf-2.so's gconf_client_get_default()
- */
- 	client = gconf_client_get_default();
-        
-@@ -1530,11 +1531,14 @@ destroy_passwd_window (saver_info *si)
-  }
- /*
- ** restore the prev one
-+** 6520014(P3) mem. leak in lock.c
- */
- 	if ( client && globalkey_text)
- 	gconf_client_set_string ( client, \
-         "/apps/metacity/global_keybindings/switch_windows", \
- 	globalkey_text, NULL);
-+	g_free(globalkey_text);
-+	globalkey_text = NULL;
- }
--- a/open-src/app/xscreensaver/bug-6573182.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
- 
-diff -urp -x '*~' driver/xscreensaver.c driver~/xscreensaver.c
---- driver/xscreensaver.c       Tue Aug 21 15:50:42 2007
-+++ driver-mod/xscreensaver.c   Tue Aug 21 19:02:21 2007
-@@ -154,6 +154,7 @@
- #include <X11/Shell.h>
- #include <X11/Xos.h>
- #include <gconf/gconf-client.h>
-+#include <glib.h>
- #include <time.h>
- #include <sys/time.h>
- #include <netdb.h>     /* for gethostbyname() */
-@@ -1210,6 +1211,12 @@ main_loop (saver_info *si)
- ** pop-up diaglog
- */
- 
-+/* BUG #6573182
-+** g_type_init should be done so that xscreensaver does not dump core
-+** if gconf daemon is not running.
-+*/
-+  g_type_init ();
-+
- /*
- ** 2135519 at-spi-registryd starts when screen is locked even
- ** when accessible device support is off(SR)
--- a/open-src/app/xscreensaver/bug-6583181.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2008-02-11 18:04:44.098737700 -0800
-+++ driver/xscreensaver.c	2008-02-11 18:11:16.850098100 -0800
-@@ -1586,6 +1586,7 @@ while (debug_flag)
-       if (ssi->real_screen_p)
-         if (ensure_no_screensaver_running (si->dpy, si->screens[i].screen))
-           exit (1);
-+      ssi->current_hack = -1; /* otherwise initialize hacks to no hack */
-     }
- 
-   lock_initialization (si, &argc, argv);
-@@ -1622,6 +1623,7 @@ while (debug_flag)
-   make_splash_dialog (si);
-   /*spawn_external_passwd_process (si);*/
- 
-+  store_saver_status(si); /* set window property for SCREENSAVER_STATUS */
-   main_loop (si);		/* doesn't return */
-   return 0;
- }
--- a/open-src/app/xscreensaver/bug-6583247.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-diff -urp driver/windows.c driver/windows.c
---- driver/windows.c	2008-03-12 12:07:41.188076000 -0700
-+++ driver/windows.c	2008-06-02 17:30:04.176780600 -0700
-@@ -1803,6 +1803,7 @@ raise_window (saver_info *si,
- 	  if (!dont_clear || ssi->stderr_overlay_window)
- 	    clear_stderr (ssi);
- 	  XMapRaised (si->dpy, ssi->screensaver_window);
-+	  XSync(si->dpy,False); /* make sure window is raised now. */
- #ifdef HAVE_MIT_SAVER_EXTENSION
- 	  if (ssi->server_mit_saver_window &&
- 	      window_exists_p (si->dpy, ssi->server_mit_saver_window))
--- a/open-src/app/xscreensaver/bug-6610282.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-    
---- driver/xscreensaver.c	2007-12-03 10:33:07.846979000 -0800
-+++ driver~/xscreensaver.c	2007-12-03 10:38:10.605600000 -0800
-@@ -369,8 +369,14 @@ saver_ehandler (Display *dpy, XErrorEven
-           fprintf (real_stderr,
-                    "#######################################"
-                    "#######################################\n\n");
--
--	  saver_exit (si, -1, 0);
-+/**
-+- 6610282(P1) On-Screen Keyboard application and desktop shown
-+         with out unlocking xscreensaver lock screen
-+  The screen is still locked and it needs to cover all conditions,
-+  including AT serverices, such as GOK, only GOK-COMPOSE should
-+  be supported(others should not), there is no need to invoke
-+          saver_exit (si, -1, 0);
-+**/
- 	}
-     }
--- a/open-src/app/xscreensaver/bug-6670659.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,54 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-diff -urp driver/lock.c driver/lock.c
---- driver/lock.c	2008-03-05 16:46:55.613177200 -0800
-+++ driver/lock.c	2008-03-05 16:04:40.510841000 -0800
-@@ -443,13 +443,18 @@ spawn_external_passwd_process (saver_inf
-   int stdin_pipe[2]  = { -1, -1 };
-   int stdout_pipe[2] = { -1, -1 };
- 
--  si->passwd_pid = 0;
-   pw->stdin_fd = pw->stdout_fd = -1;
-   pw->got_windowid = False;
- 
-   if (si->prefs.verbose_p)
-      fprintf(stderr, "-->spawn_external_passwd()\n");
--
-+  if (si->passwd_pid>0) {
-+        if (si->prefs.verbose_p)
-+           fprintf(stderr,"pid %d still exists.  Killing it with SIGKILL\n",
-+                        si->passwd_pid);
-+        kill(si->passwd_pid,SIGKILL);
-+  }
-+  si->passwd_pid = 0;
-   if (pipe (stdin_pipe) < 0)
-    {
-     perror ("pipe(stdin_pipe) failed!");
--- a/open-src/app/xscreensaver/bug-6698996.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,126 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-diff -urp driver/lock.c driver/lock.c
---- driver/lock.c	Wed Jul 30 15:49:41 2008
-+++ driver/lock.c	Wed Jul 30 14:53:42 2008
-@@ -1961,6 +1961,7 @@
-     }
- }
- 
-+void XTSOLMakeTPWindow(Display *, Window);
- 
- void
- passwd_event_loop (saver_info *si)
-@@ -2005,6 +2006,7 @@
-     write_to_child (si, "pw_read");
-     usleep (250000); /** 1/4 second */
-     XSync (si->dpy, False);
-+    XTSOLMakeTPWindow(si->dpy,w);
-     if(p->verbose_p)
-       fprintf (stderr, "event loop..trying to grab keyboard######\n");
-    }
-diff -urp driver/windows.c driver/windows.c
---- driver/windows.c	Wed Jul 30 15:49:40 2008
-+++ driver/windows.c	Wed Jul 30 14:58:32 2008
-@@ -36,6 +36,7 @@
- #include <X11/Xatom.h>
- #include <X11/Xos.h>		/* for time() */
- #include <X11/Intrinsic.h>
-+#include <X11/keysym.h>
- #include <signal.h>		/* for the signal names */
- #include <time.h>
- #include <sys/time.h>
-@@ -90,6 +91,7 @@
- 	 Button1MotionMask | Button2MotionMask | Button3MotionMask | \
- 	 Button4MotionMask | Button5MotionMask | ButtonMotionMask)
- 
-+void XTSOLMakeTPWindow(Display *, Window);
- 
- static const char *
- grab_string(int status)
-@@ -226,7 +228,39 @@
-   XSync (si->dpy, False);
- }
- 
-+/* try to break a grab by sending Escape key event to the top most
-+   window. */
- 
-+void
-+break_grab(saver_info *si, Window w, int screen_no)
-+{
-+  Window focus, root_ret, p_ret, *child_ret;
-+  int revert;
-+  unsigned int nchild;
-+  XKeyEvent kev;
-+  XErrorHandler old_handler;
-+  if (!tsol_is_multi_label_session()) {
-+        return;
-+  }
-+  old_handler = XSetErrorHandler (BadWindow_ehandler);
-+  (void)XQueryTree(si->dpy,RootWindow(si->dpy,screen_no),&root_ret,&p_ret,
-+              &child_ret,&nchild);
-+  focus=child_ret[nchild-1];
-+  if (si->prefs.verbose_p) fprintf(stderr,"Sending escape key event to window=0x%x\n",focus);
-+  kev.window = focus;
-+  kev.keycode = XKeysymToKeycode(si->dpy, XK_Escape);
-+  kev.time = CurrentTime;
-+  kev.state = 0;
-+  kev.type = KeyPress;
-+  XSendEvent(si->dpy, kev.window, True, KeyPressMask,
-+            (XEvent *) &kev);
-+  kev.type = KeyRelease;
-+  XSendEvent(si->dpy, kev.window, True, KeyReleaseMask,
-+            (XEvent *) &kev);
-+  XSetErrorHandler (old_handler);
-+  return;
-+}
-+
- static Bool
- grab_keyboard_and_mouse (saver_info *si, Window window, Cursor cursor,
-                          int screen_no)
-@@ -249,6 +283,8 @@
-        * sleeping for 1 sec is too long, compounded wih retries.
-        */
-       usleep (125000);
-+      (void)XTSOLMakeTPWindow(si->dpy,window);
-+      break_grab(si,window,screen_no);
-     }
- 
-   if (kstatus != GrabSuccess)
-@@ -273,6 +309,8 @@
- 
-       /* else, wait 1/8th second and try to grab again. */
-       usleep (125000);
-+      (void)XTSOLMakeTPWindow(si->dpy,window);
-+      break_grab(si,window,screen_no);
-     }
- 
-   if (mstatus != GrabSuccess)
--- a/open-src/app/xscreensaver/bug-6736157.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
---- driver/lock.c	2009-02-27 16:06:25.000000000 -0800
-+++ driver/lock.c.new	2009-03-02 11:30:09.185363000 -0800
-@@ -118,6 +118,7 @@ Bool at_enabled = False; 	/* Ass. Tech s
- Bool winatt_reset[2] = {FALSE,FALSE};
- 
- char  *globalkey_text = NULL;
-+char  *globalmenu_key = NULL;
- GConfClient *client = NULL;
- 
- /* 
-@@ -413,6 +414,15 @@ fprintf(stderr,"==> found dialog wid 0x%
-           	if ( globalkey_text && strncmp(globalkey_text,"dis",3))
- 		  gconf_client_set_string ( client, \
- 	"/apps/metacity/global_keybindings/switch_windows", "disabled", NULL);
-+/*
-+** 6736157 A11Y]Security problem when desktop a11y support is turned on
-+*/
-+		globalmenu_key = \
-+		  gconf_client_get_string(client, \
-+		  "/apps/metacity/global_keybindings/panel_main_menu",NULL);
-+          	if ( globalmenu_key && strncmp(globalmenu_key,"dis",3))
-+		  gconf_client_set_string ( client, \
-+	"/apps/metacity/global_keybindings/panel_main_menu","disabled",NULL);
- 	}
- 
- /*  AT_LOCK_DEBUG
-@@ -1545,6 +1555,16 @@ destroy_passwd_window (saver_info *si)
- 	globalkey_text, NULL);
- 	g_free(globalkey_text);
- 	globalkey_text = NULL;
-+/*
-+** 6736157 A11Y]Security problem when desktop a11y support is turned on
-+*/
-+	if ( client && globalmenu_key)
-+	gconf_client_set_string ( client, \
-+        "/apps/metacity/global_keybindings/panel_main_menu", \
-+	globalmenu_key, NULL);
-+	g_free(globalmenu_key);
-+	globalmenu_key = NULL;
-+
- }
- 
- 
--- a/open-src/app/xscreensaver/bug-6757448.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
-*** driver/lock.c.orig	Thu Feb 26 16:06:57 2009
---- driver/lock.c	Thu Feb 26 08:08:23 2009
-***************
-*** 52,57 ****
---- 52,60 ----
-    static void xfree_lock_grab_smasher (saver_info *si, Bool lock_p);
-  #endif /* HAVE_XF86MISCSETGRABKEYSSTATE */
-  
-+ #ifdef HAVE_RANDR
-+ #include <X11/extensions/Xrandr.h>
-+ #endif /* HAVE_RANDR */
-  
-  #ifdef _VROOT_H_
-  ERROR!  You must not include vroot.h in this file.
-***************
-*** 2023,2028 ****
---- 2026,2071 ----
-    while (si->pw_data && si->pw_data->state == pw_read)
-      {
-        XtAppNextEvent (si->app, &event);
-+ #ifdef HAVE_RANDR
-+ 	/*
-+ 	 * 6757448 xscreensaver doesn't notice XRandR resize events.
-+ 	 */
-+         if (event.type == (si->randr_event_number + RRScreenChangeNotify))
-+           {
-+             /* The Resize and Rotate extension sends an event when the
-+                size, rotation, or refresh rate of the screen has changed. */
-+ 
-+             XRRScreenChangeNotifyEvent *xrr_event =
-+               (XRRScreenChangeNotifyEvent *) &event;
-+             /* XRRRootToScreen is in Xrandr.h 1.4, 2001/06/07 */
-+             int screen = XRRRootToScreen (si->dpy, xrr_event->window);
-+ 
-+             if (p->verbose_p)
-+               {
-+                 if (si->screens[screen].width  == xrr_event->width &&
-+                     si->screens[screen].height == xrr_event->height)
-+                   fprintf (stderr,
-+                           "%s: %d: no-op screen size change event (%dx%d)\n",
-+                            blurb(), screen,
-+                            xrr_event->width, xrr_event->height);
-+                 else
-+                   fprintf (stderr,
-+                        "%s: %d: screen size changed from %dx%d to %dx%d\n",
-+                            blurb(), screen,
-+                            si->screens[screen].width,
-+                            si->screens[screen].height,
-+                            xrr_event->width, xrr_event->height);
-+               }
-+ 
-+ # ifdef RRScreenChangeNotifyMask
-+             /* Inform Xlib that it's ok to update its data structures. */
-+             XRRUpdateConfiguration (&event); /* Xrandr.h 1.9, 2002/09/29 */
-+ # endif /* RRScreenChangeNotifyMask */
-+             /* Resize the existing xscreensaver windows and cached ssi data. */
-+             resize_screensaver_window (si);
-+           }
-+ #endif /* HAVE_RANDR */
-+ 
-  #ifdef HAVE_XSCREENSAVER_LOCK
-        if (event.xany.type == KeyPress)
-  	{
--- a/open-src/app/xscreensaver/bug-6769901.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
---- driver/lock.c-org	Sun Feb  8 23:38:18 2009
-+++ driver/lock.c	Sun Feb  8 23:42:07 2009
-@@ -2075,6 +2075,37 @@
- 	      XtDispatchEvent (&event);
- 	    }
- 	}
-+        
-+	//bugid 6769901: popup windows appearing through xscreensaver
-+        //code to stop popup windows while screen is locked
-+        //Raise the screen saver window and then the password dialog window
-+        if (event.xany.type == VisibilityNotify)
-+        {
-+  		int screen;
-+                for (screen = 0; screen < si->nscreens; screen++)
-+                {
-+                	if(si->passwd_dialog)
-+                        {
-+                        	saver_screen_info *ssi = &si->screens[screen];
-+                                if(screen==0)
-+                                {
-+                                	Window screen_win[2] = {
-+                                        	si->passwd_dialog,
-+                                                ssi->screensaver_window
-+					};
-+                                        XRestackWindows(si->dpy, screen_win, 2);
-+                                        XMapRaised(si->dpy,si->passwd_dialog);
-+                                        XFlush(si->dpy);
-+                            	}
-+                                else
-+                                {
-+                                	XMapRaised(si->dpy,ssi->screensaver_window);
-+                                        XFlush(si->dpy);
-+                                }
-+        		}
-+            	}
-+        }
-+
- #else /* !HAVE_XSCREENSAVER_LOCK */
-       if (event.xany.window == si->passwd_dialog && event.xany.type == Expose)
- 	draw_passwd_window (si);
--- a/open-src/app/xscreensaver/bug-6825374.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
---- driver/lock.c-old	Wed Apr  8 00:16:02 2009
-+++ driver/lock.c	Wed Apr  8 00:17:20 2009
-@@ -2142,7 +2142,7 @@
- 	//bugid 6769901: popup windows appearing through xscreensaver
-         //code to stop popup windows while screen is locked
-         //Raise the screen saver window and then the password dialog window
--        if (event.xany.type == VisibilityNotify)
-+        if (event.xany.type == VisibilityNotify || event.xany.type == ConfigureNotify || event.xany.type == CreateNotify)
-         {
-   		int screen;
-                 for (screen = 0; screen < si->nscreens; screen++)
--- a/open-src/app/xscreensaver/bug-6857559.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
---- driver/lock.c_org	Fri Jul 10 05:20:14 2009
-+++ driver/lock.c	Fri Jul 10 05:44:34 2009
-@@ -1372,7 +1372,7 @@
-   /*reset global flag to indicate passwd dialog is no longer there*/
-   g_passwd_dialog_created = 0;
- 
--  if (pw == NULL || pw->got_windowid == 0 || si->external_passwd == 0)
-+  if (pw == NULL || si->external_passwd == 0)
-     return;
- 
-   if (pw->timer)
--- a/open-src/app/xscreensaver/bug-6859039.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,55 +0,0 @@
-
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
-
---- driver/prefs.c-old	Wed Jul 22 23:49:34 2009
-+++ driver/prefs.c	Wed Jul 22 23:52:44 2009
-@@ -380,8 +380,20 @@
-       p->init_file_date = 0;
-       return 0;
-     }
-+  /* 
-+  * 6859039: unpriviledged local users can access through xscreensaver
-+  */
-+  
-+  /* Drop Privilege before opening .xscreensaver file */
-+  uid_t idorg=geteuid();
-+  if(seteuid(getuid())!=0)
-+    return 0;
- 
-   in = fopen(name, "r");
-+
-+  /* Restore Priviledge */
-+  seteuid(idorg);
-+
-   if (!in)
-     {
-       char *buf = (char *) malloc(1024 + strlen(name));
--- a/open-src/app/xscreensaver/bug1-6461887.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-diff -urp -x '*~' driver/Makefile.in driver~/Makefile.in
---- driver/Makefile.in	2006-11-22 08:12:33.508250000 -0800
-+++ driver~/Makefile.in	2006-11-22 08:42:39.172575000 -0800
-@@ -804,7 +804,7 @@ XScreenSaver_Xm_ad.h: XScreenSaver-Xm.ad
- #
- xscreensaver: $(SAVER_OBJS) $(TRUSTED_OBJS)
- 	$(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(TRUSTED_OBJS) \
--	$(TRUSTED_LIBS) $(SAVER_LIBS)
-+	$(TRUSTED_LIBS) $(SAVER_LIBS) -lgconf-2 -lgobject-2.0
- 
- xscreensaver-command: $(CMD_OBJS)
- 	$(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS)
--- a/open-src/app/xscreensaver/datarootdir.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,69 +0,0 @@
-/* xscreensaver, Copyright (c) 1991-2008 Jamie Zawinski <[email protected]>
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or 
- * implied warranty.
- */
-
-Changes backported from xscreensaver 5.07 to clear warnings such as:
-config.status: WARNING:  driver/Makefile.in seems to ignore the --datarootdir setting
-
-diff -urp xscreensaver-5.01/driver/Makefile.in xscreensaver-5.07/driver/Makefile.in
---- xscreensaver-5.01/driver/Makefile.in	2006-09-18 19:36:40.000000000 -0700
-+++ xscreensaver-5.07/driver/Makefile.in	2008-08-10 22:11:59.000000000 -0700
-@@ -14,6 +14,7 @@ install_prefix	=
- prefix		= @prefix@
- exec_prefix	= @exec_prefix@
- bindir		= @bindir@
-+datarootdir	= @datarootdir@
- datadir		= @datadir@
- localedir	= $(datadir)/locale
- mandir		= @mandir@
-diff -urp xscreensaver-5.01/hacks/glx/Makefile.in xscreensaver-5.07/hacks/glx/Makefile.in
---- xscreensaver-5.01/hacks/glx/Makefile.in	2006-09-18 19:36:43.000000000 -0700
-+++ xscreensaver-5.07/hacks/glx/Makefile.in	2008-08-10 22:12:01.000000000 -0700
-@@ -15,6 +15,7 @@ install_prefix	=
- prefix		= @prefix@
- exec_prefix	= @exec_prefix@
- bindir		= @bindir@
-+datarootdir	= @datarootdir@
- datadir		= @datadir@
- mandir		= @mandir@
- libexecdir	= @libexecdir@
-diff -urp xscreensaver-5.01/hacks/Makefile.in xscreensaver-5.07/hacks/Makefile.in
---- xscreensaver-5.01/hacks/Makefile.in	2006-09-18 19:36:41.000000000 -0700
-+++ xscreensaver-5.07/hacks/Makefile.in	2008-08-10 22:11:59.000000000 -0700
-@@ -14,6 +14,7 @@ install_prefix	=
- prefix		= @prefix@
- exec_prefix	= @exec_prefix@
- bindir		= @bindir@
-+datarootdir	= @datarootdir@
- datadir		= @datadir@
- mandir		= @mandir@
- libexecdir	= @libexecdir@
-diff -urp xscreensaver-5.01/po/Makefile.in.in xscreensaver-5.07/po/Makefile.in.in
---- xscreensaver-5.01/po/Makefile.in.in	2006-09-18 13:54:18.000000000 -0700
-+++ xscreensaver-5.07/po/Makefile.in.in	2007-11-10 16:44:42.000000000 -0800
-@@ -101,6 +101,7 @@ prefix = @prefix@
- exec_prefix = @exec_prefix@
- #datadir = $(prefix)/@DATADIRNAME@      -- not for xscreensaver
- datadir = @PO_DATADIR@
-+datarootdir = @datarootdir@
- localedir = $(datadir)/locale
- #localedir = $(prefix)/share/locale
- #gnulocaledir = $(prefix)/share/locale  -- not for xscreensaver
-diff -urp xscreensaver-5.01/utils/Makefile.in xscreensaver-5.07/utils/Makefile.in
---- xscreensaver-5.01/utils/Makefile.in	2006-09-18 19:36:37.000000000 -0700
-+++ xscreensaver-5.07/utils/Makefile.in	2008-08-10 22:11:59.000000000 -0700
-@@ -81,6 +81,7 @@
- srcdir		= @srcdir@
- VPATH		= @srcdir@
- prefix		= @prefix@
-+datarootdir	= @datarootdir@
- 
- CC		= @CC@
- CFLAGS		= @CFLAGS@
--- a/open-src/app/xscreensaver/debug-msgs.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,324 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Various tidbits found to aid debugging over the years.
-
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-08-08 15:25:01.015494000 -0700
-+++ driver/demo-Gtk.c	2006-08-08 15:25:07.860347000 -0700
-@@ -2823,9 +2823,23 @@ populate_prefs_page (state *s)
- 
- #ifdef HAVE_DPMS_EXTENSION
-     {
-+      char buf [300];
-       int op = 0, event = 0, error = 0;
-+
-       if (XQueryExtension (dpy, "DPMS", &op, &event, &error))
-+       {
-         dpms_supported = True;
-+        if (s->debug_p)
-+         {
-+          sprintf (buf, "XQueryExtension() says DPMS is supported.");
-+          perror (buf);
-+    }
-+       }
-+      else if (s->debug_p)
-+       {
-+        sprintf (buf, "XQueryExtension() says DPMS not supported.");
-+        perror (buf);
-+       }
-     }
- #endif /* HAVE_DPMS_EXTENSION */
- 
-diff -urp -x '*~' driver/prefs.c driver/prefs.c
---- driver/prefs.c	2006-08-08 15:25:01.023671000 -0700
-+++ driver/prefs.c	2006-08-08 15:25:07.942311000 -0700
-@@ -482,6 +482,12 @@ init_file_changed_p (saver_preferences *
-   const char *name = init_file_name();
-   struct stat st;
- 
-+  if (p->verbose_p)
-+   {
-+    fprintf(stderr, "--> init_file_changed()\n");
-+    fflush (stderr);
-+   }
-+
-   if (!name) return False;
- 
-   if (stat(name, &st) != 0)
-@@ -490,6 +496,12 @@ init_file_changed_p (saver_preferences *
-   if (p->init_file_date == st.st_mtime)
-     return False;
- 
-+  if (p->verbose_p)
-+   {
-+    fprintf(stderr, "<-- init_file_has changed should reload init file\n");
-+    fflush (stderr);
-+   }
-+
-   return True;
- }
- 
-diff -urp -x '*~' driver/timers.c driver/timers.c
---- driver/timers.c	2006-08-08 15:25:01.024861000 -0700
-+++ driver/timers.c	2006-08-08 15:25:07.958865000 -0700
-@@ -175,7 +175,7 @@ notice_events (saver_info *si, Window wi
-    */
-   XSelectInput (si->dpy, window, SubstructureNotifyMask | events);
- 
--  if (top_p && p->debug_p && (events & KeyPressMask))
-+  if (top_p && p->verbose_p && (events & KeyPressMask))
-     {
-       /* Only mention one window per tree (hack hack). */
-       fprintf (stderr, "%s: %d: selected KeyPress on 0x%lX\n",
-@@ -258,6 +258,9 @@ cycle_timer (XtPointer closure, XtInterv
-   saver_preferences *p = &si->prefs;
-   Time how_long = p->cycle;
- 
-+  if (p->verbose_p)
-+    fprintf (stderr,"-->cycle_timer()\n");
-+
-   if (si->selection_mode > 0 &&
-       screenhack_running_p (si))
-     /* If we're in "SELECT n" mode, the cycle timer going off will just
-@@ -277,7 +280,14 @@ cycle_timer (XtPointer closure, XtInterv
-     }
-   else
-     {
-+      if (p->verbose_p)
-+       {
-+        fprintf (stderr,"-->cycle_timer()..in else..i.e. no lock dialog present...");
-+        fprintf (stderr,"...calling maybe_relaod_init_file\n");
-+       }
-+
-       maybe_reload_init_file (si);
-+
-       kill_screenhack (si);
- 
-       /* if we are root then dont run hacks*/
-@@ -297,13 +307,13 @@ cycle_timer (XtPointer closure, XtInterv
-       si->cycle_id = XtAppAddTimeOut (si->app, how_long, cycle_timer,
-                                       (XtPointer) si);
- 
--      if (p->debug_p)
-+      if (p->verbose_p)
-         fprintf (stderr, "%s: starting cycle_timer (%ld, %ld)\n",
-                  blurb(), how_long, si->cycle_id);
-     }
-   else
-     {
--      if (p->debug_p)
-+      if (p->verbose_p)
-         fprintf (stderr, "%s: not starting cycle_timer: how_long == %ld\n",
-                  blurb(), (unsigned long) how_long);
-     }
-@@ -345,7 +355,7 @@ reset_timers (saver_info *si)
- 
-   if (si->timer_id)
-     {
--      if (p->debug_p)
-+      if (p->verbose_p)
-         fprintf (stderr, "%s: killing idle_timer  (%ld, %ld)\n",
-                  blurb(), p->timeout, si->timer_id);
-       XtRemoveTimeOut (si->timer_id);
-@@ -723,6 +733,9 @@ sleep_until_idle (saver_info *si, Bool u
-                                    si->using_sgi_saver_extension) ||
- 				   si->using_xinputdev_extension);
- 
-+  if (si->prefs.debug_p)
-+   fprintf(stderr,"--> sleep_until_idle()\n");
-+
-   if (until_idle_p)
-     {
-       if (polling_for_idleness)
-@@ -800,17 +813,24 @@ sleep_until_idle (saver_info *si, Bool u
-                    an event (again, user activity.)
-                  */
- 		idle = 1000 * (si->last_activity_time - time ((time_t *) 0));
-+  		    if (si->prefs.verbose_p)
-+   		      fprintf(stderr,"No idle extension in use (sleep_until_idle), idle=%d\n", idle);
-+
- 	      }
- 
- 	    if (idle >= p->timeout)
-               {
-                 /* Look, we've been idle long enough.  We're done. */
-+  	        if (si->prefs.verbose_p)
-+   	         fprintf(stderr,"idle long enough..DONE (sleep_until_idle)\n");
-                 goto DONE;
-               }
-             else if (si->emergency_lock_p)
-               {
-                 /* Oops, the wall clock has jumped far into the future, so
-                    we need to lock down in a hurry! */
-+  	        if (si->prefs.verbose_p)
-+   	         fprintf(stderr,"emergency_lock_p..DONE (sleep_until_idle)\n");
-                 goto DONE;
-               }
-             else
-@@ -821,6 +841,9 @@ sleep_until_idle (saver_info *si, Bool u
-                    user has been idle for 2 minutes, then set this timer to
-                    go off in 3 minutes.
-                  */
-+  	        if (si->prefs.verbose_p)
-+   	         fprintf(stderr,"polling_for_idleness (sleep_until_idle)\n");
-+
-                 if (polling_for_idleness)
-                   schedule_wakeup_event (si, p->timeout - idle, p->debug_p);
-               }
-@@ -890,7 +913,7 @@ sleep_until_idle (saver_info *si, Bool u
-       case ButtonRelease:
-       case MotionNotify:
- 
--	if (p->debug_p)
-+	if (p->debug_p || p->verbose_p)
- 	  {
-             Window root=0, window=0;
-             int x=-1, y=-1;
-@@ -910,6 +933,13 @@ sleep_until_idle (saver_info *si, Bool u
-                 window = event.xkey.window;
-                 x = y = -1;
-               }
-+	    else if (event.xany.type == KeyRelease)
-+              {
-+                type = "KeyRelease";
-+                root = event.xkey.root;
-+                window = event.xkey.window;
-+                x = y = -1;
-+              }
- 	    else if (event.xany.type == ButtonPress)
-               {
-                 type = "ButtonPress";
-@@ -918,6 +948,14 @@ sleep_until_idle (saver_info *si, Bool u
-                 x = event.xmotion.x_root;
-                 y = event.xmotion.y_root;
-               }
-+	    else if (event.xany.type == ButtonRelease)
-+              {
-+                type = "ButtonRelease";
-+                root = event.xkey.root;
-+                window = event.xkey.window;
-+                x = event.xmotion.x_root;
-+                y = event.xmotion.y_root;
-+              }
- 
-             if (type)
-               {
-@@ -945,6 +983,14 @@ sleep_until_idle (saver_info *si, Bool u
-                 else
-                   fprintf (stderr, " at %d,%d.\n", x, y);
-               }
-+
-+            fprintf(stderr,"************************************\n");
-+	    fprintf(stderr,"-->sleep_until_idle() event: Motion or Key Press\n"); 
-+            fprintf(stderr,"\t Window of Motion or KeyPress:%x\n",
-+				window);
-+            fprintf(stderr,"\t until_idle_p=%d g_passwd_dialog_created=%d\n",
-+				until_idle_p, g_passwd_dialog_created);
-+	    fflush(stderr);
- 	  }
- 
- 	/* If any widgets want to handle this event, let them. */
-@@ -987,7 +1033,11 @@ sleep_until_idle (saver_info *si, Bool u
- 	    else
- 	      /* If we're not demoing, then any activity causes deactivation.
- 	       */
-+	     {
-+              if (si->prefs.verbose_p)
-+	       fprintf(stderr, "===> timers.c goto DONE user activity detected\n");
- 	      goto DONE;
-+             }
- 	  }
- 	else
- 	  reset_timers (si);
-@@ -1491,6 +1541,9 @@ watchdog_timer (XtPointer closure, XtInt
-                              p->dpms_off / 1000,
-                              False);
- 
-+  if (p->verbose_p)
-+   fprintf (stderr, "--->watchdog_timer()\n");
-+
-   if (si->screen_blanked_p)
-     {
-       Bool running_p = screenhack_running_p (si);
-@@ -1504,7 +1557,7 @@ watchdog_timer (XtPointer closure, XtInt
-         }
-       else
-         {
--          if (si->prefs.debug_p)
-+          if (si->prefs.verbose_p)
-             fprintf (stderr, "%s: watchdog timer raising %sscreen.\n",
-                      blurb(), (running_p ? "" : "and clearing "));
- 
-@@ -1516,7 +1569,8 @@ watchdog_timer (XtPointer closure, XtInt
- 	{
- 	  if (si->prefs.verbose_p)
- 	    fprintf (stderr,
--		     "%s: X says monitor has powered down; "
-+		     /*mali     "%s: X says monitor has powered down; "**/
-+		     "%s: X says dpms is disabled; "
- 		     "killing running hacks.\n", blurb());
- 	  kill_screenhack (si);
- 	}
-@@ -1546,7 +1600,7 @@ reset_watchdog_timer (saver_info *si, Bo
-       si->watchdog_id = XtAppAddTimeOut (si->app, p->watchdog_timeout,
- 					 watchdog_timer, (XtPointer) si);
- 
--      if (p->debug_p)
-+      if (p->verbose_p)
- 	fprintf (stderr, "%s: restarting watchdog_timer (%ld, %ld)\n",
- 		 blurb(), p->watchdog_timeout, si->watchdog_id);
-     }
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-08-08 15:25:01.031812000 -0700
-+++ driver/xscreensaver.c	2006-08-08 15:25:07.960461000 -0700
-@@ -706,7 +706,7 @@ print_banner (saver_info *si)
- 
-   if (p->debug_p)
-     fprintf (stderr, "\n"
--	     "%s: Warning: running in DEBUG MODE.  Be afraid.\n"
-+	     "%s: Warning: running in DEBUG MODE.\n"
- 	     "\n"
- 	     "\tNote that in debug mode, the xscreensaver window will only\n"
- 	     "\tcover the left half of the screen.  (The idea is that you\n"
-@@ -1455,7 +1455,12 @@ main (int argc, char **argv)
-   saver_info the_si;
-   saver_info *si = &the_si;
-   saver_preferences *p = &si->prefs;
--  int i;
-+  int i,debug_flag;
-+
-+/*Wait till we can attach debugger to the process*/
-+debug_flag=0;
-+while (debug_flag)
-+ sleep(1);
- 
- #ifdef ENABLE_NLS
-   if (!setlocale (LC_ALL, ""))
--- a/open-src/app/xscreensaver/dont-bug-jwz.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Since we've forked, folded, mangled, and multilated greatly from jwz's
-original, change help links to not point to his docs to avoid user confusion
-in the places we've chosen to differ and to avoid our users asking him to
-fix things that aren't his fault.
-
-diff -urp -x '*~' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2006-08-08 15:24:27.689831000 -0700
-+++ driver/XScreenSaver.ad.in	2006-08-08 15:24:33.346473000 -0700
-@@ -85,7 +85,7 @@ GetViewPortIsFullOfLies: False
- 
- ! This is the URL loaded by the "Help" button on the splash screen,
- ! and by the "Documentation" menu item in xscreensaver-demo.
--*helpURL: http://www.jwz.org/xscreensaver/man.html
-+*helpURL: 
- 
- ! loadURL       -- how the "Help" buttons load the helpURL (/bin/sh syntax.)
- ! manualCommand -- how the "Documentation" buttons display man pages.
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-08-08 15:24:27.699568000 -0700
-+++ driver/demo-Gtk.c	2006-08-08 15:24:33.383606000 -0700
-@@ -860,6 +860,10 @@ about_menu_cb (GtkMenuItem *menuitem, gp
- G_MODULE_EXPORT void
- doc_menu_cb (GtkMenuItem *menuitem, gpointer user_data)
- {
-+
-+  const char *sun_help_command = "xterm -T 'Screensaver Help' -e /bin/sh -c 'man xscreensaver || read foo' &";
-+
-+#ifdef JWZ_HELP /* We do not want to point to jwz website for help instead open man page in xterm window */
-   state *s = global_state_kludge;  /* I hate C so much... */
-   saver_preferences *p = &s->prefs;
-   char *help_command;
-@@ -882,6 +886,9 @@ doc_menu_cb (GtkMenuItem *menuitem, gpoi
-   if (system (help_command) < 0)
-     fprintf (stderr, "%s: fork error\n", blurb());
-   free (help_command);
-+#endif /*JWZ_HELP*/
-+
-+  system (sun_help_command);
- }
- 
- 
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-05-17 16:35:54.000000000 -0700
-+++ driver/xscreensaver.c	2006-08-08 15:24:33.384967000 -0700
-@@ -239,9 +239,9 @@ xscreensaver %s, copyright (c) 1991-2006
-         xscreensaver &\n\
-         xscreensaver-demo\n\
- \n\
--  For updates, online manual, and FAQ, please see the web page:\n\
-+  Please read the man page on xscreensaver:\n\
- \n\
--       http://www.jwz.org/xscreensaver/\n\
-+       man xscreensaver/\n\
- \n");
- 
-   fflush (stdout);
-@@ -343,9 +343,6 @@ saver_ehandler (Display *dpy, XErrorEven
-    "    That won't work.\n");
-           fprintf (real_stderr,
-    "\n"
--   "    http://www.jwz.org/xscreensaver/bugs.html explains how to create\n"
--   "    the most useful bug reports, and how to examine core files.\n"
--   "\n"
-    "    The more information you can provide, the better.  But please\n"
-    "    report this bug, regardless!\n"
-    "\n");
-@@ -412,11 +409,6 @@ startup_ehandler (String name, String ty
-            blurb());
-     }
- 
--  fprintf (stderr, "\n"
--          "              http://www.jwz.org/xscreensaver/faq.html\n"
--          "              http://www.jwz.org/xscreensaver/man.html\n"
--          "\n");
--
-   fflush (stderr);
-   fflush (stdout);
-   exit (1);
-@@ -653,8 +645,7 @@ process_command_line (saver_info *si, in
-     The `xscreensaver' program is a daemon that runs in the background.\n\
-     You control a running xscreensaver process by sending it messages\n\
-     with `xscreensaver-demo' or `xscreensaver-command'.\n\
--.   See the man pages for details, or check the web page:\n\
--    http://www.jwz.org/xscreensaver/\n\n");
-+.   See the man pages for details.\n\n");
- 
- 	      /* Since version 1.21 renamed the "-lock" option to "-lock-mode",
- 		 suggest that explicitly. */
--- a/open-src/app/xscreensaver/dpms.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,70 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Allow xset dpms settings to override .xscreensaver.
-
-
-diff -urp -x '*~' driver/timers.c driver/timers.c
---- driver/timers.c	2006-08-08 15:25:07.958865000 -0700
-+++ driver/timers.c	2006-08-08 15:25:12.822517000 -0700
-@@ -1533,13 +1533,17 @@ watchdog_timer (XtPointer closure, XtInt
- 
-   /* If the DPMS settings on the server have changed, change them back to
-      what ~/.xscreensaver says they should be. */
--  sync_server_dpms_settings (si->dpy,
-+  /* mali- No!! if someone uses xset then let the changes be picked by
-+   * xscreensaver...do not have to regulate everything from .xscreensaver.
-+   ***/
-+  /**sync_server_dpms_settings (si->dpy,
-                              (p->dpms_enabled_p  &&
-                               p->mode != DONT_BLANK),
-                              p->dpms_standby / 1000,
-                              p->dpms_suspend / 1000,
-                              p->dpms_off / 1000,
-                              False);
-+  **/
- 
-   if (p->verbose_p)
-    fprintf (stderr, "--->watchdog_timer()\n");
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-08-08 15:25:07.960461000 -0700
-+++ driver/xscreensaver.c	2006-08-08 15:25:12.823864000 -0700
-@@ -1529,6 +1529,11 @@ while (debug_flag)
-   init_sigchld ();
- 
-   disable_builtin_screensaver (si, True);
-+
-+/*****
-+  mali- this may need to be taken out in future if it hinders user
-+  setting dpms values through xset.
-+ *****/
-   sync_server_dpms_settings (si->dpy,
-                              (p->dpms_enabled_p  &&
-                               p->mode != DONT_BLANK),
--- a/open-src/app/xscreensaver/gl-error-capture.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,102 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-4832530 - xscreensaver shows improper message if no libGL installed
-Capture stderr from subproc in get_best_gl_visual
-
-
-diff -urp -x '*~' driver/subprocs.c driver/subprocs.c
---- driver/subprocs.c	2006-08-08 17:27:03.422319000 -0700
-+++ driver/subprocs.c	2006-08-08 17:27:08.533828000 -0700
-@@ -1255,6 +1255,10 @@ get_best_gl_visual (saver_screen_info *s
-   pid_t forked;
-   int fds [2];
-   int in, out;
-+/* Begin: SUN addition: capture stderr as well */
-+  int errfds[2];
-+  int errin, errout;
-+/* End: SUN addition: capture stderr as well */
-   char buf[1024];
- 
-   char *av[10];
-@@ -1272,6 +1276,20 @@ get_best_gl_visual (saver_screen_info *s
-   in = fds [0];
-   out = fds [1];
- 
-+/* Begin: SUN addition: capture stderr as well */ 
-+  if (!si->prefs.verbose_p) 
-+    {
-+      if (pipe (errfds))
-+        {
-+          perror ("error creating pipe:");
-+          return 0;
-+        }
-+
-+      errin = errfds [0];
-+      errout = errfds [1];
-+    }
-+/* End: SUN addition: capture stderr as well */ 
-+
-   switch ((int) (forked = fork ()))
-     {
-     case -1:
-@@ -1292,6 +1310,17 @@ get_best_gl_visual (saver_screen_info *s
-             perror ("could not dup() a new stdout:");
-             return 0;
-           }
-+/* Begin: SUN addition: capture stderr as well */
-+	if (! si->prefs.verbose_p) 
-+	  {
-+	    close(errin);
-+	    if (dup2 (errout, STDERR_FILENO) < 0)
-+	      {
-+                perror ("could not dup() a new stderr:");
-+		return 0;
-+	      }
-+	  }
-+/* End: SUN addition: capture stderr as well */
-         hack_subproc_environment (ssi);		/* set $DISPLAY */
- 
-         execvp (av[0], av);			/* shouldn't return. */
-@@ -1322,6 +1351,14 @@ get_best_gl_visual (saver_screen_info *s
-           *buf = 0;
-         fclose (f);
- 
-+/* Begin: SUN addition: capture stderr as well */
-+        if (! si->prefs.verbose_p) 
-+          {
-+            close (errout);
-+            close (errin);
-+          }
-+/* End: SUN addition: capture stderr as well */
-+
-         /* Wait for the child to die. */
-         waitpid (-1, &wait_status, 0);
- 
--- a/open-src/app/xscreensaver/glsnake.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Remove models whose name and/or shape are in poor taste.
-
-diff -urp -x '*~' hacks/glx/glsnake.c hacks/glx/glsnake.c
---- hacks/glx/glsnake.c	2006-05-03 12:39:21.000000000 -0700
-+++ hacks/glx/glsnake.c	2006-08-08 15:25:59.692385000 -0700
-@@ -535,11 +535,6 @@ static const struct model_s model[] = {
- 	PIN, ZERO, RIGHT, RIGHT, ZERO, PIN, PIN, ZERO, PIN, PIN, ZERO,
- 	RIGHT, ZERO }
-     },
--    { "k's turd",
--      { RIGHT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT,
--	RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN, RIGHT, LEFT, RIGHT, PIN,
--	RIGHT, LEFT, RIGHT, PIN, ZERO }
--    },
-     { "lightsabre",
-       { ZERO, ZERO, ZERO, ZERO, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO,
- 	ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
-@@ -560,26 +555,6 @@ static const struct model_s model[] = {
- 	ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO,
- 	ZERO, ZERO, ZERO }
-     },
--    { "kissy box",
--      { PIN, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
--	ZERO, PIN, ZERO, ZERO, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, ZERO,
--	ZERO, PIN, ZERO }
--    },
--    { "erect penis",     /* thanks benno */
--      { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN,
--	PIN, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO,
--	ZERO, ZERO }
--    },
--    { "flaccid penis",
--      { PIN, ZERO, PIN, PIN, ZERO, ZERO, PIN, ZERO, ZERO, ZERO, PIN,
--	PIN, ZERO, ZERO, ZERO, RIGHT, PIN, ZERO, ZERO, ZERO, ZERO, ZERO,
--	ZERO, ZERO }
--    },
--    { "vagina",
--      { RIGHT, ZERO, ZERO, ZERO, RIGHT, ZERO, ZERO, PIN, ZERO, ZERO,
--	LEFT, ZERO, ZERO, ZERO, LEFT, ZERO, LEFT, PIN, LEFT, PIN, RIGHT,
--	PIN, RIGHT, ZERO }
--    },
-     { "mask",
-       { ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, ZERO, ZERO, PIN,
- 	ZERO, ZERO, PIN, ZERO, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO,
-@@ -684,9 +659,6 @@ static const struct model_s model[] = {
-     { "Bow",
-         { LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT , ZERO }
-     },
--    { "bra",
--        { RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT, RIGHT, RIGHT, RIGHT, LEFT, LEFT, RIGHT, LEFT, RIGHT, RIGHT, LEFT, LEFT, LEFT , ZERO }
--    },
-     { "bronchosaurus",
-         { ZERO, PIN, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, ZERO, PIN , ZERO }
-     },
-@@ -995,9 +967,6 @@ static const struct model_s model[] = {
-     { "Parrot",
-         { ZERO, ZERO, ZERO, ZERO, RIGHT, RIGHT, ZERO, LEFT, PIN, RIGHT, ZERO, RIGHT, ZERO, RIGHT, ZERO, RIGHT, PIN, LEFT, ZERO, RIGHT, LEFT, ZERO, PIN, ZERO }
-     },
--    { "Penis",
--        { PIN, PIN, RIGHT, ZERO, PIN, PIN, ZERO, PIN, ZERO, ZERO, RIGHT, PIN, LEFT, ZERO, ZERO, PIN, ZERO, PIN, PIN, ZERO, LEFT, PIN, PIN, ZERO }
--    },
-     { "PictureComingSoon",
-         { LEFT, LEFT, ZERO, RIGHT, LEFT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, PIN, LEFT, RIGHT, PIN, RIGHT, RIGHT, PIN, RIGHT, LEFT, ZERO, RIGHT, RIGHT, ZERO }
-     },
--- a/open-src/app/xscreensaver/gtk-lock.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2563 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-Solaris uses the gtk unlock dialog program originally written by 
-Ximian & Wipro, in order to provide a dialog box that works with
-the GNOME accessibility framework.   This was done as a fork of
-the original xscreensaver because the maintainer would not allow
-use of a toolkit in the lock dialog - he has since softened his
-stance a bit, but this has not been presented to him to see if it
-meets his requirements as spelled out at:
-	http://www.jwz.org/xscreensaver/toolkits.html
-
-This file contains changes to the existing xscreensaver source to
-enable that - the lock dialog itself is contained in the separate
-file sun-src/driver/lock-Gtk.c.
-
-This file also contains changes to make the pam code in xscreensaver
-act more like a correct pam client, allowing different interaction
-models than just a single password for authentication.
-
-diff -urp -x '*~' config.h.in config.h.in
---- config.h.in	2006-09-18 14:39:56.000000000 -0700
-+++ config.h.in	2006-09-19 17:08:14.999476000 -0700
-@@ -132,6 +132,9 @@
- /* Define this if you have Gtk 2.x. */
- #undef HAVE_GTK2
- 
-+/* Define this to build the external lock dialog */
-+#undef HAVE_XSCREENSAVER_LOCK
-+
- /* Define this if you are running HPUX with so-called ``Secure Passwords'' (if
-    you have /usr/include/hpsecurity.h, you probably have this.) I haven't
-    tested this one, let me know if it works. */
-diff -urp -x '*~' configure.in configure.in
---- configure.in	2006-09-18 13:56:10.000000000 -0700
-+++ configure.in	2006-09-19 17:08:15.011239000 -0700
-@@ -2432,6 +2432,8 @@ if test "$with_gtk" = yes; then
-   pkg_check_version        libglade-2.0  1.99.0
-   pkg_check_version      gdk-pixbuf-2.0  2.0.0
-   pkg_check_version gdk-pixbuf-xlib-2.0  2.0.0
-+  pkg_check_version           gconf-2.0  2.6.1
-+  pkg_check_version  libloginhelper-1.0  1.0
-   have_gtk="$ok"
- 
-   if test "$have_gtk" = no; then
-@@ -2447,6 +2449,9 @@ if test "$with_gtk" = yes; then
-   fi
- 
-   if test "$have_gtk" = yes; then
-+#--- Begin SUNW addition
-+    AC_DEFINE(HAVE_XSCREENSAVER_LOCK,[],[Define this to build the external lock dialog])
-+#--- End SUNW addition
-     AC_CACHE_CHECK([for Gtk includes], ac_cv_gtk_config_cflags,
-                    [ac_cv_gtk_config_cflags=`$pkg_config --cflags $pkgs`])
-     AC_CACHE_CHECK([for Gtk libs], ac_cv_gtk_config_libs,
-@@ -3500,6 +3505,16 @@ if test "$have_gtk" = yes; then
-   ALL_DEMO_PROGRAMS="$PREFERRED_DEMO_PROGRAM $ALL_DEMO_PROGRAMS"
- fi
- 
-+#--- Begin SUNW addition
-+PREFERRED_LOCK_PROGRAM=
-+ALL_LOCK_PROGRAMS=
-+LOCK_PROGRAM=
-+if test "$have_gtk" = yes; then
-+  PREFERRED_LOCK_PROGRAM=xscreensaver-lock-Gtk
-+  ALL_LOCK_PROGRAMS="$PREFERRED_LOCK_PROGRAM $ALL_LOCK_PROGRAMS"
-+  LOCK_PROGRAM=xscreensaver-lock
-+fi
-+#--- End SUNW addition
- 
- if test "$have_kerberos" = yes; then
-   PASSWD_SRCS="$PASSWD_SRCS \$(KERBEROS_SRCS)"
-@@ -3642,6 +3669,11 @@ AC_SUBST(INCLUDES)
- 
- AC_SUBST(PREFERRED_DEMO_PROGRAM)
- AC_SUBST(ALL_DEMO_PROGRAMS)
-+#--- Begin SUNW addition
-+AC_SUBST(PREFERRED_LOCK_PROGRAM)
-+AC_SUBST(ALL_LOCK_PROGRAMS)
-+AC_SUBST(LOCK_PROGRAM)
-+#--- End SUNW addition
- AC_SUBST(SAVER_LIBS)
- AC_SUBST(MOTIF_LIBS)
- AC_SUBST(GTK_LIBS)
-@@ -4126,7 +4158,8 @@ HACK_CONF_DIR=`echo "${HACK_CONF_DIR}" |
- 
- 
- # Sanity check the hackdir
--for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command ; do
-+# SUNW addition: added xscreensaver-lock to list on next line
-+for bad_choice in xscreensaver xscreensaver-demo xscreensaver-command xscreensaver-lock ; do
-   if test "${HACKDIR}" = "${bindir}/${bad_choice}" ; then
-     echo ""
-     AC_MSG_ERROR([\"--with-hackdir=${bindir}/${bad_choice}\" won't work.
-diff -urp -x '*~' driver/Makefile.in driver/Makefile.in
---- driver/Makefile.in	2006-09-19 17:08:10.183708000 -0700
-+++ driver/Makefile.in	2006-09-19 17:08:15.026509000 -0700
-@@ -28,6 +28,7 @@ GTK_APPDIR	= $(GTK_DATADIR)/applications
- GTK_ICONDIR	= $(GTK_DATADIR)/pixmaps
- GTK_GLADEDIR	= $(prefix)/lib/xscreensaver/config
- HACK_CONF_DIR	= @HACK_CONF_DIR@
-+LOCK_DIR	= $(libexecdir)
- 
- CC		= @CC@
- OBJCC		= @OBJCC@
-@@ -41,6 +42,7 @@ SUBP_DEFS	= $(DEFS) -DHACK_PATH='"@HACKD
- GTK_DEFS	= $(DEFS) -DDEFAULT_ICONDIR='"$(GTK_GLADEDIR)"' \
- 			-DBINDIR='"$(bindir)"'
- CONF_DEFS	= -DHACK_CONFIGURATION_PATH='"$(HACK_CONF_DIR)"'
-+LOCK_DEFS	= $(DEFS) -DLOCKDIR=\"$(LOCK_DIR)\"
- 
- LIBS		= @LIBS@
- INTL_LIBS	= @INTLLIBS@
-@@ -98,6 +100,8 @@ GTK_SRCS	= demo-Gtk.c demo-Gtk-conf.c \
- 		  demo-Gtk-widgets.c demo-Gtk-support.c
- GTK_EXTRA_OBJS  = demo-Gtk-widgets.o demo-Gtk-support.o
- GTK_OBJS	= demo-Gtk.o demo-Gtk-conf.o @GTK_EXTRA_OBJS@
-+GTK_LOCK_SRCS	= lock-Gtk.c remote.c
-+GTK_LOCK_OBJS	= lock-Gtk.o remote.o
- 
- PWENT_SRCS	= passwd-pwent.c
- PWENT_OBJS	= passwd-pwent.o
-@@ -216,8 +220,8 @@ GETIMG_LIBS	= $(LIBS) $(X_LIBS) $(XPM_LI
- 		  $(X_PRE_LIBS) -lXt -lX11 $(XMU_LIBS) -lXext $(X_EXTRA_LIBS)
- 
- EXES		= xscreensaver xscreensaver-command xscreensaver-demo \
--		  xscreensaver-getimage @EXES_OSX@
--EXES2		= @ALL_DEMO_PROGRAMS@
-+		  xscreensaver-getimage @EXES_OSX@ @LOCK_PROGRAM@
-+EXES2		= @ALL_DEMO_PROGRAMS@ @ALL_LOCK_PROGRAMS@
- EXES_OSX	= pdf2jpeg
- 
- SCRIPTS_1	= xscreensaver-getimage-file xscreensaver-getimage-video \
-@@ -247,7 +251,7 @@ VMSFILES	= compile_axp.com compile_decc.
- 		  vms-getpwnam.c vms-pwd.h vms-hpwd.c vms-validate.c \
- 		  vms_axp.opt vms_axp_12.opt vms_decc.opt vms_decc_12.opt
- 
--TARFILES	= $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) \
-+TARFILES	= $(EXTRAS) $(VMSFILES) $(SAVER_SRCS_1) $(GTK_LOCK_SRCS) \
- 		  $(MOTIF_SRCS) $(GTK_SRCS) $(PWENT_SRCS) $(PWHELPER_SRCS) \
- 		  $(KERBEROS_SRCS) $(PAM_SRCS) $(LOCK_SRCS_1) $(DEMO_SRCS_1) \
- 		  $(CMD_SRCS) $(GETIMG_SRCS_1) $(PDF2JPEG_SRCS) $(HDRS) \
-@@ -260,7 +264,7 @@ all: $(EXES) $(EXES2)
- tests: $(TEST_EXES)
- 
- install:   install-program   install-ad    install-scripts \
--	   install-gnome     install-man   install-xml install-pam
-+	   install-gnome     install-man   install-xml 
- uninstall: uninstall-program uninstall-ad  \
- 	   uninstall-gnome   uninstall-man uninstall-xml  
- 
-@@ -272,6 +276,9 @@ install-program: $(EXES)
- 	@if [ ! -d $(install_prefix)$(bindir) ]; then			\
- 	  $(INSTALL_DIRS) $(install_prefix)$(bindir) ;			\
- 	 fi
-+	@if [ -n "@LOCK_PROGRAM@" -a ! -d $(install_prefix)$(LOCK_DIR) ]; then \
-+	  $(INSTALL_DIRS) $(install_prefix)$(LOCK_DIR) ; 		\
-+	 fi
- 	@inst="$(INSTALL_PROGRAM)" ;					\
- 	if [ @NEED_SETUID@ = yes ]; then				\
- 	   me=`PATH="$$PATH:/usr/ucb" whoami` ;				\
-@@ -300,6 +307,12 @@ install-program: $(EXES)
- 	  echo $(INSTALL_PROGRAM) $$exe $(install_prefix)$(bindir)/$$exe ; \
- 	       $(INSTALL_PROGRAM) $$exe $(install_prefix)$(bindir)/$$exe ; \
- 	 done
-+	@if [ -n "@LOCK_PROGRAM@" ]; then				     \
-+	  echo $(INSTALL_PROGRAM) xscreensaver-lock \
-+	    $(install_prefix)$(LOCK_DIR)/xscreensaver-lock ; \
-+	   $(INSTALL_PROGRAM) xscreensaver-lock \
-+	    $(install_prefix)$(LOCK_DIR)/xscreensaver-lock ; \
-+	fi
- 
- install-ad: XScreenSaver.ad
- 	@if [ ! -d $(install_prefix)$(AD_DIR) ]; then			      \
-@@ -736,7 +749,7 @@ $(SAVER_UTIL_OBJS):
- 
- # How we build object files in this directory.
- .c.o:
--	$(CC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
-+	$(CC) -c $(INCLUDES) $(DEFS) $(INTL_DEFS) $(CFLAGS) $(X_CFLAGS) $<
- 
- .m.o:
- 	$(OBJCC) -c $(INCLUDES) $(DEFS) $(CFLAGS) $(X_CFLAGS) $<
-@@ -757,6 +770,16 @@ demo-Gtk-conf.o: demo-Gtk-conf.c
- 	$(CC) -c $(INCLUDES) $(CONF_DEFS) $(GTK_DEFS) $(CFLAGS) $(X_CFLAGS) \
- 	  $(srcdir)/demo-Gtk-conf.c
- 
-+# lock takes an extra -D option.
-+lock.o:
-+	$(CC) -c $(INCLUDES) $(LOCK_DEFS) $(CFLAGS) $(X_CFLAGS) \
-+	  $(srcdir)/lock.c
-+
-+# lock-Gtk takes extra -D and -I options.
-+lock-Gtk.o: lock-Gtk.c
-+	$(CC) -c $(INCLUDES) -I$(ICON_SRC) $(GTK_DEFS) \
-+	  $(CFLAGS) $(X_CFLAGS) $(INTL_DEFS) \
-+	  $(srcdir)/lock-Gtk.c
- 
- # How we build the default app-defaults file into the program.
- #
-@@ -787,6 +813,15 @@ xscreensaver-demo: @PREFERRED_DEMO_PROGR
- 	       cp -p @PREFERRED_DEMO_PROGRAM@@EXEEXT@ $@@EXEEXT@      ;	\
- 	fi
- 
-+xscreensaver-lock: @PREFERRED_LOCK_PROGRAM@
-+	$(INSTALL_PROGRAM) @PREFERRED_LOCK_PROGRAM@ $@
-+
-+xscreensaver-lock-Gtk: $(GTK_LOCK_OBJS)
-+	$(CC) $(LDFLAGS) -o $@ $(GTK_LOCK_OBJS) $(LIBS) $(X_LIBS) \
-+	$(GTK_LIBS) $(XML_LIBS) $(X_PRE_LIBS) -lXt -lX11 \
-+	$(XDPMS_LIBS) -lXext \
-+	$(X_EXTRA_LIBS)
-+
- xscreensaver-demo-Xm: $(DEMO_OBJS) $(MOTIF_OBJS)
- 	$(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(MOTIF_OBJS) $(LIBS) $(X_LIBS) \
- 	$(MOTIF_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) -lXt -lX11 \
-@@ -808,7 +843,7 @@ pdf2jpeg: $(PDF2JPEG_OBJS)
- 
- 
- TEST_PASSWD_OBJS = test-passwd.o $(LOCK_OBJS_1) $(PASSWD_OBJS) \
--	 subprocs.o setuid.o splash.o prefs.o \
-+	 subprocs.o setuid.o splash.o prefs.o exec.o stderr.o \
- 	$(SAVER_UTIL_OBJS)
- test-passwd.o: XScreenSaver_ad.h
- 
-diff -urp -x '*~' driver/dpms.c driver/dpms.c
---- driver/dpms.c	2005-03-21 18:07:21.000000000 -0800
-+++ driver/dpms.c	2006-09-19 17:08:15.026976000 -0700
-@@ -50,6 +50,7 @@
- 
- #include <stdio.h>
- #include <X11/Xlib.h>
-+# include <X11/Intrinsic.h>
- 
- #ifdef HAVE_DPMS_EXTENSION   /* almost the whole file */
- 
-diff -urp -x '*~' driver/lock.c driver/lock.c
---- driver/lock.c	2006-05-17 16:35:54.000000000 -0700
-+++ driver/lock.c	2006-09-19 17:08:15.056092000 -0700
-@@ -23,6 +23,9 @@
- #include <X11/Xos.h>		/* for time() */
- #include <time.h>
- #include <sys/time.h>
-+#include <errno.h>
-+#include <signal.h>
-+#include "exec.h"
- #include "xscreensaver.h"
- #include "resources.h"
- 
-@@ -74,110 +77,296 @@ vms_passwd_valid_p(char *pw, Bool verbos
- 
- #endif /* VMS */
- 
-+extern int kill_job (saver_info *si, pid_t pid, int signal);
-+extern struct screenhack_job *make_job (pid_t pid, int screen, const char *cmd);
-+void hack_uid (saver_info *si);
-+ 
-+Bool g_passwd_dialog_created = 0;
- 
- #undef MAX
- #define MAX(a,b) ((a)>(b)?(a):(b))
- 
--enum passwd_state { pw_read, pw_ok, pw_null, pw_fail, pw_cancel, pw_time };
--
--struct passwd_dialog_data {
--
--  saver_screen_info *prompt_screen;
--  int previous_mouse_x, previous_mouse_y;
--
--  enum passwd_state state;
--  char typed_passwd [80];
--  XtIntervalId timer;
--  int i_beam;
--
--  float ratio;
--  Position x, y;
--  Dimension width;
--  Dimension height;
--  Dimension border_width;
--
--  Bool show_stars_p; /* "I regret that I have but one asterisk for my country."
--                        -- Nathan Hale, 1776. */
--
--  char *heading_label;
--  char *body_label;
--  char *user_label;
--  char *passwd_label;
--  char *date_label;
--  char *user_string;
--  char *passwd_string;
--  char *login_label;
--  char *uname_label;
--
--  Bool show_uname_p;
--
--  XFontStruct *heading_font;
--  XFontStruct *body_font;
--  XFontStruct *label_font;
--  XFontStruct *passwd_font;
--  XFontStruct *date_font;
--  XFontStruct *button_font;
--  XFontStruct *uname_font;
--
--  Pixel foreground;
--  Pixel background;
--  Pixel passwd_foreground;
--  Pixel passwd_background;
--  Pixel thermo_foreground;
--  Pixel thermo_background;
--  Pixel shadow_top;
--  Pixel shadow_bottom;
--  Pixel button_foreground;
--  Pixel button_background;
--
--  Dimension logo_width;
--  Dimension logo_height;
--  Dimension thermo_width;
--  Dimension internal_border;
--  Dimension shadow_width;
--
--  Dimension passwd_field_x, passwd_field_y;
--  Dimension passwd_field_width, passwd_field_height;
--
--  Dimension login_button_x, login_button_y;
--  Dimension login_button_width, login_button_height;
--
--  Dimension thermo_field_x, thermo_field_y;
--  Dimension thermo_field_height;
--
--  Pixmap logo_pixmap;
--  Pixmap logo_clipmask;
--  int logo_npixels;
--  unsigned long *logo_pixels;
--
--  Cursor passwd_cursor;
--  Bool login_button_down_p;
--  Bool login_button_p;
--  Bool login_button_enabled_p;
--
--  Pixmap save_under;
--};
-+/* enum passwd_state & struct passwd_dialog_data moved to xscreensaver.h */
- 
-+static void make_window (saver_info *si, enum window_type w_type);
- static void draw_passwd_window (saver_info *si);
--static void update_passwd_window (saver_info *si, const char *printed_passwd,
-+       void update_passwd_window (saver_info *si, const char *printed_passwd,
- 				  float ratio);
--static void destroy_passwd_window (saver_info *si);
-+       void destroy_passwd_window (saver_info *si);
- static void undo_vp_motion (saver_info *si);
- static void handle_passwd_button (saver_info *si, XEvent *event);
- 
-+extern Atom XA_UNLOCK_RATIO;
- 
--static void
-+
-+static int  ignore_all_errors_ehandler (Display *dpy, XErrorEvent *error);
-+
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+
-+int
-+write_to_child (saver_info* si, char* msg)
-+{
-+      if (si->external_passwd && g_passwd_dialog_created && si->pw_data->stdin_fd != -1)
-+	{
-+	  ssize_t len;
-+	  char *nlmsg;
-+
-+	  nlmsg = (char *)malloc (strlen (msg) + 2);
-+	  sprintf (nlmsg, "%s\n", msg);
-+
-+	  if (si->prefs.verbose_p)
-+	    {
-+              fprintf (stderr, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
-+              fprintf (stderr, "HAVE_SCRSVR_LOCK message is:%s writing to fd:%d\n",
-+	                 	   msg, si->pw_data->stdin_fd);
-+              fprintf (stderr, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
-+	    }
-+
-+	write_msg:
-+	  len = write (si->pw_data->stdin_fd, nlmsg, strlen (nlmsg));
-+	  if (len < 0 && errno == EINTR)
-+	    goto write_msg;
-+
-+	  free (nlmsg);	  
-+          return (1);
-+	}
-+      return (0); /* if we didnt write anything return 0*/
-+}
-+
-+static int
-+sane_dup2 (int fd1, int fd2)
-+{
-+  int ret;
-+
-+ retry:
-+  ret = dup2 (fd1, fd2);
-+  if (ret < 0 && errno == EINTR)
-+    goto retry;
-+
-+  return ret;
-+}
-+
-+static int
-+close_and_invalidate (int *fd)
-+{
-+  int ret;
-+
-+  ret = close (*fd);
-+  *fd = -1;
-+
-+  return ret;
-+}
-+
-+void
-+handle_passwd_input (XtPointer data, int *fd, XtInputId *id)
-+{
-+  saver_info *si = (saver_info *)data;
-+  saver_preferences *p = &si->prefs;
-+  char buffer[1024];
-+  char *s;
-+
-+  if (si->prefs.verbose_p)
-+    fprintf (stderr, "passwd input handler() fd=%d\n",*fd);
-+
-+  s = fgets (buffer, sizeof (buffer), si->pw_data->input_file);
-+  if (!s)
-+    {
-+      if (si->prefs.verbose_p)
-+	{
-+	  fprintf (stderr, "done reading...\n");
-+	  fprintf (stderr, "removing input handler...\n");
-+	}
-+      XtRemoveInput (*id);
-+      si->pw_data->stdout_input_id = 0;
-+
-+      if (si->pw_data->state == pw_read)
-+	si->pw_data->state = pw_null;
-+
-+      if (si->prefs.verbose_p)
-+        fprintf (stderr, "passwd input handler() returning...done reading\n");
-+ 
-+      return;
-+    }
-+
-+  if (si->pw_data->got_windowid)
-+    {
-+      char *nl;
-+      if (si->prefs.verbose_p)
-+	fprintf (stderr, "got a password\n");
-+      nl = strchr (s, '\n');
-+      if (nl)
-+	*nl = '\0';
-+      si->pw_data->passwd_string = strdup (s);
-+      if (si->prefs.verbose_p)
-+        fprintf(stderr,"Dude got password and saving it in passwd_string:%s\n", s);
-+
-+     /* We want to send null to lock dialog to say we are working on authentication*/
-+     si->pw_data->state = pw_null;
-+    }
-+  else /* Get the window id of lock dialog from Child ***/
-+    {
-+      Window window = strtoul (s, NULL, 0);
-+      /* FIXME: what to revert to? */
-+      XSetInputFocus (si->dpy, window, RevertToParent, CurrentTime);
-+      XSync (si->dpy, False);
-+      si->pw_data->got_windowid = True;
-+      si->passwd_dialog = window;
-+      /**g_passwd_dialog_created = True;**/ /*set global flag to check in timers.c*/
-+      if (si->prefs.verbose_p)
-+	fprintf (stderr, "<---handle_passwd_input(): gotwindowid:0x%x\n", passwd_win);
-+    }
-+}
-+
-+/* returns successful fork/exec */
-+Bool
-+spawn_external_passwd_process (saver_info *si, passwd_dialog_data *pw)
-+{
-+  saver_preferences *p = &si->prefs;
-+  pid_t forked;
-+  const char *command = LOCKDIR "/xscreensaver-lock";
-+  int stdin_pipe[2]  = { -1, -1 };
-+  int stdout_pipe[2] = { -1, -1 };
-+
-+  si->passwd_pid = 0;
-+  pw->stdin_fd = pw->stdout_fd = -1;
-+  pw->got_windowid = False;
-+
-+  if (si->prefs.verbose_p)
-+     fprintf(stderr, "-->spawn_external_passwd()\n");
-+
-+  if (pipe (stdin_pipe) < 0)
-+   {
-+    perror ("pipe(stdin_pipe) failed!");
-+    return False;
-+   }
-+
-+  if (pipe (stdout_pipe) < 0)
-+    {
-+      perror ("pipe(stdout_pipe) failed!");
-+      close_and_invalidate (&stdin_pipe[0]);
-+      close_and_invalidate (&stdin_pipe[1]);
-+      return False;
-+    }
-+  switch ((int) (forked = fork ()))
-+    {
-+    case -1:
-+      fprintf (stderr, "%s: ", blurb ());
-+      perror ("couldn't fork");
-+
-+      close_and_invalidate (&stdin_pipe[0]);
-+      close_and_invalidate (&stdin_pipe[1]);
-+      close_and_invalidate (&stdout_pipe[0]);
-+      close_and_invalidate (&stdout_pipe[1]);
-+
-+      return False;
-+
-+    case 0:
-+      close (ConnectionNumber (si->dpy)); /* close display fd */
-+      /* limit_subproc_memory (p->inferior_memory_limit, p->verbose_p); */
-+      /* hack_subproc_environment (ssi); */ /* FIX $DISPLAY */
-+
-+      /* Inside Child Process */
-+      if (p->verbose_p)
-+	fprintf (stderr, "%s: spawning \"%s\" in pid %lu.\n",
-+		 blurb(), command, (unsigned long) getpid ());
-+
-+      close_and_invalidate (&stdin_pipe[1]);
-+      close_and_invalidate (&stdout_pipe[0]);
-+
-+      sane_dup2 (stdin_pipe[0], 0);  /* Listen to Parent from here */
-+      sane_dup2 (stdout_pipe[1], 9); /* Talk to Parent from here */
-+
-+      /* Make sure we have relinquished setuid privs or lock dialog gtk
-+       * program will not run as libgtk is not setuid safe.
-+       */
-+      hack_uid (si);
-+
-+      exec_command (p->shell, command, 0);
-+      /* print_path_error (command); */
-+      fprintf (stderr, "%s: couldn't exec: %s\n", 
-+	       blurb (), command);
-+      abort ();
-+
-+    default:
-+      /* In Parent */
-+      make_job(forked, 0, command);
-+      close_and_invalidate (&stdin_pipe[0]);
-+      close_and_invalidate (&stdout_pipe[1]);
-+
-+      sane_dup2 (stdin_pipe[0], 0);  /* Listen to Child from here */
-+      sane_dup2 (stdout_pipe[1], 13); /* Talk to Child from here */
-+
-+      pw->stdin_fd   = stdin_pipe[1];   /* Talk to child from here */
-+      pw->stdout_fd  = stdout_pipe[0];  /* Listen to Child from here */
-+      si->passwd_pid = forked;
-+
-+      write_to_child (si, "Hello There"); /* Send a test message to Child */
-+
-+      /* Password from child dialog comes through this pipe/fd */
-+      pw->input_file = fdopen (pw->stdout_fd, "r");
-+
-+      pw->stdout_input_id = XtAppAddInput (si->app, pw->stdout_fd,
-+					   (XtPointer) XtInputReadMask,
-+					   handle_passwd_input,
-+					   si);
-+
-+      /* Set global flag to indicate that lock dialog is visible */
-+      g_passwd_dialog_created = True;
-+      return True;
-+    }
-+
-+  /* shouldn't reach */
-+  abort ();
-+  return False;
-+}
-+#endif /* HAVE_XSCREENSAVER_LOCK */
-+
-+void
- make_passwd_window (saver_info *si)
- {
-+  make_window(si, w_dialog);
-+}
-+
-+
-+static void
-+make_window (saver_info *si, enum window_type w_type)
-+{
-   struct passwd *p = getpwuid (getuid ());
-   XSetWindowAttributes attrs;
-   unsigned long attrmask = 0;
--  passwd_dialog_data *pw = (passwd_dialog_data *) calloc (1, sizeof(*pw));
-+  passwd_dialog_data *pw = si->pw_data;
-   Screen *screen;
-   Colormap cmap;
-   char *f;
-   saver_screen_info *ssi = &si->screens [mouse_screen (si)];
- 
-+  if (si->prefs.verbose_p)
-+    fprintf(stderr, "-->make_window()\n");
-+
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+  if (spawn_external_passwd_process (si, si->pw_data))
-+    { 
-+/***************
-+          if (si->prefs.verbose_p)
-+	    fprintf(stderr, "spawning external passwd process in make_window()\n");
-+*******************/
-+
-+/****************mali blank_fails remove this...
-+	  if(!blank_screen(si))
-+	    fprintf(stderr, "Failed to blank the screen\n");
-+*******************/
-+
-+      si->pw_data->ratio = 1.0;
-+      si->pw_data->w_type = w_type;
-+      /*si->pw_data = pw;*/
-+      si->external_passwd = True;
-+      return;
-+    }
-+  si->external_passwd = False;
-+  /* FIXME: don't abort() */
-+  /*abort ();*/
-+#endif /* HAVE_XSCREENSAVER_LOCK */ 
-+
-   /* Display the button only if the "newLoginCommand" pref is non-null.
-    */
-   pw->login_button_p = (si->prefs.new_login_command &&
-@@ -196,6 +385,8 @@ make_passwd_window (saver_info *si)
-   screen = pw->prompt_screen->screen;
-   cmap = DefaultColormapOfScreen (screen);
- 
-+  pw->w_type = w_type;  
-+  pw->state = pw_read;
-   pw->ratio = 1.0;
- 
-   pw->show_stars_p = get_boolean_resource(si->dpy, "passwd.asterisks", 
-@@ -254,9 +445,6 @@ make_passwd_window (saver_info *si)
-   }
- # endif
- 
--  pw->user_string = strdup (p && p->pw_name ? p->pw_name : "???");
--  pw->passwd_string = strdup("");
--
-   f = get_string_resource (si->dpy, "passwd.headingFont", "Dialog.Font");
-   pw->heading_font = XLoadQueryFont (si->dpy, (f ? f : "fixed"));
-   if (!pw->heading_font) pw->heading_font = XLoadQueryFont (si->dpy, "fixed");
-@@ -374,84 +562,6 @@ make_passwd_window (saver_info *si)
- 	pw->height += ascent + descent;
-       }
- 
--    /* Measure the body_label. */
--    XTextExtents (pw->body_font,
--		  pw->body_label, strlen(pw->body_label),
--		  &direction, &ascent, &descent, &overall);
--    if (overall.width > pw->width) pw->width = overall.width;
--    pw->height += ascent + descent;
--
--    {
--      Dimension w2 = 0, w3 = 0, button_w = 0;
--      Dimension h2 = 0, h3 = 0, button_h = 0;
--      const char *passwd_string = "MMMMMMMMMMMM";
--
--      /* Measure the user_label. */
--      XTextExtents (pw->label_font,
--		    pw->user_label, strlen(pw->user_label),
--		    &direction, &ascent, &descent, &overall);
--      if (overall.width > w2)  w2 = overall.width;
--      h2 += ascent + descent;
--
--      /* Measure the passwd_label. */
--      XTextExtents (pw->label_font,
--		    pw->passwd_label, strlen(pw->passwd_label),
--		    &direction, &ascent, &descent, &overall);
--      if (overall.width > w2)  w2 = overall.width;
--      h2 += ascent + descent;
--
--      /* Measure the user_string. */
--      XTextExtents (pw->passwd_font,
--		    pw->user_string, strlen(pw->user_string),
--		    &direction, &ascent, &descent, &overall);
--      overall.width += (pw->shadow_width * 4);
--      ascent += (pw->shadow_width * 4);
--      if (overall.width > w3)  w3 = overall.width;
--      h3 += ascent + descent;
--
--      /* Measure the (maximally-sized, dummy) passwd_string. */
--      XTextExtents (pw->passwd_font,
--		    passwd_string, strlen(passwd_string),
--		    &direction, &ascent, &descent, &overall);
--      overall.width += (pw->shadow_width * 4);
--      ascent += (pw->shadow_width * 4);
--      if (overall.width > w3)  w3 = overall.width;
--      h3 += ascent + descent;
--
--      w2 = w2 + w3 + (pw->shadow_width * 2);
--      h2 = MAX (h2, h3);
--
--      pw->login_button_width = 0;
--      pw->login_button_height = 0;
--
--      if (pw->login_button_p)
--        {
--          pw->login_button_enabled_p = True;
--
--          /* Measure the "New Login" button */
--          XTextExtents (pw->button_font, pw->login_label,
--                        strlen (pw->login_label),
--                        &direction, &ascent, &descent, &overall);
--          button_w = overall.width;
--          button_h = ascent + descent;
--
--          /* Add some horizontal padding inside the buttons. */
--          button_w += ascent;
--
--          button_w += ((ascent + descent) / 2) + (pw->shadow_width * 2);
--          button_h += ((ascent + descent) / 2) + (pw->shadow_width * 2);
--
--          pw->login_button_width = button_w;
--          pw->login_button_height = button_h;
--
--          w2 = MAX (w2, button_w);
--          h2 += button_h * 1.5;
--        }
--
--      if (w2 > pw->width)  pw->width  = w2;
--      pw->height += h2;
--    }
--
-     pw->width  += (pw->internal_border * 2);
-     pw->height += (pw->internal_border * 4);
- 
-@@ -570,7 +680,7 @@ make_passwd_window (saver_info *si)
-                    pw->prompt_screen->number);
-   undo_vp_motion (si);
- 
--  si->pw_data = pw;
-+  /*mali si->pw_data = pw; */
- 
-   if (cmap)
-     XInstallColormap (si->dpy, cmap);
-@@ -590,6 +700,10 @@ draw_passwd_window (saver_info *si)
-   int sw;
-   int tb_height;
- 
-+
-+  if (si->prefs.verbose_p)
-+    fprintf (stderr, "-->draw_passwd_window() case w_dialog!!\n");
-+
-   height = (pw->heading_font->ascent + pw->heading_font->descent +
-             pw->body_font->ascent + pw->body_font->descent +
-             (2 * MAX ((pw->label_font->ascent + pw->label_font->descent),
-@@ -865,7 +979,7 @@ draw_passwd_window (saver_info *si)
- }
- 
- 
--static void
-+void
- update_passwd_window (saver_info *si, const char *printed_passwd, float ratio)
- {
-   passwd_dialog_data *pw = si->pw_data;
-@@ -875,8 +989,20 @@ update_passwd_window (saver_info *si, co
-   XRectangle rects[1];
- 
-   pw->ratio = ratio;
-+
-+  if (si->prefs.verbose_p)
-+    fprintf (stderr, "-->update_passwd_window() w_dialog !!\n");
-+  
-+  if (!si->pw_data->got_windowid )
-+    {
-+      if (si->prefs.verbose_p)
-+	fprintf (stderr, "-->update_passwd_window() lockdialog not created returning.. !!\n");
-+      return;
-+    }
-+  
-   gcv.foreground = pw->passwd_foreground;
--  gcv.font = pw->passwd_font->fid;
-+  if (pw->passwd_font)
-+    gcv.font = pw->passwd_font->fid;
-   gc1 = XCreateGC (si->dpy, si->passwd_dialog, GCForeground|GCFont, &gcv);
-   gcv.foreground = pw->passwd_background;
-   gc2 = XCreateGC (si->dpy, si->passwd_dialog, GCForeground, &gcv);
-@@ -988,23 +1114,77 @@ update_passwd_window (saver_info *si, co
- }
- 
- 
--static void
-+void
- destroy_passwd_window (saver_info *si)
- {
-   saver_preferences *p = &si->prefs;
-   passwd_dialog_data *pw = si->pw_data;
--  saver_screen_info *ssi = pw->prompt_screen;
--  Colormap cmap = DefaultColormapOfScreen (ssi->screen);
--  Pixel black = BlackPixelOfScreen (ssi->screen);
--  Pixel white = WhitePixelOfScreen (ssi->screen);
-+  saver_screen_info *ssi;
-+  Colormap cmap;
-+  Pixel black, white;
-   XEvent event;
- 
--  memset (pw->typed_passwd, 0, sizeof(pw->typed_passwd));
--  memset (pw->passwd_string, 0, strlen(pw->passwd_string));
-+  if (si->prefs.verbose_p)
-+    fprintf (stderr, "destroy_passwd_window\n");
-+
-+  if (pw == NULL || pw->got_windowid == 0 || si->external_passwd == 0)
-+    return;
- 
-   if (pw->timer)
-     XtRemoveTimeOut (pw->timer);
- 
-+  /*reset global flag to indicate passwd dialog is no longer there*/
-+  g_passwd_dialog_created = 0;
-+
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+  if (si->external_passwd)
-+    {
-+      /* kill the child etc. */
-+      
-+      if (si->passwd_dialog)
-+	{
-+	  XErrorHandler old_handler;
-+	  
-+	  XSync (si->dpy, False);
-+	  old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
-+	  
-+	  XDestroyWindow (si->dpy, si->passwd_dialog);
-+	  XSync (si->dpy, False);
-+	  XSetErrorHandler (old_handler);
-+	  
-+	  si->passwd_dialog = 0;
-+	}
-+      
-+      if (pw->stdout_input_id)
-+	XtRemoveInput (pw->stdout_input_id);
-+      if (pw->stdin_fd != -1)
-+	close_and_invalidate (&pw->stdin_fd);
-+      if (pw->input_file)
-+	fclose (pw->input_file);
-+      else if (pw->stdout_fd != -1)
-+	close_and_invalidate (&pw->stdout_fd);
-+      
-+      if (si->passwd_pid)
-+	{
-+	  kill_job (si, si->passwd_pid, SIGTERM);
-+	  si->passwd_pid = 0;
-+	}
-+      
-+      si->external_passwd = False;
-+     }     
-+  else
-+#endif /* HAVE_XSCREENSAVER_LOCK */
-+{
-+  if (p->verbose_p)
-+    fprintf (stderr, "In destroy_passwd else case..i.e. si->external-passwd is False already\n");
-+
-+  memset (pw->typed_passwd, 0, sizeof(pw->typed_passwd));
-+  memset (pw->passwd_string, 0, strlen(pw->passwd_string));
-+
-+  ssi = pw->prompt_screen;
-+  cmap = DefaultColormapOfScreen (ssi->screen);
-+  black = BlackPixelOfScreen (ssi->screen);
-+  white = WhitePixelOfScreen (ssi->screen);
-   move_mouse_grab (si, RootWindowOfScreen (ssi->screen),
-                    ssi->cursor, ssi->number);
- 
-@@ -1105,10 +1285,13 @@ destroy_passwd_window (saver_info *si)
- 
-   if (cmap)
-     XInstallColormap (si->dpy, cmap);
--
-+}
-   memset (pw, 0, sizeof(*pw));
-+/*** NO mali99 we only create a copy of pw in main and keep it
-+     so dont free it.
-   free (pw);
-   si->pw_data = 0;
-+  ************/
- }
- 
- 
-@@ -1314,17 +1497,64 @@ passwd_animate_timer (XtPointer closure,
-   int tick = 166;
-   passwd_dialog_data *pw = si->pw_data;
- 
--  if (!pw) return;
-+/*  if (si->prefs.verbose_p)
-+   fprintf (stderr,"-->passwd_animate_timer()\n");
-+**/
-+
-+  /*We want to make sure dialog isup before we try to animate**/
-+  if (!si->external_passwd || !g_passwd_dialog_created) 
-+   {
-+    if (si->prefs.verbose_p)
-+      fprintf (stderr,"-->passwd_animate_timer() returning..no dialog yet\n");
-+    return;
-+   }
- 
-   pw->ratio -= (1.0 / ((double) si->prefs.passwd_timeout / (double) tick));
-   if (pw->ratio < 0)
-     {
-       pw->ratio = 0;
--      if (pw->state == pw_read)
-+      if (pw->state == pw_read || pw->state == pw_null)
-+       {
- 	pw->state = pw_time;
-+       }
-     }
- 
-+/*** Communicating with the Child lock dialog...sending ratio back... mali99***/
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+  if (si->passwd_dialog)
-+    {
-+      XEvent event;
-+      Bool status;
-+      XErrorHandler old_handler;
-+
-+/*      fprintf (stderr,"-->passwd_animate_timer() sending ratio to child\n");
-+**/
-+
-+      event.xany.type = ClientMessage;
-+      event.xclient.display = si->dpy;
-+      event.xclient.window = si->passwd_dialog;
-+      event.xclient.message_type = XA_UNLOCK_RATIO;
-+      event.xclient.format = 32;
-+      memset (&event.xclient.data, 0, sizeof (event.xclient.data));
-+      event.xclient.data.l[0] = (long)(pw->ratio * 100);
-+      event.xclient.data.l[1] = 0;
-+      event.xclient.data.l[2] = 0;
-+
-+      XSync (si->dpy, False);
-+      old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
-+      
-+      status = XSendEvent (si->dpy, si->passwd_dialog, False, 0L, &event);
-+
-+      XSync (si->dpy, False);
-+      XSetErrorHandler (old_handler);
-+
-+      if (!status)
-+	fprintf (stderr, "%s: error sending ratio to lock dialog\n", blurb ());
-+      
-+    }
-+#else /* !HAVE_XSCREENSAVER_LOCK */
-   update_passwd_window (si, 0, pw->ratio);
-+#endif /* !HAVE_XSCREENSAVER_LOCK */
- 
-   if (pw->state == pw_read)
-     pw->timer = XtAppAddTimeOut (si->app, tick, passwd_animate_timer,
-@@ -1420,11 +1650,15 @@ handle_passwd_key (saver_info *si, XKeyE
-         {
-           update_passwd_window (si, "Checking...", pw->ratio);
-           XSync (si->dpy, False);
--          if (passwd_valid_p (typed_passwd, p->verbose_p))
-+
-+/***************mali99************************************************
-+          if (passwd_valid_p (typed_passwd, p->verbose_p, PAM_SERVICE))
-             pw->state = pw_ok;
-           else
-             pw->state = pw_fail;
-           update_passwd_window (si, "", pw->ratio);
-+****************************************************************************/
-+            pw->state = pw_ok;
-         }
-       break;
- 
-@@ -1467,7 +1701,7 @@ handle_passwd_key (saver_info *si, XKeyE
- }
- 
- 
--static void
-+void
- passwd_event_loop (saver_info *si)
- {
-   saver_preferences *p = &si->prefs;
-@@ -1480,6 +1714,43 @@ passwd_event_loop (saver_info *si)
-   while (si->pw_data && si->pw_data->state == pw_read)
-     {
-       XtAppNextEvent (si->app, &event);
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+      if (event.xany.type == KeyPress)
-+	{
-+	  if (si->pw_data->got_windowid)
-+	    {
-+	      Bool status;
-+	      XErrorHandler old_handler;
-+	     
-+              if(p->verbose_p)
-+               fprintf (stderr, "event loop..gotwindowid..and keypress event...\n");
-+
-+               event.xany.window = si->passwd_dialog;
-+
-+              XSync (si->dpy, False);
-+              old_handler = XSetErrorHandler (ignore_all_errors_ehandler);
-+
-+              status = 
-+	XSendEvent (si->dpy, si->passwd_dialog, False, KeyPressMask, &event);
-+              XSync (si->dpy, False);
-+              XSetErrorHandler (old_handler);
-+
-+              if (p->verbose_p)
-+                {
-+                  if (status)
-+                    fprintf (stderr, "sent key...\n");
-+                  else
-+                    fprintf (stderr, "error sending key...\n");
-+                }
-+	    }
-+	  else
-+	    {
-+	      if (p->verbose_p)
-+		fprintf (stderr, "got keypress but no window id yet :(\n");
-+	      XtDispatchEvent (&event);
-+	    }
-+	}
-+#else /* !HAVE_XSCREENSAVER_LOCK */
-       if (event.xany.window == si->passwd_dialog && event.xany.type == Expose)
- 	draw_passwd_window (si);
-       else if (event.xany.type == KeyPress)
-@@ -1491,16 +1762,34 @@ passwd_event_loop (saver_info *si)
-                 event.xany.type == ButtonRelease) && 
-                si->pw_data->login_button_p)
- 	handle_passwd_button (si, &event);
-+#endif /* !HAVE_XSCREENSAVER_LOCK */
-+      else if (event.xany.window == si->passwd_dialog && event.xany.type == Expose &&
-+               si->pw_data->passwd_label != NULL)
-+       {
-+          if(p->verbose_p)
-+            fprintf (stderr, "event loop...and expose event.should update lock with new label...\n");
-+          /***if (si->pw_data->passwd_label)**/
-+          update_passwd_window (si, si->pw_data->passwd_label, pw->ratio);
-+          free (si->pw_data->passwd_label);
-+          si->pw_data->passwd_label = 0;
-+	  si->pw_data->state = pw_read;
-+       }
-+
-       else
- 	XtDispatchEvent (&event);
-     }
- 
-   switch (si->pw_data->state)
-     {
--    case pw_ok:   msg = 0; break;
--    case pw_null: msg = ""; break;
--    case pw_time: msg = "Timed out!"; break;
--    default:      msg = (caps_p ? "CapsLock?" : "Sorry!"); break;
-+    case pw_ok:   msg = strdup("pw_ok"); break;
-+    case pw_null: msg = strdup("pw_null"); break;
-+    case pw_time: msg = strdup("pw_time"); break;
-+    case pw_read: msg = strdup("pw_read"); break;
-+    case pw_fail: msg = strdup("pw_fail"); break;
-+    case pw_cancel: msg = strdup("pw_cancel"); break;
-+    default:      msg = 0; 
-+	fprintf(stderr, "si->pw_data->state is bad, serious error\n");
-+        break;
-     }
- 
-   if (si->pw_data->state == pw_fail)
-@@ -1510,7 +1799,12 @@ passwd_event_loop (saver_info *si)
-     switch (si->pw_data->state)
-       {
-       case pw_ok:
--	fprintf (stderr, "%s: password correct.\n", blurb()); break;
-+       {
-+	fprintf (stderr, "%s: password correct.\n", blurb());
-+	fprintf (stderr, "%s: setting state to be null.\n", blurb());
-+        si->pw_data->state = pw_null;
-+        break;
-+       }
-       case pw_fail:
- 	fprintf (stderr, "%s: password incorrect!%s\n", blurb(),
-                  (caps_p ? "  (CapsLock)" : ""));
-@@ -1520,7 +1814,8 @@ passwd_event_loop (saver_info *si)
- 	fprintf (stderr, "%s: password entry cancelled.\n", blurb()); break;
-       case pw_time:
- 	fprintf (stderr, "%s: password entry timed out.\n", blurb()); break;
--      default: break;
-+      default: 
-+        break;
-       }
- 
- #ifdef HAVE_SYSLOG
-@@ -1568,17 +1863,57 @@ passwd_event_loop (saver_info *si)
- 	fprintf (real_stderr,
- 		 "%s: WARNING: %d failed attempts to unlock the screen.\n",
- 		 blurb(), si->unlock_failures);
--      fflush (real_stderr);
- 
-       si->unlock_failures = 0;
-     }
- 
-   if (msg)
-     {
-+	  if (p->verbose_p)
-+	    {
-+              fprintf (stderr, "..eventloop...msg is:%s\n",msg);
-+            }
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+    /* DONT NEED TO SEND ANY INFO TO CHILD AT THIS STAGE */
-+    /*  if (write_to_child (si, msg));**/ /*if write is successful do nothing*/
-+      free(msg);
-+
-+      /*********************************************************
-+      if (si->external_passwd && si->pw_data->stdin_fd != -1)
-+	{
-+	  ssize_t len;
-+	  char *nlmsg;
-+
-+	  nlmsg = (char *)malloc (strlen (msg) + 2);
-+	  sprintf (nlmsg, "%s\n", msg);
-+
-+	  if (p->verbose_p)
-+	    {
-+              fprintf (stderr, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
-+              fprintf (stderr, "HAVE_SCRSVR_LOCK message is:%s writing to fd:%d\n",
-+	                 	   msg, si->pw_data->stdin_fd);
-+              fprintf (stderr, "@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@\n");
-+	    }
-+
-+	write_msg:
-+	  len = write (si->pw_data->stdin_fd, nlmsg, strlen (nlmsg));
-+	  if (len < 0 && errno == EINTR)
-+	    goto write_msg;
-+
-+	  free (nlmsg);	  
-+	}
-+      else
-+      ******************************************************************************/
-+#endif /* HAVE_XSCREENSAVER_LOCK */
-+/************
-+    {
-       si->pw_data->i_beam = 0;
-       update_passwd_window (si, msg, 0.0);
-+    }
-+************/
-+
-       XSync (si->dpy, False);
--      sleep (1);
-+      usleep (250000);  /* 1/4 second */
- 
-       /* Swallow all pending KeyPress/KeyRelease events. */
-       {
-@@ -1590,7 +1925,7 @@ passwd_event_loop (saver_info *si)
- }
- 
- 
--static void
-+void
- handle_typeahead (saver_info *si)
- {
-   passwd_dialog_data *pw = si->pw_data;
-@@ -1607,7 +1942,13 @@ handle_typeahead (saver_info *si)
- 
-   memset (si->unlock_typeahead, '*', strlen(si->unlock_typeahead));
-   si->unlock_typeahead[i] = 0;
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+  /* FIXME: bugzilla.gnome.org #77077 */
-+  /* need to handle this in the external dialog case */
-+
-+#else
-   update_passwd_window (si, si->unlock_typeahead, pw->ratio);
-+#endif /* !HAVE_XSCREENSAVER_LOCK */
- 
-   free (si->unlock_typeahead);
-   si->unlock_typeahead = 0;
-@@ -1623,12 +1964,14 @@ unlock_p (saver_info *si)
-   raise_window (si, True, True, True);
- 
-   if (p->verbose_p)
--    fprintf (stderr, "%s: prompting for password.\n", blurb());
-+    fprintf (stderr, "%s: -->unlock_p()\n", blurb());
- 
-+/*******mali99**/
-   if (si->pw_data || si->passwd_dialog)
-     destroy_passwd_window (si);
- 
-   make_passwd_window (si);
-+/****mali99*********/
- 
-   compose_status = calloc (1, sizeof (*compose_status));
- 
-@@ -1636,6 +1979,7 @@ unlock_p (saver_info *si)
-   passwd_event_loop (si);
- 
-   status = (si->pw_data->state == pw_ok);
-+
-   destroy_passwd_window (si);
- 
-   free (compose_status);
-diff -urp -x '*~' driver/passwd-kerberos.c driver/passwd-kerberos.c
---- driver/passwd-kerberos.c	2005-06-21 20:20:11.000000000 -0700
-+++ driver/passwd-kerberos.c	2006-09-19 17:08:15.056804000 -0700
-@@ -178,7 +178,7 @@ key_to_key(char *user, char *instance, c
-    some sites. So, we do a quick, painful hack with a tmpfile.
-  */
- Bool
--kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
-+kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p, int whichService)
- {
- # ifdef HAVE_DARWIN
-     return (klNoErr ==
-diff -urp -x '*~' driver/passwd-pam.c driver/passwd-pam.c
---- driver/passwd-pam.c	2006-09-18 14:01:00.000000000 -0700
-+++ driver/passwd-pam.c	2006-09-19 17:08:15.067544000 -0700
-@@ -39,11 +39,18 @@
- #ifndef NO_LOCKING  /* whole file */
- 
- #include <stdlib.h>
-+#include <xscreensaver-intl.h>
-+
- #ifdef HAVE_UNISTD_H
- # include <unistd.h>
- #endif
- 
--extern char *blurb(void);
-+# ifdef sun
-+#  include <deflt.h>
-+# endif
-+
-+
-+/*extern char *blurb(void);*/
- 
- 
- #include <stdio.h>
-@@ -57,6 +64,25 @@ extern char *blurb(void);
- 
- #include <sys/stat.h>
- 
-+#include <X11/Intrinsic.h>
-+#include <X11/Xos.h>            /* for time() */
-+#include <time.h>
-+#include <sys/time.h>
-+#include <errno.h>
-+#include <signal.h>
-+#include "xscreensaver.h"
-+
-+extern int write_to_child (saver_info* si, char* msg);
-+extern void make_passwd_window (saver_info* si);
-+extern void destroy_passwd_window (saver_info* si);
-+extern void handle_typeahead (saver_info* si);
-+extern void update_passwd_window (saver_info *si, const char *printed_passwd, float ratio);
-+extern void passwd_event_loop(saver_info* si);
-+extern passwd_dialog_data* ptr_mygtkpwd;
-+
-+extern saver_info *global_si_kludge;
-+extern Bool g_passwd_dialog_created;
-+
- extern sigset_t block_sigchld (void);
- extern void unblock_sigchld (void);
- 
-@@ -68,6 +94,9 @@ extern void unblock_sigchld (void);
- #define True  1
- #define False 0
- 
-+
-+Bool we_have_pam;
-+
- #undef countof
- #define countof(x) (sizeof((x))/sizeof(*(x)))
- 
-@@ -78,18 +107,18 @@ extern void unblock_sigchld (void);
- # define PAM_REFRESH_CRED PAM_CRED_REFRESH
- #endif
- 
--static int pam_conversation (int nmsgs,
--                             const struct pam_message **msg,
-+int pam_conversation (int nmsgs,
-+                      struct pam_message **msg,
-                              struct pam_response **resp,
-                              void *closure);
- 
- struct pam_closure {
-   const char *user;
--  const char *typed_passwd;
-+/*  const char *typed_passwd; No need for this, pam_conv should get this*/
-   Bool verbose_p;
- };
- 
--Bool pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
-+Bool pam_passwd_valid_p (void);
- Bool pam_priv_init (int argc, char **argv, Bool verbose_p);
- 
- #ifdef HAVE_PAM_FAIL_DELAY
-@@ -175,24 +204,37 @@ static void *suns_pam_implementation_blo
-    to root.
-  */
- Bool
--pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p)
-+pam_passwd_valid_p (void)
- {
-   const char *service = PAM_SERVICE_NAME;
-+  uid_t euid;
-   pam_handle_t *pamh = 0;
-   int status = -1;
-+  int pam_auth_status = 0;  /* Specific for pam_authenticate() status*/
-+  int acct_rc,setcred_rc,chauth_rc;
-   struct pam_conv pc;
-   struct pam_closure c;
-   char *user = 0;
-   sigset_t set;
-   struct timespec timeout;
-+  char* tmp_buf;
-+  int  pam_flags = 0;
-+  saver_info *si = global_si_kludge;
- 
-   struct passwd *p = getpwuid (getuid ());
-+  Bool verbose_p = si->prefs.verbose_p;
-+
-+  if (verbose_p)
-+    fprintf (stderr, "-->pam_passwd_valid_p()\n");
-+
-   if (!p) return False;
- 
-+  euid = geteuid();
-+
-   user = strdup (p->pw_name);
- 
-   c.user = user;
--  c.typed_passwd = typed_passwd;
-+/**  c.typed_passwd = typed_passwd; **/
-   c.verbose_p = verbose_p;
- 
-   pc.conv = &pam_conversation;
-@@ -202,6 +244,20 @@ pam_passwd_valid_p (const char *typed_pa
-      `closure' argument to pc.conv always comes in as random garbage. */
-   suns_pam_implementation_blows = (void *) &c;
- 
-+  if (si->prefs.verbose_p)
-+    fprintf (stderr, "Before uid=%d euid=%d \n\n", getuid(), geteuid());
-+
-+ if (seteuid (0) != 0)
-+  {
-+   if (verbose_p)
-+     perror("Could not change euid to root, pam may not work!\n");
-+  }
-+  
-+  if (verbose_p)
-+   fprintf (stderr, "After seteuid(0) uid=%d euid=%d \n\n", getuid(), geteuid());
-+
-+  if (verbose_p)
-+   fprintf (stderr, "PAM is using SERVICE_NAME=\"%s\"\n\n", service);
- 
-   /* Initialize PAM.
-    */
-@@ -210,21 +266,61 @@ pam_passwd_valid_p (const char *typed_pa
-     fprintf (stderr, "%s: pam_start (\"%s\", \"%s\", ...) ==> %d (%s)\n",
-              blurb(), service, c.user,
-              status, PAM_STRERROR (pamh, status));
--  if (status != PAM_SUCCESS) goto DONE;
-+  if (status != PAM_SUCCESS) 
-+   {
-+    we_have_pam = False;
-+    goto DONE;
-+   }
-+  else
-+    we_have_pam = True; /* if this flag is set we dont want to try shadow
-+			 * passwords, i.e. method pwent, so if pam fails
-+			 * screen remains locked.
-+      			 ***/
-+
-+/* copying from xlock */
-+
-+#ifdef sun
-+        /* Check /etc/default/login to see if we should add
-+           PAM_DISALLOW_NULL_AUTHTOK to pam_flags */
-+        if (defopen("/etc/default/login") == 0) {
-+            char *ptr;
-+            int flags = defcntl(DC_GETFLAGS, 0);
-+            TURNOFF(flags, DC_CASE);
-+            (void) defcntl(DC_SETFLAGS, flags);
-+            if ((ptr = defread("PASSREQ=")) != NULL &&
-+              strcasecmp("YES", ptr) == 0) {
-+                pam_flags |= PAM_DISALLOW_NULL_AUTHTOK;
-+            }
-+
-+            (void) defopen((char *)NULL); /* close current file */
-+        }
-+#endif
- 
-   /* #### We should set PAM_TTY to the display we're using, but we
-      don't have that handy from here.  So set it to :0.0, which is a
-      good guess (and has the bonus of counting as a "secure tty" as
-      far as PAM is concerned...)
-    */
-+
-+/* From the pam trace and log file, it is found out that the 
-+   Sun pam modules can drive itself.
-+*/
-+
-+#if 0
-+
-   {
--    char *tty = strdup (":0.0");
-+    char *tty,*displayname;
-+    if ((displayname = getenv ("DISPLAY")) != NULL)
-+        tty = strdup(displayname);
-+    else
-+   	tty = strdup (":0.0");
-     status = pam_set_item (pamh, PAM_TTY, tty);
-     if (verbose_p)
-       fprintf (stderr, "%s:   pam_set_item (p, PAM_TTY, \"%s\") ==> %d (%s)\n",
-                blurb(), tty, status, PAM_STRERROR(pamh, status));
-     free (tty);
-   }
-+#endif
- 
-   /* Try to authenticate as the current user.
-      We must turn off our SIGCHLD handler for the duration of the call to
-@@ -248,29 +344,104 @@ pam_passwd_valid_p (const char *typed_pa
- 
-   PAM_NO_DELAY(pamh);
- 
-+/************* no need
-+  fprintf(stderr,"before calling pam_authenticate passwd_string: %s\n",si->pw_data->passwd_string);
-+  if (si->pw_data->passwd_string)
-+****************************/
-+   {
-+
-+  
-   timeout.tv_sec = 0;
-   timeout.tv_nsec = 1;
-   set = block_sigchld();
--  status = pam_authenticate (pamh, 0);
-+  pam_auth_status = pam_authenticate (pamh, 0);
-   sigtimedwait (&set, NULL, &timeout);
-   unblock_sigchld();
- 
-+     /* Send status message to unlock dialog ***/
-+     if (pam_auth_status == PAM_SUCCESS)
-+      {
-+        write_to_child (si, "pw_ok");
-+        tmp_buf = (char*)PAM_STRERROR(pamh, pam_auth_status);
-+        write_to_child (si, tmp_buf);
-+        if (verbose_p)
-+          sleep (1);
-+      }
-+     else
-+      {
-+        write_to_child (si, "pw_fail");
-+        tmp_buf = (char*)PAM_STRERROR(pamh, pam_auth_status);
-+        write_to_child (si, tmp_buf);
-+        if (verbose_p)
-+          sleep (1);
-+        else
-+          usleep (500000); /*sleep for 1/2 of sec */
-+      }
-+
-+     /* PAM_SUCCESS defined to be 0 in /usr/include/security/pam_appl.h */
-+     si->pw_data->state = (pam_auth_status == PAM_SUCCESS ? pw_ok : pw_fail);
-+  if (verbose_p)
-+        fprintf(stderr,"after calling pam_authenticate status is:%d state is:%d\n",
-+			pam_auth_status,si->pw_data->state);
-+
-+     /* We get here implies regardless of success/failure nuke lock dialog */
-+     /* no..wait till pam_end..to display error msgs...destroy_passwd_window (si);**/
-+   }  
-+
-   if (verbose_p)
-     fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
-              blurb(), status, PAM_STRERROR(pamh, status));
--  if (status == PAM_SUCCESS)  /* Win! */
-+  if (pam_auth_status == PAM_SUCCESS)  /* Win! */
-     {
--      int status2;
--
--      /* We don't actually care if the account modules fail or succeed,
--       * but we need to run them anyway because certain pam modules
--       * depend on side effects of the account modules getting run.
--       */
--      status2 = pam_acct_mgmt (pamh, 0);
-+      /* perform PAM account validation procedures for login user only */
-+      acct_rc   = pam_acct_mgmt(pamh, pam_flags);
-+      
-+      /******************************************************************
-+           ignore other cases for the time being 
-+           PAM_USER_UNKNOWN, PAM_AUTH_ERR, PAM_ACCT_EXPIRED
-+           (password mgn service module)
-+           same as pam_setcred(), focus on auth. service module only
-+       *****************************************************************/
- 
-       if (verbose_p)
-         fprintf (stderr, "%s:   pam_acct_mgmt (...) ==> %d (%s)\n",
--                 blurb(), status2, PAM_STRERROR(pamh, status2));
-+                 blurb(), acct_rc, PAM_STRERROR(pamh, acct_rc));
-+
-+      /******************************************************************
-+           ignore other cases for the time being 
-+           PAM_USER_UNKNOWN, PAM_AUTH_ERR, PAM_ACCT_EXPIRED
-+           (password mgn service module)
-+           same as pam_setcred(), focus on auth. service module only
-+       *****************************************************************/
-+
-+      if (acct_rc   == PAM_NEW_AUTHTOK_REQD) {
-+	do {
-+	  chauth_rc  = pam_chauthtok(pamh, 0);
-+	} while (chauth_rc == PAM_AUTHTOK_ERR ||
-+		 chauth_rc  == PAM_TRY_AGAIN);
-+	if (verbose_p)
-+	  fprintf (stderr, "%s:   pam_chauthtok (...) ==> %d (%s)\n",
-+		   blurb(), chauth_rc, PAM_STRERROR(pamh, chauth_rc));
-+      }
-+
-+      /* Send status message to unlock dialog ***/
-+      if (acct_rc == PAM_SUCCESS)
-+	{
-+	  write_to_child (si, "pw_acct_ok");
-+	  tmp_buf = (char*)PAM_STRERROR(pamh, acct_rc);
-+	  write_to_child (si, tmp_buf);
-+	  if (verbose_p)
-+	    sleep (1);
-+	}
-+      else
-+	{
-+	  write_to_child (si, "pw_acct_fail");
-+	  tmp_buf = (char*)PAM_STRERROR(pamh, acct_rc);
-+	  write_to_child (si, tmp_buf);
-+	  if (verbose_p)
-+	    sleep (1);
-+	}
-+
- 
-       /* Each time we successfully authenticate, refresh credentials,
-          for Kerberos/AFS/DCE/etc.  If this fails, just ignore that
-@@ -281,13 +452,36 @@ pam_passwd_valid_p (const char *typed_pa
-          says that the Linux PAM library ignores that one, and only refreshes
-          credentials when using PAM_REINITIALIZE_CRED.
-        */
--      status2 = pam_setcred (pamh, PAM_REINITIALIZE_CRED);
-+      setcred_rc = pam_setcred (pamh, PAM_REFRESH_CRED);
-       if (verbose_p)
-         fprintf (stderr, "%s:   pam_setcred (...) ==> %d (%s)\n",
--                 blurb(), status2, PAM_STRERROR(pamh, status2));
-+                 blurb(), setcred_rc, PAM_STRERROR(pamh, setcred_rc));
-+
-+     /* Send status message to unlock dialog ***/
-+     if (setcred_rc == PAM_SUCCESS)
-+      {
-+        write_to_child (si, "pw_setcred_ok");
-+        tmp_buf = (char*)PAM_STRERROR(pamh, setcred_rc);
-+        write_to_child (si, tmp_buf);
-+        if (verbose_p)
-+           sleep (1);
-+      }
-+     else
-+      {
-+        write_to_child (si, "pw_setcred_fail");
-+        tmp_buf = (char*)PAM_STRERROR(pamh, setcred_rc);
-+        write_to_child (si, tmp_buf);
-+        if (verbose_p)
-+          sleep (1);
-+      }
-+
-       goto DONE;
-     }
- 
-+/* security hole if root pwd is not set (or CR)
-+   cannot delete it and is user function spec.
-+*/
-+
- #ifdef ALLOW_ROOT_PASSWD
-   /* If that didn't work, set the user to root, and try to authenticate again.
-    */
-@@ -303,13 +497,28 @@ pam_passwd_valid_p (const char *typed_pa
-   PAM_NO_DELAY(pamh);
- 
-   set = block_sigchld();
--  status = pam_authenticate (pamh, 0);
-+  pam_auth_status = pam_authenticate (pamh, 0);
-   sigtimedwait(&set, NULL, &timeout);
-   unblock_sigchld();
- 
-+  /* Send status message to unlock dialog ***/
-+  if (pam_auth_status == PAM_SUCCESS)
-+    {
-+      write_to_child (si, "pw_ok");
-+      tmp_buf = strdup (_("Letting you in as ROOT!!"));
-+      write_to_child (si, tmp_buf);
-+      free (tmp_buf);
-+
-+      if (verbose_p)
-+	sleep (1);
-+    }
-+
-+  /* PAM_SUCCESS defined to be 0 in /usr/include/security/pam_appl.h */
-+  si->pw_data->state = (pam_auth_status == PAM_SUCCESS ? pw_ok : pw_fail);
-+  
-   if (verbose_p)
--    fprintf (stderr, "%s:   pam_authenticate (...) ==> %d (%s)\n",
--             blurb(), status, PAM_STRERROR(pamh, status));
-+    fprintf (stderr, "%s:   pam_authenticate as root user (...) ==> %d (%s)\n",
-+             blurb(), pam_auth_status, PAM_STRERROR(pamh, pam_auth_status));
- 
- #endif /* ALLOW_ROOT_PASSWD */
- 
-@@ -317,14 +526,45 @@ pam_passwd_valid_p (const char *typed_pa
-   if (user) free (user);
-   if (pamh)
-     {
--      int status2 = pam_end (pamh, status);
-+      int status2 = pam_end (pamh, pam_auth_status);
-       pamh = 0;
-       if (verbose_p)
-         fprintf (stderr, "%s: pam_end (...) ==> %d (%s)\n",
-                  blurb(), status2,
-                  (status2 == PAM_SUCCESS ? "Success" : "Failure"));
-     }
--  return (status == PAM_SUCCESS ? True : False);
-+  
-+
-+  if (seteuid (euid) != 0)
-+    {
-+      if (verbose_p)
-+	perror("Error pam could not revert euid to user running as euid root, locking may not work now\n");
-+    }
-+  
-+  if (verbose_p)
-+     fprintf (stderr, "<--end of pam_authenticate() returning ok_to_unblank = %d\n",
-+	      (int) ((pam_auth_status == PAM_SUCCESS) ? True:False));
-+
-+  /* Now destroy unlock dialog window created in pam_conv func ***/
-+
-+  destroy_passwd_window (si);
-+  usleep (250000); /* if repeatedly tried to unlock dialog with bad passwd,
-+		    * old dialog doesnt get completely unmapped before new
-+		    * one posts, this should help the unmapping to go through
-+		    * before new one is posted
-+		    */
-+  XSync (si->dpy, False);
-+
-+  if (si->pw_data->passwd_string)
-+    {
-+      free (si->pw_data->passwd_string); 
-+      si->pw_data->passwd_string = 0;
-+    }
-+
-+  if (pam_auth_status == PAM_SUCCESS) 
-+    return (True);
-+  else 
-+    return (False);
- }
- 
- 
-@@ -344,6 +584,11 @@ pam_priv_init (int argc, char **argv, Bo
-   const char file2[] = "/etc/pam.conf";
-   struct stat st;
- 
-+  if (! verbose_p)	/* SUN addition: only print warnings in verbose mode */
-+    {			/* since they are rarely useful and mostly just      */
-+      return True;	/* cause confusion when users see them.		     */
-+    }
-+
- # ifndef S_ISDIR
- #  define S_ISDIR(mode) (((mode) & S_IFMT) == S_IFDIR)
- # endif
-@@ -370,6 +615,9 @@ pam_priv_init (int argc, char **argv, Bo
-                 break;
-               }
-           fclose (f);
-+          
-+/* 
-+** comment out the misleading message
-           if (!ok)
-             {
-               fprintf (stderr,
-@@ -377,9 +625,12 @@ pam_priv_init (int argc, char **argv, Bo
-                   "%s: password authentication via PAM is unlikely to work.\n",
-                        blurb(), file2, PAM_SERVICE_NAME, blurb());
-             }
-+*/
-         }
-       /* else warn about file2 existing but being unreadable? */
-     }
-+/*
-+** comment out the misleading message
-   else
-     {
-       fprintf (stderr,
-@@ -387,6 +638,7 @@ pam_priv_init (int argc, char **argv, Bo
-                "%s: password authentication via PAM is unlikely to work.\n",
-                blurb(), file2, file, blurb());
-     }
-+*/
- 
-   /* Return true anyway, just in case. */
-   return True;
-@@ -407,67 +659,144 @@ pam_priv_init (int argc, char **argv, Bo
-    would never see this string, and the prompted-for password would be
-    ignored.
-  */
--static int
-+int
- pam_conversation (int nmsgs,
--                  const struct pam_message **msg,
-+                  struct pam_message **msg,
-                   struct pam_response **resp,
-                   void *closure)
- {
-   int replies = 0;
-   struct pam_response *reply = 0;
-   struct pam_closure *c = (struct pam_closure *) closure;
-+  saver_info *si = global_si_kludge;
- 
-   /* On SunOS 5.6, the `closure' argument always comes in as random garbage. */
-   c = (struct pam_closure *) suns_pam_implementation_blows;
- 
-+  if (c->verbose_p)
-+     fprintf(stderr, "-->pam_conv() \n");
- 
-   reply = (struct pam_response *) calloc (nmsgs, sizeof (*reply));
-   if (!reply) return PAM_CONV_ERR;
- 	
-   for (replies = 0; replies < nmsgs; replies++)
-     {
-+     /* Means pam requires interaction..spawn dialog dont use unlock_p() here
-+      * Another issue is pam conv can be called many times by pam, for pam_auth
-+      * and then again for pam_setcred etc.. so make sure we dont keep creating
-+      * multiple copies of dialog. 
-+      */
-+        if (!g_passwd_dialog_created)
-+         {
-+           make_passwd_window (si);
-+         }
-+
-+/**fprintf(stderr, "top of switch %d\n", replies);**/
-       switch (msg[replies]->msg_style)
-         {
-         case PAM_PROMPT_ECHO_ON:
--          reply[replies].resp_retcode = PAM_SUCCESS;
--          reply[replies].resp = strdup (c->user);	   /* freed by PAM */
--          if (c->verbose_p)
--            fprintf (stderr, "%s:     PAM ECHO_ON(\"%s\") ==> \"%s\"\n",
--                     blurb(), msg[replies]->msg,
--                     reply[replies].resp);
--          break;
-         case PAM_PROMPT_ECHO_OFF:
--          reply[replies].resp_retcode = PAM_SUCCESS;
--          reply[replies].resp = strdup (c->typed_passwd);   /* freed by PAM */
-+         {
-           if (c->verbose_p)
-             fprintf (stderr, "%s:     PAM ECHO_OFF(\"%s\") ==> password\n",
-                      blurb(), msg[replies]->msg);
--          break;
--        case PAM_TEXT_INFO:
--          /* ignore it... */
-+
-+          /**fprintf(stderr, "PAM_ECHO_OFF/ECHO_ON nmsgs=%d\n",nmsgs);**/
-+
-+             write_to_child (si, msg[replies]->msg);
-+             if (c->verbose_p)
-+              sleep (1); /* let user see these */
-+
-+             if (c->verbose_p)
-+                fprintf(stderr, "PAM_ECHO_OFF/ECHO_ON msg[replies]-> %s\n",
-+					msg[replies]->msg);
-+
-+             si->pw_data->state = pw_read;
-+             while (!si->pw_data->got_windowid && si->pw_data->state == pw_read)
-+              {
-+               if (c->verbose_p)
-+                 fprintf(stderr,"WAiting for window id from lock dialog\n");
-+               handle_typeahead (si);
-+               passwd_event_loop (si);
-+               if (c->verbose_p)
-+                 fprintf(stderr,"<---passwd_event_loop() state =%d\n",si->pw_data->state);
-+              }
-+
-           reply[replies].resp_retcode = PAM_SUCCESS;
--          reply[replies].resp = 0;
-+
-+             /*Make sure user inputs a response..and dialog is not timiing out **/
-+             if (si->pw_data->state != pw_time && si->pw_data->passwd_string != NULL)
-+              {
-+               reply[replies].resp = strdup (si->pw_data->passwd_string);/*freed by PAM*/
-           if (c->verbose_p)
--            fprintf (stderr, "%s:     PAM TEXT_INFO(\"%s\") ==> ignored\n",
--                     blurb(), msg[replies]->msg);
-+                 fprintf(stderr, "in ECHO OFF and got a passwd..:%s\n",
-+                                       si->pw_data->passwd_string);
-+              }
-+             else /* Perhaps user does not want to enter input, dialog times out */
-+              {
-+               /* this shouldnt happen...perhaps sending null passwd to pam is 
-+	        * best for now**/
-+               /* reply[replies].resp = 0;Dont send any resp*/ /* freed by PAM */
-+               /* Reset state to fail */
-+               si->pw_data->state = pw_fail;
-+
-+               if (c->verbose_p)
-+                {
-+                  fprintf(stderr, "Dude sending null password to pam..\n");
-+                  fprintf(stderr,"We didnt receive any input from user!!!\n");
-+                }
-+              }
-           break;
-+         }
-+        case PAM_TEXT_INFO:
-         case PAM_ERROR_MSG:
--          /* ignore it... */
--          reply[replies].resp_retcode = PAM_SUCCESS;
--          reply[replies].resp = 0;
-+	{
-+	 char* tmp_msg;
-+
-+          /* display messages coming from pam... */
-+          /* we should have dialog up still to show this */
-           if (c->verbose_p)
--            fprintf (stderr, "%s:     PAM ERROR_MSG(\"%s\") ==> ignored\n",
--                     blurb(), msg[replies]->msg);
-+            fprintf(stderr, "PAM_ERROR/PAM_TEXT_INFO nmsgs=%d\n",nmsgs);
-+          if (!g_passwd_dialog_created)
-+           {
-+            make_passwd_window (si);
-+            /*sleep (1);*/ /*make sure window is created by now **/
-+           }
-+          tmp_msg = strdup (msg[replies]->msg);
-+          write_to_child (si, tmp_msg);
-+          sleep(1);
-+
-+          if (c->verbose_p)
-+            fprintf(stderr, "PAM_ERROR/PAM_TEXT_INFO msg[%d]-> %s\n",
-+					replies,msg[replies]->msg);
-+
-+          reply[replies].resp_retcode = PAM_CONV_ERR;
-+          /*reply[replies].resp = 0;*/
-+          /* Reset state to read */
-+          si->pw_data->state = pw_read;
-+
-+          free(tmp_msg);
-           break;
-+	}
-+
-         default:
--          /* Must be an error of some sort... */
--          free (reply);
-+
-+         {
-+           int i;
-           if (c->verbose_p)
--            fprintf (stderr, "%s:     PAM unknown %d(\"%s\") ==> ignored\n",
-+            fprintf (stderr, "%s:     PAM unknown %d(\"%s\") ==> ERROR..default case:\n",
-                      blurb(), msg[replies]->msg_style, msg[replies]->msg);
-+          /* Must be an error of some sort... */
-+            for (i = 0; i < replies; i++)
-+                    if (reply[replies].resp != NULL)
-+                            free (reply[replies].resp);
-+            free (reply);
-+            reply = NULL;
-           return PAM_CONV_ERR;
--        }
--    }
-+
-+          } /* end default */
-+        } /* end switch */
-+    } /* end for loop */
-   *resp = reply;
-   return PAM_SUCCESS;
- }
-diff -urp -x '*~' driver/passwd.c driver/passwd.c
---- driver/passwd.c	2006-05-16 19:14:58.000000000 -0700
-+++ driver/passwd.c	2006-09-19 17:08:15.073303000 -0700
-@@ -49,11 +49,11 @@ struct auth_methods {
- 
- #ifdef HAVE_KERBEROS
- extern Bool kerberos_lock_init (int argc, char **argv, Bool verbose_p);
--extern Bool kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
-+extern Bool kerberos_passwd_valid_p (const char *typed_passwd, Bool verbose_p, int whichService);
- #endif
- #ifdef HAVE_PAM
- extern Bool pam_priv_init (int argc, char **argv, Bool verbose_p);
--extern Bool pam_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
-+extern Bool pam_passwd_valid_p (void);
- #endif
- #ifdef PASSWD_HELPER_PROGRAM
- extern Bool ext_priv_init (int argc, char **argv, Bool verbose_p);
-@@ -61,7 +61,7 @@ extern Bool ext_passwd_valid_p (const ch
- #endif
- extern Bool pwent_lock_init (int argc, char **argv, Bool verbose_p);
- extern Bool pwent_priv_init (int argc, char **argv, Bool verbose_p);
--extern Bool pwent_passwd_valid_p (const char *typed_passwd, Bool verbose_p);
-+extern Bool pwent_passwd_valid_p (const char *typed_passwd, Bool verbose_p, int whichService);
- 
- Bool lock_priv_init (int argc, char **argv, Bool verbose_p);
- Bool lock_init (int argc, char **argv, Bool verbose_p);
-@@ -80,13 +80,14 @@ struct auth_methods methods[] = {
- # ifdef HAVE_PAM
-   { "PAM",              0, pam_priv_init, pam_passwd_valid_p, 
-                         False, False },
--# endif
-+# else    /* If we dont have PAM only then fall back to shadow passwords authentication */
- # ifdef PASSWD_HELPER_PROGRAM
-   { "external",		0, ext_priv_init, ext_passwd_valid_p,
-   			False, False },
- #endif
-   { "normal",           pwent_lock_init, pwent_priv_init, pwent_passwd_valid_p,
-                         False, False }
-+# endif
- };
- 
- 
-diff -urp -x '*~' driver/setuid.c driver/setuid.c
---- driver/setuid.c	2006-02-08 18:33:29.000000000 -0800
-+++ driver/setuid.c	2006-09-19 17:08:15.073889000 -0700
-@@ -15,6 +15,7 @@
- #endif
- 
- #include <X11/Xlib.h>		/* not used for much... */
-+#include <X11/Intrinsic.h>		/* not used for much... */
- 
- /* This file doesn't need the Xt headers, so stub these types out... */
- #undef XtPointer
-@@ -145,7 +146,10 @@ set_ids_by_number (uid_t uid, gid_t gid,
-     gid_errno = errno ? errno : -1;
- 
-   errno = 0;
--  if (setuid (uid) != 0)
-+/*mali  if (setuid (uid) != 0)**we need root privs back at pam_authenticate
-+  this is causing to loose root priv for good, not good **/
-+
-+ if (seteuid (uid) != 0)
-     uid_errno = errno ? errno : -1;
- 
-   if (uid_errno == 0 && gid_errno == 0 && sgs_errno == 0)
-diff -urp -x '*~' driver/subprocs.c driver/subprocs.c
---- driver/subprocs.c	2006-09-19 17:08:10.188909000 -0700
-+++ driver/subprocs.c	2006-09-19 17:08:15.079767000 -0700
-@@ -20,6 +20,7 @@
- #include <string.h>
- 
- #include <X11/Xlib.h>		/* not used for much... */
-+#include <X11/Intrinsic.h>		/* not used for much... */
- 
- #ifndef ESRCH
- # include <errno.h>
-@@ -243,7 +244,7 @@ show_job_list (void)
- 
- static void clean_job_list (void);
- 
--static struct screenhack_job *
-+struct screenhack_job *
- make_job (pid_t pid, int screen, const char *cmd)
- {
-   struct screenhack_job *job = (struct screenhack_job *) malloc (sizeof(*job));
-@@ -391,7 +392,7 @@ unblock_sigchld (void)
-   block_sigchld_handler--;
- }
- 
--static int
-+int
- kill_job (saver_info *si, pid_t pid, int signal)
- {
-   saver_preferences *p = &si->prefs;
-@@ -574,9 +575,14 @@ describe_dead_child (saver_info *si, pid
- 	 mention them) if we've just killed the subprocess.  But mention them
- 	 if they happen on their own.
-        */
--      if (!job ||
--	  (exit_status != 0 &&
--	   (p->verbose_p || job->status != job_killed)))
-+
-+      if ((!job 
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+	   && kid != si->passwd_pid
-+#endif /* HAVE_XSCREENSAVER_LOCK */
-+	      ) ||
-+	   (exit_status != 0 &&
-+	    (p->verbose_p || (job && job->status != job_killed))))
-         {
-           /* Don't call fprintf() from signal handlers, as it might malloc.
- 	  fprintf (stderr,
-@@ -616,8 +622,12 @@ describe_dead_child (saver_info *si, pid
-   else if (WIFSIGNALED (wait_status))
-     {
-       if (p->verbose_p ||
--	  !job ||
--	  job->status != job_killed ||
-+	  (!job
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+	   && kid != si->passwd_pid
-+#endif /* HAVE_XSCREENSAVER_LOCK */
-+		  ) ||
-+	  (job && job->status != job_killed) ||
- 	  WTERMSIG (wait_status) != SIGTERM)
-         {
-           /* Don't call fprintf() from signal handlers, as it might malloc.
-@@ -685,12 +695,23 @@ describe_dead_child (saver_info *si, pid
-   /* Clear out the pid so that screenhack_running_p() knows it's dead.
-    */
-   if (!job || job->status == job_dead)
-+    {
-     for (i = 0; i < si->nscreens; i++)
-       {
- 	saver_screen_info *ssi = &si->screens[i];
- 	if (kid == ssi->pid)
- 	  ssi->pid = 0;
-       }
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+      if (kid == si->passwd_pid)
-+	{
-+/*unsafe	  if (p->verbose_p)
-+	    fprintf (stderr, "passwd dialog died!\n");
-+**/
-+	  si->passwd_pid = 0;
-+	}
-+#endif
-+    }
- }
- 
- #else  /* VMS */
-diff -urp -x '*~' driver/timers.c driver/timers.c
---- driver/timers.c	2005-11-28 02:14:22.000000000 -0800
-+++ driver/timers.c	2006-09-19 17:08:15.080886000 -0700
-@@ -60,6 +60,12 @@ static Bool proc_interrupts_activity_p (
- #endif /* HAVE_PROC_INTERRUPTS */
- 
- static void check_for_clock_skew (saver_info *si);
-+static void watchdog_timer (XtPointer closure, XtIntervalId *id);
-+extern Bool g_passwd_dialog_created;
-+extern Bool ok_to_unblank;
-+extern Bool pam_passwd_valid_p(void);
-+extern Bool blank_screen (saver_info *si);
-+extern void unblank_screen (saver_info *si);
- 
- 
- void
-@@ -255,7 +261,8 @@ cycle_timer (XtPointer closure, XtInterv
-        crash.  So, restart the thing once an hour. */
-     how_long = 1000 * 60 * 60;
- 
--  if (si->dbox_up_p)
-+/**mali99  if (si->dbox_up_p)*/
-+   if (si->external_passwd)
-     {
-       if (p->verbose_p)
- 	fprintf (stderr, "%s: dialog box up; delaying hack change.\n",
-@@ -303,8 +310,20 @@ activate_lock_timer (XtPointer closure, 
-   saver_preferences *p = &si->prefs;
- 
-   if (p->verbose_p)
--    fprintf (stderr, "%s: timed out; activating lock.\n", blurb());
-+    fprintf (stderr, "-->activate_lock_timer() %s: timed out; activating lock.\n", 
-+					blurb());
-+  if (si->screen_blanked_p) /* Make sure screen is blanked before posting dialogbox*/
-+   {
-   set_locked_p (si, True);
-+    ok_to_unblank = pam_passwd_valid_p();
-+    if (ok_to_unblank == True) 
-+     {
-+      set_locked_p(si,False);
-+      unblank_screen(si);
-+}
-+   }
-+  else /* blanking of screen failed reset lock flag */
-+    set_locked_p (si, False);
- }
- 
- 
-@@ -799,7 +818,10 @@ sleep_until_idle (saver_info *si, Bool u
- 
-       case ClientMessage:
- 	if (handle_clientmessage (si, &event, until_idle_p))
-+         {
-+          si->emergency_lock_p = True;
- 	  goto DONE;
-+         }
- 	break;
- 
-       case CreateNotify:
-@@ -812,8 +834,47 @@ sleep_until_idle (saver_info *si, Bool u
- 	  }
- 	break;
- 
-+      case VisibilityNotify:
-+	{
-+	  int k;
-+
-+          if (p->debug_p)
-+	   {
-+            fprintf(stderr,"************************************\n");
-+	    fprintf(stderr,"-->sleep_until_idle() event:VisibilityNotify\n"); 
-+            fprintf(stderr,"\t Window of VisibilityNotify:%x\n",
-+				event.xvisibility.window);
-+            fprintf(stderr,"\t until_idle_p=%d g_passwd_dialog_created=%d\n",
-+				until_idle_p, g_passwd_dialog_created);
-+	    fflush(stderr);
-+	   }
-+
-+	  /*Dont raise root window when passwd dialog wants to come up */
-+	  if (g_passwd_dialog_created == 0 && !until_idle_p)
-+	    {
-+	      if (event.xvisibility.state != VisibilityUnobscured)
-+		{
-+		  for (k = 0; k < si->nscreens; k++)
-+		    {
-+		      saver_screen_info *ssi = &si->screens[k];
-+		      XClearWindow (si->dpy, ssi->screensaver_window);
-+		      clear_stderr (ssi);
-+		      XMapRaised (si->dpy, ssi->screensaver_window);
-+		    }
-+		  if (p->debug_p)
-+		    {
-+		      fprintf (stderr,"A window is trying to popup.\n");
-+		      fprintf(stderr, "Raising saver root Window.\n");
-+		      fprintf(stderr,"************************************\n");
-+		      fflush(stderr);
-+		    }
-+		}
-+	    }
-+	  break;
-+	} 
-+
-       case KeyPress:
--      case KeyRelease:
-+/*mali99      case KeyRelease:**/
-       case ButtonPress:
-       case ButtonRelease:
-       case MotionNotify:
-@@ -1380,7 +1441,8 @@ watchdog_timer (XtPointer closure, XtInt
-     {
-       Bool running_p = screenhack_running_p (si);
- 
--      if (si->dbox_up_p)
-+      /**mali9 if (si->dbox_up_p)****/
-+      if (si->external_passwd)
-         {
-           if (si->prefs.debug_p)
-             fprintf (stderr, "%s: dialog box is up: not raising screen.\n",
-diff -urp -x '*~' driver/windows.c driver/windows.c
---- driver/windows.c	2006-05-14 22:13:54.000000000 -0700
-+++ driver/windows.c	2006-09-19 17:08:15.082113000 -0700
-@@ -35,6 +35,7 @@
- #include <X11/Xutil.h>		/* for XSetClassHint() */
- #include <X11/Xatom.h>
- #include <X11/Xos.h>		/* for time() */
-+#include <X11/Intrinsic.h>
- #include <signal.h>		/* for the signal names */
- #include <time.h>
- #include <sys/time.h>
-@@ -1411,6 +1412,7 @@ initialize_screensaver_window_1 (saver_s
-    */
-   attrs.event_mask = (KeyPressMask | KeyReleaseMask |
- 		      ButtonPressMask | ButtonReleaseMask |
-+		      VisibilityChangeMask |
- 		      PointerMotionMask);
- 
-   attrs.backing_store = NotUseful;
-@@ -1713,6 +1715,9 @@ raise_window (saver_info *si,
-   saver_preferences *p = &si->prefs;
-   int i;
- 
-+  if (p->verbose_p)
-+      fprintf(stderr,"-->raise_window()\n");
-+
-   if (si->demoing_p)
-     inhibit_fade = True;
- 
-@@ -1927,6 +1932,9 @@ unblank_screen (saver_info *si)
-   Bool unfade_p = (si->fading_possible_p && p->unfade_p);
-   int i;
- 
-+  if (p->verbose_p)
-+      fprintf(stderr,"-->unblank_screen()\n");
-+
-   monitor_power_on (si);
-   reset_watchdog_timer (si, False);
- 
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-09-19 17:08:10.214882000 -0700
-+++ driver/xscreensaver.c	2006-09-19 17:08:15.095484000 -0700
-@@ -177,8 +177,21 @@
- #include "visual.h"
- #include "usleep.h"
- 
-+extern Bool pam_passwd_valid_p ();
-+
- saver_info *global_si_kludge = 0;	/* I hate C so much... */
- 
-+/* Globals */
-+Bool ok_to_unblank = False;
-+
-+/* Global storage for gtk passwd lock dialog 
-+ * we assign this to si->pw_data and this is needed
-+ * to set user/passwd labels on gtk lock dialog by
-+ * pam conv function.
-+ */
-+passwd_dialog_data mygtkpwd;
-+passwd_dialog_data *ptr_mygtkpwd = &mygtkpwd;
-+
- char *progname = 0;
- char *progclass = 0;
- XrmDatabase db = 0;
-@@ -189,6 +202,7 @@ static Atom XA_ACTIVATE, XA_DEACTIVATE, 
- static Atom XA_RESTART, XA_SELECT;
- static Atom XA_THROTTLE, XA_UNTHROTTLE;
- Atom XA_DEMO, XA_PREFS, XA_EXIT, XA_LOCK, XA_BLANK;
-+Atom XA_UNLOCK_RATIO;
- 
- 
- static XrmOptionDescRec options [] = {
-@@ -589,6 +603,7 @@ connect_to_server (saver_info *si, int *
-   XA_BLANK = XInternAtom (si->dpy, "BLANK", False);
-   XA_THROTTLE = XInternAtom (si->dpy, "THROTTLE", False);
-   XA_UNTHROTTLE = XInternAtom (si->dpy, "UNTHROTTLE", False);
-+  XA_UNLOCK_RATIO = XInternAtom (si->dpy, "UNLOCK_RATIO", False);
- 
-   return toplevel_shell;
- }
-@@ -1122,7 +1137,7 @@ static void
- main_loop (saver_info *si)
- {
-   saver_preferences *p = &si->prefs;
--  Bool ok_to_unblank;
-+  /* Bool ok_to_unblank; made this a global flag, gets set in timers.c */
- 
-   while (1)
-     {
-@@ -1153,6 +1168,14 @@ main_loop (saver_info *si)
-             fprintf (stderr, "%s: idle with blanking disabled at %s.\n",
-                      blurb(), timestring());
- 
-+          /* mali Bug 6221109 Changing mode from disable to anything else,doesnt lock screen.
-+           * This is Disable Screen Saver mode, in this mode we dont lock screen
-+           * but si->locked_p is already set to True, since someone tried to lock screen,
-+           * reset it to False, else when we change mode from disable and try to lock screen,
-+           * xscreensaver thinks screen is already locked and doesnt lock screen anymore.
-+           */
-+          set_locked_p (si, False);
-+
-           /* Go around the loop and wait for the next bout of idleness,
-              or for the init file to change, or for a remote command to
-              come in, or something.
-@@ -1214,6 +1237,7 @@ main_loop (saver_info *si)
-                        blurb());
- 
-               schedule_wakeup_event (si, retry, p->debug_p);
-+              set_locked_p(si, False);
-               continue;
-             }
-         }
-@@ -1259,7 +1283,17 @@ main_loop (saver_info *si)
-             p->lock_p &&                /* and locking is enabled */
-             !si->locking_disabled_p &&  /* and locking is possible */
-             lock_timeout == 0)          /* and locking is not timer-deferred */
-+         {
-+          if (p->debug_p)
-+            fprintf(stderr, "going to lock screen B\n");
-           set_locked_p (si, True);      /* then lock right now. */
-+          ok_to_unblank = pam_passwd_valid_p();
-+          if (ok_to_unblank == True)
-+           {
-+            set_locked_p (si, False);
-+            goto DONE;
-+           }
-+         }
- 
-         /* locked_p might be true already because of the above, or because of
-            the LOCK ClientMessage.  But if not, and if we're supposed to lock
-@@ -1274,10 +1308,7 @@ main_loop (saver_info *si)
-       }
- #endif /* !NO_LOCKING */
- 
--
--      ok_to_unblank = True;
-       do {
--
-         check_for_leaks ("blanked A");
- 	sleep_until_idle (si, False);		/* until not idle */
-         check_for_leaks ("blanked B");
-@@ -1287,6 +1318,12 @@ main_loop (saver_info *si)
- #ifndef NO_LOCKING
-         /* Maybe unlock the screen.
-          */
-+        if (si->demoing_p) goto DONE; /*in demoing mode and user wants out unblankscreen */
-+
-+        /* This is when blank timeout has happened but lock timeout hasnt and user
-+         * gets active. Simply get him out of the blank screen */
-+        if (si->screen_blanked_p && !si->locked_p) goto DONE;
-+
- 	if (si->locked_p)
- 	  {
- 	    saver_screen_info *ssi = si->default_screen;
-@@ -1297,7 +1334,20 @@ main_loop (saver_info *si)
- 	    suspend_screenhack (si, True);
- 	    XUndefineCursor (si->dpy, ssi->screensaver_window);
- 
-+#ifdef	HAVE_XSCREENSAVER_LOCK    
-+            /*Prevents lock dialog posting on non blanked screen */
-+            if (!si->screen_blanked_p)  /*locked_p is true, so blank now*/
-+	      blank_screen (si);
-+            if (si->screen_blanked_p) /* if blanking successful, call PAM*/
-+	      {
-+		set_locked_p (si, True);
-+		ok_to_unblank = pam_passwd_valid_p();
-+	      }
-+	    else /* blanking failed, probably couldnt grab keyboard/mouse */
-+	      set_locked_p (si, False);
-+#else
- 	    ok_to_unblank = unlock_p (si);
-+#endif
- 
- 	    si->dbox_up_p = False;
- 	    XDefineCursor (si->dpy, ssi->screensaver_window, ssi->cursor);
-@@ -1321,6 +1371,7 @@ main_loop (saver_info *si)
- 
- 	} while (!ok_to_unblank);
- 
-+DONE:
- 
-       if (p->verbose_p)
- 	fprintf (stderr, "%s: unblanking screen at %s.\n",
-@@ -1377,6 +1428,11 @@ main (int argc, char **argv)
-   int i;
- 
-   memset(si, 0, sizeof(*si));
-+
-+/* Initialize and point si to pw_data i.e. the lock dialog struct */
-+  memset(ptr_mygtkpwd, 0, sizeof(*ptr_mygtkpwd));
-+  si->pw_data = ptr_mygtkpwd;
-+
-   global_si_kludge = si;	/* I hate C so much... */
- 
-   fix_fds();
-@@ -1386,7 +1442,7 @@ main (int argc, char **argv)
- 
-   save_argv (argc, argv);
-   set_version_string (si, &argc, argv);
--  privileged_initialization (si, &argc, argv);
-+/*oldplace  privileged_initialization (si, &argc, argv);*/
-   hack_environment (si);
- 
-   shell = connect_to_server (si, &argc, argv);
-@@ -1394,6 +1450,8 @@ main (int argc, char **argv)
-   print_banner (si);
- 
-   load_init_file(si->dpy, p); /* must be before initialize_per_screen_info() */
-+  privileged_initialization (si, &argc, argv);
-+
-   blurb_timestamp_p = p->timestamp_p;  /* kludge */
-   initialize_per_screen_info (si, shell); /* also sets si->fading_possible_p */
- 
-@@ -1439,6 +1497,7 @@ main (int argc, char **argv)
-   handle_signals (si);
- 
-   make_splash_dialog (si);
-+  /*spawn_external_passwd_process (si);*/
- 
-   main_loop (si);		/* doesn't return */
-   return 0;
-@@ -1631,13 +1690,18 @@ handle_clientmessage (saver_info *si, XE
-   Atom type = 0;
-   Window window = event->xclient.window;
- 
-+  if (p->verbose_p) 
-+     fprintf(stderr, "handle_clientmessage\n");
-+
-   /* Preferences might affect our handling of client messages. */
-   maybe_reload_init_file (si);
-+  XFlush (si->dpy);
-+  XSync (si->dpy, False);
- 
-   if (event->xclient.message_type != XA_SCREENSAVER ||
-       event->xclient.format != 32)
-     {
--      bogus_clientmessage_warning (si, event);
-+      /*bogus_clientmessage_warning (si, event); mali */
-       return False;
-     }
- 
-@@ -1901,10 +1965,17 @@ handle_clientmessage (saver_info *si, XE
- 			    : "locking.");
- 	  sprintf (buf, "LOCK ClientMessage received; %s", response);
- 	  clientmessage_response (si, window, False, buf, response);
-+
-+          if (p->verbose_p)
-+             fprintf(stderr, "going to lock screen A\n");
-+
- 	  set_locked_p (si, True);
-+          si->emergency_lock_p = True;
- 	  si->selection_mode = 0;
- 	  si->demoing_p = False;
- 
-+          return True; /* dont set lock_id to 0, causes to go in lock in main_loop above */
-+
- 	  if (si->lock_id)	/* we're doing it now, so lose the timeout */
- 	    {
- 	      XtRemoveTimeOut (si->lock_id);
-diff -urp -x '*~' driver/xscreensaver.h driver/xscreensaver.h
---- driver/xscreensaver.h	2006-02-03 23:38:06.000000000 -0800
-+++ driver/xscreensaver.h	2006-09-19 17:08:15.096225000 -0700
-@@ -126,6 +126,15 @@ struct saver_info {
- 				   privileged user. */
- 
-   Window passwd_dialog;		/* The password dialog, if its up. */
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+  pid_t passwd_pid;             /* The pid of the password dialog if
-+				   we ran an external process for
-+				   it. */
-+  Bool external_passwd;
-+  Bool at_external_passwd;	/* AT-enabled, bugid 
-+				5059445(p3) screen kb and reader support
-+				*/
-+#endif /* HAVE_XSCREENSAVER_LOCK */
-   passwd_dialog_data *pw_data;	/* Other info necessary to draw it. */
- 
-   int unlock_failures;		/* Counts failed login attempts while the
-@@ -348,7 +357,7 @@ extern void get_screen_viewport (saver_s
- extern Bool unlock_p (saver_info *si);
- extern Bool lock_priv_init (int argc, char **argv, Bool verbose_p);
- extern Bool lock_init (int argc, char **argv, Bool verbose_p);
--extern Bool passwd_valid_p (const char *typed_passwd, Bool verbose_p);
-+extern Bool passwd_valid_p (void);
- #endif /* NO_LOCKING */
- 
- extern void set_locked_p (saver_info *si, Bool locked_p);
-@@ -356,6 +365,109 @@ extern int move_mouse_grab (saver_info *
-                             int to_screen_no);
- extern int mouse_screen (saver_info *si);
- 
-+/* =======================================================================
-+   For lock.c
-+   ======================================================================= */
-+
-+enum window_type { w_dialog, w_message };
-+
-+enum passwd_state { pw_read, pw_ok, pw_null, pw_fail, pw_cancel, pw_time };
-+
-+struct passwd_dialog_data {
-+
-+  saver_screen_info *prompt_screen;
-+  int previous_mouse_x, previous_mouse_y;
-+
-+  enum passwd_state state;
-+  char typed_passwd [80];
-+
-+  enum window_type  w_type;
-+
-+  XtIntervalId timer;
-+  int i_beam;
-+
-+  float ratio;
-+  Position x, y;
-+  Dimension width;
-+  Dimension height;
-+  Dimension border_width;
-+
-+  Bool show_stars_p; /* "I regret that I have but one asterisk for my country."
-+                        -- Nathan Hale, 1776. */
-+
-+  char *heading_label;
-+  char *body_label;
-+  /*
-+   * For message dialog the body label may contain more than
-+   * one line of text
-+   */
-+  char **message_body_label;
-+
-+  char *user_label;
-+  char *passwd_label;
-+  char *date_label;
-+  char *user_string;
-+  char *passwd_string;
-+  char *login_label;
-+  char *uname_label;
-+
-+  Bool show_uname_p;
-+
-+  XFontStruct *heading_font;
-+  XFontStruct *body_font;
-+  XFontStruct *label_font;
-+  XFontStruct *passwd_font;
-+  XFontStruct *date_font;
-+  XFontStruct *button_font;
-+  XFontStruct *uname_font;
-+
-+  Pixel foreground;
-+  Pixel background;
-+  Pixel passwd_foreground;
-+  Pixel passwd_background;
-+  Pixel thermo_foreground;
-+  Pixel thermo_background;
-+  Pixel shadow_top;
-+  Pixel shadow_bottom;
-+  Pixel button_foreground;
-+  Pixel button_background;
-+
-+  Dimension logo_width;
-+  Dimension logo_height;
-+  Dimension thermo_width;
-+  Dimension internal_border;
-+  Dimension shadow_width;
-+
-+  Dimension passwd_field_x, passwd_field_y;
-+  Dimension passwd_field_width, passwd_field_height;
-+
-+  Dimension login_button_x, login_button_y;
-+  Dimension login_button_width, login_button_height;
-+
-+  Dimension thermo_field_x, thermo_field_y;
-+  Dimension thermo_field_height;
-+
-+  Pixmap logo_pixmap;
-+  Pixmap logo_clipmask;
-+  int logo_npixels;
-+  unsigned long *logo_pixels;
-+
-+  Cursor passwd_cursor;
-+  Bool login_button_down_p;
-+  Bool login_button_p;
-+  Bool login_button_enabled_p;
-+
-+  Pixmap save_under;
-+
-+#ifdef HAVE_XSCREENSAVER_LOCK
-+  /* extern passwd dialog stuff */
-+  XtInputId stdout_input_id;
-+  int       stdin_fd;
-+  int       stdout_fd;
-+  Bool      got_windowid;
-+  FILE     *input_file;
-+#endif
-+};
- 
- /* =======================================================================
-    runtime privileges
-diff -urp -x '*~' driver/xset.c driver/xset.c
---- driver/xset.c	2005-03-21 18:04:48.000000000 -0800
-+++ driver/xset.c	2006-09-19 17:08:15.096586000 -0700
-@@ -19,6 +19,7 @@
- #include <X11/Xutil.h>
- #include <X11/Xatom.h>
- #include <X11/Xos.h>
-+#include <X11/Intrinsic.h>
- 
- /* This file doesn't need the Xt headers, so stub these types out... */
- #undef XtPointer
--- a/open-src/app/xscreensaver/i18n.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fixes for bugs that cause problems localizing xscreensaver:
-6203951 xscreensaver-lock was not properly l10ned
-
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-08-08 15:24:55.054560000 -0700
-+++ driver/xscreensaver.c	2006-08-08 15:25:01.031812000 -0700
-@@ -142,6 +142,9 @@
- #include <ctype.h>
- #include <X11/Xlib.h>
- 
-+#include <locale.h>
-+#include <libintl.h>
-+
- #include <X11/Xlibint.h>
- 
- #include <X11/Xatom.h>
-@@ -1454,6 +1457,15 @@ main (int argc, char **argv)
-   saver_preferences *p = &si->prefs;
-   int i;
- 
-+#ifdef ENABLE_NLS
-+  if (!setlocale (LC_ALL, ""))
-+    fprintf (stderr, "locale not supported by C library\n");
-+
-+  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-+  textdomain (GETTEXT_PACKAGE);
-+  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-+#endif /* ENABLE_NLS */
-+
-   memset(si, 0, sizeof(*si));
- 
- /* Initialize and point si to pw_data i.e. the lock dialog struct */
--- a/open-src/app/xscreensaver/interference-hack.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-Backport of fix from xscreensaver-5.07 for 
-6764033 xscreensaver can SEGV running interference hack
-
---- hacks/interference.c	Thu Mar 16 15:22:40 2006
-+++ hacks/interference.c	Fri Jul 25 10:58:35 2008
-@@ -383,7 +383,7 @@
- 	dx = i*g + g/2 - c->source[k].x;
- 	dy = j*g + g/2 - c->source[k].y;
- 	dist = sqrt(dx*dx + dy*dy); /* what's the performance penalty here? */
--	result += (dist > c->radius ? 0 : c->wave_height[dist]);
-+	result += (dist >= c->radius ? 0 : c->wave_height[dist]);
-       }
-       result %= c->colors;
- 
--- a/open-src/app/xscreensaver/intltool.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
---- po/Makefile.in.in	Mon Sep 18 13:54:18 2006
-+++ po/Makefile.in.in	Mon Dec 15 15:13:15 2008
-@@ -84,6 +84,9 @@
- #       refering to $(srcdir) anyway.  So I just commented (my half-fixed
- #       version of) this rule out.
- #
-+# The following line is needed to keep the intltool.m4 autoconf macros from
-+# throwing an error message:
-+# INTLTOOL_MAKEFILE
- 
- GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
- PACKAGE = @PACKAGE@
--- a/open-src/app/xscreensaver/ldflags.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,17 +0,0 @@
-6842304 LDFLAGS set incorrectly for xscreensaver
-
-Restore LDFLAGS correctly to saved value after pam_fail_delay test.
-(Same as the fix that was already upstream in xscreensaver 5.02 & later.)
-
-diff -urp -x '*~' -x '*.orig' configure.in configure.in
---- configure.in	2006-09-18 13:56:10.000000000 -0700
-+++ configure.in	2009-05-18 08:41:47.827341000 -0700
-@@ -1909,7 +1909,7 @@ if test "$enable_locking" = yes -a "$wit
-                   [ac_pam_fail_delay=yes],
-                   [ac_pam_fail_delay=no])
-       ac_cv_pam_fail_delay=$ac_pam_fail_delay,
--      LD_FLAGS=$ac_save_LDFLAGS])
-+      LDFLAGS=$ac_save_LDFLAGS])
- 
-       if test "$ac_pam_fail_delay" = yes ; then
-         AC_MSG_RESULT(yes)
--- a/open-src/app/xscreensaver/notice_events.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Fix for: 6585644 xscreensaver can cause KeyPress event loop between itself and xscreensaver-lock.
-
---- driver/timers.c	Wed Feb 27 22:52:08 2008
-+++ driver/timers.c	Wed Feb 27 22:57:43 2008
-@@ -136,6 +136,13 @@
-   unsigned int nkids;
-   int screen_no;
- 
-+  if ((si->pw_data->got_windowid) && (window == si->passwd_dialog))
-+   {
-+    if (p->verbose_p)
-+     fprintf (stderr, "--> notice_events() breaking out of loop!\n");
-+    return;
-+   }
-+
-   if (XtWindowToWidget (si->dpy, window))
-     /* If it's one of ours, don't mess up its event mask. */
-     return;
--- a/open-src/app/xscreensaver/pam_audit.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,580 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
-Fixes for bugs:
-5015296, P1, gnome/screensaver - xscreensaver doesn't audit
-6417168, P3, gnome/screensaver - xscreensaver loops while trying to unlock a session for a user whose password was expired
-
-diff -urp -x '*~' -x '*.orig' driver/Makefile.in driver/Makefile.in
---- driver/Makefile.in	2009-02-05 18:12:45.559427000 -0800
-+++ driver/Makefile.in	2009-02-05 18:13:01.685985000 -0800
-@@ -216,7 +216,7 @@ PDF2JPEG_LIBS	= -framework Cocoa
- SAVER_LIBS	= $(LIBS) $(X_LIBS) $(XMU_LIBS) @SAVER_LIBS@ \
- 		  $(XDPMS_LIBS) $(XINERAMA_LIBS) $(GL_LIBS) $(X_PRE_LIBS) \
- 		  -lXt -lX11 -lXext -lXi $(X_EXTRA_LIBS) \
--		  $(PASSWD_LIBS)
-+		  -lbsm $(PASSWD_LIBS)
- 
- CMD_LIBS	= $(LIBS) $(X_LIBS) \
- 		  $(X_PRE_LIBS) -lX11 -lXext $(X_EXTRA_LIBS)
-diff -urp -x '*~' -x '*.orig' driver/passwd-pam.c driver/passwd-pam.c
---- driver/passwd-pam.c	2009-02-05 18:12:45.057908000 -0800
-+++ driver/passwd-pam.c	2009-02-05 18:13:01.734158000 -0800
-@@ -44,10 +44,12 @@
- #ifdef HAVE_UNISTD_H
- # include <unistd.h>
- #endif
--
--# ifdef sun
--#  include <deflt.h>
--# endif
-+ 
-+#ifdef sun
-+#include <deflt.h>
-+#include <bsm/adt.h>
-+#include <bsm/adt_event.h>
-+#endif
- 
- 
- /*extern char *blurb(void);*/
-@@ -100,6 +102,9 @@ Bool we_have_pam;
- #undef countof
- #define countof(x) (sizeof((x))/sizeof(*(x)))
- 
-+static struct pam_response *reply = 0; /*making it global so we can free it */
-+static int replies = 0;
-+
- /* Some time between Red Hat 4.2 and 7.0, the words were transposed 
-    in the various PAM_x_CRED macro names.  Yay!
-  */
-@@ -109,8 +114,8 @@ Bool we_have_pam;
- 
- int pam_conversation (int nmsgs,
-                       struct pam_message **msg,
--                             struct pam_response **resp,
--                             void *closure);
-+                      struct pam_response **resp,
-+                      void *closure);
- 
- struct pam_closure {
-   const char *user;
-@@ -198,6 +203,127 @@ Bool pam_priv_init (int argc, char **arg
-  */
- static void *suns_pam_implementation_blows = 0;
- 
-+#ifdef  sun
-+#include <syslog.h>
-+#include <bsm/adt.h>
-+#include <bsm/adt_event.h>
-+
-+static Bool audit_flag_global = True;
-+
-+/*
-+ * audit_lock - audit entry to screenlock
-+ *
-+ *      Entry   Process running with appropriate privilege to generate
-+ *                      audit records and real uid of the user.
-+ *
-+ *      Exit    ADT_screenlock audit record written.
-+ */
-+void
-+audit_lock(void)
-+{
-+        adt_session_data_t      *ah;  	/* audit session handle */
-+        adt_event_data_t        *event;	/* audit event handle */
-+
-+      	/* Audit start of screen lock -- equivalent to logout ;-) */
-+        if (adt_start_session(&ah, NULL, ADT_USE_PROC_DATA) != 0) {
-+
-+                syslog(LOG_AUTH | LOG_ALERT, "adt_start_session: %m");
-+                return;
-+        }
-+        if ((event = adt_alloc_event(ah, ADT_screenlock)) == NULL) {
-+
-+                syslog(LOG_AUTH | LOG_ALERT,
-+                    "adt_alloc_event(ADT_screenlock): %m");
-+        } else {
-+                if (adt_put_event(event, ADT_SUCCESS, ADT_SUCCESS) != 0) {
-+
-+                        syslog(LOG_AUTH | LOG_ALERT,
-+                            "adt_put_event(ADT_screenlock): %m");
-+                }
-+                adt_free_event(event);
-+        }
-+        (void) adt_end_session(ah);
-+}
-+
-+/*
-+ * audit_unlock - audit screen unlock
-+ *
-+ *      Entry   Process running with appropriate privilege to generate
-+ *                      audit records and real uid of the user.
-+ *              pam_status = PAM error code; reason for failure.
-+ *
-+ *      Exit    ADT_screenunlock audit record written.
-+ */
-+static void
-+audit_unlock(int pam_status)
-+{
-+        adt_session_data_t      *ah;  	/* audit session handle */
-+        adt_event_data_t        *event;/* audit event handle */
-+
-+        if (adt_start_session(&ah, NULL, ADT_USE_PROC_DATA) != 0) {
-+
-+                syslog(LOG_AUTH | LOG_ALERT,
-+                    "adt_start_session(ADT_screenunlock): %m");
-+                return;
-+        }
-+        if ((event = adt_alloc_event(ah, ADT_screenunlock)) == NULL) {
-+
-+                syslog(LOG_AUTH | LOG_ALERT,
-+                    "adt_alloc_event(ADT_screenunlock): %m");
-+        } else {
-+                if (adt_put_event(event,
-+                    pam_status == PAM_SUCCESS ? ADT_SUCCESS : ADT_FAILURE,
-+                    pam_status == PAM_SUCCESS ? ADT_SUCCESS : ADT_FAIL_PAM +
-+                    pam_status) != 0) {
-+
-+                        syslog(LOG_AUTH | LOG_ALERT,
-+                            "adt_put_event(ADT_screenunlock(%s): %m",
-+                            pam_strerror(NULL, pam_status));
-+                }
-+                adt_free_event(event);
-+        }
-+        (void) adt_end_session(ah);
-+}
-+
-+/*
-+ * audit_passwd - audit password change
-+ *      Entry   Process running with appropriate privilege to generate
-+ *                      audit records and real uid of the user.
-+ *              pam_status = PAM error code; reason for failure.
-+ *
-+ *      Exit    ADT_passwd audit record written.
-+ */
-+static void
-+audit_passwd(int pam_status)
-+{
-+        adt_session_data_t      *ah;		/* audit session handle */
-+        adt_event_data_t        *event;	/* audit event handle */
-+
-+        if (adt_start_session(&ah, NULL, ADT_USE_PROC_DATA) != 0) {
-+
-+                syslog(LOG_AUTH | LOG_ALERT,
-+                    "adt_start_session(ADT_passwd): %m");
-+                return;
-+        }
-+        if ((event = adt_alloc_event(ah, ADT_passwd)) == NULL) {
-+
-+                syslog(LOG_AUTH | LOG_ALERT,
-+                    "adt_alloc_event(ADT_passwd): %m");
-+        } else {
-+                if (adt_put_event(event,
-+                    pam_status == PAM_SUCCESS ? ADT_SUCCESS : ADT_FAILURE,
-+                    pam_status == PAM_SUCCESS ? ADT_SUCCESS : ADT_FAIL_PAM +
-+                    pam_status) != 0) {
-+
-+                        syslog(LOG_AUTH | LOG_ALERT,
-+                            "adt_put_event(ADT_passwd(%s): %m",
-+                            pam_strerror(NULL, pam_status));
-+                }
-+                adt_free_event(event);
-+        }
-+        (void) adt_end_session(ah);
-+}
-+#endif /* sun */
- 
- /* This can be called at any time, and says whether the typed password
-    belongs to either the logged in user (real uid, not effective); or
-@@ -266,6 +392,15 @@ pam_passwd_valid_p (void)
-     fprintf (stderr, "%s: pam_start (\"%s\", \"%s\", ...) ==> %d (%s)\n",
-              blurb(), service, c.user,
-              status, PAM_STRERROR (pamh, status));
-+
-+/* We call pam_passwd_valid_p() everytime we lock screen, 
-+ * so calling audit here is fine.
-+ */
-+#ifdef sun
-+ if (audit_flag_global) /* We want one audit lock log per lock */
-+  audit_lock();
-+#endif /**sun*/
-+
-   if (status != PAM_SUCCESS) 
-    {
-     we_have_pam = False;
-@@ -296,32 +431,6 @@ pam_passwd_valid_p (void)
-         }
- #endif
- 
--  /* #### We should set PAM_TTY to the display we're using, but we
--     don't have that handy from here.  So set it to :0.0, which is a
--     good guess (and has the bonus of counting as a "secure tty" as
--     far as PAM is concerned...)
--   */
--
--/* From the pam trace and log file, it is found out that the 
--   Sun pam modules can drive itself.
--*/
--
--#if 0
--
--  {
--    char *tty,*displayname;
--    if ((displayname = getenv ("DISPLAY")) != NULL)
--        tty = strdup(displayname);
--    else
--   	tty = strdup (":0.0");
--    status = pam_set_item (pamh, PAM_TTY, tty);
--    if (verbose_p)
--      fprintf (stderr, "%s:   pam_set_item (p, PAM_TTY, \"%s\") ==> %d (%s)\n",
--               blurb(), tty, status, PAM_STRERROR(pamh, status));
--    free (tty);
--  }
--#endif
--
-   /* Try to authenticate as the current user.
-      We must turn off our SIGCHLD handler for the duration of the call to
-      pam_authenticate(), because in some cases, the underlying PAM code
-@@ -344,20 +453,22 @@ pam_passwd_valid_p (void)
- 
-   PAM_NO_DELAY(pamh);
- 
--/************* no need
--  fprintf(stderr,"before calling pam_authenticate passwd_string: %s\n",si->pw_data->passwd_string);
--  if (si->pw_data->passwd_string)
--****************************/
-    {
- 
-   
-   timeout.tv_sec = 0;
-   timeout.tv_nsec = 1;
-   set = block_sigchld();
--  pam_auth_status = pam_authenticate (pamh, 0);
-+  pam_auth_status = pam_authenticate (pamh, pam_flags);
-   sigtimedwait (&set, NULL, &timeout);
-   unblock_sigchld();
- 
-+#ifdef sun
-+        audit_unlock(pam_auth_status);
-+        if (pam_auth_status == PAM_SUCCESS) audit_flag_global = True;
-+        else audit_flag_global = False;
-+#endif /*sun*/
-+
-      /* Send status message to unlock dialog ***/
-      if (pam_auth_status == PAM_SUCCESS)
-       {
-@@ -380,7 +491,7 @@ pam_passwd_valid_p (void)
- 
-      /* PAM_SUCCESS defined to be 0 in /usr/include/security/pam_appl.h */
-      si->pw_data->state = (pam_auth_status == PAM_SUCCESS ? pw_ok : pw_fail);
--  if (verbose_p)
-+     if (verbose_p)
-         fprintf(stderr,"after calling pam_authenticate status is:%d state is:%d\n",
- 			pam_auth_status,si->pw_data->state);
- 
-@@ -396,34 +507,11 @@ pam_passwd_valid_p (void)
-       /* perform PAM account validation procedures for login user only */
-       acct_rc   = pam_acct_mgmt(pamh, pam_flags);
-       
--      /******************************************************************
--           ignore other cases for the time being 
--           PAM_USER_UNKNOWN, PAM_AUTH_ERR, PAM_ACCT_EXPIRED
--           (password mgn service module)
--           same as pam_setcred(), focus on auth. service module only
--       *****************************************************************/
- 
-       if (verbose_p)
-         fprintf (stderr, "%s:   pam_acct_mgmt (...) ==> %d (%s)\n",
-                  blurb(), acct_rc, PAM_STRERROR(pamh, acct_rc));
- 
--      /******************************************************************
--           ignore other cases for the time being 
--           PAM_USER_UNKNOWN, PAM_AUTH_ERR, PAM_ACCT_EXPIRED
--           (password mgn service module)
--           same as pam_setcred(), focus on auth. service module only
--       *****************************************************************/
--
--      if (acct_rc   == PAM_NEW_AUTHTOK_REQD) {
--	do {
--	  chauth_rc  = pam_chauthtok(pamh, 0);
--	} while (chauth_rc == PAM_AUTHTOK_ERR ||
--		 chauth_rc  == PAM_TRY_AGAIN);
--	if (verbose_p)
--	  fprintf (stderr, "%s:   pam_chauthtok (...) ==> %d (%s)\n",
--		   blurb(), chauth_rc, PAM_STRERROR(pamh, chauth_rc));
--      }
--
-       /* Send status message to unlock dialog ***/
-       if (acct_rc == PAM_SUCCESS)
- 	{
-@@ -440,8 +528,42 @@ pam_passwd_valid_p (void)
- 	  write_to_child (si, tmp_buf);
- 	  if (verbose_p)
- 	    sleep (1);
--	}
- 
-+   /* Only in failure of pam_acct_mgmt case we call audit */
-+#ifdef sun
-+        audit_unlock(acct_rc);
-+#endif /*sun*/
-+
-+     }/* end of else */
-+
-+     if (acct_rc   == PAM_NEW_AUTHTOK_REQD) 
-+      {
-+        for (int i=0; i<3; i++) 
-+         {
-+          chauth_rc  = pam_chauthtok(pamh, PAM_CHANGE_EXPIRED_AUTHTOK);
-+          if (chauth_rc == PAM_AUTHTOK_ERR ||
-+              chauth_rc  == PAM_TRY_AGAIN ) 
-+           {
-+             i = 0; /* Reset num tries we need to do to change expired passwd */
-+             si->pw_data->state = pw_read; 
-+           }
-+          else break; /* get out of the loop */
-+         }/*for*/ 
-+ 
-+       if (verbose_p)
-+            fprintf (stderr, "%s:   pam_chauthtok (...) ==> %d (%s)\n",
-+                 blurb(), chauth_rc, PAM_STRERROR(pamh, chauth_rc));
-+
-+#ifdef  sun
-+          audit_passwd(chauth_rc);
-+#endif /* sun */
-+
-+        if (chauth_rc != PAM_SUCCESS) 
-+         {
-+          pam_auth_status = chauth_rc;
-+          goto DONE;
-+         }
-+	}
- 
-       /* Each time we successfully authenticate, refresh credentials,
-          for Kerberos/AFS/DCE/etc.  If this fails, just ignore that
-@@ -473,6 +595,11 @@ pam_passwd_valid_p (void)
-         write_to_child (si, tmp_buf);
-         if (verbose_p)
-           sleep (1);
-+
-+/* Only in failure of pam_setcred() case we call audit. */
-+#ifdef sun
-+        audit_unlock(setcred_rc);
-+#endif /*sun*/
-       }
- 
-       goto DONE;
-@@ -527,7 +654,7 @@ pam_passwd_valid_p (void)
-   if (pamh)
-     {
-       int status2 = pam_end (pamh, pam_auth_status);
--      pamh = 0;
-+      pamh = NULL;
-       if (verbose_p)
-         fprintf (stderr, "%s: pam_end (...) ==> %d (%s)\n",
-                  blurb(), status2,
-@@ -557,6 +684,7 @@ pam_passwd_valid_p (void)
- 
-   if (si->pw_data->passwd_string)
-     {
-+      memset(si->pw_data->passwd_string, 0, strlen(si->pw_data->passwd_string));
-       free (si->pw_data->passwd_string); 
-       si->pw_data->passwd_string = 0;
-     }
-@@ -665,10 +793,10 @@ pam_conversation (int nmsgs,
-                   struct pam_response **resp,
-                   void *closure)
- {
--  int replies = 0;
--  struct pam_response *reply = 0;
-+/*mali fix  struct pam_response *reply = 0; */
-   struct pam_closure *c = (struct pam_closure *) closure;
-   saver_info *si = global_si_kludge;
-+  int conv_status = PAM_SUCCESS;
- 
-   /* On SunOS 5.6, the `closure' argument always comes in as random garbage. */
-   c = (struct pam_closure *) suns_pam_implementation_blows;
-@@ -677,6 +805,7 @@ pam_conversation (int nmsgs,
-      fprintf(stderr, "-->pam_conv() \n");
- 
-   reply = (struct pam_response *) calloc (nmsgs, sizeof (*reply));
-+
-   if (!reply) return PAM_CONV_ERR;
- 	
-   for (replies = 0; replies < nmsgs; replies++)
-@@ -691,7 +820,6 @@ pam_conversation (int nmsgs,
-            make_passwd_window (si);
-          }
- 
--/**fprintf(stderr, "top of switch %d\n", replies);**/
-       switch (msg[replies]->msg_style)
-         {
-         case PAM_PROMPT_ECHO_ON:
-@@ -701,8 +829,6 @@ pam_conversation (int nmsgs,
-             fprintf (stderr, "%s:     PAM ECHO_OFF(\"%s\") ==> password\n",
-                      blurb(), msg[replies]->msg);
- 
--          /**fprintf(stderr, "PAM_ECHO_OFF/ECHO_ON nmsgs=%d\n",nmsgs);**/
--
-              write_to_child (si, msg[replies]->msg);
-              if (c->verbose_p)
-               sleep (1); /* let user see these */
-@@ -711,8 +837,36 @@ pam_conversation (int nmsgs,
-                 fprintf(stderr, "PAM_ECHO_OFF/ECHO_ON msg[replies]-> %s\n",
- 					msg[replies]->msg);
- 
-+             /* For our hack to see if the user typed in root passwd to unlock. */
-+             if (strcmp (c->user, "root") == 0)
-+              {
-+               if (c->verbose_p)
-+                {
-+                 write_to_child (si, "Checking if you typed root password");
-+                 sleep (1);
-+                }
-+
-+               if (si->pw_data->passwd_string) /* if passwd is still stored */
-+                 reply[replies].resp = strdup (si->pw_data->passwd_string); /*freed by PAM*/
-+               else
-+                 reply[replies].resp = NULL; /* freed by PAM */
-+   
-+               break; /* To check if user has entered a root passwd, we dont want to prompt
-+                       * user to enter the root passwd, we already have it so try that. */
-+              }
-+
-              si->pw_data->state = pw_read;
--             while (!si->pw_data->got_windowid && si->pw_data->state == pw_read)
-+
-+             /* Wipe the old password, so we get prompted to enter new password. */
-+             if (si->pw_data->passwd_string) 
-+              {
-+               memset(si->pw_data->passwd_string, 0, strlen(si->pw_data->passwd_string));
-+               free (si->pw_data->passwd_string);
-+               si->pw_data->passwd_string = NULL;
-+              }
-+
-+             /***while (!si->pw_data->got_windowid && si->pw_data->state == pw_read)**/
-+             while (si->pw_data->state == pw_read)
-               {
-                if (c->verbose_p)
-                  fprintf(stderr,"WAiting for window id from lock dialog\n");
-@@ -722,13 +876,13 @@ pam_conversation (int nmsgs,
-                  fprintf(stderr,"<---passwd_event_loop() state =%d\n",si->pw_data->state);
-               }
- 
--          reply[replies].resp_retcode = PAM_SUCCESS;
-+             reply[replies].resp = NULL;  /* freed by PAM */
- 
--             /*Make sure user inputs a response..and dialog is not timiing out **/
-+             /*Make sure user inputs a response..and dialog is not timing out **/
-              if (si->pw_data->state != pw_time && si->pw_data->passwd_string != NULL)
-               {
-                reply[replies].resp = strdup (si->pw_data->passwd_string);/*freed by PAM*/
--          if (c->verbose_p)
-+               if (c->verbose_p)
-                  fprintf(stderr, "in ECHO OFF and got a passwd..:%s\n",
-                                        si->pw_data->passwd_string);
-               }
-@@ -736,46 +890,44 @@ pam_conversation (int nmsgs,
-               {
-                /* this shouldnt happen...perhaps sending null passwd to pam is 
- 	        * best for now**/
--               /* reply[replies].resp = 0;Dont send any resp*/ /* freed by PAM */
-+               reply[replies].resp = NULL; /*Dont send any resp*/ /* freed by PAM */
-                /* Reset state to fail */
-                si->pw_data->state = pw_fail;
- 
-                if (c->verbose_p)
-                 {
--                  fprintf(stderr, "Dude sending null password to pam..\n");
-                   fprintf(stderr,"We didnt receive any input from user!!!\n");
-                 }
-               }
-           break;
-          }
-+
-         case PAM_TEXT_INFO:
-         case PAM_ERROR_MSG:
- 	{
--	 char* tmp_msg;
- 
-           /* display messages coming from pam... */
-           /* we should have dialog up still to show this */
-           if (c->verbose_p)
-             fprintf(stderr, "PAM_ERROR/PAM_TEXT_INFO nmsgs=%d\n",nmsgs);
-+
-           if (!g_passwd_dialog_created)
-            {
-             make_passwd_window (si);
-             /*sleep (1);*/ /*make sure window is created by now **/
-+	    usleep (500000); /*make sure window is created by now **/
-            }
--          tmp_msg = strdup (msg[replies]->msg);
--          write_to_child (si, tmp_msg);
--          sleep(1);
-+          write_to_child (si, msg[replies]->msg);
-+          sleep(2);
- 
-           if (c->verbose_p)
-             fprintf(stderr, "PAM_ERROR/PAM_TEXT_INFO msg[%d]-> %s\n",
- 					replies,msg[replies]->msg);
- 
--          reply[replies].resp_retcode = PAM_CONV_ERR;
--          /*reply[replies].resp = 0;*/
-+          reply[replies].resp = NULL;
-           /* Reset state to read */
-           si->pw_data->state = pw_read;
- 
--          free(tmp_msg);
-           break;
- 	}
- 
-@@ -783,16 +935,13 @@ pam_conversation (int nmsgs,
- 
-          {
-            int i;
--          if (c->verbose_p)
--            fprintf (stderr, "%s:     PAM unknown %d(\"%s\") ==> ERROR..default case:\n",
--                     blurb(), msg[replies]->msg_style, msg[replies]->msg);
--          /* Must be an error of some sort... */
--            for (i = 0; i < replies; i++)
--                    if (reply[replies].resp != NULL)
--                            free (reply[replies].resp);
--            free (reply);
--            reply = NULL;
--          return PAM_CONV_ERR;
-+            if (c->verbose_p)
-+            fprintf (stderr, "%s: PAM unknown  ==> ..default case:\n", blurb());
-+#ifdef  sun
-+            audit_unlock(PAM_CONV_ERR);
-+#endif  /* sun */
-+
-+            return PAM_CONV_ERR;
- 
-           } /* end default */
-         } /* end switch */
--- a/open-src/app/xscreensaver/passwdTimeout-pref.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-/*
- * Copyright 2006 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
- * "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.
- *
- */
-
-Sun bug 5077981/GNOME bug 147579:
-	There should be an option to extend/disable lockout timer
-	http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=5077981
-	http://bugzilla.gnome.org/show_bug.cgi?id=147579
-
-diff -urp -x '*~' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2006-08-08 15:24:43.355144000 -0700
-+++ driver/XScreenSaver.ad.in	2006-08-08 15:24:49.627321000 -0700
-@@ -34,6 +34,7 @@
- *cycle:			0:10:00
- *lockTimeout:		0:30:00
- *passwdTimeout:		0:02:00
-+*passwdTimeoutEnabled:	True
- *dpmsEnabled:		True
- *dpmsStandby:		0:24:00
- *dpmsSuspend:		0:27:00
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-08-08 15:24:43.446343000 -0700
-+++ driver/demo-Gtk.c	2006-08-08 15:24:49.630059000 -0700
-@@ -1500,6 +1500,9 @@ flush_dialog_changes_and_save (state *s)
- 
-   MINUTES  (&p2->timeout,         "timeout_spinbutton");
-   MINUTES  (&p2->cycle,           "cycle_spinbutton");
-+  /*bugid 5077981 pwd */
-+  CHECKBOX (p2->pwd_p,           "pwd_button");
-+  MINUTES  (&p2->passwd_timeout,    "pwd_spinbutton");
-   CHECKBOX (p2->lock_p,           "lock_button");
-   MINUTES  (&p2->lock_timeout,    "lock_spinbutton");
- 
-@@ -1591,6 +1594,9 @@ flush_dialog_changes_and_save (state *s)
-   COPY(cycle,          "cycle");
-   COPY(lock_p,         "lock_p");
-   COPY(lock_timeout,   "lock_timeout");
-+/*bugid 5077981 pwd */
-+  COPY(pwd_p,         "pwd_p");
-+  COPY(passwd_timeout,   "passwd_timeout");
- 
-   COPY(dpms_enabled_p, "dpms_enabled_p");
-   COPY(dpms_standby,   "dpms_standby");
-@@ -2706,6 +2712,9 @@ populate_prefs_page (state *s)
-   FMT_MINUTES ("timeout_spinbutton",      p->timeout);
-   FMT_MINUTES ("cycle_spinbutton",        p->cycle);
-   FMT_MINUTES ("lock_spinbutton",         p->lock_timeout);
-+  /*bugid 5077981 pwd */
-+  FMT_MINUTES ("pwd_spinbutton",         p->passwd_timeout);
-+  FMT_MINUTES ("lock_spinbutton",         p->lock_timeout);
-   FMT_MINUTES ("dpms_standby_spinbutton", p->dpms_standby);
-   FMT_MINUTES ("dpms_suspend_spinbutton", p->dpms_suspend);
-   FMT_MINUTES ("dpms_off_spinbutton",     p->dpms_off);
-@@ -2717,6 +2726,10 @@ populate_prefs_page (state *s)
- # define TOGGLE_ACTIVE(NAME,ACTIVEP) \
-   gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (name_to_widget (s,(NAME))),\
-                                 (ACTIVEP))
-+/*bugid 5077981 pwd */
-+
-+
-+  TOGGLE_ACTIVE ("pwd_button",       p->pwd_p);
- 
-   TOGGLE_ACTIVE ("lock_button",       p->lock_p);
- #if 0
-@@ -2822,6 +2835,10 @@ populate_prefs_page (state *s)
- 
-     /* Blanking and Locking
-      */
-+    /*bugid 5077081 pwd */
-+    SENSITIZE ("pwd_spinbutton", p->pwd_p);
-+    SENSITIZE ("pwd_mlabel",     p->pwd_p);
-+
-     SENSITIZE ("lock_button",     can_lock_p);
-     SENSITIZE ("lock_spinbutton", can_lock_p && p->lock_p);
-     SENSITIZE ("lock_mlabel",     can_lock_p && p->lock_p);
-@@ -2990,10 +3007,12 @@ fix_text_entry_sizes (state *s)
- {
-   GtkWidget *w;
- 
-+/*bugid 5077981 pwd */
-+
- # if 0   /* appears no longer necessary with Gtk 1.2.10 */
-   const char * const spinbuttons[] = {
-     "timeout_spinbutton", "cycle_spinbutton", "lock_spinbutton",
--    "dpms_standby_spinbutton", "dpms_suspend_spinbutton",
-+	"pwd_spinbutton", "dpms_standby_spinbutton", "dpms_suspend_spinbutton",
-     "dpms_off_spinbutton",
-     "-fade_spinbutton" };
-   int i;
-diff -urp -x '*~' driver/prefs.c driver/prefs.c
---- driver/prefs.c	2006-05-23 15:03:47.000000000 -0700
-+++ driver/prefs.c	2006-08-08 15:24:49.631015000 -0700
-@@ -243,6 +243,7 @@ get_byte_resource (Display *dpy, char *n
-   return n;
- }
- 
-+/* *bugid 5077981 pwd timeout */
- 
- static const char * const prefs[] = {
-   "timeout",
-@@ -251,6 +252,7 @@ static const char * const prefs[] = {
-   "lockVTs",			/* not saved */
-   "lockTimeout",
-   "passwdTimeout",
-+  "passwdTimeoutEnabled",
-   "visualID",
-   "installColormap",
-   "verbose",
-@@ -781,6 +783,9 @@ write_init_file (Display *dpy,
-       CHECK("lockVTs")		continue;  /* don't save, unused */
-       CHECK("lockTimeout")	type = pref_time, t = p->lock_timeout;
-       CHECK("passwdTimeout")	type = pref_time, t = p->passwd_timeout;
-+
-+/* *bugid 5077981 pwd timeout */
-+      CHECK("passwdTimeoutEnabled")		type = pref_bool, b = p->pwd_p;
-       CHECK("visualID")		type = pref_str,  s =    visual_name;
-       CHECK("installColormap")	type = pref_bool, b = p->install_cmap_p;
-       CHECK("verbose")		type = pref_bool, b = p->verbose_p;
-@@ -1062,6 +1067,8 @@ load_init_file (Display *dpy, saver_pref
-   p->lock_timeout    = 1000 * get_minutes_resource (dpy, "lockTimeout", "Time");
-   p->cycle           = 1000 * get_minutes_resource (dpy, "cycle", "Time");
-   p->passwd_timeout  = 1000 * get_seconds_resource (dpy, "passwdTimeout", "Time");
-+  /* *bugid 5077981 pwd timeout */
-+  p->pwd_p	    = get_boolean_resource (dpy, "passwdTimeoutEnabled", "Boolean");
-   p->pointer_timeout = 1000 * get_seconds_resource (dpy, "pointerPollTime", "Time");
-   p->pointer_hysteresis = get_integer_resource (dpy, "pointerHysteresis","Integer");
-   p->notice_events_timeout = 1000*get_seconds_resource(dpy,
-diff -urp -x '*~' driver/prefs.h driver/prefs.h
---- driver/prefs.h	2006-05-17 16:35:54.000000000 -0700
-+++ driver/prefs.h	2006-08-08 15:24:49.631360000 -0700
-@@ -53,6 +53,8 @@ struct saver_preferences {
-   Bool xsync_p;			/* whether XSynchronize has been called */
- 
-   Bool lock_p;			/* whether to lock as well as save */
-+  Bool pwd_p;			/* whether to disable/enable pwd timeout */
-+				/* bugid 5077981 */
- 
-   Bool fade_p;			/* whether to fade to black, if possible */
-   Bool unfade_p;		/* whether to fade from black, if possible */
-diff -urp -x '*~' driver/xscreensaver-demo.glade2 driver/xscreensaver-demo.glade2
---- driver/xscreensaver-demo.glade2	2005-08-09 01:37:05.000000000 -0700
-+++ driver/xscreensaver-demo.glade2	2006-08-08 15:24:49.632892000 -0700
-@@ -160,7 +160,7 @@
- 		  <child>
- 		    <widget class="GtkTable" id="blanking_table">
- 		      <property name="visible">True</property>
--		      <property name="n_rows">3</property>
-+		      <property name="n_rows">4</property>
- 		      <property name="n_columns">4</property>
- 		      <property name="homogeneous">False</property>
- 		      <property name="row_spacing">2</property>
-@@ -326,6 +326,65 @@
- 		      </child>
- 
- 		      <child>
-+			<widget class="GtkSpinButton" id="pwd_spinbutton">
-+			  <property name="visible">True</property>
-+			  <property name="tooltip" translatable="yes">How long the unlock dialog waits for input before disappearing.</property>
-+			  <property name="can_focus">True</property>
-+			  <property name="climb_rate">15</property>
-+			  <property name="digits">0</property>
-+			  <property name="numeric">True</property>
-+			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-+			  <property name="snap_to_ticks">True</property>
-+			  <property name="wrap">False</property>
-+			  <property name="adjustment">0 0 720 1 15 15</property>
-+			  <signal name="activate" handler="pref_changed_cb"/>
-+			  <signal name="focus_out_event" handler="pref_changed_event_cb"/>
-+			  <signal name="value_changed" handler="pref_changed_cb"/>
-+			</widget>
-+			<packing>
-+			  <property name="left_attach">2</property>
-+			  <property name="right_attach">3</property>
-+			  <property name="top_attach">3</property>
-+			  <property name="bottom_attach">4</property>
-+			  <property name="y_padding">10</property>
-+			  <property name="x_options">fill</property>
-+			  <property name="y_options"></property>
-+			</packing>
-+		      </child>
-+
-+		      <child>
-+			<widget class="GtkEventBox" id="pwd_button_eventbox">
-+			  <property name="visible">True</property>
-+			  <property name="tooltip" translatable="yes">Whether the unlock dialog box should disappear after a timeout.</property>
-+			  <property name="visible_window">True</property>
-+			  <property name="above_child">False</property>
-+
-+			  <child>
-+			    <widget class="GtkCheckButton" id="pwd_button">
-+			      <property name="visible">True</property>
-+			      <property name="can_focus">True</property>
-+			      <property name="label" translatable="yes">Timeout _Unlock After</property>
-+			      <property name="use_underline">True</property>
-+			      <property name="relief">GTK_RELIEF_NORMAL</property>
-+			      <property name="focus_on_click">True</property>
-+			      <property name="active">False</property>
-+			      <property name="inconsistent">False</property>
-+			      <property name="draw_indicator">True</property>
-+			      <signal name="toggled" handler="pref_changed_cb"/>
-+			    </widget>
-+			  </child>
-+			</widget>
-+			<packing>
-+			  <property name="left_attach">0</property>
-+			  <property name="right_attach">2</property>
-+			  <property name="top_attach">3</property>
-+			  <property name="bottom_attach">4</property>
-+			  <property name="x_options">fill</property>
-+			  <property name="y_options">fill</property>
-+			</packing>
-+		      </child>
-+
-+		      <child>
- 			<widget class="GtkLabel" id="cycle_mlabel">
- 			  <property name="visible">True</property>
- 			  <property name="label" translatable="yes">minutes</property>
-@@ -372,6 +431,29 @@
- 		      </child>
- 
- 		      <child>
-+			<widget class="GtkLabel" id="pwd_mlabel">
-+			  <property name="visible">True</property>
-+			  <property name="label" translatable="yes">minutes</property>
-+			  <property name="use_underline">False</property>
-+			  <property name="use_markup">False</property>
-+			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-+			  <property name="wrap">False</property>
-+			  <property name="selectable">False</property>
-+			  <property name="xalign">0</property>
-+			  <property name="yalign">0.5</property>
-+			  <property name="xpad">8</property>
-+			  <property name="ypad">0</property>
-+			</widget>
-+			<packing>
-+			  <property name="left_attach">3</property>
-+			  <property name="right_attach">4</property>
-+			  <property name="top_attach">3</property>
-+			  <property name="bottom_attach">4</property>
-+			  <property name="y_options"></property>
-+			</packing>
-+		      </child>
-+
-+		      <child>
- 			<widget class="GtkLabel" id="timeout_label">
- 			  <property name="visible">True</property>
- 			  <property name="label" translatable="yes">_Blank After</property>
--- a/open-src/app/xscreensaver/solaris-paths.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,263 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-Various fixes to deal with where we install things on Solaris:
-
-- Only run hacks from the hacks dir, not $PATH
-
-- Find helper programs even though they are not in $PATH
-
-- Show author names when reading RSS feeds from sites like blogs.sun.com
-
-- Show Solaris package names in demo app when hacks are not installed
-
-diff -urp -x '*~' driver/Makefile.in driver/Makefile.in
---- driver/Makefile.in	2006-09-18 19:36:40.000000000 -0700
-+++ driver/Makefile.in	2006-09-19 17:08:05.690087000 -0700
-@@ -26,7 +26,7 @@ INTLTOOL_MERGE	= @INTLTOOL_MERGE@
- GTK_DATADIR	= @GTK_DATADIR@
- GTK_APPDIR	= $(GTK_DATADIR)/applications
- GTK_ICONDIR	= $(GTK_DATADIR)/pixmaps
--GTK_GLADEDIR	= $(GTK_DATADIR)/xscreensaver/glade
-+GTK_GLADEDIR	= $(prefix)/lib/xscreensaver/config
- HACK_CONF_DIR	= @HACK_CONF_DIR@
- 
- CC		= @CC@
-@@ -35,8 +35,11 @@ CFLAGS		= @CFLAGS@
- LDFLAGS		= @LDFLAGS@
- DEFS		= @DEFS@
- INTL_DEFS	= -DLOCALEDIR=\"$(localedir)\"
--SUBP_DEFS	= $(DEFS) -DDEFAULT_PATH_PREFIX='"@HACKDIR@"'
--GTK_DEFS	= $(DEFS) -DDEFAULT_ICONDIR='"$(GTK_GLADEDIR)"'
-+SUBP_DEFS	= $(DEFS) -DHACK_PATH='"@HACKDIR@"' \
-+	-DDEFAULT_PATH_PREFIX='"@HACKDIR@:$(libexecdir)"' \
-+	-DHELPER_PATH='"$(libexecdir)"'
-+GTK_DEFS	= $(DEFS) -DDEFAULT_ICONDIR='"$(GTK_GLADEDIR)"' \
-+			-DBINDIR='"$(bindir)"'
- CONF_DEFS	= -DHACK_CONFIGURATION_PATH='"$(HACK_CONF_DIR)"'
- 
- LIBS		= @LIBS@
-diff -urp -x '*~' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2006-09-19 17:08:01.418108000 -0700
-+++ driver/XScreenSaver.ad.in	2006-09-19 17:08:05.692837000 -0700
-@@ -96,7 +96,7 @@ GetViewPortIsFullOfLies: False
- !
- @GNOME24@*loadURL: @WITH_BROWSER@ '%s'
- @GNOME24@*manualCommand: gnome-terminal --title '%s manual' \
--@GNOME24@		--command '/bin/sh -c "man %s; read foo"'
-+@GNOME24@		--command '/bin/sh -c "man -M /usr/X11/man %s; read foo"'
- !
- !   Gnome 2.2:
- !
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-05-23 15:02:44.000000000 -0700
-+++ driver/demo-Gtk.c	2006-09-19 17:08:05.695373000 -0700
-@@ -924,7 +924,7 @@ restart_menu_cb (GtkWidget *widget, gpoi
-   flush_dialog_changes_and_save (s);
-   xscreensaver_command (GDK_DISPLAY(), XA_EXIT, 0, False, NULL);
-   sleep (1);
--  if (system ("xscreensaver -nosplash &") < 0)
-+  if (system (BINDIR "/xscreensaver -nosplash &") < 0)
-     fprintf (stderr, "%s: fork error\n", blurb());
- 
-   await_xscreensaver (s);
-@@ -4745,7 +4745,7 @@ main (int argc, char **argv)
- 
-       if (init_results == 1)
- 	{
--	  system ("xscreensaver -nosplash &");
-+	  system (BINDIR "/xscreensaver -nosplash &");
- 	  return 0;
- 	}
- 
-diff -urp -x '*~' -x '*.orig' driver/subprocs.c driver/subprocs.c
---- driver/subprocs.c	2006-09-14 00:03:53.000000000 -0700
-+++ driver/subprocs.c	2008-11-12 13:52:43.912046000 -0800
-@@ -14,6 +14,7 @@
- # include "config.h"
- #endif
- 
-+#include <sys/stat.h>
- #include <ctype.h>
- #include <stdio.h>
- #include <string.h>
-@@ -775,6 +776,8 @@ print_path_error (const char *program)
-   free (cmd);
-   perror (buf);
- 
-+/* mali - security issue do not want to display user's path */
-+#ifdef EXPOSE_USER_PATH  
-   if (errno == ENOENT &&
-       (token = getenv("PATH")))
-     {
-@@ -805,6 +808,7 @@ print_path_error (const char *program)
-         }
-       fprintf (stderr, "\n");
-     }
-+#endif
- }
- 
- 
-@@ -861,12 +865,39 @@ fork_and_exec (saver_screen_info *ssi, c
-   return forked;
- }
- 
-+static Bool
-+check_if_hacks_dir_exists(Bool verbose_p)
-+{
-+  const char hackdir[] = HACK_PATH;
-+
-+  int status;
-+  struct stat st;
-+
-+  status = stat (hackdir, &st);
-+  
-+  if (status == 0 && S_ISDIR(st.st_mode))
-+    {
-+      return True;
-+    }
-+   else
-+    {
-+      if (verbose_p)
-+	{
-+	  fprintf(stderr,
-+		  "%s: Warning: dir: %s missing. Will not run hacks\n",
-+		  blurb(), hackdir);
-+	}
-+      return False;
-+    }
-+}
- 
- static void
- spawn_screenhack_1 (saver_screen_info *ssi, Bool first_time_p)
- {
-   saver_info *si = ssi->global;
-   saver_preferences *p = &si->prefs;
-+  char* complete_hack_command;
-+  
-   raise_window (si, first_time_p, True, False);
-   XFlush (si->dpy);
- 
-@@ -938,6 +969,13 @@ spawn_screenhack_1 (saver_screen_info *s
- 	    ;
- 	}
- 
-+      if ((new_hack >= 0) &&
-+	  (check_if_hacks_dir_exists(p->verbose_p) == False))
-+      {
-+	  new_hack = -1;
-+      }
-+
-+
-       if (new_hack < 0)   /* don't run a hack */
-         {
-           ssi->current_hack = -1;
-@@ -985,7 +1023,17 @@ spawn_screenhack_1 (saver_screen_info *s
-       if (si->selection_mode < 0)
- 	si->selection_mode = 0;
- 
--      forked = fork_and_exec (ssi, hack->command);
-+      
-+      /* We need complete path to hack command else any executable
-+       * with the same name in the path gets executed.
-+       */
-+      complete_hack_command = malloc (10 + strlen(hack->command) +
-+					      strlen (HACK_PATH)); 
-+      sprintf(complete_hack_command, HACK_PATH"/%s", hack->command);
-+      
-+      
-+      forked = fork_and_exec (ssi, complete_hack_command);
-+      free (complete_hack_command);
-       switch ((int) forked)
- 	{
- 	case -1: /* fork failed */
-@@ -1007,6 +1055,9 @@ spawn_screenhack_1 (saver_screen_info *s
- void
- spawn_screenhack (saver_info *si, Bool first_time_p)
- {
-+  if (si->prefs.verbose_p)
-+   fprintf(stderr, "--> spawn_screenhack()\n");
-+
-   if (monitor_powered_on_p (si))
-     {
-       int i;
-@@ -1189,7 +1240,7 @@ get_best_gl_visual (saver_screen_info *s
-   char *av[10];
-   int ac = 0;
- 
--  av[ac++] = "xscreensaver-gl-helper";
-+  av[ac++] = HELPER_PATH "/xscreensaver-gl-helper";
-   av[ac] = 0;
- 
-   if (pipe (fds))
-diff -urp -x '*~' -x '*.orig' driver/xscreensaver-demo.glade2 driver/xscreensaver-demo.glade2
---- driver/xscreensaver-demo.glade2	2005-08-09 01:37:05.000000000 -0700
-+++ driver/xscreensaver-demo.glade2	2008-11-12 13:52:43.914329000 -0800
-@@ -820,8 +820,8 @@ Installed</property>
- 			      <property name="visible">True</property>
- 			      <property name="label" translatable="yes">Very few (or no) screen savers appear to be available.
- 
--This probably means that the &quot;xscreensaver-extras&quot; and
--&quot;xscreensaver-gl-extras&quot; packages are not installed.</property>
-+This probably means that the &quot;SUNWxscreensaver-hacks&quot; and
-+&quot;SUNWxscreensaver-hacks-gl&quot; packages are not installed.</property>
- 			      <property name="use_underline">False</property>
- 			      <property name="use_markup">False</property>
- 			      <property name="justify">GTK_JUSTIFY_CENTER</property>
-diff -urp -x '*~' driver/xscreensaver-text driver/xscreensaver-text
---- driver/xscreensaver-text	2006-09-14 00:35:46.000000000 -0700
-+++ driver/xscreensaver-text	2006-09-19 17:08:05.712858000 -0700
-@@ -664,12 +664,15 @@ sub reformat_rss($) {
-     $i++;
- 
-     my ($title, $body1, $body2, $body3);
-+    my $author;
-     
-     $title = $3 if (m@<((TITLE)       [^<>\s]*)[^<>]*>\s*(.*?)\s*</\1>@xsi);
-     $body1 = $3 if (m@<((DESCRIPTION) [^<>\s]*)[^<>]*>\s*(.*?)\s*</\1>@xsi);
-     $body2 = $3 if (m@<((CONTENT)     [^<>\s]*)[^<>]*>\s*(.*?)\s*</\1>@xsi);
-     $body3 = $3 if (m@<((SUMMARY)     [^<>\s]*)[^<>]*>\s*(.*?)\s*</\1>@xsi);
- 
-+    $author = $3 if (m@<((DC:CREATOR) [^<>\s]*)[^<>]*>\s*(.*?)\s*</\1>@xsi);
-+
-     # If there are both <description> and <content> or <content:encoded>,
-     # use whichever one contains more text.
-     #
-@@ -693,8 +696,9 @@ sub reformat_rss($) {
- 
-     $title = rss_field_to_html ($title || '');
-     $body1 = rss_field_to_html ($body1 || '');
-+    $author = rss_field_to_html ($author || '');
- 
--    reformat_html ("$title<P>$body1", 1);
-+    reformat_html ("$title<BR>$author<P>$body1", 1);
-     print "\n";
-   }
- }
--- a/open-src/app/xscreensaver/sun-src/ChangeLog	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,273 +0,0 @@
-2002-07-30  jacob berkman  <[email protected]>
-
-	* driver/demo-Gtk.c (wm_popup_close_cb): 
-	(wm_toplevel_close_cb): these should return a gboolean, not void
-
-	fixes #89320
-
-2002-07-23  jacob berkman  <[email protected]>
-
-	* driver/demo-Gtk.c (manual_cb): fix some warnings (for bug
-	#80436)
-
-2002-06-17  jacob berkman  <[email protected]>
-
-	* configure.in: fix lock dialog checks (Mahmood Ali
-	<[email protected]>)
-
-2002-06-04  jacob berkman  <[email protected]>
-
-	* configure.in: fix xml 2 checks
-
-	-- merge 4.04.2 + HEAD --
-
-2002-06-03  jacob berkman  <[email protected]>
-
-	* driver/Makefile.in (GLADE_DATADIR): fix tyop
-
-2002-05-29  jacob berkman  <[email protected]>
-
-	* driver/subprocs.c (describe_dead_child): don't reference
-	si->passwd_pid unless we are buildng for the gtk lock dialog
-	(based on patch from HideToshi Tajima <[email protected]>)
-	
-2002-05-28  jacob berkman  <[email protected]>
-
-	* Makefile.in: merge fixes from HEAD
-
-2002-05-24  jacob berkman  <[email protected]>
-
-	* driver/lock-Gtk.c (make_dialog): bail if xss isn't running, call
-	xss to get the version and user, and display the date
-	(main): setup remote atoms and init i18n
-
-	fixes bug #82141
-
-	* configure.in: only require autoconf 2.52
-
-	-- merge in 4.03 --
-
-	* driver/subprocs.c (describe_dead_child): check against our lock
-	dialog child
-
-	fixes #80932
-
-2002-05-06  Arvind Samptur <[email protected]>
-
-	* driver/lock.c (destroy_passwd_window) : variable passwd_string is not intialized
-	if HAVE_XSCREENSAVER_LOCK defined, hence moving memeset to the else part to avoid
-	crash.
-
-2002-04-18  jacob berkman  <[email protected]>
-
-	-- merge in HEAD + 4.02 --
-
-2002-04-18  jacob berkman  <[email protected]>
-
-	-- merge in 4.02 --
-
-	* driver/xscreensaver-demo.glade2: fix icons and bug #79022
-
-2002-04-05  jacob berkman  <[email protected]>
-
-	* driver/subprocs.c (describe_dead_child): 
-	* driver/lock.c (passwd_event_loop): kill more spew in terse mode
-
-2002-04-04  jacob berkman  <[email protected]>
-
-	* driver/lock-Gtk.c (make_dialog): add atk description for
-	progress bar
-
-	* driver/lock.c: don't spew warnings in terse mode
-
-2002-04-04  jacob berkman  <[email protected]>
-
-	* driver/Makefile.in (GTK_SRCS): fix tyop which i think breaks
-	makedepend on solaris
-
-2002-04-02  jacob berkman  <[email protected]>
-
-	* configure.in: remove -export-dynamic, workaround pkg-config bug
-	by explicitely requiring gmodule.  also require gtk 2.0.1 since
-	there were some bug fixes there we require
-
-	* driver/demo-Gtk.c (pref_changed_event_cb): call
-	pref_changed_cb(), return FALSE (fixes #77378)
-
-	* driver/xscreensaver-demo.glade2: change spinbutton "changed"
-	signals to use "value_changed" (fixes #76752) and make the handler
-	for focus_out_events pref_changed_event_cb (fixes #77378)
-
-	* hacks/xpm-pixmap.c (xpm_to_pixmap_1): only init gobject in the
-	gtk 2 version
-
-	* driver/windows.c (mouse_screen): kill warning
-
-2002-03-29  jacob berkman  <[email protected]>
-
-	* driver/xscrensaver-demo.glade2: keynav + atk fixes
-
-	* driver/demo-Gtk.c (create_xscreensaver_demo): turn preview
-	notebook tabs off
-	(clear_preview_window): show the 'no preview available' label when
-	there was an error starting the hack
-
-2002-03-27  jacob berkman  <[email protected]>
-
-	* driver/Makefile.in: name the .desktop
-	screensaver-properties.desktop in all cases
-
-	* driver/Makefile.in: install the .desktop file's icon in the
- 	$gnomedatadir/pixmaps, and install the .desktop file in
- 	$gnomedatadir/control-center-2.0 also
-
-	* driver/screensaver-properties.desktop.in (Categories): add some
- 	categories
-
-	* driver/demo-Gtk.c (main): silently accept --crapplet for the
-  	gtk2 version also
-
-2002-03-27  Duarte Loreto <[email protected]>
-
-        * configure.in: Added Portuguese (pt) to ALL_LINGUAS.
-
-2002-03-25  Stanislav Visnovsky  <[email protected]>
-
-	* configure.in: Added "sk" to ALL_LINGUAS.
-
-2002-03-20  jacob berkman  <[email protected]>
-
-	* driver/demo-Gtk.c (list_activated_cb): connect to row_activated
-	rather than looking for double clicks
-
-	* driver/xscreensaver-demo.glade2: turn off list titles
-
-	* hacks/glx/xpm-ximage.c (xpm_to_ximage_1): port to new pixbuf api
-
-2002-03-19  jacob berkman  <[email protected]>
-
-	* hacks/glx/xpm-ximage.c: fix xlib-pixbuf header
-
-	* driver/xscreensaver-demo.glade2:
-	* driver/demo-Gtk.c: port to TreeView from GtkList, and fix a
-	couple of bugs
-
-	* hacks/xpm-pixmap.c: include path for gdk-pixbuf-xlib changed for
-	gtk 2
-	(xpm_to_pixmap_1): port to new pixbuf loading api, call
-	g_type_init()
-
-	* hacks/webcollage-helper.c (load_pixbuf): helper function to do
-	both gtk 2 and gtk 1 pixbuf loading apis
-	(paste): use new helper function
-	(write_pixbuf): fix warning
-	(main): call g_type_init()
-
-	* driver/xscreensaver-demo.glade2:
-	* driver/xscreensaver-demo.glade2p: use a real glade 2 file, not a
-	libglade-convert generated one.
-
-	* driver/demo-Gtk.c (name_to_widget): reformat warning string
-	(warning_dialog): set the string as selectable
-	(warning_dialog): set the ok/cancel buttons as defaultable stock
-	buttons and switch them
-	(warning_dialog): present the window rather than show/raise
-	(about_menu_cb): use the right UTF-8 codes for (C), use a stock ok
-	button
-	(store_image_directory): fix a warning
-	(populate_prefs_page): use gtk_spin_button_set_value()
-	(eschew_gtk_lossage): fix a warning
-	(create_xscreensaver_settings_dialog): set the advanced, standard
-	buttons as secondary
-	(main): don't do the pixmap hack for gtk 2 - use GtkArrow.
-
-	* configure.in: add/fix checks for gdk-pixbuf-xlib for gtk2 build
-
-2002-03-15  jacob berkman  <[email protected]>
-
-	* configure.in: set GNOME_DATADIR to $(datadir) for gnome 2 build
-
-	* mkinstalldirs: add since we aaren't automake'd
-
-	* driver/demo-Gtk.c (main): only call bindtextdomain_codeset() for
-	the gtk 2 buidl
-
-	* Makefile.in (TARFILES): add some more files po/Makefile.in needs
-
-	* driver/Makefile.in (EXTRAS): add .glade2 file
-
-	* Makefile.in (TARFILES): add intltool and libtool files
-
-2002-03-12  jacob berkman  <[email protected]>
-
-	* autogen.sh: add libtool and intltool stuff, and remove automake
-
-	* config.h.in: add HAVE_GTK2
-
-	* configure.in: add checks for GTK 2.0, libxml 2.4, and libglade
-	1.99.x
-
-	* driver/Makefile.in: add intltool and glade vars, and fix for
-	building against gtk 2.
-	
-	* driver/demo-Gtk-conf.c: (make_parameter):
-	(make_parameters_1):
-	(make_parameters):
-	(load_configurator_1): port to libxml1 / libxml2 compat api
-	
-	* driver/demo-Gtk.c: (name_to_widget):
-	(warning_dialog):
-	(about_menu_cb):
-	(fix_text_entry_sizes):
-	(clear_preview_window):
-	(create_xscreensaver_demo):
-	(create_xscreensaver_settings_dialog):
-	(main): port to gtk 2 / libglade and conditionally compile the
-	non-libglade ui support for the gtk 1 version
-
-	* driver/xscreensaver-demo.glade: fix icon paths
-
-	* driver/xscreensaver-demo.glade2: libglade-converted file
-
-2002-03-08  jacob berkman  <[email protected]>
-
-	< merge patch from Carlos Perell� Mar�n <[email protected]> >
-
-	* po/*: intl stuff
-	
-	* utils/xscreensaver-intl.h: define our gettext macros
-	
-	* utils/Makefile.in (HDRS): add xscreensaver-intl.h
-
-	* driver/screensaver-properties.desktop.in: remove translations
-	and use intltool
-
-	* driver/demo-Gtk.c: 
-	* driver/demo-Gtk-conf.c: include xscreensaver-intl, mark some
-	strings for translation, initialize gettext
-
-	* driver/Makefile.in: add libintl things
-
-	* configure.in: add intltool / gettext macros
-	(AC_OUTPUT): add po/Makefile.in.in
-
-	* config.h.in: add GETTEXT_PACKAGE and ENABLE_NLS
-
-	* Makefile.in (SUBDIRS): add po
-
-	* HACKING: try to intimidate people
-
-	* ChangeLog: new file to track changes
-	
-	* autogen.sh: stolen from glib
-
-	* configure.in (HANDLE_X_PATH_ARG): fixup some [] escaping that
-	breaks with autoconf 2.52
-
-	* configure:
-	* driver/XScreenSaver_ad.h: remove generated files
-
-	* .cvsignore:
-	* driver/.cvsignore:
-	* hacks/.cvsignore:
-	* utils/.cvsignore: quiet cvs
--- a/open-src/app/xscreensaver/sun-src/HACKING	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-This CVS module is only for GTK 2 porting and gettext support.
-
-This module is being maintained by jacob berkman <[email protected]>
-(gnome cvs jberkman).
-
-all patches should be submitted to bugzilla in the xscreensaver
-module.
-
-When this stuff is merged upstream this module will be removed.
-
-jacob berkman  <[email protected]>
-march 8 2002
--- a/open-src/app/xscreensaver/sun-src/driver/lock-Gtk.c	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1353 +0,0 @@
-/* lock-Gtk.c -- a GTK+ password dialog for xscreensaver
- * xscreensaver, Copyright (c) 1993-1998 Jamie Zawinski <[email protected]>
- * 
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation.  No representations are made about the suitability of this
- * software for any purpose.  It is provided "as is" without express or 
- * implied warranty.
- */
-
-/* GTK+ locking code written by Jacob Berkman  <[email protected]> for
- *  Sun Microsystems.
- *
- * Copyright 2009 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
- * "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.
- */
-
-#ifdef HAVE_CONFIG_H
-# include "config.h"
-#endif
-
-#ifdef HAVE_GTK2 /* whole file */
-
-#include <xscreensaver-intl.h>
-
-#include <unistd.h>
-#include <errno.h>
-#include <string.h>
-#include <time.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <fcntl.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
-
-/* AT-enabled */
-#include <stdio.h>
-#include <ctype.h>
-#include <X11/Xos.h>
-#include <X11/Xlib.h>
-#include <X11/Xatom.h>
-#include <X11/Xutil.h>
-#include <X11/Xmu/WinUtil.h>
-
-#include <gconf/gconf-client.h>
-#include <libbonobo.h>
-#include <login-helper/Accessibility_LoginHelper.h>
-#include <atk/atkobject.h>
-
-#include "remote.h"
-#include "trusted-utils.h"
-
-/* AT-enabled */
-void write_null(int n);
-
-
-static Atom XA_UNLOCK_RATIO;
-Atom XA_VROOT;
-Atom XA_SCREENSAVER, XA_SCREENSAVER_RESPONSE, XA_SCREENSAVER_VERSION;
-Atom XA_SCREENSAVER_ID, XA_SCREENSAVER_STATUS, XA_SELECT, XA_DEMO;
-Atom XA_ACTIVATE, XA_BLANK, XA_LOCK, XA_RESTART, XA_EXIT;
-
-typedef struct {
-  AtkObject *atk_dialog;
-  GtkWidget *dialog;
-  GtkWidget *passwd_entry;
-  GtkWidget *progress;
-  GtkWidget *button;
-  GtkWidget *msg_label;
-  GtkWidget *user_prompt_label;
-} PasswdDialog;
-
-static void ok_clicked_cb (GtkWidget *button, PasswdDialog *pwd);
-/*
-** 6182506: scr dialog is obscurred byg MAG window
-*/
-static PasswdDialog * atk_make_dialog (gboolean center_pos);
-/*Global info */
-#define MAXRAISEDWINS	2
-#define KEY "/desktop/gnome/interface/accessibility"
-gboolean	 at_enabled  = FALSE;
-/*
-** 6182506: scr dialog is obscurred byg MAG window
-*/
-gboolean	 center_postion = FALSE; 	
-char *progname = 0;
-Bonobo_ServerInfoList *server_list = NULL;
-CORBA_Environment ev;
-Accessibility_LoginHelper helper;
-Accessibility_LoginHelper *helper_list = NULL;
-CORBA_boolean safe;
- 
-#define FD_TO_PARENT  9
-
-static ssize_t
-write_string (const char *s)
-{
-  ssize_t len;
-
-/*****mali99 remove this ****
-  fprintf (stderr, "-->Child write_string() string to send parent is:%s\n",s);
-  fflush (stderr);
-**/
-
-  g_return_val_if_fail (s != NULL, -1);
-
- do_write:
-  len = write (FD_TO_PARENT, s, strlen (s));
-  if (len < 0 && errno == EINTR)
-    goto do_write;
-
-  return len;
-}
-
-void
-write_null(int n)
-{
-Window w = 0;
-char *s;
-int i;
-
-if (n == 1 || n == 2)
-{
-	for (i =0; i < n; i++)
-	{	
-		s = g_strdup_printf ("%lu\n", w);
-		write_string(s);
-		g_free(s);
-	}
-}
-else 
-{
-  w = 1;
-  /* tell xscreensaver, MAG and GOK not running,
-     Ass. Tech support is still selected(SPEECH), reset timer for each 
-     passwd char.
-  */
-  s = g_strdup_printf ("%lu\n", w);
-                write_string(s);
-                g_free(s);
-  w = 0;
-  s = g_strdup_printf ("%lu\n", w);
-                write_string(s);
-                g_free(s);
-	
-}
-
-}
-
-static GtkWidget *
-load_unlock_logo_image(void)
-{
-  const char *logofile;
-  struct stat statbuf;
-
-  if ( tsol_is_multi_label_session() )
-      logofile = DEFAULT_ICONDIR "/trusted-logo.png";
-  else
-      logofile = DEFAULT_ICONDIR "/unlock-logo.png";
-
-  if (stat(logofile, &statbuf) != 0) {
-      logofile = DEFAULT_ICONDIR "/logo-180.gif"; /* fallback */
-  }
-  
-  return gtk_image_new_from_file (logofile);
-}
-
-/*
-** 6182506: scr dialog is obscurred byg MAG window
-*/
-
-static PasswdDialog *
-atk_make_dialog (gboolean center_pos)
-{
-  GtkWidget *dialog;
-  GtkWidget *frame1,*frame2;
-  GtkWidget *vbox;
-  GtkWidget *hbox,*hbox1,*hbox2;
-  GtkWidget *bbox;
-  GtkWidget *vbox2;
-  AtkObject *atk_frame1,*atk_frame2;
-  AtkObject *atk_vbox;
-  AtkObject *atk_hbox,*atk_hbox1,*atk_hbox2;
-  AtkObject *atk_vbox2;
-  AtkObject *atk_button,*atk_dialog;
-  GtkWidget *entry1,*entry2;
-  AtkObject *atk_entry1,*atk_entry2;
-  GtkWidget *label1,*label2,*label3,*label4,*label5;
-  AtkObject *atk_label1,*atk_label2,*atk_label3,*atk_label4,*atk_label5;
-  GtkWidget *button;
-  GtkWidget *image;
-  AtkObject *atk_image;
-  GtkWidget *progress;
-  GdkPixbuf *pb;
-  char *version;
-  char *user;
-  char *host;
-  char *s;
-  gchar *format_string_locale, *format_string_utf8;
-  PasswdDialog *pwd;
-
-
-  /* taken from lock.c */
-  char buf[256];
-  gchar *utf8_format;
-  time_t now = time (NULL);
-  struct tm* tm;
-
-  server_xscreensaver_version (GDK_DISPLAY (), &version, &user, &host);
-
-  if (!version)
-    {
-      fprintf (stderr, "%s: no xscreensaver running on display %s, exiting.\n", progname, gdk_get_display ());
-      exit (1);
-    }
-  
-/* PUSH */
-  gtk_widget_push_colormap (gdk_rgb_get_cmap ());
-
-
-  pwd = g_new0 (PasswdDialog, 1);
-
-  dialog = gtk_window_new (GTK_WINDOW_POPUP);
-/* 
-** bugid: 5077989(P2)Bug 147580: password input dialogue obscures GOK
-   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
-   bugid: 5002244:  scr unlock dialog incompatible with MAG technique
-** 6182506: scr dialog is obscurred byg MAG window
-*/
-
-  if (center_pos)
-   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
-  else
-   gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_MOUSE);
-/* AT-eabled dialog role = frame*/
-  atk_dialog = gtk_widget_get_accessible(dialog);
-  atk_object_set_description(atk_dialog, _("AT-enabled lock dialog"));
-  pwd->atk_dialog = atk_dialog;
-
- 
-  /* frame */
-  frame1 = g_object_new (GTK_TYPE_FRAME,
-			"shadow", GTK_SHADOW_OUT,
-			NULL);
-  gtk_container_add (GTK_CONTAINER (dialog), frame1);
-  pwd->dialog = dialog;
-
-
-  /*AT role = panel */
-
-  atk_frame1 = gtk_widget_get_accessible(frame1);
-
-
-  /* vbox */
-  vbox = gtk_vbox_new (FALSE, 10);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
-  gtk_container_add (GTK_CONTAINER (frame1), vbox);
-
-  /* AT role= filler(default) */
-  atk_vbox = gtk_widget_get_accessible(vbox);
-
-  
-  /* hbox */
-  hbox = gtk_hbox_new (FALSE, 5);
-  gtk_box_pack_start (GTK_BOX (vbox), hbox,
-		      TRUE, TRUE, 0);
-
-
-  /* image frame */
-  frame2 = g_object_new (GTK_TYPE_FRAME,
-			"shadow", GTK_SHADOW_ETCHED_IN,
-			NULL);
-  gtk_box_pack_start (GTK_BOX (hbox), frame2,
-		      TRUE, TRUE, 0);
- 
-  /* AT role= filler(default) */
-  atk_hbox = gtk_widget_get_accessible(hbox);
-
-
-  /* image */
-  image = load_unlock_logo_image();
-
-  gtk_container_add (GTK_CONTAINER (frame2), image);
-
-  /* AT role=panel */
-
-  atk_frame2 = gtk_widget_get_accessible(frame2);
-
-
-  /* AT role = icon */
-
-  atk_image = gtk_widget_get_accessible(image);
-
-
-   /* progress thingie */
-  progress = g_object_new (GTK_TYPE_PROGRESS_BAR,
-                           "orientation", GTK_PROGRESS_BOTTOM_TO_TOP,
-                           "fraction", 1.0,
-                           NULL);
-  gtk_box_pack_start (GTK_BOX (hbox), progress,
-                      FALSE, FALSE, 0);
-  pwd->progress = progress;
-  atk_object_set_description (gtk_widget_get_accessible (progress),
-            _("Percent of time you have to enter the password.  "));
-
-
-  /* text fields */
-
-  vbox2 = gtk_vbox_new (TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (hbox), vbox2,
-		      TRUE, TRUE, 0);
-
-  s = g_strdup_printf ("<span size=\"xx-large\"><b>%s </b></span>", _("Screensaver"));
-  /* XScreenSaver foo label */
-  label1 = g_object_new (GTK_TYPE_LABEL,
-			"use-markup", TRUE,
-			"label", s,
-			NULL);
-  gtk_box_pack_start (GTK_BOX (vbox2), label1,
-		      FALSE, FALSE, 0);
-
-  /*AT role =filler*/
-  
-  atk_vbox2 = gtk_widget_get_accessible(vbox2);
-
-  /*AT role =label prog name */
-  atk_label1 = gtk_widget_get_accessible(label1);
-
-
-  g_free (s);
-
-  /* This display is locked. */
-  label2 = g_object_new (GTK_TYPE_LABEL,
-			"use-markup", TRUE,
-			"label", _("<b>This display is locked.</b>"),
-			NULL);
-  gtk_box_pack_start (GTK_BOX (vbox2), label2,
-		      FALSE, FALSE, 0);
-  /* AT role = label , msg */
-
-  atk_label2 = gtk_widget_get_accessible(label2);
-
-
-
-  /* table with password things */
-    hbox1 = gtk_widget_new (GTK_TYPE_HBOX,
-                         "border_width", 3,
-                         "visible",TRUE,
-                        "homogeneous",FALSE,
-                        "spacing",2,
-                        NULL);
-
-
-  /* User: */
-  label3 = g_object_new (GTK_TYPE_LABEL,
-                        "label", _("        User:"),
-                        "use_underline", TRUE,
-			"justify",GTK_JUSTIFY_FILL,
-			"xalign", 1.0,
-			NULL);
-  
-  /* name */
-  entry1 = g_object_new (GTK_TYPE_LABEL,
-                        "use-markup", TRUE,
-                        "label", user,
-                        "justify",GTK_JUSTIFY_CENTER,
-                        NULL);
-
-  gtk_box_pack_start ( GTK_BOX(hbox1), label3,  FALSE, FALSE, 0);
-  gtk_box_pack_end  ( GTK_BOX(hbox1), entry1, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox2), hbox1,
-		      FALSE, FALSE, 0);
-
-
-
-   /* Password or Pin */
-
-
-  hbox2 = gtk_widget_new (GTK_TYPE_HBOX,
-                         "border_width", 5,
-                         "visible",TRUE,
-                        "homogeneous",FALSE,
-                        "spacing",1,
-                        NULL);
-
-  /* Password: */
-    label4 = g_object_new (GTK_TYPE_LABEL,
-	"label", _("         "), /*blank space for prompt*/
-                           "use_underline", TRUE,
-                        "use_markup",FALSE,
-                        "justify",GTK_JUSTIFY_RIGHT,
-                        "wrap", FALSE,
-                        "selectable",TRUE,
-                        "xalign", 1.0,
-                        "yalign",0,
-                        "xpad",0,
-                        "ypad",0,
-                        "visible", FALSE,
-			  NULL);
-
-
- entry2 = g_object_new (GTK_TYPE_ENTRY,
-			"activates-default", TRUE,
-			"visible", TRUE,
-                        "editable", TRUE,
-			"visibility", FALSE,
-                      "can_focus", TRUE,
-		NULL);
-
-
-  gtk_box_pack_start ( GTK_BOX(hbox2), label4,  FALSE, FALSE, 0);
-  gtk_box_pack_end  ( GTK_BOX(hbox2), entry2, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
-  pwd->user_prompt_label = label4;
- 
-  pwd->passwd_entry = entry2;
-  
- 
-  /* AT role=panel */
-  atk_hbox1 = gtk_widget_get_accessible(hbox1);
-
-  /* AT role=label */
-  atk_label3= gtk_widget_get_accessible(label3);
-
-  /* AT role=label */
-  atk_label4= gtk_widget_get_accessible(label4);
-
-  /* AT role = text */
-  atk_entry1 = gtk_widget_get_accessible(entry1);
-
-  /* hbox1 for password/pin and text entry */
- 
-  atk_hbox2 = gtk_widget_get_accessible(hbox2);
-
-
-/* AT role = password-text */
-  /* gtk_widget_grab_focus (entry2);
-   */
-  atk_entry2 = gtk_widget_get_accessible(entry2);
-
-  /* bugid 5079870 */
-   atk_object_set_role(atk_entry2, ATK_ROLE_PASSWORD_TEXT);
-  
-  tm = localtime (&now);
-  memset (buf, 0, sizeof (buf));
-  format_string_utf8 = _("%d-%b-%y (%a); %I:%M %p");
-  format_string_locale = g_locale_from_utf8 (format_string_utf8, -1,
-					     NULL, NULL, NULL);
-  strftime (buf, sizeof (buf) - 1, format_string_locale, tm);
-  g_free (format_string_locale);
-
-  /*bug 4783832  s = g_strdup_printf ("<small>%s</small>", buf);**/
-  utf8_format = g_locale_to_utf8 (buf, -1, NULL, NULL, NULL);
-
-  s = g_strdup_printf ("<small>%s</small>", utf8_format);
-
-if (utf8_format)
-  g_free (utf8_format);
-
-  /* date string */
-  label5 = g_object_new (GTK_TYPE_LABEL,
-			"use-markup", TRUE,
-			"label",  s,
-			NULL);
-  gtk_box_pack_start (GTK_BOX (vbox2), label5,
-		      FALSE, FALSE, 0);
-  /* AT role=label */
-  atk_label5= gtk_widget_get_accessible(label5);
-
-
-if (s)
-  g_free (s);
-
-  /* button box */
-  bbox = g_object_new (GTK_TYPE_HBUTTON_BOX,
-		       "layout-style", GTK_BUTTONBOX_END,
-		       "spacing", 10,
-		       NULL);
-
-  /* Ok button */
-  button = gtk_button_new_from_stock (GTK_STOCK_OK);
-  pwd->button = button;
-
-  gtk_box_pack_end (GTK_BOX (bbox), button,
-		    FALSE, TRUE, 0);
-
-
-  atk_button = gtk_widget_get_accessible(button);
-
-  free (user);
-  free (version);
-  free (host);
-
- /* POP */
- gtk_widget_pop_colormap ();
-
-  return pwd;
-}
-
-
-static PasswdDialog *
-make_dialog (void)
-{
-  GtkWidget *dialog;
-  GtkWidget *frame;
-  GtkWidget *vbox;
-  GtkWidget *hbox,*hbox1,*hbox2;
-  GtkWidget *bbox;
-  GtkWidget *vbox2;
-  GtkWidget *entry;
-  GtkWidget *label;
-  GtkWidget *scrolled_text;
-  GtkWidget *button;
-  GtkWidget *image;
-  GtkWidget *progress;
-  GdkPixbuf *pb;
-  PasswdDialog *pwd;
-  char *version;
-  char *user;
-  char *host;
-  char *s;
-  gchar *format_string_locale, *format_string_utf8;
-
-  /* taken from lock.c */
-  char buf[256];
-  gchar *utf8_format;
-  time_t now = time (NULL);
-  struct tm* tm;
-
-  server_xscreensaver_version (GDK_DISPLAY (), &version, &user, &host);
-
-  if (!version)
-    {
-      fprintf (stderr, "%s: no xscreensaver running on display %s, exiting.\n", progname, gdk_get_display ());
-      exit (1);
-    }
-  
-/* PUSH */
- gtk_widget_push_colormap (gdk_rgb_get_cmap ());
-
- /**colormap = gtk_widget_get_colormap (parent);**/
-
-  pwd = g_new0 (PasswdDialog, 1);
-
-  dialog = gtk_window_new (GTK_WINDOW_POPUP);
-  pwd->dialog = dialog;
-  gtk_window_set_position (GTK_WINDOW (dialog), GTK_WIN_POS_CENTER_ALWAYS);
-  
-  gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); /*mali99 irritating*/
-
-  
-  /* frame */
-  frame = g_object_new (GTK_TYPE_FRAME,
-			"shadow", GTK_SHADOW_OUT,
-			NULL);
-  gtk_container_add (GTK_CONTAINER (dialog), frame);
-
-  /* vbox */
-  vbox = gtk_vbox_new (FALSE, 10);
-  gtk_container_set_border_width (GTK_CONTAINER (vbox), 10);
-  gtk_container_add (GTK_CONTAINER (frame), vbox);
-  
-  /* hbox */
-  hbox = gtk_hbox_new (FALSE, 5);
-  gtk_box_pack_start (GTK_BOX (vbox), hbox,
-		      TRUE, TRUE, 0);
-
-  /* image frame */
-  frame = g_object_new (GTK_TYPE_FRAME,
-			"shadow", GTK_SHADOW_ETCHED_IN,
-			NULL);
-  gtk_box_pack_start (GTK_BOX (hbox), frame,
-		      TRUE, TRUE, 0);
-
-  /* image */
-  image = load_unlock_logo_image();
-
-  gtk_container_add (GTK_CONTAINER (frame), image);
-
-  /* progress thing */
-  progress = g_object_new (GTK_TYPE_PROGRESS_BAR,
-                           "orientation", GTK_PROGRESS_BOTTOM_TO_TOP,
-                           "fraction", 1.0,
-                           NULL);
-  pwd->progress = progress;
-  gtk_box_pack_start (GTK_BOX (hbox), progress,
-                      FALSE, FALSE, 0);
-
-  /* text fields */
-  vbox2 = gtk_vbox_new (TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (hbox), vbox2,
-		      TRUE, TRUE, 0);
-
-  s = g_strdup_printf ("<span size=\"xx-large\"><b>%s </b></span>", _("Screensaver"));
-  /* XScreenSaver foo label */
-  label = g_object_new (GTK_TYPE_LABEL,
-			"use-markup", TRUE,
-			"label", s,
-			NULL);
-  gtk_box_pack_start (GTK_BOX (vbox2), label,
-		      FALSE, FALSE, 0);
-  g_free (s);
-
-  /* This display is locked. */
-  label = g_object_new (GTK_TYPE_LABEL,
-			"use-markup", TRUE,
-			"label", _("<b>This display is locked.</b>"),
-			NULL);
-  pwd->msg_label = label;
-  gtk_box_pack_start (GTK_BOX (vbox2), label,
-		      FALSE, FALSE, 0);
-
-    /* hbox1 table with password things */
-    hbox1 = gtk_widget_new (GTK_TYPE_HBOX,
-                         "border_width", 3,
-                         "visible",TRUE,
-                        "homogeneous",FALSE,
-                        "spacing",1,
-                        NULL);
-
-  /* User: */
-  label = g_object_new (GTK_TYPE_LABEL,
-                  	"label", _("        User:"),
-                        "use_underline", TRUE,
-                        "justify",GTK_JUSTIFY_FILL,
-                        "xalign", 1.0,
-                        NULL);
-
-  /* name */
-  entry = g_object_new (GTK_TYPE_LABEL,
-                        "use-markup", TRUE,
-                        "label", user,
-                        "justify",GTK_JUSTIFY_CENTER,
-                        NULL);
-
-  gtk_box_pack_start ( GTK_BOX(hbox1), label,  FALSE, FALSE, 0);
-  gtk_box_pack_end  ( GTK_BOX(hbox1), entry, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox2), hbox1, FALSE, FALSE, 0);
-
-
-    /* Password or Pin */
-
-
-  hbox2 = gtk_widget_new (GTK_TYPE_HBOX,
-                         "border_width", 5,
-                         "visible",TRUE,
-                        "homogeneous",FALSE,
-                        "spacing",1,
-                        NULL);
-
-    label = g_object_new (GTK_TYPE_LABEL,
-                        "label", "        ", /*blank space for prompt*/
-			"use-markup", TRUE,
-                        "use_underline", TRUE,
-                        "justify",GTK_JUSTIFY_RIGHT,
-                        "wrap", FALSE,
-                        "selectable",FALSE,
-                        "xalign", 1.0,
-                        "yalign",0.5,
-                        "xpad",0,
-                        "ypad",0,
-                        "visible", FALSE,
-                          NULL);
-
-  pwd->user_prompt_label = label;  /**mali99*/
-
-
-   entry = g_object_new (GTK_TYPE_ENTRY,
-                        "activates-default", TRUE,
-                        "visible", TRUE,
-                        "editable", TRUE,
-                        "visibility", FALSE,
-                      "can_focus", TRUE,
-                NULL);
-
-
-  gtk_box_pack_start ( GTK_BOX(hbox2), label,  FALSE, FALSE, 0);
-  gtk_box_pack_end  ( GTK_BOX(hbox2), entry, TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
-
-  /* passwd */
-  pwd->passwd_entry = entry;
-  gtk_widget_grab_focus (entry);
-  
-  tm = localtime (&now);
-  memset (buf, 0, sizeof (buf));
-  format_string_utf8 = _("%d-%b-%y (%a); %I:%M %p");
-  format_string_locale = g_locale_from_utf8 (format_string_utf8, -1,
-					     NULL, NULL, NULL);
-  strftime (buf, sizeof (buf) - 1, format_string_locale, tm);
-  g_free (format_string_locale);
-
-  /*bug 4783832  s = g_strdup_printf ("<small>%s</small>", buf);**/
-  utf8_format = g_locale_to_utf8 (buf, -1, NULL, NULL, NULL);
-
-  s = g_strdup_printf ("<small>%s</small>", utf8_format);
-
-if (utf8_format)
-  g_free (utf8_format);
-
-  /* date string */
-  label = g_object_new (GTK_TYPE_LABEL,
-			"use-markup", TRUE,
-			"label",  s,
-			NULL);
-  gtk_box_pack_start (GTK_BOX (vbox2), label,
-		      FALSE, FALSE, 0);
-if (s)
-  g_free (s);
-
-  /* button box */
-  bbox = g_object_new (GTK_TYPE_HBUTTON_BOX,
-		       "layout-style", GTK_BUTTONBOX_END,
-		       "spacing", 10,
-		       NULL);
-/*
-  gtk_box_pack_start (GTK_BOX (vbox), bbox,
-		      FALSE, FALSE, 0);
-*/
-
-  /* Ok button */
-  button = gtk_button_new_from_stock (GTK_STOCK_OK);
-  pwd->button = button;
-  gtk_box_pack_end (GTK_BOX (bbox), button,
-		    FALSE, TRUE, 0);
-
-  free (version);
-  free (user);
-  free (host);
-
- /* POP */
- gtk_widget_pop_colormap ();
-
-  return pwd;
-}
-
-static void
-desensitize_entry (PasswdDialog *pwd)
-{
-	g_object_set (pwd->passwd_entry,
-		"editable", FALSE,
-		NULL);
-}
-
-
-
-static void
-ok_clicked_cb (GtkWidget *button, PasswdDialog *pwd)
-{
-  char *s;
-  int i;
- 
-
-
-  g_object_set (pwd->msg_label, "label", _("<b>Checking...</b>"), NULL);
-  s = g_strdup_printf ("%s\n", gtk_entry_get_text (GTK_ENTRY (pwd->passwd_entry)));
-     
-  write_string (s);
-
-/* Reset password field to blank, else passwd field shows old passwd *'s, visible when
-   passwd is expired, and pam is walking the user to change old passwd.
- */
-  gtk_editable_delete_text (pwd->passwd_entry, 0, strlen(s));
-  g_free (s);
-
-/* #6178584 P1 "Xscreensaver needs to use ROLE_PASSWORD_TEXT 
-   1st part: fixing "It is too early to invoke LoginHelper_setSafe(FALSE)"
-   2nd part: located at GOK
-   only GOK and MAG use loginhelper()
-*/
-
-  if (server_list)
-  {
-   for (i = 0; i < server_list->_length; i++)
-    {
-        helper = helper_list[i];
-        /* really no need to check the return value this time */
-        Accessibility_LoginHelper_setSafe (helper, FALSE, &ev);
-        if (BONOBO_EX (&ev))
-        {
-            g_warning ("setSafe(FALSE) failed: %s",
-                       bonobo_exception_get_text (&ev));
-            CORBA_exception_free (&ev);
-        }
-        CORBA_Object_release (helper, &ev);
-    }
-    CORBA_free (server_list);
-    bonobo_debug_shutdown ();
-  }
-
-}
-
-static void
-connect_signals (PasswdDialog *pwd)
-{
-  g_signal_connect (pwd->button, "clicked",
-		    G_CALLBACK (ok_clicked_cb),
-		    pwd);
-
-  g_signal_connect (pwd->passwd_entry, "activate",
-		    G_CALLBACK (ok_clicked_cb),
-		    pwd);
-
-  g_signal_connect (pwd->dialog, "delete-event",
-		    G_CALLBACK (gtk_main_quit),
-		    NULL);
-}
- 
-
-
-static GdkFilterReturn
-dialog_filter_func (GdkXEvent *xevent, GdkEvent *gevent, gpointer data)
-{
-  PasswdDialog *pwd = data;
-  XEvent *event = xevent;
-  gdouble ratio;
- 
-  if ((event->xany.type != ClientMessage || 
-	event->xclient.message_type != XA_UNLOCK_RATIO))
-    return GDK_FILTER_CONTINUE;
- 
-  ratio = event->xclient.data.l[0] / (gdouble)100.0;
-
-  /* CR 6176524 passwdTimeoutEnable for disabled user */
-  if (event->xclient.data.l[1] == 0)
-    g_object_set (pwd->progress, "fraction", ratio, NULL);
-  return GDK_FILTER_REMOVE;
-
-}
-
-static gboolean
-handle_input (GIOChannel *source, GIOCondition cond, gpointer data)
-{
-  PasswdDialog *pwd = data;
-  GIOStatus status;
-  char *str;
-  char *label;
-  char* hmsg= (char*) NULL;  /* This is the heading of lock dialog..shows status**/
-
-  if (cond & G_IO_HUP) /* daemon crashed/exited/was killed */
-      gtk_main_quit();
-
- read_line:
-  status = g_io_channel_read_line (source, &str, NULL, NULL, NULL);
-  if (status == G_IO_STATUS_AGAIN)
-    goto read_line;
-/* debug only 
-  if (status == G_IO_STATUS_ERROR)
-      g_message("handle input() status_error %s\n",str);
-  if (status == G_IO_STATUS_EOF)
-      g_message("handle input() status_eof %s\n",str);
-  if (status == G_IO_STATUS_NORMAL)
-      g_message("handle input() status_normal %s\n",str);
-  Most likely, the returned error msg of g_io_channel_read_line(),
-  i.e str will not be translated into other locales ...
-
-*/
-   if (str)
-    {
-     /**fprintf (stderr,">>>>>Child..in handle_input..string is:%s\n",str);
-     fflush (stderr);
-     **/
-
-     /* This is an ugly code, imp to remember strncmp is a must here,
-      * the string sent by parent is in weird stage only strncmp works,
-      * i believe need to add a \n to the end of string supplied by parent
-      * for it to work with other string operations, but strncmp works fine.
-      */
-
-     if( ((strncmp(str,"pw_", 3)) == 0) )
-      {
-       if ( (strncmp(str,"pw_ok",5)) == 0 )
-        {
-          hmsg = strdup(_("Authentication Successful!")); 
-        }
-       else if ( (strncmp(str,"pw_acct_ok",10)) == 0 )
-        {
-          hmsg = strdup(_("PAM Account Management Also Successful!")); 
-        }
-       else if ( (strncmp(str,"pw_setcred_fail",15)) == 0 )
-        {
-          hmsg = strdup(_("Just a Warning PAM Set Credential Failed!")); 
-        }
-       else if ( (strncmp(str,"pw_setcred_ok",13)) == 0 )
-        {
-          hmsg = strdup(_("PAM Set Credential Also Successful!")); 
-        }
-       else if ((strncmp(str,"pw_acct_fail",12)) == 0 ) 
-        {
-          hmsg = strdup (_("Your Password has expired."));
-        }
-       else if ((strncmp(str,"pw_fail",7)) == 0 ) 
-        {
-          hmsg = strdup (_("Sorry!"));
-        }
-       else if ( strncmp(str,"pw_read",7) == 0 )
-        {
-          hmsg = strdup(_("Waiting for user input!"));
-        }
-       else if ( strncmp(str,"pw_time",7) == 0 )
-        {
-          hmsg = strdup(_("Timed Out!"));
-        }
-       else if ( strncmp(str,"pw_null",7) == 0 )
-        {
-          hmsg = strdup(_("Still Checking!"));
-        }
-       else if ( strncmp(str,"pw_cancel",9) == 0) 
-        {
-         hmsg =strdup(_("Authentication Cancelled!"));
-        }
-       else 
-        {
-         hmsg =strdup(_("Dont know whats up!"));
-        }
-
-       if (hmsg)
-        {
-         label = g_strdup_printf ("<b>%s\n</b>", hmsg);
-         g_object_set (pwd->msg_label, "label", label, NULL);
-         free (hmsg);
-         g_free (label);
-        }
-      }
-     if ( strncmp(str,"pw_", 3) != 0) 
-      {
-      gtk_label_set_text (GTK_LABEL(pwd->user_prompt_label), str); 
-/*
-** 6478362(P3) When the AT support is enabled, the input focus
-** is located at password label
-*/
-      gtk_widget_grab_focus(pwd->passwd_entry);
-      XSync (GDK_DISPLAY(), False);
-      }
-
-      g_free (str);
-    }
-
-  return (status == G_IO_STATUS_NORMAL);
-}
-
-int
-main (int argc, char *argv[])
-{
-  GIOChannel *ioc;
-  PasswdDialog *pwd;
-  char *s;
-  char *real_progname = argv[0];
-  GConfClient *client;
-  const char *modulesptr = NULL;
-  int j;
-
-#ifdef ENABLE_NLS
-  bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
-  textdomain (GETTEXT_PACKAGE);
-
-# ifdef HAVE_GTK2
-  bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
-# else /* ! HAVE_GTK2 */
-  if (!setlocale (LC_ALL, ""))
-    fprintf (stderr, "%s: locale not supported by C library\n", real_progname);
-# endif /* ! HAVE_GTK2 */
-
-#endif /* ENABLE_NLS */
-
-  s = strrchr (real_progname, '/');
-  if (s) real_progname = s+1;
-  progname = real_progname;
-
-  gtk_init (&argc, &argv);
-
-  /* Intern the atoms that xscreensaver_command() needs.
-   */
-  XA_VROOT = XInternAtom (GDK_DISPLAY (), "__SWM_VROOT", FALSE);
-  XA_SCREENSAVER = XInternAtom (GDK_DISPLAY (), "SCREENSAVER", FALSE);
-  XA_SCREENSAVER_VERSION = XInternAtom (GDK_DISPLAY (), "_SCREENSAVER_VERSION",FALSE);
-  XA_SCREENSAVER_STATUS = XInternAtom (GDK_DISPLAY (), "_SCREENSAVER_STATUS", FALSE);
-  XA_SCREENSAVER_ID = XInternAtom (GDK_DISPLAY (), "_SCREENSAVER_ID", FALSE);
-  XA_SCREENSAVER_RESPONSE = XInternAtom (GDK_DISPLAY (), "_SCREENSAVER_RESPONSE", FALSE);
-  XA_SELECT = XInternAtom (GDK_DISPLAY (), "SELECT", FALSE);
-  XA_DEMO = XInternAtom (GDK_DISPLAY (), "DEMO", FALSE);
-  XA_ACTIVATE = XInternAtom (GDK_DISPLAY (), "ACTIVATE", FALSE);
-  XA_BLANK = XInternAtom (GDK_DISPLAY (), "BLANK", FALSE);
-  XA_LOCK = XInternAtom (GDK_DISPLAY (), "LOCK", FALSE);
-  XA_EXIT = XInternAtom (GDK_DISPLAY (), "EXIT", FALSE);
-  XA_RESTART = XInternAtom (GDK_DISPLAY (), "RESTART", FALSE);
-  XA_UNLOCK_RATIO = XInternAtom (GDK_DISPLAY (), "UNLOCK_RATIO", FALSE);
-
-/* bugid 6346056(P1):
-ATOK pallet sometimes appears in screensave/lock-screen mode
-*/
-  putenv ("GTK_IM_MODULE=gtk-im-context-simple");
-
-
-  /* AT-enable mode ? */
-  client = gconf_client_get_default ();
-  at_enabled = gconf_client_get_bool (client, KEY, NULL);
-     
-/*CR6205224 disable AT support temp.
-  hardwired, at_enabled is False
-  at_enabled = False;
-* 6240938 screensaver-lock's password timer needs to to be reset for each key
-          (all users) and enabling AT support
-*/
-   
-  if (at_enabled) {
-
-
- /* GTK Accessibility Module initialized */
-  modulesptr = g_getenv ("GTK_MODULES");
-  if (!modulesptr || modulesptr [0] == '\0')
-        putenv ("GTK_MODULES=gail:atk-bridge");
-
-
-
-
-  
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    Accessibility_LoginHelper_WindowList *windows;
-    int i, wid_count = 0;
-
-
-  /*
-if there is any running GOK or MAG, using GTK_WIN_POS_MOUSE
-*/
-
-
-
-
-
-
-
-
-
-
-
-      CORBA_exception_init (&ev);
-    if (!bonobo_init (&argc, argv))
-    {
-        g_error ("Can't initialize Bonobo");
-    }
-
-        /* bonobo-activation query lists existing instances */
-    server_list = bonobo_activation_query (
-        "(repo_ids.has('IDL:Accessibility/LoginHelper:1.0')) AND _active",
-        NULL, &ev);
-
-    if (BONOBO_EX (&ev))
-    {
-        bonobo_debug_shutdown ();
-        g_error ("LoginHelper query failed : %s",
-                 bonobo_exception_get_text (&ev));
-        /* not reached (below) because g_error exits */
-        CORBA_exception_free (&ev);
-    }
-
- 
-/*
-** 6182506: scr dialog is obscurred byg MAG window
-*/
-
-   if (server_list && server_list->_length)
-        center_postion = FALSE;
-   else
-        center_postion = TRUE;    /* center position of screen */
-        
-  pwd = atk_make_dialog(center_postion);
-  connect_signals (pwd);
-
-  gtk_widget_show_all (pwd->dialog);
-  gtk_window_present (GTK_WINDOW (pwd->dialog));
-  gtk_widget_map (pwd->dialog);
-
-  XSync(GDK_DISPLAY(), False);
-
-
-  gdk_window_add_filter (pwd->dialog->window, dialog_filter_func, pwd);
-  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->dialog->window));
-  write_string (s);
-  g_free (s);
-  /*CR 5039878 2 3 "Password:" field should be focused / have flashing caret  on the xscreensaver site, it should be focus on passwd_entry
-  */
-  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->passwd_entry->window));  write_string (s);
-  g_free (s);
-
-
-
-
-     g_message ("%d LoginHelpers are running.",
-               server_list ? server_list->_length : 0);
-
-
-    helper_list = g_new0 (Accessibility_LoginHelper, server_list->_length);
-
-    /* for each instance... */
-    for (i = 0; i < server_list->_length; i++)
-    {
-	Accessibility_LoginHelper helper;
-	Bonobo_Unknown server;
-	Bonobo_ServerInfo info = server_list->_buffer[i];
-
-	server = bonobo_activation_activate_from_id (
-	    info.iid, Bonobo_ACTIVATION_FLAG_EXISTING_ONLY, NULL, &ev);
-
-	if (BONOBO_EX (&ev))
-	{
-	    g_warning ("Error activating server %d: %s", i, bonobo_exception_get_text (&ev));
-	    CORBA_exception_free (&ev);
-	    continue;
-	}
-	else if (server == CORBA_OBJECT_NIL)
-	{
-	    g_warning ("Activated server %d is NIL!", i);
-	    continue;
-	}
-
-	bonobo_activate ();
-
-	helper = Bonobo_Unknown_queryInterface (
-	    server, 
-	    "IDL:Accessibility/LoginHelper:1.0",
-	    &ev);
-
-	if (BONOBO_EX (&ev))
-	{
-	    g_warning ("Error performing interface query: %s", bonobo_exception_get_text (&ev));
-	    CORBA_exception_free (&ev);
-	    continue;
-	}
-	else if (helper == CORBA_OBJECT_NIL)
-	{
-	    g_warning ("Activated an object which advertised LoginHelper but does not implement it!");
-	    continue;
-	}
-
-	helper_list[i] = helper;
-	bonobo_object_release_unref (server, &ev);
-
-	if (helper && !BONOBO_EX (&ev))
-	{
-	    /* ask the helper to go into safe mode */
- 
-	    safe = Accessibility_LoginHelper_setSafe (helper, TRUE, &ev);
-	    if (BONOBO_EX (&ev))
-	    {
-		g_warning ("setSafe(TRUE) failed: %s", 
-			   bonobo_exception_get_text (&ev));
-		CORBA_exception_free (&ev);
-	    }
-	    /* get the raise window list (if the program went into safe mode) */
-	    if (safe) 
-	    {
-		int j;
-		gboolean needs_windows_raised = FALSE;
-		Accessibility_LoginHelper_DeviceReqList *list;
-
-		g_message ("safe");
-
-		/* does this helper need to have windows raised? */
-		list = Accessibility_LoginHelper_getDeviceReqs (helper, &ev);
-
-		if (BONOBO_EX (&ev)) {
-		    g_warning ("Bonobo exception getting Device Requirements: %s",
-			     bonobo_exception_get_text (&ev));
-		    CORBA_exception_free (&ev);
-		}
-		else
-		{
-		    g_message ("LoginHelper device requirements: ");
-		    if (list->_length == 0) 
-			g_message ("\tNone.");
-
-		    for (j = 0; j < list->_length; j++) 
-		    {
-			switch (list->_buffer[j])
-			{
-			    case Accessibility_LoginHelper_GUI_EVENTS:
-				g_message ("\tNeeds access to the GUI event subsystem (e.g. Xserver)");
-				break;
-			    case Accessibility_LoginHelper_EXT_INPUT:
-				g_message ("\tReads XInput extended input devices");
-				break;
-			    case Accessibility_LoginHelper_POST_WINDOWS:
-				g_message ("\tPosts windows");
-				needs_windows_raised = TRUE;
-				break;
-			    case Accessibility_LoginHelper_AUDIO_OUT:
-				g_message ("\tWrites to audio device");
-				break;
-			    case Accessibility_LoginHelper_AUDIO_IN:
-				g_message ("\tReads from audio device");
-				break;
-			    case Accessibility_LoginHelper_LOCALHOST:
-				g_message ("\tNeeds LOCALHOST network connection");
-				break;
-			    case Accessibility_LoginHelper_SERIAL_OUT:
-				g_message ("\tNeeds to write to one or more serial ports");
-				break;
-			    default:
-				break;
-			}
-		    }
-		    CORBA_free (list);
-		}
-		if (needs_windows_raised) 
-		{
-		    /* don't raise in this test, but do something with each wid */
-		    windows = Accessibility_LoginHelper_getRaiseWindows (helper, &ev);
-		    if (BONOBO_EX (&ev))
-		    {
-			g_warning ("getRaiseWindows failed: %s", 
-				   bonobo_exception_get_text (&ev));
-			CORBA_exception_free (&ev);
-		    }
-		    g_message ("%d windows need raising", windows->_length);
-		    for (j = 0; j < windows->_length; j++)	
-		    {
-			Window wid;
-			wid = windows->_buffer[j].winID;
-			g_message ("Window ID = x%x",  wid);
-	        	if (wid_count < MAXRAISEDWINS && wid) {
-			wid_count++;
-			write_string(g_strdup_printf ("%lu\n", wid));
-
-			}
-
-
-		    }    
-		}
-	    }
-	    else
-	    {
-		g_warning ("LoginHelper %d did not go into safe mode", i);
-	    }
-	}
-	else
-	{
-	    if (BONOBO_EX (&ev))
-	    {
-		g_warning ("Error activating %s: %s", 
-			   info.iid, bonobo_exception_get_text (&ev));
-		CORBA_exception_free (&ev);
-	    }
-	    else
-	    {
-		g_warning ("no active instance of %s found", info.iid);
-	    }
-	}
-    }
-
-
-
-
-	
-    if (wid_count == 0)
-	write_null(3);
-    if (wid_count == 1)
-	write_null(1);
-
-
-  } /* at-enable mode */
-
-  else 
-  {			/* non at-enabled mode */
-    pwd = make_dialog ();
-  connect_signals (pwd);
-
-
-
-  gtk_widget_show_all (pwd->dialog);
-  gtk_window_present (GTK_WINDOW (pwd->dialog));
-  gtk_widget_map (pwd->dialog);
-
-                                                                                
-  XSync(GDK_DISPLAY(), False);
-                                                                                
-  gdk_window_add_filter (pwd->dialog->window, dialog_filter_func, pwd);
-
-  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->dialog->window));
-  write_string (s);
-  g_free (s);
-    
-/*CR 5039878 2 3 "Password:" field should be focused / have flashing caret */
-  s = g_strdup_printf ("%lu\n", GDK_WINDOW_XID (pwd->passwd_entry->window));
-  write_string (s);
-  g_free (s);
-
- 
-  /* put the dummy for compactible with at-enable mode , change later */
-  write_null(MAXRAISEDWINS);
-  }
-
-  ioc = g_io_channel_unix_new (0);
-  g_io_add_watch (ioc, G_IO_IN | G_IO_HUP, handle_input, pwd);
-
-  gtk_main ();
-  
-  return 0;
-}
-
-
-#endif /* HAVE_GTK2 */
-
Binary file open-src/app/xscreensaver/sun-src/driver/opensolaris-logo.png has changed
--- a/open-src/app/xscreensaver/sun-src/driver/trusted-utils.c	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,170 +0,0 @@
-/*
- * Trusted xscreensaver
- *
- * 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
- * "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.
- *
- *
- *
- * Based on work by Erwann Chenede, Ghee Teo
- *
- * Used to check if we are in a multilabel session and to load
- * additional functionality within the multilabel session.
- */
-#include <dlfcn.h>
-#include <link.h>
-#include <stdlib.h>
-#include <user_attr.h>
-#include <sys/types.h>
-#include <unistd.h>
-#include <strings.h>
-#include <stdio.h>
-#include "trusted-utils.h"
-
-/* 
- * Checks for Multi label session 
- */
-gboolean
-tsol_is_multi_label_session (void)
-{
-       static char *session = NULL;
-
-       if (!session)
-               session = (char *)getenv("TRUSTED_SESSION");
-
-       if (!session)
-               return FALSE;
-
-       return TRUE;
-}
-
-/*
- * dynamicly load the libxtsol library
- */
-static
-void * dlopen_xtsol (void)
-{
-   void  *handle = NULL;
-
-   if ((handle = dlopen ("/usr/lib/libXtsol.so.1", RTLD_LAZY)) != NULL)
-       return handle;
-   if ((handle = dlopen ("/usr/openwin/lib/libXtsol.so.1", RTLD_LAZY)) != NULL)
-       return handle;
-
-   return handle;
-}
-
-/*
- * dynamicly load the libDtTsol library
- */
-static
-void * dlopen_gnometsol (void)
-{
-   void  *handle = NULL;
-
-   if ((handle = dlopen ("/usr/lib/libgnometsol.so.1", RTLD_LAZY)) != NULL)
-       return handle;
-
-   return handle;
-}
-
-xtsol_XTSOLgetWorkstationOwner      libxtsol_XTSOLgetWorkstationOwner = NULL;
-
-void
-XTSOLgetWorkstationOwner(Display *dpy, uid_t *WorkstationOwner)
-{
-  static gpointer xtsol_handle = NULL;
-  static gboolean _xtsol_initialized = FALSE;
-
-  if ( ! _xtsol_initialized ) {
-    _xtsol_initialized = TRUE;
-    xtsol_handle = dlopen_xtsol ();
-    if (xtsol_handle != NULL)
-      libxtsol_XTSOLgetWorkstationOwner = (xtsol_XTSOLgetWorkstationOwner) dlsym(xtsol_handle,
-					     "XTSOLgetWorkstationOwner");
-  }
-
-  if (libxtsol_XTSOLgetWorkstationOwner == NULL) {
-    *WorkstationOwner = getuid();
-  } else
-    libxtsol_XTSOLgetWorkstationOwner(dpy, WorkstationOwner);
-}
-
-xtsol_XTSOLMakeTPWindow      libxtsol_XTSOLMakeTPWindow = NULL;
-
-void
-XTSOLMakeTPWindow(Display *dpy, Window w)
-{
-  static gpointer xtsol_handle = NULL;
-  static gboolean _xtsol_initialized = FALSE;
-
-  if ( ! _xtsol_initialized ) {
-    _xtsol_initialized = TRUE;
-    xtsol_handle = dlopen_xtsol ();
-    if (xtsol_handle != NULL)
-      libxtsol_XTSOLMakeTPWindow = (xtsol_XTSOLMakeTPWindow) dlsym(xtsol_handle,
-					     "XTSOLMakeTPWindow");
-  }
-
-  if (libxtsol_XTSOLMakeTPWindow) {
-	libxtsol_XTSOLMakeTPWindow(dpy, w);
-  }
-}
-
-gnome_tsol_get_usrattr_val		libgnome_tsol_get_usrattr_val = NULL;
-
-/*
- * Returns a value from uattr for the given key.
- * If there is no value in user_attr, then it returns the
- * system wide default from policy.conf or labelencodings
- * as appropriate.
- */
-char *
-getusrattrval(userattr_t *uattr, char *keywd)
-{
-  static gpointer gnometsol_handle = NULL;
-  static gboolean _gnometsol_initialized = FALSE;
-  char *value;
-
-  if ( ! _gnometsol_initialized ) {
-    _gnometsol_initialized = TRUE;
-    gnometsol_handle = dlopen_gnometsol ();
-    if (gnometsol_handle != NULL)
-      libgnome_tsol_get_usrattr_val = (gnome_tsol_get_usrattr_val) dlsym(gnometsol_handle,
-					     "gnome_tsol_get_usrattr_val");
-  }
-
-  if (libgnome_tsol_get_usrattr_val == NULL) {
-    if (strcmp(keywd, USERATTR_IDLETIME_KW) == 0)
-      value = strdup("15");
-    else if (strcmp(keywd, USERATTR_IDLECMD_KW) == 0)
-      value = strdup(USERATTR_IDLECMD_LOCK_KW);
-  } else
-    value = libgnome_tsol_get_usrattr_val(uattr, keywd);
-  
-  return ( value );
-}
--- a/open-src/app/xscreensaver/sun-src/driver/trusted-utils.h	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-/*
- * Trusted xscreensaver
- *
- * Copyright 2006 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
- * "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.
- *
- *
- * Based on work by Erwann Chenede, Ghee Teo
- *
- * Definitions for the trusted functions.
- */
-#ifndef TRUSTED_XSCREENSAVER_H
-#define TRUSTED_XSCREENSAVER_H
-
-#ifdef HAVE_XTSOL
-#include <X11/extensions/Xtsol.h>
-#endif /* HAVE_XTSOL */
-#include <user_attr.h>
-#include <glib.h>
-#include <X11/Xlib.h>
-#include <sys/types.h>
-#include <unistd.h>
-
-extern gboolean tsol_is_multi_label_session (void);
-extern char *getusrattrval(userattr_t *, char *);
-extern void XTSOLgetWorkstationOwner(Display *, uid_t *);
-
-typedef void (*xtsol_XTSOLgetWorkstationOwner) (Display *, uid_t *);
-extern void XTSOLMakeTPWindow(Display *, Window);
-typedef void (*xtsol_XTSOLMakeTPWindow) (Display *, Window);
-typedef char *(*gnome_tsol_get_usrattr_val) (userattr_t *, char *);
-
-enum {
-	LOCK_CMD = 0,
-	LOGOUT_CMD
-};
-#endif /* TRUSTED_XSCREENSAVER_H */
--- a/open-src/app/xscreensaver/trusted.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,380 +0,0 @@
-/*
- * 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
- * "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.
- *
- */
-
-Support needed for Solaris Trusted Extensions / Trusted Java Desktop System.
-
-diff -urp -x '*~' driver/Makefile.in driver/Makefile.in
---- driver/Makefile.in	2006-09-19 17:08:52.909585000 -0700
-+++ driver/Makefile.in	2006-09-19 17:08:58.014661000 -0700
-@@ -103,6 +103,10 @@ GTK_OBJS	= demo-Gtk.o demo-Gtk-conf.o @G
- GTK_LOCK_SRCS	= lock-Gtk.c remote.c
- GTK_LOCK_OBJS	= lock-Gtk.o remote.o
- 
-+TRUSTED_LIBS	= -lglib-2.0 -lsecdb
-+TRUSTED_SRCS	= trusted-utils.c
-+TRUSTED_OBJS	= trusted-utils.o
-+
- PWENT_SRCS	= passwd-pwent.c
- PWENT_OBJS	= passwd-pwent.o
- 
-@@ -796,8 +802,9 @@ XScreenSaver_Xm_ad.h: XScreenSaver-Xm.ad
- 
- # The executables linked in this directory.
- #
--xscreensaver: $(SAVER_OBJS)
--	$(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(SAVER_LIBS)
-+xscreensaver: $(SAVER_OBJS) $(TRUSTED_OBJS)
-+	$(CC) $(LDFLAGS) -o $@ $(SAVER_OBJS) $(TRUSTED_OBJS) \
-+	$(TRUSTED_LIBS) $(SAVER_LIBS)
- 
- xscreensaver-command: $(CMD_OBJS)
- 	$(CC) $(LDFLAGS) -o $@ $(CMD_OBJS) $(CMD_LIBS)
-@@ -816,8 +823,9 @@ xscreensaver-demo: @PREFERRED_DEMO_PROGR
- xscreensaver-lock: @PREFERRED_LOCK_PROGRAM@
- 	$(INSTALL_PROGRAM) @PREFERRED_LOCK_PROGRAM@ $@
- 
--xscreensaver-lock-Gtk: $(GTK_LOCK_OBJS)
-+xscreensaver-lock-Gtk: $(GTK_LOCK_OBJS) $(TRUSTED_OBJS)
- 	$(CC) $(LDFLAGS) -o $@ $(GTK_LOCK_OBJS) $(LIBS) $(X_LIBS) \
-+	$(TRUSTED_OBJS) $(TRUSTED_LIBS) \
- 	$(GTK_LIBS) $(XML_LIBS) $(X_PRE_LIBS) -lXt -lX11 \
- 	$(XDPMS_LIBS) -lXext \
- 	$(X_EXTRA_LIBS)
-@@ -827,16 +835,18 @@ xscreensaver-demo-Xm: $(DEMO_OBJS) $(MOT
- 	$(MOTIF_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) -lXt -lX11 \
- 	$(XDPMS_LIBS) $(XINERAMA_LIBS) -lXext $(X_EXTRA_LIBS)
- 
--xscreensaver-demo-Gtk: $(DEMO_OBJS) $(GTK_OBJS)
--	$(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(GTK_OBJS) $(LIBS) $(X_LIBS) \
--	$(GTK_LIBS) $(XPM_LIBS) $(XML_LIBS) $(INTL_LIBS) $(X_PRE_LIBS) \
-+xscreensaver-demo-Gtk: $(DEMO_OBJS) $(GTK_OBJS) $(TRUSTED_OBJS)
-+	$(CC) $(LDFLAGS) -o $@ $(DEMO_OBJS) $(GTK_OBJS) $(TRUSTED_OBJS) \
-+	$(LIBS) $(X_LIBS) $(GTK_LIBS) $(XPM_LIBS) $(XML_LIBS) $(INTL_LIBS) \
-+	$(TRUSTED_LIBS) $(X_PRE_LIBS) \
- 	-lXt -lX11 $(XDPMS_LIBS) $(XINERAMA_LIBS) -lXext $(X_EXTRA_LIBS)
- 
- demo-Gtk.o: XScreenSaver_ad.h
- demo-Xm.o:  XScreenSaver_ad_Xm.h
- 
--xscreensaver-getimage: $(GETIMG_OBJS)
--	$(CC) $(LDFLAGS) -o $@ $(GETIMG_OBJS) $(GETIMG_LIBS) -lm
-+xscreensaver-getimage: $(GETIMG_OBJS) $(TRUSTED_OBJS)
-+	$(CC) $(LDFLAGS) -o $@ $(GETIMG_OBJS) $(TRUSTED_OBJS) \
-+	$(GETIMG_LIBS) $(TRUSTED_LIBS) -lm
- 
- pdf2jpeg: $(PDF2JPEG_OBJS)
- 	$(OBJCC) $(LDFLAGS) -o $@ $(PDF2JPEG_OBJS) $(PDF2JPEG_LIBS) -lm
-diff -urp -x '*~' driver/demo-Gtk.c driver/demo-Gtk.c
---- driver/demo-Gtk.c	2006-09-19 17:08:53.064585000 -0700
-+++ driver/demo-Gtk.c	2006-09-19 17:08:58.017718000 -0700
-@@ -136,6 +136,8 @@
- #include <string.h>
- #include <ctype.h>
- 
-+#include <user_attr.h>
-+
- #ifdef HAVE_GTK2
- enum {
-   COL_ENABLED,
-@@ -153,6 +155,7 @@ static void hack_subproc_environment (Wi
- #undef countof
- #define countof(x) (sizeof((x))/sizeof((*x)))
- 
-+extern Display *global_dpy;
- 
- char *progname = 0;
- char *progclass = "XScreenSaver";
-@@ -2673,10 +2676,15 @@ update_list_sensitivity (state *s)
- #endif /* !HAVE_GTK2 */
- }
- 
-+void XTSOLgetWorkstationOwner(Display *, uid_t *);
-+char *getusrattrval(userattr_t *, char *);
-+gboolean tsol_is_multi_label_session (void);
- 
- static void
- populate_prefs_page (state *s)
- {
-+  static gboolean tsol_hack_initialized = False;
-+  static gboolean tsol_multi_label_session = False;
-   saver_preferences *p = &s->prefs;
- 
-   Bool can_lock_p = True;
-@@ -2855,10 +2863,62 @@ populate_prefs_page (state *s)
-     SENSITIZE ("pwd_spinbutton", p->pwd_p);
-     SENSITIZE ("pwd_mlabel",     p->pwd_p);
- 
-+    tsol_multi_label_session = tsol_is_multi_label_session();
-+    if ( ! tsol_hack_initialized && tsol_multi_label_session )
-+    {
-+	GtkWidget *lock_spinbutton = name_to_widget(s, "lock_spinbutton");
-+	GtkWidget *lock_container = name_to_widget(s, "blanking_table");
-+	GtkWidget *lock_button_eventbox = name_to_widget(s, "lock_button_eventbox");
-+	Widget *newlabel = g_object_new(GTK_TYPE_LABEL, "label",
-+			_("_Lock Screen After"), 
-+			"use-underline", TRUE,
-+			"mnemonic-widget", lock_spinbutton,
-+			NULL);
-+	GValue *gv = g_new0(GValue, 1);
-+	GtkAdjustment *adj;
-+	userattr_t *uent;
-+	int idletime;
-+	char *value = NULL;
-+	uid_t WorkstationOwner;
-+	Display *dpy = GDK_DISPLAY();
-+
-+	adj = gtk_spin_button_get_adjustment((GtkSpinButton  *)lock_spinbutton);
-+
-+	XTSOLgetWorkstationOwner(dpy, &WorkstationOwner);
-+	uent = getuseruid(WorkstationOwner);
-+	value = getusrattrval(uent, USERATTR_IDLETIME_KW);
-+	if (value != NULL && *value != '\0')
-+	  idletime = atoi(value);
-+	adj->upper = (gdouble)idletime;
-+	if (adj->value > adj->upper)
-+	  adj->value = adj->upper;
-+
-+	gtk_spin_button_set_adjustment((GtkSpinButton *)lock_spinbutton, adj);
-+
-+	gtk_container_add(GTK_CONTAINER(lock_container), GTK_WIDGET(newlabel));
-+	g_value_init(gv, G_TYPE_INT);
-+	g_value_set_int(gv, 2);
-+	gtk_container_child_set_property(GTK_CONTAINER(lock_container), GTK_WIDGET(newlabel), "top_attach", gv); 
-+	g_value_set_int(gv, 1);
-+	gtk_container_child_set_property(GTK_CONTAINER(lock_container), GTK_WIDGET(newlabel), "left_attach", gv); 
-+	gtk_widget_show(GTK_WIDGET(newlabel));
-+	gtk_widget_hide(GTK_WIDGET(lock_button_eventbox));
-+	g_object_set(lock_button_eventbox, "active", TRUE, NULL);
-+
-+	SENSITIZE ("lock_button",     1);
-+    } 
-+
-+    if ( tsol_multi_label_session )
-+    {
-+	SENSITIZE ("lock_spinbutton", 1);
-+	SENSITIZE ("lock_mlabel",     1);
-+    }
-+    else
-+    {
-     SENSITIZE ("lock_button",     can_lock_p);
-     SENSITIZE ("lock_spinbutton", can_lock_p && p->lock_p);
-     SENSITIZE ("lock_mlabel",     can_lock_p && p->lock_p);
--
-+    }
-     /* DPMS
-      */
-     SENSITIZE ("dpms_frame",              dpms_supported);
-@@ -2887,6 +2947,7 @@ populate_prefs_page (state *s)
- 
- # undef SENSITIZE
-   }
-+  tsol_hack_initialized = True;
- }
- 
- 
-@@ -4845,7 +4906,7 @@ main (int argc, char **argv)
-                                      applicationShellWidgetClass,
-                                      dpy, 0, 0);
- 
--  dpy = XtDisplay (toplevel_shell);
-+  global_dpy = dpy = XtDisplay (toplevel_shell);
-   db = XtDatabase (dpy);
-   XtGetApplicationNameAndClass (dpy, &progname, &progclass);
-   XSetErrorHandler (demo_ehandler);
-diff -urp -x '*~' driver/prefs.c driver/prefs.c
---- driver/prefs.c	2006-09-19 17:08:52.983584000 -0700
-+++ driver/prefs.c	2006-09-19 17:08:58.045493000 -0700
-@@ -37,6 +37,7 @@
- # include "vms-pwd.h"
- #endif /* VMS */
- 
-+#include <user_attr.h>
- 
- /* This file doesn't need the Xt headers, so stub these types out... */
- #undef XtPointer
-@@ -66,6 +67,7 @@
- 
- #include "prefs.h"
- #include "resources.h"
-+#include "trusted-utils.h"
- 
- /* don't use realpath() on fedora system */
- #ifdef _FORTIFY_SOURCE
-@@ -77,6 +79,7 @@ extern char *progname;
- extern char *progclass;
- extern const char *blurb (void);
- 
-+Display *global_dpy;
- 
- 
- static void get_screenhacks (Display *, saver_preferences *);
-@@ -1021,6 +1024,9 @@ free_screenhack_list (screenhack **list,
-   free (list);
- }
- 
-+void XTSOLgetWorkstationOwner(Display *, uid_t *);
-+char *getusrattrval(userattr_t *, char *);
-+int tsol_is_multi_label_session (void);
- 
- 
- /* Populate `saver_preferences' with the contents of the resource database.
-@@ -1061,7 +1067,10 @@ load_init_file (Display *dpy, saver_pref
-   p->xsync_p	    = get_boolean_resource (dpy, "synchronous", "Synchronous");
-   p->verbose_p	    = get_boolean_resource (dpy, "verbose", "Boolean");
-   p->timestamp_p    = get_boolean_resource (dpy, "timestamp", "Boolean");
--  p->lock_p	    = get_boolean_resource (dpy, "lock", "Boolean");
-+  if ( tsol_is_multi_label_session() )
-+    p->lock_p       = True; /* always lock in a Multi Label Session */
-+  else
-+    p->lock_p       = get_boolean_resource (dpy, "lock", "Boolean");
-   p->fade_p	    = get_boolean_resource (dpy, "fade", "Boolean");
-   p->unfade_p	    = get_boolean_resource (dpy, "unfade", "Boolean");
-   p->fade_seconds   = 1000 * get_seconds_resource (dpy, "fadeSeconds", "Time");
-@@ -1085,6 +1094,27 @@ load_init_file (Display *dpy, saver_pref
-   p->lock_timeout    = 1000 * get_minutes_resource (dpy, "lockTimeout", "Time");
-   p->cycle           = 1000 * get_minutes_resource (dpy, "cycle", "Time");
-   p->passwd_timeout  = 1000 * get_seconds_resource (dpy, "passwdTimeout", "Time");
-+  if ( tsol_is_multi_label_session() )
-+  {
-+    userattr_t *uent;
-+    int idletime;
-+    char *value = NULL;
-+    uid_t WorkstationOwner;
-+
-+    XTSOLgetWorkstationOwner(global_dpy, &WorkstationOwner);
-+    uent = getuseruid(WorkstationOwner);
-+    value = getusrattrval(uent, USERATTR_IDLETIME_KW);
-+    if (value != NULL && *value != '\0')
-+      idletime = atoi(value) * 1000;
-+    if (p->passwd_timeout > idletime)
-+      p->passwd_timeout = idletime;
-+    
-+    value = getusrattrval(uent, USERATTR_IDLECMD_KW);
-+    if (value && strcmp(value, USERATTR_IDLECMD_LOGOUT_KW) == 0)
-+      p->lock_cmd = LOGOUT_CMD;
-+    else
-+      p->lock_cmd = LOCK_CMD;
-+  }
-   /* *bugid 5077981 pwd timeout */
-   p->pwd_p	    = get_boolean_resource (dpy, "passwdTimeoutEnabled", "Boolean");
-   p->pointer_timeout = 1000 * get_seconds_resource (dpy, "pointerPollTime", "Time");
-diff -urp -x '*~' driver/prefs.h driver/prefs.h
---- driver/prefs.h	2006-09-19 17:08:52.911363000 -0700
-+++ driver/prefs.h	2006-09-19 17:08:58.048306000 -0700
-@@ -81,6 +81,7 @@ struct saver_preferences {
-   Time initial_delay;		/* how long to sleep after launch */
-   Time splash_duration;		/* how long the splash screen stays up */
-   Time timeout;			/* how much idle time before activation */
-+  int lock_cmd;			/* tsol only  - whether to lock or logout */
-   Time lock_timeout;		/* how long after activation locking starts */
-   Time cycle;			/* how long each hack should run */
-   Time passwd_timeout;		/* how much time before pw dialog goes down */
-diff -urp -x '*~' driver/subprocs.c driver/subprocs.c
---- driver/subprocs.c	2006-09-19 17:08:53.058962000 -0700
-+++ driver/subprocs.c	2006-09-19 17:08:58.049445000 -0700
-@@ -71,6 +71,7 @@ extern int kill (pid_t, int);		/* signal
- #include "exec.h"
- #include "yarandom.h"
- #include "visual.h"    /* for id_to_visual() */
-+#include "trusted-utils.h"
- 
- extern saver_info *global_si_kludge;	/* I hate C so much... */
- 
-@@ -1020,6 +1021,13 @@ spawn_screenhack_1 (saver_screen_info *s
- 					      strlen (HACK_PATH)); 
-       sprintf(complete_hack_command, HACK_PATH"/%s", hack->command);
-       
-+      if ( tsol_is_multi_label_session() )
-+	if (p->lock_cmd == LOGOUT_CMD)
-+	  {
-+	    free (complete_hack_command);
-+	    exec_command (p->shell, "/usr/bin/pkill gnome-session", 0);
-+	    exit(1);
-+	  }
-       
-       forked = fork_and_exec (ssi, complete_hack_command);
-       free (complete_hack_command);
-diff -urp -x '*~' driver/xscreensaver-getimage.c driver/xscreensaver-getimage.c
---- driver/xscreensaver-getimage.c	2006-09-17 18:03:58.000000000 -0700
-+++ driver/xscreensaver-getimage.c	2006-09-19 17:08:58.053620000 -0700
-@@ -83,6 +83,7 @@ static char *defaults[] = {
-  0
- };
- 
-+extern Display *global_dpy;
- 
- 
- char *progname = 0;
-@@ -1783,7 +1784,7 @@ main (int argc, char **argv)
- 
-   toplevel = XtAppInitialize (&app, progclass, 0, 0, &argc, argv,
-                               defaults, 0, 0);
--  dpy = XtDisplay (toplevel);
-+  global_dpy = dpy = XtDisplay (toplevel);
-   screen = XtScreen (toplevel);
-   db = XtDatabase (dpy);
-   XtGetApplicationNameAndClass (dpy, &s, &progclass);
-diff -urp -x '*~' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2006-09-19 17:08:53.074090000 -0700
-+++ driver/xscreensaver.c	2006-09-19 17:08:58.055083000 -0700
-@@ -140,6 +140,7 @@
-
- #include <stdio.h>
- #include <ctype.h>
-+#include <zone.h>
- #include <X11/Xlib.h>
-
- #include <locale.h>
-@@ -198,6 +198,7 @@ passwd_dialog_data *ptr_mygtkpwd = &mygt
- char *progname = 0;
- char *progclass = 0;
- XrmDatabase db = 0;
-+extern Display *global_dpy;
- 
- 
- static Atom XA_SCREENSAVER_RESPONSE;
-@@ -1485,6 +1515,9 @@ main (int argc, char **argv)
-   saver_preferences *p = &si->prefs;
-   int i,debug_flag;
-
-+  if (tsol_is_multi_label_session() && (getzoneid() != 0))
-+    exit ( 1 );
-+
- /*Wait till we can attach debugger to the process*/
- debug_flag=0;
- while (debug_flag)
-@@ -1517,6 +1518,7 @@ while (debug_flag)
-   hack_environment (si);
- 
-   shell = connect_to_server (si, &argc, argv);
-+  global_dpy = XtDisplay(shell);
-   process_command_line (si, &argc, argv);
-   print_banner (si);
- 
--- a/open-src/app/xscreensaver/xinput.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,472 +0,0 @@
-/*
- * Copyright 2009 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
- * "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.
- *
- */
-
-Add support for listening to X Input Extension devices to wake up the system
-to support users of the GNOME On-screen Keyboard (GOK) and similar 
-accessibility helpers  (Sun bugid 5077966)
-
-
-diff -urp -x '*~' -x '*.orig' driver/Makefile.in driver/Makefile.in
---- driver/Makefile.in	2009-05-18 08:43:35.411265000 -0700
-+++ driver/Makefile.in	2009-05-18 08:43:52.459461000 -0700
-@@ -211,7 +211,7 @@ PDF2JPEG_LIBS	= -framework Cocoa
- 
- SAVER_LIBS	= $(LIBS) $(X_LIBS) $(XMU_LIBS) @SAVER_LIBS@ \
- 		  $(XDPMS_LIBS) $(XINERAMA_LIBS) $(GL_LIBS) $(X_PRE_LIBS) \
--		  -lXt -lX11 -lXext $(X_EXTRA_LIBS) \
-+		  -lXt -lX11 -lXext -lXi $(X_EXTRA_LIBS) \
- 		  $(PASSWD_LIBS)
- 
- CMD_LIBS	= $(LIBS) $(X_LIBS) \
-diff -urp -x '*~' -x '*.orig' driver/XScreenSaver.ad.in driver/XScreenSaver.ad.in
---- driver/XScreenSaver.ad.in	2009-05-18 08:43:35.463071000 -0700
-+++ driver/XScreenSaver.ad.in	2009-05-18 08:43:52.460068000 -0700
-@@ -73,6 +73,7 @@
- *sgiSaverExtension:	True
- *xidleExtension:	True
- *procInterrupts:	True
-+*xinputExtensionDev:	True
- 
- ! Set this to True if you are experiencing longstanding XFree86 bug #421
- ! (xscreensaver not covering the whole screen)
-diff -urp -x '*~' -x '*.orig' driver/prefs.c driver/prefs.c
---- driver/prefs.c	2009-05-18 08:43:35.466557000 -0700
-+++ driver/prefs.c	2009-05-18 08:43:52.461057000 -0700
-@@ -303,6 +303,7 @@ static const char * const prefs[] = {
-   "xidleExtension",
-   "GetViewPortIsFullOfLies",
-   "procInterrupts",
-+  "xinputExtensionDev",
-   "overlayStderr",
-   "overlayTextBackground",	/* not saved -- X resources only */
-   "overlayTextForeground",	/* not saved -- X resources only */
-@@ -857,6 +858,11 @@ write_init_file (Display *dpy,
-       CHECK("mitSaverExtension") continue;  /* don't save */
-       CHECK("xidleExtension")	type = pref_bool, b = p->use_xidle_extension;
-       CHECK("procInterrupts")	type = pref_bool, b = p->use_proc_interrupts;
-+	                        /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+      CHECK("xinputExtensionDev") type = pref_bool, 
-+                                        b = p->use_xinputdev_extension;
-       CHECK("GetViewPortIsFullOfLies")  type = pref_bool,
- 					b = p->getviewport_full_of_lies_p;
-       CHECK("overlayStderr")	type = pref_bool, b = overlay_stderr_p;
-@@ -1129,6 +1135,12 @@ load_init_file (Display *dpy, saver_pref
-   p->use_sgi_saver_extension = get_boolean_resource (dpy,
-                                                      "sgiSaverExtension",
- 						     "Boolean");
-+ 
-+                                  /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+  p->use_xinputdev_extension = 
-+	get_boolean_resource (dpy, "xinputExtensionDev", "Boolean");
-   p->use_proc_interrupts = get_boolean_resource (dpy,
-                                                  "procInterrupts", "Boolean");
- 
-diff -urp -x '*~' -x '*.orig' driver/prefs.h driver/prefs.h
---- driver/prefs.h	2009-05-18 08:43:35.466897000 -0700
-+++ driver/prefs.h	2009-05-18 08:43:52.461426000 -0700
-@@ -109,6 +109,10 @@ struct saver_preferences {
-   Bool use_mit_saver_extension;
-   Bool use_sgi_saver_extension;
-   Bool use_proc_interrupts;
-+  				/* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+				*/
-+  Bool use_xinputdev_extension;
- 
-   Bool getviewport_full_of_lies_p; /* XFree86 bug #421 */
- 
-diff -urp -x '*~' -x '*.orig' driver/timers.c driver/timers.c
---- driver/timers.c	2009-05-18 08:43:35.447486000 -0700
-+++ driver/timers.c	2009-05-18 08:43:52.462422000 -0700
-@@ -68,6 +68,12 @@ extern Bool blank_screen (saver_info *si
- extern void unblank_screen (saver_info *si);
- 
- 
-+                                /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+extern int valuator_type, press_type, release_type;
-+
-+
- void
- idle_timer (XtPointer closure, XtIntervalId *id)
- {
-@@ -708,10 +714,14 @@ sleep_until_idle (saver_info *si, Bool u
-      and query the server with that extension.  For our purposes, polling
-      /proc/interrupts is just like polling the mouse position.  It has to
-      happen on the same kind of schedule. */
-+/*CR 5077966 P1 "password prompt cant be directly activated by GOK device
-+*/
-+
-   Bool polling_mouse_position = (si->using_proc_interrupts ||
-                                  !(si->using_xidle_extension ||
-                                    si->using_mit_saver_extension ||
--                                   si->using_sgi_saver_extension));
-+                                   si->using_sgi_saver_extension) ||
-+				   si->using_xinputdev_extension);
- 
-   if (until_idle_p)
-     {
-@@ -1067,6 +1077,49 @@ sleep_until_idle (saver_info *si, Bool u
- 	  }
- 	else
- #endif /* HAVE_SGI_SAVER_EXTENSION */
-+                                /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+/*
-+CR6200441(P1)Fix for bug #5077966 breaks 2nd mouse working with GOK
-+	it causes flashing screen as GOK geneerates a lot of 
-+	XInputExtension dev XEvents
-+	it needs to check only when the screen is locked
-+*/
-+
-+       if ((!until_idle_p) &&  (event.type == valuator_type ||
-+		event.type == press_type ||
-+		event.type == release_type ))
-+       {
-+/* for debug only
-+
-+        if (si->locking_disabled_p)
-+	  fprintf (stderr, "BUG ext event locking_disabled_p  is true\n");
-+	else
-+	  fprintf (stderr, "BUG ext event locking_disabled_p is false\n");
-+        if (si->locked_p)
-+	  fprintf (stderr, "BUG ext event locked_p  is true\n");
-+	else
-+	  fprintf (stderr, "BUG ext event locked_p  is false\n");
-+        if (p->lock_p)
-+	  fprintf (stderr, "BUG ext event lock_p  is true\n");
-+	else
-+	  fprintf (stderr, "BUG ext event lock_p  is false\n");
-+*/
-+	dispatch_event (si, &event);
-+	if (si->demoing_p &&
-+		event.type == valuator_type ||
-+		event.type == release_type )
-+              /* When we're demoing a single hack, mouse motion doesn't
-+                 cause deactivation.  Only clicks and keypresses do. */
-+		;
-+   	else
-+              /* If we're not demoing, then any activity causes deactivation.
-+               */
-+		goto DONE;
-+        } /* ext dev */
-+
-+       else
- 
- #ifdef HAVE_RANDR
-         if (event.type == (si->randr_event_number + RRScreenChangeNotify))
-diff -urp -x '*~' -x '*.orig' driver/xscreensaver.c driver/xscreensaver.c
---- driver/xscreensaver.c	2009-05-18 08:43:35.448549000 -0700
-+++ driver/xscreensaver.c	2009-05-18 08:43:52.463795000 -0700
-@@ -953,12 +953,18 @@ initialize_server_extensions (saver_info
-   Bool server_has_mit_saver_extension_p = False;
-   Bool system_has_proc_interrupts_p = False;
-   const char *piwhy = 0;
-+                                /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+  Bool server_has_xinputdev_extension_p = False;
- 
-   si->using_xidle_extension = p->use_xidle_extension;
-   si->using_sgi_saver_extension = p->use_sgi_saver_extension;
-   si->using_mit_saver_extension = p->use_mit_saver_extension;
-   si->using_proc_interrupts = p->use_proc_interrupts;
- 
-+  si->using_xinputdev_extension = p->use_xinputdev_extension;
-+
- #ifdef HAVE_XIDLE_EXTENSION
-   server_has_xidle_extension_p = query_xidle_extension (si);
- #endif
-@@ -971,6 +977,10 @@ initialize_server_extensions (saver_info
- #ifdef HAVE_PROC_INTERRUPTS
-   system_has_proc_interrupts_p = query_proc_interrupts_available (si, &piwhy);
- #endif
-+                                /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+  server_has_xinputdev_extension_p = query_xinputdev_extension (si);
- 
-   if (!server_has_xidle_extension_p)
-     si->using_xidle_extension = False;
-@@ -1020,6 +1030,22 @@ initialize_server_extensions (saver_info
-   query_randr_extension (si);
- #endif
- 
-+                                /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+  if (!server_has_xinputdev_extension_p)
-+    si->using_xinputdev_extension = False;
-+  else if (p->verbose_p)
-+    {
-+      if (si->using_xinputdev_extension)
-+        fprintf (stderr, "%s: using XInputExtension device.\n",
-+                 blurb());
-+      else
-+        fprintf (stderr,
-+                 "%s: not using XInputExtension device.\n",
-+                 blurb());
-+    }
-+
-   if (!system_has_proc_interrupts_p)
-     {
-       si->using_proc_interrupts = False;
-@@ -2175,6 +2201,8 @@ analyze_display (saver_info *si)
- #     endif
-    }, { "Apple-DRI",                            "Apple-DRI (XDarwin)",
-         True
-+   }, { "XInputExtension",                             "XInputExtension",
-+        True
-    },
-   };
- 
-diff -urp -x '*~' -x '*.orig' driver/xscreensaver.h driver/xscreensaver.h
---- driver/xscreensaver.h	2009-05-18 08:43:35.428666000 -0700
-+++ driver/xscreensaver.h	2009-05-18 08:43:52.464394000 -0700
-@@ -84,6 +84,12 @@ struct saver_info {
-   int randr_event_number;
-   int randr_error_number;
- # endif
-+                                 /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+  Bool using_xinputdev_extension;  /* Note that `p->use_*' is the *request*, */
-+  int xinputdev_ext_event_number; 	/*may not be used */
-+  int xinputdev_ext_error_number;
- 
- 
-   /* =======================================================================
-@@ -324,6 +330,10 @@ extern Bool query_randr_extension (saver
- #ifdef HAVE_PROC_INTERRUPTS
- extern Bool query_proc_interrupts_available (saver_info *, const char **why);
- #endif
-+                                 /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+extern Bool query_xinputdev_extension (saver_info *);
- 
- /* Display Power Management System (DPMS) interface. */
- extern Bool monitor_powered_on_p (saver_info *si);
-diff -urp -x '*~' -x '*.orig' driver/xset.c driver/xset.c
---- driver/xset.c	2009-05-18 08:43:35.429033000 -0700
-+++ driver/xset.c	2009-05-18 08:43:52.483673000 -0700
-@@ -34,6 +34,22 @@
- #ifdef _VROOT_H_
- ERROR!  You must not include vroot.h in this file.
- #endif
-+			/* XInputExtension dev support */
-+#include <X11/extensions/XInput.h>
-+
-+/* Xinput protocol allows for 129 devices (unique id's in range 0-128),
-+   but Xsun supports a max of 9, and Xorg a max of 20, so this should be
-+   enough for now.   We only care about 3 event types per device
-+   (DeviceButtonPress, DeviceButtonRelease, and DeviceMotionNotify), hence
-+   the * 3 for the event count.
-+*/
-+#define MAX_XI_DEVICES  24
-+#define MAX_XI_EVENTS	(MAX_XI_DEVICES * 3)
-+static XDevice *xdevice[MAX_XI_DEVICES];
-+
-+static int extdev_count = 0;
-+
-+int valuator_type = 0, press_type = 0, release_type = 0;
- 
- 
- /* MIT SCREEN-SAVER server extension hackery.
-@@ -94,6 +110,141 @@ init_mit_saver_extension (saver_info *si
- }
- #endif /* HAVE_MIT_SAVER_EXTENSION */
- 
-+/* 
-+Adding XInputExtension dev support (5077966)
-+*/
-+
-+
-+#include <X11/extensions/XInput.h>
-+
-+Bool
-+query_xinputdev_extension (saver_info *si)
-+{
-+ XExtCodes codes;
-+
-+ if (si->prefs.verbose_p)
-+   fprintf (stderr, "-->query_xinputdev_extension()\n");
-+
-+ if (!XQueryExtension (si->dpy, INAME, &codes.major_opcode, &codes.first_event,
-+				&codes.first_error))
-+  {
-+    if (si->prefs.verbose_p)
-+      fprintf (stderr, "\t XInputExtension is not present!\n");
-+    return (False);
-+  }
-+ else
-+  {
-+    if (si->prefs.verbose_p)
-+      fprintf (stderr, "\t XInputExtension is present!\n");
-+    return (True);
-+  }
-+}
-+
-+static void
-+init_xinputdev_extension (saver_info *si)
-+{
-+  int i,loop,ndevices;
-+  int xid = -1;
-+  int class;
-+  int nkeys, nvaluators, nbuttons;
-+  XAnyClassPtr pClass;
-+  XDeviceInfo *list = NULL;
-+  int nevents = 0;
-+  XEventClass event_list[MAX_XI_EVENTS];
-+
-+
-+  list = XListInputDevices (si->dpy, &ndevices);
-+
-+  bzero(xdevice, MAX_XI_DEVICES * sizeof(XDevice *));
-+  bzero(event_list, MAX_XI_EVENTS * sizeof(XEventClass));
-+  extdev_count = 0;
-+  
-+  for (loop = 0; (loop < ndevices) && (extdev_count < MAX_XI_DEVICES); loop++)
-+    {
-+
-+
-+      if(list[loop].use == IsXExtensionDevice)
-+
-+	{
-+	  if (si->prefs.debug_p)
-+	    fprintf(stderr,
-+		    "Device count %2d: XID=%2d  type=%3d  name=\"%s\"\n",
-+		    loop, list[loop].id, list[loop].type, list[loop].name);
-+
-+	  xid = list[loop].id;
-+	  xdevice[extdev_count] = XOpenDevice (si->dpy, xid);
-+	  /* it needs to check , xid might be -1 */
-+
-+	  pClass = list[loop].inputclassinfo;
-+	  nbuttons = 0;
-+	  nvaluators = 0;
-+	  for (class = 0; class < list[loop].num_classes; class++)
-+	    {
-+	      switch (pClass->class)
-+		{
-+		case KeyClass:
-+		  break;
-+		case ButtonClass:
-+		  nbuttons = ((XButtonInfo *) pClass)->num_buttons;
-+		  if (nbuttons && ((nevents + 1) < MAX_XI_EVENTS))
-+		    {
-+		      DeviceButtonPress (xdevice[extdev_count],
-+					 press_type, event_list[nevents]);
-+		      nevents++;
-+		      DeviceButtonRelease (xdevice[extdev_count],
-+					   release_type, event_list[nevents]);
-+		      nevents++;
-+		    }
-+		  break;
-+		case ValuatorClass:
-+		  nvaluators = ((XValuatorInfo *) pClass)->num_axes;
-+		  if (nvaluators && (nevents < MAX_XI_EVENTS))
-+		    {
-+		      DeviceMotionNotify (xdevice[extdev_count],
-+					  valuator_type, event_list[nevents]);
-+		      nevents++;
-+		    }
-+		  
-+		  break;
-+		default:
-+		  fprintf (stderr," Class %d is unknown class %d.\n", class, pClass->class);
-+		  break;
-+		}
-+	      
-+	      pClass = (XAnyClassPtr) & ((char *) pClass)[pClass->length];
-+	    }
-+
-+	  extdev_count++;
-+	  
-+	}
-+      
-+    }
-+
-+  if (list)
-+    XFreeDeviceList (list);
-+
-+  for (i = 0; i < si->nscreens; i++)
-+    {
-+      saver_screen_info *ssi = &si->screens[i];
-+      Window root = RootWindowOfScreen (ssi->screen);
-+      XSelectExtensionEvent(si->dpy, root, event_list, nevents);
-+    }
-+}
-+
-+#if 0
-+/* not used */
-+
-+static void
-+close_xinputdev_extension (saver_info *si)
-+{
-+  int i;
-+
-+  for (i = 0; i < extdev_count; i++)
-+        XCloseDevice (si->dpy, xdevice[i]);
-+}
-+#endif
-+
-+
- 
- /* SGI SCREEN_SAVER server extension hackery.
-  */
-@@ -284,7 +435,6 @@ disable_builtin_screensaver (saver_info 
-     }
- 
- 
--#if defined(HAVE_MIT_SAVER_EXTENSION) || defined(HAVE_SGI_SAVER_EXTENSION)
-   {
-     static Bool extension_initted = False;
-     if (!extension_initted)
-@@ -296,9 +446,12 @@ disable_builtin_screensaver (saver_info 
- # ifdef HAVE_SGI_SAVER_EXTENSION
- 	if (si->using_sgi_saver_extension) init_sgi_saver_extension(si);
- # endif
-+                                /* Adding XInputExtension Dev support
-+#5077966 P1 "password prompt cant be directly activated by GOK device"
-+                                */
-+	if (si->using_xinputdev_extension) init_xinputdev_extension(si);
-       }
-   }
--#endif /* HAVE_MIT_SAVER_EXTENSION || HAVE_SGI_SAVER_EXTENSION */
- 
-   if (unblank_screen_p)
-     /* Turn off the server builtin saver if it is now running. */
--- a/open-src/app/xscreensaver/xscreensaver-hush-misc.patch	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-6573061 Xscreensaver displays "Xlib: extension "Xfree86-Misc" missing on display"
-
-Fix created by Adam Jackson <[email protected]>, 
-posted to [email protected] in
-http://lists.freedesktop.org/archives/xorg/2008-July/037270.html
-
-diff -up xscreensaver-5.05/driver/lock.c.jx xscreensaver-5.05/driver/lock.c
---- xscreensaver-5.05/driver/lock.c.jx	2008-07-16 11:45:25.000000000 -0400
-+++ xscreensaver-5.05/driver/lock.c	2008-07-16 11:55:14.000000000 -0400
-@@ -1426,6 +1426,10 @@ xfree_lock_grab_smasher (saver_info *si,
- {
-   saver_preferences *p = &si->prefs;
-   int status;
-+  int event, error;
-+
-+  if (!XF86MiscQueryExtension(si->dpy, &event, &error))
-+    return;
- 
-   XErrorHandler old_handler;
-   XSync (si->dpy, False);
--- a/packages/SUNW0xman/Makefile	Mon Aug 03 15:21:13 2009 -0700
+++ b/packages/SUNW0xman/Makefile	Wed Aug 05 16:10:40 2009 -0700
@@ -1,5 +1,6 @@
 #
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
+# Use is 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
@@ -27,7 +28,7 @@
 # of the copyright holder.
 #
 #
-# ident "@(#)Makefile	1.4    09/01/14 SMI"
+# ident	"@(#)Makefile	1.5	09/08/05 SMI"
 #
 
 SOURCEDIR=../../packages
@@ -39,12 +40,9 @@
 	$(SOURCEDIR)/SUNWpciaccess/prototype	 		\
 	$(SOURCEDIR)/SUNWvncviewer/prototype	 		\
 	$(SOURCEDIR)/SUNWxvnc/prototype_com	 		\
-	$(SOURCEDIR)/SUNWxwsvr/prototype			\
 	$(SOURCEDIR)/SUNWxorg-graphics-ddx/prototype_com	\
 	$(SOURCEDIR)/SUNWxorg-server/prototype_com		\
-	$(SOURCEDIR)/SUNWxorg-client-docs/prototype		\
-	$(SOURCEDIR)/SUNWxscreensaver-hacks/prototype		\
-	$(SOURCEDIR)/SUNWxscreensaver-hacks-gl/prototype_com
+	$(SOURCEDIR)/SUNWxorg-client-docs/prototype		
 
 # Don't include platform-specific man pages for now, since it will
 # break builds on the other platform:
--- a/packages/SUNW0xwsvr/depend	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,61 +0,0 @@
-###########################################################################
-#
-# Copyright 2007 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
-# "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.
-#
-###########################################################################
-#
-# ident	"@(#)depend	1.2	07/11/05 SMI"
-#
-# This package information file defines software dependencies associated
-# with the pkg.  You can define three types of pkg dependencies with this file:
-#	 P indicates a prerequisite for installation
-#	 I indicates an incompatible package
-#	 R indicates a reverse dependency
-# <pkg.abbr> see pkginfo(4), PKG parameter
-# <name> see pkginfo(4), NAME parameter
-# <version> see pkginfo(4), VERSION parameter
-# <arch> see pkginfo(4), ARCH parameter
-# <type> <pkg.abbr> <name>
-# 	(<arch>)<version>
-# 	(<arch>)<version>
-# 	...
-# <type> <pkg.abbr> <name>
-# ...
-#
-
-P SUNWcar	Core Architecture, (Root)
-P SUNWcakr	Core Solaris Kernel Architecture (Root)
-P SUNWkvm	Core Architecture, (Kvm)
-P SUNWcsr	Core Solaris, (Root)
-P SUNWckr	Core Solaris Kernel (Root)
-P SUNWcnetr	Core Solaris Network Infrastructure (Root)
-P SUNWcsu	Core Solaris, (Usr)
-P SUNWcsd	Core Solaris Devices
-P SUNWcsl	Core Solaris Libraries
-P SUNWxwplt	X Window System platform software
-P SUNWxwsvr	Screen Saver/Locker (xscreensaver)
--- a/packages/SUNW0xwsvr/pkginfo.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,50 +0,0 @@
-#
-# Copyright 2006 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
-# "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.
-# 
-#
-# ident	"@(#)pkginfo.tmpl	1.4	06/08/09 SMI"
-#
-
-PKG="SUNW0xwsvr"
-NAME="XScreenSaver Localization Files for C Locale"
-ARCH="all"
-VERSION=6.6.2.0,REV=0.2000.02.02
-CATEGORY="system"
-SUNW_PRODNAME="Solaris X11"
-SUNW_PRODVERS=6.6.2
-DESC="X Window System Screen Saver/Locker Localization Files for C Locale"
-BASEDIR="/usr"
-VENDOR="Sun Microsystems, Inc."
-HOTLINE="Please contact your local service provider"
-EMAIL=""
-MAXINST="1000"
-SUNW_PKGTYPE="usr"
-CLASSES=none 
-SUNW_PKGVERS=1.0
-SUNW_LOC="C"
-SUNW_PKGLIST="SUNWxwsvr"
--- a/packages/SUNW0xwsvr/prototype	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-#
-# Copyright 2006 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
-# "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.
-# 
-#
-# ident	"@(#)prototype	1.4	06/08/09 SMI"
-#
-
-i pkginfo
-i copyright
-i depend
-
-!HOME=../usr
-
-d none X11 						0755 root bin
-d none X11/lib 						0755 root bin
-d none X11/lib/X11 					0755 root bin
-
-!search      $HOME/X11/lib/X11/app-defaults
-d none X11/lib/X11/app-defaults 			0755 root bin
-d none X11/lib/X11/app-defaults/C 			0755 root bin
-f none X11/lib/X11/app-defaults/C/XScreenSaver		0444 root bin
-
-d none X11/share					0755 root bin
-d none X11/share/locale				0755 root bin
-d none X11/share/locale/C				0755 root bin
-!search      $HOME/X11/share/locale/C/LC_MESSAGES
-d none X11/share/locale/C/LC_MESSAGES		0755 root bin
-f none X11/share/locale/C/LC_MESSAGES/xscreensaver.pot  0644 root bin
--- a/packages/SUNWxscreensaver-hacks-gl/copyright.add	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-For the avoidance of doubt, except that if any license choice other
-than GPL or LGPL is available it will apply instead, Sun elects to
-use only the General Public License version 2 (GPLv2) at this time
-for any software where a choice of GPL license versions is made
-available with the language indicating that GPLv2 or any later
-version may be used, or where a choice of which version of the GPL
-is applied is otherwise unspecified.
-
---------------------------------------------------------------------
-
-The xscreensaver base software is Copyright (c) 1991-2006 Jamie Zawinski 
-<[email protected]>
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.  No representations are made about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
-Individual "hack" modules are covered by additional copyright notices as
-documented in their manual pages included in this package.
-
-Several of the "hack" programs are distributed under the terms of the
-GNU General Public License Version 2 as published by the Free Software
-Foundation, as reproduced below.
-
-A copy of the source code for these programs is located at
-http://www.opensolaris.org/os/community/x_win/
-
-
---------------------------------------------------------------------
-
-
-include app/rss-glx/COPYING
--- a/packages/SUNWxscreensaver-hacks-gl/depend_com	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)depend_com	1.1	09/04/17 SMI"
-#
-# XScreenSaver OpenGL display modules
-
-# Dependencies in addition to the common ones found in ../depend
-P SUNWlibmsr	Math & Microtasking Libraries (Root)
-P SUNWgnome-base-libs  GNOME base GUI libraries
-P SUNWxwrtl	X Window System & Graphics Runtime Library Links in /usr/lib
-P SUNWxwsvr	XScreenSaver
-P SUNWxwice	X Window System Inter-Client Exchange (ICE) Components
-P SUNWimagick	ImageMagick - Image Manipulation Utilities and Libraries
--- a/packages/SUNWxscreensaver-hacks-gl/depend_i386.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)depend_i386.tmpl	1.4	09/04/17 SMI"
-#
-# XScreenSaver OpenGL display modules
-
-# Platform specific OpenGL dependency
-P SUNWxorg-mesa	Mesa OpenGL for Solaris Runtime Libraries
-
-# Common dependencies
-include depend_com
-include ../depend
--- a/packages/SUNWxscreensaver-hacks-gl/depend_sparc.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)depend_sparc.tmpl	1.7	09/04/17 SMI"
-#
-# XScreenSaver OpenGL display modules
-
-# Platform specific OpenGL dependency
-P SUNWglrt	Sun OpenGL for Solaris Runtime Libraries
-
-# Common dependencies
-include depend_com
-include ../depend
-
--- a/packages/SUNWxscreensaver-hacks-gl/pkginfo.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#
-# Copyright 2006 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
-# "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.
-# 
-#
-# ident	"@(#)pkginfo.tmpl	1.2	06/08/09 SMI"
-#
-# XScreenSaver OpenGL display modules
-
-PKG="SUNWxscreensaver-hacks-gl"
-NAME="XScreenSaver OpenGL display mode modules"
-ARCH="ISA"
-VERSION=6.6.2.0,REV=0.2000.02.02
-CATEGORY="system"
-SUNW_PRODNAME="Solaris X11"
-SUNW_PRODVERS=6.6.2
-DESC="Modules that provide different OpenGL-based display modes (hacks) for the screen saver"
-BASEDIR="/usr"
-VENDOR="Sun Microsystems, Inc."
-HOTLINE="Please contact your local service provider"
-EMAIL=""
-MAXINST="1000"
-SUNW_PKGTYPE="usr"
-CLASSES=none 
-SUNW_PKGVERS=1.0
--- a/packages/SUNWxscreensaver-hacks-gl/prototype_com	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,348 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)prototype_com	1.9	09/06/04 SMI"
-#
-
-i pkginfo
-i copyright
-
-# OpenGL hacks and helper app
-
-!HOME=../usr/X11
-d none X11 0755 root bin
-d none X11/lib 0755 root bin
-d none X11/lib/xscreensaver 0755 root bin
-
-!search      $HOME/bin
-d none X11/lib/xscreensaver/bin 0755 root bin
-f none X11/lib/xscreensaver/bin/xscreensaver-gl-helper 0555 root bin
-
-!search      $HOME/lib/xscreensaver/hacks
-d none X11/lib/xscreensaver/hacks 0755 root bin
-
-# Hacks from open-src/app/xscreensaver:
-f none X11/lib/xscreensaver/hacks/antinspect 0555 root bin
-f none X11/lib/xscreensaver/hacks/antmaze 0555 root bin
-f none X11/lib/xscreensaver/hacks/antspotlight 0555 root bin
-f none X11/lib/xscreensaver/hacks/atlantis 0555 root bin
-f none X11/lib/xscreensaver/hacks/atunnel 0555 root bin
-f none X11/lib/xscreensaver/hacks/blinkbox 0555 root bin
-f none X11/lib/xscreensaver/hacks/blocktube 0555 root bin
-f none X11/lib/xscreensaver/hacks/boing 0555 root bin
-f none X11/lib/xscreensaver/hacks/bouncingcow 0555 root bin
-f none X11/lib/xscreensaver/hacks/boxed 0555 root bin
-f none X11/lib/xscreensaver/hacks/bubble3d 0555 root bin
-f none X11/lib/xscreensaver/hacks/cage 0555 root bin
-f none X11/lib/xscreensaver/hacks/carousel 0555 root bin
-f none X11/lib/xscreensaver/hacks/circuit 0555 root bin
-f none X11/lib/xscreensaver/hacks/crackberg 0555 root bin
-f none X11/lib/xscreensaver/hacks/cube21 0555 root bin
-f none X11/lib/xscreensaver/hacks/cubenetic 0555 root bin
-f none X11/lib/xscreensaver/hacks/cubestorm 0555 root bin
-f none X11/lib/xscreensaver/hacks/dangerball 0555 root bin
-f none X11/lib/xscreensaver/hacks/endgame 0555 root bin
-f none X11/lib/xscreensaver/hacks/engine 0555 root bin
-f none X11/lib/xscreensaver/hacks/flipflop 0555 root bin
-f none X11/lib/xscreensaver/hacks/flipscreen3d 0555 root bin
-f none X11/lib/xscreensaver/hacks/fliptext 0555 root bin
-f none X11/lib/xscreensaver/hacks/flurry 0555 root bin
-f none X11/lib/xscreensaver/hacks/gears 0555 root bin
-f none X11/lib/xscreensaver/hacks/gflux 0555 root bin
-f none X11/lib/xscreensaver/hacks/glblur 0555 root bin
-f none X11/lib/xscreensaver/hacks/gleidescope 0555 root bin
-f none X11/lib/xscreensaver/hacks/glforestfire 0555 root bin
-f none X11/lib/xscreensaver/hacks/glhanoi 0555 root bin
-f none X11/lib/xscreensaver/hacks/glknots 0555 root bin
-f none X11/lib/xscreensaver/hacks/glmatrix 0555 root bin
-f none X11/lib/xscreensaver/hacks/glplanet 0555 root bin
-f none X11/lib/xscreensaver/hacks/glschool 0555 root bin
-f none X11/lib/xscreensaver/hacks/glslideshow 0555 root bin
-f none X11/lib/xscreensaver/hacks/glsnake 0555 root bin
-f none X11/lib/xscreensaver/hacks/gltext 0555 root bin
-f none X11/lib/xscreensaver/hacks/hypertorus 0555 root bin
-f none X11/lib/xscreensaver/hacks/jigglypuff 0555 root bin
-f none X11/lib/xscreensaver/hacks/juggler3d 0555 root bin
-f none X11/lib/xscreensaver/hacks/klein 0555 root bin
-f none X11/lib/xscreensaver/hacks/lament 0555 root bin
-f none X11/lib/xscreensaver/hacks/lavalite 0555 root bin
-f none X11/lib/xscreensaver/hacks/menger 0555 root bin
-f none X11/lib/xscreensaver/hacks/mirrorblob 0555 root bin
-f none X11/lib/xscreensaver/hacks/moebius 0555 root bin
-f none X11/lib/xscreensaver/hacks/molecule 0555 root bin
-f none X11/lib/xscreensaver/hacks/morph3d 0555 root bin
-f none X11/lib/xscreensaver/hacks/noof 0555 root bin
-f none X11/lib/xscreensaver/hacks/pinion 0555 root bin
-f none X11/lib/xscreensaver/hacks/pipes 0555 root bin
-f none X11/lib/xscreensaver/hacks/polyhedra 0555 root bin
-f none X11/lib/xscreensaver/hacks/polytopes 0555 root bin
-f none X11/lib/xscreensaver/hacks/providence 0555 root bin
-f none X11/lib/xscreensaver/hacks/pulsar 0555 root bin
-f none X11/lib/xscreensaver/hacks/queens 0555 root bin
-f none X11/lib/xscreensaver/hacks/rubik 0555 root bin
-f none X11/lib/xscreensaver/hacks/sballs 0555 root bin
-f none X11/lib/xscreensaver/hacks/sierpinski3d 0555 root bin
-f none X11/lib/xscreensaver/hacks/spheremonics 0555 root bin
-f none X11/lib/xscreensaver/hacks/sproingies 0555 root bin
-f none X11/lib/xscreensaver/hacks/stairs 0555 root bin
-f none X11/lib/xscreensaver/hacks/starwars 0555 root bin
-f none X11/lib/xscreensaver/hacks/stonerview 0555 root bin
-f none X11/lib/xscreensaver/hacks/superquadrics 0555 root bin
-f none X11/lib/xscreensaver/hacks/tangram 0555 root bin
-f none X11/lib/xscreensaver/hacks/timetunnel 0555 root bin
-f none X11/lib/xscreensaver/hacks/topblock 0555 root bin
-
-# Hacks from open-src/app/rss-glx:
-f none X11/lib/xscreensaver/hacks/biof		0555 root bin
-f none X11/lib/xscreensaver/hacks/busyspheres	0555 root bin
-f none X11/lib/xscreensaver/hacks/colorfire	0555 root bin
-f none X11/lib/xscreensaver/hacks/cyclone	0555 root bin
-f none X11/lib/xscreensaver/hacks/drempels	0555 root bin
-f none X11/lib/xscreensaver/hacks/euphoria	0555 root bin
-f none X11/lib/xscreensaver/hacks/feedback	0555 root bin
-f none X11/lib/xscreensaver/hacks/fieldlines	0555 root bin
-f none X11/lib/xscreensaver/hacks/flocks	0555 root bin
-f none X11/lib/xscreensaver/hacks/flux		0555 root bin
-f none X11/lib/xscreensaver/hacks/helios	0555 root bin
-f none X11/lib/xscreensaver/hacks/hufo_smoke	0555 root bin
-f none X11/lib/xscreensaver/hacks/hufo_tunnel	0555 root bin
-f none X11/lib/xscreensaver/hacks/hyperspace	0555 root bin
-f none X11/lib/xscreensaver/hacks/lattice	0555 root bin
-f none X11/lib/xscreensaver/hacks/lorenz	0555 root bin
-f none X11/lib/xscreensaver/hacks/matrixview	0555 root bin
-f none X11/lib/xscreensaver/hacks/plasma	0555 root bin
-f none X11/lib/xscreensaver/hacks/skyrocket	0555 root bin
-f none X11/lib/xscreensaver/hacks/solarwinds	0555 root bin
-f none X11/lib/xscreensaver/hacks/spirographx	0555 root bin
-f none X11/lib/xscreensaver/hacks/sundancer2	0555 root bin
-
-!search $HOME/share/man/man6
-s none X11/man=share/man
-d none X11/share 0755 root bin
-d none X11/share/man 0755 root bin
-d none X11/share/man/man6 0755 root bin
-
-# Hacks from open-src/app/xscreensaver:
-f none X11/share/man/man6/xscreensaver-gl-helper.6 0444 root bin
-f none X11/share/man/man6/antinspect.6 0444 root bin
-f none X11/share/man/man6/antmaze.6 0444 root bin
-f none X11/share/man/man6/antspotlight.6 0444 root bin
-f none X11/share/man/man6/atlantis.6 0444 root bin
-f none X11/share/man/man6/atunnel.6 0444 root bin
-f none X11/share/man/man6/blinkbox.6 0444 root bin
-f none X11/share/man/man6/blocktube.6 0444 root bin
-f none X11/share/man/man6/boing.6 0444 root bin
-f none X11/share/man/man6/bouncingcow.6 0444 root bin
-f none X11/share/man/man6/boxed.6 0444 root bin
-f none X11/share/man/man6/bubble3d.6 0444 root bin
-f none X11/share/man/man6/cage.6 0444 root bin
-f none X11/share/man/man6/carousel.6 0444 root bin
-f none X11/share/man/man6/circuit.6 0444 root bin
-f none X11/share/man/man6/crackberg.6 0444 root bin
-f none X11/share/man/man6/cube21.6 0444 root bin
-f none X11/share/man/man6/cubenetic.6 0444 root bin
-f none X11/share/man/man6/cubestorm.6 0444 root bin
-f none X11/share/man/man6/dangerball.6 0444 root bin
-f none X11/share/man/man6/endgame.6 0444 root bin
-f none X11/share/man/man6/engine.6 0444 root bin
-f none X11/share/man/man6/extrusion.6 0444 root bin
-f none X11/share/man/man6/flipflop.6 0444 root bin
-f none X11/share/man/man6/flipscreen3d.6 0444 root bin
-f none X11/share/man/man6/fliptext.6 0444 root bin
-f none X11/share/man/man6/flurry.6 0444 root bin
-f none X11/share/man/man6/gears.6 0444 root bin
-f none X11/share/man/man6/gflux.6 0444 root bin
-f none X11/share/man/man6/glblur.6 0444 root bin
-f none X11/share/man/man6/gleidescope.6 0444 root bin
-f none X11/share/man/man6/glforestfire.6 0444 root bin
-f none X11/share/man/man6/glhanoi.6 0444 root bin
-f none X11/share/man/man6/glknots.6 0444 root bin
-f none X11/share/man/man6/glmatrix.6 0444 root bin
-f none X11/share/man/man6/glplanet.6 0444 root bin
-f none X11/share/man/man6/glschool.6 0444 root bin
-f none X11/share/man/man6/glslideshow.6 0444 root bin
-f none X11/share/man/man6/glsnake.6 0444 root bin
-f none X11/share/man/man6/gltext.6 0444 root bin
-f none X11/share/man/man6/hypertorus.6 0444 root bin
-f none X11/share/man/man6/jigglypuff.6 0444 root bin
-f none X11/share/man/man6/juggler3d.6 0444 root bin
-f none X11/share/man/man6/klein.6 0444 root bin
-f none X11/share/man/man6/lament.6 0444 root bin
-f none X11/share/man/man6/lavalite.6 0444 root bin
-f none X11/share/man/man6/menger.6 0444 root bin
-f none X11/share/man/man6/mirrorblob.6 0444 root bin
-f none X11/share/man/man6/moebius.6 0444 root bin
-f none X11/share/man/man6/molecule.6 0444 root bin
-f none X11/share/man/man6/morph3d.6 0444 root bin
-f none X11/share/man/man6/noof.6 0444 root bin
-f none X11/share/man/man6/pinion.6 0444 root bin
-f none X11/share/man/man6/pipes.6 0444 root bin
-f none X11/share/man/man6/polyhedra.6 0444 root bin
-f none X11/share/man/man6/polytopes.6 0444 root bin
-f none X11/share/man/man6/providence.6 0444 root bin
-f none X11/share/man/man6/pulsar.6 0444 root bin
-f none X11/share/man/man6/queens.6 0444 root bin
-f none X11/share/man/man6/rubik.6 0444 root bin
-f none X11/share/man/man6/sballs.6 0444 root bin
-f none X11/share/man/man6/sierpinski3d.6 0444 root bin
-f none X11/share/man/man6/spheremonics.6 0444 root bin
-f none X11/share/man/man6/sproingies.6 0444 root bin
-f none X11/share/man/man6/stairs.6 0444 root bin
-f none X11/share/man/man6/starwars.6 0444 root bin
-f none X11/share/man/man6/stonerview.6 0444 root bin
-f none X11/share/man/man6/superquadrics.6 0444 root bin
-f none X11/share/man/man6/tangram.6 0444 root bin
-f none X11/share/man/man6/timetunnel.6 0444 root bin
-f none X11/share/man/man6/topblock.6 0444 root bin
-
-# Hacks from open-src/app/rss-glx:
-f none X11/share/man/man6/biof.6		0444 root bin
-f none X11/share/man/man6/busyspheres.6		0444 root bin
-f none X11/share/man/man6/colorfire.6		0444 root bin
-f none X11/share/man/man6/cyclone.6		0444 root bin
-f none X11/share/man/man6/drempels.6		0444 root bin
-f none X11/share/man/man6/euphoria.6		0444 root bin
-f none X11/share/man/man6/feedback.6		0444 root bin
-f none X11/share/man/man6/fieldlines.6		0444 root bin
-f none X11/share/man/man6/flocks.6		0444 root bin
-f none X11/share/man/man6/flux.6		0444 root bin
-f none X11/share/man/man6/helios.6		0444 root bin
-f none X11/share/man/man6/hufo_smoke.6		0444 root bin
-f none X11/share/man/man6/hufo_tunnel.6		0444 root bin
-f none X11/share/man/man6/hyperspace.6		0444 root bin
-f none X11/share/man/man6/lattice.6		0444 root bin
-f none X11/share/man/man6/lorenz.6		0444 root bin
-f none X11/share/man/man6/matrixview.6		0444 root bin
-f none X11/share/man/man6/plasma.6		0444 root bin
-f none X11/share/man/man6/skyrocket.6		0444 root bin
-f none X11/share/man/man6/solarwinds.6		0444 root bin
-f none X11/share/man/man6/spirographx.6		0444 root bin
-f none X11/share/man/man6/sundancer2.6		0444 root bin
-
-
-!search      $HOME/lib/xscreensaver/config/control-center-2.0/
-d none X11/lib/xscreensaver/config 0755 root bin
-d none X11/lib/xscreensaver/config/control-center-2.0 0755 root other
-
-# Hacks from open-src/app/xscreensaver:
-f none X11/lib/xscreensaver/config/control-center-2.0/antinspect.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/antmaze.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/antspotlight.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/atlantis.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/atunnel.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/blinkbox.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/blocktube.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/boing.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/bouncingcow.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/boxed.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/bubble3d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cage.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/carousel.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/circuit.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/crackberg.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cube21.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cubenetic.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cubestorm.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/dangerball.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/endgame.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/engine.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fireflies.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flipflop.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flipscreen3d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fliptext.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flurry.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/gears.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/gflux.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glblur.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/gleidescope.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glforestfire.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glhanoi.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glknots.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glmatrix.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glplanet.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glschool.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glslideshow.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/glsnake.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/gltext.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hypertorus.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/jigglypuff.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/juggler3d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/klein.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lament.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lavalite.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/menger.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/mirrorblob.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/moebius.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/molecule.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/morph3d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/noof.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pinion.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pipes.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/polyhedra.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/polytopes.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/providence.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pulsar.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/queens.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/rubik.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sballs.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sierpinski3d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/spheremonics.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sproingies.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/stairs.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/starwars.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/stonerview.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/superquadrics.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/tangram.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/timetunnel.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/topblock.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xplanet.xml 0444 root bin
-
-# Hacks from open-src/app/rss-glx:
-f none X11/lib/xscreensaver/config/control-center-2.0/biof.xml		0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/busyspheres.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/colorfire.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cyclone.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/drempels.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/euphoria.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/feedback.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fieldlines.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flocks.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flux.xml		0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/helios.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hufo_smoke.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hufo_tunnel.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hyperspace.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lattice.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lorenz.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/matrixview.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/plasma.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/skyrocket.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/solarwinds.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/spirographx.xml	0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sundancer2.xml	0444 root bin
--- a/packages/SUNWxscreensaver-hacks-gl/prototype_i386	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)prototype_i386	1.3	09/04/17 SMI"
-#
-# XScreenSaver OpenGL display modules
-
-i depend=depend_i386
-
-#
-# Include ISA independent files (prototype_com)
-#
-!include prototype_com
-
--- a/packages/SUNWxscreensaver-hacks-gl/prototype_sparc	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)prototype_sparc	1.3	09/04/17 SMI"
-#
-# XScreenSaver OpenGL display modules
-
-i depend=depend_sparc
-
-#
-# Include ISA independent files (prototype_com)
-#
-!include prototype_com
-
--- a/packages/SUNWxscreensaver-hacks/copyright.add	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
-
---------------------------------------------------------------------
-
-
-The xscreensaver base software is Copyright (c) 1991-2006 Jamie Zawinski 
-<[email protected]>
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.  No representations are made about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
-Individual "hack" modules are covered by additional copyright notices as
-documented in their manual pages included in this package.
-
--- a/packages/SUNWxscreensaver-hacks/depend.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,41 +0,0 @@
-#
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is 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.
-# 
-#
-# ident	"@(#)depend.tmpl	1.5	09/07/13 SMI"
-#
-# XScreenSaver non-OpenGL display modules
-
-P SUNWgnome-base-libs  GNOME base GUI libraries
-P SUNWlibmsr	Math & Microtasking Libraries (Root)
-P SUNWxwsvr	XScreenSaver
-P SUNWxwice	X Window System Inter-Client Exchange (ICE) Components
-
-# common dependencies
-include ../depend
--- a/packages/SUNWxscreensaver-hacks/pkginfo.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# Copyright 2006 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
-# "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.
-# 
-#
-# ident	"@(#)pkginfo.tmpl	1.2	06/08/09 SMI"
-#
-
-PKG="SUNWxscreensaver-hacks"
-NAME="XScreenSaver display mode modules"
-ARCH="ISA"
-VERSION=6.6.2.0,REV=0.2000.02.02
-CATEGORY="system"
-SUNW_PRODNAME="Solaris X11"
-SUNW_PRODVERS=6.6.2
-DESC="Modules that provide different display modes (hacks) for the screen saver"
-BASEDIR="/usr"
-VENDOR="Sun Microsystems, Inc."
-HOTLINE="Please contact your local service provider"
-EMAIL=""
-MAXINST="1000"
-SUNW_PKGTYPE="usr"
-CLASSES=none 
-SUNW_PKGVERS=1.0
--- a/packages/SUNWxscreensaver-hacks/prototype	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,456 +0,0 @@
-#
-# Copyright 2006 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
-# "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.
-# 
-#
-# ident	"@(#)prototype	1.3	06/08/09 SMI"
-
-i pkginfo
-i copyright
-i depend 
-
-!HOME=../usr/X11
-d none X11 0755 root bin
-d none X11/lib 0755 root bin
-d none X11/lib/xscreensaver 0755 root bin
-
-!search      $HOME/lib/xscreensaver/hacks
-d none X11/lib/xscreensaver/hacks 0755 root bin
-f none X11/lib/xscreensaver/hacks/anemone 0555 root bin
-f none X11/lib/xscreensaver/hacks/anemotaxis 0555 root bin
-f none X11/lib/xscreensaver/hacks/apollonian 0555 root bin
-f none X11/lib/xscreensaver/hacks/apple2 0555 root bin
-f none X11/lib/xscreensaver/hacks/attraction 0555 root bin
-f none X11/lib/xscreensaver/hacks/barcode 0555 root bin
-f none X11/lib/xscreensaver/hacks/blaster 0555 root bin
-f none X11/lib/xscreensaver/hacks/blitspin 0555 root bin
-f none X11/lib/xscreensaver/hacks/bouboule 0555 root bin
-f none X11/lib/xscreensaver/hacks/boxfit 0555 root bin
-f none X11/lib/xscreensaver/hacks/braid 0555 root bin
-f none X11/lib/xscreensaver/hacks/bsod 0555 root bin
-f none X11/lib/xscreensaver/hacks/bubbles 0555 root bin
-f none X11/lib/xscreensaver/hacks/bumps 0555 root bin
-f none X11/lib/xscreensaver/hacks/ccurve 0555 root bin
-f none X11/lib/xscreensaver/hacks/celtic 0555 root bin
-f none X11/lib/xscreensaver/hacks/cloudlife 0555 root bin
-f none X11/lib/xscreensaver/hacks/compass 0555 root bin
-f none X11/lib/xscreensaver/hacks/coral 0555 root bin
-f none X11/lib/xscreensaver/hacks/critical 0555 root bin
-f none X11/lib/xscreensaver/hacks/crystal 0555 root bin
-f none X11/lib/xscreensaver/hacks/cynosure 0555 root bin
-f none X11/lib/xscreensaver/hacks/decayscreen 0555 root bin
-f none X11/lib/xscreensaver/hacks/deco 0555 root bin
-f none X11/lib/xscreensaver/hacks/deluxe 0555 root bin
-f none X11/lib/xscreensaver/hacks/demon 0555 root bin
-f none X11/lib/xscreensaver/hacks/discrete 0555 root bin
-f none X11/lib/xscreensaver/hacks/distort 0555 root bin
-f none X11/lib/xscreensaver/hacks/drift 0555 root bin
-f none X11/lib/xscreensaver/hacks/epicycle 0555 root bin
-f none X11/lib/xscreensaver/hacks/eruption 0555 root bin
-f none X11/lib/xscreensaver/hacks/euler2d 0555 root bin
-f none X11/lib/xscreensaver/hacks/fadeplot 0555 root bin
-f none X11/lib/xscreensaver/hacks/fiberlamp 0555 root bin
-f none X11/lib/xscreensaver/hacks/fireworkx 0555 root bin
-f none X11/lib/xscreensaver/hacks/flag 0555 root bin
-f none X11/lib/xscreensaver/hacks/flame 0555 root bin
-f none X11/lib/xscreensaver/hacks/flow 0555 root bin
-f none X11/lib/xscreensaver/hacks/fluidballs 0555 root bin
-f none X11/lib/xscreensaver/hacks/fontglide 0555 root bin
-f none X11/lib/xscreensaver/hacks/forest 0555 root bin
-f none X11/lib/xscreensaver/hacks/fuzzyflakes 0555 root bin
-f none X11/lib/xscreensaver/hacks/galaxy 0555 root bin
-f none X11/lib/xscreensaver/hacks/goop 0555 root bin
-f none X11/lib/xscreensaver/hacks/grav 0555 root bin
-f none X11/lib/xscreensaver/hacks/greynetic 0555 root bin
-f none X11/lib/xscreensaver/hacks/halftone 0555 root bin
-f none X11/lib/xscreensaver/hacks/halo 0555 root bin
-f none X11/lib/xscreensaver/hacks/helix 0555 root bin
-f none X11/lib/xscreensaver/hacks/hopalong 0555 root bin
-f none X11/lib/xscreensaver/hacks/hyperball 0555 root bin
-f none X11/lib/xscreensaver/hacks/hypercube 0555 root bin
-f none X11/lib/xscreensaver/hacks/ifs 0555 root bin
-f none X11/lib/xscreensaver/hacks/imsmap 0555 root bin
-f none X11/lib/xscreensaver/hacks/interaggregate 0555 root bin
-f none X11/lib/xscreensaver/hacks/interference 0555 root bin
-f none X11/lib/xscreensaver/hacks/intermomentary 0555 root bin
-f none X11/lib/xscreensaver/hacks/jigsaw 0555 root bin
-f none X11/lib/xscreensaver/hacks/juggle 0555 root bin
-f none X11/lib/xscreensaver/hacks/julia 0555 root bin
-f none X11/lib/xscreensaver/hacks/kaleidescope 0555 root bin
-f none X11/lib/xscreensaver/hacks/kumppa 0555 root bin
-f none X11/lib/xscreensaver/hacks/laser 0555 root bin
-f none X11/lib/xscreensaver/hacks/lightning 0555 root bin
-f none X11/lib/xscreensaver/hacks/lisa 0555 root bin
-f none X11/lib/xscreensaver/hacks/lissie 0555 root bin
-f none X11/lib/xscreensaver/hacks/lmorph 0555 root bin
-f none X11/lib/xscreensaver/hacks/loop 0555 root bin
-f none X11/lib/xscreensaver/hacks/maze 0555 root bin
-f none X11/lib/xscreensaver/hacks/memscroller 0555 root bin
-f none X11/lib/xscreensaver/hacks/metaballs 0555 root bin
-f none X11/lib/xscreensaver/hacks/mismunch 0555 root bin
-f none X11/lib/xscreensaver/hacks/moire 0555 root bin
-f none X11/lib/xscreensaver/hacks/moire2 0555 root bin
-f none X11/lib/xscreensaver/hacks/mountain 0555 root bin
-f none X11/lib/xscreensaver/hacks/munch 0555 root bin
-f none X11/lib/xscreensaver/hacks/nerverot 0555 root bin
-f none X11/lib/xscreensaver/hacks/noseguy 0555 root bin
-f none X11/lib/xscreensaver/hacks/pacman 0555 root bin
-f none X11/lib/xscreensaver/hacks/pedal 0555 root bin
-f none X11/lib/xscreensaver/hacks/penetrate 0555 root bin
-f none X11/lib/xscreensaver/hacks/penrose 0555 root bin
-f none X11/lib/xscreensaver/hacks/petri 0555 root bin
-f none X11/lib/xscreensaver/hacks/phosphor 0555 root bin
-f none X11/lib/xscreensaver/hacks/piecewise 0555 root bin
-f none X11/lib/xscreensaver/hacks/polyominoes 0555 root bin
-f none X11/lib/xscreensaver/hacks/pong 0555 root bin
-f none X11/lib/xscreensaver/hacks/popsquares 0555 root bin
-f none X11/lib/xscreensaver/hacks/pyro 0555 root bin
-f none X11/lib/xscreensaver/hacks/qix 0555 root bin
-f none X11/lib/xscreensaver/hacks/rd-bomb 0555 root bin
-f none X11/lib/xscreensaver/hacks/ripples 0555 root bin
-f none X11/lib/xscreensaver/hacks/rocks 0555 root bin
-f none X11/lib/xscreensaver/hacks/rorschach 0555 root bin
-f none X11/lib/xscreensaver/hacks/rotor 0555 root bin
-f none X11/lib/xscreensaver/hacks/rotzoomer 0555 root bin
-f none X11/lib/xscreensaver/hacks/shadebobs 0555 root bin
-f none X11/lib/xscreensaver/hacks/sierpinski 0555 root bin
-f none X11/lib/xscreensaver/hacks/slidescreen 0555 root bin
-f none X11/lib/xscreensaver/hacks/slip 0555 root bin
-f none X11/lib/xscreensaver/hacks/speedmine 0555 root bin
-f none X11/lib/xscreensaver/hacks/sphere 0555 root bin
-f none X11/lib/xscreensaver/hacks/spiral 0555 root bin
-f none X11/lib/xscreensaver/hacks/spotlight 0555 root bin
-f none X11/lib/xscreensaver/hacks/squiral 0555 root bin
-f none X11/lib/xscreensaver/hacks/starfish 0555 root bin
-f none X11/lib/xscreensaver/hacks/strange 0555 root bin
-f none X11/lib/xscreensaver/hacks/substrate 0555 root bin
-f none X11/lib/xscreensaver/hacks/swirl 0555 root bin
-f none X11/lib/xscreensaver/hacks/t3d 0555 root bin
-f none X11/lib/xscreensaver/hacks/thornbird 0555 root bin
-f none X11/lib/xscreensaver/hacks/triangle 0555 root bin
-f none X11/lib/xscreensaver/hacks/truchet 0555 root bin
-f none X11/lib/xscreensaver/hacks/twang 0555 root bin
-f none X11/lib/xscreensaver/hacks/vermiculate 0555 root bin
-f none X11/lib/xscreensaver/hacks/vidwhacker 0555 root bin
-f none X11/lib/xscreensaver/hacks/vines 0555 root bin
-f none X11/lib/xscreensaver/hacks/wander 0555 root bin
-f none X11/lib/xscreensaver/hacks/webcollage-helper 0555 root bin
-f none X11/lib/xscreensaver/hacks/whirlwindwarp 0555 root bin
-f none X11/lib/xscreensaver/hacks/whirlygig 0555 root bin
-f none X11/lib/xscreensaver/hacks/worm 0555 root bin
-f none X11/lib/xscreensaver/hacks/wormhole 0555 root bin
-f none X11/lib/xscreensaver/hacks/xanalogtv 0555 root bin
-f none X11/lib/xscreensaver/hacks/xflame 0555 root bin
-f none X11/lib/xscreensaver/hacks/xjack 0555 root bin
-f none X11/lib/xscreensaver/hacks/xlyap 0555 root bin
-f none X11/lib/xscreensaver/hacks/xmatrix 0555 root bin
-f none X11/lib/xscreensaver/hacks/xrayswarm 0555 root bin
-f none X11/lib/xscreensaver/hacks/xspirograph 0555 root bin
-f none X11/lib/xscreensaver/hacks/xsublim 0555 root bin
-f none X11/lib/xscreensaver/hacks/zoom 0555 root bin
-
-!search $HOME/share/man/man6
-s none X11/man=share/man
-d none X11/share 0755 root bin
-d none X11/share/man 0755 root bin
-d none X11/share/man/man6 0755 root bin
-f none X11/share/man/man6/anemone.6 0444 root bin
-f none X11/share/man/man6/anemotaxis.6 0444 root bin
-f none X11/share/man/man6/apollonian.6 0444 root bin
-f none X11/share/man/man6/apple2.6 0444 root bin
-f none X11/share/man/man6/attraction.6 0444 root bin
-f none X11/share/man/man6/barcode.6 0444 root bin
-f none X11/share/man/man6/blaster.6 0444 root bin
-f none X11/share/man/man6/blitspin.6 0444 root bin
-f none X11/share/man/man6/bouboule.6 0444 root bin
-f none X11/share/man/man6/boxfit.6 0444 root bin
-f none X11/share/man/man6/braid.6 0444 root bin
-f none X11/share/man/man6/bsod.6 0444 root bin
-f none X11/share/man/man6/bubbles.6 0444 root bin
-f none X11/share/man/man6/bumps.6 0444 root bin
-f none X11/share/man/man6/ccurve.6 0444 root bin
-f none X11/share/man/man6/celtic.6 0444 root bin
-f none X11/share/man/man6/cloudlife.6 0444 root bin
-f none X11/share/man/man6/compass.6 0444 root bin
-f none X11/share/man/man6/coral.6 0444 root bin
-f none X11/share/man/man6/critical.6 0444 root bin
-f none X11/share/man/man6/crystal.6 0444 root bin
-f none X11/share/man/man6/cynosure.6 0444 root bin
-f none X11/share/man/man6/decayscreen.6 0444 root bin
-f none X11/share/man/man6/deco.6 0444 root bin
-f none X11/share/man/man6/deluxe.6 0444 root bin
-f none X11/share/man/man6/demon.6 0444 root bin
-f none X11/share/man/man6/discrete.6 0444 root bin
-f none X11/share/man/man6/distort.6 0444 root bin
-f none X11/share/man/man6/drift.6 0444 root bin
-f none X11/share/man/man6/epicycle.6 0444 root bin
-f none X11/share/man/man6/eruption.6 0444 root bin
-f none X11/share/man/man6/euler2d.6 0444 root bin
-f none X11/share/man/man6/fadeplot.6 0444 root bin
-f none X11/share/man/man6/fiberlamp.6 0444 root bin
-f none X11/share/man/man6/fireworkx.6 0444 root bin
-f none X11/share/man/man6/flag.6 0444 root bin
-f none X11/share/man/man6/flame.6 0444 root bin
-f none X11/share/man/man6/flow.6 0444 root bin
-f none X11/share/man/man6/fluidballs.6 0444 root bin
-f none X11/share/man/man6/fontglide.6 0444 root bin
-f none X11/share/man/man6/forest.6 0444 root bin
-f none X11/share/man/man6/fuzzyflakes.6 0444 root bin
-f none X11/share/man/man6/galaxy.6 0444 root bin
-f none X11/share/man/man6/goop.6 0444 root bin
-f none X11/share/man/man6/grav.6 0444 root bin
-f none X11/share/man/man6/greynetic.6 0444 root bin
-f none X11/share/man/man6/halftone.6 0444 root bin
-f none X11/share/man/man6/halo.6 0444 root bin
-f none X11/share/man/man6/helix.6 0444 root bin
-f none X11/share/man/man6/hopalong.6 0444 root bin
-f none X11/share/man/man6/hyperball.6 0444 root bin
-f none X11/share/man/man6/hypercube.6 0444 root bin
-f none X11/share/man/man6/ifs.6 0444 root bin
-f none X11/share/man/man6/imsmap.6 0444 root bin
-f none X11/share/man/man6/interaggregate.6 0444 root bin
-f none X11/share/man/man6/interference.6 0444 root bin
-f none X11/share/man/man6/intermomentary.6 0444 root bin
-f none X11/share/man/man6/jigsaw.6 0444 root bin
-f none X11/share/man/man6/juggle.6 0444 root bin
-f none X11/share/man/man6/julia.6 0444 root bin
-f none X11/share/man/man6/kaleidescope.6 0444 root bin
-f none X11/share/man/man6/kumppa.6 0444 root bin
-f none X11/share/man/man6/laser.6 0444 root bin
-f none X11/share/man/man6/lightning.6 0444 root bin
-f none X11/share/man/man6/lisa.6 0444 root bin
-f none X11/share/man/man6/lissie.6 0444 root bin
-f none X11/share/man/man6/lmorph.6 0444 root bin
-f none X11/share/man/man6/loop.6 0444 root bin
-f none X11/share/man/man6/maze.6 0444 root bin
-f none X11/share/man/man6/memscroller.6 0444 root bin
-f none X11/share/man/man6/metaballs.6 0444 root bin
-f none X11/share/man/man6/mismunch.6 0444 root bin
-f none X11/share/man/man6/moire.6 0444 root bin
-f none X11/share/man/man6/moire2.6 0444 root bin
-f none X11/share/man/man6/mountain.6 0444 root bin
-f none X11/share/man/man6/munch.6 0444 root bin
-f none X11/share/man/man6/nerverot.6 0444 root bin
-f none X11/share/man/man6/noseguy.6 0444 root bin
-f none X11/share/man/man6/pacman.6 0444 root bin
-f none X11/share/man/man6/pedal.6 0444 root bin
-f none X11/share/man/man6/penetrate.6 0444 root bin
-f none X11/share/man/man6/penrose.6 0444 root bin
-f none X11/share/man/man6/petri.6 0444 root bin
-f none X11/share/man/man6/phosphor.6 0444 root bin
-f none X11/share/man/man6/piecewise.6 0444 root bin
-f none X11/share/man/man6/polyominoes.6 0444 root bin
-f none X11/share/man/man6/pong.6 0444 root bin
-f none X11/share/man/man6/pyro.6 0444 root bin
-f none X11/share/man/man6/qix.6 0444 root bin
-f none X11/share/man/man6/rd-bomb.6 0444 root bin
-f none X11/share/man/man6/ripples.6 0444 root bin
-f none X11/share/man/man6/rocks.6 0444 root bin
-f none X11/share/man/man6/rorschach.6 0444 root bin
-f none X11/share/man/man6/rotor.6 0444 root bin
-f none X11/share/man/man6/rotzoomer.6 0444 root bin
-f none X11/share/man/man6/shadebobs.6 0444 root bin
-f none X11/share/man/man6/sierpinski.6 0444 root bin
-f none X11/share/man/man6/slidescreen.6 0444 root bin
-f none X11/share/man/man6/slip.6 0444 root bin
-f none X11/share/man/man6/speedmine.6 0444 root bin
-f none X11/share/man/man6/sphere.6 0444 root bin
-f none X11/share/man/man6/spiral.6 0444 root bin
-f none X11/share/man/man6/spotlight.6 0444 root bin
-f none X11/share/man/man6/squiral.6 0444 root bin
-f none X11/share/man/man6/starfish.6 0444 root bin
-f none X11/share/man/man6/strange.6 0444 root bin
-f none X11/share/man/man6/substrate.6 0444 root bin
-f none X11/share/man/man6/swirl.6 0444 root bin
-f none X11/share/man/man6/t3d.6 0444 root bin
-f none X11/share/man/man6/thornbird.6 0444 root bin
-f none X11/share/man/man6/triangle.6 0444 root bin
-f none X11/share/man/man6/truchet.6 0444 root bin
-f none X11/share/man/man6/twang.6 0444 root bin
-f none X11/share/man/man6/vermiculate.6 0444 root bin
-f none X11/share/man/man6/vidwhacker.6 0444 root bin
-f none X11/share/man/man6/vines.6 0444 root bin
-f none X11/share/man/man6/wander.6 0444 root bin
-f none X11/share/man/man6/whirlwindwarp.6 0444 root bin
-f none X11/share/man/man6/whirlygig.6 0444 root bin
-f none X11/share/man/man6/worm.6 0444 root bin
-f none X11/share/man/man6/wormhole.6 0444 root bin
-f none X11/share/man/man6/xanalogtv.6 0444 root bin
-f none X11/share/man/man6/xflame.6 0444 root bin
-f none X11/share/man/man6/xjack.6 0444 root bin
-f none X11/share/man/man6/xlyap.6 0444 root bin
-f none X11/share/man/man6/xmatrix.6 0444 root bin
-f none X11/share/man/man6/xrayswarm.6 0444 root bin
-f none X11/share/man/man6/xspirograph.6 0444 root bin
-f none X11/share/man/man6/xsublim.6 0444 root bin
-f none X11/share/man/man6/zoom.6 0444 root bin
-
-
-!search      $HOME/lib/xscreensaver/config/control-center-2.0/
-d none X11/lib/xscreensaver/config 0755 root bin
-d none X11/lib/xscreensaver/config/control-center-2.0 0755 root other
-f none X11/lib/xscreensaver/config/control-center-2.0/anemone.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/anemotaxis.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/apollonian.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/apple2.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/attraction.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/barcode.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/blaster.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/blitspin.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/bouboule.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/boxfit.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/braid.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/bsod.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/bubbles.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/bumps.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/ccurve.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/celtic.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cloudlife.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/compass.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/coral.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cosmos.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/critical.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/crystal.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/cynosure.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/decayscreen.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/deco.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/deluxe.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/demon.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/discrete.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/distort.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/drift.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/electricsheep.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/epicycle.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/eruption.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/euler2d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fadeplot.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fiberlamp.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fireworkx.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flag.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flame.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/flow.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fluidballs.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fontglide.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/forest.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/fuzzyflakes.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/galaxy.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/goban.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/goop.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/grav.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/greynetic.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/halftone.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/halo.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/helix.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hopalong.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hyperball.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/hypercube.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/ifs.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/imsmap.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/interaggregate.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/interference.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/intermomentary.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/jigsaw.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/juggle.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/julia.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/kaleidescope.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/kumppa.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/laser.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lightning.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lisa.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lissie.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/lmorph.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/loop.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/maze.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/memscroller.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/metaballs.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/mismunch.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/moire.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/moire2.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/mountain.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/munch.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/nerverot.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/noseguy.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pacman.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pedal.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/penetrate.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/penrose.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/petri.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/phosphor.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/piecewise.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/polyominoes.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pong.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/popsquares.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/pyro.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/qix.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/rd-bomb.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/ripples.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/rocks.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/rorschach.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/rotor.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/rotzoomer.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/shadebobs.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sierpinski.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/slidescreen.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/slip.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/speedmine.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sphere.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/sphereeversion.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/spiral.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/spotlight.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/squiral.xml 0444 root bin
-#f none X11/lib/xscreensaver/config/control-center-2.0/ssystem.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/starfish.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/strange.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/substrate.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/swirl.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/t3d.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/thornbird.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/triangle.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/truchet.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/twang.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/vermiculate.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/vidwhacker.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/vines.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/wander.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/whirlwindwarp.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/whirlygig.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/worm.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/wormhole.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xanalogtv.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xaos.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xdaliclock.xml 0444 root bin
-#f none X11/lib/xscreensaver/config/control-center-2.0/xearth.xml 0444 root bin
-#f none X11/lib/xscreensaver/config/control-center-2.0/xfishtank.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xflame.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xjack.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xlyap.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xmatrix.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xmountains.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xrayswarm.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xsnow.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/xspirograph.xml 0444 root bin
-f none X11/lib/xscreensaver/config/control-center-2.0/zoom.xml 0444 root bin
--- a/packages/SUNWxwsvr/copyright.add	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-
---------------------------------------------------------------------
-
-
-xscreensaver, Copyright (c) 1991-2006 Jamie Zawinski <[email protected]>
-
-Permission to use, copy, modify, distribute, and sell this software and its
-documentation for any purpose is hereby granted without fee, provided that
-the above copyright notice appear in all copies and that both that
-copyright notice and this permission notice appear in supporting
-documentation.  No representations are made about the suitability of this
-software for any purpose.  It is provided "as is" without express or
-implied warranty.
-
--- a/packages/SUNWxwsvr/depend.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,45 +0,0 @@
-#
-# Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
-# Use is 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.
-# 
-#
-# ident	"@(#)depend.tmpl	1.5	09/07/13 SMI"
-#
-
-P SUNWgnome-base-libs	GNOME base GUI libraries
-P SUNWlibmsr		Math & Microtasking Libraries (Root)
-P SUNWlxml		The XML library
-P SUNWzlib		The Zip compression library
-P SUNWgnome-config	GNOME configuration framework
-P SUNWgnome-component	GNOME CORBA ORB and component framework
-P SUNWgnome-a11y-libs	Accessibility Implementation for GNOME
-P SUNWxwice		X Window System Inter-Client Exchange (ICE) Components
-P SUNWxorg-clientlibs	X.Org Foundation X Client Libraries
-
-# common dependencies
-include ../depend
--- a/packages/SUNWxwsvr/pkginfo.tmpl	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-#
-# Copyright 2006 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
-# "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.
-# 
-#
-# ident	"@(#)pkginfo.tmpl	1.4	06/08/09 SMI"
-#
-
-PKG="SUNWxwsvr"
-NAME="XScreenSaver"
-ARCH="ISA"
-VERSION=6.6.2.0,REV=0.2000.02.02
-CATEGORY="system"
-SUNW_PRODNAME="Solaris X11"
-SUNW_PRODVERS=6.6.2
-DESC="Screen Saver/Locker for X Window System"
-BASEDIR="/usr"
-VENDOR="Sun Microsystems, Inc."
-HOTLINE="Please contact your local service provider"
-EMAIL=""
-MAXINST="1000"
-SUNW_PKGTYPE="usr"
-CLASSES=none 
-SUNW_PKGVERS=1.0
--- a/packages/SUNWxwsvr/prototype	Mon Aug 03 15:21:13 2009 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,124 +0,0 @@
-#
-# Copyright 2009 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
-# "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.
-# 
-#
-# ident	"@(#)prototype	1.13	09/05/13 SMI"
-#
-# XScreenSaver daemon and utility programs
-
-i pkginfo
-i copyright
-i depend 
-
-# Many of the search paths in this file look strange due to the weird
-# Xscreensaver install process
-
-!HOME=../usr
-
-d none bin 0755 root bin
-s none bin/screensaver-properties-capplet=../X11/bin/xscreensaver-demo
-
-!search      $HOME/X11/bin
-d none openwin 0755 root bin
-d none openwin/bin 0755 root bin
-s none openwin/bin/xscreensaver=../../X11/bin/xscreensaver
-s none openwin/bin/xscreensaver-command=../../X11/bin/xscreensaver-command
-s none openwin/bin/xscreensaver-demo=../../X11/bin/xscreensaver-demo
-
-d none openwin/lib 0755 root bin
-s none openwin/lib/xscreensaver=../../X11/lib/xscreensaver
-
-!search      $HOME/X11/bin
-d none X11 				0755 root bin
-d none X11/bin 				0755 root bin
-f none X11/bin/xscreensaver 		4555 root bin
-f none X11/bin/xscreensaver-command 	0555 root bin
-f none X11/bin/xscreensaver-demo 	0555 root bin
-
-d none X11/lib 				0755 root bin
-d none X11/lib/xscreensaver 		0755 root bin
-d none X11/lib/xscreensaver/bin 	0755 root bin
-!search      $HOME/X11/lib/xscreensaver/bin
-f none X11/lib/xscreensaver/bin/xscreensaver-lock 		0555 root bin
-!search      $HOME/X11/bin
-f none X11/lib/xscreensaver/bin/xscreensaver-getimage		0555 root bin
-f none X11/lib/xscreensaver/bin/xscreensaver-getimage-file	0555 root bin 
-f none X11/lib/xscreensaver/bin/xscreensaver-getimage-video	0555 root bin
-f none X11/lib/xscreensaver/bin/xscreensaver-text 		0555 root bin
-
-!search $HOME/X11/share/man/man1
-s none X11/man=share/man
-d none X11/share 					0755 root bin
-d none X11/share/man 					0755 root bin
-d none X11/share/man/man1 				0755 root bin
-f none X11/share/man/man1/xscreensaver-command.1	0444 root bin
-f none X11/share/man/man1/xscreensaver-demo.1 		0444 root bin 
-f none X11/share/man/man1/xscreensaver-getimage-file.1	0444 root bin
-f none X11/share/man/man1/xscreensaver-getimage-video.1 0444 root bin 
-f none X11/share/man/man1/xscreensaver-getimage.1 	0444 root bin
-f none X11/share/man/man1/xscreensaver-text.1	 	0444 root bin
-f none X11/share/man/man1/xscreensaver.1 		0444 root bin
-
-!search      $HOME/X11/lib/X11/app-defaults
-d none X11/lib/X11 				0755 root bin
-d none X11/lib/X11/app-defaults 		0755 root bin
-f none X11/lib/X11/app-defaults/XScreenSaver 	0444 root bin
-
-d none openwin/lib/app-defaults 0755 root bin
-s none openwin/lib/app-defaults/XScreenSaver=../../../X11/lib/X11/app-defaults/XScreenSaver
-
-!search      $HOME/share/applications
-d none share 0755 root sys
-d none share/applications 0755 root other 
-f none share/applications/screensaver-properties.desktop=../usr/share/applications/gnome-screensaver-properties.desktop 0444 root bin
-
-d none share/gnome 0755 root other
-d none share/gnome/control-center-2.0 0755 root other
-!search      $HOME/X11/share/control-center-2.0/capplets
-d none share/gnome/control-center-2.0/capplets 0755 root other
-s none share/gnome/control-center-2.0/capplets/screensaver-properties.desktop=../../../applications/screensaver-properties.desktop
-
-!search      $HOME/X11/lib/xscreensaver/config/control-center-2.0/
-d none X11/lib/xscreensaver/config 0755 root bin
-d none X11/lib/xscreensaver/config/control-center-2.0 0755 root other
-f none X11/lib/xscreensaver/config/control-center-2.0/README 0444 root bin
-
-!search      $HOME/X11/lib/xscreensaver/config
-f none X11/lib/xscreensaver/config/screensaver-cmndln.png 0444 root bin
-f none X11/lib/xscreensaver/config/screensaver-colorselector.png 0444 root bin
-f none X11/lib/xscreensaver/config/screensaver-diagnostic.png 0444 root bin
-f none X11/lib/xscreensaver/config/screensaver-locking.png 0444 root bin
-f none X11/lib/xscreensaver/config/screensaver-power.png 0444 root bin
-f none X11/lib/xscreensaver/config/screensaver-snap.png 0444 root bin
-f none X11/lib/xscreensaver/config/xscreensaver-demo.glade2 0444 root bin
-f none X11/lib/xscreensaver/config/unlock-logo.png 0444 root bin
-f none X11/lib/xscreensaver/config/trusted-logo.png 0444 root bin
-f none X11/lib/xscreensaver/config/opensolaris-logo.png 0444 root bin
-f none X11/lib/xscreensaver/config/logo-180.gif 0444 root bin
-!search	     $HOME/share/pixmaps
-f none X11/lib/xscreensaver/config/xscreensaver.xpm 0444 root bin
--- a/packages/upgrade-X	Mon Aug 03 15:21:13 2009 -0700
+++ b/packages/upgrade-X	Wed Aug 05 16:10:40 2009 -0700
@@ -1,9 +1,6 @@
 #!/bin/ksh93
 
 ###
-#
-# @(#)upgrade-X	1.56 09/07/10
-#
 # Copyright 2009 Sun Microsystems, Inc.  All rights reserved.
 # Use is subject to license terms.
 #
@@ -34,6 +31,8 @@
 #
 ###########################################################################
 #
+# ident	"@(#)upgrade-X	1.57	09/08/05 SMI"
+#
 # Description: This script upgrades X software on a Solaris Nevada
 #	       system. It should be run as root from a X package area.
 #
@@ -182,8 +181,6 @@
 	SUNWxorg-headers
 	SUNWxorg-server
 	SUNWxorg-tsol-module
-	SUNWxscreensaver-hacks
-	SUNWxscreensaver-hacks-gl
 	SUNWxvnc
 	SUNWxwacx
 	SUNWxwcft
@@ -202,7 +199,6 @@
 	SUNWxwpmn
 	SUNWxwrtl
 	SUNWxwslb
-	SUNWxwsvr
 	SUNWxwxft
 "
 
@@ -264,6 +260,10 @@
 # snv_120: 6859233 Removal of Xprint [PSARC 2009/294]
 REM_PKGS+=" SUNWxprint-server SUNWxwpft"
 
+# snv_122: 6868816 move xscreensaver from X consolidation to Desktop cons.
+# Packages intentionally not added to REM_PKGS since they were moved
+# to Desktop, and upgrade-X should no longer touch them.
+
 # Check for shared SMF manifest scripts now required by our packages
 if [[ ! -f /usr/sadm/install/scripts/i.manifest ]] ; then
     fatal_error "Cannot install on a Nevada build older than nv_17.\n" \