Git init
authorKibum Kim <kb0929.kim@samsung.com>
Fri, 6 Jan 2012 15:49:47 +0000 (00:49 +0900)
committerKibum Kim <kb0929.kim@samsung.com>
Fri, 6 Jan 2012 15:49:47 +0000 (00:49 +0900)
25 files changed:
COPYING [new file with mode: 0644]
ChangeLog [new file with mode: 0644]
Makefile.am [new file with mode: 0644]
README [new file with mode: 0644]
autogen.sh [new file with mode: 0644]
configure.ac [new file with mode: 0644]
debian/README.source [new file with mode: 0644]
debian/changelog [new file with mode: 0644]
debian/compat [new file with mode: 0644]
debian/control [new file with mode: 0644]
debian/copyright [new file with mode: 0644]
debian/libxxf86misc-dev.install [new file with mode: 0644]
debian/libxxf86misc-dev.manpages [new file with mode: 0644]
debian/libxxf86misc1.install [new file with mode: 0644]
debian/rules [new file with mode: 0755]
debian/watch [new file with mode: 0644]
debian/xsfbs/repack.sh [new file with mode: 0644]
debian/xsfbs/xsfbs.mk [new file with mode: 0644]
debian/xsfbs/xsfbs.sh [new file with mode: 0644]
man/Makefile.am [new file with mode: 0644]
man/XF86Misc.man [new file with mode: 0644]
packaging/libXxf86misc.spec [new file with mode: 0644]
src/Makefile.am [new file with mode: 0644]
src/XF86Misc.c [new file with mode: 0644]
xxf86misc.pc.in [new file with mode: 0644]

diff --git a/COPYING b/COPYING
new file mode 100644 (file)
index 0000000..ff6177f
--- /dev/null
+++ b/COPYING
@@ -0,0 +1,11 @@
+Copyright (c) 1995, 1996  The XFree86 Project, Inc
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicence, 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 XFREE86 PROJECT 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 XFree86 Project 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 XFree86 Project.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644 (file)
index 0000000..ffe1a83
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,240 @@
+commit 74b475b59fd0da95f91e75d5f32276e87dda6f3f
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Thu Oct 8 22:21:41 2009 -0700
+
+    libXxf86misc 1.0.2
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 6f5d7342b4192db164913106b5630ebb91d067ca
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Thu Oct 8 22:21:03 2009 -0700
+
+    Migrate to xorg macros 1.3 & XORG_DEFAULT_OPTIONS
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 3337b434ffc664d02e763dfba7e56f5942ad9544
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Mon Feb 2 20:34:37 2009 -0800
+
+    Add README with pointers to mailing list, bugzilla & git repos
+    
+    Signed-off-by: Alan Coopersmith <alan.coopersmith@sun.com>
+
+commit 860ee8b84e4df995ba241d16d9adbf5b7c77e5ae
+Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br>
+Date:   Mon Feb 2 14:30:51 2009 -0200
+
+    Janitor: ansification, make distcheck, compiler warnings, .gitignore.
+
+commit 6bc07578f11eecb1c67a6dd28861a0cbc03621c6
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date:   Sun Mar 9 08:49:52 2008 +0100
+
+    nuke RCS Ids
+
+commit b3b1c2f578fd68b3cea689876acf68807e2cb03a
+Author: James Cloos <cloos@jhcloos.com>
+Date:   Thu Dec 6 16:38:46 2007 -0500
+
+    Replace static ChangeLog with dist-hook to generate from git log
+
+commit f4ed7977e3bd5a60df0d5df089a613462c04dc3f
+Author: James Cloos <cloos@jhcloos.com>
+Date:   Mon Sep 3 05:53:51 2007 -0400
+
+    Add *~ to .gitignore to skip patch/emacs droppings
+
+commit 2b2dbf791127a2d8a949546a5e6f5de3d3650b82
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date:   Thu Jul 13 14:59:13 2006 -0700
+
+    renamed: .cvsignore -> .gitignore
+
+commit a2ff41b5721803eda53ef54bc5c7e3593724be1e
+Author: Adam Jackson <ajax@nwnk.net>
+Date:   Thu Apr 27 00:26:02 2006 +0000
+
+    Bump to 1.0.1
+
+commit 22e48fc3d8e8487592f451ae1b7590f2c519a2e3
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Sun Feb 12 18:19:23 2006 +0000
+
+    Bug #5628 <https://bugs.freedesktop.org/show_bug.cgi?id=5628> Shadow pages
+        not created correctly when MANDIR & MANSUFFIX don't match.
+
+commit b679b8e1301f8667a326c03eb8c77ad5164f8c65
+Author: Kevin E Martin <kem@kem.org>
+Date:   Thu Dec 15 00:24:35 2005 +0000
+
+    Update package version number for final X11R7 release candidate.
+
+commit db2fdde2e48e58bfeace9a377a35b269120dcdd9
+Author: Kevin E Martin <kem@kem.org>
+Date:   Tue Dec 6 22:48:45 2005 +0000
+
+    Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
+
+commit 19c05a5b4bd42d9705333f528482195386c30f0f
+Author: Kevin E Martin <kem@kem.org>
+Date:   Sat Dec 3 05:49:45 2005 +0000
+
+    Update package version number for X11R7 RC3 release.
+
+commit 9acf2665b699c19a38e90b3b46f91c950c91c8f3
+Author: Kevin E Martin <kem@kem.org>
+Date:   Sat Dec 3 04:41:52 2005 +0000
+
+    Add check and cflags for malloc(0) returning NULL.
+
+commit 23528bbea55e9307fb23f66d64d72d6ed0c68513
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Mon Nov 28 22:03:06 2005 +0000
+
+    Change *mandir targets to use new *_MAN_DIR variables set by xorg-macros.m4
+        update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
+
+commit 9115eddd12306b09e25f2f427fcbdb0d3ede4569
+Author: Kevin E Martin <kem@kem.org>
+Date:   Sat Nov 19 07:15:44 2005 +0000
+
+    Update pkgconfig files to separate library build-time dependencies from
+        application build-time dependencies, and update package deps to work
+        with separate build roots.
+
+commit 1d05751f145f3be2769426fc0df936f72f83dd56
+Author: Kevin E Martin <kem@kem.org>
+Date:   Wed Oct 19 02:48:12 2005 +0000
+
+    Update package version number for RC1 release.
+
+commit 5626a921068992168fd14a57f8d84a182cdca4e1
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Tue Oct 18 00:00:09 2005 +0000
+
+    Use @LIB_MAN_SUFFIX@ instead of $(LIB_MAN_SUFFIX) in macro substitutions to
+        work better with BSD make
+
+commit c378ef530457652deaecea308fe4ca71b08163df
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Mon Oct 17 21:13:22 2005 +0000
+
+    Rename .shadows.DONE to shadows.DONE to avoid some make's thinking it's a
+        suffix rule (reported by Matthieu Herrb)
+
+commit 7a1230b8f5c39faaef4e58035faa1715bc6b4554
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Thu Oct 13 04:25:46 2005 +0000
+
+    Add generated man pages to .cvsignores
+
+commit b9ef575c4528a22404336d26a8691f0f1774a02b
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Wed Oct 12 02:05:28 2005 +0000
+
+    [lib/Xxf86misc]
+    Use sed to put version number in man page Add shadow man pages for man
+        pages that document multiple functions.
+
+commit aa62bb7d1da83bc18df406df0dff9cc2eff7d826
+Author: Kristian Høgsberg <krh@redhat.com>
+Date:   Mon Sep 26 20:52:04 2005 +0000
+
+    Simple whitespace change to change ownership of ,v file on server. Needed
+        to change permissions of this file.
+
+commit dee00077229d2bb91c6561587e84e86436346689
+Author: Kevin E Martin <kem@kem.org>
+Date:   Fri Jul 29 21:22:53 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 1ffe76acba6266c8f47af96d1f9bbc46d4b5dcf4
+Author: Keith Packard <keithp@keithp.com>
+Date:   Sat Jul 9 21:08:53 2005 +0000
+
+    Add .cvsignore files Switch _la_CFLAGS for AM_CFLAGS to clean up directory
+
+commit 69ae5c35260f8f92063a3e6953f51702c4f0b4eb
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date:   Fri Jul 1 16:16:15 2005 +0000
+
+    spell freedesktop.org correctly
+
+commit 6303c89f331dc585bf28fd04f8a1018693e89569
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date:   Fri Jun 10 22:38:47 2005 +0000
+
+    Apply patch from Jeff Smith (whydoubt@yahoo.com):
+    - Add file linking for Xxf86misc, Xxf86dga, and Xxf86vm.
+    - Check in build system for Xxf86misc, Xxf86dga, and Xxf86vm.
+
+commit 517aed7ebcd3a71177883b495c86a040483ac623
+Author: Egbert Eich <eich@suse.de>
+Date:   Fri Apr 23 19:23:08 2004 +0000
+
+    Merging XORG-CURRENT into trunk
+
+commit 12bba3408db8460ac2161bacd640aad80214a332
+Author: Egbert Eich <eich@suse.de>
+Date:   Sun Mar 14 08:33:12 2004 +0000
+
+    Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
+
+commit e76d38fc568210a8e51ff91cc1c1108aaf3b4dd9
+Author: Egbert Eich <eich@suse.de>
+Date:   Wed Mar 3 12:12:14 2004 +0000
+
+    Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
+
+commit 42998231f69e4b9f5e6d942bef5c1c65524937fb
+Author: Egbert Eich <eich@suse.de>
+Date:   Thu Feb 26 13:35:46 2004 +0000
+
+    readding XFree86's cvs IDs
+
+commit 7e6f2a280d503216f40d81f910164a33ab069a69
+Author: Egbert Eich <eich@suse.de>
+Date:   Thu Feb 26 09:23:14 2004 +0000
+
+    Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
+
+commit 6f8f96c3be3918f62d530115f0577effc2f05367
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Thu Dec 4 22:03:15 2003 +0000
+
+    XFree86 4.3.99.901 (RC 1)
+
+commit 3798fcf79de232d0c7b0f7056662e1782f9671a0
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Tue Nov 25 19:28:16 2003 +0000
+
+    XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
+
+commit 8e3405356146c0cd8c60327173b92ec1f2c1c5dd
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Fri Nov 14 16:48:54 2003 +0000
+
+    XFree86 4.3.0.1
+
+commit 4dd2d68ec3d43170070810d8b2a5e18bbdc13079
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Fri Nov 14 16:48:49 2003 +0000
+
+    Initial revision
+
+commit 418e916d78dbbc723fc6a5bb0315cf44f30360fa
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date:   Fri Nov 14 15:54:49 2003 +0000
+
+    R6.6 is the Xorg base-line
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..1b735d4
--- /dev/null
@@ -0,0 +1,14 @@
+SUBDIRS = src man
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = xxf86misc.pc
+
+EXTRA_DIST = xxf86misc.pc.in ChangeLog
+MAINTAINERCLEANFILES = ChangeLog
+
+.PHONY: ChangeLog
+
+ChangeLog:
+       $(CHANGELOG_CMD)
+
+dist-hook: ChangeLog
diff --git a/README b/README
new file mode 100644 (file)
index 0000000..e5a7b3d
--- /dev/null
+++ b/README
@@ -0,0 +1,25 @@
+libXxf86misc - Extension library for the XFree86-Misc X extension.
+
+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/lib/libXxf86misc
+
+        http://cgit.freedesktop.org/xorg/lib/libXxf86misc
+
+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 100644 (file)
index 0000000..e81f989
--- /dev/null
@@ -0,0 +1,13 @@
+#! /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 (file)
index 0000000..f9171be
--- /dev/null
@@ -0,0 +1,28 @@
+AC_PREREQ([2.57])
+
+AC_INIT(libXxf86misc, 1.0.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], libXxf86misc)
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
+AM_MAINTAINER_MODE
+
+# Require xorg-macros 1.3 or later: XORG_DEFAULT_OPTIONS
+m4_ifndef([XORG_MACROS_VERSION],
+         [m4_fatal([must install xorg-macros 1.3 or later before running autoconf/autogen])])
+XORG_MACROS_VERSION(1.3)
+
+AM_CONFIG_HEADER(src/config.h)
+
+# Check for progs
+AC_PROG_CC
+AC_PROG_LIBTOOL
+
+XORG_DEFAULT_OPTIONS
+
+# Checks for pkg-config packages
+PKG_CHECK_MODULES(XXF86MISC, xproto x11 xextproto xext xf86miscproto)
+
+XORG_CHECK_MALLOC_ZERO
+
+AC_OUTPUT([Makefile
+          src/Makefile
+          man/Makefile
+          xxf86misc.pc])
diff --git a/debian/README.source b/debian/README.source
new file mode 100644 (file)
index 0000000..34ab4bf
--- /dev/null
@@ -0,0 +1,73 @@
+------------------------------------------------------
+Quick Guide To Patching This Package For The Impatient
+------------------------------------------------------
+
+1. Make sure you have quilt installed
+2. Unpack the package as usual with "dpkg-source -x"
+3. Run the "patch" target in debian/rules
+4. Create a new patch with "quilt new" (see quilt(1))
+5. Edit all the files you want to include in the patch with "quilt edit" 
+   (see quilt(1)).
+6. Write the patch with "quilt refresh" (see quilt(1))
+7. Run the "clean" target in debian/rules
+
+Alternatively, instead of using quilt directly, you can drop the patch in to 
+debian/patches and add the name of the patch to debian/patches/series.
+
+------------------------------------
+Guide To The X Strike Force Packages
+------------------------------------
+
+The X Strike Force team maintains X packages in git repositories on
+git.debian.org in the pkg-xorg subdirectory. Most upstream packages
+are actually maintained in git repositories as well, so they often
+just need to be pulled into git.debian.org in a "upstream-*" branch.
+Otherwise, the upstream sources are manually installed in the Debian
+git repository.
+
+The .orig.tar.gz upstream source file could be generated this
+"upstream-*" branch in the Debian git repository but it is actually
+copied from upstream tarballs directly.
+
+Due to X.org being highly modular, packaging all X.org applications
+as their own independent packages would have created too many Debian
+packages. For this reason, some X.org applications have been grouped
+into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils,
+x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils.
+Most packages, including the X.org server itself and all libraries
+and drivers are, however maintained independently.
+
+The Debian packaging is added by creating the "debian-*" git branch
+which contains the aforementioned "upstream-*" branch plus the debian/
+repository files.
+When a patch has to be applied to the Debian package, two solutions
+are involved:
+* If the patch is available in one of the upstream branches, it
+  may be git'cherry-picked into the Debian repository. In this
+  case, it appears directly in the .diff.gz.
+* Otherwise, the patch is added to debian/patches/ which is managed
+  with quilt as documented in /usr/share/doc/quilt/README.source.
+
+quilt is actually invoked by the Debian X packaging through a larger
+set of scripts called XSFBS. XSFBS brings some other X specific
+features such as managing dependencies and conflicts due to the video
+and input driver ABIs.
+XSFBS itself is maintained in a separate repository at
+  git://git.debian.org/pkg-xorg/xsfbs.git
+and it is pulled inside the other Debian X repositories when needed.
+
+The XSFBS patching system requires a build dependency on quilt. Also
+a dependency on $(STAMP_DIR)/patch has to be added to debian/rules
+so that the XSFBS patching occurs before the actual build. So the
+very first target of the build (likely the one running autoreconf)
+should depend on $(STAMP_DIR)/patch. It should also not depend on
+anything so that parallel builds are correctly supported (nothing
+should probably run while patching is being done). And finally, the
+clean target should depend on the xsfclean target so that patches
+are unapplied on clean.
+
+When the upstream sources contain some DFSG-nonfree files, they are
+listed in text files in debian/prune/ in the "debian-*" branch of
+the Debian repository. XSFBS' scripts then take care of removing
+these listed files during the build so as to generate a modified
+DFSG-free .orig.tar.gz tarball.
diff --git a/debian/changelog b/debian/changelog
new file mode 100644 (file)
index 0000000..3d8238e
--- /dev/null
@@ -0,0 +1,138 @@
+libxxf86misc (1:1.0.2-5slp2) unstable; urgency=low
+
+  * Add --as-needed 
+  * Git: 165.213.180.234:slp/pkgs/xorg/lib/libxxf86misc
+  * Tag: libxxf86misc_1.0.2-5slp2
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Sat, 20 Nov 2010 16:29:33 +0900
+
+libxxf86misc (1:1.0.2-4slp2) unstable; urgency=low
+
+  * Update maintainer
+  * Git: 165.213.180.234:/git/slp2.0/slp2.0-pkgs/X11
+  * Tag: libxxf86misc_1.0.2-4slp2
+
+ -- Sung-Jin Park <sj76.park@samsung.com>  Wed, 21 Apr 2010 14:23:05 +0900
+
+libxxf86misc (1:1.0.2-3slp2) unstable; urgency=low
+
+  * modify the package name
+
+ -- SooChan Lim <sc1.lim@samsung.com>  Thu, 25 Mar 2010 18:06:50 +0900
+
+libxxf86misc (1:1.0.2-2) unstable; urgency=low
+
+  * Import debian package
+
+ -- Sung-Jin Park <sj76.park@samsung.com>  Tue, 08 Dec 2009 15:04:50 +0900
+
+libxxf86misc (1:1.0.2-1) unstable; urgency=low
+
+  [ Brice Goglin ]
+  * Add a link to www.X.org and a reference to the upstream module
+    in the long description.
+  * Add upstream URL to debian/copyright.
+  * Install the upstream ChangeLog.
+  * Add README.source, bump Standards-Version to 3.8.2.
+  * Use updated xsfbs, closes: #538602.
+  * Move -dbg package to section debug.
+  * Run autoreconf on build; add build-deps on automake, libtool, xutils-dev.
+  * Handle parallel builds.
+
+  [ Timo Aaltonen ]
+  * New upstream release.
+  * Bump the build-dep on xutils-dev (>= 1:7.5~1).
+  * Drop pre-dependency on x11-common from libxxf86misc-dev. This was
+    needed for upgrades from sarge.
+
+  [ Julien Cristau ]
+  * Bump Standards-Version to 3.8.3.
+
+ -- Julien Cristau <jcristau@debian.org>  Wed, 25 Nov 2009 20:28:37 +0100
+
+libxxf86misc (1:1.0.1-3) unstable; urgency=low
+
+  * Remove outdated cvs information from the package descriptions, and add
+    Vcs-* headers.
+  * Bump Standards-Version to 3.7.3.
+  * Remove Fabio and Branden from Uploaders with their permission.
+  * Don't build-depend on packages with a -1 debian revision.
+  * Fix package sections (lib in libs, -dev and -dbg in libdevel).
+  * Use ${binary:Version} instead of the deprecated ${Source-Version}.
+  * libxxf86misc1{,-dbg} don't need to depend on x11-common.
+  * Add myself to Uploaders.
+  * autoreconf with current autotools to get updated config.{guess,sub}.
+
+ -- Julien Cristau <jcristau@debian.org>  Sun, 11 May 2008 17:13:41 +0200
+
+libxxf86misc (1:1.0.1-2) unstable; urgency=low
+
+  [ Andres Salomon ]
+  * Autoreconf w/ an updated xutils-dev so that manpages have the 'x'
+    extension dropped.
+  * Revert previous .la file addition.
+
+  [ Drew Parsons ]
+  * dbg package has priority extra.
+  * explicitly exclude libXxf86misc.la from dh_install
+  * use dh_installman to install man pages
+  * upload to unstable (X11R7.1)
+
+ -- Drew Parsons <dparsons@debian.org>  Sat,  9 Sep 2006 10:02:24 +1000
+
+libxxf86misc (1:1.0.1-1) experimental; urgency=low
+
+  * New upstream release.
+  * Drop patches/01_manpage_location.diff; merged upstream.
+  * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build;
+    idempotency fix.
+  * Run dh_install w/ --list-missing.
+  * Drop duplicate x11-common dep in -dev package.
+  * Bump standards version to 3.7.2.0.
+  * Version x11-common pre-dep in -dev package to 1:7.0.0 to match
+    the rest of Debian.
+  * Bump debhelper compat to 5.
+  * Fix dh_strip call to skip the -dbg package.
+  * Don't attempt to install (non-existent) usr/include/X11/* stuff.
+  * Include .la file in -dev package.
+
+ -- Andres Salomon <dilinger@debian.org>  Sun, 23 Jul 2006 16:32:53 -0400
+
+libxxf86misc (1:1.0.0-4) unstable; urgency=low
+
+  * Reorder makeshlib command in rules file so that ldconfig is run
+    properly. Thanks Drew Parsons and Steve Langasek.
+  * Add quilt to build-depends
+
+ -- David Nusinow <dnusinow@debian.org>  Wed, 19 Apr 2006 02:46:47 -0400
+
+libxxf86misc (1:1.0.0-3) unstable; urgency=low
+
+  * Upload to unstable
+
+ -- David Nusinow <dnusinow@debian.org>  Thu, 23 Mar 2006 22:46:35 -0500
+
+libxxf86misc (1:1.0.0-2) experimental; urgency=low
+
+  * Backport manpage location fix
+
+ -- David Nusinow <dnusinow@debian.org>  Thu,  9 Mar 2006 23:36:12 -0500
+
+libxxf86misc (1:1.0.0-1) experimental; urgency=low
+
+  * First modular upload to Debian
+
+ -- David Nusinow <dnusinow@debian.org>  Thu, 29 Dec 2005 20:57:07 -0500
+
+libxxf86misc (7.0.0-2) breezy; urgency=low
+
+  * Bump Build-Depends on libx11-dev and libxext-dev high enough that we don't
+    get intimate with _XOPEN_SOURCE.
+
+ -- Daniel Stone <daniel.stone@ubuntu.com>  Sat, 23 Jul 2005 00:10:12 +1000
+
+libxxf86misc (7.0.0-1) breezy; urgency=low
+
+  * First libxxf86misc release.
+
+ -- Daniel Stone <daniel.stone@ubuntu.com>  Mon, 16 May 2005 22:10:17 +1000
diff --git a/debian/compat b/debian/compat
new file mode 100644 (file)
index 0000000..7ed6ff8
--- /dev/null
@@ -0,0 +1 @@
+5
diff --git a/debian/control b/debian/control
new file mode 100644 (file)
index 0000000..2a61f53
--- /dev/null
@@ -0,0 +1,67 @@
+Source: libxxf86misc
+Section: x11
+Priority: optional
+Maintainer: Sung-Jin Park <sj76.park@samsung.com>, Debian X Strike Force <debian-x@lists.debian.org>
+Uploaders: Sung-Jin Park <sj76.park@samsung.com>, David Nusinow <dnusinow@debian.org>, Andres Salomon <dilinger@debian.org>, Drew Parsons <dparsons@debian.org>, Julien Cristau <jcristau@debian.org>, SooChan Lim <sc1.lim@samsung.com>
+Build-Depends: debhelper (>= 5.0.0), libx11-dev (>= 1:0.99.2), x11proto-xf86misc-dev, libxext-dev (>= 1:0.99.1), pkg-config, quilt, automake, libtool, xutils-dev (>= 1:7.3~1)
+Standards-Version: 3.8.3
+Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxxf86misc
+Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxxf86misc.git
+
+Package: libxxf86misc1
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: X11 XFree86 miscellaneous extension library
+ libXxf86misc provides an interface to the XFree86-Misc extension, which
+ allows client applications to query the current keyboard and mouse settings
+ of the running XFree86-based (XFree86, Xorg) server.
+ .
+ More information about X.Org can be found at:
+ <URL:http://www.X.org>
+ <URL:http://xorg.freedesktop.org>
+ <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+ .
+ This module can be found at
+ git://anongit.freedesktop.org/git/xorg/lib/libXxf86misc
+
+Package: libxxf86misc1-dbg
+Section: debug
+Architecture: any
+Priority: extra
+Depends: ${shlibs:Depends}, ${misc:Depends}, libxxf86misc1 (= ${binary:Version})
+Description: X11 XFree86 miscellaneous extension library (debug package)
+ libXxf86misc provides an interface to the XFree86-Misc extension, which
+ allows client applications to query the current keyboard and mouse settings
+ of the running XFree86-based (XFree86, Xorg) server.
+ .
+ This package contains the debug versions of the library found in libxxf86misc1.
+ Non-developers likely have little use for this package.
+ .
+ More information about X.Org can be found at:
+ <URL:http://www.X.org>
+ <URL:http://xorg.freedesktop.org>
+ <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+ .
+ This module can be found at
+ git://anongit.freedesktop.org/git/xorg/lib/libXxf86misc
+
+Package: libxxf86misc-dev
+Section: libdevel
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, libxxf86misc1 (= ${binary:Version}), libx11-dev, x11proto-xf86misc-dev
+Description: X11 XFree86 miscellaneous extension library (development headers)
+ libXxf86misc provides an interface to the XFree86-Misc extension, which
+ allows client applications to query the current keyboard and mouse settings
+ of the running XFree86-based (XFree86, Xorg) server.
+ .
+ This package contains the development headers for the library found in
+ libxxf86misc1.  Non-developers likely have little use for this package.
+ .
+ More information about X.Org can be found at:
+ <URL:http://www.X.org>
+ <URL:http://xorg.freedesktop.org>
+ <URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+ .
+ This module can be found at
+ git://anongit.freedesktop.org/git/xorg/lib/libXxf86misc
diff --git a/debian/copyright b/debian/copyright
new file mode 100644 (file)
index 0000000..bdec3c4
--- /dev/null
@@ -0,0 +1,14 @@
+This package was downloaded from
+http://xorg.freedesktop.org/releases/individual/lib/
+
+Copyright (c) 1995, 1996  The XFree86 Project, Inc
+
+All Rights Reserved.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicence, 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 XFREE86 PROJECT 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 XFree86 Project 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 XFree86 Project.
diff --git a/debian/libxxf86misc-dev.install b/debian/libxxf86misc-dev.install
new file mode 100644 (file)
index 0000000..3e3d5d8
--- /dev/null
@@ -0,0 +1,4 @@
+usr/lib/libXxf86misc.a
+usr/lib/libXxf86misc.so
+usr/lib/libXxf86misc.la
+usr/lib/pkgconfig/xxf86misc.pc
diff --git a/debian/libxxf86misc-dev.manpages b/debian/libxxf86misc-dev.manpages
new file mode 100644 (file)
index 0000000..7c72677
--- /dev/null
@@ -0,0 +1 @@
+debian/tmp/usr/share/man/man3/*
diff --git a/debian/libxxf86misc1.install b/debian/libxxf86misc1.install
new file mode 100644 (file)
index 0000000..aacfbfa
--- /dev/null
@@ -0,0 +1 @@
+usr/lib/libXxf86misc.so.1*
diff --git a/debian/rules b/debian/rules
new file mode 100755 (executable)
index 0000000..f501330
--- /dev/null
@@ -0,0 +1,103 @@
+#!/usr/bin/make -f
+# debian/rules for the Debian libxxf86misc package.
+# Copyright © 2004 Scott James Remnant <scott@netsplit.com>
+# Copyright © 2005 Daniel Stone <daniel@fooishbar.org>
+# Copyright © 2005 David Nusinow <dnusinow@debian.org>
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+# set this to the name of the main shlib's binary package
+PACKAGE = libxxf86misc1
+
+include debian/xsfbs/xsfbs.mk
+
+CFLAGS = -Wall -g
+LDFLAGS +=  -Wl,--hash-style=both -Wl,--as-needed
+ifneq (,$(filter noopt,$(DEB_BUILD_OPTIONS)))
+       CFLAGS += -O0
+else
+       CFLAGS += -O2
+endif
+ifneq (,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+       NUMJOBS = $(patsubst parallel=%,%,$(filter parallel=%,$(DEB_BUILD_OPTIONS)))
+       MAKEFLAGS += -j$(NUMJOBS)
+endif
+
+DEB_HOST_ARCH      ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+DEB_HOST_GNU_TYPE  ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE = $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
+       confflags += --build=$(DEB_HOST_GNU_TYPE)
+else
+       confflags += --build=$(DEB_HOST_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
+endif
+
+configure: $(STAMP_DIR)/patch
+       dh_testdir
+       autoreconf -vfi
+
+build: build-stamp
+build-stamp: configure $(STAMP_DIR)/genscripts
+       dh_testdir
+
+       mkdir -p obj-$(DEB_BUILD_GNU_TYPE)
+       cd obj-$(DEB_BUILD_GNU_TYPE) && \
+       ../configure --prefix=/usr --mandir=\$${prefix}/share/man \
+                    --infodir=\$${prefix}/share/info $(confflags) \
+                    CFLAGS="$(CFLAGS)" \
+                    LDFLAGS="$(LDFLAGS)" 
+       cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE)
+       >$@
+
+clean: xsfclean
+       dh_testdir
+       dh_testroot
+       rm -f build-stamp
+
+       rm -f config.cache config.log config.status
+       rm -f */config.cache */config.log */config.status
+       rm -f conftest* */conftest*
+       rm -rf autom4te.cache */autom4te.cache
+       rm -rf obj-*
+       rm -f aclocal.m4 compile config.guess config.sub configure
+       rm -f depcomp install-sh ltmain.sh missing mkinstalldirs
+       rm -f src/config.h.in
+       rm -f $$(find -name Makefile.in)
+
+       dh_clean
+
+install: build
+       dh_testdir
+       dh_testroot
+       dh_clean -k
+       dh_installdirs
+
+       cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+# Build architecture-dependent files here.
+binary-arch: build install
+       dh_testdir
+       dh_testroot
+
+       dh_installdocs
+       dh_install --sourcedir=debian/tmp --list-missing --exclude=libXxf86misc.la --exclude=usr/share/man/man3
+       dh_installman
+       dh_installchangelogs ChangeLog
+       dh_link
+       dh_strip --dbg-package=$(PACKAGE)-dbg
+       dh_compress
+       dh_fixperms
+       dh_makeshlibs
+       dh_shlibdeps
+       dh_installdeb
+       dh_gencontrol
+       dh_md5sums
+       dh_builddeb
+
+# Build architecture-independent files here.
+binary-indep: build install
+# Nothing to do
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
diff --git a/debian/watch b/debian/watch
new file mode 100644 (file)
index 0000000..5ce1211
--- /dev/null
@@ -0,0 +1,2 @@
+version=3
+http://xorg.freedesktop.org/releases/individual/lib/ libXxf86misc-(.*)\.tar\.gz
diff --git a/debian/xsfbs/repack.sh b/debian/xsfbs/repack.sh
new file mode 100644 (file)
index 0000000..5935cc9
--- /dev/null
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+set -e
+
+if ! [ -d debian/prune ]; then
+       exit 0
+fi
+
+if [ "x$1" != x--upstream-version ]; then
+       exit 1
+fi
+
+version="$2"
+filename="$3"
+
+if [ -z "$version" ] || ! [ -f "$filename" ]; then
+       exit 1
+fi
+
+dir="$(pwd)"
+tempdir="$(mktemp -d)"
+
+cd "$tempdir"
+tar xf "$dir/$filename"
+cat "$dir"/debian/prune/* | while read file; do rm -f */$file; done
+
+tar czf "$dir/$filename" *
+cd "$dir"
+rm -rf "$tempdir"
+echo "Done pruning upstream tarball"
+
+exit 0
diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk
new file mode 100644 (file)
index 0000000..5e16b10
--- /dev/null
@@ -0,0 +1,276 @@
+#!/usr/bin/make -f
+
+# Debian X Strike Force Build System (XSFBS): Make portion
+
+# Copyright 1996 Stephen Early
+# Copyright 1997 Mark Eichin
+# Copyright 1998-2005, 2007 Branden Robinson
+# Copyright 2005 David Nusinow
+#
+# Licensed under the GNU General Public License, version 2.  See the file
+# /usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>.
+
+# Originally by Stephen Early <sde1000@debian.org>
+# Modified by Mark W. Eichin <eichin@kitten.gen.ma.us>
+# Modified by Adam Heath <doogie@debian.org>
+# Modified by Branden Robinson <branden@debian.org>
+# Modified by Fabio Massimo Di Nitto <fabbione@fabbione.net>
+# Modified by David Nusinow <dnusinow@debian.org>
+# Acknowledgements to Manoj Srivastava.
+
+# Pass $(DH_OPTIONS) into the environment for debhelper's benefit.
+export DH_OPTIONS
+
+# force quilt to not use ~/.quiltrc and to use debian/patches
+QUILT = QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null
+
+# Set up parameters for the upstream build environment.
+
+# Determine (source) package name from Debian changelog.
+SOURCE_NAME:=$(shell dpkg-parsechangelog -ldebian/changelog \
+                        | grep '^Source:' | awk '{print $$2}')
+
+# Determine package version from Debian changelog.
+SOURCE_VERSION:=$(shell dpkg-parsechangelog -ldebian/changelog \
+                        | grep '^Version:' | awk '{print $$2}')
+
+# Determine upstream version number.
+UPSTREAM_VERSION:=$(shell echo $(SOURCE_VERSION) | sed 's/-.*//')
+
+# Determine the source version without the epoch for make-orig-tar-gz
+NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://')
+
+# Figure out who's building this package.
+BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$LOGNAME@$$(cat /etc/mailname 2>/dev/null))}})
+
+# Find out if this is an official build; an official build has nothing but
+# digits, dots, and/or the codename of a release in the Debian part of the
+# version number.  Anything else indicates an unofficial build.
+OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\|etch\|lenny\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi)
+
+# Set up parameters for the Debian build environment.
+
+# Determine our architecture.
+BUILD_ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+# Work around some old-time dpkg braindamage.
+BUILD_ARCH:=$(subst i486,i386,$(BUILD_ARCH))
+# The DEB_HOST_ARCH variable may be set per the Debian cross-compilation policy.
+ifdef DEB_HOST_ARCH
+ ARCH:=$(DEB_HOST_ARCH)
+else
+ # dpkg-cross sets the ARCH environment variable; if set, use it.
+ ifdef ARCH
+  ARCH:=$(ARCH)
+ else
+  ARCH:=$(BUILD_ARCH)
+ endif
+endif
+
+# $(STAMP_DIR) houses stamp files for complex targets.
+STAMP_DIR:=stampdir
+
+# $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place
+# their files.
+DEBTREEDIR:=$(CURDIR)/debian/tmp
+
+# All "important" targets have four lines:
+#   1) A target name that is invoked by a package-building tool or the user.
+#      This consists of a dependency on a "$(STAMP_DIR)/"-prefixed counterpart.
+#   2) A line delcaring 1) as a phony target (".PHONY:").
+#   3) A "$(STAMP_DIR)/"-prefixed target which does the actual work, and may
+#   depend on other targets.
+#   4) A line declaring 3) as a member of the $(stampdir_targets) variable; the
+#   "$(STAMP_DIR)/" prefix is omitted.
+#
+# This indirection is needed so that the "stamp" files that signify when a rule
+# is done can be located in a separate "stampdir".  Recall that make has no way
+# to know when a goal has been met for a phony target (like "build" or
+# "install").
+#
+# At the end of each "$(STAMP_DIR)/" target, be sure to run the command ">$@"
+# so that the target will not be run again.  Removing the file will make Make
+# run the target over.
+
+# All phony targets should be declared as dependencies of .PHONY, even if they
+# do not have "($STAMP_DIR)/"-prefixed counterparts.
+
+# Define a harmless default rule to keep things from going nuts by accident.
+.PHONY: default
+default:
+
+# Set up the $(STAMP_DIR) directory.
+.PHONY: stampdir
+stampdir_targets+=stampdir
+stampdir: $(STAMP_DIR)/stampdir
+$(STAMP_DIR)/stampdir:
+       mkdir $(STAMP_DIR)
+       >$@
+
+# Set up the package build directory as quilt expects to find it.
+.PHONY: prepare
+stampdir_targets+=prepare
+prepare: $(STAMP_DIR)/prepare
+$(STAMP_DIR)/prepare: $(STAMP_DIR)/log $(STAMP_DIR)/genscripts
+       >$@
+
+.PHONY: log
+stampdir_targets+=log
+log: $(STAMP_DIR)/log
+$(STAMP_DIR)/log: $(STAMP_DIR)/stampdir
+       mkdir -p $(STAMP_DIR)/log
+
+# Apply all patches to the upstream source.
+.PHONY: patch
+stampdir_targets+=patch
+patch: $(STAMP_DIR)/patch
+$(STAMP_DIR)/patch: $(STAMP_DIR)/prepare
+       if ! [ `which quilt` ]; then \
+               echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \
+               exit 1; \
+       fi; \
+       if $(QUILT) next >/dev/null 2>&1; then \
+         echo -n "Applying patches..."; \
+         if $(QUILT) push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \
+           cat $(STAMP_DIR)/log/patch; \
+           echo "successful."; \
+         else \
+           cat $(STAMP_DIR)/log/patch; \
+           echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \
+           exit 1; \
+         fi; \
+       else \
+         echo "No patches to apply"; \
+       fi; \
+       >$@
+
+# Revert all patches to the upstream source.
+.PHONY: unpatch
+unpatch: $(STAMP_DIR)/log
+       rm -f $(STAMP_DIR)/patch
+       @echo -n "Unapplying patches..."; \
+       if $(QUILT) applied >/dev/null 2>/dev/null; then \
+         if $(QUILT) pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \
+           cat $(STAMP_DIR)/log/unpatch; \
+           echo "successful."; \
+         else \
+           cat $(STAMP_DIR)/log/unpatch; \
+           echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \
+           exit 1; \
+         fi; \
+       else \
+         echo "nothing to do."; \
+       fi
+
+# Clean the generated maintainer scripts.
+.PHONY: cleanscripts
+cleanscripts:
+       rm -f $(STAMP_DIR)/genscripts
+       rm -f debian/*.config \
+             debian/*.postinst \
+             debian/*.postrm \
+             debian/*.preinst \
+             debian/*.prerm
+
+# Clean the package build tree.
+.PHONY: xsfclean
+xsfclean: cleanscripts unpatch
+       dh_testdir
+       rm -rf .pc
+       rm -rf $(STAMP_DIR)
+       dh_clean
+
+# Remove files from the upstream source tree that we don't need, or which have
+# licensing problems.  It must be run before creating the .orig.tar.gz.
+#
+# Note: This rule is for Debian package maintainers' convenience, and is not
+# needed for conventional build scenarios.
+.PHONY: prune-upstream-tree
+prune-upstream-tree:
+       # Ensure we're in the correct directory.
+       dh_testdir
+       grep -rvh '^#' debian/prune/ | xargs --no-run-if-empty rm -rf
+
+# Verify that there are no offsets or fuzz in the patches we apply.
+#
+# Note: This rule is for Debian package maintainers' convenience, and is not
+# needed for conventional build scenarios.
+.PHONY: patch-audit
+patch-audit: prepare unpatch
+       @echo -n "Auditing patches..."; \
+       >$(STAMP_DIR)/log/patch; \
+       FUZZY=; \
+       while [ -n "$$($(QUILT) next)" ]; do \
+         RESULT=$$($(QUILT) push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\
+         case "$$RESULT" in \
+           succeeded) \
+             echo "fuzzy patch: $$($(QUILT) top)" \
+               | tee -a $(STAMP_DIR)/log/$$($(QUILT) top); \
+             FUZZY=yes; \
+             ;; \
+           FAILED) \
+             echo "broken patch: $$($(QUILT) next)" \
+               | tee -a $(STAMP_DIR)/log/$$($(QUILT) next); \
+             exit 1; \
+             ;; \
+         esac; \
+       done; \
+       if [ -n "$$FUZZY" ]; then \
+         echo "there were fuzzy patches; please fix."; \
+         exit 1; \
+       else \
+         echo "done."; \
+       fi
+
+# Generate the maintainer scripts.
+.PHONY: genscripts
+stampdir_targets+=genscripts
+genscripts: $(STAMP_DIR)/genscripts
+$(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir
+       for FILE in debian/*.config.in \
+                   debian/*.postinst.in \
+                   debian/*.postrm.in \
+                   debian/*.preinst.in \
+                   debian/*.prerm.in; do \
+         if [ -e "$$FILE" ]; then \
+           MAINTSCRIPT=$$(echo $$FILE | sed 's/.in$$//'); \
+           sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' <$$FILE \
+             | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >$$MAINTSCRIPT.tmp; \
+           cat debian/xsfbs/xsfbs.sh >>$$MAINTSCRIPT.tmp; \
+           sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' <$$FILE \
+             | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \
+           sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \
+               -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \
+             <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \
+           rm $$MAINTSCRIPT.tmp; \
+         fi; \
+       done
+       # Validate syntax of generated shell scripts.
+       #sh debian/scripts/validate-posix-sh debian/*.config \
+       #                                    debian/*.postinst \
+       #                                    debian/*.postrm \
+       #                                    debian/*.preinst \
+       #                                    debian/*.prerm
+       >$@
+
+SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null)
+VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null)
+INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null)
+SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS))
+VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI)
+INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI)
+ifeq ($(PACKAGE),)
+PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control)
+endif
+
+.PHONY: serverabi
+serverabi: install
+ifeq ($(SERVERMINVERS),)
+       @echo error: xserver-xorg-dev needs to be installed
+       @exit 1
+else
+       echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars
+       echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars
+       echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars
+endif
+
+# vim:set noet ai sts=8 sw=8 tw=0:
diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh
new file mode 100644 (file)
index 0000000..813fd8d
--- /dev/null
@@ -0,0 +1,622 @@
+# This is the X Strike Force shell library for X Window System package
+# maintainer scripts.  It serves to define shell functions commonly used by
+# such packages, and performs some error checking necessary for proper operation
+# of those functions.  By itself, it does not "do" much; the maintainer scripts
+# invoke the functions defined here to accomplish package installation and
+# removal tasks.
+
+# If you are reading this within a Debian package maintainer script (e.g.,
+# /var/lib/dpkg/info/PACKAGE.{config,preinst,postinst,prerm,postrm}), you can
+# skip past this library by scanning forward in this file to the string
+# "GOBSTOPPER".
+
+SOURCE_VERSION=@SOURCE_VERSION@
+OFFICIAL_BUILD=@OFFICIAL_BUILD@
+
+# Use special abnormal exit codes so that problems with this library are more
+# easily tracked down.
+SHELL_LIB_INTERNAL_ERROR=86
+SHELL_LIB_THROWN_ERROR=74
+SHELL_LIB_USAGE_ERROR=99
+
+# old -> new variable names
+if [ -z "$DEBUG_XORG_PACKAGE" ] && [ -n "$DEBUG_XFREE86_PACKAGE" ]; then
+  DEBUG_XORG_PACKAGE="$DEBUG_XFREE86_PACKAGE"
+fi
+if [ -z "$DEBUG_XORG_DEBCONF" ] && [ -n "$DEBUG_XFREE86_DEBCONF" ]; then
+  DEBUG_XORG_DEBCONF="$DEBUG_XFREE86_DEBCONF"
+fi
+
+# initial sanity checks
+if [ -z "$THIS_PACKAGE" ]; then
+  cat >&2 <<EOF
+Error: package maintainer script attempted to use shell library without
+definining \$THIS_PACKAGE shell variable.  Please report the package name,
+version, and the text of this error message to the Debian Bug Tracking System.
+Visit <http://www.debian.org/Bugs/Reporting> on the World Wide Web for
+instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the
+"doc-debian" package, or install the "reportbug" package and use the command of
+the same name to file a report against version $SOURCE_VERSION of this package.
+EOF
+  exit $SHELL_LIB_USAGE_ERROR
+fi
+
+if [ -z "$THIS_SCRIPT" ]; then
+  cat >&2 <<EOF
+Error: package maintainer script attempted to use shell library without
+definining \$THIS_SCRIPT shell variable.  Please report the package name,
+version, and the text of this error message to the Debian Bug Tracking System.
+Visit <http://www.debian.org/Bugs/Reporting> on the World Wide Web for
+instructions, read the file /usr/share/doc/debian/bug-reporting.txt from the
+"doc-debian" package, or install the "reportbug" package and use the command of
+the same name to file a report against version $SOURCE_VERSION of the
+"$THIS_PACKAGE" package.
+EOF
+  exit $SHELL_LIB_USAGE_ERROR
+fi
+
+if [ "$1" = "reconfigure" ] || [ -n "$DEBCONF_RECONFIGURE" ]; then
+  RECONFIGURE="true"
+else
+  RECONFIGURE=
+fi
+
+if ([ "$1" = "install" ] || [ "$1" = "configure" ]) && [ -z "$2" ]; then
+  FIRSTINST="yes"
+fi
+
+if [ -z "$RECONFIGURE" ] && [ -z "$FIRSTINST" ]; then
+  UPGRADE="yes"
+fi
+
+trap "message;\
+      message \"Received signal.  Aborting $THIS_PACKAGE package $THIS_SCRIPT script.\";\
+      message;\
+      exit 1" HUP INT QUIT TERM
+
+reject_nondigits () {
+  # syntax: reject_nondigits [ operand ... ]
+  #
+  # scan operands (typically shell variables whose values cannot be trusted) for
+  # characters other than decimal digits and barf if any are found
+  while [ -n "$1" ]; do
+    # does the operand contain anything but digits?
+    if ! expr "$1" : "[[:digit:]]\+$" > /dev/null 2>&1; then
+      # can't use die(), because it wraps message() which wraps this function
+      echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_nondigits() encountered" \
+           "possibly malicious garbage \"$1\"" >&2
+      exit $SHELL_LIB_THROWN_ERROR
+    fi
+    shift
+  done
+}
+
+reject_unlikely_path_chars () {
+  # syntax: reject_unlikely_path_chars [ operand ... ]
+  #
+  # scan operands (typically shell variables whose values cannot be trusted) for
+  # characters unlikely to be seen in a path and which the shell might
+  # interpret and barf if any are found
+  while [ -n "$1" ]; do
+    # does the operand contain any funny characters?
+    if expr "$1" : '.*[!$&()*;<>?|].*' > /dev/null 2>&1; then
+      # can't use die(), because I want to avoid forward references
+      echo "$THIS_PACKAGE $THIS_SCRIPT error: reject_unlikely_path_chars()" \
+           "encountered possibly malicious garbage \"$1\"" >&2
+      exit $SHELL_LIB_THROWN_ERROR
+    fi
+    shift
+  done
+}
+
+# Query the terminal to establish a default number of columns to use for
+# displaying messages to the user.  This is used only as a fallback in the
+# event the COLUMNS variable is not set.  ($COLUMNS can react to SIGWINCH while
+# the script is running, and this cannot, only being calculated once.)
+DEFCOLUMNS=$(stty size 2> /dev/null | awk '{print $2}') || true
+if ! expr "$DEFCOLUMNS" : "[[:digit:]]\+$" > /dev/null 2>&1; then
+  DEFCOLUMNS=80
+fi
+
+message () {
+  # pretty-print messages of arbitrary length
+  reject_nondigits "$COLUMNS"
+  echo "$*" | fmt -t -w ${COLUMNS:-$DEFCOLUMNS} >&2
+}
+
+observe () {
+  # syntax: observe message ...
+  #
+  # issue observational message suitable for logging someday when support for
+  # it exists in dpkg
+  if [ -n "$DEBUG_XORG_PACKAGE" ]; then
+    message "$THIS_PACKAGE $THIS_SCRIPT note: $*"
+  fi
+}
+
+warn () {
+  # syntax: warn message ...
+  #
+  # issue warning message suitable for logging someday when support for
+  # it exists in dpkg; also send to standard error
+  message "$THIS_PACKAGE $THIS_SCRIPT warning: $*"
+}
+
+die () {
+  # syntax: die message ...
+  #
+  # exit script with error message
+  message "$THIS_PACKAGE $THIS_SCRIPT error: $*"
+  exit $SHELL_LIB_THROWN_ERROR
+}
+
+internal_error () {
+  # exit script with error; essentially a "THIS SHOULD NEVER HAPPEN" message
+  message "internal error: $*"
+  if [ -n "$OFFICIAL_BUILD" ]; then
+    message "Please report a bug in the $THIS_SCRIPT script of the" \
+            "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \
+            "Tracking System.  Include all messages above that mention the" \
+            "$THIS_PACKAGE package.  Visit " \
+            "<http://www.debian.org/Bugs/Reporting> on the World Wide Web for" \
+            "instructions, read the file" \
+            "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \
+            "package, or install the reportbug package and use the command of" \
+            "the same name to file a report."
+  fi
+  exit $SHELL_LIB_INTERNAL_ERROR
+}
+
+usage_error () {
+  message "usage error: $*"
+  message "Please report a bug in the $THIS_SCRIPT script of the" \
+          "$THIS_PACKAGE package, version $SOURCE_VERSION to the Debian Bug" \
+          "Tracking System.  Include all messages above that mention the" \
+          "$THIS_PACKAGE package.  Visit " \
+          "<http://www.debian.org/Bugs/Reporting> on the World Wide Web for" \
+          "instructions, read the file" \
+          "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \
+          "package, or install the reportbug package and use the command of" \
+          "the same name to file a report."
+  exit $SHELL_LIB_USAGE_ERROR
+}
+
+font_update () {
+  # run $UPDATECMDS in $FONTDIRS
+
+  local dir cmd shortcmd x_font_dir_prefix
+
+  x_font_dir_prefix="/usr/share/fonts/X11"
+
+  if [ -z "$UPDATECMDS" ]; then
+    usage_error "font_update() called but \$UPDATECMDS not set"
+  fi
+  if [ -z "$FONTDIRS" ]; then
+    usage_error "font_update() called but \$FONTDIRS not set"
+  fi
+
+  reject_unlikely_path_chars "$UPDATECMDS"
+  reject_unlikely_path_chars "$FONTDIRS"
+
+  for dir in $FONTDIRS; do
+    if [ -d "$x_font_dir_prefix/$dir" ]; then
+      for cmd in $UPDATECMDS; do
+        if which "$cmd" > /dev/null 2>&1; then
+          shortcmd=${cmd##*/}
+          observe "running $shortcmd in $dir font directory"
+         cmd_opts=
+          if [ "$shortcmd" = "update-fonts-alias" ]; then
+            cmd_opts=--x11r7-layout
+          fi
+          if [ "$shortcmd" = "update-fonts-dir" ]; then
+            cmd_opts=--x11r7-layout
+          fi
+          if [ "$shortcmd" = "update-fonts-scale" ]; then
+            cmd_opts=--x11r7-layout
+          fi
+          $cmd $cmd_opts $dir || warn "$cmd $cmd_opts $dir" \
+                              "failed; font directory data may not" \
+                              "be up to date"
+        else
+          warn "$cmd not found; not updating corresponding $dir font" \
+               "directory data"
+        fi
+      done
+    else
+      warn "$dir is not a directory; not updating font directory data"
+    fi
+  done
+}
+
+remove_conffile_prepare () {
+  # syntax: remove_conffile_prepare filename official_md5sum ...
+  #
+  # Check a conffile "filename" against a list of canonical MD5 checksums.
+  # If the file's current MD5 checksum matches one of the "official_md5sum"
+  # operands provided, then prepare the conffile for removal from the system.
+  # We defer actual deletion until the package is configured so that we can
+  # roll this operation back if package installation fails.
+  #
+  # Call this function from a preinst script in the event $1 is "upgrade" or
+  # "install" and verify $2 to ensure the package is being upgraded from a
+  # version (or installed over a version removed-but-not-purged) prior to the
+  # one in which the conffile was obsoleted.
+
+  local conffile current_checksum
+
+  # validate arguments
+  if [ $# -lt 2 ]; then
+    usage_error "remove_conffile_prepare() called with wrong number of" \
+                "arguments; expected at least 2, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  conffile="$1"
+  shift
+
+  # does the conffile even exist?
+  if [ -e "$conffile" ]; then
+    # calculate its checksum
+    current_checksum=$(md5sum < "$conffile" | sed 's/[[:space:]].*//')
+    # compare it to each supplied checksum
+    while [ -n "$1" ]; do
+      if [ "$current_checksum" = "$1" ]; then
+        # we found a match; move the confffile and stop looking
+        observe "preparing obsolete conffile $conffile for removal"
+        mv "$conffile" "$conffile.$THIS_PACKAGE-tmp"
+        break
+      fi
+      shift
+    done
+  fi
+}
+
+remove_conffile_lookup () {
+  # syntax: remove_conffile_lookup package filename
+  #
+  # Lookup the md5sum of a conffile in dpkg's database, and prepare for removal
+  # if it matches the actual file's md5sum.
+  #
+  # Call this function when you would call remove_conffile_prepare but only
+  # want to check against dpkg's status database instead of known checksums.
+
+  local package conffile old_md5sum
+
+  # validate arguments
+  if [ $# -ne 2 ]; then
+    usage_error "remove_conffile_lookup() called with wrong number of" \
+                "arguments; expected 1, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  package="$1"
+  conffile="$2"
+
+  if ! [ -e "$conffile" ]; then
+    return
+  fi
+  old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$package" | \
+    awk '{ if (match($0, "^ '"$conffile"' ")) print $2}')"
+  if [ -n "$old_md5sum" ]; then
+    remove_conffile_prepare "$conffile" "$old_md5sum"
+  fi
+}
+
+remove_conffile_commit () {
+  # syntax: remove_conffile_commit filename
+  #
+  # Complete the removal of a conffile "filename" that has become obsolete.
+  #
+  # Call this function from a postinst script after having used
+  # remove_conffile_prepare() in the preinst.
+
+  local conffile
+
+  # validate arguments
+  if [ $# -ne 1 ]; then
+    usage_error "remove_conffile_commit() called with wrong number of" \
+                "arguments; expected 1, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  conffile="$1"
+
+  # if the temporary file created by remove_conffile_prepare() exists, remove it
+  if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then
+    observe "committing removal of obsolete conffile $conffile"
+    rm "$conffile.$THIS_PACKAGE-tmp"
+  fi
+}
+
+remove_conffile_rollback () {
+  # syntax: remove_conffile_rollback filename
+  #
+  # Roll back the removal of a conffile "filename".
+  #
+  # Call this function from a postrm script in the event $1 is "abort-upgrade"
+  # or "abort-install" is  after having used remove_conffile_prepare() in the
+  # preinst.
+
+  local conffile
+
+  # validate arguments
+  if [ $# -ne 1 ]; then
+    usage_error "remove_conffile_rollback() called with wrong number of" \
+                "arguments; expected 1, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  conffile="$1"
+
+  # if the temporary file created by remove_conffile_prepare() exists, move it
+  # back
+  if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then
+    observe "rolling back removal of obsolete conffile $conffile"
+    mv "$conffile.$THIS_PACKAGE-tmp" "$conffile"
+  fi
+}
+
+replace_conffile_with_symlink_prepare () {
+  # syntax: replace_conffile_with_symlink_prepare oldfilename newfilename \
+  # official_md5sum ...
+  #
+  # Check a conffile "oldfilename" against a list of canonical MD5 checksums.
+  # If the file's current MD5 checksum matches one of the "official_md5sum"
+  # operands provided, then prepare the conffile for removal from the system.
+  # We defer actual deletion until the package is configured so that we can
+  # roll this operation back if package installation fails. Otherwise copy it
+  # to newfilename and let dpkg handle it through conffiles mechanism.
+  #
+  # Call this function from a preinst script in the event $1 is "upgrade" or
+  # "install" and verify $2 to ensure the package is being upgraded from a
+  # version (or installed over a version removed-but-not-purged) prior to the
+  # one in which the conffile was obsoleted.
+
+  local conffile current_checksum
+
+  # validate arguments
+  if [ $# -lt 3 ]; then
+    usage_error "replace_conffile_with_symlink_prepare() called with wrong" \
+                " number of arguments; expected at least 3, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  oldconffile="$1"
+  shift
+  newconffile="$1"
+  shift
+
+  remove_conffile_prepare "$_oldconffile" "$@"
+  # If $oldconffile still exists, then md5sums didn't match.
+  # Copy it to new one.
+  if [ -f "$oldconffile" ]; then
+    cp "$oldconffile" "$newconffile"
+  fi
+
+}
+
+replace_conffile_with_symlink_commit () {
+  # syntax: replace_conffile_with_symlink_commit oldfilename
+  #
+  # Complete the removal of a conffile "oldfilename" that has been
+  # replaced by a symlink.
+  #
+  # Call this function from a postinst script after having used
+  # replace_conffile_with_symlink_prepare() in the preinst.
+
+  local conffile
+
+  # validate arguments
+  if [ $# -ne 1 ]; then
+    usage_error "replace_conffile_with_symlink_commit() called with wrong" \
+                "number of arguments; expected 1, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  conffile="$1"
+
+  remove_conffile_commit "$conffile"
+}
+
+replace_conffile_with_symlink_rollback () {
+  # syntax: replace_conffile_with_symlink_rollback oldfilename newfilename
+  #
+  # Roll back the replacing of a conffile "oldfilename" with symlink to
+  # "newfilename".
+  #
+  # Call this function from a postrm script in the event $1 is "abort-upgrade"
+  # or "abort-install" and verify $2 to ensure the package failed to upgrade
+  # from a version (or install over a version removed-but-not-purged) prior
+  # to the one in which the conffile was obsoleted.
+  # You should have  used replace_conffile_with_symlink_prepare() in the
+  # preinst.
+
+  local conffile
+
+  # validate arguments
+  if [ $# -ne 2 ]; then
+    usage_error "replace_conffile_with_symlink_rollback() called with wrong" \
+                "number of arguments; expected 2, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  oldconffile="$1"
+  newconffile="$2"
+
+  remove_conffile_rollback "$_oldconffile"
+  if [ -f "$newconffile" ]; then
+    rm "$newconffile"
+  fi
+}
+
+run () {
+  # syntax: run command [ argument ... ]
+  #
+  # Run specified command with optional arguments and report its exit status.
+  # Useful for commands whose exit status may be nonzero, but still acceptable,
+  # or commands whose failure is not fatal to us.
+  #
+  # NOTE: Do *not* use this function with db_get or db_metaget commands; in
+  # those cases the return value of the debconf command *must* be checked
+  # before the string returned by debconf is used for anything.
+
+  local retval
+
+  # validate arguments
+  if [ $# -lt 1 ]; then
+    usage_error "run() called with wrong number of arguments; expected at" \
+                "least 1, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  "$@" || retval=$?
+
+  if [ ${retval:-0} -ne 0 ]; then
+    observe "command \"$*\" exited with status $retval"
+  fi
+}
+
+make_symlink_sane () {
+  # syntax: make_symlink_sane symlink target
+  #
+  # Ensure that the symbolic link symlink exists, and points to target.
+  #
+  # If symlink does not exist, create it and point it at target.
+  #
+  # If symlink exists but is not a symbolic link, back it up.
+  #
+  # If symlink exists, is a symbolic link, but points to the wrong location, fix
+  # it.
+  #
+  # If symlink exists, is a symbolic link, and already points to target, do
+  # nothing.
+  #
+  # This function wouldn't be needed if ln had an -I, --idempotent option.
+
+  # Validate arguments.
+  if [ $# -ne 2 ]; then
+    usage_error "make_symlink_sane() called with wrong number of arguments;" \
+      "expected 2, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  # We could just use the positional parameters as-is, but that makes things
+  # harder to follow.
+  local symlink target
+
+  symlink="$1"
+  target="$2"
+
+  if [ -L "$symlink" ] && [ "$(readlink "$symlink")" = "$target" ]; then
+      observe "link from $symlink to $target already exists"
+  else
+    observe "creating symbolic link from $symlink to $target"
+    mkdir -p "${target%/*}" "${symlink%/*}"
+    ln -s -b -S ".dpkg-old" "$target" "$symlink"
+  fi
+}
+
+migrate_dir_to_symlink () {
+  # syntax: migrate_dir_to_symlink old_location new_location
+  #
+  # Per Debian Policy section 6.5.4, "A directory will never be replaced by a
+  # symbolic link to a directory or vice versa; instead, the existing state
+  # (symlink or not) will be left alone and dpkg will follow the symlink if
+  # there is one."
+  #
+  # We have to do it ourselves.
+  #
+  # This function moves the contents of old_location, a directory, into
+  # new_location, a directory, then makes old_location a symbolic link to
+  # new_location.
+  #
+  # old_location need not exist, but if it does, it must be a directory (or a
+  # symlink to a directory).  If it is not, it is backed up.  If new_location
+  # exists already and is not a directory, it is backed up.
+  #
+  # This function should be called from a package's preinst so that other
+  # packages unpacked after this one --- but before this package's postinst runs
+  # --- are unpacked into new_location even if their payloads contain
+  # old_location filespecs.
+
+  # Validate arguments.
+  if [ $# -ne 2 ]; then
+    usage_error "migrate_dir_to_symlink() called with wrong number of"
+                "arguments; expected 2, got $#"
+    exit $SHELL_LIB_USAGE_ERROR
+  fi
+
+  # We could just use the positional parameters as-is, but that makes things
+  # harder to follow.
+  local new old
+
+  old="$1"
+  new="$2"
+
+  # Is old location a symlink?
+  if [ -L "$old" ]; then
+    # Does it already point to new location?
+    if [ "$(readlink "$old")" = "$new" ]; then
+      # Nothing to do; migration has already been done.
+      observe "migration of $old to $new already done"
+      return 0
+    else
+      # Back it up.
+      warn "backing up symbolic link $old as $old.dpkg-old"
+      mv -b "$old" "$old.dpkg-old"
+    fi
+  fi
+
+  # Does old location exist, but is not a directory?
+  if [ -e "$old" ] && ! [ -d "$old" ]; then
+      # Back it up.
+      warn "backing up non-directory $old as $old.dpkg-old"
+      mv -b "$old" "$old.dpkg-old"
+  fi
+
+  observe "migrating $old to $new"
+
+  # Is new location a symlink?
+  if [ -L "$new" ]; then
+    # Does it point the wrong way, i.e., back to where we're migrating from?
+    if [ "$(readlink "$new")" = "$old" ]; then
+      # Get rid of it.
+      observe "removing symbolic link $new which points to $old"
+      rm "$new"
+    else
+      # Back it up.
+      warn "backing up symbolic link $new as $new.dpkg-old"
+      mv -b "$new" "$new.dpkg-old"
+    fi
+  fi
+
+  # Does new location exist, but is not a directory?
+  if [ -e "$new" ] && ! [ -d "$new" ]; then
+    warn "backing up non-directory $new as $new.dpkg-old"
+    mv -b "$new" "$new.dpkg-old"
+  fi
+
+  # Create new directory if it does not yet exist.
+  if ! [ -e "$new" ]; then
+    observe "creating $new"
+    mkdir -p "$new"
+  fi
+
+  # Copy files in old location to new location.  Back up any filenames that
+  # already exist in the new location with the extension ".dpkg-old".
+  observe "copying files from $old to $new"
+  if ! (cd "$old" && cp -a -b -S ".dpkg-old" . "$new"); then
+    die "error(s) encountered while copying files from $old to $new"
+  fi
+
+  # Remove files at old location.
+  observe "removing $old"
+  rm -r "$old"
+
+  # Create symlink from old location to new location.
+  make_symlink_sane "$old" "$new"
+}
+
+# vim:set ai et sw=2 ts=2 tw=80:
+
+# GOBSTOPPER: The X Strike Force shell library ends here.
diff --git a/man/Makefile.am b/man/Makefile.am
new file mode 100644 (file)
index 0000000..40a9794
--- /dev/null
@@ -0,0 +1,73 @@
+#
+# Copyright 2005 Sun Microsystems, Inc.  All rights reserved.
+# 
+# Permission to use, copy, modify, distribute, and sell this software and its
+# documentation for any purpose is hereby granted without fee, provided that
+# the above copyright notice appear in all copies and that both that
+# copyright notice and this permission notice appear in supporting
+# documentation.
+# 
+# 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 OPEN GROUP 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 copyright holders 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 copyright holders.
+# 
+
+libmandir = $(LIB_MAN_DIR)
+
+LIB_MAN_DIR_SUFFIX = $(LIB_MAN_DIR:@mandir@/man%=%)
+
+libman_PRE = XF86Misc.man
+
+EXTRA_DIST = $(libman_PRE)
+
+CLEANFILES = $(libman_DATA) $(BUILT_SOURCES)
+
+libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@) \
+             $(XF86Misc_shadowmen)
+
+SED = sed
+
+# Strings to replace in man pages
+XORGRELSTRING = @PACKAGE_STRING@
+  XORGMANNAME = X Version 11
+
+MAN_SUBSTS = \
+       -e 's/__vendorversion__/"$(XORGRELSTRING)" "$(XORGMANNAME)"/' \
+       -e 's/__xconfigfile__/xorg.conf/g' \
+       -e 's/__appmansuffix__/$(APP_MAN_SUFFIX)/g' \
+       -e 's/__libmansuffix__/$(LIB_MAN_SUFFIX)/g' \
+       -e 's/__filemansuffix__/$(FILE_MAN_SUFFIX)/g'
+
+SUFFIXES = .$(LIB_MAN_SUFFIX) .man
+
+.man.$(LIB_MAN_SUFFIX):
+       $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
+
+# Generate man page shadow files (Replaces InstallManPageAliases from Imake)
+
+XF86Misc_shadows =                          \
+    XF86MiscQueryExtension                  \
+    XF86MiscQueryVersion                    \
+    XF86MiscGetSaver                        \
+    XF86MiscSetSaver                        \
+    XF86MiscGetMouseSettings                \
+    XF86MiscSetMouseSettings                \
+    XF86MiscGetKbdSettings                  \
+    XF86MiscSetKbdSettings
+
+XF86Misc_shadowmen = $(XF86Misc_shadows:=.@LIB_MAN_SUFFIX@)
+
+$(XF86Misc_shadowmen):
+        $(AM_V_GEN)echo .so man$(LIB_MAN_DIR_SUFFIX)/XF86Misc.$(LIB_MAN_SUFFIX) > $@
diff --git a/man/XF86Misc.man b/man/XF86Misc.man
new file mode 100644 (file)
index 0000000..fe4f3d7
--- /dev/null
@@ -0,0 +1,217 @@
+.\" $XdotOrg$
+.\" $TOG: XF86Misc.man /main/7 1997/07/19 10:30:32 kaleb $
+.\"
+.\"
+.\"
+.\" Copyright (c) 1996  Joe Moss, The XFree86 Project
+.\" 
+.\" $XFree86: xc/programs/Xserver/hw/xfree86/doc/man/XF86Misc.man,v 3.12 2002/12/22 00:46:54 dawes Exp $
+.de ZN
+.ie t \fB\^\\$1\^\fR\\$2
+.el \fI\^\\$1\^\fP\\$2
+..
+.TH XF86MISC __libmansuffix__ __vendorversion__ "X FUNCTIONS"
+.SH NAME
+XF86MiscQueryExtension, XF86MiscQueryVersion, XF86MiscGetMouseSettings, XF86MiscSetMouseSettings, XF86MiscGetKbdSettings, XF86MiscSetKbdSettings \- Extension library for the XFree86-Misc X extension.
+.SH SYNTAX
+.nf
+.LP
+\&#include <X11/extensions/xf86misc.h>
+.LP
+Bool XF86MiscQueryExtension(
+    Display *\fIdisplay\fP\^,
+    int *\fIevent_base_return\fP\^,
+    int *\fIerror_base_return\fP\^);
+.LP
+Bool XF86MiscQueryVersion(
+    Display *\fIdisplay\fP\^,
+    int *\fImajor_version_return\fP\^,
+    int *\fIminor_version_return\fP\^);
+.ig
+.LP
+Status XF86MiscGetSaver(
+    Display *\fIdisplay\fP\^,
+    int \fIscreen\fP\^,
+    int *\fIsuspend_time_return\fP\^,
+    int *\fIoff_time_return\fP\^);
+.LP
+Status XF86MiscSetSaver(
+    Display *\fIdisplay\fP\^,
+    int \fIscreen\fP\^,
+    int \fIsuspend_time\fP\^,
+    int \fIoff_time\fP\^);
+..
+.LP
+Status XF86MiscGetMouseSettings(
+    Display *\fIdisplay\fP\^,
+    XF86MiscMouseSettings *\fImseinfo\fP\^);
+.LP
+Status XF86MiscSetMouseSettings(
+    Display *\fIdisplay\fP\^,
+    XF86MiscMouseSettings *\fImseinfo\fP\^);
+.LP
+Status XF86MiscGetKbdSettings(
+    Display *\fIdisplay\fP\^,
+    XF86MiscKbdSettings *\fIkbdinfo\fP\^);
+.LP
+Status XF86MiscSetKbdSettings(
+    Display *\fIdisplay\fP\^,
+    XF86MiscKbdSettings *\fIkbdinfo\fP\^);
+.fi
+.SH ARGUMENTS
+.IP \fIdisplay\fP 2i
+Specifies the connection to the X server.
+.IP \fIscreen\fP 2i
+Specifies which screen number the setting apply to.
+.IP \fIevent_base_return\fP 2i
+Returns the base event number for the extension.
+.IP \fIerror_base_return\fP 2i
+Returns the base error number for the extension.
+.IP \fImajor_version_return\fP 2i
+Returns the major version number of the extension.
+.IP \fIminor_version_return\fP 2i
+Returns the minor version number of the extension.
+.ig
+.IP \fIsuspend_time_return\fP 2i
+Returns the number of seconds of idle time the server
+will wait before activating the monitor's suspend mode.
+.IP \fIoff_time_return\fP 2i
+Returns the number of seconds of idle time the server
+will wait before causing the monitor to powerdown.
+.IP \fIsuspend_time\fP 2i
+Specifies the number of seconds of idle time the server
+should wait before activating the monitor's suspend mode.
+.IP \fIoff_time\fP 2i
+Specifies the number of seconds of idle time the server
+should wait before causing the monitor to powerdown.
+..
+.IP \fImseinfo\fP 2i
+Specifies a structure which contains the mouse parameters.
+.IP \fIkbdinfo\fP 2i
+Specifies a structure which contains the keyboard parameters.
+.SH STRUCTURES
+.nf
+.ta 3i
+\fIMouse:\fP
+typedef struct {
+    char *device;      /\(** returned path to device */
+    int type;  /\(** mouse protocol */
+    int baudrate;      /\(** 1200, 2400, 4800, or 9600 */
+    int samplerate;    /\(** samples per second */
+    int resolution;    /\(** resolution, count per inch */
+    int buttons;       /\(** number of buttons */
+    Bool emulate3buttons;      /\(** Button1+Button3 -> Button2 ? */
+    int emulate3timeout;       /\(** in milliseconds */
+    Bool chordmiddle;  /\(** Button1+Button3 == Button2 ? */
+    int flags; /\(** Device open flags */
+} XF86MiscMouseSettings;
+.LP
+\fIKeyboard:\fP
+typedef struct {
+    int type;  /\(** of keyboard: 84-key, 101-key, Xqueue  */
+    int rate;  /\(** repeat rate */
+    int delay; /\(** delay until repeat starts */
+    Bool servnumlock;  /\(** Server handles NumLock ? */
+} XF86MiscKbdSettings;
+.fi
+.SH DESCRIPTION
+These functions provide an interface to the
+\fIXFree86-Misc\fP extension
+which allows various server settings to be
+queried and changed dynamically.
+Applications that use these functions must be linked with
+.ZN -lXxf86misc
+.SS "POWER-SAVER FUNCTIONS"
+The
+.ZN XF86MiscGetSaver
+and
+.ZN XF86MiscSetSaver
+functions have been removed.  This functionality is now provided by
+the DPMS extension.
+.SS "MOUSE FUNCTIONS"
+Mouse parameters can be queried using the function
+.ZN XF86MiscGetMouseSettings .
+The structure pointed to by its second argument is filled in
+with the current mouse settings.
+.PP
+Not all fields are valid in all cases.
+For example, when the protocol indicates a bus mouse (i.e. the
+type field has value
+.ZN MTYPE_BUSMOUSE
+as defined in
+.ZN xf86misc.h ),
+then the value in the
+.ZN baudrate
+field should be ignored as it does not apply to bus mice.
+.PP
+The
+.ZN samplerate
+field contains the resolution in lines per inch when
+using the Hitachi tablet protocol.
+.PP
+The device field of the structure points to dynamically
+allocated storage which should be freed by the caller.
+.PP
+Any of the fields of the structure can be altered and then passed
+to the
+.ZN XF86MiscSetMouseSettings
+function to change their value in the server,
+with the following restrictions:
+.RS 5
+.IP 1) 3
+The device can not be changed
+.IP 2) 3
+The protocol can not be changed to or from Xqueue or OsMouse
+.IP 3) 3
+The buttons field can not be changed 
+.IP 4) 3
+Invalid combinations of parameters are not allowed
+.RE
+.PP
+The server will generate an error if any of the above is attempted,
+except the first \- the contents of the device field are simply ignored.
+.PP
+A change of the protocol causes the device to be closed and reopened.
+Changes to the baud rate, sample rate, resolution or flags, 
+when applicable to the
+selected protocol, also cause a reopen of the device.
+A reopen can be forced by using the MF_REOPEN flag, except in the
+case of the OsMouse and Xqueue protocols which ignore all attempts
+to reopen the device.
+.SS "KEYBOARD FUNCTIONS"
+The
+.ZN XF86MiscGetKbdSettings
+function allows you to retrieve the current keyboard-related
+settings from the server.
+.PP
+Using the
+.ZN XF86MiscSetKbdSettings
+function, the keyboard autorepeat delay and rate can be set.
+Requests to change the
+.ZN type
+and
+.ZN servnumlock
+fields are ignored (except for checking for an invalid keyboard type).
+This is expected to change in a future release.
+.SS "OTHER FUNCTIONS"
+Two functions,
+.ZN XF86MiscQueryExtension
+and
+.ZN XF86MiscQueryVersion ,
+are provided which allow the client to query some information
+regarding the extension itself.
+.SH PREDEFINED VALUES
+The header file
+.ZN X11/extensions/xf86misc.h
+contains definitions for
+.IP \fBMTYPE_\fP* 1i
+Mouse protocols
+.IP \fBKTYPE_\fP* 1i
+Keyboard types
+.IP \fBMF_\fP* 1i
+Mouse flags
+.SH "SEE ALSO"
+xset(__appmansuffix__), __xconfigfile__(__filemansuffix__)
+.SH AUTHORS
+Joe Moss and David Dawes, The XFree86 Project, Inc.
+
diff --git a/packaging/libXxf86misc.spec b/packaging/libXxf86misc.spec
new file mode 100644 (file)
index 0000000..a70c7f4
--- /dev/null
@@ -0,0 +1,86 @@
+
+Name:       libXxf86misc
+Summary:    X11 XFree86 miscellaneous extension library
+Version:    1.0.2
+Release:    5
+Group:      System/Libraries
+License:    MIT
+URL:        http://www.x.org/
+Source0:    http://xorg.freedesktop.org/releases/individual/lib/%{name}-%{version}.tar.gz
+Requires(post): /sbin/ldconfig
+Requires(postun): /sbin/ldconfig
+BuildRequires:  pkgconfig(xorg-macros)
+BuildRequires:  pkgconfig(xproto)
+BuildRequires:  pkgconfig(xf86miscproto)
+BuildRequires:  pkgconfig(x11)
+BuildRequires:  pkgconfig(xext)
+BuildRequires:  pkgconfig(xextproto)
+
+
+%description
+X11 XFree86 miscellaneous extension library 
+libXxf86misc provides an interface to the XFree86-Misc extension, which allows client applications to query the current keyboard and mouse settings of the running XFree86-based (XFree86, Xorg) server.
+
+More information about X.Org can be found at:
+<URL:http://www.X.org>
+<URL:http://xorg.freedesktop.org>
+<URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+
+This module can be found at
+git://anongit.freedesktop.org/git/xorg/lib/libXxf86misc
+
+
+%package devel
+Summary:    X11 XFree86 miscellaneous extension library (development headers)
+Group:      Development/Libraries
+Requires:   %{name} = %{version}-%{release}
+
+%description devel
+X11 XFree86 miscellaneous extension library (development headers)
+libXxf86misc provides an interface to the XFree86-Misc extension, which allows client applications to query the current keyboard and mouse settings of the running XFree86-based (XFree86, Xorg) server.
+
+This package contains the development headers for the library found in libxxf86misc1.  Non-developers likely have little use for this package.
+
+More information about X.Org can be found at:
+<URL:http://www.X.org>
+<URL:http://xorg.freedesktop.org>
+<URL:http://lists.freedesktop.org/mailman/listinfo/xorg>
+
+This module can be found at
+git://anongit.freedesktop.org/git/xorg/lib/libXxf86misc
+
+
+%prep
+%setup -q
+
+
+%build
+
+%reconfigure --disable-static
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf %{buildroot}
+%make_install
+
+
+
+
+%post -p /sbin/ldconfig
+
+%postun -p /sbin/ldconfig
+
+
+
+%files
+%defattr(-,root,root,-)
+%{_libdir}/libXxf86misc.so.1
+%{_libdir}/libXxf86misc.so.1.1.0
+
+
+%files devel
+%defattr(-,root,root,-)
+%{_libdir}/libXxf86misc.so
+%{_libdir}/pkgconfig/xxf86misc.pc
+%doc %{_mandir}/man3/*.3*
+
diff --git a/src/Makefile.am b/src/Makefile.am
new file mode 100644 (file)
index 0000000..4f5b3f3
--- /dev/null
@@ -0,0 +1,7 @@
+lib_LTLIBRARIES = libXxf86misc.la
+
+libXxf86misc_la_SOURCES = XF86Misc.c
+
+AM_CFLAGS = $(CWARNFLAGS) $(XXF86MISC_CFLAGS) $(MALLOC_ZERO_CFLAGS)
+libXxf86misc_la_LIBADD = $(XXF86MISC_LIBS)
+libXxf86misc_la_LDFLAGS = -version-number 1:1:0
diff --git a/src/XF86Misc.c b/src/XF86Misc.c
new file mode 100644 (file)
index 0000000..193224f
--- /dev/null
@@ -0,0 +1,386 @@
+/* $XFree86: xc/lib/Xxf86misc/XF86Misc.c,v 3.12 2002/11/20 04:04:57 dawes Exp $ */
+
+/*
+ * Copyright (c) 1995, 1996  The XFree86 Project, Inc
+ */
+
+/* THIS IS NOT AN X CONSORTIUM STANDARD */
+
+#define NEED_EVENTS
+#define NEED_REPLIES
+#include <X11/Xlibint.h>
+#include <X11/extensions/xf86mscstr.h>
+#include <X11/extensions/Xext.h>
+#include <X11/extensions/extutil.h>
+
+static XExtensionInfo _xf86misc_info_data;
+static XExtensionInfo *xf86misc_info = &_xf86misc_info_data;
+static char *xf86misc_extension_name = XF86MISCNAME;
+
+#define XF86MiscCheckExtension(dpy,i,val) \
+  XextCheckExtension (dpy, i, xf86misc_extension_name, val)
+
+/*****************************************************************************
+ *                                                                           *
+ *                        private utility routines                          *
+ *                                                                           *
+ *****************************************************************************/
+
+static int close_display(Display *dpy, XExtCodes *codes);
+
+static /* const */ XExtensionHooks xf86misc_extension_hooks = {
+    NULL,                              /* create_gc */
+    NULL,                              /* copy_gc */
+    NULL,                              /* flush_gc */
+    NULL,                              /* free_gc */
+    NULL,                              /* create_font */
+    NULL,                              /* free_font */
+    close_display,                     /* close_display */
+    NULL,                              /* wire_to_event */
+    NULL,                              /* event_to_wire */
+    NULL,                              /* error */
+    NULL,                              /* error_string */
+};
+
+static XEXT_GENERATE_FIND_DISPLAY (find_display, xf86misc_info, 
+                                  xf86misc_extension_name, 
+                                  &xf86misc_extension_hooks, 
+                                  0, NULL)
+
+static XEXT_GENERATE_CLOSE_DISPLAY (close_display, xf86misc_info)
+
+
+/*****************************************************************************
+ *                                                                           *
+ *                 public XFree86-Misc Extension routines                *
+ *                                                                           *
+ *****************************************************************************/
+
+Bool XF86MiscQueryExtension (Display *dpy, int *event_basep, int *error_basep)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+
+    if (XextHasExtension(info)) {
+       *event_basep = info->codes->first_event;
+       *error_basep = info->codes->first_error;
+       return True;
+    } else {
+       return False;
+    }
+}
+
+Bool XF86MiscQueryVersion(Display* dpy, int* majorVersion, int* minorVersion)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscQueryVersionReply rep;
+    xXF86MiscQueryVersionReq *req;
+
+    XF86MiscCheckExtension (dpy, info, False);
+    LockDisplay(dpy);
+    GetReq(XF86MiscQueryVersion, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscQueryVersion;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+       UnlockDisplay(dpy);
+       SyncHandle();
+       return False;
+    }
+    *majorVersion = rep.majorVersion;
+    *minorVersion = rep.minorVersion;
+    UnlockDisplay(dpy);
+    SyncHandle();
+    if (*majorVersion > 0 || *minorVersion > 5)
+       XF86MiscSetClientVersion(dpy);
+    
+    return True;
+}
+
+Bool
+XF86MiscSetClientVersion(Display *dpy)
+{
+    XExtDisplayInfo *info = find_display(dpy);
+    xXF86MiscSetClientVersionReq *req;
+
+    XF86MiscCheckExtension(dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscSetClientVersion, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscSetClientVersion;
+    req->major = XF86MISC_MAJOR_VERSION;
+    req->minor = XF86MISC_MINOR_VERSION;
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return True;
+}
+
+Bool XF86MiscGetMouseSettings(Display* dpy, XF86MiscMouseSettings *mouseinfo)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscGetMouseSettingsReply rep;
+    xXF86MiscGetMouseSettingsReq *req;
+
+    XF86MiscCheckExtension (dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscGetMouseSettings, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscGetMouseSettings;
+    if (!_XReply(dpy, (xReply *)&rep,
+               (SIZEOF(xXF86MiscGetMouseSettingsReply) - SIZEOF(xReply))>>2,
+               xFalse)) {
+       UnlockDisplay(dpy);
+       SyncHandle();
+       return False;
+    }
+
+    mouseinfo->type = rep.mousetype;
+    mouseinfo->baudrate = rep.baudrate;
+    mouseinfo->samplerate = rep.samplerate;
+    mouseinfo->resolution = rep.resolution;
+    mouseinfo->buttons = rep.buttons;
+    mouseinfo->emulate3buttons = rep.emulate3buttons;
+    mouseinfo->emulate3timeout = rep.emulate3timeout;
+    mouseinfo->chordmiddle = rep.chordmiddle;
+    mouseinfo->flags = rep.flags;
+    if (rep.devnamelen > 0) {
+        if (!(mouseinfo->device = Xcalloc(rep.devnamelen + 1, 1))) {
+            _XEatData(dpy, (rep.devnamelen+3) & ~3);
+            Xfree(mouseinfo->device);
+            return False;
+        }
+        _XReadPad(dpy, mouseinfo->device, rep.devnamelen);
+    } else
+       mouseinfo->device = NULL;
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return True;
+}
+
+Bool XF86MiscGetKbdSettings(Display* dpy, XF86MiscKbdSettings *kbdinfo)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscGetKbdSettingsReply rep;
+    xXF86MiscGetKbdSettingsReq *req;
+
+    XF86MiscCheckExtension (dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscGetKbdSettings, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscGetKbdSettings;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+       UnlockDisplay(dpy);
+       SyncHandle();
+       return False;
+    }
+
+    kbdinfo->type = rep.kbdtype;
+    kbdinfo->rate = rep.rate;
+    kbdinfo->delay = rep.delay;
+    kbdinfo->servnumlock = rep.servnumlock;
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return True;
+}
+
+Bool XF86MiscSetMouseSettings(Display* dpy, XF86MiscMouseSettings *mouseinfo)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscSetMouseSettingsReq *req;
+    int majorVersion, minorVersion;
+    
+    XF86MiscCheckExtension (dpy, info, False);
+    XF86MiscQueryVersion(dpy, &majorVersion, &minorVersion);
+    
+    LockDisplay(dpy);
+    GetReq(XF86MiscSetMouseSettings, req);
+    
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscSetMouseSettings;
+    req->mousetype = mouseinfo->type;
+    req->baudrate = mouseinfo->baudrate;
+    req->samplerate = mouseinfo->samplerate;
+    req->resolution = mouseinfo->resolution;
+    req->buttons = mouseinfo->buttons;
+    req->emulate3buttons = mouseinfo->emulate3buttons;
+    req->emulate3timeout = mouseinfo->emulate3timeout;
+    req->chordmiddle = mouseinfo->chordmiddle;
+    req->flags = mouseinfo->flags;
+    if (majorVersion > 0 || minorVersion > 5) {
+       int len;
+       if ((len = strlen(mouseinfo->device))) {
+       req->devnamelen =  len + 1;
+       len = (req->devnamelen + 3) >> 2;
+       SetReqLen(req,len,len);
+       Data(dpy, mouseinfo->device, req->devnamelen);
+       }
+    }
+       
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return True;
+}
+
+Bool XF86MiscSetKbdSettings(Display* dpy, XF86MiscKbdSettings *kbdinfo)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscSetKbdSettingsReq *req;
+
+    XF86MiscCheckExtension (dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscSetKbdSettings, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscSetKbdSettings;
+    req->kbdtype = kbdinfo->type;
+    req->rate = kbdinfo->rate;
+    req->delay = kbdinfo->delay;
+    req->servnumlock = kbdinfo->servnumlock;
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return True;
+}
+
+int XF86MiscSetGrabKeysState(Display* dpy, Bool enable)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscSetGrabKeysStateReply rep;
+    xXF86MiscSetGrabKeysStateReq *req;
+
+    XF86MiscCheckExtension (dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscSetGrabKeysState, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscSetGrabKeysState;
+    req->enable = enable;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+       UnlockDisplay(dpy);
+       SyncHandle();
+       return 0;
+    }
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return rep.status;
+}
+
+Bool XF86MiscGetFilePaths(Display* dpy, XF86MiscFilePaths *filpaths)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscGetFilePathsReply rep;
+    xXF86MiscGetFilePathsReq *req;
+
+    XF86MiscCheckExtension (dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscGetFilePaths, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscGetFilePaths;
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+       UnlockDisplay(dpy);
+       SyncHandle();
+       return False;
+    }
+
+    if (rep.configlen) {
+        if (!(filpaths->configfile = Xcalloc(rep.configlen + 1, 1))) {
+            _XEatData(dpy, ((rep.configlen+3) & ~3) + ((rep.modulelen+3) & ~3)
+                           + ((rep.loglen+3) & ~3));
+            return False;
+        }
+    }
+
+    if (rep.modulelen) {
+        if (!(filpaths->modulepath = Xcalloc(rep.modulelen + 1, 1))) {
+            _XEatData(dpy, ((rep.configlen+3) & ~3) + ((rep.modulelen+3) & ~3)
+                           + ((rep.loglen+3) & ~3));
+            if (filpaths->configfile)
+                   Xfree(filpaths->configfile);
+            return False;
+        }
+    }
+
+    if (rep.loglen) {
+        if (!(filpaths->logfile = Xcalloc(rep.loglen + 1, 1))) {
+            _XEatData(dpy, ((rep.configlen+3) & ~3) + ((rep.modulelen+3) & ~3)
+                           + ((rep.loglen+3) & ~3));
+            if (filpaths->configfile)
+                   Xfree(filpaths->configfile);
+            if (filpaths->modulepath)
+                   Xfree(filpaths->modulepath);
+            return False;
+        }
+    }
+
+    if (rep.configlen)
+        _XReadPad(dpy, filpaths->configfile, rep.configlen);
+    else
+       filpaths->configfile = "";
+
+    if (rep.modulelen)
+        _XReadPad(dpy, filpaths->modulepath, rep.modulelen);
+    else
+       filpaths->modulepath = "";
+
+    if (rep.loglen)
+        _XReadPad(dpy, filpaths->logfile, rep.loglen);
+    else
+       filpaths->logfile = "";
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return True;
+}
+
+Status XF86MiscPassMessage(Display* dpy, int screen,
+                          const char* msgtype, const char* msgval,
+                          char** retmsg)
+{
+    XExtDisplayInfo *info = find_display (dpy);
+    xXF86MiscPassMessageReply rep;
+    xXF86MiscPassMessageReq *req;
+    int len;
+
+    XF86MiscCheckExtension (dpy, info, False);
+
+    LockDisplay(dpy);
+    GetReq(XF86MiscPassMessage, req);
+    req->reqType = info->codes->major_opcode;
+    req->xf86miscReqType = X_XF86MiscPassMessage;
+    req->screen = screen;
+    if ((len = strlen(msgtype))) {
+       req->typelen =  len + 1;
+       len = (req->typelen + 3) >> 2;
+       SetReqLen(req,len,len);
+       Data(dpy, msgtype, req->typelen);
+    }
+    if ((len = strlen(msgval))) {
+       req->vallen =  len + 1;
+       len = (req->vallen + 3) >> 2;
+       SetReqLen(req,len,len);
+       Data(dpy, msgval, req->vallen);
+    }
+    if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
+       UnlockDisplay(dpy);
+       SyncHandle();
+       return BadImplementation;
+    }
+
+    if (rep.mesglen) {
+        if (!(*retmsg = Xcalloc(rep.mesglen + 1, 1))) {
+            _XEatData(dpy, ((rep.mesglen+3) & ~3));
+            return BadAlloc;
+        }
+        _XReadPad(dpy, *retmsg, rep.mesglen);
+    }
+
+    UnlockDisplay(dpy);
+    SyncHandle();
+    return rep.status;
+}
+
diff --git a/xxf86misc.pc.in b/xxf86misc.pc.in
new file mode 100644 (file)
index 0000000..57b86af
--- /dev/null
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: Xxf86misc
+Description: XFree86 Misc Extension Library
+Version: @VERSION@
+Requires: xf86miscproto
+Requires.private: x11 xext
+Cflags: -I${includedir}
+Libs: -L${libdir} -lXxf86misc