diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 14b19e7..ad985f9 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -9,7 +9,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.3.0.0 -Release: 22%{?dist} +Release: 23%{?dist} URL: http://www.x.org License: MIT/X11 Group: User Interface/X @@ -33,6 +33,7 @@ Patch21: xserver-1.3.0-xkb-and-loathing.patch Patch22: xserver-1.3.0-fbdevhw-magic-numbers.patch Patch23: xserver-1.3.0-ramdac-export.patch Patch24: xserver-1.3.0-reput-video.patch +Patch25: xserver-1.3.0-xrandr-timestamp-buglet.patch # OpenGL compositing manager feature/optimization patches. Patch100: xorg-x11-server-1.1.0-no-move-damage.patch @@ -296,6 +297,7 @@ Xserver source code needed to build VNC server (Xvnc) %patch22 -p1 -b .magic-numbers %patch23 -p1 -b .ramdac %patch24 -p1 -b .reput +%patch25 -p1 -b .xrandr-timestamp %patch100 -p0 -b .no-move-damage %patch101 -p0 -b .dont-backfill-bg-none @@ -606,6 +608,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Thu Sep 06 2007 Adam Jackson 1.3.0.0-23 +- xserver-1.3.0-xrandr-timestamp-buglet.patch: Make sure xrandr doesn't + stop working after several hours. (Marius Gedminas, #273801) + * Fri Aug 24 2007 Adam Jackson 1.3.0.0-22 - Bump BuildRequires: xorg-x11-xtrans-devel to pull in abstract socket support. diff --git a/xserver-1.3.0-xrandr-timestamp-buglet.patch b/xserver-1.3.0-xrandr-timestamp-buglet.patch new file mode 100644 index 0000000..53477fc --- /dev/null +++ b/xserver-1.3.0-xrandr-timestamp-buglet.patch @@ -0,0 +1,29 @@ +--- a/randr/rrscreen.c.orig 2006-07-05 21:31:44.000000000 +0300 ++++ b/randr/rrscreen.c 2007-02-03 00:00:10.000000000 +0200 +@@ -723,7 +723,6 @@ + pScrPriv = rrGetScrPriv(pScreen); + + time = ClientTimeToServerTime(stuff->timestamp); +- configTime = ClientTimeToServerTime(stuff->configTimestamp); + + oldWidth = pScreen->width; + oldHeight = pScreen->height; +@@ -738,11 +737,15 @@ + return BadAlloc; + + /* +- * if the client's config timestamp is not the same as the last config ++ * If the client's config timestamp is not the same as the last config + * timestamp, then the config information isn't up-to-date and +- * can't even be validated ++ * can't even be validated. ++ * ++ * Note that the client only knows about the milliseconds part of the ++ * timestamp, so using CompareTimeStamps here would cause randr to suddenly ++ * stop working after several hours have passed (freedesktop bug #6502). + */ +- if (CompareTimeStamps (configTime, pScrPriv->lastConfigTime) != 0) ++ if (stuff->configTimestamp != pScrPriv->lastConfigTime.milliseconds) + { + rep.status = RRSetConfigInvalidConfigTime; + goto sendReply;