.gitignore | 78 + ChangeLog | 105 ++ Makefile.am | 13 README | 30 configure.ac | 19 debian/changelog | 17 debian/control | 7 debian/rules | 6 debian/x11proto-record-dev.install | 3 specs/.gitignore | 5 specs/Makefile.am | 64 + specs/record.xml | 1895 +++++++++++++++++++++++++++++++++++++ 12 files changed, 2218 insertions(+), 24 deletions(-)
New commits: commit 68838a0e3645d29cd47ec6aa5f7f76e5b5624778 Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:42:52 2010 +0100 Upload to unstable. diff --git a/debian/changelog b/debian/changelog index aa98da1..67800bb 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -x11proto-record (1.14.1-1) UNRELEASED; urgency=low +x11proto-record (1.14.1-1) unstable; urgency=low [ Julien Cristau ] * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no @@ -17,7 +17,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * No longer pass --disable-shared, this option is gone. * Add myself to Uploaders. - -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 + -- Cyril Brulebois <k...@debian.org> Sat, 06 Nov 2010 01:42:41 +0100 x11proto-record (1.14-2) unstable; urgency=low commit adc16b1c2d3bc3f9f82d0332d2db29701b12019a Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:42:10 2010 +0100 Add myself to Uploaders. diff --git a/debian/changelog b/debian/changelog index 2ce57e3..aa98da1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -15,6 +15,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * Ship *.html, *.css, and *.txt from the doc directory. * Switch from --list-missing to --fail-missing for additional safety. * No longer pass --disable-shared, this option is gone. + * Add myself to Uploaders. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/control b/debian/control index 107b197..3fe1e33 100644 --- a/debian/control +++ b/debian/control @@ -2,7 +2,7 @@ Source: x11proto-record Section: x11 Priority: optional Maintainer: Debian X Strike Force <debian-x@lists.debian.org> -Uploaders: David Nusinow <dnusi...@debian.org>, Andres Salomon <dilin...@debian.org> +Uploaders: David Nusinow <dnusi...@debian.org>, Andres Salomon <dilin...@debian.org>, Cyril Brulebois <k...@debian.org> Build-Depends: debhelper (>= 5.0.0), automake, commit 296b8969368c9b6e4616fef417fa18f6b4161a9e Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:41:49 2010 +0100 No longer pass --disable-shared, this option is gone. diff --git a/debian/changelog b/debian/changelog index 53eac32..2ce57e3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -14,6 +14,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * Kill *.xml in the doc directory, no point in shipping them. * Ship *.html, *.css, and *.txt from the doc directory. * Switch from --list-missing to --fail-missing for additional safety. + * No longer pass --disable-shared, this option is gone. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/rules b/debian/rules index e480c26..762f873 100755 --- a/debian/rules +++ b/debian/rules @@ -39,7 +39,7 @@ build-stamp: mkdir -p build cd build && \ ../configure --prefix=/usr --mandir=\$${prefix}/share/man \ - --infodir=\$${prefix}/share/info --disable-shared \ + --infodir=\$${prefix}/share/info \ --with-xmlto --without-fop \ $(confflags) CFLAGS="$(CFLAGS)" cd build && $(MAKE) commit 6adc4c49ebebf6a021a547e24578185e53417841 Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:41:24 2010 +0100 Switch from --list-missing to --fail-missing for additional safety. diff --git a/debian/changelog b/debian/changelog index fb6304b..53eac32 100644 --- a/debian/changelog +++ b/debian/changelog @@ -13,6 +13,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * Pass --with-xmlto and --without-fop, we want html and txt only. * Kill *.xml in the doc directory, no point in shipping them. * Ship *.html, *.css, and *.txt from the doc directory. + * Switch from --list-missing to --fail-missing for additional safety. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/rules b/debian/rules index 5c7bee5..e480c26 100755 --- a/debian/rules +++ b/debian/rules @@ -77,7 +77,7 @@ binary-indep: build install dh_installdocs dh_installman find debian/tmp/usr/share/doc/recordproto -name '*.xml' -delete - dh_install --sourcedir=debian/tmp --list-missing + dh_install --sourcedir=debian/tmp --fail-missing dh_installchangelogs dh_link dh_strip commit eac7af4f3afe01552fa27121cf83d24320bb7e3f Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:40:53 2010 +0100 Ship *.html, *.css, and *.txt from the doc directory. diff --git a/debian/changelog b/debian/changelog index 65012b2..fb6304b 100644 --- a/debian/changelog +++ b/debian/changelog @@ -12,6 +12,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * Add xmlto, xorg-sgml-doctools, and w3m build-dep for the specs. * Pass --with-xmlto and --without-fop, we want html and txt only. * Kill *.xml in the doc directory, no point in shipping them. + * Ship *.html, *.css, and *.txt from the doc directory. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/x11proto-record-dev.install b/debian/x11proto-record-dev.install index 0b5b90a..605860b 100644 --- a/debian/x11proto-record-dev.install +++ b/debian/x11proto-record-dev.install @@ -1,2 +1,5 @@ usr/include/X11/extensions/* usr/lib/pkgconfig/recordproto.pc +usr/share/doc/recordproto/*.html usr/share/doc/x11proto-record-dev/ +usr/share/doc/recordproto/*.css usr/share/doc/x11proto-record-dev/ +usr/share/doc/recordproto/*.txt usr/share/doc/x11proto-record-dev/ commit 9c4fb29921b182d25c9aa433f5c5f87ed41b170c Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:39:00 2010 +0100 Kill *.xml in the doc directory, no point in shipping them. diff --git a/debian/changelog b/debian/changelog index 9a11028..65012b2 100644 --- a/debian/changelog +++ b/debian/changelog @@ -11,6 +11,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * Add pkg-config build-dep. * Add xmlto, xorg-sgml-doctools, and w3m build-dep for the specs. * Pass --with-xmlto and --without-fop, we want html and txt only. + * Kill *.xml in the doc directory, no point in shipping them. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/rules b/debian/rules index 022f995..5c7bee5 100755 --- a/debian/rules +++ b/debian/rules @@ -76,6 +76,7 @@ binary-indep: build install dh_installdocs dh_installman + find debian/tmp/usr/share/doc/recordproto -name '*.xml' -delete dh_install --sourcedir=debian/tmp --list-missing dh_installchangelogs dh_link commit 03df7a7c5bd477b9fd476952c4d1f5bcca670aa2 Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:38:46 2010 +0100 Pass --with-xmlto and --without-fop, we want html and txt only. diff --git a/debian/changelog b/debian/changelog index 54dbc20..9a11028 100644 --- a/debian/changelog +++ b/debian/changelog @@ -10,6 +10,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * Bump xutils-dev build-dep for new macros. * Add pkg-config build-dep. * Add xmlto, xorg-sgml-doctools, and w3m build-dep for the specs. + * Pass --with-xmlto and --without-fop, we want html and txt only. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/rules b/debian/rules index fcc1485..022f995 100755 --- a/debian/rules +++ b/debian/rules @@ -40,6 +40,7 @@ build-stamp: cd build && \ ../configure --prefix=/usr --mandir=\$${prefix}/share/man \ --infodir=\$${prefix}/share/info --disable-shared \ + --with-xmlto --without-fop \ $(confflags) CFLAGS="$(CFLAGS)" cd build && $(MAKE) >$@ commit 4c145d5e3a1779b088a1f4d9cc3dc9179e795d80 Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:36:13 2010 +0100 Add xmlto, xorg-sgml-doctools, and w3m build-dep for the specs. diff --git a/debian/changelog b/debian/changelog index 3b2e1d1..54dbc20 100644 --- a/debian/changelog +++ b/debian/changelog @@ -9,6 +9,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low * New upstream release. * Bump xutils-dev build-dep for new macros. * Add pkg-config build-dep. + * Add xmlto, xorg-sgml-doctools, and w3m build-dep for the specs. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/control b/debian/control index b1dbf57..107b197 100644 --- a/debian/control +++ b/debian/control @@ -8,6 +8,8 @@ Build-Depends: automake, xutils-dev (>= 1:7.5+4), pkg-config, +# specs: + xmlto, xorg-sgml-doctools (>= 1:1.5), w3m, Standards-Version: 3.8.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-record Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-record.git commit 19d45f44aa4106e9eee51a76ac4a4fd78d78fb73 Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:35:22 2010 +0100 Add pkg-config build-dep. diff --git a/debian/changelog b/debian/changelog index b74ea65..3b2e1d1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -8,6 +8,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low [ Cyril Brulebois ] * New upstream release. * Bump xutils-dev build-dep for new macros. + * Add pkg-config build-dep. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/control b/debian/control index 2a532bb..b1dbf57 100644 --- a/debian/control +++ b/debian/control @@ -7,6 +7,7 @@ Build-Depends: debhelper (>= 5.0.0), automake, xutils-dev (>= 1:7.5+4), + pkg-config, Standards-Version: 3.8.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-record Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-record.git commit 8d95e5ef3e8b6e7d3c39048377b9132e52d40058 Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:35:01 2010 +0100 Bump xutils-dev build-dep for new macros. diff --git a/debian/changelog b/debian/changelog index d113c4f..b74ea65 100644 --- a/debian/changelog +++ b/debian/changelog @@ -7,6 +7,7 @@ x11proto-record (1.14.1-1) UNRELEASED; urgency=low [ Cyril Brulebois ] * New upstream release. + * Bump xutils-dev build-dep for new macros. -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 diff --git a/debian/control b/debian/control index 9ad36b4..2a532bb 100644 --- a/debian/control +++ b/debian/control @@ -6,7 +6,7 @@ Uploaders: David Nusinow <dnusi...@debian.org>, Andres Salomon <dilin...@debian. Build-Depends: debhelper (>= 5.0.0), automake, - xutils-dev (>= 1:7.5~1) + xutils-dev (>= 1:7.5+4), Standards-Version: 3.8.3 Vcs-Git: git://git.debian.org/git/pkg-xorg/proto/x11proto-record Vcs-Browser: http://git.debian.org/?p=pkg-xorg/proto/x11proto-record.git commit f7d7a281249686c7b381bb974b6b2691a847022b Author: Cyril Brulebois <k...@debian.org> Date: Sat Nov 6 01:33:12 2010 +0100 Update changelogs. diff --git a/ChangeLog b/ChangeLog index 81eec58..ed8cf12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,108 @@ +commit 396cdde0242256976fbacec64839e48dfc56d639 +Author: Alan Coopersmith <alan.coopersm...@oracle.com> +Date: Fri Oct 29 23:20:43 2010 -0700 + + RecordProto 1.14.1 + + Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> + +commit 62124c428346c5e92d785f4ebc54218368ef800a +Author: Matt Dew <m...@osource.org> +Date: Tue Aug 3 17:44:01 2010 -0400 + + specs: convert protocol record.ms from xorg-docs to DocBook XML + + Signed-off-by: Gaetan Nadon <mems...@videotron.ca> + +commit 1d5a3b11ff8810b0b0921337d85955150b67346a +Author: Gaetan Nadon <mems...@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 <mems...@videotron.ca> + +commit cf80c95d1826c7ec5b701b361d5d39d650c414f3 +Author: Gaetan Nadon <mems...@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 <mems...@videotron.ca> + +commit 67bcebd15489d69705c563cd2b63366c59cb21aa +Author: Gaetan Nadon <mems...@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 3030de0d0d3dbabda31c9cdeae025020253adfb6 +Author: Gaetan Nadon <mems...@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 20e71f110a5aabd44ad1e9a2c127a8e76da8d5a4 +Author: Gaetan Nadon <mems...@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 5ad105c41bc16d0ab149a8e77906af2b5498168e +Author: Gaetan Nadon <mems...@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 29df99549d157a0d96607cc55e9789d194356f08 +Author: Gaetan Nadon <mems...@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 d9d22eeed75505c28b8e8934bec27960bc1407b7 +Author: Gaetan Nadon <mems...@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 aa0ab0118100ab6d6fb5628c6d2fabc1d750defc +Author: Gaetan Nadon <mems...@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 38fd3772f3a5a107fa6e9d94e0be7bd276f771b6 Author: Peter Hutterer <peter.hutte...@who-t.net> Date: Thu Oct 1 19:38:36 2009 +1000 diff --git a/debian/changelog b/debian/changelog index cb0a6f2..d113c4f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,9 +1,13 @@ -x11proto-record (1.14-3) UNRELEASED; urgency=low +x11proto-record (1.14.1-1) UNRELEASED; urgency=low + [ Julien Cristau ] * Rename the build directory to not include DEB_BUILD_GNU_TYPE for no good reason. Thanks, Colin Watson! * Remove myself from Uploaders + [ Cyril Brulebois ] + * New upstream release. + -- Julien Cristau <jcris...@debian.org> Sat, 16 Jan 2010 16:47:47 +0000 x11proto-record (1.14-2) unstable; urgency=low commit 396cdde0242256976fbacec64839e48dfc56d639 Author: Alan Coopersmith <alan.coopersm...@oracle.com> Date: Fri Oct 29 23:20:43 2010 -0700 RecordProto 1.14.1 Signed-off-by: Alan Coopersmith <alan.coopersm...@oracle.com> diff --git a/configure.ac b/configure.ac index 509a54e..34dd4ce 100644 --- a/configure.ac +++ b/configure.ac @@ -1,5 +1,6 @@ AC_PREREQ([2.60]) -AC_INIT([RecordProto], [1.14], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) +AC_INIT([RecordProto], [1.14.1], + [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE commit 62124c428346c5e92d785f4ebc54218368ef800a Author: Matt Dew <m...@osource.org> Date: Tue Aug 3 17:44:01 2010 -0400 specs: convert protocol record.ms from xorg-docs to DocBook XML Signed-off-by: Gaetan Nadon <mems...@videotron.ca> diff --git a/Makefile.am b/Makefile.am index f9cc316..dce76cf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,3 +1,5 @@ +SUBDIRS=specs + recorddir = $(includedir)/X11/extensions record_HEADERS = \ recordconst.h \ diff --git a/configure.ac b/configure.ac index 7993f59..509a54e 100644 --- a/configure.ac +++ b/configure.ac @@ -3,11 +3,16 @@ AC_INIT([RecordProto], [1.14], [https://bugs.freedesktop.org/enter_bug.cgi?produ AM_INIT_AUTOMAKE([foreign dist-bzip2]) AM_MAINTAINER_MODE -# Require xorg-macros: XORG_DEFAULT_OPTIONS +# Require xorg-macros minimum of 1.10 for HAVE_STYLESHEETS in XORG_CHECK_SGML_DOCTOOLS m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])]) -XORG_MACROS_VERSION(1.3) + [m4_fatal([must install xorg-macros 1.10 or later before running autoconf/autogen])]) +XORG_MACROS_VERSION(1.10) XORG_DEFAULT_OPTIONS +XORG_ENABLE_SPECS +XORG_WITH_XMLTO(0.0.20) +XORG_WITH_FOP +XORG_CHECK_SGML_DOCTOOLS(1.5) AC_OUTPUT([Makefile + specs/Makefile recordproto.pc]) diff --git a/specs/.gitignore b/specs/.gitignore new file mode 100644 index 0000000..09b6a89 --- /dev/null +++ b/specs/.gitignore @@ -0,0 +1,5 @@ +*.html +*.ps +*.pdf +*.txt +*.css diff --git a/specs/Makefile.am b/specs/Makefile.am new file mode 100644 index 0000000..6359c98 --- /dev/null +++ b/specs/Makefile.am @@ -0,0 +1,64 @@ +# +# Copyright (c) 2010, Oracle and/or its affiliates. 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, 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 (including the next +# paragraph) 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 AUTHORS OR COPYRIGHT HOLDERS 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. +# + +if ENABLE_SPECS +doc_sources = record.xml +dist_doc_DATA = $(doc_sources) + +if HAVE_XMLTO +doc_DATA = $(doc_sources:.xml=.html) + +if HAVE_FOP +doc_DATA += $(doc_sources:.xml=.ps) $(doc_sources:.xml=.pdf) +endif + +if HAVE_XMLTO_TEXT +doc_DATA += $(doc_sources:.xml=.txt) +endif + +if HAVE_STYLESHEETS +XMLTO_FLAGS = -m $(XSL_STYLESHEET) + +doc_DATA += xorg.css +xorg.css: $(STYLESHEET_SRCDIR)/xorg.css + $(AM_V_GEN)cp -pf $(STYLESHEET_SRCDIR)/xorg.css $@ +endif + +CLEANFILES = $(doc_DATA) + +SUFFIXES = .xml .ps .pdf .txt .html + +.xml.txt: + $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) txt $< + +.xml.html: + $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) xhtml-nochunks $< + +.xml.pdf: + $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop pdf $< + +.xml.ps: + $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) --with-fop ps $< + +endif HAVE_XMLTO +endif ENABLE_SPECS diff --git a/specs/record.xml b/specs/record.xml new file mode 100644 index 0000000..f5d48ac --- /dev/null +++ b/specs/record.xml @@ -0,0 +1,1895 @@ +<?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"> + + +<!-- lifted from troff+ms+XMan by doclifter --> +<book id="record"> + +<bookinfo> + <title>Record Extension Protocol Specification</title> + <subtitle>X Consortium Standard</subtitle> + <authorgroup> + <author> + <firstname>Martha</firstname><surname>Zimet</surname> + <affiliation><orgname>Network Computing Devices, Inc.</orgname></affiliation> + </author> + <othercredit> + <contrib>edited by</contrib> + <firstname>Stephen</firstname><surname>Gildea</surname> + <affiliation><orgname>X Consortium</orgname></affiliation> + </othercredit> + </authorgroup> + <corpname>X Consortium Standard</corpname> + <copyright><year>1994</year><holder>Network Computing Devices, Inc.</holder></copyright> + <copyright><year>1994</year><holder>X Consortium</holder></copyright> + <copyright><year>1995</year><holder>X Consortium</holder></copyright> + <affiliation><orgname>X Consortium</orgname></affiliation> + <productnumber>Version 1.13</productnumber> + <releaseinfo>X Version 11, Release 6.7</releaseinfo> + +<legalnotice> +<para> +Permission to use, copy, modify, distribute, and sell this +documentation for any purpose is hereby granted without fee, +provided that the above copyright notice and this permission +notice appear in all copies. Network Computing Devices, Inc. +makes 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. +</para> +<para> +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: +</para> + +<para> +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. +</para> + +<para> +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. +</para> + +<para> +Except as contained in this notice, the name of the X Consortium and +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. +</para> +</legalnotice> +</bookinfo> + +<chapter> +<title>TITLE</title> +<sect1 id="Introduction"> +<title>Introduction</title> +<para> +Several proposals have been written over the past few years that address some +of the issues surrounding the recording and playback of user actions +in the X Window System<footnote><para> +<emphasis remap='I'>X Window System</emphasis> is a trademark of The Open Group. +</para></footnote> +: +</para> + +<itemizedlist> + <listitem> + <para> +<emphasis remap='I'>Some Proposals for a Minimal X11 Testing Extension</emphasis>, +Kieron Drake, UniSoft Ltd., April 1991 + </para> + </listitem> + <listitem> + <para> +<emphasis remap='I'>X11 Input Synthesis Extension Proposal</emphasis>, Larry Woestman, +Hewlett Packard, November 1991 + </para> + </listitem> + <listitem> + <para> +<emphasis remap='I'>XTrap Architecture</emphasis>, Dick Annicchiario, et al, Digital Equipment Corporation, +July 1991 + </para> + </listitem> + <listitem> + <para> +<emphasis remap='I'>XTest Extension Recording Specification</emphasis>, Yochanan Slonim, +Mercury Interactive, December 1992 + </para> + </listitem> +</itemizedlist> + +<para> +This document both unifies and extends the previous diverse approaches +to generate a proposal for an X extension that provides support for +the recording of all core X protocol and arbitrary extension protocol. +Input synthesis, or playback, has already been implemented in the +XTest extension, an X Consortium standard. Therefore, this extension +is limited to recording. +</para> + +<para> +In order to provide both record and playback functionality, a +hypothetical record application could use this extension to capture +both user actions and their consequences. For example, a button press +(a user action) may cause a window to be mapped and a corresponding +<function>MapNotify</function> +event to be sent (a consequence). This information could be +stored for later use by a playback application. +</para> + +<para> +The playback application could use the recorded actions as input for +the XTest extension's +<function>XTestFakeInput</function> +operation to synthesize the +appropriate input events. The "consequence" or synchronization +information is then used as a synchronization point during playback. +That is, the playback application does not generate specific +synthesized events until their matching synchronization condition +occurs. When the condition occurs the processing of synthesized +events continues. Determination that the condition has occurred may be +made by capturing the consequences of the synthesized events and +comparing them to the previously recorded synchronization information. +For example, if a button press was followed by a +<function>MapNotify</function> +event on a +particular window in the recorded data, the playback application might +synthesize the button press then wait for the +<function>MapNotify</function> +event on the +appropriate window before proceeding with subsequent synthesized +input. +</para> + +<para> +Because +it is impossible to predict what synchronization information will be +required by a particular application, the extension provides +facilities to record any subset of core X protocol and arbitrary +extension protocol. +As such, this extension does not enforce a specific +synchronization methodology; any method based on information in the X +protocol stream (e.g., watching for window mapping/unmapping, cursor +changes, drawing of certain text strings, etc.) can capture the +information it needs using RECORD facilities. +</para> + +<sect2 id="Acknowledgements"> +<title>Acknowledgements</title> +<para> +The document represents the culmination of two years of debate and +experiments done under the auspices of the X Consortium xtest working +group. Although this was a group effort, the author remains +responsible for any errors or omissions. +Two years ago, Robert Chesler of Absol-puter, Kieron Drake of UniSoft +Ltd., Marc Evans of Synergytics and Ken Miller of Digitial shared the +vision of a standard extension for recording and were all instrumental +in the early protocol development. During the last two years, Bob +Scheifler of the X Consortium and Jim Fulton of NCD continuously +provided input to the protocol design, as well as encouragement to the +author. In the last few months, Stephen Gildea and Dave Wiggins, +both X Consortium staff, have spent considerable time fine tuning the +protocol design and reviewing the protocol specifications. Most +recently, Amnon Cohen of Mercury Interactive has assisted in +clarification of the recorded event policy, and Kent Siefkes of +Performance Awareness has assisted in clarification of the timestamp +policy. +</para> +</sect2> + +<sect2 id="Goals"> +<title>Goals</title> +<itemizedlist> + <listitem> + <para> +To provide a standard for recording, +whereby both device events and synchronization information in the +form of device event consequences are recorded. + </para> + </listitem> + <listitem> + <para> +To record contextual information used in synchronized playback +without prior knowledge of the application +that +is being recorded. + </para> + </listitem> + <listitem> + <para> +To provide the ability to record arbitrary X protocol extensions. +<!-- .RE --> + </para> + </listitem> +</itemizedlist> +</sect2> + +<sect2 id="Requirements"> +<title>Requirements</title> +<para> +The extension should function as follows: +</para> + +<itemizedlist> + <listitem> + <para> +It should +not be dependent on other clients or extensions for its operation. + </para> + </listitem> + <listitem> + <para> +It should +not significantly impact performance. + </para> + </listitem> + <listitem> + <para> +It should +support the recording of all device input (core devices and XInput devices). + </para> + </listitem> + <listitem> + <para> +It should +be extendible. + </para> + </listitem> + <listitem> + <para> +It should +support the recording of synchronization information for user events. + </para> + </listitem> +</itemizedlist> +</sect2> +</sect1> + +<sect1 id="Design"> +<title>Design</title> +<para> +This section gives an overview of the RECORD extension and discusses +its overall operation and data types. +</para> + +<sect2 id="Overview"> +<title>Overview</title> +<para> +The mechanism used by this extension for recording is to intercept +core X protocol and arbitrary X extension protocol entirely within the X server +itself. When the extension has been requested to intercept specific +protocol by one or more clients, the protocol data are formatted and +returned to the recording clients. +</para> +<para> +<!-- .LP --> +The extension provides a mechanism for capturing all events, including +input device events that go to no clients, that is analogous to a client +expressing "interest" in all events in all windows, including the root +window. Event filtering in the extension provides a mechanism for feeding +device events to recording clients; it does not provide a mechanism for +in-place, synchronous event substitution, modification, or withholding. +In addition, the +extension does not provide data compression before intercepted protocol +is returned to the recording clients. +</para> +<sect3 id="Data_Delivery"> +<title>Data Delivery</title> +<!-- .XS --> +<!-- (SN Data Delivery --> +<!-- .XE --> +<para> +<!-- .LP --> +Because +events are limited in size to +32 bytes, using events to return intercepted protocol data to recording +clients is prohibitive in terms of performance. Therefore, intercepted +protocol data are returned to recording clients through multiple replies +to the extension request to begin protocol interception and reporting. +This utilization is consistent with +<function>ListFontsWithInfo ,</function> +for example, where a +single request has multiple replies. +</para> +<para> +<!-- .LP --> +Individual requests, replies, events or errors intercepted by the extension +on behalf of recording clients cannot be split across reply packets. In order +to reduce overhead, multiple intercepted requests, replies, events and errors +might be collected +into a single reply. +Nevertheless, all data are returned to the client in a timely manner. +</para> +</sect3> +<sect3 id="Record_Context"> +<title>Record Context</title> +<!-- .XS --> +<!-- (SN Record Context --> +<!-- .XE --> +<para> +<!-- .LP --> +The extension adds a record context resource (RC) +to the set of resources managed by the server. All the +extension operations take an RC as an argument. Although the protocol +permits sharing of RCs between clients, it is expected that clients will +use their own RCs. The attributes used in extension operations are stored +in the RCs, and these attributes include the protocol and clients to +intercept. +</para> +<para> +<!-- .LP --> +The terms "register" and "unregister" are used to describe the +relationship between clients to intercept and the RC. To register +a client with an RC means the client is added to the list +of clients to intercept; to unregister a client means the client +is deleted from the list of clients to intercept. When the +server is requested to register or unregister clients from an RC, +it is required to do so immediately. That is, it is not permissible for +the server to wait until recording is enabled to register clients +or recording is disabled to unregister clients. +</para> +</sect3> + +<sect3 id="Record_Client_Connections"> +<title>Record Client Connections</title> +<!-- .XS --> +<!-- (SN Record Client Connections --> +<!-- .XE --> +<para> +<!-- .LP --> +The typical communication model for a recording client is to open +two connections to the server and use one for RC control and +the other for reading protocol data. +</para> +<para> +<!-- .LP --> +The "control" connection can execute requests to obtain information about +the supported protocol version, create and destroy RCs, specify protocol +types to intercept and clients to be recorded, query the current state +of an RC, and to stop interception and reporting of protocol data. The +"data" connection can execute a request to +enable interception +and reporting of specified protocol for a particular RC. When the +"enable" request is issued, intercepted protocol is sent back on the +same connection, generally in more than one reply packet. Until the last +reply to the "enable" request is sent by the server, signifying that +the request execution is complete, no other requests will be executed by +the server on that connection. That is, the connection that data are being +reported on cannot issue the "disable" request until the last reply +to the "enable" request is sent by the server. Therefore, unless a +recording client never has the need to disable the interception and reporting +of protocol data, two client connections are necessary. +</para> +</sect3> +<sect3 id="Events"> +<title>Events</title> +<!-- .XS --> +<!-- (SN Events --> +<!-- .XE --> +<para> +<!-- .LP --> +The terms "delivered events" and "device events" are used +to describe the two event classes recording clients may +select for interception. These event classes are handled differently +by the extension. Delivered events are core X events or X extension events -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1pewul-0004k6...@alioth.debian.org