Your message dated Mon, 14 Jan 2013 23:33:02 +0000 with message-id <[email protected]> and subject line Bug#421279: fixed in x2x 1.30-1 has caused the Debian Bug report #421279, regarding x2x: error messages to stderr if 'to' display doesn't support DPMS [PATCH] to be marked as done.
This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact [email protected] immediately.) -- 421279: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=421279 Debian Bug Tracking System Contact [email protected] with problems
--- Begin Message ---Package: x2x Version: 1.27.svn.20060501-1 If you start x2x where the 'to' display doesn't support DPMS, x2x will print a warning message to standard error every time the mouse is moved across to the 'to' display: zircon$ x2x -to blackrock:0.0 -resurface -west Xlib: extension "DPMS" missing on display "blackrock:0.0". Xlib: extension "DPMS" missing on display "blackrock:0.0". (In this case the target display is a Tektronix X terminal which was manufactured before the DPMS extension was designed...) It shouldn't be printing this at all, since if the target display does not support the extension x2x can simply fall back to its traditional behaviour of doing nothing (on the assumption that the display doesn't support blanking and unblanking). Here's a patch to x2x.c which fixes this -- the first time we try to do any DPMS action we use DPMSQueryExtension() to see if the display supports it; if it doesn't we don't do anything. This works for me. I've tried to put in code so that compiling it for Cygwin still works, but I haven't tested that at all. I also haven't checked that it still does the right thing if the target display is DPMS capable, but I can't see how it could possibly be broken :-) Hope this helps. ===begin patch=== --- x2x-1.27.svn.20060501/x2x.c 2006-04-30 16:13:50.000000000 +0100 +++ x2x-1.27.svn.20060501-patched/x2x.c 2007-04-27 15:41:21.935158688 +0100 @@ -103,6 +103,8 @@ #define DPMSModeOn 0 extern Status DPMSForceLevel(Display *, unsigned short); +/* We always support this: */ +#define DPMSQueryExtension(DPY, EVBASE, ERBASE) TRUE #else #include <X11/extensions/dpms.h> #endif @@ -139,6 +141,7 @@ #ifndef WIN_2_X static int ErrorHandler(); #endif +static void DoDPMSForceLevel(); static void DoX2X(); static void InitDpyInfo(); static void DoConnect(); @@ -292,6 +295,7 @@ struct _shadow *pNext; char *name; Display *dpy; + int DPMSstatus; /* -1: not queried, 0: not supported, 1: supported */ } SHADOW, *PSHADOW; /* sticky keys */ @@ -453,6 +457,7 @@ /* toDpy is always the first shadow */ pShadow = (PSHADOW)malloc(sizeof(SHADOW)); + pShadow->DPMSstatus = -1; pShadow->name = toDpyName; /* link into the global list */ pShadow->pNext = shadows; @@ -691,6 +696,7 @@ } else if (!strcasecmp(argv[arg], "-shadow")) { if (++arg >= argc) Usage(); pShadow = (PSHADOW)malloc(sizeof(SHADOW)); + pShadow->DPMSstatus = -1; pShadow->name = argv[arg]; /* into the global list of shadows */ @@ -1386,6 +1392,27 @@ } /* END InitDpyInfo */ +static void DoDPMSForceLevel(pShadow, level) +PSHADOW pShadow; +CARD16 level; +{ + /* Do a DPMSForceLevel(), but only if the display supports it */ + if (pShadow->DPMSstatus == -1) { + /* Need to see if this display supports the DPMS extension. + * If it doesn't then trying DPMSForceLevel() will display + * a spurious error message to stderr. + */ + int t1, t2; + if (DPMSQueryExtension(pShadow->dpy, &t1, &t2)) + pShadow->DPMSstatus = 1; + else + pShadow->DPMSstatus = 0; + } + + if (pShadow->DPMSstatus != 0) + DPMSForceLevel(pShadow->dpy, level); +} + static void DoConnect(pDpyInfo) PDPYINFO pDpyInfo; { @@ -1395,7 +1422,7 @@ PSHADOW pShadow; for (pShadow = shadows; pShadow; pShadow = pShadow->pNext) { - DPMSForceLevel(pShadow->dpy, DPMSModeOn); + DoDPMSForceLevel(pShadow, DPMSModeOn); XFlush(pShadow->dpy); } @@ -1616,7 +1643,7 @@ for (pShadow = shadows; pShadow; pShadow = pShadow->pNext) { if (doDpmsMouse) { - DPMSForceLevel(pShadow->dpy, DPMSModeOn); + DoDPMSForceLevel(pShadow, DPMSModeOn); } XTestFakeMotionEvent(pShadow->dpy, toScreenNum, @@ -2324,7 +2351,7 @@ PSHADOW pShadow; for (pShadow = shadows; pShadow; pShadow = pShadow->pNext) { - DPMSForceLevel(pShadow->dpy, DPMSModeOn); + DoDPMSForceLevel(pShadow, DPMSModeOn); XFlush(pShadow->dpy); } @@ -2852,7 +2879,7 @@ for (pShadow = shadows; pShadow; pShadow = pShadow->pNext) { if (doDpmsMouse) { - DPMSForceLevel(pShadow->dpy, DPMSModeOn); + DoDPMSForceLevel(pShadow, DPMSModeOn); } XTestFakeMotionEvent(pShadow->dpy, toScreenNum, pDpyInfo->xTables[toScreenNum][x], pDpyInfo->yTables[toScreenNum][y], 0); ===endit=== -- PMM
--- End Message ---
--- Begin Message ---Source: x2x Source-Version: 1.30-1 We believe that the bug you reported is fixed in the latest version of x2x, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to [email protected], and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Barak A. Pearlmutter <[email protected]> (supplier of updated x2x package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing [email protected]) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.8 Date: Sat, 29 Dec 2012 08:30:20 +0100 Source: x2x Binary: x2x Architecture: source amd64 Version: 1.30-1 Distribution: unstable Urgency: low Maintainer: Barak A. Pearlmutter <[email protected]> Changed-By: Barak A. Pearlmutter <[email protected]> Description: x2x - Link two X displays together, simulating a multiheaded display Closes: 421279 435702 438943 500147 695167 Changes: x2x (1.30-1) unstable; urgency=low . * Adopt package (closes: #435702) * New upstream release (closes: #438943) - Contains dpms patch (closes: #421279) * Update packaging: - remove mention of propsel from description (closes: #500147, #695167) - new upstream home page and repository - upstream has autoconf/automake, switch to use it - dh9, harden - bump standards version Checksums-Sha1: 792cb54e8c20bf48d854e15bc1d83ef23335babd 1187 x2x_1.30-1.dsc 6620019019265c4bfe0575af1cb445ae2979b440 44838 x2x_1.30.orig.tar.gz f64b94d3a02062b7edbff7e8946f9a87465d3d5d 4818 x2x_1.30-1.debian.tar.gz 2386053150edd94a77323ac5b54c1fb67cf15e36 31268 x2x_1.30-1_amd64.deb Checksums-Sha256: 346bd851e137b25ffeb4c7e56257567f6836187f0cc0e673944bc56d5ed28ff8 1187 x2x_1.30-1.dsc 21758dfe5835982ab243720654a265cd4462e937bcd72f690c740dad7c06d6d3 44838 x2x_1.30.orig.tar.gz 31ba23242545f18e4d0b5742c1f013ee53c468424fd103da9545d74a3fc8c60b 4818 x2x_1.30-1.debian.tar.gz b7d03ca5a12fccc1264c5d4b8288b315dd280a53eca44af0221b37f6c3dc836c 31268 x2x_1.30-1_amd64.deb Files: b926c16ef9a708ea3f04d38e2e7e7078 1187 x11 optional x2x_1.30-1.dsc d19d2254de8bdfc25fe94ce62babb878 44838 x11 optional x2x_1.30.orig.tar.gz 2e0c9f43e9958793da1803498af7c7ba 4818 x11 optional x2x_1.30-1.debian.tar.gz 94bd12325c3b575288ceb09227f74ce4 31268 x11 optional x2x_1.30-1_amd64.deb -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlD0krEACgkQLz4Gnv7CP7KH+wCfYtFKlHhOU/Ev0kOy3DxWZVZE kvAAoMHfWdueVtEWBy4w9t/WB8g4ooSh =2MpW -----END PGP SIGNATURE-----
--- End Message ---

