From b92f210ad7ea5826c883888884073e48a38baf39 Mon Sep 17 00:00:00 2001 From: Sehong Na Date: Sat, 31 May 2014 13:21:15 +0900 Subject: [PATCH 1/1] Initialize Tizen 2.3 --- COPYING | 24 + ChangeLog | 492 +++++++++++++++++ INSTALL | 291 ++++++++++ Makefile.am | 22 + README | 30 + autogen.sh | 12 + configure.ac | 20 + docbook.am | 105 ++++ packaging/xorg-x11-proto-scrnsaver.spec | 46 ++ saver.h | 52 ++ saverproto.h | 175 ++++++ scrnsaverproto.pc.in | 9 + specs/Makefile.am | 13 + specs/saver.xml | 943 ++++++++++++++++++++++++++++++++ 14 files changed, 2234 insertions(+) create mode 100644 COPYING create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100755 Makefile.am create mode 100755 README create mode 100755 autogen.sh create mode 100644 configure.ac create mode 100644 docbook.am create mode 100644 packaging/xorg-x11-proto-scrnsaver.spec create mode 100644 saver.h create mode 100644 saverproto.h create mode 100644 scrnsaverproto.pc.in create mode 100644 specs/Makefile.am create mode 100644 specs/saver.xml diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..8d5f087 --- /dev/null +++ b/COPYING @@ -0,0 +1,24 @@ +Copyright (c) 1992 X Consortium + +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, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + +Author: Keith Packard, MIT X Consortium diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..5b3a31a --- /dev/null +++ b/ChangeLog @@ -0,0 +1,492 @@ +commit c33f4368e85d976b112dda4a34ca254944cb354d +Author: Alan Coopersmith +Date: Thu Mar 22 20:49:20 2012 -0700 + + scrnsaverproto 1.2.2 + +commit 27cf3d03cdd502c1228e59ba560eab77d8393405 +Author: Matt Dew +Date: Sat Jan 14 22:21:00 2012 -0700 + + informaltable cleanup + + On certain tables, add top and bottom borders to table + header and a bottom border to the table. This matches + what those tables in the old pdfs looked like. + + the prevents tables from + splitting across pages. Useful for tiny tables. + + Converting the colwidth to a floating point, + IE, 1* -> 1.0* cleans up these build errors: + WARNING: table-layout="fixed" and column-width unspecified + => falling back to proportional-column-width(1) + + Signed-off-by: Matt Dew + +commit ffbc319b69b1e3502a9b14195e7fa94f2beee3b6 +Author: Matt Dew +Date: Sat Sep 24 20:07:44 2011 -0600 + + Fix id attributes, linkend and olinks + + #1 - fix the capitolization of the ID attriutes to match either the or <funcdef> string it goes with. + #2 - fix any <linkend>'s that were affected by #1 + #3 - any <function> in the docs that has an actual funcdef, will become an olink if external, xref if internal. + + Reviewed-by: Gaetan Nadon <memsize@videotron.ca> + +commit 4aa72b32c7707bd78fc8dd8e287e3030eeb85d05 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Tue Sep 20 20:17:40 2011 -0400 + + specs: fix markup for single license dual holder + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit d9c42cb0ba35e1c5e5a36a8cbde81eb311350931 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Mon Sep 12 11:04:11 2011 -0400 + + docs: use the &fullrelvers; entity to set X11 release information + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit 378e4e73352a6bc11589460fdb4e6ceead2e82dc +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Sep 11 19:49:54 2011 -0400 + + docs: remove <productnumber> which is not used by default + + This element is not rendered by default on the title. A template + customization is required to display it. + X Window System does not have a product number. + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit feaac4aaccb25d79d29a6020e75fca5a9938bf8a +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Thu Sep 8 20:00:00 2011 -0400 + + docbook.am: embed css styles inside the HTML HEAD element + + Rather than referring to the external xorg.css stylesheet, embed the content + of the file in the html output produced. This is accomplished by using + version 1.10 of xorg-xhtml.xsl. + + This makes the whole html docs tree much more relocatable. + In addition, it eliminates xorg.css as a runtime file which makes + xorg-sgml-doctools a build time only package. + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit 25764e51ecdea56df02063ae3b9d625d41a1209d +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Wed Sep 7 10:31:04 2011 -0400 + + docbook.am: global maintenance update - entities, images and olinking + + Adding support in libX11 for html chunking caused a reorg of docbook.am + as well as the xorg-sgml-doctools masterdb for olinking. + The parameter img.src.path is added for pdf images. + A searchpath to the root builddir is added for local entities, if present. + + The docbook.am makefile hides all the details and is identical for + all 22 modules having DocBook documentation. It is included by a thin + Makefile.am which requires no docbook knowledge. + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit e80d85902dcd19edd9bdb5f574ca47d0811ac0aa +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Jun 12 17:54:50 2011 -0400 + + Install xml versions of specs even if HAVE_XMLTO is false + + DocBook/XML input source is also a usefull output format that can be viewed + with an XML viewer or editor and by some O/S help system. + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit 8f407c9417ffe2c1e01b37e18c71469d2baee970 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Jun 5 16:27:37 2011 -0400 + + Install target dbs alongside generated documents + + This matches a change in xorg-sgml-docs whereby the masterdb will look for + the target dbs into the same location as the generated documents. + + The target dbs are now installed alongside the generated documents. + Previously they are installed in $prefix/sgml/X11/dbs alongside masterdb which + has the potential of installing outside the package prefix and cause + distcheck to fail when user does not have write permission in this package. + + Requires XORG_CHECK_SGML_DOCTOOLS(1.8) which was released 2011-06-11 + +commit 2408165cb190a10e2d899bdc259866cbf7a8e125 +Author: Matt Dew <marcoz@osource.org> +Date: Wed May 25 22:04:10 2011 -0600 + + add id attributes to funcsynopsis to allow other docs to olink to them. + + Signed-off-by: Matt Dew <marcoz@osource.org> + Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com> + Reviewed-by: Gaetan Nadon <memsize@videotron.ca> + +commit 2cd4a9898644dde49a876eeb53037149c85a37f0 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Feb 27 15:06:18 2011 -0500 + + Documentation: add Docbook external references support + + When writing technical documentation, it is often necessary to cross + reference to other information. When that other information is not in the + current document, additional support is needed, namely <olink>. + + A new feature with version 1.7 of xorg-sgml-doctools adds references to + other documents within or outside this package. + + This patch adds technical support for this feature but does not change + the content of the documentation as seen by the end user. + + Each book or article must generate a database containing the href + of sections that can be referred to from another document. This database + is installed in DATAROOTDIR/sgml/X11/dbs. There is a requirement that + the value of DATAROOTDIR for xorg-sgml-doctools and for the package + documentation is the same. This forms a virtual document tree. + + This database is consulted by other documents while they are being generated + in order to fulfill the missing information for linking. + Refer to the xorg-sgml-doctools for further technical information. + + Co-authored-by: Matt Dew <marcoz@osource.org> + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit 9d7dc8242feae5690e7aef48a386555c04183e9f +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Dec 16 23:16:54 2010 -0800 + + specs: change othercredit tags to author tags + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit d50038590f72f02bc95712d8a4c37654f6d05a64 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Dec 16 23:15:19 2010 -0800 + + spec: Fix section titles/nesting + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit f85ed94ac012675dff25afbd3161dbbd3f62882b +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Tue Nov 9 15:19:09 2010 -0500 + + config: HTML file generation: use the installed copy of xorg.css + + Currenlty the xorg.css file is copied in each location + where a DocBook/XML file resides. This produces about + 70 copies in the $(docdir) install tree. + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit b4899c5d6090efdf292f5686cc23ed90e3729e4b +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Fri Oct 29 23:27:16 2010 -0700 + + ScrnSaverProto 1.2.1 + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 2db9df02a69046bc2ee3d87432c91d996a733ecc +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Tue Aug 3 15:32:12 2010 -0400 + + config: Require xorg-macros minimum of 1.10 for XORG_CHECK_SGML_DOCTOOLS + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit a8462405a2d2536867cc63587a49e5d130ea44ea +Author: Matt Dew <matt@osource.org> +Date: Sat Jul 31 12:23:10 2010 -0400 + + specs: replace troff source with docbook-xml source + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit 689268bf3fcd25015d07be8652fde6924a59b7d9 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Mar 28 19:25:52 2010 -0400 + + config: update AC_PREREQ statement to 2.60 + + Unrelated to the previous patches, the new value simply reflects + the reality that the minimum level for autoconf to configure + all x.org modules is 2.60 dated June 2006. + + ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit 5056835765a4a2103fbc6977740874762f5d5737 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Mar 28 19:00:31 2010 -0400 + + config: remove the pkgconfig pc.in file from EXTRA_DIST + + Automake always includes it in the tarball. + + Signed-off-by: Gaetan Nadon <memsize@videotron.ca> + +commit d7616943beb59d29349c16670340f677e340852c +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Nov 22 19:24:48 2009 -0500 + + Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES + + Now that the INSTALL file is generated. + Allows running make maintainer-clean. + +commit b758d8d966ccfdda4bdcbe24f679945dbfc2fff9 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Mon Nov 16 11:13:30 2009 -0500 + + README: file created or updated #24206 + + Contains a set of URLs to freedesktop.org. + +commit 72b6b958cb793feca0fad07276a9cc29c9d818f5 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Nov 15 19:45:27 2009 -0500 + + Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432 + + ChangeLog filename is known to Automake and requires no further + coding in the makefile. + +commit 5d3c1539a272ce6bd5a11f16f8bc7ab9bce8f1e5 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Nov 15 18:31:29 2009 -0500 + + Makefile.am: INSTALL file is missing or incorrect #24206 + + The standard GNU file on building/installing tarball is copied + using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS + Add INSTALL target + +commit fd7a1f1a3ed7d7907f94b38e6a9a8c4a3b3d9bbb +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Nov 15 18:11:36 2009 -0500 + + configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242 + + This macro aggregate a number of existing macros that sets commmon + X.Org components configuration options. It shields the configuration file from + future changes. + +commit 180c9ee3be0bac7952351c89b0d219e672c1010c +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sun Nov 15 13:55:25 2009 -0500 + + configure.ac: AM_MAINTAINER_MODE missing #24238 + + This turns off maintainer mode build rules in tarballs. + Works in conjunction with autogen.sh --enable-maintainer-mode + +commit 48110b9fd22f9cefc0cbe4902eabde995f398dd3 +Author: Gaetan Nadon <memsize@videotron.ca> +Date: Sat Nov 14 18:26:47 2009 -0500 + + .gitignore: use common defaults with custom section # 24239 + + Using common defaults will reduce errors and maintenance. + Only the very small or inexistent custom section need periodic maintenance + when the structure of the component changes. Do not edit defaults. + +commit bcc25e87ba8e93c306b3cd00317a6f550c73f5cf +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Tue Aug 25 18:34:56 2009 +1000 + + scrnsaverproto 1.2.0 + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + +commit a2f5eaf51b26616746fddcd3a60c3b939d1a018a +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Tue Aug 25 18:34:36 2009 +1000 + + Remove RCS tags + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + +commit 83974b2814eb18d9c86f41e39dfdafaf39759ced +Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> +Date: Tue Jan 27 20:06:28 2009 -0200 + + Janitor: Correct make distcheck and dont distribute autogen.sh + +commit 88a1fe1ac27353b92836b9a21c5a1757bad64fad +Author: Peter Hutterer <peter@cs.unisa.edu.au> +Date: Mon May 19 20:08:12 2008 +0930 + + Remove scrnsaver.h. This is an xlib header, moved to libXScrnSaver. + + For future amendments to this file, look at + git://anongit.freedesktop.org/git/xorg/lib/libXScrnSaver + +commit c993e0c422a52bc5f56f7fba29af82f78f7680a5 +Author: Peter Hutterer <peter@cs.unisa.edu.au> +Date: Mon May 19 19:11:29 2008 +0930 + + Nuke RCS tags. + +commit 7e19b4a5ad470f1715046f56ea8149df851221e4 +Author: James Cloos <cloos@jhcloos.com> +Date: Thu Dec 6 16:39:07 2007 -0500 + + Replace static ChangeLog with dist-hook to generate from git log + +commit 00aa1552d0c151402173ce9e4f612d84e4bbddcf +Author: James Cloos <cloos@jhcloos.com> +Date: Mon Sep 3 05:54:16 2007 -0400 + + Add *~ to .gitignore to skip patch/emacs droppings + +commit 294d7788b9e4ee86d93992ea074b169bf2ede25e +Author: Alan Coopersmith <alan.coopersmith@sun.com> +Date: Fri Jul 14 18:56:32 2006 -0700 + + renamed: .cvsignore -> .gitignore + +commit ac0b03f75facc368da302fa2f500dcfeafc04e15 +Author: Fredrik Höglund <fredrik@kde.org> +Date: Fri Mar 31 18:39:42 2006 +0000 + + Update the package version number to 1.1. + Increase the minor version to 1. + Add the ScreenSaverSuspend request. + Add the prototype for XScreenSaverSuspend. + +commit 2f091ac1252c833bf70639b718bb1ac738066016 +Author: Kevin E Martin <kem@kem.org> +Date: Thu Dec 15 00:24:38 2005 +0000 + + Update package version number for final X11R7 release candidate. + +commit 7bc2f8f300a7fac1f86d281459e74f2c3aafde07 +Author: Kevin E Martin <kem@kem.org> +Date: Wed Oct 19 02:48:15 2005 +0000 + + Update package version number for RC1 release. + +commit ab3d7b78cfd25882ff74159931c9b1e5a7f1e762 +Author: Eric Anholt <anholt@freebsd.org> +Date: Tue Aug 2 19:19:39 2005 +0000 + + Add basic .cvsignore files for proto modules. + +commit 4a27d790b9e39c2bae6515ddc71cd7c710b9fd69 +Author: Kevin E Martin <kem@kem.org> +Date: Fri Jul 29 21:22:56 2005 +0000 + + Various changes preparing packages for RC0: + - Verify and update package version numbers as needed + - Implement versioning scheme + - Change bug address to point to bugzilla bug entry form + - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to + reenable it) + - Fix makedepend to use pkgconfig and pass distcheck + - Update build script to build macros first + - Update modular Xorg version + +commit 6f818dc15a71a0af7e9cf5806677722f99227ebd +Author: Daniel Stone <daniel@fooishbar.org> +Date: Sat May 21 04:19:33 2005 +0000 + + Set version to 1.0. + +commit 450acca3dbce47f8fef56864235698715ba5122d +Author: Adam Jackson <ajax@nwnk.net> +Date: Thu May 19 00:22:40 2005 +0000 + + revert last change, didn't do right thing at all, sorry for the noise + +commit 15eaf97151b718e01eecac1aba75872e4c9d2ddc +Author: Adam Jackson <ajax@nwnk.net> +Date: Thu May 19 00:10:19 2005 +0000 + + Require automake 1.7 in AM_INIT_AUTOMAKE + +commit 771299cf2f6de82ac1bc58aaf4830cc514033569 +Author: Josh Triplett <josh@speakeasy.net> +Date: Tue May 17 20:41:15 2005 +0000 + + Add COPYING file for ScrnSaver. + +commit e455c03bb7e498e7eaaf8ad815fb60355fb1f72e +Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> +Date: Mon May 9 18:20:06 2005 +0000 + + Change all the protonames from <extension>Ext to <extension>Proto. + +commit 22a2a1cdb0f6e05fa609fbd996c696aa509f1f83 +Author: Kevin E Martin <kem@kem.org> +Date: Fri May 6 01:46:31 2005 +0000 + + Initial build system files for proto module. + +commit df80fd315a3dedab112429d68c45adaf57e12c3d +Author: Daniel Stone <daniel@fooishbar.org> +Date: Thu Jan 27 05:36:16 2005 +0000 + + Include X11/Xlib.h in scrnsaver.h + +commit fd13bc250b337d0510975b49a2432b0fd9e3753c +Author: Egbert Eich <eich@suse.de> +Date: Fri Apr 23 18:43:06 2004 +0000 + + Merging XORG-CURRENT into trunk + +commit 30ce491906c32ed9137738cd97c13e2c346f4d48 +Author: Egbert Eich <eich@suse.de> +Date: Sun Mar 14 08:31:36 2004 +0000 + + Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004 + +commit 7e886322e57130ed3a2b4633cd93a9f6fe17c4c4 +Author: Egbert Eich <eich@suse.de> +Date: Wed Mar 3 12:10:54 2004 +0000 + + Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004 + +commit bdcc80fa6a01bfdbaba23ed0ea265afbb3deff3c +Author: Egbert Eich <eich@suse.de> +Date: Thu Feb 26 13:35:14 2004 +0000 + + readding XFree86's cvs IDs + +commit 6229c02f2d40f995b5f0067fab1ae1c281b3c5f9 +Author: Egbert Eich <eich@suse.de> +Date: Thu Feb 26 09:22:28 2004 +0000 + + Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004 + +commit 21e708cda17e86d513bbc8cd779fa5f35376b868 +Author: Kaleb Keithley <kaleb@freedesktop.org> +Date: Tue Nov 25 19:28:02 2003 +0000 + + XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks + +commit 78c91d731d4b9e708e5187f7051022a9ee50563a +Author: Kaleb Keithley <kaleb@freedesktop.org> +Date: Fri Nov 14 16:48:43 2003 +0000 + + XFree86 4.3.0.1 + +commit 0c0b82a2143adfb443157badfe84093d8b74cc13 +Author: Kaleb Keithley <kaleb@freedesktop.org> +Date: Fri Nov 14 16:48:43 2003 +0000 + + Initial revision diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..8b82ade --- /dev/null +++ b/INSTALL @@ -0,0 +1,291 @@ +Installation Instructions +************************* + +Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005, +2006, 2007, 2008 Free Software Foundation, Inc. + + This file is free documentation; the Free Software Foundation gives +unlimited permission to copy, distribute and modify it. + +Basic Installation +================== + + Briefly, the shell commands `./configure; make; make install' should +configure, build, and install this package. The following +more-detailed instructions are generic; see the `README' file for +instructions specific to this package. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, and a +file `config.log' containing compiler output (useful mainly for +debugging `configure'). + + It can also use an optional file (typically called `config.cache' +and enabled with `--cache-file=config.cache' or simply `-C') that saves +the results of its tests to speed up reconfiguring. Caching is +disabled by default to prevent problems with accidental use of stale +cache files. + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If you are using the cache, and at +some point `config.cache' contains results you don't want to keep, you +may remove or edit it. + + The file `configure.ac' (or `configure.in') is used to create +`configure' by a program called `autoconf'. You need `configure.ac' if +you want to change it or regenerate `configure' using a newer version +of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. + + Running `configure' might take a while. While running, it prints + some messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + + 6. Often, you can also type `make uninstall' to remove the installed + files again. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. Run `./configure --help' +for details on some of the pertinent environment variables. + + You can give `configure' initial values for configuration parameters +by setting variables in the command line or in the environment. Here +is an example: + + ./configure CC=c99 CFLAGS=-g LIBS=-lposix + + *Note Defining Variables::, for more details. + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you can use GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + With a non-GNU `make', it is safer to compile the package for one +architecture at a time in the source code directory. After you have +installed the package for one architecture, use `make distclean' before +reconfiguring for another architecture. + + On MacOS X 10.5 and later systems, you can create libraries and +executables that work on multiple system types--known as "fat" or +"universal" binaries--by specifying multiple `-arch' options to the +compiler but only a single `-arch' option to the preprocessor. Like +this: + + ./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \ + CPP="gcc -E" CXXCPP="g++ -E" + + This is not guaranteed to produce working output in all cases, you +may have to build one architecture at a time and combine the results +using the `lipo' tool if you have problems. + +Installation Names +================== + + By default, `make install' installs the package's commands under +`/usr/local/bin', include files under `/usr/local/include', etc. You +can specify an installation prefix other than `/usr/local' by giving +`configure' the option `--prefix=PREFIX'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +pass the option `--exec-prefix=PREFIX' to `configure', the package uses +PREFIX as the prefix for installing programs and libraries. +Documentation and other data files still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=DIR' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Particular systems +================== + + On HP-UX, the default C compiler is not ANSI C compatible. If GNU +CC is not installed, it is recommended to use the following options in +order to use an ANSI C compiler: + + ./configure CC="cc -Ae" + +and if that doesn't work, install pre-built binaries of GCC for HP-UX. + + On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot +parse its `<wchar.h>' header file. The option `-nodtk' can be used as +a workaround. If GNU CC is not installed, it is therefore recommended +to try + + ./configure CC="cc" + +and if that doesn't work, try + + ./configure CC="cc -nodtk" + +Specifying the System Type +========================== + + There may be some features `configure' cannot figure out +automatically, but needs to determine by the type of machine the package +will run on. Usually, assuming the package is built to be run on the +_same_ architectures, `configure' can figure that out, but if it prints +a message saying it cannot guess the machine type, give it the +`--build=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name which has the form: + + CPU-COMPANY-SYSTEM + +where SYSTEM can have one of these forms: + + OS KERNEL-OS + + See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the machine type. + + If you are _building_ compiler tools for cross-compiling, you should +use the option `--target=TYPE' to select the type of system they will +produce code for. + + If you want to _use_ a cross compiler, that generates code for a +platform different from the build platform, you should specify the +"host" platform (i.e., that on which the generated programs will +eventually be run) with `--host=TYPE'. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Defining Variables +================== + + Variables not defined in a site shell script can be set in the +environment passed to `configure'. However, some packages may run +configure again during the build, and the customized values of these +variables may be lost. In order to avoid this problem, you should set +them in the `configure' command line, using `VAR=value'. For example: + + ./configure CC=/usr/local2/bin/gcc + +causes the specified `gcc' to be used as the C compiler (unless it is +overridden in the site shell script). + +Unfortunately, this technique does not work for `CONFIG_SHELL' due to +an Autoconf bug. Until the bug is fixed you can use this workaround: + + CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash + +`configure' Invocation +====================== + + `configure' recognizes the following options to control how it +operates. + +`--help' +`-h' + Print a summary of all of the options to `configure', and exit. + +`--help=short' +`--help=recursive' + Print a summary of the options unique to this package's + `configure', and exit. The `short' variant lists options used + only in the top level, while the `recursive' variant lists options + also present in any nested packages. + +`--version' +`-V' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`--cache-file=FILE' + Enable the cache: use and save the results of the tests in FILE, + traditionally `config.cache'. FILE defaults to `/dev/null' to + disable caching. + +`--config-cache' +`-C' + Alias for `--cache-file=config.cache'. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--prefix=DIR' + Use DIR as the installation prefix. *Note Installation Names:: + for more details, including other options available for fine-tuning + the installation locations. + +`--no-create' +`-n' + Run the configure checks, but stop before creating any output + files. + +`configure' also accepts some other, not widely useful, options. Run +`configure --help' for more details. + diff --git a/Makefile.am b/Makefile.am new file mode 100755 index 0000000..8f51dd8 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,22 @@ +SUBDIRS=specs + +scrnsaverdir = $(includedir)/X11/extensions +scrnsaver_HEADERS = \ + saver.h \ + saverproto.h + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = scrnsaverproto.pc + + +MAINTAINERCLEANFILES = ChangeLog INSTALL + +.PHONY: ChangeLog INSTALL + +INSTALL: + $(INSTALL_CMD) + +ChangeLog: + $(CHANGELOG_CMD) + +dist-hook: ChangeLog INSTALL diff --git a/README b/README new file mode 100755 index 0000000..cfa9794 --- /dev/null +++ b/README @@ -0,0 +1,30 @@ + MIT Screen Saver Extension + +This extension defines a protocol to control screensaver features +and also to query screensaver info on specific windows. + +Extension name: MIT-SCREEN-SAVER + +All questions regarding this software should be directed at the +Xorg mailing list: + + http://lists.freedesktop.org/mailman/listinfo/xorg + +Please submit bug reports to the Xorg bugzilla: + + https://bugs.freedesktop.org/enter_bug.cgi?product=xorg + +The master development code repository can be found at: + + git://anongit.freedesktop.org/git/xorg/proto/scrnsaverproto + + http://cgit.freedesktop.org/xorg/proto/scrnsaverproto + +For patch submission instructions, see: + + http://www.x.org/wiki/Development/Documentation/SubmittingPatches + +For more information on the git code manager, see: + + http://wiki.x.org/wiki/GitPage + diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..904cd67 --- /dev/null +++ b/autogen.sh @@ -0,0 +1,12 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? + +$srcdir/configure --enable-maintainer-mode "$@" diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..6a70989 --- /dev/null +++ b/configure.ac @@ -0,0 +1,20 @@ +AC_PREREQ([2.60]) +AC_INIT([ScrnSaverProto], [1.2.2], + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AM_INIT_AUTOMAKE([foreign dist-bzip2]) +AM_MAINTAINER_MODE + +# Require xorg-macros minimum of 1.12 for DocBook external references +m4_ifndef([XORG_MACROS_VERSION], + [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.12) +XORG_DEFAULT_OPTIONS +XORG_ENABLE_SPECS +XORG_WITH_XMLTO(0.0.22) +XORG_WITH_FOP +XORG_WITH_XSLTPROC +XORG_CHECK_SGML_DOCTOOLS(1.8) + +AC_OUTPUT([Makefile + specs/Makefile + scrnsaverproto.pc]) diff --git a/docbook.am b/docbook.am new file mode 100644 index 0000000..bba4d54 --- /dev/null +++ b/docbook.am @@ -0,0 +1,105 @@ +# +# Generate output formats for a single DocBook/XML with/without chapters +# +# Variables set by the calling Makefile: +# shelfdir: the location where the docs/specs are installed. Typically $(docdir) +# docbook: the main DocBook/XML file, no chapters, appendix or image files +# chapters: all files pulled in by an XInclude statement and images. +# + +# +# This makefile is intended for Users Documentation and Functional Specifications. +# Do not use for Developer Documentation which is not installed and does not require olink. +# Refer to http://www.x.org/releases/X11R7.6/doc/xorg-docs/ReleaseNotes.html#id2584393 +# for an explanation on documents classification. +# + +# DocBook/XML generated output formats to be installed +shelf_DATA = + +# DocBook/XML file with chapters, appendix and images it includes +dist_shelf_DATA = $(docbook) $(chapters) + +if HAVE_XMLTO +if HAVE_STYLESHEETS + +XMLTO_SEARCHPATH_FLAGS = \ + --searchpath "$(XORG_SGML_PATH)/X11" \ + --searchpath "$(abs_top_builddir)" +XMLTO_HTML_OLINK_FLAGS = \ + --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.html.xml \ + --stringparam current.docid="$(<:.xml=)" +XMLTO_HTML_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl +XMLTO_HTML_FLAGS = \ + $(XMLTO_SEARCHPATH_FLAGS) \ + $(XMLTO_HTML_STYLESHEET_FLAGS) \ + $(XMLTO_HTML_OLINK_FLAGS) + +shelf_DATA += $(docbook:.xml=.html) +%.html: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) xhtml-nochunks $< + +if HAVE_XMLTO_TEXT + +shelf_DATA += $(docbook:.xml=.txt) +%.txt: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $< +endif HAVE_XMLTO_TEXT + +if HAVE_FOP +XMLTO_FO_IMAGEPATH_FLAGS = --stringparam img.src.path=$(abs_builddir)/ +XMLTO_PDF_OLINK_FLAGS = \ + --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.pdf.xml \ + --stringparam current.docid="$(<:.xml=)" +XMLTO_FO_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl + +XMLTO_FO_FLAGS = \ + $(XMLTO_SEARCHPATH_FLAGS) \ + $(XMLTO_FO_STYLESHEET_FLAGS) \ + $(XMLTO_FO_IMAGEPATH_FLAGS) \ + $(XMLTO_PDF_OLINK_FLAGS) + +shelf_DATA += $(docbook:.xml=.pdf) +%.pdf: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop pdf $< + +shelf_DATA += $(docbook:.xml=.ps) +%.ps: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop ps $< +endif HAVE_FOP + +# Generate documents cross-reference target databases +if HAVE_XSLTPROC + +XSLT_SEARCHPATH_FLAGS = \ + --path "$(XORG_SGML_PATH)/X11" \ + --path "$(abs_top_builddir)" +XSLT_OLINK_FLAGS = \ + --stringparam targets.filename "$@" \ + --stringparam collect.xref.targets "only" \ + --stringparam olink.base.uri "$(@:.db=)" + +XSLT_HTML_FLAGS = \ + $(XSLT_SEARCHPATH_FLAGS) \ + $(XSLT_OLINK_FLAGS) \ + --nonet --xinclude \ + $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl +XSLT_PDF_FLAGS = \ + $(XSLT_SEARCHPATH_FLAGS) \ + $(XSLT_OLINK_FLAGS) \ + --nonet --xinclude \ + $(STYLESHEET_SRCDIR)/xorg-fo.xsl + +shelf_DATA += $(docbook:.xml=.html.db) +%.html.db: %.xml $(chapters) + $(AM_V_GEN)$(XSLTPROC) $(XSLT_HTML_FLAGS) $< + +shelf_DATA += $(docbook:.xml=.pdf.db) +%.pdf.db: %.xml $(chapters) + $(AM_V_GEN)$(XSLTPROC) $(XSLT_PDF_FLAGS) $< + +endif HAVE_XSLTPROC +endif HAVE_STYLESHEETS +endif HAVE_XMLTO + +CLEANFILES = $(shelf_DATA) diff --git a/packaging/xorg-x11-proto-scrnsaver.spec b/packaging/xorg-x11-proto-scrnsaver.spec new file mode 100644 index 0000000..c46fa75 --- /dev/null +++ b/packaging/xorg-x11-proto-scrnsaver.spec @@ -0,0 +1,46 @@ +Name: xorg-x11-proto-scrnsaver +Summary: X.Org X11 Protocol scrnsaverproto +Version: 1.2.2 +Release: 2 +Group: Development/System +License: MIT +URL: http://www.x.org +Source0: %{name}-%{version}.tar.gz +Provides: scrnsaverproto + +BuildRequires: pkgconfig +BuildRequires: pkgconfig(xorg-macros) + +# some file to be intalled can be ignored when rpm generates packages +%define _unpackaged_files_terminate_build 0 + +%description +Description: %{summary} + +%prep +%setup -q + +%build + +./autogen.sh +%reconfigure --disable-static \ + --libdir=%{_datadir} \ + --without-xmlto + +# Call make instruction with smp support +make %{?jobs:-j%jobs} + +%install +rm -rf %{buildroot} +%make_install + +%remove_docs + +%clean +rm -rf %{buildroot} + +%files +%defattr(-,root,root,-) +%{_includedir}/X11/extensions/*.h +%{_datadir}/pkgconfig/*.pc + diff --git a/saver.h b/saver.h new file mode 100644 index 0000000..e8da625 --- /dev/null +++ b/saver.h @@ -0,0 +1,52 @@ +/* +Copyright (c) 1992 X Consortium + +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, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + * + * Author: Keith Packard, MIT X Consortium + */ + +#ifndef _SAVER_H_ +#define _SAVER_H_ + +#define ScreenSaverName "MIT-SCREEN-SAVER" +#define ScreenSaverPropertyName "_MIT_SCREEN_SAVER_ID" + +#define ScreenSaverNotifyMask 0x00000001 +#define ScreenSaverCycleMask 0x00000002 + +#define ScreenSaverMajorVersion 1 +#define ScreenSaverMinorVersion 1 + +#define ScreenSaverOff 0 +#define ScreenSaverOn 1 +#define ScreenSaverCycle 2 +#define ScreenSaverDisabled 3 + +#define ScreenSaverBlanked 0 +#define ScreenSaverInternal 1 +#define ScreenSaverExternal 2 + +#define ScreenSaverNotify 0 +#define ScreenSaverNumberEvents 1 + +#endif /* _SAVER_H_ */ diff --git a/saverproto.h b/saverproto.h new file mode 100644 index 0000000..7197084 --- /dev/null +++ b/saverproto.h @@ -0,0 +1,175 @@ +/* +Copyright (c) 1992 X Consortium + +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, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +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. IN NO EVENT SHALL THE +X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of the X Consortium shall not be +used in advertising or otherwise to promote the sale, use or other dealings +in this Software without prior written authorization from the X Consortium. + * + * Author: Keith Packard, MIT X Consortium + */ + +#ifndef _SAVERPROTO_H_ +#define _SAVERPROTO_H_ + +#include <X11/extensions/saver.h> + +#define Window CARD32 +#define Drawable CARD32 +#define Font CARD32 +#define Pixmap CARD32 +#define Cursor CARD32 +#define Colormap CARD32 +#define GContext CARD32 +#define Atom CARD32 +#define VisualID CARD32 +#define Time CARD32 +#define KeyCode CARD8 +#define KeySym CARD32 + +#define X_ScreenSaverQueryVersion 0 + +typedef struct _ScreenSaverQueryVersion { + CARD8 reqType; /* always ScreenSaverReqCode */ + CARD8 saverReqType; /* always X_ScreenSaverQueryVersion */ + CARD16 length B16; + CARD8 clientMajor; + CARD8 clientMinor; + CARD16 unused B16; +} xScreenSaverQueryVersionReq; +#define sz_xScreenSaverQueryVersionReq 8 + +typedef struct { + CARD8 type; /* X_Reply */ + CARD8 unused; /* not used */ + CARD16 sequenceNumber B16; + CARD32 length B32; + CARD16 majorVersion B16; /* major version of protocol */ + CARD16 minorVersion B16; /* minor version of protocol */ + CARD32 pad0 B32; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; + CARD32 pad4 B32; +} xScreenSaverQueryVersionReply; +#define sz_xScreenSaverQueryVersionReply 32 + +#define X_ScreenSaverQueryInfo 1 + +typedef struct _ScreenSaverQueryInfo { + CARD8 reqType; /* always ScreenSaverReqCode */ + CARD8 saverReqType; /* always X_ScreenSaverQueryInfo */ + CARD16 length B16; + Drawable drawable B32; +} xScreenSaverQueryInfoReq; +#define sz_xScreenSaverQueryInfoReq 8 + +typedef struct { + CARD8 type; /* X_Reply */ + BYTE state; /* Off, On */ + CARD16 sequenceNumber B16; + CARD32 length B32; + Window window B32; + CARD32 tilOrSince B32; + CARD32 idle B32; + CARD32 eventMask B32; + BYTE kind; /* Blanked, Internal, External */ + CARD8 pad0; + CARD16 pad1 B16; + CARD32 pad2 B32; +} xScreenSaverQueryInfoReply; +#define sz_xScreenSaverQueryInfoReply 32 + +#define X_ScreenSaverSelectInput 2 + +typedef struct _ScreenSaverSelectInput { + CARD8 reqType; /* always ScreenSaverReqCode */ + CARD8 saverReqType; /* always X_ScreenSaverSelectInput */ + CARD16 length B16; + Drawable drawable B32; + CARD32 eventMask B32; +} xScreenSaverSelectInputReq; +#define sz_xScreenSaverSelectInputReq 12 + +#define X_ScreenSaverSetAttributes 3 + +typedef struct _ScreenSaverSetAttributes { + CARD8 reqType; /* always ScreenSaverReqCode */ + CARD8 saverReqType; /* always X_ScreenSaverSetAttributes */ + CARD16 length B16; + Drawable drawable B32; + INT16 x B16, y B16; + CARD16 width B16, height B16, borderWidth B16; + BYTE c_class; + CARD8 depth; + VisualID visualID B32; + CARD32 mask B32; +} xScreenSaverSetAttributesReq; +#define sz_xScreenSaverSetAttributesReq 28 + +#define X_ScreenSaverUnsetAttributes 4 + +typedef struct _ScreenSaverUnsetAttributes { + CARD8 reqType; /* always ScreenSaverReqCode */ + CARD8 saverReqType; /* always X_ScreenSaverUnsetAttributes */ + CARD16 length B16; + Drawable drawable B32; +} xScreenSaverUnsetAttributesReq; +#define sz_xScreenSaverUnsetAttributesReq 8 + +#define X_ScreenSaverSuspend 5 + +typedef struct _ScreenSaverSuspend { + CARD8 reqType; + CARD8 saverReqType; + CARD16 length B16; + Bool suspend B32; +} xScreenSaverSuspendReq; +#define sz_xScreenSaverSuspendReq 8 + +typedef struct _ScreenSaverNotify { + CARD8 type; /* always eventBase + ScreenSaverNotify */ + BYTE state; /* off, on, cycle */ + CARD16 sequenceNumber B16; + Time timestamp B32; + Window root B32; + Window window B32; /* screen saver window */ + BYTE kind; /* blanked, internal, external */ + BYTE forced; + CARD16 pad0 B16; + CARD32 pad1 B32; + CARD32 pad2 B32; + CARD32 pad3 B32; +} xScreenSaverNotifyEvent; +#define sz_xScreenSaverNotifyEvent 32 + +#undef Window +#undef Drawable +#undef Font +#undef Pixmap +#undef Cursor +#undef Colormap +#undef GContext +#undef Atom +#undef VisualID +#undef Time +#undef KeyCode +#undef KeySym + +#endif /* _SAVERPROTO_H_ */ diff --git a/scrnsaverproto.pc.in b/scrnsaverproto.pc.in new file mode 100644 index 0000000..87f9ddc --- /dev/null +++ b/scrnsaverproto.pc.in @@ -0,0 +1,9 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: ScrnSaverProto +Description: ScrnSaver extension headers +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} diff --git a/specs/Makefile.am b/specs/Makefile.am new file mode 100644 index 0000000..f93e295 --- /dev/null +++ b/specs/Makefile.am @@ -0,0 +1,13 @@ + +if ENABLE_SPECS + +# Main DocBook/XML files (DOCTYPE book) +docbook = saver.xml + +# The location where the DocBook/XML files and their generated formats are installed +shelfdir = $(docdir) + +# Generate DocBook/XML output formats with or without stylesheets +include $(top_srcdir)/docbook.am + +endif ENABLE_SPECS diff --git a/specs/saver.xml b/specs/saver.xml new file mode 100644 index 0000000..2374218 --- /dev/null +++ b/specs/saver.xml @@ -0,0 +1,943 @@ +<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" +[ +<!ENTITY % defs SYSTEM "defs.ent"> %defs; +]> + +<book id="saver"> + +<bookinfo> + <title>X11 Screen Saver Extension + MIT X Consortium Proposed Standard + X Version 11, Release &fullrelvers; + Version 1.0 + + + JimFulton + Network Computing Devices, Inc + + + KeithPackard + +X Consortium, Laboratory for Computer Science, Massachusetts Institute of Technology + + + + + 1992 + Massachusetts Institute of Technology + Network Computing Devices, Inc + + + + + +Permission to use, copy, modify, and distribute this documentation for any +purpose and without fee is hereby granted, provided that the above copyright +notice and this permission notice appear in all copies. MIT and +Network Computing Devices, Inc. make no +representations about the suitability for any purpose of the information in +this document. This documentation is provided "as is" without express or +implied warranty. + + + + + + +Introduction + +The X Window System provides support for changing the image on a display screen +after a user-settable period of inactivity to avoid burning the cathode ray +tube phosphors. However, no interfaces are provided for the user to control +the image that is drawn. This extension allows an external "screen saver" +client to detect when the alternate image is to be displayed and to provide the +graphics. + + +Current X server implementations typically provide at least one form of +"screen saver" image. Historically, this has been a copy of the X logo +drawn against the root background pattern. However, many users have asked +for the mechanism to allow them to write screen saver programs that provide +capabilities similar to those provided by other window systems. In +particular, such users often wish to be able to display corporate logos, +instructions on how to reactivate the screen, and automatic screen-locking +utilities. This extension provides a means for writing such clients. + + + + +Assumptions + +This extension exports the notion of a special screen saver window that is +mapped above all other windows on a display. This window has the +override-redirect attribute set so that it is not subject to manipulation by +the window manager. Furthermore, the X identifier for the window is never +returned by QueryTree requests on the root window, so it is typically +not visible to other clients. + + + + +Overview + +The core +SetScreenSaver +request can be used to set the length of time without +activity on any input devices after which the screen saver should "activate" +and alter the image on the screen. This image periodically "cycles" to +reduce +the length of time that any particular pixel is illuminated. Finally, the +screen saver is "deactivated" in response to activity on any of the input +devices +or particular X requests. + + + +Screen saving is typically done by disabling video output to the display tube +or by drawing a changing pattern onto the display. If the server chooses the +latter approach, a window with a special identifier is created and mapped at +the top of the stacking order where it remains until the screen saver +deactivates. At this time, the window is unmapped and is not accessible to any +client requests. + + +The server's default mechanism is refered to as the internal screen +saver. An external +screen saver client requires a means of determining the window +id for the screen saver window and setting the attributes (e.g. size, +location, visual, colormap) to be used when the window is mapped. These +requirements form the basis of this extension. + + + + +Issues + +This extension raises several interesting issues. First is the question of +what should be done if some other client has the server grabbed when the screen +saver is supposed to activate? This commonly occurs with window managers that +automatically ask the user to position a window when it is first mapped by +grabbing the server and drawing XORed lines on the root window. + + +Second, a screen saver program must control the actual RGB values sent to the +display tube to ensure that the values change periodically to avoid phosphor +burn in. Thus, the client must have a known colormap installed whenever the +screen saver window is displayed. To prevent screen flashing, the visual type +of the screen saver window should also be controlable. + + +Third, some implementations may wish to destroy the screen saver window when +it is not mapped so that it need not be avoided during event delivery. Thus, +screen saver clients may find that the requests that reference the screen +saver window may fail when the window is not displayed. + + + + +Protocol + +The Screen Saver extension is as follows: + + + +Types + +In adition to the comon types described in the core protocol, the following +type is used in the request and event definitions in subsequent sections. + + + + + + + + + + Name + Value + + + + + SCREENSAVEREVENT + ScreenSaverNotify, + ScreenSaverCycle + + + + + + + +Errors + +The Screen Saver extension adds no errors beyond the core protocol. + + + + +Requests + +The Screen Saver extension adds the following requests: + + + +ScreenSaverQueryVersion + client-major-version: CARD8 + client-minor-version: CARD8 +-> + server-major-version: CARD8 + server-minor-version: CARD8 + + + +This request allows the client and server to determine which version of +the protocol should be used. The client sends the version that it +prefers; if the server understands that +version, it returns the same values and interprets subsequent requests +for this extension according to the specified version. Otherwise, +the server returns the closest version of the protocol that it can +support and interprets subsequent requests according to that version. +This document describes major version 1, minor version 0; the major +and minor revision numbers should only be incremented in response to +incompatible and compatible changes, respectively. + + + +ScreenSaverQueryInfo +drawable DRAWABLE + +saver-window: WINDOW +state: {Disabled, Off, On} +kind: {Blanked, Internal, External} +til-or-since: CARD32 +idle: CARD32 +event-mask: SETofSCREENSAVEREVENT + +Errors: Drawable + + + +This request returns information about the state of the screen +saver on the screen associated with drawable. The saver-window +is the XID that is associated with the screen saver window. This +window is not guaranteed to exist +except when external screen saver is active. Although it is a +child of the root, this window is not returned by +QueryTree +requests on the root. Whenever this window is mapped, it is always above +any of its siblings in the stacking order. XXX - TranslateCoords? + + +The state field specifies whether or not the screen saver is currently +active and how the til-or-since value should be interpretted: + + + + + + + + + + Off + +The screen is not currently being saved; +til-or-since +specifies the number of milliseconds until the screen saver is expected to +activate. + + + + On + +The screen is currently being saved; +til-or-since specifies +the number of milliseconds since the screen saver activated. + + + + Disabled + +The screen saver is currently disabled; +til-or-since is zero. + + + + + + + +The kind field specifies the mechanism that either is currently being +used or would have been were the screen being saved: + + + + + + + + + + Blanked + The video signal to the display monitor was disabled. + + + Internal + A server-dependent, built-in screen saver image was displayed; either no + client had set the screen saver window attributes or a different client + had the server grabbed when the screen saver activated. + + + External + The screen saver window was mapped with attributes set by a + client using the ScreenSaverSetAttributes request. + + + + + + +The idle field specifies the number of milliseconds since the last +input was received from the user on any of the input devices. + + + +The event-mask field specifies which, if any, screen saver +events this client has requested using ScreenSaverSelectInput. + + + +If drawable is not a valid drawable identifier, a Drawable +error is returned and the request is ignored. + + + +ScreenSaverSelectInput +drawable: DRAWABLE +event-mask: SETofSCREENSAVEREVENT + + + +Errors: +Drawable, +Match + + + +This request specifies which Screen Saver extension events on the screen +associated with drawable should be generated for this client. If +no bits are set in event-mask, then no events will be generated. +Otherwise, any combination of the following bits may be set: + + + + + + + + + + ScreenSaverNotify + +If this bit is set, ScreenSaverNotify events are generated whenever +the screen saver is activated or deactivated. + + + + ScreenSaverCycle + +If this bit is set, ScreenSaverNotify events are generated whenever +the screen saver cycle interval passes. + + + + + + + +If drawable is not a valid drawable identifier, a Drawable +error is returned. If any undefined bits are set in event-mask, +a Value error is returned. If an error is returned, +the request is ignored. + + + +ScreenSaverSetAttributes + + +drawable: DRAWABLE +class: +{InputOutput, InputOnly, CopyFromParent} +depth: CARD8 +visual: VISUALID or CopyFromParent +x, y: INT16 +width, height, border-width: CARD16 +value-mask: BITMASK +value-list: LISTofVALUE + +Access, Window, Pixmap, Colormap, Cursor, Match, Value, Alloc + + + +This request sets the attributes that this client would like to see +used in creating the screen saver window on the screen associated +with drawable. If another client currently has the attributes set, +an Access error is generated and the request is ignored. + + + +Otherwise, the specified window attributes are checked as if +they were used in a core CreateWindow request whose +parent is the root. The override-redirect field is ignored as +it is implicitly set to True. If the window attributes result in an +error according to the rules for CreateWindow, the request is ignored. + + +Otherwise, the attributes are stored and will take effect on the next +activation that occurs when the server is not grabbed by another client. +Any resources specified for the +background-pixmap or cursor attributes may be +freed immediately. The server is free to copy the background-pixmap +or cursor resources or to use them in place; therefore, the effect of +changing the contents of those resources is undefined. If the +specified colormap no longer exists when the screen saver activates, +the parent's colormap is used instead. If no errors are generated by this +request, any previous +screen saver window attributes set by this client are released. + + +When the screen saver next activates and the server is not grabbed by +another client, the screen saver window is +created, if necessary, and set to the specified attributes and events +are generated as usual. The colormap +associated with the screen saver window is +installed. Finally, the screen saver window is mapped. + + +The window remains mapped and at the top of the stacking order +until the screen saver is deactivated in response to activity on +any of the user input devices, a ForceScreenSaver request with +a value of Reset, or any request that would cause the window to be +unmapped. + + +If the screen saver activates while the server is grabbed by another +client, the internal saver mechanism is used. The ForceScreenSaver +request may be used with a value of Active to +deactivate the internal saver and activate the external saver. + + +If the screen saver client's connection to the server is broken +while the screen saver is activated and the client's close down mode has not +been RetainPermanent or RetainTemporary, the current screen saver +is deactivated and the internal screen saver is immediately activated. + + +When the screen saver deactivates, the screen saver window's colormap +is uninstalled and the window is unmapped (except as described below). +The screen saver XID is disassociated +with the window and the server may, but is not required to, +destroy the window along with any children. + + +When the screen saver is being deactivated and then immediately +reactivated (such as when switching screen savers), the server +may leave the screen saver window mapped (typically to avoid +generating exposures). + + + +ScreenSaverUnsetAttributes + + + +drawble: DRAWABLE + +Errors: Drawable + + + +This request notifies the server that this client no longer +wishes to control the screen saver window. Any screen saver +attributes set by this client and any descendents of the screen +saver window created by this client should be released +immediately if the screen saver is not active, else upon +deactivation. + + +This request is ignored if the client has not previously set the screen saver +window attributes. + + + + +Events + +The Screen Saver extension adds one event: + + +ScreenSaverNotify + + + +root: WINDOW +window: WINDOW +state: {Off, On, Cycle} +kind: { Blanked, Internal , External } +forced: BOOL +time: TIMESTAMP + + +This event is delivered to clients that have requested +ScreenSaverNotify events using the ScreenSaverSelectInput request +whenever the screen saver activates or deactivates. + + +The root field specifies root window of the screen for +which the event was generated. The window field specifies +the value that is returned by ScreenSaverQueryInfo as +the identifier for the screen saver window. This window is not +required to exist if the external screen saver is not active. + + +The state field specifies the cause of the event: + + + + + + + + + + Off + +The screen saver deactivated; this event is sent if the client has set the +ScreenSaverNotify bit in its event mask. + + + + On + +The screen saver activated. This event is sent if the client has set the +ScreenSaverNotify bit in its event mask. + + + + Cycle + +The cycle interval passed and the client is expected to change the image on +the screen. This event is sent if the client has set the +ScreenSaverCycle bit in its event mask. + + + + + + + +If state is set to +On or +Off +then forced indicates whether or not +activation or deactivation was caused by a core +ForceScreenSaver +request; otherwise, forced is set to False. + + + +The kind field specifies mechanism that was used to save the screen +when the screen saver was activated, as described in +ScreenSaverQueryInfo. + + + +The time field indicates the server time +when the event was generated. + + + + + +Encoding + +Please refer to the X11 Protocol Encoding document as this document uses +conventions established there. + + +The name of this extension is "SCREEN-SAVER". + + + +Common Types + +SETofSCREENSAVEREVENT + #x00000001 ScreenSaverNotifyMask + #x00000002 ScreenSaverCycleMask + + + + +Requests + +ScreenSaverQueryVersion +1 CARD8 screen saver opcode +1 0 minor opcode +2 2 request length +1 CARD8 client major version +1 CARD8 client minor version +2 unused +-> +1 1 Reply +1 unused +2 CARD16 sequence number +4 0 reply length +1 CARD8 server major version +1 CARD8 server minor version +22 unused + +ScreenSaverQueryInfo +1 CARD8 screen saver opcode +1 1 minor opcode +2 2 request length +4 DRAWABLE drawable associated with screen +-> +1 1 Reply +1 CARD8 state + 0 Off + 1 On + 3 Disabled +2 CARD16 sequence number +4 0 reply length +4 WINDOW saver window +4 CARD32 milliseconds until saver or since saver +4 CARD32 milliseconds since last user device input +4 SETofSCREENSAVEREVENT event mask +1 CARD8 kind + 0 Blanked + 1 Internal + 2 External +10 unused + +ScreenSaverSelectInput +1 CARD8 screen saver opcode +1 2 minor opcode +2 3 request length +4 DRAWABLE drawable associated with screen +4 SETofSCREENSAVEREVENT event mask + +ScreenSaverSetAttributes +1 CARD8 screen saver opcode +1 3 minor opcode +2 6+n request length +4 DRAWABLE drawable associated with screen +2 INT16 x +2 INT16 y +2 CARD16 width +2 CARD16 height +2 CARD16 border-width +1 class + 0 CopyFromParent + 1 InputOutput + 2 InputOnly +1 CARD8 depth +4 VISUALID visual + 0 CopyFromParent +4 BITMASK value-mask (has n bits set to 1) + encodings are the same as for core CreateWindow +4n LISTofVALUE value-list + encodings are the same as for core CreateWindow + +ScreenSaverUnsetAttributes +1 CARD8 screen saver opcode +1 4 minor opcode +2 3 request length +4 DRAWABLE drawable associated with screen + + + + +Events + + +ScreenSaverNotify +1 CARD8 code assigned by core +1 CARD8 state + 0 Off + 1 On + 2 Cycle +2 CARD16 sequence number +4 TIMESTAMP time +4 WINDOW root +4 WINDOW screen saver window +1 CARD8 kind + 0 Blanked + 1 Internal + 2 External +1 BOOL forced +14 unused + + + + + +Inter-Client Communications Conventions + +Screen saver clients should create at least one resource value whose +identifier can be stored in a property named +_SCREEN_SAVER_ID +on the root of each screen it is managing. +This property should have one 32-bit value corresponding to the resource +identifier; the type of the property should indicate the type of the +resource and should be one of the following: +WINDOW, +PIXMAP, +CURSOR, +FONT, or +COLORMAP. + + + + +C language binding + + +The C binding for this extension simply provide access to the protocol; they +add no semantics beyond what is described above. + + + +The include file for this extension is +<X11/extensions/scrnsaver.h>. + + + + + + Bool XScreenSaverQueryExtension + Display *display + int *event_base + int *error_base + + + + +This routine returns +True +if the specified display supports the +SCREEN-SAVER extension; otherwise it returns +False. +If the extension is supported, the event number for +ScreenSaverNotify +events is returned in the value pointed to by +event_base. Since +no additional errors are defined by this extension, the results +of error_base are not defined. + + + + + Status XScreenSaverQueryVersion + Display *display + int *major + int *minor + + + + +If the specified display supports the +extension, the version numbers of the protocol +expected by the server are returned in +major and +minor and +a non-zero value is returned. Otherwise, the arguments are not +set and 0 is returned. + + +XScreenSaverInfo * +XScreenSaverAllocInfo() + + +This routine allocates and returns an +XScreenSaverInfo structure +for use in calls to . +All fields in the +structure are initialized to zero. If insufficient memory is available, +NULL is returned. The results of this routine can be released +using XFree. + + + + + Status XScreenSaverQueryInfo + Display *display + Drawable drawable + XScreenSaverInfo *saver_info + + + + +If the specified display supports the extension, +information about the current state of the +screen server is returned in saver_info and a non-zero value is +returned. The XScreenSaverInfo structure is +defined as follows: + + + +typedef struct { + Window window; /* screen saver window */ + int state; /* ScreenSaver{Off,On,Disabled} */ + int kind; /* ScreenSaver{Blanked,Internal,External} */ + unsigned long til_or_since; /* milliseconds */ + unsigned long idle; /* milliseconds */ + unsigned long event_mask; /* events */ +} XScreenSaverInfo; + + + +See the ScreenSaverQueryInfo request for a +description of the fields. If the extension is not supported, +saver_info is not changed and 0 +is returned. + + + + + void XScreenSaverSelectInput + Display *display + Drawable drawable + unsigned long event_mask + + + + +If the specified display supports the extension, +this routine asks that events related to +the screen saver be generated for this client. +The format of the events generated is: + + + +typedef struct { + int type; /* of event */ + unsigned long serial; /* # of last request processed by server */ + Bool send_event; /* true if this came frome a SendEvent request */ + Display *display; /* Display the event was read from */ + Window window; /* screen saver window */ + Window root; /* root window of event screen */ + int state; /* ScreenSaver{Off,On,Cycle} */ + int kind; /* ScreenSaver{Blanked,Internal,External} */ + Bool forced; /* extents of new region */ + Time time; /* event timestamp */ +} XScreenSaverNotifyEvent; + + + +See the definition of the +ScreenSaverSelectInput request for descriptions +of the allowed event masks. + + + + + void XScreenSaverSetAttributes + Display *dpy + Drawable drawable + int x + int y + unsigned int width + unsigned int height + unsigned int border_width + int depth + unsigned int class + Visual *visual + unsigned long valuemask + XSetWindowAttributes *attributes + + + + +If the specified display supports the +extension, this routine sets the attributes to be used +the next time the external screen saver is activated. See the definition +of the ScreenSaverSetAttributes request for a +description of each of the arguments. + + + + + void XScreenSaverUnsetAttributes + Display *display + Drawable drawable + + + + +If the specified display supports the +extension, this routine instructs the server to discard +any previous screen saver window attributes set by this client. + + + + + Status XScreenSaverRegister + Display *display + int screen + XID xid + Atom type + + + + +This routine stores the given XID in the +_SCREEN_SAVER_ID property (of the given +type) on the root window of the specified +screen. It returns zero if an error +is encountered and the property is not changed, otherwise it returns +non-zero. + + + + + Status XScreenSaverUnregister + Display *display + int screen + + + + +This routine removes any _SCREEN_SAVER_ID from the +root window of the specified screen. +It returns zero if an error is encountered and the property is changed, +otherwise it returns non-zero. + + + + + Status XScreenSaverGetRegistered + Display *display + int screen + XID *xid + ATOM *type + + + + + +This routine returns the +XID and +type stored in the +_SCREEN_SAVER_ID property on the +root window of the specified screen. +It returns zero if an error +is encountered or if the property does not exist or is not of the correct +format; otherwise it returns non-zero. + + + + -- 2.7.4