+commit 2a9eaf3305d1577ad763d56dddd46e10f8d0676b
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Wed Mar 7 18:54:15 2012 -0800
+
+ libXcursor 1.1.13
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 8229cf75b34c2991eaf973f05326be9bfa16ef0c
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 24 13:10:15 2011 -0800
+
+ XcursorImageLoadCursor: return failure if _XcursorGetDisplayInfo fails
+
+ Error: Null pointer dereference (CWE 476)
+ Read from null pointer 'info'
+ at line 615 of src/cursor.c in function 'XcursorImageLoadCursor'.
+ Function '_XcursorGetDisplayInfo' may return constant 'NULL' at line 134, called at line 597.
+ Null pointer introduced at line 134 of src/display.c in function '_XcursorGetDisplayInfo'.
+
+ [ This bug was found by the Parfait 0.3.7 bug checking tool.
+ For more information see http://labs.oracle.com/projects/parfait/ ]
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit 2b8d373bddf427bcd95e2595cb64740ebd1d0d30
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Thu Nov 24 12:59:56 2011 -0800
+
+ XcursorFileSaveImages: plug memory leak on invalid input
+
+ Error: Memory leak (CWE 401)
+ Memory leak of pointer 'comments' allocated with XcursorCommentsCreate(0)
+ at line 982 of src/file.c in function 'XcursorFileSaveImages'.
+ 'comments' allocated at line 978 with XcursorCommentsCreate(0).
+ comments leaks when comments != 0 at line 981.
+
+ [ This bug was found by the Parfait 0.3.7 bug checking tool.
+ For more information see http://labs.oracle.com/projects/parfait/ ]
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit bcfb8e8ce56cf47bc6a61bd8c896bafba9e2a9c2
+Author: Jon TURNEY <jon.turney@dronecode.org.uk>
+Date: Thu Sep 22 14:43:38 2011 +0100
+
+ Add generated Xcursor.h to .gitignore
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+ Tested-by: Gaetan Nadon <memsize@videotron.ca>
+ Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 862b9ce4aa819bf87b6e24db9d7d5867cbaa577c
+Author: Jon TURNEY <jon.turney@dronecode.org.uk>
+Date: Wed Sep 21 20:50:46 2011 +0100
+
+ Fix install of generated Xcursor.h when builddir != srcdir
+
+ Signed-off-by: Jon TURNEY <jon.turney@dronecode.org.uk>
+ Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+ Tested-by: Gaetan Nadon <memsize@videotron.ca>
+ Reviewed-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 334dc4f4df69d780f312f23b860df11bee5e9009
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Sep 16 21:41:41 2011 -0700
+
+ Set Xcursor.h version numbers from configure.ac
+
+ Based on similar commit dac73a519816 to libXft
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+ Reviewed-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit e086eb1bf49f2a8c270eaebd5beb595c1dc2973e
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Fri Sep 16 21:26:17 2011 -0700
+
+ Strip trailing whitespace
+
+ Performed with: find * -type f | xargs perl -i -p -e 's{\s+$}{\n}'
+ git diff -w & git diff -b show no diffs from this change
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit d79ddc01e4b247ae95af3581b93aef2b93e76888
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Wed Jun 29 21:41:09 2011 -0700
+
+ libXcursor 1.1.12
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 4ce23fcd978ed389ea30315c0e02629a31bda265
+Author: Alan Coopersmith <alan.coopersmith@oracle.com>
+Date: Sun May 22 12:55:31 2011 -0700
+
+ Mark bitmasks as unsigned ints
+
+ Clears Sun compiler warnings from shifting 8 bits by 24 bits:
+ "cursor.c", line 215: warning: integer overflow detected: op "<<"
+ "cursor.c", line 280: warning: integer overflow detected: op "<<"
+
+ Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
+
+commit 047993c76a677ca12a2b575990b99e3ddbc0dd58
+Author: Jeremy Huddleston <jeremyhu@apple.com>
+Date: Sat May 7 10:16:18 2011 -0700
+
+ Correct error handling in _XcursorAverageColor
+
+ Previously it would either div-zero or get stuck in a loop until int overflow
+ if called with a bad value.
+
+ cursor.c:214:32: warning: Division by zero
+ return (0xff << 24) | ((red/npixels) << 16) | ((green/npixels) << 8) | (blue/npixels);
+
+ Found-by: clang static analyzer
+ Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
+
+commit bee68e54e5c3a4b9f46c81366a720531e3e07a82
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 1 12:16:23 2011 +0100
+
+ Free the FontInfo structure after loading the cursor from it.
+
+ References: https://bugs.freedesktop.org/show_bug.cgi?id=2731
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit f49e7e1608f2dac140f60bcae21d5c37f79fc41b
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 1 12:15:46 2011 +0100
+
+ Free the partial header after failing to open the cursor.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit 073eb2c56f4794275eee40a825dbfe1232bb2690
+Author: Chris Wilson <chris@chris-wilson.co.uk>
+Date: Fri Apr 1 12:14:51 2011 +0100
+
+ Free list on shutdown.
+
+ We freed the parent structure without freeing the list contained within,
+ making valgrind unhappy.
+
+ Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
+
+commit de50317ec4e0e8da7de84e85d1f7a6d2e184d58b
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Feb 2 17:08:19 2011 -0500
+
+ config: perform XCURSORPATH formatting in man/Makefile.am
+
+ We can skip the extra step of using XCURSORPATH_LIST in configure.ac.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit a929c3621b9da8e56ce1223afd3e487fc488fa47
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Wed Feb 2 11:43:41 2011 -0500
+
+ config: comment, minor upgrade, quote and layout configure.ac
+
+ Group statements per section as per Autoconf standard layout
+ Quote statements where appropriate.
+ Autoconf recommends not using dnl instead of # for comments
+
+ Use AC_CONFIG_FILES to replace the deprecated AC_OUTPUT with parameters.
+
+ This helps automated maintenance and release activities.
+ Details can be found in http://wiki.x.org/wiki/NewModuleGuidelines
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 96c5877fd7ebc59569f140d9e2cb30fdb8371ef1
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Fri Jan 28 19:41:37 2011 -0500
+
+ config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit 4f7a749fcb7a8e93d40a7621fa1c159e003b2f5c
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Fri Jan 28 16:07:07 2011 -0500
+
+ config: replace deprecated AC_HELP_STRING with AS_HELP_STRING
+
+ This silences an Automake warning.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
+commit c38adc6bf116146fa1e291b9f4deed45497e5c2e
+Author: Gaetan Nadon <memsize@videotron.ca>
+Date: Thu Jan 27 18:50:14 2011 -0500
+
+ config: remove AC_PROG_CC as it overrides AC_PROG_C_C99
+
+ XORG_STRICT_OPTION from XORG_DEFAULT_OPTIONS calls
+ AC_PROG_C_C99. This sets gcc with -std=gnu99.
+ If AC_PROG_CC macro is called afterwards, it resets CC to gcc.
+
+ Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
+
commit 731e84d79e83b59d022d0f453b245696b4d2750f
Author: Alan Coopersmith <alan.coopersmith@oracle.com>
Date: Wed Oct 27 22:48:19 2010 -0700
-#
+#
# Copyright © 2003 Keith Packard, Noah Levitt
-#
+#
# 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
# specific, written prior permission. Keith Packard makes no
# representations about the suitability of this software for any purpose. It
# is provided "as is" without express or implied warranty.
-#
+#
# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+++ /dev/null
-#! /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 "$@"
-dnl
-dnl Copyright © 2003 Keith Packard
-dnl
-dnl Permission to use, copy, modify, distribute, and sell this software and its
-dnl documentation for any purpose is hereby granted without fee, provided that
-dnl the above copyright notice appear in all copies and that both that
-dnl copyright notice and this permission notice appear in supporting
-dnl documentation, and that the name of Keith Packard not be used in
-dnl advertising or publicity pertaining to distribution of the software without
-dnl specific, written prior permission. Keith Packard makes no
-dnl representations about the suitability of this software for any purpose. It
-dnl is provided "as is" without express or implied warranty.
-dnl
-dnl KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
-dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
-dnl EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
-dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
-dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
-dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
-dnl PERFORMANCE OF THIS SOFTWARE.
-dnl
-dnl Process this file with autoconf to create configure.
+#
+# Copyright © 2003 Keith Packard
+#
+# 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, and that the name of Keith Packard not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Keith Packard makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+# DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+# TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+# PERFORMANCE OF THIS SOFTWARE.
+#
+# Initialize Autoconf
AC_PREREQ([2.60])
-dnl
-dnl This is the package version number, not the shared library
-dnl version. This same version number must appear in Xcursor.h
-dnl Yes, it is a pain to synchronize version numbers. Unfortunately, it's
-dnl not possible to extract the version number here from Xcursor.h
-dnl
-AC_INIT([libXcursor], [1.1.11],
+#
+# This is the package version number, not the shared library
+# version. This version number will be substituted into Xcursor.h
+#
+AC_INIT([libXcursor], [1.1.13],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],[libXcursor])
-AM_INIT_AUTOMAKE([foreign dist-bzip2])
AC_CONFIG_SRCDIR([Makefile.am])
+AC_CONFIG_HEADERS([config.h include/X11/Xcursor/Xcursor.h])
+
+# Initialize Automake
+AM_INIT_AUTOMAKE([foreign dist-bzip2])
AM_MAINTAINER_MODE
-AM_CONFIG_HEADER(config.h)
+
+# Initialize libtool
+AC_PROG_LIBTOOL
# Require X.Org macros 1.8 or later for MAN_SUBSTS set by XORG_MANPAGE_SECTIONS
m4_ifndef([XORG_MACROS_VERSION],
XORG_MACROS_VERSION(1.8)
XORG_DEFAULT_OPTIONS
-# Check for progs
-AC_PROG_CC
-AC_PROG_LIBTOOL
+# Set library version for Xcursor.h from package version set in AC_INIT
+# copied from PACKAGE_VERSION_* settings in XORG_VERSION
+AC_DEFINE_UNQUOTED([XCURSOR_LIB_MAJOR],
+ [`echo $PACKAGE_VERSION | cut -d . -f 1`],
+ [Major version of libXcursor])
+AC_DEFINE_UNQUOTED([XCURSOR_LIB_MINOR],
+ [`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1`],
+ [Minor version of libXcursor])
+AC_DEFINE_UNQUOTED([XCURSOR_LIB_REVISION],
+ [`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1`],
+ [Micro revision of libXcursor])
+
AC_ARG_WITH(icondir,
- AC_HELP_STRING([--with-icondir=<path>],
+ AS_HELP_STRING([--with-icondir=<path>],
[Set default icon directory (default: ${datadir}/icons)]),
[ICONDIR="$withval"],
[ICONDIR=${datadir}/icons])
DEF_CURSORPATH="${DEF_CURSORPATH}:${ICONDIR}"
fi
AC_ARG_WITH(cursorpath,
- AC_HELP_STRING([--with-cursorpath=<paths>],
+ AS_HELP_STRING([--with-cursorpath=<paths>],
[Set default search path for cursors]),
[XCURSORPATH="$withval"],
[XCURSORPATH=$DEF_CURSORPATH])
AC_SUBST([XCURSORPATH])
-# Reformat cursor path for man page
-XCURSORPATH_LIST=`echo $XCURSORPATH | sed 's/:/, /g'`
-AC_SUBST([XCURSORPATH_LIST])
-
-# Check for X
+# Obtain compiler/linker options for depedencies
PKG_CHECK_MODULES(XCURSOR, xrender >= 0.8.2 xfixes x11 fixesproto)
AC_DEFINE(HAVE_XFIXES, 1, [Define to 1 if you have Xfixes])
-dnl Allow checking code with lint, sparse, etc.
+# Allow checking code with lint, sparse, etc.
XORG_WITH_LINT
-AC_OUTPUT([Makefile
- src/Makefile
- man/Makefile
- xcursor.pc])
+AC_CONFIG_FILES([Makefile
+ src/Makefile
+ man/Makefile
+ xcursor.pc])
+AC_OUTPUT
+++ /dev/null
-------------------------------------------------------
-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.
+++ /dev/null
-libxcursor (1:1.1.11-1slp2) unstable; urgency=low
-
- * [X11R7.6] upgrade package
- * Git: 165.213.180.234:slp/pkgs/xorg/lib/libxcursor
- * Tag: libxcursor_1.1.11-1slp2
-
- -- SooChan Lim <sc1.lim@samsung.com> Tue, 04 Jan 2011 10:44:23 +0900
-
-libxcursor (1:1.1.10-2) unstable; 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 ]
- * Add udeb needed for the graphical installer: libxcursor1-udeb.
- * Version/Bump some B-D to make sure the udeb gets its dependencies on
- the (recently-added) udebs rather than on the libraries:
- - libx11-dev
- - libxfixes-dev
- - libxrender-dev
- * Bump Standards-Version from 3.8.3 to 3.8.4 (no changes needed).
- * Add myself to Uploaders.
- * Add ${misc:Depends} to non-udeb binaries, and wrap Depends.
-
- -- Cyril Brulebois <kibi@debian.org> Thu, 11 Mar 2010 05:05:33 +0100
-
-libxcursor (1:1.1.10-1) unstable; urgency=low
-
- [ Julien Cristau ]
- * Drop the -1 debian revisions from build-depends.
- * Bump Standards-Version to 3.7.3.
- * Drop the XS- prefix from Vcs-* control fields.
- * Remove /usr/X11R6/lib/X11/icons from the cursor path (closes: #557292).
- * Kill vim modeline from debian changelog, it makes lintian angry.
-
- [ Brice Goglin ]
- * Add README.source, bump Standards-Version to 3.8.2.
- * Use updated xsfbs, closes: #538582.
- * Move -dbg package to section debug.
-
- [ Timo Aaltonen ]
- * New upstream release (closes: #554238).
- * Run autoreconf on build. Add build-deps on automake, libtool
- and xutils-dev.
- * Parse space-separated DEB_BUILD_OPTIONS, and handle parallel=N.
- * Bump Standards-Version to 3.8.3.
- * Drop pre-dependency on x11-common from libxcursor-dev. This was needed
- for upgrades from sarge.
-
- -- Julien Cristau <jcristau@debian.org> Wed, 25 Nov 2009 15:30:10 +0100
-
-libxcursor (1:1.1.9-1) unstable; urgency=low
-
- * New upstream release.
- * Update URL in debian/copyright.
- * Add myself to Uploaders, and remove ISHIKAWA Mutsumi and Branden.
- * Replace deprecated Source-Version with binary:Version.
-
- -- Julien Cristau <jcristau@debian.org> Sat, 25 Aug 2007 11:37:23 +0200
-
-libxcursor (1:1.1.8-2) unstable; urgency=low
-
- * Upload to unstable.
- * Add XS-Vcs-Browser to debian/control.
-
- -- Julien Cristau <jcristau@debian.org> Wed, 11 Apr 2007 12:39:57 +0200
-
-libxcursor (1:1.1.8-1) experimental; urgency=low
-
- * New upstream release.
- + drop patch applied upstream.
- * Add XS-Vcs-Git in debian/control.
-
- -- Julien Cristau <jcristau@debian.org> Tue, 13 Feb 2007 10:07:38 +0100
-
-libxcursor (1.1.7-4) unstable; urgency=low
-
- * Pull leak fixes from upstream (01_leak_fixes.diff)
-
- -- David Nusinow <dnusinow@debian.org> Wed, 30 Aug 2006 16:41:34 -0400
-
-libxcursor (1.1.7-3) unstable; urgency=low
-
- * Recompile for unstable's libxfixes3 3.0.1.
-
- -- Drew Parsons <dparsons@debian.org> Sat, 26 Aug 2006 09:31:19 +1000
-
-libxcursor (1.1.7-2) unstable; urgency=low
-
- * Bring X11R7.1 into unstable.
-
- -- Drew Parsons <dparsons@debian.org> Sat, 26 Aug 2006 09:17:06 +1000
-
-libxcursor (1.1.7-1) experimental; urgency=low
-
- * New upstream version (X11R7.1).
- * Install man pages with dh_installman.
- * Exclude .la and man files from dh_install.
- * Remove libxcursor1-dbg.install. Somehow debhelper just knows where
- to put the files (ooh, spooky).
-
- -- Drew Parsons <dparsons@debian.org> Sat, 12 Aug 2006 22:39:03 +1000
-
-libxcursor (1.1.5.2-6) UNRELEASED; urgency=low
-
- * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build;
- idempotency fix.
- * Run dh_install w/ --list-missing.
- * 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.
- * Remove daniels from uploaders.
-
- -- Andres Salomon <dilinger@debian.org> Mon, 17 Jul 2006 01:20:47 -0400
-
-libxcursor (1.1.5.2-5) unstable; urgency=low
-
- * Reorder makeshlib command in rules file so that ldconfig is run
- properly. Thanks Drew Parsons and Steve Langasek.
-
- -- David Nusinow <dnusinow@debian.org> Wed, 19 Apr 2006 00:06:24 -0400
-
-libxcursor (1.1.5.2-4) UNRELEASED; urgency=low
-
- * Append /usr/X11R6/lib/X11/icons to the icon search path for
- backwards compatibility.
-
- -- Steve Langasek <vorlon@debian.org> Tue, 18 Apr 2006 16:27:59 -0700
-
-libxcursor (1.1.5.2-3) unstable; urgency=low
-
- * Add libxfixes-dev to the depends of libxcursor-dev
-
- -- David Nusinow <dnusinow@debian.org> Wed, 12 Apr 2006 20:52:24 -0400
-
-libxcursor (1.1.5.2-2) unstable; urgency=low
-
- * Upload to unstable
-
- -- David Nusinow <dnusinow@debian.org> Thu, 23 Mar 2006 22:44:31 -0500
-
-libxcursor (1.1.5.2-1) experimental; urgency=low
-
- * First upload to Debian
-
- -- David Nusinow <dnusinow@debian.org> Mon, 23 Jan 2006 22:43:51 -0500
-
-libxcursor (1.1.5.2-0ubuntu2) dapper; urgency=low
-
- * Change dependency on x-common to x11-common.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Thu, 19 Jan 2006 18:24:22 +1100
-
-libxcursor (1.1.5.2-0ubuntu1) dapper; urgency=low
-
- * New upstream release.
- * Repackage in line with all the other X libraries.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Mon, 12 Dec 2005 15:14:52 +1100
-
-xcursor (1.1.5-0ubuntu1) breezy; urgency=low
-
- * New upstream release.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Wed, 16 Nov 2005 10:09:16 +1100
-
-xcursor (1.1.4-0ubuntu5) breezy; urgency=low
-
- * Bump Build-Depends on x11proto-core-dev, libx11-dev and libxfixes-dev
- high enough that we don't see _XOPEN_SOURCE again.
- * Remove libc6-dev | libc-dev dependency from libxcursor-dev (???), change
- x-dev to x11proto-core-dev.
- * Stop installing libXcursor.la.
- * Clean up libxcursor-dev.install.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Fri, 22 Jul 2005 23:48:13 +1000
-
-xcursor (1.1.4-0ubuntu4) breezy; urgency=low
-
- * Make the xrender build-dep versioned, to rid us of libXrender.la.
-
- -- Adam Conrad <adconrad@ubuntu.com> Tue, 19 Jul 2005 14:54:02 +1000
-
-xcursor (1.1.4-0ubuntu3) breezy; urgency=low
-
- * Rebuild with the current libXrender.
-
- -- Sebastien Bacher <seb128@canonical.com> Fri, 15 Jul 2005 15:52:32 +0200
-
-xcursor (1.1.4-0ubuntu2) breezy; urgency=low
-
- * Add missing build-deps on libxfixes-dev and make it correctly
- versioned so we will have the xfixes.pc file in the correct place.
-
- -- Tollef Fog Heen <tfheen@canonical.com> Thu, 30 Jun 2005 16:54:15 +0200
-
-xcursor (1.1.4-0ubuntu1) breezy; urgency=low
-
- * New upstream release.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Thu, 30 Jun 2005 04:36:17 +1000
-
-xcursor (1.1.3-1ubuntu2) breezy; urgency=low
-
- * Add Pre-Depends on x-common to libxcursor-dev to avoid files getting stuck
- in /usr/X11R6 thanks to symlink treachery.
-
- -- Daniel Stone <daniel.stone@ubuntu.com> Thu, 19 May 2005 00:50:18 +1000
-
-xcursor (1.1.3-1ubuntu1) breezy; urgency=low
-
- * Move files from /usr/X11R6 to /usr.
-
- -- Fabio M. Di Nitto <fabbione@ubuntu.com> Tue, 17 May 2005 19:20:26 +0200
-
-xcursor (1.1.3-1) unstable; urgency=medium
-
- * Urgency due to fix for release-critical bug.
-
- * New upstream version.
- + Invokes AC_SUBST() on X_CFLAGS and X_LIBS, unbreaking xcursor.pc file.
- (Closes: #241249)
-
- * Add versioning to libxcursor1's shlibs information, since Xcursor 1.1.2
- added a member to the XcursorImages structure and added the
- XcursorImagesSetName() and XcursorLibraryPath() functions.
-
- * Disable upstream autoconf check for the XFIXES library, as this library is
- not packaged for Debian yet, and upstream supports no option to the
- configure script to avoid checking (neverthless, the source is designed to
- be buildable without it). Regenerate related files with autogen.sh
- script.
-
- * Modify AC_PATH_XTRA invocation to take advantage of Debian's enhancements
- (from autoconf 2.59-3); don't use the macro's defaults, which look for the
- Xt library which we don't use. Instead search for the X11 library, the
- Xlib.h header file, and the XInternAtom() function, all of which are
- actually used by the Xcursor library. Regenerate related files with the
- autogen.sh script.
-
- * Update config.guess, config.sub, and ltmain.sh with libtoolize --force
- --copy.
-
- * Update package descriptions.
-
- -- Branden Robinson <branden@debian.org> Mon, 19 Apr 2004 15:39:41 -0500
-
-xcursor (1.0.2-5) unstable; urgency=low
-
- * Make package compatible with the XFree86 4.3.0 package reorganization.
- - debian/control
- + package build-depends on x-dev and libx11-dev instead of xlibs-dev
- + libxcursor-dev depends on x-dev and libx11-dev instead of xlibs-dev
-
- * Remove README.Debian; the release of xfree86 4.3.0-1 to unstable renders
- advice about installing these xcursor packages in conjunction with
- experimental XFree86 4.3.0 packages unecessary.
- - debian/README.Debian
-
- * Give source package a section ("devel", just like xft) to shut up
- complaints from dpkg-genchanges.
- - debian/control
-
- * Remove AC_PATH_X and subsequent bailout logic from configure.ac; the
- mechanism used to find the Xrender suffices to configure the build
- environment. Run aclocal && automake --foreign && autoconf.
- - configure
- - Makefile.in
- - config.h.in
- - configure.ac
- - aclocal.m4
-
- -- Branden Robinson <branden@debian.org> Fri, 12 Mar 2004 12:51:55 -0500
-
-xcursor (1.0.2-4) unstable; urgency=medium
-
- * urgency due to fix for FTBFS
-
- * Set priority of libxcursor1-dbg package to extra (resolves override
- disparity).
- - debian/control
-
- * Restore build-dependency on pkg-config; AM_MAINTAINER_MODE doesn't prevent
- the ./configure script from running during a package build, and the
- ./configure script does indeed invoke pkg-config (fixes FTBFS).
- (Closes: #225433)
- - debian/control
-
- -- Branden Robinson <branden@debian.org> Tue, 30 Dec 2003 11:46:15 -0500
-
-xcursor (1.0.2-3) unstable; urgency=low
-
- * Update copyright file to refer to new canonical upstream URL for source
- archive.
- - debian/copyright
-
- * Elaborate and clarify README.Debian as regards Daniel Stone's experimental
- xfree86 packages.
- - debian/README.Debian
-
- * Set AM_MAINTAINER_MODE because we do not want automake running during
- Debian package builds.
- - configure.ac
-
- * Run aclocal && automake --foreign && autoconf to resynchronize with
- change to configure.ac.
- - Makefile.in
- - aclocal.m4
- - configure
-
- * Stop passing arguments to dh_makeshlibs; there has not yet been a version
- of xcursor released to Debian that has not been forwards-compatible.
- - debian/rules
-
- * Bump package's standards-version to 3.6.1; no changes necessary.
- - debian/control
-
- * Clean up package's build-dependencies and -dev package's dependencies.
- - debian/control:
- + add versioning of (>= 0.4.12) to build-dependency on cdbs for proper
- support of debugging libraries
- + tweak versioned build-dependency on debhelper (>> 4.0.0) to be a >=
- instead
- + drop versioning of build-dependency on xlibs-dev; libXcursor1 links
- only against libX11, thus no versioning is necessary
- + drop build-dependencies on autotools-dev and pkg-config since we now
- use AM_MAINTAINER_MODE
- + drop libxcursor-dev's dependency on ${shlibs:Depends}; it's not
- necessary
- + add dependencies on xlibs-dev and libxrender-dev to libxcursor-dev
-
- * Remove extraneous and possibly misleading wording in libxcursor1-dbg's
- extended description.
- - debian/control
-
- * Add Daniel Stone to list of uploaders.
- - debian/control
-
- -- Branden Robinson <branden@debian.org> Mon, 13 Oct 2003 00:12:31 -0500
-
-xcursor (1.0.2-2) unstable; urgency=low
-
- * add missing Build-Depends: pkg-config, closes: #198584
-
- -- ISHIKAWA Mutsumi <ishikawa@debian.org> Tue, 24 Jun 2003 16:05:57 +0900
-
-xcursor (1.0.2-1) unstable; urgency=low
-
- * I'm back and Initial official upload release.
- * libraries moved into /usr/lib/{,debug} instead of
- /usr/X11R6/lib/{,debug} (adapt Debian policy section 12.8.7.)
- * drop conflicts: xlibs* (>> 4.3.0-0), xlibs* (<< 4.3.0-0pre1v1)
- because versioned AND conflicts are not supported.
-
- -- ISHIKAWA Mutsumi <ishikawa@debian.org> Tue, 3 Jun 2003 00:35:13 +0900
-
-xcursor (1.0.2-0beta4) unstable; urgency=low
-
- * only conflicts: xlibs* (>> 4.3.0-0), xlibs* (<< 4.3.0-0pre1v1)
-
- -- ISHIKAWA Mutsumi <ishikawa@debian.org> Fri, 30 May 2003 01:35:26 +0900
-
-xcursor (1.0.2-0beta3) unstable; urgency=low
-
- * migrate to use cdbs
- * add Build-Depends: cdbs
- * remove Daniel Stone from uploaders (because he is not DD, yet)
- * Bump Standards-Version: 3.5.10
-
- -- ISHIKAWA Mutsumi <ishikawa@debian.org> Wed, 28 May 2003 03:10:50 +0900
-
-xcursor (1.0.2-0beta2) unstable; urgency=low
-
- * fix to install Xcursor.h into correct place
-
- -- ISHIKAWA Mutsumi <ishikawa@debian.org> Sat, 24 May 2003 03:55:44 +0900
-
-xcursor (1.0.2-0beta1) unstable; urgency=low
-
- * Initial Beta Release.
-
- -- ISHIKAWA Mutsumi <ishikawa@debian.org> Thu, 22 May 2003 02:31:37 +0900
+++ /dev/null
-Source: libxcursor
-Section: devel
-Priority: optional
-Maintainer: SooChan Lim <sc.lim@samsung.com>, Sangjin Lee <lsj119@samsung.com>, Debian X Strike Force <debian-x@lists.debian.org>
-Uploaders: SooChan Lim <sc1.lim@samsung.com>, Sung-Jin Park <sj76.park@samsung.com>, David Nusinow <dnusinow@debian.org>, Drew Parsons <dparsons@debian.org>, Cyril Brulebois <kibi@debian.org>
-Build-Depends: debhelper (>= 5.0.0), x11proto-core-dev (>= 6.2.1+cvs.20050722), libx11-dev (>= 2:1.3.3-2), libxrender-dev (>= 1:0.9.5-2), libxfixes-dev (>= 1:4.0.4-2), pkg-config, quilt, automake, libtool, xutils-dev (>= 1:7.4+4)
-Standards-Version: 3.8.4
-Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxcursor
-Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxcursor.git
-
-Package: libxcursor1
-Section: libs
-Architecture: any
-Depends: ${shlibs:Depends}
-Description: X cursor management library
- Xcursor is a simple library designed to help locate and load cursors for the
- X Window System. Cursors can be loaded from files or memory and can exist in
- several sizes; the library automatically picks the best size. When using
- images loaded from files, Xcursor prefers to use the Render extension's
- CreateCursor request for rendering cursors. Where the Render extension is
- not supported, Xcursor maps the cursor image to a standard X cursor and uses
- the core X protocol CreateCursor request.
-
-#Package: libxcursor1-udeb
-#XC-Package-Type: udeb
-#Section: debian-installer
-#Architecture: any
-#Depends: ${shlibs:Depends},
-#Description: X cursor management library
-# This is a udeb, or a microdeb, for the debian-installer.
-
-Package: libxcursor1-dbg
-Section: debug
-Priority: extra
-Architecture: any
-Depends: libxcursor1 (= ${binary:Version}), ${shlibs:Depends},
-Description: X cursor management library (unstripped)
- This package provides an unstripped shared object with debugging symbols,
- useful to provide a backtrace with symbol names in a debugger; this
- facilitates interpretation of core dumps, and aids in finding logic errors in
- programs using this library (or the library itself). The library is
- installed in /usr/lib/debug and can be used by placing that directory in the
- LD_LIBRARY_PATH environment variable when the code to be debugged is
- executed. Non-programmers will likely have little use for this package.
- .
- Non-programmers will likely have little use for this package. See the
- libxcursor1 package for further information.
-
-Package: libxcursor-dev
-Section: libdevel
-Architecture: any
-Depends: libxcursor1 (= ${binary:Version}), x11proto-core-dev, libx11-dev, libxrender-dev, libxfixes-dev,
-Description: X cursor management library (development files)
- Header files and a static version of the X cursor management library are
- provided by this package.
- .
- See the libxcursor1 package for further information.
+++ /dev/null
-This package was debianized by ISHIKAWA Mutsumi <ishikawa@debian.org> on
-Mon, 12 May 2003 05:14:45 +0900.
-
-It was downloaded from
-http://xorg.freedesktop.org/releases/individual/lib/
-
-Upstream copyright:
-
- Copyright © 2001,2003 Keith Packard
-
-Upstream license:
-
- 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, and
- that the name of Keith Packard not be used in advertising or publicity
- pertaining to distribution of the software without specific, written prior
- permission. Keith Packard makes no representations about the suitability of
- this software for any purpose. It is provided "as is" without express or
- implied warranty.
-
- KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
- SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
- DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
- PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS
- ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
- SOFTWARE.
-
-The Debian packaging infrastructure in the debian/ directory of the source
-package is independently authored and copyrighted.
-
-Debian copyright:
-
- Copyright 2003 Software in the Public Interest, Inc.
-
-Debian license:
-
- 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, and
- that the name of Software in the Public Interest, Inc. not be used in
- advertising or publicity pertaining to distribution of the software without
- specific, written prior permission. Software in the Public Interest, Inc.
- makes no representations about the suitability of this software for any
- purpose. It is provided "as is" without express or implied warranty.
-
- SOFTWARE IN THE PUBLIC INTEREST, INC. DISCLAIMS ALL WARRANTIES WITH REGARD
- TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
- FITNESS, IN NO EVENT SHALL SOFTWARE IN THE PUBLIC INTEREST, INC. BE LIABLE
- FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER
- RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
- CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
- CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+++ /dev/null
-usr/include/X11/Xcursor/Xcursor.h
-usr/lib/libXcursor.a
-usr/lib/libXcursor.la
-usr/lib/libXcursor.so
-usr/lib/pkgconfig/*.pc
-
+++ /dev/null
-usr/lib/libXcursor.so.*
+++ /dev/null
-usr/lib/libXcursor.so.*
+++ /dev/null
-#!/usr/bin/make -f
-# debian/rules for the Debian libxcursor 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 = libxcursor1
-
-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_BUILD_GNU_TYPE)
-ifeq ($(DEB_BUILD_GNU_TYPE), $(DEB_HOST_GNU_TYPE))
- confflags += --build=$(DEB_HOST_GNU_TYPE)
-else
- confflags += --build=$(DEB_BUILD_GNU_TYPE) --host=$(DEB_HOST_GNU_TYPE)
-endif
-
-autogen:
- dh_testdir
-
- ./autogen.sh
-
-#build: patch build-stamp
-build: autogen build-stamp
-build-stamp:
- dh_testdir
- test -d obj-$(DEB_BUILD_GNU_TYPE) || mkdir obj-$(DEB_BUILD_GNU_TYPE)
- cd obj-$(DEB_BUILD_GNU_TYPE) && \
- ../configure --prefix=/usr CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
- cd obj-$(DEB_BUILD_GNU_TYPE) && $(MAKE)
-
- touch build-stamp
-
-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 config.guess config.h.in config.sub configure
- rm -f depcomp install-sh missing mkinstalldirs ltmain.sh
- #rm -f ltmain.sh
- find -name Makefile.in -exec rm -f {} \;
- #find -name Makefile.in -delete
-
- 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=usr/share/man/man3
-# dh_installman
-# dh_installchangelogs
- dh_link
- dh_strip --dbg-package=$(PACKAGE)-dbg
- dh_compress
- dh_fixperms
- dh_makeshlibs -V "libxcursor1 (>> 1.1.2)"
-# dh_makeshlibs -V "libxcursor1 (>> 1.1.2)" --add-udeb=$(PACKAGE)-udeb
- 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
+++ /dev/null
-version=3
-http://xorg.freedesktop.org/releases/individual/lib/ libXcursor-(.*)\.tar\.gz
+++ /dev/null
-#!/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
+++ /dev/null
-#!/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:
+++ /dev/null
-# 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.
+/* include/X11/Xcursor/Xcursor.h. Generated from Xcursor.h.in by configure. */
/*
* Copyright © 2002 Keith Packard
*
#define XCURSOR_MAGIC 0x72756358 /* "Xcur" LSBFirst */
/*
- * Current Xcursor version number. This same number
- * must appear in the Xcursor configure.ac file. Yes,
- * it'a a pain to synchronize version numbers like this.
+ * Current Xcursor version number. Will be substituted by configure
+ * from the version in the libXcursor configure.ac file.
*/
-#define XCURSOR_LIB_MAJOR 1
-#define XCURSOR_LIB_MINOR 1
-#define XCURSOR_LIB_REVISION 9
+#define XCURSOR_LIB_MAJOR 1
+#define XCURSOR_LIB_MINOR 1
+#define XCURSOR_LIB_REVISION 13
#define XCURSOR_LIB_VERSION ((XCURSOR_LIB_MAJOR * 10000) + \
(XCURSOR_LIB_MINOR * 100) + \
(XCURSOR_LIB_REVISION))
XcursorImageDestroy (XcursorImage *image);
/*
- * Manage Images objects
+ * Manage Images objects
*/
XcursorImages *
XcursorImagesCreate (int size);
XcursorImages **imagesp);
XcursorBool
-XcursorXcFileSave (XcursorFile *file,
+XcursorXcFileSave (XcursorFile *file,
const XcursorComments *comments,
const XcursorImages *images);
XcursorFileLoadAllImages (FILE *file);
XcursorBool
-XcursorFileLoad (FILE *file,
- XcursorComments **commentsp,
+XcursorFileLoad (FILE *file,
+ XcursorComments **commentsp,
XcursorImages **imagesp);
XcursorBool
XcursorFileSaveImages (FILE *file, const XcursorImages *images);
XcursorBool
-XcursorFileSave (FILE * file,
+XcursorFileSave (FILE * file,
const XcursorComments *comments,
const XcursorImages *images);
XcursorFilenameSaveImages (const char *filename, const XcursorImages *images);
XcursorBool
-XcursorFilenameSave (const char *file,
+XcursorFilenameSave (const char *file,
const XcursorComments *comments,
const XcursorImages *images);
int
XcursorLibraryShape (const char *library);
-
+
/*
* Image/Cursor APIs
*/
#define XCURSOR_BITMAP_HASH_SIZE 16
void
-XcursorImageHash (XImage *image,
+XcursorImageHash (XImage *image,
unsigned char hash[XCURSOR_BITMAP_HASH_SIZE]);
/*
--- /dev/null
+/*
+ * Copyright © 2002 Keith Packard
+ *
+ * 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, and that the name of Keith Packard not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Keith Packard makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef _XCURSOR_H_
+#define _XCURSOR_H_
+#include <stdio.h>
+#include <X11/Xfuncproto.h>
+#include <X11/Xlib.h>
+
+typedef int XcursorBool;
+typedef unsigned int XcursorUInt;
+
+typedef XcursorUInt XcursorDim;
+typedef XcursorUInt XcursorPixel;
+
+#define XcursorTrue 1
+#define XcursorFalse 0
+
+/*
+ * Cursor files start with a header. The header
+ * contains a magic number, a version number and a
+ * table of contents which has type and offset information
+ * for the remaining tables in the file.
+ *
+ * File minor versions increment for compatible changes
+ * File major versions increment for incompatible changes (never, we hope)
+ *
+ * Chunks of the same type are always upward compatible. Incompatible
+ * changes are made with new chunk types; the old data can remain under
+ * the old type. Upward compatible changes can add header data as the
+ * header lengths are specified in the file.
+ *
+ * File:
+ * FileHeader
+ * LISTofChunk
+ *
+ * FileHeader:
+ * CARD32 magic magic number
+ * CARD32 header bytes in file header
+ * CARD32 version file version
+ * CARD32 ntoc number of toc entries
+ * LISTofFileToc toc table of contents
+ *
+ * FileToc:
+ * CARD32 type entry type
+ * CARD32 subtype entry subtype (size for images)
+ * CARD32 position absolute file position
+ */
+
+#define XCURSOR_MAGIC 0x72756358 /* "Xcur" LSBFirst */
+
+/*
+ * Current Xcursor version number. Will be substituted by configure
+ * from the version in the libXcursor configure.ac file.
+ */
+
+#undef XCURSOR_LIB_MAJOR
+#undef XCURSOR_LIB_MINOR
+#undef XCURSOR_LIB_REVISION
+#define XCURSOR_LIB_VERSION ((XCURSOR_LIB_MAJOR * 10000) + \
+ (XCURSOR_LIB_MINOR * 100) + \
+ (XCURSOR_LIB_REVISION))
+
+/*
+ * This version number is stored in cursor files; changes to the
+ * file format require updating this version number
+ */
+#define XCURSOR_FILE_MAJOR 1
+#define XCURSOR_FILE_MINOR 0
+#define XCURSOR_FILE_VERSION ((XCURSOR_FILE_MAJOR << 16) | (XCURSOR_FILE_MINOR))
+#define XCURSOR_FILE_HEADER_LEN (4 * 4)
+#define XCURSOR_FILE_TOC_LEN (3 * 4)
+
+typedef struct _XcursorFileToc {
+ XcursorUInt type; /* chunk type */
+ XcursorUInt subtype; /* subtype (size for images) */
+ XcursorUInt position; /* absolute position in file */
+} XcursorFileToc;
+
+typedef struct _XcursorFileHeader {
+ XcursorUInt magic; /* magic number */
+ XcursorUInt header; /* byte length of header */
+ XcursorUInt version; /* file version number */
+ XcursorUInt ntoc; /* number of toc entries */
+ XcursorFileToc *tocs; /* table of contents */
+} XcursorFileHeader;
+
+/*
+ * The rest of the file is a list of chunks, each tagged by type
+ * and version.
+ *
+ * Chunk:
+ * ChunkHeader
+ * <extra type-specific header fields>
+ * <type-specific data>
+ *
+ * ChunkHeader:
+ * CARD32 header bytes in chunk header + type header
+ * CARD32 type chunk type
+ * CARD32 subtype chunk subtype
+ * CARD32 version chunk type version
+ */
+
+#define XCURSOR_CHUNK_HEADER_LEN (4 * 4)
+
+typedef struct _XcursorChunkHeader {
+ XcursorUInt header; /* bytes in chunk header */
+ XcursorUInt type; /* chunk type */
+ XcursorUInt subtype; /* chunk subtype (size for images) */
+ XcursorUInt version; /* version of this type */
+} XcursorChunkHeader;
+
+/*
+ * Here's a list of the known chunk types
+ */
+
+/*
+ * Comments consist of a 4-byte length field followed by
+ * UTF-8 encoded text
+ *
+ * Comment:
+ * ChunkHeader header chunk header
+ * CARD32 length bytes in text
+ * LISTofCARD8 text UTF-8 encoded text
+ */
+
+#define XCURSOR_COMMENT_TYPE 0xfffe0001
+#define XCURSOR_COMMENT_VERSION 1
+#define XCURSOR_COMMENT_HEADER_LEN (XCURSOR_CHUNK_HEADER_LEN + (1 *4))
+#define XCURSOR_COMMENT_COPYRIGHT 1
+#define XCURSOR_COMMENT_LICENSE 2
+#define XCURSOR_COMMENT_OTHER 3
+#define XCURSOR_COMMENT_MAX_LEN 0x100000
+
+typedef struct _XcursorComment {
+ XcursorUInt version;
+ XcursorUInt comment_type;
+ char *comment;
+} XcursorComment;
+
+/*
+ * Each cursor image occupies a separate image chunk.
+ * The length of the image header follows the chunk header
+ * so that future versions can extend the header without
+ * breaking older applications
+ *
+ * Image:
+ * ChunkHeader header chunk header
+ * CARD32 width actual width
+ * CARD32 height actual height
+ * CARD32 xhot hot spot x
+ * CARD32 yhot hot spot y
+ * CARD32 delay animation delay
+ * LISTofCARD32 pixels ARGB pixels
+ */
+
+#define XCURSOR_IMAGE_TYPE 0xfffd0002
+#define XCURSOR_IMAGE_VERSION 1
+#define XCURSOR_IMAGE_HEADER_LEN (XCURSOR_CHUNK_HEADER_LEN + (5*4))
+#define XCURSOR_IMAGE_MAX_SIZE 0x7fff /* 32767x32767 max cursor size */
+
+typedef struct _XcursorImage {
+ XcursorUInt version; /* version of the image data */
+ XcursorDim size; /* nominal size for matching */
+ XcursorDim width; /* actual width */
+ XcursorDim height; /* actual height */
+ XcursorDim xhot; /* hot spot x (must be inside image) */
+ XcursorDim yhot; /* hot spot y (must be inside image) */
+ XcursorUInt delay; /* animation delay to next frame (ms) */
+ XcursorPixel *pixels; /* pointer to pixels */
+} XcursorImage;
+
+/*
+ * Other data structures exposed by the library API
+ */
+typedef struct _XcursorImages {
+ int nimage; /* number of images */
+ XcursorImage **images; /* array of XcursorImage pointers */
+ char *name; /* name used to load images */
+} XcursorImages;
+
+typedef struct _XcursorCursors {
+ Display *dpy; /* Display holding cursors */
+ int ref; /* reference count */
+ int ncursor; /* number of cursors */
+ Cursor *cursors; /* array of cursors */
+} XcursorCursors;
+
+typedef struct _XcursorAnimate {
+ XcursorCursors *cursors; /* list of cursors to use */
+ int sequence; /* which cursor is next */
+} XcursorAnimate;
+
+typedef struct _XcursorFile XcursorFile;
+
+struct _XcursorFile {
+ void *closure;
+ int (*read) (XcursorFile *file, unsigned char *buf, int len);
+ int (*write) (XcursorFile *file, unsigned char *buf, int len);
+ int (*seek) (XcursorFile *file, long offset, int whence);
+};
+
+typedef struct _XcursorComments {
+ int ncomment; /* number of comments */
+ XcursorComment **comments; /* array of XcursorComment pointers */
+} XcursorComments;
+
+#define XCURSOR_CORE_THEME "core"
+
+_XFUNCPROTOBEGIN
+
+/*
+ * Manage Image objects
+ */
+XcursorImage *
+XcursorImageCreate (int width, int height);
+
+void
+XcursorImageDestroy (XcursorImage *image);
+
+/*
+ * Manage Images objects
+ */
+XcursorImages *
+XcursorImagesCreate (int size);
+
+void
+XcursorImagesDestroy (XcursorImages *images);
+
+void
+XcursorImagesSetName (XcursorImages *images, const char *name);
+
+/*
+ * Manage Cursor objects
+ */
+XcursorCursors *
+XcursorCursorsCreate (Display *dpy, int size);
+
+void
+XcursorCursorsDestroy (XcursorCursors *cursors);
+
+/*
+ * Manage Animate objects
+ */
+XcursorAnimate *
+XcursorAnimateCreate (XcursorCursors *cursors);
+
+void
+XcursorAnimateDestroy (XcursorAnimate *animate);
+
+Cursor
+XcursorAnimateNext (XcursorAnimate *animate);
+
+/*
+ * Manage Comment objects
+ */
+XcursorComment *
+XcursorCommentCreate (XcursorUInt comment_type, int length);
+
+void
+XcursorCommentDestroy (XcursorComment *comment);
+
+XcursorComments *
+XcursorCommentsCreate (int size);
+
+void
+XcursorCommentsDestroy (XcursorComments *comments);
+
+/*
+ * XcursorFile/Image APIs
+ */
+XcursorImage *
+XcursorXcFileLoadImage (XcursorFile *file, int size);
+
+XcursorImages *
+XcursorXcFileLoadImages (XcursorFile *file, int size);
+
+XcursorImages *
+XcursorXcFileLoadAllImages (XcursorFile *file);
+
+XcursorBool
+XcursorXcFileLoad (XcursorFile *file,
+ XcursorComments **commentsp,
+ XcursorImages **imagesp);
+
+XcursorBool
+XcursorXcFileSave (XcursorFile *file,
+ const XcursorComments *comments,
+ const XcursorImages *images);
+
+/*
+ * FILE/Image APIs
+ */
+XcursorImage *
+XcursorFileLoadImage (FILE *file, int size);
+
+XcursorImages *
+XcursorFileLoadImages (FILE *file, int size);
+
+XcursorImages *
+XcursorFileLoadAllImages (FILE *file);
+
+XcursorBool
+XcursorFileLoad (FILE *file,
+ XcursorComments **commentsp,
+ XcursorImages **imagesp);
+
+XcursorBool
+XcursorFileSaveImages (FILE *file, const XcursorImages *images);
+
+XcursorBool
+XcursorFileSave (FILE * file,
+ const XcursorComments *comments,
+ const XcursorImages *images);
+
+/*
+ * Filename/Image APIs
+ */
+XcursorImage *
+XcursorFilenameLoadImage (const char *filename, int size);
+
+XcursorImages *
+XcursorFilenameLoadImages (const char *filename, int size);
+
+XcursorImages *
+XcursorFilenameLoadAllImages (const char *filename);
+
+XcursorBool
+XcursorFilenameLoad (const char *file,
+ XcursorComments **commentsp,
+ XcursorImages **imagesp);
+
+XcursorBool
+XcursorFilenameSaveImages (const char *filename, const XcursorImages *images);
+
+XcursorBool
+XcursorFilenameSave (const char *file,
+ const XcursorComments *comments,
+ const XcursorImages *images);
+
+/*
+ * Library/Image APIs
+ */
+XcursorImage *
+XcursorLibraryLoadImage (const char *library, const char *theme, int size);
+
+XcursorImages *
+XcursorLibraryLoadImages (const char *library, const char *theme, int size);
+
+/*
+ * Library/shape API
+ */
+
+const char *
+XcursorLibraryPath (void);
+
+int
+XcursorLibraryShape (const char *library);
+
+/*
+ * Image/Cursor APIs
+ */
+
+Cursor
+XcursorImageLoadCursor (Display *dpy, const XcursorImage *image);
+
+XcursorCursors *
+XcursorImagesLoadCursors (Display *dpy, const XcursorImages *images);
+
+Cursor
+XcursorImagesLoadCursor (Display *dpy, const XcursorImages *images);
+
+/*
+ * Filename/Cursor APIs
+ */
+Cursor
+XcursorFilenameLoadCursor (Display *dpy, const char *file);
+
+XcursorCursors *
+XcursorFilenameLoadCursors (Display *dpy, const char *file);
+
+/*
+ * Library/Cursor APIs
+ */
+Cursor
+XcursorLibraryLoadCursor (Display *dpy, const char *file);
+
+XcursorCursors *
+XcursorLibraryLoadCursors (Display *dpy, const char *file);
+
+/*
+ * Shape/Image APIs
+ */
+
+XcursorImage *
+XcursorShapeLoadImage (unsigned int shape, const char *theme, int size);
+
+XcursorImages *
+XcursorShapeLoadImages (unsigned int shape, const char *theme, int size);
+
+/*
+ * Shape/Cursor APIs
+ */
+Cursor
+XcursorShapeLoadCursor (Display *dpy, unsigned int shape);
+
+XcursorCursors *
+XcursorShapeLoadCursors (Display *dpy, unsigned int shape);
+
+/*
+ * This is the function called by Xlib when attempting to
+ * load cursors from XCreateGlyphCursor. The interface must
+ * not change as Xlib loads 'libXcursor.so' instead of
+ * a specific major version
+ */
+Cursor
+XcursorTryShapeCursor (Display *dpy,
+ Font source_font,
+ Font mask_font,
+ unsigned int source_char,
+ unsigned int mask_char,
+ XColor _Xconst *foreground,
+ XColor _Xconst *background);
+
+void
+XcursorNoticeCreateBitmap (Display *dpy,
+ Pixmap pid,
+ unsigned int width,
+ unsigned int height);
+
+void
+XcursorNoticePutBitmap (Display *dpy,
+ Drawable draw,
+ XImage *image);
+
+Cursor
+XcursorTryShapeBitmapCursor (Display *dpy,
+ Pixmap source,
+ Pixmap mask,
+ XColor *foreground,
+ XColor *background,
+ unsigned int x,
+ unsigned int y);
+
+#define XCURSOR_BITMAP_HASH_SIZE 16
+
+void
+XcursorImageHash (XImage *image,
+ unsigned char hash[XCURSOR_BITMAP_HASH_SIZE]);
+
+/*
+ * Display information APIs
+ */
+XcursorBool
+XcursorSupportsARGB (Display *dpy);
+
+XcursorBool
+XcursorSupportsAnim (Display *dpy);
+
+XcursorBool
+XcursorSetDefaultSize (Display *dpy, int size);
+
+int
+XcursorGetDefaultSize (Display *dpy);
+
+XcursorBool
+XcursorSetTheme (Display *dpy, const char *theme);
+
+char *
+XcursorGetTheme (Display *dpy);
+
+XcursorBool
+XcursorGetThemeCore (Display *dpy);
+
+XcursorBool
+XcursorSetThemeCore (Display *dpy, XcursorBool theme_core);
+
+_XFUNCPROTOEND
+
+#endif
libmandir = $(LIB_MAN_DIR)
-libman_PRE = Xcursor.man
-libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@)
+libman_PRE = \
+ Xcursor.man \
+ $(Xcursor_shadows:=.man)
+
+Xcursor_shadows = \
+ XcursorImageCreate \
+ XcursorImageDestroy \
+ XcursorImagesCreate \
+ XcursorImagesDestroy \
+ XcursorCursorsCreate \
+ XcursorCursorsDestroy \
+ XcursorXcFileLoadImage \
+ XcursorXcFileLoadImages \
+ XcursorXcFileLoadAllImages \
+ XcursorXcFileLoad \
+ XcursorXcFileSave \
+ XcursorFilenameLoadImage \
+ XcursorFilenameLoadImages \
+ XcursorFilenameLoadAllImages \
+ XcursorFilenameLoad \
+ XcursorFilenameSaveImages \
+ XcursorFilenameSave \
+ XcursorLibraryLoadImage \
+ XcursorLibraryLoadImages \
+ XcursorFilenameLoadCursor \
+ XcursorLibraryLoadCursor \
+ XcursorLibraryLoadCursors \
+ XcursorShapeLoadImage \
+ XcursorShapeLoadImages \
+ XcursorShapeLoadCursor \
+ XcursorShapeLoadCursors \
+ XcursorSupportsARGB \
+ XcursorSetDefaultSize \
+ XcursorGetDefaultSize \
+ XcursorSetTheme \
+ XcursorGetTheme
-all-local: $(libman_DATA)
+libman_DATA = $(libman_PRE:man=@LIB_MAN_SUFFIX@)
EXTRA_DIST = $(libman_PRE)
CLEANFILES = $(libman_DATA)
SUFFIXES = .$(LIB_MAN_SUFFIX) .man
-# Strings to replace in man pages
-XORGRELSTRING = @PACKAGE_STRING@
-
-MAN_SUBSTS = \
- -e 's|__xorgversion__|"$(XORGRELSTRING)"|' \
- -e 's|__XCURSORPATH__|$(XCURSORPATH_LIST)|g' \
- -e 's|__appmansuffix__|$(APP_MAN_SUFFIX)|g' \
- -e 's|__libmansuffix__|$(LIB_MAN_SUFFIX)|g' \
- -e 's|__adminmansuffix__|$(ADMIN_MAN_SUFFIX)|g' \
- -e 's|__miscmansuffix__|$(MISC_MAN_SUFFIX)|g' \
- -e 's|__filemansuffix__|$(FILE_MAN_SUFFIX)|g'
+# String replacements in MAN_SUBSTS now come from xorg-macros.m4 via configure
+# 's/:/, /g' will add comma and a space to help path formatting
+MAN_SUBSTS += -e 's|__XCURSORPATH__|$(XCURSORPATH)|g' \
+ -e '\|$(XCURSORPATH)| s/:/, /g'
.man.$(LIB_MAN_SUFFIX):
- -rm -f $@
- sed $(MAN_SUBSTS) < $< > $@
-
-# Generate man page shadow files
-
-LIB_MAN_DIR_SUFFIX = $(LIB_MAN_DIR:@mandir@/man%=%)
-libman_DATA += $(Xcursor_shadows:=.@LIB_MAN_SUFFIX@)
-BUILT_SOURCES = shadows.DONE
-CLEANFILES += shadows.DONE
-
-Xcursor_shadows = \
- XcursorImageCreate \
- XcursorImageDestroy \
- XcursorImagesCreate \
- XcursorImagesDestroy \
- XcursorCursorsCreate \
- XcursorCursorsDestroy \
- XcursorXcFileLoadImage \
- XcursorXcFileLoadImages \
- XcursorXcFileLoadAllImages \
- XcursorXcFileLoad \
- XcursorXcFileSave \
- XcursorFilenameLoadImage \
- XcursorFilenameLoadImages \
- XcursorFilenameLoadAllImages \
- XcursorFilenameLoad \
- XcursorFilenameSaveImages \
- XcursorFilenameSave \
- XcursorLibraryLoadImage \
- XcursorLibraryLoadImages \
- XcursorFilenameLoadCursor \
- XcursorLibraryLoadCursor \
- XcursorLibraryLoadCursors \
- XcursorShapeLoadImage \
- XcursorShapeLoadImages \
- XcursorShapeLoadCursor \
- XcursorShapeLoadCursors \
- XcursorSupportsARGB \
- XcursorSetDefaultSize \
- XcursorGetDefaultSize \
- XcursorSetTheme \
- XcursorGetTheme
-
-shadows.DONE:
- -rm -f $(Xcursor_shadows:=.@LIB_MAN_SUFFIX@)
- (for i in $(Xcursor_shadows:=.@LIB_MAN_SUFFIX@) ; do \
- echo .so man$(LIB_MAN_DIR_SUFFIX)/Xcursor.$(LIB_MAN_SUFFIX) > $$i; \
- done)
+ $(AM_V_GEN)$(SED) $(MAN_SUBSTS) < $< > $@
XcursorBool XcursorXcFileSave (XcursorFile *file, const XcursorComments *comments, const XcursorImages *images)
These read and write cursors from an XcursorFile handle. After reading, the
file pointer will be left at some random place in the file.
-
+
.TP
XcursorImage *XcursorFileLoadImage (FILE *file, int size)
.TQ
.SH "ENVIRONMENT VARIABLES"
.TP 15
.B XCURSOR_PATH
-This variable sets the list of paths to look for cursors in.
+This variable sets the list of paths to look for cursors in.
Directories in this path are separated by colons (:).
.SH RESTRICTIONS
--- /dev/null
+Summary: Cursor management library
+Name: libXcursor
+Version: 1.1.13
+Release: 1
+License: MIT
+Group: System Environment/Libraries
+URL: http://www.x.org
+#VCS: git:git://anongit.freedesktop.org/xorg/lib/libXcursor
+Source0: %{name}-%{version}.tar.gz
+
+BuildRequires: xorg-x11-xutils-dev
+BuildRequires: pkgconfig(xorg-macros)
+BuildRequires: pkgconfig(xproto)
+BuildRequires: libX11-devel
+BuildRequires: libXfixes-devel
+BuildRequires: libXrender-devel >= 0.8.2
+
+
+%description
+This is a simple library designed to help locate and load cursors.
+Cursors can be loaded from files or memory. A library of common cursors
+exists which map to the standard X cursor names.Cursors can exist in
+several sizes and the library automatically picks the best size.
+
+%package devel
+Summary: Development files for %{name}
+Group: Development/Libraries
+Provides: libxcursor-devel
+Requires: %{name} = %{version}-%{release}
+
+%description devel
+libXcursor development package.
+
+%prep
+%setup -q
+iconv --from=ISO-8859-2 --to=UTF-8 COPYING > COPYING.new && \
+touch -r COPYING COPYING.new && \
+mv COPYING.new COPYING
+
+# Disable static library creation by default.
+%define with_static 0
+
+%build
+#export CFLAGS="${CFLAGS} $RPM_OPT_FLAGS -DICONDIR=\"%{_datadir}/icons\""
+%reconfigure --disable-static \
+ LDFLAGS="${LDFLAGS} -Wl,--hash-style=both -Wl,--as-needed"
+make %{?jobs:-j%jobs}
+
+%install
+rm -rf $RPM_BUILD_ROOT
+
+make install DESTDIR=$RPM_BUILD_ROOT INSTALL="install -p"
+
+mkdir -p $RPM_BUILD_ROOT%{_datadir}/icons/default
+
+# We intentionally don't ship *.la files
+rm -f $RPM_BUILD_ROOT%{_libdir}/*.la
+
+%remove_docs
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%post -p /sbin/ldconfig
+%postun -p /sbin/ldconfig
+
+%files
+%defattr(-,root,root,-)
+%doc AUTHORS COPYING README ChangeLog
+%{_libdir}/libXcursor.so.1
+%{_libdir}/libXcursor.so.1.0.2
+%dir %{_datadir}/icons/default
+#%{_datadir}/icons/default/index.theme
+
+%files devel
+%defattr(-,root,root,-)
+%dir %{_includedir}/X11/Xcursor
+%{_includedir}/X11/Xcursor/Xcursor.h
+%if %{with_static}
+%{_libdir}/libXcursor.a
+%endif
+%{_libdir}/libXcursor.so
+%{_libdir}/pkgconfig/xcursor.pc
+#%dir %{_mandir}/man3x
+#%{_mandir}/man3/Xcursor*.3*
\ No newline at end of file
+++ /dev/null
-Name: libxcursor
-Summary: X cursor management library
-Version: 1.1.11
-Release: 2.7
-Group: System/Libraries
-License: MIT
-Source0: libxcursor-%{version}.tar.gz
-Requires(post): /sbin/ldconfig
-Requires(postun): /sbin/ldconfig
-BuildRequires: pkgconfig(x11)
-BuildRequires: pkgconfig(xproto)
-BuildRequires: pkgconfig(xfixes)
-BuildRequires: pkgconfig(xrender)
-BuildRequires: pkgconfig(xorg-macros)
-
-%description
-Xcursor is a simple library designed to help locate and load cursors for the
-X Window System. Cursors can be loaded from files or memory and can exist in
-several sizes; the library automatically picks the best size. When using
-images loaded from files, Xcursor prefers to use the Render extension's
-CreateCursor request for rendering cursors. Where the Render extension is
-not supported, Xcursor maps the cursor image to a standard X cursor and uses
-the core X protocol CreateCursor request.
-
-
-
-%package devel
-Summary: X cursor management library (development files)
-Group: TO_BE/FILLED
-Requires: %{name} = %{version}-%{release}
-
-%description devel
-Header files and a static version of the X cursor management library are
-provided by this package.
-.
-See the libxcursor1 package for further information.
-
-
-
-%prep
-%setup -q -n %{name}-%{version}
-
-
-%build
-export LDFLAGS+="-lXrender -lXfixes"
-export LDFLAGS+=" -Wl,--hash-style=both -Wl,--as-needed"
-#chmod +x autogen.sh
-#libtoolize -f -c
-./autogen.sh
-%configure
-
-make %{?jobs:-j%jobs}
-
-%install
-%make_install
-rm -rf %{buildroot}/usr/share/man
-
-%post -p /sbin/ldconfig
-
-%postun -p /sbin/ldconfig
-
-
-%files
-/usr/lib/*.so.*
-
-
-%files devel
-/usr/include/*
-/usr/lib/*.so
-/usr/lib/pkgconfig/xcursor.pc
-
libXcursor_la_LDFLAGS = -version-number 1:0:2 -no-undefined
libXcursorincludedir = $(includedir)/X11/Xcursor
-libXcursorinclude_HEADERS = $(top_srcdir)/include/X11/Xcursor/Xcursor.h
+libXcursorinclude_HEADERS = $(top_builddir)/include/X11/Xcursor/Xcursor.h
if LINT
ALL_LINT_FLAGS=$(LINT_FLAGS) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
--cursors->ref;
if (cursors->ref > 0)
return;
-
+
for (n = 0; n < cursors->ncursor; n++)
XFreeCursor (cursors->dpy, cursors->cursors[n]);
free (cursors);
XcursorPixel red, green, blue;
int n = npixels;
+ if (n < 1)
+ return 0;
+
blue = green = red = 0;
while (n--)
{
green += (p >> 8) & 0xff;
blue += (p >> 0) & 0xff;
}
- if (!n)
- return 0;
- return (0xff << 24) | ((red/npixels) << 16) | ((green/npixels) << 8) | (blue/npixels);
+ return (0xffU << 24) | ((red/npixels) << 16) | ((green/npixels) << 8) | (blue/npixels);
}
typedef struct XcursorCoreCursor {
XcursorPixel leftColor, centerColor, rightColor;
int (*compare) (const void *, const void *);
int x, y;
-
+
/*
* Temp space for converted image and converted colors
*/
temp = malloc (npixels * sizeof (XcursorPixel) * 2);
if (!temp)
return False;
-
+
pixels = temp;
colors = pixels + npixels;
-
+
/*
* Convert to 2-value alpha and build
* array of opaque color values and an
if (green > max_green) max_green = green;
if (blue < min_blue) min_blue = blue;
if (blue > max_blue) max_blue = blue;
- p = ((0xff << 24) | (red << 16) |
+ p = ((0xffU << 24) | (red << 16) |
(green << 8) | (blue << 0));
*pc++ = p;
}
*pn++ = p;
}
ncolors = pc - colors;
-
+
/*
* Compute longest dimension and sort
*/
iErrorRight = (iError * 7) >> 4;
iErrorBelowLeft = (iError * 3) >> 4;
iErrorBelow = (iError * 5) >> 4;
- iErrorBelowRight = (iError - iErrorRight -
+ iErrorBelowRight = (iError - iErrorRight -
iErrorBelowLeft - iErrorBelow);
aErrorRight = (aError * 7) >> 4;
aErrorBelowLeft = (aError * 3) >> 4;
aErrorBelow = (aError * 5) >> 4;
- aErrorBelowRight = (aError - aErrorRight -
+ aErrorBelowRight = (aError - aErrorRight -
aErrorBelowLeft - aErrorBelow);
if (x < image->width - 1)
{
- iP[right] += iErrorRight;
+ iP[right] += iErrorRight;
aP[right] += aErrorRight;
}
if (y < image->height - 1)
}
free (iPicture);
core->on_color.red =
- core->on_color.green =
+ core->on_color.green =
core->on_color.blue = (min_inten | min_inten << 8);
- core->off_color.red =
+ core->off_color.red =
core->off_color.green =
core->off_color.blue = (max_inten | max_inten << 8);
return True;
}
}
core->on_color.red =
- core->on_color.green =
+ core->on_color.green =
core->on_color.blue = 0;
- core->off_color.red =
+ core->off_color.red =
core->off_color.green =
core->off_color.blue = 0xffff;
return True;
XcursorImageLoadCursor (Display *dpy, const XcursorImage *image)
{
Cursor cursor;
-
+
#if RENDER_MAJOR > 0 || RENDER_MINOR >= 5
if (XcursorSupportsARGB (dpy))
{
pixmap = XCreatePixmap (dpy, RootWindow (dpy, screen),
image->width, image->height, 32);
gc = XCreateGC (dpy, pixmap, 0, NULL);
- XPutImage (dpy, pixmap, gc, &ximage,
+ XPutImage (dpy, pixmap, gc, &ximage,
0, 0, 0, 0, image->width, image->height);
XFreeGC (dpy, gc);
format = XRenderFindStandardFormat (dpy, PictStandardARGB32);
picture = XRenderCreatePicture (dpy, pixmap, format, 0, NULL);
XFreePixmap (dpy, pixmap);
- cursor = XRenderCreateCursor (dpy, picture,
+ cursor = XRenderCreateCursor (dpy, picture,
image->xhot, image->yhot);
XRenderFreePicture (dpy, picture);
}
GC gc;
XGCValues gcv;
+ if (!info)
+ return 0;
+
core.src_image = XCreateImage (dpy, NULL, 1, ZPixmap,
0, NULL, image->width, image->height,
32, 0);
- core.src_image->data = Xmalloc (image->height *
+ core.src_image->data = Xmalloc (image->height *
core.src_image->bytes_per_line);
core.msk_image = XCreateImage (dpy, NULL, 1, ZPixmap,
0, NULL, image->width, image->height,
32, 0);
- core.msk_image->data = Xmalloc (image->height *
+ core.msk_image->data = Xmalloc (image->height *
core.msk_image->bytes_per_line);
switch (info->dither) {
image->width, image->height, 1);
gcv.foreground = 1;
gcv.background = 0;
- gc = XCreateGC (dpy, src_pixmap,
+ gc = XCreateGC (dpy, src_pixmap,
GCForeground|GCBackground,
&gcv);
XPutImage (dpy, src_pixmap, gc, core.src_image,
0, 0, 0, 0, image->width, image->height);
-
+
XPutImage (dpy, msk_pixmap, gc, core.msk_image,
0, 0, 0, 0, image->width, image->height);
XFreeGC (dpy, gc);
-
+
#ifdef DEBUG_IMAGE
_XcursorDumpColor (&core.on_color, "on_color");
_XcursorDumpColor (&core.off_color, "off_color");
XcursorCursors *cursors = XcursorImagesLoadCursors (dpy, images);
XAnimCursor *anim;
int n;
-
+
if (!cursors)
return 0;
anim = malloc (cursors->ncursor * sizeof (XAnimCursor));
int size = XcursorGetDefaultSize (dpy);
XcursorImages *images = XcursorFilenameLoadImages (file, size);
Cursor cursor;
-
+
if (!images)
return None;
cursor = XcursorImagesLoadCursor (dpy, images);
int size = XcursorGetDefaultSize (dpy);
XcursorImages *images = XcursorFilenameLoadImages (file, size);
XcursorCursors *cursors;
-
+
if (!images)
return NULL;
cursors = XcursorImagesLoadCursors (dpy, images);
unsigned int mask_char,
XColor _Xconst *foreground,
XColor _Xconst *background)
-{
+{
Cursor cid;
register xCreateGlyphCursorReq *req;
static XColor _Xconst foreground = { 0, 0, 0, 0 }; /* black */
static XColor _Xconst background = { 0, 65535, 65535, 65535 }; /* white */
- /*
+ /*
* the cursor font contains the shape glyph followed by the mask
* glyph; so character position 0 contains a shape, 1 the mask for 0,
* 2 a shape, etc. <X11/cursorfont.h> contains hash define names
* for all of these.
*/
- if (dpy->cursor_font == None)
+ if (dpy->cursor_font == None)
{
dpy->cursor_font = XLoadFont (dpy, CURSORFONT);
if (dpy->cursor_font == None)
return None;
}
- return _XcursorCreateGlyphCursor (dpy, dpy->cursor_font, dpy->cursor_font,
+ return _XcursorCreateGlyphCursor (dpy, dpy->cursor_font, dpy->cursor_font,
shape, shape + 1, &foreground, &background);
}
if (info->theme_from_config)
free (info->theme_from_config);
+ while (info->fonts)
+ {
+ XcursorFontInfo *fi = info->fonts;
+ info->fonts = fi->next;
+ free (fi);
+ }
+
free (info);
}
return NULL;
info->next = NULL;
info->display = dpy;
-
+
info->codes = XAddExtension (dpy);
if (!info->codes)
{
info->has_anim_cursor = XcursorFalse;
}
}
-
+
info->size = 0;
/*
v = XGetDefault (dpy, "Xcursor", "size");
if (v)
info->size = atoi (v);
-
+
/*
* Use the Xft size to guess a size; make cursors 16 "points" tall
*/
if (dpi)
info->size = dpi * 16 / 72;
}
-
+
/*
* Use display size to guess a size
*/
if (info->size == 0)
{
int dim;
-
- if (DisplayHeight (dpy, DefaultScreen (dpy)) <
+
+ if (DisplayHeight (dpy, DefaultScreen (dpy)) <
DisplayWidth (dpy, DefaultScreen (dpy)))
dim = DisplayHeight (dpy, DefaultScreen (dpy));
else
*/
info->size = dim / 48;
}
-
+
info->theme = NULL;
info->theme_from_config = NULL;
_XcursorDisplayInfo = info;
}
_XUnlockMutex (_Xglobal_lock);
-
+
return info;
}
if (!info)
return XcursorFalse;
return info->theme_core;
-
+
}
XcursorBool
{
XcursorImages *images;
- images = malloc (sizeof (XcursorImages) +
+ images = malloc (sizeof (XcursorImages) +
size * sizeof (XcursorImage *));
if (!images)
return NULL;
XcursorImagesSetName (XcursorImages *images, const char *name)
{
char *new;
-
+
if (!images || !name)
return;
-
+
new = malloc (strlen (name) + 1);
if (!new)
if (!file)
return XcursorFalse;
-
+
bytes[0] = u;
bytes[1] = u >> 8;
bytes[2] = u >> 16;
if (!file)
return NULL;
-
+
if (!_XcursorReadUInt (file, &head.magic))
return NULL;
if (head.magic != XCURSOR_MAGIC)
static XcursorUInt
_XcursorFileHeaderLength (XcursorFileHeader *fileHeader)
{
- return (XCURSOR_FILE_HEADER_LEN +
+ return (XCURSOR_FILE_HEADER_LEN +
fileHeader->ntoc * XCURSOR_FILE_TOC_LEN);
}
if (!file || !fileHeader)
return XcursorFalse;
-
+
if (!_XcursorWriteUInt (file, fileHeader->magic))
return XcursorFalse;
if (!_XcursorWriteUInt (file, fileHeader->header))
}
static XcursorBool
-_XcursorSeekToToc (XcursorFile *file,
+_XcursorSeekToToc (XcursorFile *file,
XcursorFileHeader *fileHeader,
int toc)
{
}
static XcursorImage *
-_XcursorReadImage (XcursorFile *file,
+_XcursorReadImage (XcursorFile *file,
XcursorFileHeader *fileHeader,
int toc)
{
return NULL;
if (head.xhot > head.width || head.yhot > head.height)
return NULL;
-
+
/* Create the image and initialize it */
image = XcursorImageCreate (head.width, head.height);
if (chunkHeader.version < image->version)
}
static XcursorBool
-_XcursorWriteImage (XcursorFile *file,
+_XcursorWriteImage (XcursorFile *file,
XcursorFileHeader *fileHeader,
int toc,
XcursorImage *image)
return XcursorFalse;
if (image->xhot > image->width || image->yhot > image->height)
return XcursorFalse;
-
+
/* write chunk header */
chunkHeader.header = XCURSOR_IMAGE_HEADER_LEN;
chunkHeader.type = XCURSOR_IMAGE_TYPE;
chunkHeader.subtype = image->size;
chunkHeader.version = XCURSOR_IMAGE_VERSION;
-
+
if (!_XcursorFileWriteChunkHeader (file, fileHeader, toc, &chunkHeader))
return XcursorFalse;
-
+
/* write extra image header fields */
if (!_XcursorWriteUInt (file, image->width))
return XcursorFalse;
return XcursorFalse;
if (!_XcursorWriteUInt (file, image->delay))
return XcursorFalse;
-
+
/* write the image */
n = image->width * image->height;
p = image->pixels;
}
static XcursorComment *
-_XcursorReadComment (XcursorFile *file,
+_XcursorReadComment (XcursorFile *file,
XcursorFileHeader *fileHeader,
int toc)
{
}
static XcursorBool
-_XcursorWriteComment (XcursorFile *file,
+_XcursorWriteComment (XcursorFile *file,
XcursorFileHeader *fileHeader,
int toc,
XcursorComment *comment)
return XcursorFalse;
length = strlen (comment->comment);
-
+
/* sanity check data */
if (length > XCURSOR_COMMENT_MAX_LEN)
return XcursorFalse;
-
+
/* read chunk header */
chunkHeader.header = XCURSOR_COMMENT_HEADER_LEN;
chunkHeader.type = XCURSOR_COMMENT_TYPE;
chunkHeader.subtype = comment->comment_type;
chunkHeader.version = XCURSOR_COMMENT_VERSION;
-
+
if (!_XcursorFileWriteChunkHeader (file, fileHeader, toc, &chunkHeader))
return XcursorFalse;
-
+
/* write extra comment header fields */
if (!_XcursorWriteUInt (file, length))
return XcursorFalse;
-
+
if (!_XcursorWriteBytes (file, comment->comment, length))
return XcursorFalse;
return XcursorTrue;
int nsize;
int toc;
XcursorImage *image;
-
+
if (size < 0)
return NULL;
fileHeader = _XcursorReadFileHeader (file);
XcursorImages *images;
int n;
int toc;
-
+
if (!file || size < 0)
return NULL;
fileHeader = _XcursorReadFileHeader (file);
toc = _XcursorFindImageToc (fileHeader, bestSize, n);
if (toc < 0)
break;
- images->images[images->nimage] = _XcursorReadImage (file, fileHeader,
+ images->images[images->nimage] = _XcursorReadImage (file, fileHeader,
toc);
if (!images->images[images->nimage])
break;
int nimage;
int n;
int toc;
-
+
if (!file)
return NULL;
-
+
fileHeader = _XcursorReadFileHeader (file);
if (!fileHeader)
return NULL;
}
images = XcursorImagesCreate (nimage);
if (!images)
+ {
+ _XcursorFileHeaderDestroy (fileHeader);
return NULL;
+ }
for (toc = 0; toc < fileHeader->ntoc; toc++)
{
switch (fileHeader->tocs[toc].type) {
XcursorComment *comment;
XcursorComments *comments;
int toc;
-
+
if (!file)
return 0;
fileHeader = _XcursorReadFileHeader (file);
}
XcursorBool
-XcursorXcFileSave (XcursorFile *file,
+XcursorXcFileSave (XcursorFile *file,
const XcursorComments *comments,
const XcursorImages *images)
{
XcursorUInt position;
int n;
int toc;
-
+
if (!file || !comments || !images)
return XcursorFalse;
-
+
fileHeader = _XcursorFileHeaderCreate (comments->ncomment + images->nimage);
if (!fileHeader)
return XcursorFalse;
-
+
position = _XcursorFileHeaderLength (fileHeader);
/*
* Compute the toc. Place the images before the comments
* as they're more often read
*/
-
+
toc = 0;
for (n = 0; n < images->nimage; n++)
{
position += _XcursorImageLength (images->images[n]);
toc++;
}
-
+
for (n = 0; n < comments->ncomment; n++)
{
fileHeader->tocs[toc].type = XCURSOR_COMMENT_TYPE;
position += _XcursorCommentLength (comments->comments[n]);
toc++;
}
-
+
/*
* Write the header and the toc
*/
if (!_XcursorWriteFileHeader (file, fileHeader))
goto bail;
-
+
/*
* Write the images
*/
goto bail;
toc++;
}
-
+
/*
* Write the comments
*/
goto bail;
toc++;
}
-
+
_XcursorFileHeaderDestroy (fileHeader);
return XcursorTrue;
bail:
}
XcursorBool
-XcursorFileLoad (FILE *file,
- XcursorComments **commentsp,
+XcursorFileLoad (FILE *file,
+ XcursorComments **commentsp,
XcursorImages **imagesp)
{
XcursorFile f;
XcursorBool
XcursorFileSaveImages (FILE *file, const XcursorImages *images)
{
- XcursorComments *comments = XcursorCommentsCreate (0);
+ XcursorComments *comments;
XcursorFile f;
XcursorBool ret;
- if (!comments || !file || !images)
+
+ if (!file || !images)
+ return 0;
+ if ((comments = XcursorCommentsCreate (0)) == NULL)
return 0;
_XcursorStdioFileInitialize (file, &f);
ret = XcursorXcFileSave (&f, comments, images) && fflush (file) != EOF;
}
XcursorBool
-XcursorFileSave (FILE * file,
+XcursorFileSave (FILE * file,
const XcursorComments *comments,
const XcursorImages *images)
{
if (!file || !comments || !images)
return XcursorFalse;
-
+
_XcursorStdioFileInitialize (file, &f);
return XcursorXcFileSave (&f, comments, images) && fflush (file) != EOF;
}
if (!file || size < 0)
return NULL;
-
+
f = fopen (file, "r");
if (!f)
return NULL;
}
XcursorBool
-XcursorFilenameSave (const char *file,
+XcursorFilenameSave (const char *file,
const XcursorComments *comments,
const XcursorImages *images)
{
_XcursorAddPathElt (char *path, const char *elt, int len)
{
int pathlen = strlen (path);
-
+
/* append / if the path doesn't currently have one */
if (path[0] == '\0' || path[pathlen - 1] != '/')
{
if (!dir || !theme)
return NULL;
-
+
colon = strchr (dir, ':');
if (!colon)
colon = dir + strlen (dir);
-
+
dirlen = colon - dir;
tcolon = strchr (theme, ':');
tcolon = theme + strlen (theme);
themelen = tcolon - theme;
-
+
home = NULL;
homelen = 0;
if (*dir == '~')
* and one for the trailing null
*/
len = 1 + homelen + 1 + dirlen + 1 + themelen + 1;
-
+
full = malloc (len);
if (!full)
return NULL;
if (result)
{
r = result;
- while (*l)
+ while (*l)
{
while (XcursorSep(*l) || XcursorWhite (*l)) l++;
if (!*l)
break;
if (r != result)
*r++ = ':';
- while (*l && !XcursorWhite(*l) &&
+ while (*l && !XcursorWhite(*l) &&
!XcursorSep(*l))
*r++ = *l++;
}
if (!file)
return 0;
-
+
if (!images)
{
int id = XcursorLibraryShape (file);
char *theme = XcursorGetTheme (dpy);
XcursorImages *images = XcursorLibraryLoadImages (file, theme, size);
XcursorCursors *cursors;
-
+
if (!file)
return NULL;
-
+
if (!images)
{
int id = XcursorLibraryShape (file);
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
-
+
#include <X11/Xlib.h>
#include <X11/cursorfont.h>
#include <X11/extensions/Xrender.h>
* Xcursor computes a hash value for the source image
* and tries to load a library cursor of that name.
*/
-
+
/* large bitmaps are unlikely to be cursors */
#define MAX_BITMAP_CURSOR_SIZE 64
/* don't need to remember very many; in fact, 2 is likely sufficient */
Cursor
_XcursorCreateFontCursor (Display *dpy, unsigned int shape);
-
+
#endif /* _XCURSORINT_H_ */
ret = (fs->properties[n].card32 == cursor);
break;
}
+ XFreeFontInfo (NULL, fs, 1);
}
fi = malloc (sizeof (XcursorFontInfo));
if (fi)
if (!dpy || !source_font || !mask_font || !foreground || !background)
return 0;
-
+
if (!XcursorSupportsARGB (dpy) && !XcursorGetThemeCore (dpy))
return None;
-
- if (source_font == mask_font &&
+
+ if (source_font == mask_font &&
_XcursorFontIsCursor (dpy, source_font) &&
source_char + 1 == mask_char)
{
if (!XcursorSupportsARGB (dpy) && !XcursorGetThemeCore (dpy))
return;
-
+
if (width > MAX_BITMAP_CURSOR_SIZE || height > MAX_BITMAP_CURSOR_SIZE)
return;
-
+
info = _XcursorGetDisplayInfo (dpy);
if (!info)
return;
-
+
LockDisplay (dpy);
replace = 0;
now = dpy->request;
if (!dpy || !bitmap)
return NULL;
-
+
info = _XcursorGetDisplayInfo (dpy);
if (!info)
0x0f, 0x8f, 0x4f, 0xcf, 0x2f, 0xaf, 0x6f, 0xef,
0x1f, 0x9f, 0x5f, 0xdf, 0x3f, 0xbf, 0x7f, 0xff
};
-
+
#define RotByte(t,i) (((t) << (i)) | ((t) >> (8 - (i))))
void
* Flip bit order on MSB images
*/
bit_swap = (image->bitmap_bit_order != LSBFirst);
-
+
line = (unsigned char *) image->data;
i = 0;
/*
}
return log;
}
-
+
void
XcursorNoticePutBitmap (Display *dpy,
Drawable draw,
if (!dpy || !image)
return;
-
+
if (!XcursorSupportsARGB (dpy) && !XcursorGetThemeCore (dpy))
return;
-
- if (image->width > MAX_BITMAP_CURSOR_SIZE ||
+
+ if (image->width > MAX_BITMAP_CURSOR_SIZE ||
image->height > MAX_BITMAP_CURSOR_SIZE)
return;
-
+
bmi = _XcursorGetBitmap (dpy, (Pixmap) draw);
if (!bmi)
return;
XImage t = *image;
XInitImage (&t);
-
+
printf ("Cursor image name: ");
for (i = 0; i < XCURSOR_BITMAP_HASH_SIZE; i++)
printf ("%02x", bmi->hash[i]);
if (!XcursorSupportsARGB (dpy) && !XcursorGetThemeCore (dpy))
return None;
-
+
bmi = _XcursorGetBitmap (dpy, source);
if (!bmi || !bmi->has_image)
return None;