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
+#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
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
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
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
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
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