From 014c8f38c2e2f0b1b867a16c8718d08712804ab5 Mon Sep 17 00:00:00 2001 From: Boram Park Date: Tue, 21 Aug 2012 18:04:22 +0900 Subject: [PATCH] upload tizen2.0 source --- ChangeLog | 208 ++++++++++++ INSTALL | 0 Makefile.am | 6 +- NEWS | 0 autogen.sh | 12 - configure.ac | 101 +++--- debian/README.source | 73 ---- debian/changelog | 386 ---------------------- debian/compat | 1 - debian/control | 57 ---- debian/copyright | 56 ---- debian/libxcursor-dev.install | 6 - debian/libxcursor-dev.manpages | 1 - debian/libxcursor1-udeb.install | 1 - debian/libxcursor1.install | 1 - debian/rules | 104 ------ debian/watch | 2 - debian/xsfbs/repack.sh | 32 -- debian/xsfbs/xsfbs.mk | 276 ---------------- debian/xsfbs/xsfbs.sh | 622 ----------------------------------- include/X11/Xcursor/Xcursor.h | 28 +- include/X11/Xcursor/Xcursor.h.in | 499 ++++++++++++++++++++++++++++ man/Makefile.am | 104 +++--- man/Xcursor.man | 4 +- man/XcursorCursorsCreate.man | 0 man/XcursorCursorsDestroy.man | 0 man/XcursorFilenameLoad.man | 0 man/XcursorFilenameLoadAllImages.man | 0 man/XcursorFilenameLoadCursor.man | 0 man/XcursorFilenameLoadImage.man | 0 man/XcursorFilenameLoadImages.man | 0 man/XcursorFilenameSave.man | 0 man/XcursorFilenameSaveImages.man | 0 man/XcursorGetDefaultSize.man | 0 man/XcursorGetTheme.man | 0 man/XcursorImageCreate.man | 0 man/XcursorImageDestroy.man | 0 man/XcursorImagesCreate.man | 0 man/XcursorImagesDestroy.man | 0 man/XcursorLibraryLoadCursor.man | 0 man/XcursorLibraryLoadCursors.man | 0 man/XcursorLibraryLoadImage.man | 0 man/XcursorLibraryLoadImages.man | 0 man/XcursorSetDefaultSize.man | 0 man/XcursorSetTheme.man | 0 man/XcursorShapeLoadCursor.man | 0 man/XcursorShapeLoadCursors.man | 0 man/XcursorShapeLoadImage.man | 0 man/XcursorShapeLoadImages.man | 0 man/XcursorSupportsARGB.man | 0 man/XcursorXcFileLoad.man | 0 man/XcursorXcFileLoadAllImages.man | 0 man/XcursorXcFileLoadImage.man | 0 man/XcursorXcFileLoadImages.man | 0 man/XcursorXcFileSave.man | 0 packaging/libXcursor.spec | 85 +++++ packaging/libxcursor.spec | 71 ---- src/Makefile.am | 2 +- src/cursor.c | 66 ++-- src/display.c | 25 +- src/file.c | 98 +++--- src/library.c | 20 +- src/xcursorint.h | 6 +- src/xlib.c | 33 +- 64 files changed, 1042 insertions(+), 1944 deletions(-) mode change 100755 => 100644 ChangeLog mode change 100755 => 100644 INSTALL mode change 100755 => 100644 Makefile.am delete mode 100644 NEWS delete mode 100755 autogen.sh mode change 100755 => 100644 configure.ac delete mode 100644 debian/README.source delete mode 100755 debian/changelog delete mode 100644 debian/compat delete mode 100755 debian/control delete mode 100644 debian/copyright delete mode 100755 debian/libxcursor-dev.install delete mode 100755 debian/libxcursor-dev.manpages delete mode 100644 debian/libxcursor1-udeb.install delete mode 100644 debian/libxcursor1.install delete mode 100755 debian/rules delete mode 100644 debian/watch delete mode 100644 debian/xsfbs/repack.sh delete mode 100644 debian/xsfbs/xsfbs.mk delete mode 100644 debian/xsfbs/xsfbs.sh create mode 100644 include/X11/Xcursor/Xcursor.h.in mode change 100755 => 100644 man/XcursorCursorsCreate.man mode change 100755 => 100644 man/XcursorCursorsDestroy.man mode change 100755 => 100644 man/XcursorFilenameLoad.man mode change 100755 => 100644 man/XcursorFilenameLoadAllImages.man mode change 100755 => 100644 man/XcursorFilenameLoadCursor.man mode change 100755 => 100644 man/XcursorFilenameLoadImage.man mode change 100755 => 100644 man/XcursorFilenameLoadImages.man mode change 100755 => 100644 man/XcursorFilenameSave.man mode change 100755 => 100644 man/XcursorFilenameSaveImages.man mode change 100755 => 100644 man/XcursorGetDefaultSize.man mode change 100755 => 100644 man/XcursorGetTheme.man mode change 100755 => 100644 man/XcursorImageCreate.man mode change 100755 => 100644 man/XcursorImageDestroy.man mode change 100755 => 100644 man/XcursorImagesCreate.man mode change 100755 => 100644 man/XcursorImagesDestroy.man mode change 100755 => 100644 man/XcursorLibraryLoadCursor.man mode change 100755 => 100644 man/XcursorLibraryLoadCursors.man mode change 100755 => 100644 man/XcursorLibraryLoadImage.man mode change 100755 => 100644 man/XcursorLibraryLoadImages.man mode change 100755 => 100644 man/XcursorSetDefaultSize.man mode change 100755 => 100644 man/XcursorSetTheme.man mode change 100755 => 100644 man/XcursorShapeLoadCursor.man mode change 100755 => 100644 man/XcursorShapeLoadCursors.man mode change 100755 => 100644 man/XcursorShapeLoadImage.man mode change 100755 => 100644 man/XcursorShapeLoadImages.man mode change 100755 => 100644 man/XcursorSupportsARGB.man mode change 100755 => 100644 man/XcursorXcFileLoad.man mode change 100755 => 100644 man/XcursorXcFileLoadAllImages.man mode change 100755 => 100644 man/XcursorXcFileLoadImage.man mode change 100755 => 100644 man/XcursorXcFileLoadImages.man mode change 100755 => 100644 man/XcursorXcFileSave.man create mode 100644 packaging/libXcursor.spec delete mode 100644 packaging/libxcursor.spec mode change 100755 => 100644 src/Makefile.am diff --git a/ChangeLog b/ChangeLog old mode 100755 new mode 100644 index 0dd5ca2..95b6b1a --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,211 @@ +commit 2a9eaf3305d1577ad763d56dddd46e10f8d0676b +Author: Alan Coopersmith +Date: Wed Mar 7 18:54:15 2012 -0800 + + libXcursor 1.1.13 + + Signed-off-by: Alan Coopersmith + +commit 8229cf75b34c2991eaf973f05326be9bfa16ef0c +Author: Alan Coopersmith +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 + Reviewed-by: Jeremy Huddleston + +commit 2b8d373bddf427bcd95e2595cb64740ebd1d0d30 +Author: Alan Coopersmith +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 + Reviewed-by: Jeremy Huddleston + +commit bcfb8e8ce56cf47bc6a61bd8c896bafba9e2a9c2 +Author: Jon TURNEY +Date: Thu Sep 22 14:43:38 2011 +0100 + + Add generated Xcursor.h to .gitignore + + Signed-off-by: Jon TURNEY + Reviewed-by: Gaetan Nadon + Tested-by: Gaetan Nadon + Reviewed-by: Alan Coopersmith + +commit 862b9ce4aa819bf87b6e24db9d7d5867cbaa577c +Author: Jon TURNEY +Date: Wed Sep 21 20:50:46 2011 +0100 + + Fix install of generated Xcursor.h when builddir != srcdir + + Signed-off-by: Jon TURNEY + Reviewed-by: Gaetan Nadon + Tested-by: Gaetan Nadon + Reviewed-by: Alan Coopersmith + +commit 334dc4f4df69d780f312f23b860df11bee5e9009 +Author: Alan Coopersmith +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 + Reviewed-by: Gaetan Nadon + +commit e086eb1bf49f2a8c270eaebd5beb595c1dc2973e +Author: Alan Coopersmith +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 + +commit d79ddc01e4b247ae95af3581b93aef2b93e76888 +Author: Alan Coopersmith +Date: Wed Jun 29 21:41:09 2011 -0700 + + libXcursor 1.1.12 + + Signed-off-by: Alan Coopersmith + +commit 4ce23fcd978ed389ea30315c0e02629a31bda265 +Author: Alan Coopersmith +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 + +commit 047993c76a677ca12a2b575990b99e3ddbc0dd58 +Author: Jeremy Huddleston +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 + +commit bee68e54e5c3a4b9f46c81366a720531e3e07a82 +Author: Chris Wilson +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 + +commit f49e7e1608f2dac140f60bcae21d5c37f79fc41b +Author: Chris Wilson +Date: Fri Apr 1 12:15:46 2011 +0100 + + Free the partial header after failing to open the cursor. + + Signed-off-by: Chris Wilson + +commit 073eb2c56f4794275eee40a825dbfe1232bb2690 +Author: Chris Wilson +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 + +commit de50317ec4e0e8da7de84e85d1f7a6d2e184d58b +Author: Gaetan Nadon +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 + +commit a929c3621b9da8e56ce1223afd3e487fc488fa47 +Author: Gaetan Nadon +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 + +commit 96c5877fd7ebc59569f140d9e2cb30fdb8371ef1 +Author: Gaetan Nadon +Date: Fri Jan 28 19:41:37 2011 -0500 + + config: replace deprecated AM_CONFIG_HEADER with AC_CONFIG_HEADERS + + Signed-off-by: Gaetan Nadon + +commit 4f7a749fcb7a8e93d40a7621fa1c159e003b2f5c +Author: Gaetan Nadon +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 + +commit c38adc6bf116146fa1e291b9f4deed45497e5c2e +Author: Gaetan Nadon +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 + commit 731e84d79e83b59d022d0f453b245696b4d2750f Author: Alan Coopersmith Date: Wed Oct 27 22:48:19 2010 -0700 diff --git a/INSTALL b/INSTALL old mode 100755 new mode 100644 diff --git a/Makefile.am b/Makefile.am old mode 100755 new mode 100644 index 976151e..e67a693 --- a/Makefile.am +++ b/Makefile.am @@ -1,6 +1,6 @@ -# +# # 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 @@ -10,7 +10,7 @@ # 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 diff --git a/NEWS b/NEWS deleted file mode 100644 index e69de29..0000000 diff --git a/autogen.sh b/autogen.sh deleted file mode 100755 index 218197d..0000000 --- a/autogen.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/sh - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd $srcdir - -autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? - -#$srcdir/configure --enable-maintainer-mode "$@" diff --git a/configure.ac b/configure.ac old mode 100755 new mode 100644 index 185303f..16c753b --- a/configure.ac +++ b/configure.ac @@ -1,39 +1,42 @@ -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], @@ -41,12 +44,21 @@ 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=], + AS_HELP_STRING([--with-icondir=], [Set default icon directory (default: ${datadir}/icons)]), [ICONDIR="$withval"], [ICONDIR=${datadir}/icons]) @@ -57,24 +69,21 @@ if test "x${ICONDIR}" != "x${datadir}/icons"; then DEF_CURSORPATH="${DEF_CURSORPATH}:${ICONDIR}" fi AC_ARG_WITH(cursorpath, - AC_HELP_STRING([--with-cursorpath=], + AS_HELP_STRING([--with-cursorpath=], [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 diff --git a/debian/README.source b/debian/README.source deleted file mode 100644 index 34ab4bf..0000000 --- a/debian/README.source +++ /dev/null @@ -1,73 +0,0 @@ ------------------------------------------------------- -Quick Guide To Patching This Package For The Impatient ------------------------------------------------------- - -1. Make sure you have quilt installed -2. Unpack the package as usual with "dpkg-source -x" -3. Run the "patch" target in debian/rules -4. Create a new patch with "quilt new" (see quilt(1)) -5. Edit all the files you want to include in the patch with "quilt edit" - (see quilt(1)). -6. Write the patch with "quilt refresh" (see quilt(1)) -7. Run the "clean" target in debian/rules - -Alternatively, instead of using quilt directly, you can drop the patch in to -debian/patches and add the name of the patch to debian/patches/series. - ------------------------------------- -Guide To The X Strike Force Packages ------------------------------------- - -The X Strike Force team maintains X packages in git repositories on -git.debian.org in the pkg-xorg subdirectory. Most upstream packages -are actually maintained in git repositories as well, so they often -just need to be pulled into git.debian.org in a "upstream-*" branch. -Otherwise, the upstream sources are manually installed in the Debian -git repository. - -The .orig.tar.gz upstream source file could be generated this -"upstream-*" branch in the Debian git repository but it is actually -copied from upstream tarballs directly. - -Due to X.org being highly modular, packaging all X.org applications -as their own independent packages would have created too many Debian -packages. For this reason, some X.org applications have been grouped -into larger packages: xutils, xutils-dev, x11-apps, x11-session-utils, -x11-utils, x11-xfs-utils, x11-xkb-utils, x11-xserver-utils. -Most packages, including the X.org server itself and all libraries -and drivers are, however maintained independently. - -The Debian packaging is added by creating the "debian-*" git branch -which contains the aforementioned "upstream-*" branch plus the debian/ -repository files. -When a patch has to be applied to the Debian package, two solutions -are involved: -* If the patch is available in one of the upstream branches, it - may be git'cherry-picked into the Debian repository. In this - case, it appears directly in the .diff.gz. -* Otherwise, the patch is added to debian/patches/ which is managed - with quilt as documented in /usr/share/doc/quilt/README.source. - -quilt is actually invoked by the Debian X packaging through a larger -set of scripts called XSFBS. XSFBS brings some other X specific -features such as managing dependencies and conflicts due to the video -and input driver ABIs. -XSFBS itself is maintained in a separate repository at - git://git.debian.org/pkg-xorg/xsfbs.git -and it is pulled inside the other Debian X repositories when needed. - -The XSFBS patching system requires a build dependency on quilt. Also -a dependency on $(STAMP_DIR)/patch has to be added to debian/rules -so that the XSFBS patching occurs before the actual build. So the -very first target of the build (likely the one running autoreconf) -should depend on $(STAMP_DIR)/patch. It should also not depend on -anything so that parallel builds are correctly supported (nothing -should probably run while patching is being done). And finally, the -clean target should depend on the xsfclean target so that patches -are unapplied on clean. - -When the upstream sources contain some DFSG-nonfree files, they are -listed in text files in debian/prune/ in the "debian-*" branch of -the Debian repository. XSFBS' scripts then take care of removing -these listed files during the build so as to generate a modified -DFSG-free .orig.tar.gz tarball. diff --git a/debian/changelog b/debian/changelog deleted file mode 100755 index 3476c8d..0000000 --- a/debian/changelog +++ /dev/null @@ -1,386 +0,0 @@ -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 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 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 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 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 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 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 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 Sat, 26 Aug 2006 09:31:19 +1000 - -libxcursor (1.1.7-2) unstable; urgency=low - - * Bring X11R7.1 into unstable. - - -- Drew Parsons 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 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 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 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 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 Wed, 12 Apr 2006 20:52:24 -0400 - -libxcursor (1.1.5.2-2) unstable; urgency=low - - * Upload to unstable - - -- David Nusinow Thu, 23 Mar 2006 22:44:31 -0500 - -libxcursor (1.1.5.2-1) experimental; urgency=low - - * First upload to Debian - - -- David Nusinow 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 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 Mon, 12 Dec 2005 15:14:52 +1100 - -xcursor (1.1.5-0ubuntu1) breezy; urgency=low - - * New upstream release. - - -- Daniel Stone 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 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 Tue, 19 Jul 2005 14:54:02 +1000 - -xcursor (1.1.4-0ubuntu3) breezy; urgency=low - - * Rebuild with the current libXrender. - - -- Sebastien Bacher 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 Thu, 30 Jun 2005 16:54:15 +0200 - -xcursor (1.1.4-0ubuntu1) breezy; urgency=low - - * New upstream release. - - -- Daniel Stone 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 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 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 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 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 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 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 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 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 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 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 Sat, 24 May 2003 03:55:44 +0900 - -xcursor (1.0.2-0beta1) unstable; urgency=low - - * Initial Beta Release. - - -- ISHIKAWA Mutsumi Thu, 22 May 2003 02:31:37 +0900 diff --git a/debian/compat b/debian/compat deleted file mode 100644 index 7ed6ff8..0000000 --- a/debian/compat +++ /dev/null @@ -1 +0,0 @@ -5 diff --git a/debian/control b/debian/control deleted file mode 100755 index 9e668b2..0000000 --- a/debian/control +++ /dev/null @@ -1,57 +0,0 @@ -Source: libxcursor -Section: devel -Priority: optional -Maintainer: SooChan Lim , Sangjin Lee , Debian X Strike Force -Uploaders: SooChan Lim , Sung-Jin Park , David Nusinow , Drew Parsons , Cyril Brulebois -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. diff --git a/debian/copyright b/debian/copyright deleted file mode 100644 index d3cfb2b..0000000 --- a/debian/copyright +++ /dev/null @@ -1,56 +0,0 @@ -This package was debianized by ISHIKAWA Mutsumi 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. diff --git a/debian/libxcursor-dev.install b/debian/libxcursor-dev.install deleted file mode 100755 index 47e4cb6..0000000 --- a/debian/libxcursor-dev.install +++ /dev/null @@ -1,6 +0,0 @@ -usr/include/X11/Xcursor/Xcursor.h -usr/lib/libXcursor.a -usr/lib/libXcursor.la -usr/lib/libXcursor.so -usr/lib/pkgconfig/*.pc - diff --git a/debian/libxcursor-dev.manpages b/debian/libxcursor-dev.manpages deleted file mode 100755 index 8b13789..0000000 --- a/debian/libxcursor-dev.manpages +++ /dev/null @@ -1 +0,0 @@ - diff --git a/debian/libxcursor1-udeb.install b/debian/libxcursor1-udeb.install deleted file mode 100644 index 400d2d7..0000000 --- a/debian/libxcursor1-udeb.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/libXcursor.so.* diff --git a/debian/libxcursor1.install b/debian/libxcursor1.install deleted file mode 100644 index 400d2d7..0000000 --- a/debian/libxcursor1.install +++ /dev/null @@ -1 +0,0 @@ -usr/lib/libXcursor.so.* diff --git a/debian/rules b/debian/rules deleted file mode 100755 index d1b3643..0000000 --- a/debian/rules +++ /dev/null @@ -1,104 +0,0 @@ -#!/usr/bin/make -f -# debian/rules for the Debian libxcursor package. -# Copyright © 2004 Scott James Remnant -# Copyright © 2005 Daniel Stone -# Copyright © 2005 David Nusinow - -# 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 diff --git a/debian/watch b/debian/watch deleted file mode 100644 index 9f1353a..0000000 --- a/debian/watch +++ /dev/null @@ -1,2 +0,0 @@ -version=3 -http://xorg.freedesktop.org/releases/individual/lib/ libXcursor-(.*)\.tar\.gz diff --git a/debian/xsfbs/repack.sh b/debian/xsfbs/repack.sh deleted file mode 100644 index 5935cc9..0000000 --- a/debian/xsfbs/repack.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/sh - -set -e - -if ! [ -d debian/prune ]; then - exit 0 -fi - -if [ "x$1" != x--upstream-version ]; then - exit 1 -fi - -version="$2" -filename="$3" - -if [ -z "$version" ] || ! [ -f "$filename" ]; then - exit 1 -fi - -dir="$(pwd)" -tempdir="$(mktemp -d)" - -cd "$tempdir" -tar xf "$dir/$filename" -cat "$dir"/debian/prune/* | while read file; do rm -f */$file; done - -tar czf "$dir/$filename" * -cd "$dir" -rm -rf "$tempdir" -echo "Done pruning upstream tarball" - -exit 0 diff --git a/debian/xsfbs/xsfbs.mk b/debian/xsfbs/xsfbs.mk deleted file mode 100644 index 5e16b10..0000000 --- a/debian/xsfbs/xsfbs.mk +++ /dev/null @@ -1,276 +0,0 @@ -#!/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 . - -# Originally by Stephen Early -# Modified by Mark W. Eichin -# Modified by Adam Heath -# Modified by Branden Robinson -# Modified by Fabio Massimo Di Nitto -# Modified by David Nusinow -# Acknowledgements to Manoj Srivastava. - -# Pass $(DH_OPTIONS) into the environment for debhelper's benefit. -export DH_OPTIONS - -# force quilt to not use ~/.quiltrc and to use debian/patches -QUILT = QUILT_PATCHES=debian/patches quilt --quiltrc /dev/null - -# Set up parameters for the upstream build environment. - -# Determine (source) package name from Debian changelog. -SOURCE_NAME:=$(shell dpkg-parsechangelog -ldebian/changelog \ - | grep '^Source:' | awk '{print $$2}') - -# Determine package version from Debian changelog. -SOURCE_VERSION:=$(shell dpkg-parsechangelog -ldebian/changelog \ - | grep '^Version:' | awk '{print $$2}') - -# Determine upstream version number. -UPSTREAM_VERSION:=$(shell echo $(SOURCE_VERSION) | sed 's/-.*//') - -# Determine the source version without the epoch for make-orig-tar-gz -NO_EPOCH_VER:=$(shell echo $(UPSTREAM_VERSION) | sed 's/^.://') - -# Figure out who's building this package. -BUILDER:=$(shell echo $${DEBEMAIL:-$${EMAIL:-$$(echo $$LOGNAME@$$(cat /etc/mailname 2>/dev/null))}}) - -# Find out if this is an official build; an official build has nothing but -# digits, dots, and/or the codename of a release in the Debian part of the -# version number. Anything else indicates an unofficial build. -OFFICIAL_BUILD:=$(shell VERSION=$(SOURCE_VERSION); if ! expr "$$(echo $${VERSION\#\#*-} | sed 's/\(woody\|sarge\|etch\|lenny\)//g')" : ".*[^0-9.].*" >/dev/null 2>&1; then echo yes; fi) - -# Set up parameters for the Debian build environment. - -# Determine our architecture. -BUILD_ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH) -# Work around some old-time dpkg braindamage. -BUILD_ARCH:=$(subst i486,i386,$(BUILD_ARCH)) -# The DEB_HOST_ARCH variable may be set per the Debian cross-compilation policy. -ifdef DEB_HOST_ARCH - ARCH:=$(DEB_HOST_ARCH) -else - # dpkg-cross sets the ARCH environment variable; if set, use it. - ifdef ARCH - ARCH:=$(ARCH) - else - ARCH:=$(BUILD_ARCH) - endif -endif - -# $(STAMP_DIR) houses stamp files for complex targets. -STAMP_DIR:=stampdir - -# $(DEBTREEDIR) is where all install rules are told (via $(DESTDIR)) to place -# their files. -DEBTREEDIR:=$(CURDIR)/debian/tmp - -# All "important" targets have four lines: -# 1) A target name that is invoked by a package-building tool or the user. -# This consists of a dependency on a "$(STAMP_DIR)/"-prefixed counterpart. -# 2) A line delcaring 1) as a phony target (".PHONY:"). -# 3) A "$(STAMP_DIR)/"-prefixed target which does the actual work, and may -# depend on other targets. -# 4) A line declaring 3) as a member of the $(stampdir_targets) variable; the -# "$(STAMP_DIR)/" prefix is omitted. -# -# This indirection is needed so that the "stamp" files that signify when a rule -# is done can be located in a separate "stampdir". Recall that make has no way -# to know when a goal has been met for a phony target (like "build" or -# "install"). -# -# At the end of each "$(STAMP_DIR)/" target, be sure to run the command ">$@" -# so that the target will not be run again. Removing the file will make Make -# run the target over. - -# All phony targets should be declared as dependencies of .PHONY, even if they -# do not have "($STAMP_DIR)/"-prefixed counterparts. - -# Define a harmless default rule to keep things from going nuts by accident. -.PHONY: default -default: - -# Set up the $(STAMP_DIR) directory. -.PHONY: stampdir -stampdir_targets+=stampdir -stampdir: $(STAMP_DIR)/stampdir -$(STAMP_DIR)/stampdir: - mkdir $(STAMP_DIR) - >$@ - -# Set up the package build directory as quilt expects to find it. -.PHONY: prepare -stampdir_targets+=prepare -prepare: $(STAMP_DIR)/prepare -$(STAMP_DIR)/prepare: $(STAMP_DIR)/log $(STAMP_DIR)/genscripts - >$@ - -.PHONY: log -stampdir_targets+=log -log: $(STAMP_DIR)/log -$(STAMP_DIR)/log: $(STAMP_DIR)/stampdir - mkdir -p $(STAMP_DIR)/log - -# Apply all patches to the upstream source. -.PHONY: patch -stampdir_targets+=patch -patch: $(STAMP_DIR)/patch -$(STAMP_DIR)/patch: $(STAMP_DIR)/prepare - if ! [ `which quilt` ]; then \ - echo "Couldn't find quilt. Please install it or add it to the build-depends for this package."; \ - exit 1; \ - fi; \ - if $(QUILT) next >/dev/null 2>&1; then \ - echo -n "Applying patches..."; \ - if $(QUILT) push -a -v >$(STAMP_DIR)/log/patch 2>&1; then \ - cat $(STAMP_DIR)/log/patch; \ - echo "successful."; \ - else \ - cat $(STAMP_DIR)/log/patch; \ - echo "failed! (check $(STAMP_DIR)/log/patch for details)"; \ - exit 1; \ - fi; \ - else \ - echo "No patches to apply"; \ - fi; \ - >$@ - -# Revert all patches to the upstream source. -.PHONY: unpatch -unpatch: $(STAMP_DIR)/log - rm -f $(STAMP_DIR)/patch - @echo -n "Unapplying patches..."; \ - if $(QUILT) applied >/dev/null 2>/dev/null; then \ - if $(QUILT) pop -a -v >$(STAMP_DIR)/log/unpatch 2>&1; then \ - cat $(STAMP_DIR)/log/unpatch; \ - echo "successful."; \ - else \ - cat $(STAMP_DIR)/log/unpatch; \ - echo "failed! (check $(STAMP_DIR)/log/unpatch for details)"; \ - exit 1; \ - fi; \ - else \ - echo "nothing to do."; \ - fi - -# Clean the generated maintainer scripts. -.PHONY: cleanscripts -cleanscripts: - rm -f $(STAMP_DIR)/genscripts - rm -f debian/*.config \ - debian/*.postinst \ - debian/*.postrm \ - debian/*.preinst \ - debian/*.prerm - -# Clean the package build tree. -.PHONY: xsfclean -xsfclean: cleanscripts unpatch - dh_testdir - rm -rf .pc - rm -rf $(STAMP_DIR) - dh_clean - -# Remove files from the upstream source tree that we don't need, or which have -# licensing problems. It must be run before creating the .orig.tar.gz. -# -# Note: This rule is for Debian package maintainers' convenience, and is not -# needed for conventional build scenarios. -.PHONY: prune-upstream-tree -prune-upstream-tree: - # Ensure we're in the correct directory. - dh_testdir - grep -rvh '^#' debian/prune/ | xargs --no-run-if-empty rm -rf - -# Verify that there are no offsets or fuzz in the patches we apply. -# -# Note: This rule is for Debian package maintainers' convenience, and is not -# needed for conventional build scenarios. -.PHONY: patch-audit -patch-audit: prepare unpatch - @echo -n "Auditing patches..."; \ - >$(STAMP_DIR)/log/patch; \ - FUZZY=; \ - while [ -n "$$($(QUILT) next)" ]; do \ - RESULT=$$($(QUILT) push -v | tee -a $(STAMP_DIR)/log/patch | grep ^Hunk | sed 's/^Hunk.*\(succeeded\|FAILED\).*/\1/');\ - case "$$RESULT" in \ - succeeded) \ - echo "fuzzy patch: $$($(QUILT) top)" \ - | tee -a $(STAMP_DIR)/log/$$($(QUILT) top); \ - FUZZY=yes; \ - ;; \ - FAILED) \ - echo "broken patch: $$($(QUILT) next)" \ - | tee -a $(STAMP_DIR)/log/$$($(QUILT) next); \ - exit 1; \ - ;; \ - esac; \ - done; \ - if [ -n "$$FUZZY" ]; then \ - echo "there were fuzzy patches; please fix."; \ - exit 1; \ - else \ - echo "done."; \ - fi - -# Generate the maintainer scripts. -.PHONY: genscripts -stampdir_targets+=genscripts -genscripts: $(STAMP_DIR)/genscripts -$(STAMP_DIR)/genscripts: $(STAMP_DIR)/stampdir - for FILE in debian/*.config.in \ - debian/*.postinst.in \ - debian/*.postrm.in \ - debian/*.preinst.in \ - debian/*.prerm.in; do \ - if [ -e "$$FILE" ]; then \ - MAINTSCRIPT=$$(echo $$FILE | sed 's/.in$$//'); \ - sed -n '1,/^#INCLUDE_SHELL_LIB#$$/p' <$$FILE \ - | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >$$MAINTSCRIPT.tmp; \ - cat debian/xsfbs/xsfbs.sh >>$$MAINTSCRIPT.tmp; \ - sed -n '/^#INCLUDE_SHELL_LIB#$$/,$$p' <$$FILE \ - | sed -e '/^#INCLUDE_SHELL_LIB#$$/d' >>$$MAINTSCRIPT.tmp; \ - sed -e 's/@SOURCE_VERSION@/$(SOURCE_VERSION)/' \ - -e 's/@OFFICIAL_BUILD@/$(OFFICIAL_BUILD)/' \ - <$$MAINTSCRIPT.tmp >$$MAINTSCRIPT; \ - rm $$MAINTSCRIPT.tmp; \ - fi; \ - done - # Validate syntax of generated shell scripts. - #sh debian/scripts/validate-posix-sh debian/*.config \ - # debian/*.postinst \ - # debian/*.postrm \ - # debian/*.preinst \ - # debian/*.prerm - >$@ - -SERVERMINVERS = $(shell cat /usr/share/xserver-xorg/serverminver 2>/dev/null) -VIDEOABI = $(shell cat /usr/share/xserver-xorg/videoabiver 2>/dev/null) -INPUTABI = $(shell cat /usr/share/xserver-xorg/inputabiver 2>/dev/null) -SERVER_DEPENDS = xserver-xorg-core (>= $(SERVERMINVERS)) -VIDDRIVER_PROVIDES = xserver-xorg-video-$(VIDEOABI) -INPDRIVER_PROVIDES = xserver-xorg-input-$(INPUTABI) -ifeq ($(PACKAGE),) -PACKAGE=$(shell awk '/^Package:/ { print $$2; exit }' < debian/control) -endif - -.PHONY: serverabi -serverabi: install -ifeq ($(SERVERMINVERS),) - @echo error: xserver-xorg-dev needs to be installed - @exit 1 -else - echo "xserver:Depends=$(SERVER_DEPENDS)" >> debian/$(PACKAGE).substvars - echo "xviddriver:Provides=$(VIDDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars - echo "xinpdriver:Provides=$(INPDRIVER_PROVIDES)" >> debian/$(PACKAGE).substvars -endif - -# vim:set noet ai sts=8 sw=8 tw=0: diff --git a/debian/xsfbs/xsfbs.sh b/debian/xsfbs/xsfbs.sh deleted file mode 100644 index 813fd8d..0000000 --- a/debian/xsfbs/xsfbs.sh +++ /dev/null @@ -1,622 +0,0 @@ -# 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 < 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 < 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 " \ - " 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 " \ - " on the World Wide Web for" \ - "instructions, read the file" \ - "/usr/share/doc/debian/bug-reporting.txt from the doc-debian" \ - "package, or install the reportbug package and use the command of" \ - "the same name to file a report." - exit $SHELL_LIB_USAGE_ERROR -} - -font_update () { - # run $UPDATECMDS in $FONTDIRS - - local dir cmd shortcmd x_font_dir_prefix - - x_font_dir_prefix="/usr/share/fonts/X11" - - if [ -z "$UPDATECMDS" ]; then - usage_error "font_update() called but \$UPDATECMDS not set" - fi - if [ -z "$FONTDIRS" ]; then - usage_error "font_update() called but \$FONTDIRS not set" - fi - - reject_unlikely_path_chars "$UPDATECMDS" - reject_unlikely_path_chars "$FONTDIRS" - - for dir in $FONTDIRS; do - if [ -d "$x_font_dir_prefix/$dir" ]; then - for cmd in $UPDATECMDS; do - if which "$cmd" > /dev/null 2>&1; then - shortcmd=${cmd##*/} - observe "running $shortcmd in $dir font directory" - cmd_opts= - if [ "$shortcmd" = "update-fonts-alias" ]; then - cmd_opts=--x11r7-layout - fi - if [ "$shortcmd" = "update-fonts-dir" ]; then - cmd_opts=--x11r7-layout - fi - if [ "$shortcmd" = "update-fonts-scale" ]; then - cmd_opts=--x11r7-layout - fi - $cmd $cmd_opts $dir || warn "$cmd $cmd_opts $dir" \ - "failed; font directory data may not" \ - "be up to date" - else - warn "$cmd not found; not updating corresponding $dir font" \ - "directory data" - fi - done - else - warn "$dir is not a directory; not updating font directory data" - fi - done -} - -remove_conffile_prepare () { - # syntax: remove_conffile_prepare filename official_md5sum ... - # - # Check a conffile "filename" against a list of canonical MD5 checksums. - # If the file's current MD5 checksum matches one of the "official_md5sum" - # operands provided, then prepare the conffile for removal from the system. - # We defer actual deletion until the package is configured so that we can - # roll this operation back if package installation fails. - # - # Call this function from a preinst script in the event $1 is "upgrade" or - # "install" and verify $2 to ensure the package is being upgraded from a - # version (or installed over a version removed-but-not-purged) prior to the - # one in which the conffile was obsoleted. - - local conffile current_checksum - - # validate arguments - if [ $# -lt 2 ]; then - usage_error "remove_conffile_prepare() called with wrong number of" \ - "arguments; expected at least 2, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - shift - - # does the conffile even exist? - if [ -e "$conffile" ]; then - # calculate its checksum - current_checksum=$(md5sum < "$conffile" | sed 's/[[:space:]].*//') - # compare it to each supplied checksum - while [ -n "$1" ]; do - if [ "$current_checksum" = "$1" ]; then - # we found a match; move the confffile and stop looking - observe "preparing obsolete conffile $conffile for removal" - mv "$conffile" "$conffile.$THIS_PACKAGE-tmp" - break - fi - shift - done - fi -} - -remove_conffile_lookup () { - # syntax: remove_conffile_lookup package filename - # - # Lookup the md5sum of a conffile in dpkg's database, and prepare for removal - # if it matches the actual file's md5sum. - # - # Call this function when you would call remove_conffile_prepare but only - # want to check against dpkg's status database instead of known checksums. - - local package conffile old_md5sum - - # validate arguments - if [ $# -ne 2 ]; then - usage_error "remove_conffile_lookup() called with wrong number of" \ - "arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - package="$1" - conffile="$2" - - if ! [ -e "$conffile" ]; then - return - fi - old_md5sum="$(dpkg-query -W -f='${Conffiles}' "$package" | \ - awk '{ if (match($0, "^ '"$conffile"' ")) print $2}')" - if [ -n "$old_md5sum" ]; then - remove_conffile_prepare "$conffile" "$old_md5sum" - fi -} - -remove_conffile_commit () { - # syntax: remove_conffile_commit filename - # - # Complete the removal of a conffile "filename" that has become obsolete. - # - # Call this function from a postinst script after having used - # remove_conffile_prepare() in the preinst. - - local conffile - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "remove_conffile_commit() called with wrong number of" \ - "arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - - # if the temporary file created by remove_conffile_prepare() exists, remove it - if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then - observe "committing removal of obsolete conffile $conffile" - rm "$conffile.$THIS_PACKAGE-tmp" - fi -} - -remove_conffile_rollback () { - # syntax: remove_conffile_rollback filename - # - # Roll back the removal of a conffile "filename". - # - # Call this function from a postrm script in the event $1 is "abort-upgrade" - # or "abort-install" is after having used remove_conffile_prepare() in the - # preinst. - - local conffile - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "remove_conffile_rollback() called with wrong number of" \ - "arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - - # if the temporary file created by remove_conffile_prepare() exists, move it - # back - if [ -e "$conffile.$THIS_PACKAGE-tmp" ]; then - observe "rolling back removal of obsolete conffile $conffile" - mv "$conffile.$THIS_PACKAGE-tmp" "$conffile" - fi -} - -replace_conffile_with_symlink_prepare () { - # syntax: replace_conffile_with_symlink_prepare oldfilename newfilename \ - # official_md5sum ... - # - # Check a conffile "oldfilename" against a list of canonical MD5 checksums. - # If the file's current MD5 checksum matches one of the "official_md5sum" - # operands provided, then prepare the conffile for removal from the system. - # We defer actual deletion until the package is configured so that we can - # roll this operation back if package installation fails. Otherwise copy it - # to newfilename and let dpkg handle it through conffiles mechanism. - # - # Call this function from a preinst script in the event $1 is "upgrade" or - # "install" and verify $2 to ensure the package is being upgraded from a - # version (or installed over a version removed-but-not-purged) prior to the - # one in which the conffile was obsoleted. - - local conffile current_checksum - - # validate arguments - if [ $# -lt 3 ]; then - usage_error "replace_conffile_with_symlink_prepare() called with wrong" \ - " number of arguments; expected at least 3, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - oldconffile="$1" - shift - newconffile="$1" - shift - - remove_conffile_prepare "$_oldconffile" "$@" - # If $oldconffile still exists, then md5sums didn't match. - # Copy it to new one. - if [ -f "$oldconffile" ]; then - cp "$oldconffile" "$newconffile" - fi - -} - -replace_conffile_with_symlink_commit () { - # syntax: replace_conffile_with_symlink_commit oldfilename - # - # Complete the removal of a conffile "oldfilename" that has been - # replaced by a symlink. - # - # Call this function from a postinst script after having used - # replace_conffile_with_symlink_prepare() in the preinst. - - local conffile - - # validate arguments - if [ $# -ne 1 ]; then - usage_error "replace_conffile_with_symlink_commit() called with wrong" \ - "number of arguments; expected 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - conffile="$1" - - remove_conffile_commit "$conffile" -} - -replace_conffile_with_symlink_rollback () { - # syntax: replace_conffile_with_symlink_rollback oldfilename newfilename - # - # Roll back the replacing of a conffile "oldfilename" with symlink to - # "newfilename". - # - # Call this function from a postrm script in the event $1 is "abort-upgrade" - # or "abort-install" and verify $2 to ensure the package failed to upgrade - # from a version (or install over a version removed-but-not-purged) prior - # to the one in which the conffile was obsoleted. - # You should have used replace_conffile_with_symlink_prepare() in the - # preinst. - - local conffile - - # validate arguments - if [ $# -ne 2 ]; then - usage_error "replace_conffile_with_symlink_rollback() called with wrong" \ - "number of arguments; expected 2, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - oldconffile="$1" - newconffile="$2" - - remove_conffile_rollback "$_oldconffile" - if [ -f "$newconffile" ]; then - rm "$newconffile" - fi -} - -run () { - # syntax: run command [ argument ... ] - # - # Run specified command with optional arguments and report its exit status. - # Useful for commands whose exit status may be nonzero, but still acceptable, - # or commands whose failure is not fatal to us. - # - # NOTE: Do *not* use this function with db_get or db_metaget commands; in - # those cases the return value of the debconf command *must* be checked - # before the string returned by debconf is used for anything. - - local retval - - # validate arguments - if [ $# -lt 1 ]; then - usage_error "run() called with wrong number of arguments; expected at" \ - "least 1, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - "$@" || retval=$? - - if [ ${retval:-0} -ne 0 ]; then - observe "command \"$*\" exited with status $retval" - fi -} - -make_symlink_sane () { - # syntax: make_symlink_sane symlink target - # - # Ensure that the symbolic link symlink exists, and points to target. - # - # If symlink does not exist, create it and point it at target. - # - # If symlink exists but is not a symbolic link, back it up. - # - # If symlink exists, is a symbolic link, but points to the wrong location, fix - # it. - # - # If symlink exists, is a symbolic link, and already points to target, do - # nothing. - # - # This function wouldn't be needed if ln had an -I, --idempotent option. - - # Validate arguments. - if [ $# -ne 2 ]; then - usage_error "make_symlink_sane() called with wrong number of arguments;" \ - "expected 2, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - # We could just use the positional parameters as-is, but that makes things - # harder to follow. - local symlink target - - symlink="$1" - target="$2" - - if [ -L "$symlink" ] && [ "$(readlink "$symlink")" = "$target" ]; then - observe "link from $symlink to $target already exists" - else - observe "creating symbolic link from $symlink to $target" - mkdir -p "${target%/*}" "${symlink%/*}" - ln -s -b -S ".dpkg-old" "$target" "$symlink" - fi -} - -migrate_dir_to_symlink () { - # syntax: migrate_dir_to_symlink old_location new_location - # - # Per Debian Policy section 6.5.4, "A directory will never be replaced by a - # symbolic link to a directory or vice versa; instead, the existing state - # (symlink or not) will be left alone and dpkg will follow the symlink if - # there is one." - # - # We have to do it ourselves. - # - # This function moves the contents of old_location, a directory, into - # new_location, a directory, then makes old_location a symbolic link to - # new_location. - # - # old_location need not exist, but if it does, it must be a directory (or a - # symlink to a directory). If it is not, it is backed up. If new_location - # exists already and is not a directory, it is backed up. - # - # This function should be called from a package's preinst so that other - # packages unpacked after this one --- but before this package's postinst runs - # --- are unpacked into new_location even if their payloads contain - # old_location filespecs. - - # Validate arguments. - if [ $# -ne 2 ]; then - usage_error "migrate_dir_to_symlink() called with wrong number of" - "arguments; expected 2, got $#" - exit $SHELL_LIB_USAGE_ERROR - fi - - # We could just use the positional parameters as-is, but that makes things - # harder to follow. - local new old - - old="$1" - new="$2" - - # Is old location a symlink? - if [ -L "$old" ]; then - # Does it already point to new location? - if [ "$(readlink "$old")" = "$new" ]; then - # Nothing to do; migration has already been done. - observe "migration of $old to $new already done" - return 0 - else - # Back it up. - warn "backing up symbolic link $old as $old.dpkg-old" - mv -b "$old" "$old.dpkg-old" - fi - fi - - # Does old location exist, but is not a directory? - if [ -e "$old" ] && ! [ -d "$old" ]; then - # Back it up. - warn "backing up non-directory $old as $old.dpkg-old" - mv -b "$old" "$old.dpkg-old" - fi - - observe "migrating $old to $new" - - # Is new location a symlink? - if [ -L "$new" ]; then - # Does it point the wrong way, i.e., back to where we're migrating from? - if [ "$(readlink "$new")" = "$old" ]; then - # Get rid of it. - observe "removing symbolic link $new which points to $old" - rm "$new" - else - # Back it up. - warn "backing up symbolic link $new as $new.dpkg-old" - mv -b "$new" "$new.dpkg-old" - fi - fi - - # Does new location exist, but is not a directory? - if [ -e "$new" ] && ! [ -d "$new" ]; then - warn "backing up non-directory $new as $new.dpkg-old" - mv -b "$new" "$new.dpkg-old" - fi - - # Create new directory if it does not yet exist. - if ! [ -e "$new" ]; then - observe "creating $new" - mkdir -p "$new" - fi - - # Copy files in old location to new location. Back up any filenames that - # already exist in the new location with the extension ".dpkg-old". - observe "copying files from $old to $new" - if ! (cd "$old" && cp -a -b -S ".dpkg-old" . "$new"); then - die "error(s) encountered while copying files from $old to $new" - fi - - # Remove files at old location. - observe "removing $old" - rm -r "$old" - - # Create symlink from old location to new location. - make_symlink_sane "$old" "$new" -} - -# vim:set ai et sw=2 ts=2 tw=80: - -# GOBSTOPPER: The X Strike Force shell library ends here. diff --git a/include/X11/Xcursor/Xcursor.h b/include/X11/Xcursor/Xcursor.h index 90bfdd6..d0cae62 100644 --- a/include/X11/Xcursor/Xcursor.h +++ b/include/X11/Xcursor/Xcursor.h @@ -1,3 +1,4 @@ +/* include/X11/Xcursor/Xcursor.h. Generated from Xcursor.h.in by configure. */ /* * Copyright © 2002 Keith Packard * @@ -69,14 +70,13 @@ typedef XcursorUInt XcursorPixel; #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)) @@ -239,7 +239,7 @@ void XcursorImageDestroy (XcursorImage *image); /* - * Manage Images objects + * Manage Images objects */ XcursorImages * XcursorImagesCreate (int size); @@ -304,7 +304,7 @@ XcursorXcFileLoad (XcursorFile *file, XcursorImages **imagesp); XcursorBool -XcursorXcFileSave (XcursorFile *file, +XcursorXcFileSave (XcursorFile *file, const XcursorComments *comments, const XcursorImages *images); @@ -321,15 +321,15 @@ XcursorImages * 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); @@ -354,7 +354,7 @@ XcursorBool XcursorFilenameSaveImages (const char *filename, const XcursorImages *images); XcursorBool -XcursorFilenameSave (const char *file, +XcursorFilenameSave (const char *file, const XcursorComments *comments, const XcursorImages *images); @@ -376,7 +376,7 @@ XcursorLibraryPath (void); int XcursorLibraryShape (const char *library); - + /* * Image/Cursor APIs */ @@ -465,7 +465,7 @@ XcursorTryShapeBitmapCursor (Display *dpy, #define XCURSOR_BITMAP_HASH_SIZE 16 void -XcursorImageHash (XImage *image, +XcursorImageHash (XImage *image, unsigned char hash[XCURSOR_BITMAP_HASH_SIZE]); /* diff --git a/include/X11/Xcursor/Xcursor.h.in b/include/X11/Xcursor/Xcursor.h.in new file mode 100644 index 0000000..1a14386 --- /dev/null +++ b/include/X11/Xcursor/Xcursor.h.in @@ -0,0 +1,499 @@ +/* + * 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 +#include +#include + +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 + * + * + * + * 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 diff --git a/man/Makefile.am b/man/Makefile.am index abb555d..f3f4599 100644 --- a/man/Makefile.am +++ b/man/Makefile.am @@ -1,73 +1,53 @@ 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) < $< > $@ diff --git a/man/Xcursor.man b/man/Xcursor.man index a16a7c1..4f01c7e 100644 --- a/man/Xcursor.man +++ b/man/Xcursor.man @@ -276,7 +276,7 @@ XcursorBool XcursorXcFileLoad (XcursorFile *file, XcursorComments **commentsp, X 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 @@ -372,7 +372,7 @@ Gets the current theme name. .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 diff --git a/man/XcursorCursorsCreate.man b/man/XcursorCursorsCreate.man old mode 100755 new mode 100644 diff --git a/man/XcursorCursorsDestroy.man b/man/XcursorCursorsDestroy.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameLoad.man b/man/XcursorFilenameLoad.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameLoadAllImages.man b/man/XcursorFilenameLoadAllImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameLoadCursor.man b/man/XcursorFilenameLoadCursor.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameLoadImage.man b/man/XcursorFilenameLoadImage.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameLoadImages.man b/man/XcursorFilenameLoadImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameSave.man b/man/XcursorFilenameSave.man old mode 100755 new mode 100644 diff --git a/man/XcursorFilenameSaveImages.man b/man/XcursorFilenameSaveImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorGetDefaultSize.man b/man/XcursorGetDefaultSize.man old mode 100755 new mode 100644 diff --git a/man/XcursorGetTheme.man b/man/XcursorGetTheme.man old mode 100755 new mode 100644 diff --git a/man/XcursorImageCreate.man b/man/XcursorImageCreate.man old mode 100755 new mode 100644 diff --git a/man/XcursorImageDestroy.man b/man/XcursorImageDestroy.man old mode 100755 new mode 100644 diff --git a/man/XcursorImagesCreate.man b/man/XcursorImagesCreate.man old mode 100755 new mode 100644 diff --git a/man/XcursorImagesDestroy.man b/man/XcursorImagesDestroy.man old mode 100755 new mode 100644 diff --git a/man/XcursorLibraryLoadCursor.man b/man/XcursorLibraryLoadCursor.man old mode 100755 new mode 100644 diff --git a/man/XcursorLibraryLoadCursors.man b/man/XcursorLibraryLoadCursors.man old mode 100755 new mode 100644 diff --git a/man/XcursorLibraryLoadImage.man b/man/XcursorLibraryLoadImage.man old mode 100755 new mode 100644 diff --git a/man/XcursorLibraryLoadImages.man b/man/XcursorLibraryLoadImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorSetDefaultSize.man b/man/XcursorSetDefaultSize.man old mode 100755 new mode 100644 diff --git a/man/XcursorSetTheme.man b/man/XcursorSetTheme.man old mode 100755 new mode 100644 diff --git a/man/XcursorShapeLoadCursor.man b/man/XcursorShapeLoadCursor.man old mode 100755 new mode 100644 diff --git a/man/XcursorShapeLoadCursors.man b/man/XcursorShapeLoadCursors.man old mode 100755 new mode 100644 diff --git a/man/XcursorShapeLoadImage.man b/man/XcursorShapeLoadImage.man old mode 100755 new mode 100644 diff --git a/man/XcursorShapeLoadImages.man b/man/XcursorShapeLoadImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorSupportsARGB.man b/man/XcursorSupportsARGB.man old mode 100755 new mode 100644 diff --git a/man/XcursorXcFileLoad.man b/man/XcursorXcFileLoad.man old mode 100755 new mode 100644 diff --git a/man/XcursorXcFileLoadAllImages.man b/man/XcursorXcFileLoadAllImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorXcFileLoadImage.man b/man/XcursorXcFileLoadImage.man old mode 100755 new mode 100644 diff --git a/man/XcursorXcFileLoadImages.man b/man/XcursorXcFileLoadImages.man old mode 100755 new mode 100644 diff --git a/man/XcursorXcFileSave.man b/man/XcursorXcFileSave.man old mode 100755 new mode 100644 diff --git a/packaging/libXcursor.spec b/packaging/libXcursor.spec new file mode 100644 index 0000000..210f5d4 --- /dev/null +++ b/packaging/libXcursor.spec @@ -0,0 +1,85 @@ +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 diff --git a/packaging/libxcursor.spec b/packaging/libxcursor.spec deleted file mode 100644 index 5776084..0000000 --- a/packaging/libxcursor.spec +++ /dev/null @@ -1,71 +0,0 @@ -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 - diff --git a/src/Makefile.am b/src/Makefile.am old mode 100755 new mode 100644 index a55b8d6..a44dcb3 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -20,7 +20,7 @@ INCLUDES = -I$(top_srcdir)/include/X11/Xcursor 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) \ diff --git a/src/cursor.c b/src/cursor.c index ac1b2c4..92bd417 100644 --- a/src/cursor.c +++ b/src/cursor.c @@ -51,7 +51,7 @@ XcursorCursorsDestroy (XcursorCursors *cursors) --cursors->ref; if (cursors->ref > 0) return; - + for (n = 0; n < cursors->ncursor; n++) XFreeCursor (cursors->dpy, cursors->cursors[n]); free (cursors); @@ -201,6 +201,9 @@ _XcursorAverageColor (XcursorPixel *pixels, int npixels) XcursorPixel red, green, blue; int n = npixels; + if (n < 1) + return 0; + blue = green = red = 0; while (n--) { @@ -209,9 +212,7 @@ _XcursorAverageColor (XcursorPixel *pixels, int npixels) 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 { @@ -237,17 +238,17 @@ _XcursorHeckbertMedianCut (const XcursorImage *image, XcursorCoreCursor *core) 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 @@ -276,7 +277,7 @@ _XcursorHeckbertMedianCut (const XcursorImage *image, XcursorCoreCursor *core) 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; } @@ -285,7 +286,7 @@ _XcursorHeckbertMedianCut (const XcursorImage *image, XcursorCoreCursor *core) *pn++ = p; } ncolors = pc - colors; - + /* * Compute longest dimension and sort */ @@ -467,16 +468,16 @@ _XcursorFloydSteinberg (const XcursorImage *image, XcursorCoreCursor *core) 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) @@ -499,9 +500,9 @@ _XcursorFloydSteinberg (const XcursorImage *image, XcursorCoreCursor *core) } 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; @@ -536,9 +537,9 @@ _XcursorThreshold (const XcursorImage *image, XcursorCoreCursor *core) } } 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; @@ -548,7 +549,7 @@ Cursor XcursorImageLoadCursor (Display *dpy, const XcursorImage *image) { Cursor cursor; - + #if RENDER_MAJOR > 0 || RENDER_MINOR >= 5 if (XcursorSupportsARGB (dpy)) { @@ -580,13 +581,13 @@ XcursorImageLoadCursor (Display *dpy, const XcursorImage *image) 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); } @@ -600,15 +601,18 @@ XcursorImageLoadCursor (Display *dpy, const XcursorImage *image) 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) { @@ -641,16 +645,16 @@ XcursorImageLoadCursor (Display *dpy, const XcursorImage *image) 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"); @@ -701,7 +705,7 @@ XcursorImagesLoadCursor (Display *dpy, const XcursorImages *images) XcursorCursors *cursors = XcursorImagesLoadCursors (dpy, images); XAnimCursor *anim; int n; - + if (!cursors) return 0; anim = malloc (cursors->ncursor * sizeof (XAnimCursor)); @@ -733,7 +737,7 @@ XcursorFilenameLoadCursor (Display *dpy, const char *file) int size = XcursorGetDefaultSize (dpy); XcursorImages *images = XcursorFilenameLoadImages (file, size); Cursor cursor; - + if (!images) return None; cursor = XcursorImagesLoadCursor (dpy, images); @@ -747,7 +751,7 @@ XcursorFilenameLoadCursors (Display *dpy, const char *file) int size = XcursorGetDefaultSize (dpy); XcursorImages *images = XcursorFilenameLoadImages (file, size); XcursorCursors *cursors; - + if (!images) return NULL; cursors = XcursorImagesLoadCursors (dpy, images); @@ -767,7 +771,7 @@ _XcursorCreateGlyphCursor(Display *dpy, unsigned int mask_char, XColor _Xconst *foreground, XColor _Xconst *background) -{ +{ Cursor cid; register xCreateGlyphCursorReq *req; @@ -799,21 +803,21 @@ _XcursorCreateFontCursor (Display *dpy, unsigned int shape) 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. 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); } diff --git a/src/display.c b/src/display.c index c296807..7998fe7 100644 --- a/src/display.c +++ b/src/display.c @@ -35,6 +35,13 @@ _XcursorFreeDisplayInfo (XcursorDisplayInfo *info) 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); } @@ -119,7 +126,7 @@ _XcursorGetDisplayInfo (Display *dpy) return NULL; info->next = NULL; info->display = dpy; - + info->codes = XAddExtension (dpy); if (!info->codes) { @@ -155,7 +162,7 @@ _XcursorGetDisplayInfo (Display *dpy) info->has_anim_cursor = XcursorFalse; } } - + info->size = 0; /* @@ -166,7 +173,7 @@ _XcursorGetDisplayInfo (Display *dpy) v = XGetDefault (dpy, "Xcursor", "size"); if (v) info->size = atoi (v); - + /* * Use the Xft size to guess a size; make cursors 16 "points" tall */ @@ -179,15 +186,15 @@ _XcursorGetDisplayInfo (Display *dpy) 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 @@ -197,7 +204,7 @@ _XcursorGetDisplayInfo (Display *dpy) */ info->size = dim / 48; } - + info->theme = NULL; info->theme_from_config = NULL; @@ -280,7 +287,7 @@ _XcursorGetDisplayInfo (Display *dpy) _XcursorDisplayInfo = info; } _XUnlockMutex (_Xglobal_lock); - + return info; } @@ -366,7 +373,7 @@ XcursorGetThemeCore (Display *dpy) if (!info) return XcursorFalse; return info->theme_core; - + } XcursorBool diff --git a/src/file.c b/src/file.c index 6c4f1bb..efe6d4b 100644 --- a/src/file.c +++ b/src/file.c @@ -53,7 +53,7 @@ XcursorImagesCreate (int size) { XcursorImages *images; - images = malloc (sizeof (XcursorImages) + + images = malloc (sizeof (XcursorImages) + size * sizeof (XcursorImage *)); if (!images) return NULL; @@ -82,10 +82,10 @@ void XcursorImagesSetName (XcursorImages *images, const char *name) { char *new; - + if (!images || !name) return; - + new = malloc (strlen (name) + 1); if (!new) @@ -180,7 +180,7 @@ _XcursorWriteUInt (XcursorFile *file, XcursorUInt u) if (!file) return XcursorFalse; - + bytes[0] = u; bytes[1] = u >> 8; bytes[2] = u >> 16; @@ -232,7 +232,7 @@ _XcursorReadFileHeader (XcursorFile *file) if (!file) return NULL; - + if (!_XcursorReadUInt (file, &head.magic)) return NULL; if (head.magic != XCURSOR_MAGIC) @@ -274,7 +274,7 @@ _XcursorReadFileHeader (XcursorFile *file) static XcursorUInt _XcursorFileHeaderLength (XcursorFileHeader *fileHeader) { - return (XCURSOR_FILE_HEADER_LEN + + return (XCURSOR_FILE_HEADER_LEN + fileHeader->ntoc * XCURSOR_FILE_TOC_LEN); } @@ -285,7 +285,7 @@ _XcursorWriteFileHeader (XcursorFile *file, XcursorFileHeader *fileHeader) if (!file || !fileHeader) return XcursorFalse; - + if (!_XcursorWriteUInt (file, fileHeader->magic)) return XcursorFalse; if (!_XcursorWriteUInt (file, fileHeader->header)) @@ -307,7 +307,7 @@ _XcursorWriteFileHeader (XcursorFile *file, XcursorFileHeader *fileHeader) } static XcursorBool -_XcursorSeekToToc (XcursorFile *file, +_XcursorSeekToToc (XcursorFile *file, XcursorFileHeader *fileHeader, int toc) { @@ -423,7 +423,7 @@ _XcursorFindImageToc (XcursorFileHeader *fileHeader, } static XcursorImage * -_XcursorReadImage (XcursorFile *file, +_XcursorReadImage (XcursorFile *file, XcursorFileHeader *fileHeader, int toc) { @@ -455,7 +455,7 @@ _XcursorReadImage (XcursorFile *file, 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) @@ -488,7 +488,7 @@ _XcursorImageLength (XcursorImage *image) } static XcursorBool -_XcursorWriteImage (XcursorFile *file, +_XcursorWriteImage (XcursorFile *file, XcursorFileHeader *fileHeader, int toc, XcursorImage *image) @@ -508,16 +508,16 @@ _XcursorWriteImage (XcursorFile *file, 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; @@ -529,7 +529,7 @@ _XcursorWriteImage (XcursorFile *file, return XcursorFalse; if (!_XcursorWriteUInt (file, image->delay)) return XcursorFalse; - + /* write the image */ n = image->width * image->height; p = image->pixels; @@ -543,7 +543,7 @@ _XcursorWriteImage (XcursorFile *file, } static XcursorComment * -_XcursorReadComment (XcursorFile *file, +_XcursorReadComment (XcursorFile *file, XcursorFileHeader *fileHeader, int toc) { @@ -579,7 +579,7 @@ _XcursorCommentLength (XcursorComment *comment) } static XcursorBool -_XcursorWriteComment (XcursorFile *file, +_XcursorWriteComment (XcursorFile *file, XcursorFileHeader *fileHeader, int toc, XcursorComment *comment) @@ -591,24 +591,24 @@ _XcursorWriteComment (XcursorFile *file, 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; @@ -622,7 +622,7 @@ XcursorXcFileLoadImage (XcursorFile *file, int size) int nsize; int toc; XcursorImage *image; - + if (size < 0) return NULL; fileHeader = _XcursorReadFileHeader (file); @@ -648,7 +648,7 @@ XcursorXcFileLoadImages (XcursorFile *file, int size) XcursorImages *images; int n; int toc; - + if (!file || size < 0) return NULL; fileHeader = _XcursorReadFileHeader (file); @@ -671,7 +671,7 @@ XcursorXcFileLoadImages (XcursorFile *file, int size) 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; @@ -695,10 +695,10 @@ XcursorXcFileLoadAllImages (XcursorFile *file) int nimage; int n; int toc; - + if (!file) return NULL; - + fileHeader = _XcursorReadFileHeader (file); if (!fileHeader) return NULL; @@ -713,7 +713,10 @@ XcursorXcFileLoadAllImages (XcursorFile *file) } images = XcursorImagesCreate (nimage); if (!images) + { + _XcursorFileHeaderDestroy (fileHeader); return NULL; + } for (toc = 0; toc < fileHeader->ntoc; toc++) { switch (fileHeader->tocs[toc].type) { @@ -749,7 +752,7 @@ XcursorXcFileLoad (XcursorFile *file, XcursorComment *comment; XcursorComments *comments; int toc; - + if (!file) return 0; fileHeader = _XcursorReadFileHeader (file); @@ -813,7 +816,7 @@ XcursorXcFileLoad (XcursorFile *file, } XcursorBool -XcursorXcFileSave (XcursorFile *file, +XcursorXcFileSave (XcursorFile *file, const XcursorComments *comments, const XcursorImages *images) { @@ -821,21 +824,21 @@ XcursorXcFileSave (XcursorFile *file, 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++) { @@ -845,7 +848,7 @@ XcursorXcFileSave (XcursorFile *file, position += _XcursorImageLength (images->images[n]); toc++; } - + for (n = 0; n < comments->ncomment; n++) { fileHeader->tocs[toc].type = XCURSOR_COMMENT_TYPE; @@ -854,13 +857,13 @@ XcursorXcFileSave (XcursorFile *file, position += _XcursorCommentLength (comments->comments[n]); toc++; } - + /* * Write the header and the toc */ if (!_XcursorWriteFileHeader (file, fileHeader)) goto bail; - + /* * Write the images */ @@ -871,7 +874,7 @@ XcursorXcFileSave (XcursorFile *file, goto bail; toc++; } - + /* * Write the comments */ @@ -881,7 +884,7 @@ XcursorXcFileSave (XcursorFile *file, goto bail; toc++; } - + _XcursorFileHeaderDestroy (fileHeader); return XcursorTrue; bail: @@ -956,8 +959,8 @@ XcursorFileLoadAllImages (FILE *file) } XcursorBool -XcursorFileLoad (FILE *file, - XcursorComments **commentsp, +XcursorFileLoad (FILE *file, + XcursorComments **commentsp, XcursorImages **imagesp) { XcursorFile f; @@ -972,10 +975,13 @@ XcursorFileLoad (FILE *file, 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; @@ -984,7 +990,7 @@ XcursorFileSaveImages (FILE *file, const XcursorImages *images) } XcursorBool -XcursorFileSave (FILE * file, +XcursorFileSave (FILE * file, const XcursorComments *comments, const XcursorImages *images) { @@ -992,7 +998,7 @@ XcursorFileSave (FILE * file, if (!file || !comments || !images) return XcursorFalse; - + _XcursorStdioFileInitialize (file, &f); return XcursorXcFileSave (&f, comments, images) && fflush (file) != EOF; } @@ -1022,7 +1028,7 @@ XcursorFilenameLoadImages (const char *file, int size) if (!file || size < 0) return NULL; - + f = fopen (file, "r"); if (!f) return NULL; @@ -1084,7 +1090,7 @@ XcursorFilenameSaveImages (const char *file, const XcursorImages *images) } XcursorBool -XcursorFilenameSave (const char *file, +XcursorFilenameSave (const char *file, const XcursorComments *comments, const XcursorImages *images) { diff --git a/src/library.c b/src/library.c index 86f2d76..48b75bf 100644 --- a/src/library.c +++ b/src/library.c @@ -50,7 +50,7 @@ static void _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] != '/') { @@ -83,11 +83,11 @@ _XcursorBuildThemeDir (const char *dir, const char *theme) if (!dir || !theme) return NULL; - + colon = strchr (dir, ':'); if (!colon) colon = dir + strlen (dir); - + dirlen = colon - dir; tcolon = strchr (theme, ':'); @@ -95,7 +95,7 @@ _XcursorBuildThemeDir (const char *dir, const char *theme) tcolon = theme + strlen (theme); themelen = tcolon - theme; - + home = NULL; homelen = 0; if (*dir == '~') @@ -113,7 +113,7 @@ _XcursorBuildThemeDir (const char *dir, const char *theme) * and one for the trailing null */ len = 1 + homelen + 1 + dirlen + 1 + themelen + 1; - + full = malloc (len); if (!full) return NULL; @@ -184,14 +184,14 @@ _XcursorThemeInherits (const char *full) 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++; } @@ -324,7 +324,7 @@ XcursorLibraryLoadCursor (Display *dpy, const char *file) if (!file) return 0; - + if (!images) { int id = XcursorLibraryShape (file); @@ -349,10 +349,10 @@ XcursorLibraryLoadCursors (Display *dpy, const char *file) char *theme = XcursorGetTheme (dpy); XcursorImages *images = XcursorLibraryLoadImages (file, theme, size); XcursorCursors *cursors; - + if (!file) return NULL; - + if (!images) { int id = XcursorLibraryShape (file); diff --git a/src/xcursorint.h b/src/xcursorint.h index c2eec32..d8f9ea3 100644 --- a/src/xcursorint.h +++ b/src/xcursorint.h @@ -26,7 +26,7 @@ #ifdef HAVE_CONFIG_H #include "config.h" #endif - + #include #include #include @@ -53,7 +53,7 @@ typedef struct _XcursorFontInfo { * 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 */ @@ -103,5 +103,5 @@ _XcursorCreateGlyphCursor(Display *dpy, Cursor _XcursorCreateFontCursor (Display *dpy, unsigned int shape); - + #endif /* _XCURSORINT_H_ */ diff --git a/src/xlib.c b/src/xlib.c index 0475d11..15716b2 100644 --- a/src/xlib.c +++ b/src/xlib.c @@ -64,6 +64,7 @@ _XcursorFontIsCursor (Display *dpy, Font font) ret = (fs->properties[n].card32 == cursor); break; } + XFreeFontInfo (NULL, fs, 1); } fi = malloc (sizeof (XcursorFontInfo)); if (fi) @@ -91,11 +92,11 @@ XcursorTryShapeCursor (Display *dpy, 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) { @@ -130,14 +131,14 @@ XcursorNoticeCreateBitmap (Display *dpy, 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; @@ -173,7 +174,7 @@ _XcursorGetBitmap (Display *dpy, Pixmap bitmap) if (!dpy || !bitmap) return NULL; - + info = _XcursorGetDisplayInfo (dpy); if (!info) @@ -232,7 +233,7 @@ static unsigned char const _reverse_byte[0x100] = { 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 @@ -272,7 +273,7 @@ XcursorImageHash (XImage *image, * Flip bit order on MSB images */ bit_swap = (image->bitmap_bit_order != LSBFirst); - + line = (unsigned char *) image->data; i = 0; /* @@ -311,7 +312,7 @@ _XcursorLogDiscover (void) } return log; } - + void XcursorNoticePutBitmap (Display *dpy, Drawable draw, @@ -321,14 +322,14 @@ XcursorNoticePutBitmap (Display *dpy, 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; @@ -373,7 +374,7 @@ XcursorNoticePutBitmap (Display *dpy, XImage t = *image; XInitImage (&t); - + printf ("Cursor image name: "); for (i = 0; i < XCURSOR_BITMAP_HASH_SIZE; i++) printf ("%02x", bmi->hash[i]); @@ -407,7 +408,7 @@ XcursorTryShapeBitmapCursor (Display *dpy, if (!XcursorSupportsARGB (dpy) && !XcursorGetThemeCore (dpy)) return None; - + bmi = _XcursorGetBitmap (dpy, source); if (!bmi || !bmi->has_image) return None; -- 2.7.4