--- libxxf86vm-1.1.1.orig/configure.ac +++ libxxf86vm-1.1.1/configure.ac @@ -22,6 +22,12 @@ XORG_CHECK_MALLOC_ZERO +# Check for _XEatDataWords function that may be patched into older Xlib release +SAVE_LIBS="$LIBS" +LIBS="$XXF86VM_LIBS" +AC_CHECK_FUNCS([_XEatDataWords]) +LIBS="$SAVE_LIBS" + AC_OUTPUT([Makefile src/Makefile man/Makefile --- libxxf86vm-1.1.1.orig/autogen.sh +++ libxxf86vm-1.1.1/autogen.sh @@ -0,0 +1,13 @@ +#! /bin/sh + +srcdir=`dirname $0` +test -z "$srcdir" && srcdir=. + +ORIGDIR=`pwd` +cd $srcdir + +autoreconf -v --install || exit 1 +cd $ORIGDIR || exit $? + +$srcdir/configure --enable-maintainer-mode "$@" + --- libxxf86vm-1.1.1.orig/src/XF86VMode.c +++ libxxf86vm-1.1.1/src/XF86VMode.c @@ -30,11 +30,27 @@ /* THIS IS NOT AN X CONSORTIUM STANDARD */ +#ifdef HAVE_CONFIG_H +#include +#endif + #include #include #include #include #include +#include + +#ifndef HAVE__XEATDATAWORDS +static inline void _XEatDataWords(Display *dpy, unsigned long n) +{ +# ifndef LONG64 + if (n >= (ULONG_MAX >> 2)) + _XIOError(dpy); +# endif + _XEatData (dpy, n << 2); +} +#endif #ifdef DEBUG #include @@ -203,6 +219,7 @@ xXF86OldVidModeGetModeLineReply oldrep; xXF86VidModeGetModeLineReq *req; int majorVersion, minorVersion; + Bool result = True; XF86VidModeCheckExtension (dpy, info, False); XF86VidModeQueryVersion(dpy, &majorVersion, &minorVersion); @@ -254,18 +271,22 @@ } if (modeline->privsize > 0) { - if (!(modeline->private = Xcalloc(modeline->privsize, sizeof(INT32)))) { - _XEatData(dpy, (modeline->privsize) * sizeof(INT32)); - Xfree(modeline->private); - return False; - } - _XRead(dpy, (char*)modeline->private, modeline->privsize * sizeof(INT32)); + if (modeline->privsize < (INT_MAX / sizeof(INT32))) + modeline->private = Xcalloc(modeline->privsize, sizeof(INT32)); + else + modeline->private = NULL; + if (modeline->private == NULL) { + _XEatDataWords(dpy, rep.length - + ((SIZEOF(xXF86VidModeGetModeLineReply) - SIZEOF(xReply)) >> 2)); + result = False; + } else + _XRead(dpy, (char*)modeline->private, modeline->privsize * sizeof(INT32)); } else { modeline->private = NULL; } UnlockDisplay(dpy); SyncHandle(); - return True; + return result; } Bool @@ -317,11 +338,10 @@ if (!(modelines = (XF86VidModeModeInfo **) Xcalloc(rep.modecount, sizeof(XF86VidModeModeInfo *) +sizeof(XF86VidModeModeInfo)))) { - if (majorVersion < 2) - _XEatData(dpy, (rep.modecount) * sizeof(xXF86OldVidModeModeInfo)); - else - _XEatData(dpy, (rep.modecount) * sizeof(xXF86VidModeModeInfo)); - Xfree(modelines); + _XEatDataWords(dpy, rep.length - + ((SIZEOF(xXF86VidModeGetAllModeLinesReply) - SIZEOF(xReply)) >> 2)); + UnlockDisplay(dpy); + SyncHandle(); return False; } mdinfptr = (XF86VidModeModeInfo *) ( @@ -352,8 +372,7 @@ if (oldxmdline.privsize > 0) { if (!(modelines[i]->private = Xcalloc(oldxmdline.privsize, sizeof(INT32)))) { - _XEatData(dpy, (oldxmdline.privsize) * sizeof(INT32)); - Xfree(modelines[i]->private); + _XEatDataWords(dpy, oldxmdline.privsize); } else { _XRead(dpy, (char*)modelines[i]->private, oldxmdline.privsize * sizeof(INT32)); @@ -383,8 +402,7 @@ if (xmdline.privsize > 0) { if (!(modelines[i]->private = Xcalloc(xmdline.privsize, sizeof(INT32)))) { - _XEatData(dpy, (xmdline.privsize) * sizeof(INT32)); - Xfree(modelines[i]->private); + _XEatDataWords(dpy, xmdline.privsize); } else { _XRead(dpy, (char*)modelines[i]->private, xmdline.privsize * sizeof(INT32)); @@ -860,6 +878,7 @@ xXF86VidModeGetMonitorReq *req; CARD32 syncrange; int i; + Bool result = True; XF86VidModeCheckExtension (dpy, info, False); @@ -879,63 +898,57 @@ monitor->bandwidth = (float)rep.bandwidth / 1e6; #endif if (rep.vendorLength) { - if (!(monitor->vendor = (char *)Xcalloc(rep.vendorLength + 1, 1))) { - _XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 + - ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3)); - return False; - } + monitor->vendor = Xcalloc(rep.vendorLength + 1, 1); + if (monitor->vendor == NULL) + result = False; } else { monitor->vendor = NULL; } - if (rep.modelLength) { - if (!(monitor->model = Xcalloc(rep.modelLength + 1, 1))) { - _XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 + - ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3)); - if (monitor->vendor) - Xfree(monitor->vendor); - return False; - } + if (result && rep.modelLength) { + monitor->model = Xcalloc(rep.modelLength + 1, 1); + if (monitor->model == NULL) + result = False; } else { monitor->model = NULL; } - if (!(monitor->hsync = Xcalloc(rep.nhsync, sizeof(XF86VidModeSyncRange)))) { - _XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 + - ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3)); - - if (monitor->vendor) - Xfree(monitor->vendor); - if (monitor->model) - Xfree(monitor->model); - return False; + if (result) { + monitor->hsync = Xcalloc(rep.nhsync, sizeof(XF86VidModeSyncRange)); + monitor->vsync = Xcalloc(rep.nvsync, sizeof(XF86VidModeSyncRange)); + if ((monitor->hsync == NULL) || (monitor->vsync == NULL)) + result = False; + } else { + monitor->hsync = monitor->vsync = NULL; } - if (!(monitor->vsync = Xcalloc(rep.nvsync, sizeof(XF86VidModeSyncRange)))) { - _XEatData(dpy, (rep.nhsync + rep.nvsync) * 4 + - ((rep.vendorLength+3) & ~3) + ((rep.modelLength+3) & ~3)); - if (monitor->vendor) - Xfree(monitor->vendor); - if (monitor->model) - Xfree(monitor->model); + if (result == False) { + _XEatDataWords(dpy, rep.length); + Xfree(monitor->vendor); + monitor->vendor = NULL; + Xfree(monitor->model); + monitor->model = NULL; Xfree(monitor->hsync); - return False; + monitor->hsync = NULL; + Xfree(monitor->vsync); + monitor->vsync = NULL; + } + else { + for (i = 0; i < rep.nhsync; i++) { + _XRead(dpy, (char *)&syncrange, 4); + monitor->hsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0; + monitor->hsync[i].hi = (float)(syncrange >> 16) / 100.0; + } + for (i = 0; i < rep.nvsync; i++) { + _XRead(dpy, (char *)&syncrange, 4); + monitor->vsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0; + monitor->vsync[i].hi = (float)(syncrange >> 16) / 100.0; + } + if (rep.vendorLength) + _XReadPad(dpy, monitor->vendor, rep.vendorLength); + if (rep.modelLength) + _XReadPad(dpy, monitor->model, rep.modelLength); } - for (i = 0; i < rep.nhsync; i++) { - _XRead(dpy, (char *)&syncrange, 4); - monitor->hsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0; - monitor->hsync[i].hi = (float)(syncrange >> 16) / 100.0; - } - for (i = 0; i < rep.nvsync; i++) { - _XRead(dpy, (char *)&syncrange, 4); - monitor->vsync[i].lo = (float)(syncrange & 0xFFFF) / 100.0; - monitor->vsync[i].hi = (float)(syncrange >> 16) / 100.0; - } - if (rep.vendorLength) - _XReadPad(dpy, monitor->vendor, rep.vendorLength); - if (rep.modelLength) - _XReadPad(dpy, monitor->model, rep.modelLength); - UnlockDisplay(dpy); SyncHandle(); - return True; + return result; } Bool @@ -1018,6 +1031,7 @@ xXF86VidModeGetDotClocksReq *req; int i, *dotclocks; CARD32 dotclk; + Bool result = True; XF86VidModeCheckExtension (dpy, info, False); @@ -1037,20 +1051,22 @@ *maxclocksPtr = rep.maxclocks; *flagsPtr = rep.flags; - if (!(dotclocks = (int*) Xcalloc(rep.clocks, sizeof(int)))) { - _XEatData(dpy, (rep.clocks) * 4); - Xfree(dotclocks); - return False; - } - - for (i = 0; i < rep.clocks; i++) { - _XRead(dpy, (char*)&dotclk, 4); - dotclocks[i] = dotclk; + dotclocks = Xcalloc(rep.clocks, sizeof(int)); + if (dotclocks == NULL) { + _XEatDataWords(dpy, rep.length - + ((SIZEOF(xXF86VidModeGetDotClocksReply) - SIZEOF(xReply)) >> 2)); + result = False; + } + else { + for (i = 0; i < rep.clocks; i++) { + _XRead(dpy, (char*)&dotclk, 4); + dotclocks[i] = dotclk; + } } *clocksPtr = dotclocks; UnlockDisplay(dpy); SyncHandle(); - return True; + return result; } Bool @@ -1097,6 +1113,7 @@ XExtDisplayInfo *info = find_display (dpy); xXF86VidModeGetGammaRampReq *req; xXF86VidModeGetGammaRampReply rep; + Bool result = True; XF86VidModeCheckExtension (dpy, info, False); @@ -1107,19 +1124,23 @@ req->screen = screen; req->size = size; if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) { - UnlockDisplay (dpy); - SyncHandle (); - return False; + result = False; } - if(rep.size) { - _XRead(dpy, (char*)red, rep.size << 1); - _XRead(dpy, (char*)green, rep.size << 1); - _XRead(dpy, (char*)blue, rep.size << 1); + else if (rep.size) { + if (rep.size <= size) { + _XRead(dpy, (char*)red, rep.size << 1); + _XRead(dpy, (char*)green, rep.size << 1); + _XRead(dpy, (char*)blue, rep.size << 1); + } + else { + _XEatDataWords(dpy, rep.length); + result = False; + } } UnlockDisplay(dpy); SyncHandle(); - return True; + return result; } Bool XF86VidModeGetGammaRampSize( --- libxxf86vm-1.1.1.orig/debian/libxxf86vm-dev.install +++ libxxf86vm-1.1.1/debian/libxxf86vm-dev.install @@ -0,0 +1,5 @@ +usr/share/man/* +usr/lib/*/libXxf86vm.a +usr/lib/*/libXxf86vm.so +usr/lib/*/pkgconfig/xxf86vm.pc +usr/include/X11/extensions/ --- libxxf86vm-1.1.1.orig/debian/changelog +++ libxxf86vm-1.1.1/debian/changelog @@ -0,0 +1,170 @@ +libxxf86vm (1:1.1.1-2ubuntu0.1) precise-security; urgency=low + + * SECURITY UPDATE: denial of service and possible code execution via + incorrect memory size calculations + - ef95f1c3737d9efc7d97fb1784f80ef3540a846b + - a89b1ad3377bfef9bab52f15f98b00f6540d531a + - 8ed00bd0a7c44c7fece687e2566d920ea74ef809 + - 6c82906f25abcb0f8ec92bcdaf1872bd8b63ca5d + - d0355b28dd53fba6fb29c350e090ed4a73d4c480 + - 284a88e21fc05a63466115b33efa411c60d988c9 + - 47bb28ac0e6e49d3b6eb90c7c215f2fcf54f1a95 + - 4c4123441e40da97acd10f58911193ad3dcef5cd + - CVE-2013-2001 + + -- Marc Deslauriers Tue, 28 May 2013 14:08:48 -0400 + +libxxf86vm (1:1.1.1-2build1) precise; urgency=low + + * No-change rebuild against current pkgbinarymangler to fix broken + md5sums. (see LP #875466) + + -- Martin Pitt Wed, 29 Feb 2012 17:58:59 +0100 + +libxxf86vm (1:1.1.1-2) unstable; urgency=low + + * Team upload. + + [ Steve Langasek ] + * Build for multiarch. + + [ Timo Aaltonen ] + * Switch to dh. + * Remove xsfbs accordingly. + * Bump Standards-Version to 3.9.2 (no changes). + * Remove David Nusinow and Andres Salomon from Uploaders. + + -- Julien Cristau Sun, 12 Jun 2011 16:41:06 +0200 + +libxxf86vm (1:1.1.1-1) 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 ] + * New upstream release. + * Update debian/copyright from upstream COPYING. + * Bump xutils-dev build-dep for new macros. + * Switch from --list-missing to --fail-missing for additional safety. + * Exclude libXxf86vm.la from dh_install accordingly. + * Add myself to Uploaders. + + -- Cyril Brulebois Fri, 19 Nov 2010 14:28:15 +0100 + +libxxf86vm (1:1.1.0-2) unstable; urgency=low + + * Upload to unstable. + + -- Julien Cristau Wed, 06 Jan 2010 13:02:53 +0000 + +libxxf86vm (1:1.1.0-1) experimental; urgency=low + + [ Timo Aaltonen ] + * New upstream release. + * 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 libxx86vm-dev. This was needed + for upgrades from sarge. + * Add includes in -dev, bump {Build-,}Depends, add Replaces on + x11proto-xf86vidmode-dev. + * Move -dbg package to section debug. + + -- Julien Cristau Wed, 02 Dec 2009 16:29:01 +0100 + +libxxf86vm (1:1.0.2-1) unstable; urgency=low + + [ Brice Goglin ] + * Add a link to www.X.org and a reference to the upstream module + in the long description. + * Add upstream URL to debian/copyright. + * Install the upstream ChangeLog. + + [ Julien Cristau ] + * New upstream release. + + -- Julien Cristau Tue, 08 Jul 2008 23:45:15 +0200 + +libxxf86vm (1:1.0.1-3) unstable; urgency=low + + * Remove Fabio and Branden from Uploaders with their permission. + * Don't build-depend on packages with a -1 debian revision. + * Bump Standards-Version to 3.7.3. + * Add Vcs-* control fields. + * Don't make libxxf86vm1{,-dbg} depend on x11-common. + * Drop obsolete CVS information from the package descriptions. + * Use ${binary:Version} instead of the deprecated ${Source-Version} + * Add correct Section control fields for all packages. + * Add myself to Uploaders. + * autoreconf with current autools to get updated config.{guess,sub}. + + -- Julien Cristau Sun, 11 May 2008 17:41:49 +0200 + +libxxf86vm (1:1.0.1-2) unstable; urgency=low + + [ Andres Salomon ] + * Autoreconf w/ an updated xutils-dev so that manpages have the 'x' + extension dropped. + + [ Drew Parsons ] + * dbg package has priority extra. + + -- David Nusinow Mon, 18 Sep 2006 22:26:21 -0400 + +libxxf86vm (1:1.0.1-1) experimental; urgency=low + + * New upstream release. + * Drop patches/01_manpage_location.diff; merged upstream. + * Test for obj-$(DEB_BUILD_GNU_TYPE) before creating it during build; + idempotency fix. + * Run dh_install w/ --list-missing. + * Drop duplicate x11-common dep in -dev package. + * Bump standards version to 3.7.2.0. + * Version x11-common pre-dep in -dev package to 1:7.0.0 to match + the rest of Debian. + * Bump debhelper compat to 5. + * Fix dh_strip call to skip the -dbg package. + * Don't attempt to install (non-existent) usr/include/X11/* stuff. + + -- Andres Salomon Sun, 23 Jul 2006 04:35:51 -0400 + +libxxf86vm (1:1.0.0-4) unstable; urgency=low + + * Reorder makeshlib command in rules file so that ldconfig is run + properly. Thanks Drew Parsons and Steve Langasek. + * Add quilt to build-depends + + -- David Nusinow Wed, 19 Apr 2006 02:47:28 -0400 + +libxxf86vm (1:1.0.0-3) unstable; urgency=low + + * Upload to unstable + + -- David Nusinow Thu, 23 Mar 2006 22:46:36 -0500 + +libxxf86vm (1:1.0.0-2) experimental; urgency=low + + * Backport manpage location fix + + -- David Nusinow Thu, 9 Mar 2006 23:38:46 -0500 + +libxxf86vm (1:1.0.0-1) experimental; urgency=low + + * First modular upload to Debian + + -- David Nusinow Thu, 29 Dec 2005 20:57:15 -0500 + +libxxf86vm (7.0.0-2) breezy; urgency=low + + * Bump libxext-dev build-dep to rid us of the dreaded _XOPEN_SOURCE. + + -- Adam Conrad Sun, 24 Jul 2005 12:04:32 +0000 + +libxxf86vm (7.0.0-1) breezy; urgency=low + + * First libxxf86vm release. + + -- Daniel Stone Mon, 16 May 2005 22:10:17 +1000 --- libxxf86vm-1.1.1.orig/debian/compat +++ libxxf86vm-1.1.1/debian/compat @@ -0,0 +1 @@ +9 --- libxxf86vm-1.1.1.orig/debian/rules +++ libxxf86vm-1.1.1/debian/rules @@ -0,0 +1,20 @@ +#!/usr/bin/make -f + +PACKAGE = libxxf86vm1 + +# Install in debian/tmp to retain control through dh_install: +override_dh_auto_install: + dh_auto_install --destdir=debian/tmp + +# Kill *.la files, and forget no-one: +override_dh_install: + find debian/tmp -name '*.la' -delete + dh_install --fail-missing + +# Debug package: +override_dh_strip: + dh_strip -p$(PACKAGE) --dbg-package=$(PACKAGE)-dbg + dh_strip -N$(PACKAGE) + +%: + dh $@ --with quilt,autoreconf --builddirectory=build/ --- libxxf86vm-1.1.1.orig/debian/watch +++ libxxf86vm-1.1.1/debian/watch @@ -0,0 +1,3 @@ +#git=git://anongit.freedesktop.org/xorg/lib/libXxf86vm +version=3 +http://xorg.freedesktop.org/releases/individual/lib/ libXxf86vm-(.*)\.tar\.gz --- libxxf86vm-1.1.1.orig/debian/copyright +++ libxxf86vm-1.1.1/debian/copyright @@ -0,0 +1,28 @@ +This package was downloaded from +http://xorg.freedesktop.org/releases/individual/lib/ + +Copyright (c) 1995 Kaleb S. KEITHLEY + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL Kaleb S. KEITHLEY BE LIABLE FOR ANY CLAIM, DAMAGES +OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the name of Kaleb S. KEITHLEY +shall not be used in advertising or otherwise to promote the sale, use +or other dealings in this Software without prior written authorization +from Kaleb S. KEITHLEY. --- libxxf86vm-1.1.1.orig/debian/libxxf86vm1.install +++ libxxf86vm-1.1.1/debian/libxxf86vm1.install @@ -0,0 +1 @@ +usr/lib/*/libXxf86vm.so.1* --- libxxf86vm-1.1.1.orig/debian/README.source +++ libxxf86vm-1.1.1/debian/README.source @@ -0,0 +1,49 @@ +------------------------------------------------------ +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. --- libxxf86vm-1.1.1.orig/debian/control +++ libxxf86vm-1.1.1/debian/control @@ -0,0 +1,83 @@ +Source: libxxf86vm +Section: x11 +Priority: optional +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Debian X Strike Force +Uploaders: Cyril Brulebois +Build-Depends: + debhelper (>= 8.1.2), + dh-autoreconf, + libx11-dev (>= 1:0.99.2), + x11proto-xf86vidmode-dev (>= 2.2.99.1), + libxext-dev (>= 1:0.99.1), + pkg-config, + quilt, + xutils-dev (>= 1:7.5+4), +Standards-Version: 3.9.2 +Vcs-Git: git://git.debian.org/git/pkg-xorg/lib/libxxf86vm +Vcs-Browser: http://git.debian.org/?p=pkg-xorg/lib/libxxf86vm.git + +Package: libxxf86vm1 +Section: libs +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Pre-Depends: ${misc:Pre-Depends} +Multi-Arch: same +Description: X11 XFree86 video mode extension library + libXxf86vm provides an interface to the XFree86-VidModeExtension + extension, which allows client applications to get and set video mode + timings in extensive detail. It is used by the xvidtune program in + particular. + . + More information about X.Org can be found at: + + . + This module can be found at + git://anongit.freedesktop.org/git/xorg/lib/libXxf86vm + +Package: libxxf86vm1-dbg +Section: debug +Architecture: any +Priority: extra +Depends: ${shlibs:Depends}, ${misc:Depends}, libxxf86vm1 (= ${binary:Version}) +Multi-Arch: same +Description: X11 XFree86 video mode extension library (debug package) + libXxf86vm provides an interface to the XFree86-VidModeExtension + extension, which allows client applications to get and set video mode + timings in extensive detail. It is used by the xvidtune program in + particular. + . + This package contains the debug versions of the library found in libxxf86vm1. + Non-developers likely have little use for this package. + . + More information about X.Org can be found at: + + . + This module can be found at + git://anongit.freedesktop.org/git/xorg/lib/libXxf86vm + +Package: libxxf86vm-dev +Section: libdevel +Architecture: any +Depends: + ${shlibs:Depends}, + ${misc:Depends}, + libxxf86vm1 (= ${binary:Version}), + libx11-dev, + x11proto-xf86vidmode-dev (>= 2.2.99.1) +Replaces: + x11proto-xf86vidmode-dev (<< 2.2.99.1) +Description: X11 XFree86 video mode extension library (development headers) + libXxf86vm provides an interface to the XFree86-VidModeExtension + extension, which allows client applications to get and set video mode + timings in extensive detail. It is used by the xvidtune program in + particular. + . + This package contains the development headers for the library found in + libxxf86vm1. Non-developers likely have little use for this package. + . + More information about X.Org can be found at: + + . + This module can be found at + git://anongit.freedesktop.org/git/xorg/lib/libXxf86vm