Hello community, here is the log from the commit of package xorg-x11-server checked in at Wed Nov 28 23:55:16 CET 2007. -------- --- xorg-x11-server/xorg-x11-server.changes 2007-11-22 22:54:06.000000000 +0100 +++ /mounts/work_src_done/STABLE/xorg-x11-server/xorg-x11-server.changes 2007-11-27 18:58:44.972536000 +0100 @@ -1,0 +2,14 @@ +Tue Nov 27 19:03:27 CET 2007 - sndirsch@suse.de + +- commit-184e571.diff + * Adjust offsets of modes that do not fit virtual screen size. +- commit-c6c284e.diff + * Initialize Mode with 0 in xf86RandRModeConvert. +- commit-f6401f9.diff + * Don't segfault if referring to a relative output where no modes survived. +- commit-f7dd0c7.diff + * Only clear crtc of output if it is the one we're actually working on. +- commit-fa19e84.diff + * Fix initial placement of LeftOf and Above. + +------------------------------------------------------------------- New: ---- commit-184e571.diff commit-c6c284e.diff commit-f6401f9.diff commit-f7dd0c7.diff commit-fa19e84.diff ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ xorg-x11-server.spec ++++++ --- /var/tmp/diff_new_pack.yC1865/_old 2007-11-28 23:54:29.000000000 +0100 +++ /var/tmp/diff_new_pack.yC1865/_new 2007-11-28 23:54:29.000000000 +0100 @@ -21,7 +21,7 @@ Url: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.3 -Release: 31 +Release: 34 License: X11/MIT BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -71,6 +71,8 @@ Patch34: p_pci-off-by-one.diff.ia64 Patch36: libdrm.diff %if %vnc +### Dan Nicholson <dbn.lists@gmail.com> +#http://www.linuxfromscratch.org/~dnicholson/patches/xorg-server-1.4-vnc.patc... Patch39: xorg-server-1.4-vnc.patch Patch40: xorg-server-1.4-vnc-fix.patch Patch43: xorg-server-1.4-vnc-64bit.diff @@ -89,6 +91,11 @@ Patch84: commit-feac075.diff Patch85: commit-29e0e18.diff Patch86: mfb_without_xorg.diff +Patch87: commit-c6c284e.diff +Patch88: commit-f6401f9.diff +Patch89: commit-184e571.diff +Patch90: commit-fa19e84.diff +Patch91: commit-f7dd0c7.diff %description This package contains the X.Org Server. @@ -207,6 +214,11 @@ %patch84 -p1 %patch85 -p1 %patch86 -p0 +%patch87 -p1 +%patch88 -p1 +%patch89 -p1 +%patch90 -p1 +%patch91 -p1 %build pushd xorg-docs-* @@ -537,6 +549,17 @@ %endif %changelog +* Tue Nov 27 2007 - sndirsch@suse.de +- commit-184e571.diff + * Adjust offsets of modes that do not fit virtual screen size. +- commit-c6c284e.diff + * Initialize Mode with 0 in xf86RandRModeConvert. +- commit-f6401f9.diff + * Don't segfault if referring to a relative output where no modes survived. +- commit-f7dd0c7.diff + * Only clear crtc of output if it is the one we're actually working on. +- commit-fa19e84.diff + * Fix initial placement of LeftOf and Above. * Thu Nov 22 2007 - sndirsch@suse.de - pixman.diff no longer required * Sun Nov 18 2007 - sndirsch@suse.de ++++++ commit-184e571.diff ++++++ commit 184e571957f697f2a125dc9c9da0c7dfb92c2cd9 Author: Matthias Hopf <mhopf@suse.de> Date: Tue Nov 20 13:05:26 2007 +0100 Adjust offsets of modes that do not fit virtual screen size. Fixes memory corruption if a too small "Virtual" was specified in xorg.conf for the selected multi-monitor configuration. diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 653042c..760a498 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -260,6 +260,30 @@ xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation, crtc->y = y; crtc->rotation = rotation; + /* Shift offsets that move us out of virtual size */ + if (x + mode->HDisplay > xf86_config->maxWidth || + y + mode->VDisplay > xf86_config->maxHeight) + { + if (x + mode->HDisplay > xf86_config->maxWidth) + crtc->x = xf86_config->maxWidth - mode->HDisplay; + if (y + mode->VDisplay > xf86_config->maxHeight) + crtc->y = xf86_config->maxHeight - mode->VDisplay; + if (crtc->x < 0 || crtc->y < 0) + { + xf86DrvMsg (scrn->scrnIndex, X_ERROR, + "Mode %dx%d does not fit virtual size %dx%d - " + "internal error\n", mode->HDisplay, mode->VDisplay, + xf86_config->maxWidth, xf86_config->maxHeight); + goto done; + } + xf86DrvMsg (scrn->scrnIndex, X_ERROR, + "Mode %dx%d+%d+%d does not fit virtual size %dx%d - " + "offset updated to +%d+%d\n", + mode->HDisplay, mode->VDisplay, x, y, + xf86_config->maxWidth, xf86_config->maxHeight, + crtc->x, crtc->y); + } + /* XXX short-circuit changes to base location only */ /* Pass our mode to the outputs and the CRTC to give them a chance to @@ -301,7 +325,7 @@ xf86CrtcSetMode (xf86CrtcPtr crtc, DisplayModePtr mode, Rotation rotation, /* Set up the DPLL and any output state that needs to adjust or depend * on the DPLL. */ - crtc->funcs->mode_set(crtc, mode, adjusted_mode, x, y); + crtc->funcs->mode_set(crtc, mode, adjusted_mode, crtc->x, crtc->y); for (i = 0; i < xf86_config->num_output; i++) { xf86OutputPtr output = xf86_config->output[i]; ++++++ commit-c6c284e.diff ++++++ commit c6c284e64b1f537a3243856cf78cf3f2324e4c2b Author: Matthias Hopf <mhopf@suse.de> Date: Mon Nov 26 15:38:20 2007 +0100 Initialize Mode with 0 in xf86RandRModeConvert. Asking for trouble if non-initialized values contain random data. diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c index c1a06b2..61a7db3 100644 --- a/hw/xfree86/modes/xf86RandR12.c +++ b/hw/xfree86/modes/xf86RandR12.c @@ -683,11 +683,8 @@ xf86RandRModeConvert (ScrnInfoPtr scrn, RRModePtr randr_mode, DisplayModePtr mode) { - mode->prev = NULL; - mode->next = NULL; - mode->name = NULL; + memset(mode, 0, sizeof(DisplayModeRec)); mode->status = MODE_OK; - mode->type = 0; mode->Clock = randr_mode->mode.dotClock / 1000; ++++++ commit-f6401f9.diff ++++++ commit f6401f944d327cc5d9a7ee0bbdf4f7fc8eaa31e8 Author: Matthias Hopf <mhopf@suse.de> Date: Fri Nov 23 16:12:49 2007 +0100 Don't segfault if referring to a relative output where no modes survived. diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 5a1ed8c..8595d96 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -1079,6 +1079,16 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes) any_set = TRUE; continue; } + if (!modes[or]) + { + xf86DrvMsg (scrn->scrnIndex, X_ERROR, + "Cannot position output %s relative to output %s without modes\n", + output->name, relative_name); + output->initial_x = 0; + output->initial_y = 0; + any_set = TRUE; + continue; + } if (relative->initial_x == POSITION_UNSET) { keep_going = TRUE; ++++++ commit-f7dd0c7.diff ++++++ commit f7dd0c72b8f861f4d5443a43d1013e3fe3db43ca Author: Matthias Hopf <mhopf@suse.de> Date: Mon Nov 12 15:11:03 2007 +0100 Only clear crtc of output if it is the one we're actually working on. Upon recreation of the RandR internal data structures in RRCrtcNotify() the crtc of an output could be NULLed if the crtc was shared (cloned) between two outputs and one of them got another crtc assigned. diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c index db5007e..43cfb29 100644 --- a/randr/rrcrtc.c +++ b/randr/rrcrtc.c @@ -150,7 +150,8 @@ RRCrtcNotify (RRCrtcPtr crtc, break; if (i == numOutputs) { - crtc->outputs[j]->crtc = NULL; + if (crtc->outputs[j]->crtc == crtc) + crtc->outputs[j]->crtc = NULL; RROutputChanged (crtc->outputs[j], FALSE); RRCrtcChanged (crtc, FALSE); } ++++++ commit-fa19e84.diff ++++++ commit fa19e84714aa84a2f2e817e363d6440349d0b619 Author: Matthias Hopf <mhopf@suse.de> Date: Tue Nov 20 16:54:50 2007 +0100 Fix initial placement of LeftOf and Above. diff --git a/hw/xfree86/modes/xf86Crtc.c b/hw/xfree86/modes/xf86Crtc.c index 760a498..5a1ed8c 100644 --- a/hw/xfree86/modes/xf86Crtc.c +++ b/hw/xfree86/modes/xf86Crtc.c @@ -1094,10 +1094,10 @@ xf86InitialOutputPositions (ScrnInfoPtr scrn, DisplayModePtr *modes) output->initial_x += xf86ModeWidth (modes[or], relative->initial_rotation); break; case OPTION_ABOVE: - output->initial_y -= xf86ModeHeight (modes[or], relative->initial_rotation); + output->initial_y -= xf86ModeHeight (modes[o], relative->initial_rotation); break; case OPTION_LEFT_OF: - output->initial_x -= xf86ModeWidth (modes[or], relative->initial_rotation); + output->initial_x -= xf86ModeWidth (modes[o], relative->initial_rotation); break; default: break; ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... --------------------------------------------------------------------- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@Hilbert.suse.de