--- 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 "xscreensaver-extras" and
--"xscreensaver-gl-extras" packages are not installed.</property>
-+This probably means that the "SUNWxscreensaver-hacks" and
-+"SUNWxscreensaver-hacks-gl" 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" \