Git-Url: 
http://git.frugalware.org/gitweb/gitweb.cgi?p=frugalware-current.git;a=commitdiff;h=1f49af7c84ab61f3fa9763726072f7d1f3d72dda

commit 1f49af7c84ab61f3fa9763726072f7d1f3d72dda
Author: crazy <[EMAIL PROTECTED]>
Date:   Sat Mar 1 18:16:30 2008 +0100

xorg-server-1.4.0.90-5-i686
* release bump
* backported all fixes from 1.4 branch

diff --git 
a/source/x11/xorg-server/Fix-context-sharing-between-direct-indirect-contexts.patch
 
b/source/x11/xorg-server/Fix-context-sharing-between-direct-indirect-contexts.patch
new file mode 100644
index 0000000..bd81c13
--- /dev/null
+++ 
b/source/x11/xorg-server/Fix-context-sharing-between-direct-indirect-contexts.patch
@@ -0,0 +1,38 @@
+From a65d4aed06acd839fb21153f74144498abda3e18 Mon Sep 17 00:00:00 2001
+From: Alan Hourihane <[EMAIL PROTECTED]>
+Date: Wed, 27 Feb 2008 16:49:34 +0000
+Subject: [PATCH] Fix context sharing between direct/indirect contexts
+
+---
+ GL/glx/glxdri.c |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/GL/glx/glxdri.c b/GL/glx/glxdri.c
+index 685683d..09abca3 100644
+--- a/GL/glx/glxdri.c
++++ b/GL/glx/glxdri.c
+@@ -598,6 +598,9 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen,
+     else
+       sharePrivate = NULL;
+
++    if (baseShareContext && baseShareContext->isDirect)
++        return NULL;
++
+     context = xalloc(sizeof *context);
+     if (context == NULL)
+       return NULL;
+@@ -617,6 +620,11 @@ __glXDRIscreenCreateContext(__GLXscreen *baseScreen,
+                                          0, /* render type */
+                                          sharePrivate,
+                                          &context->driContext);
++
++    if (!context->driContext.private) {
++      xfree(context);
++      return NULL;
++    }
+
+     context->driContext.mode = modes;
+
+--
+1.5.4.3
+
diff --git 
a/source/x11/xorg-server/Fix-rotation-for-multi-monitor-situation.patch 
b/source/x11/xorg-server/Fix-rotation-for-multi-monitor-situation.patch
new file mode 100644
index 0000000..2cce9a2
--- /dev/null
+++ b/source/x11/xorg-server/Fix-rotation-for-multi-monitor-situation.patch
@@ -0,0 +1,31 @@
+From dc30ade6496c7cc24e38c419e229159525fe042f Mon Sep 17 00:00:00 2001
+From: Maarten Maathuis <[EMAIL PROTECTED]>
+Date: Sun, 17 Feb 2008 18:47:28 +0100
+Subject: [PATCH] Fix rotation for multi-monitor situation.
+
+- The (x,y)-coordinates of the crtc were not being passed as xFixed values, 
which made it an obscure bug to find.
+- Fix bug #13787.
+(cherry picked from commit a48cc88ea2674c28b69b8d738b168cbafcf4001f)
+---
+ hw/xfree86/modes/xf86Rotate.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/hw/xfree86/modes/xf86Rotate.c b/hw/xfree86/modes/xf86Rotate.c
+index 380478f..dd0e659 100644
+--- a/hw/xfree86/modes/xf86Rotate.c
++++ b/hw/xfree86/modes/xf86Rotate.c
+@@ -579,9 +579,9 @@ xf86CrtcRotate (xf86CrtcPtr crtc, DisplayModePtr mode, 
Rotation rotation)
+     }
+     else
+     {
+-      PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, crtc->x, crtc->y);
++      PictureTransformTranslate (&crtc_to_fb, &fb_to_crtc, F(crtc->x), 
F(crtc->y));
+       PictureTransformIsInverse ("offset", &crtc_to_fb, &fb_to_crtc);
+-
++
+       /*
+        * these are the size of the shadow pixmap, which
+        * matches the mode, not the pre-rotated copy in the
+--
+1.5.4.3
+
diff --git a/source/x11/xorg-server/FrugalBuild 
b/source/x11/xorg-server/FrugalBuild
index 4363c74..f1c961d 100644
--- a/source/x11/xorg-server/FrugalBuild
+++ b/source/x11/xorg-server/FrugalBuild
@@ -3,7 +3,7 @@

pkgname=xorg-server
pkgver=1.4.0.90
-pkgrel=4
+pkgrel=5
mesaver=7.0.2
pkgdesc="Modular X.Org X Server"
groups=('x11' 'xorg-core')
@@ -52,7 +52,14 @@ source=([EMAIL PROTECTED] \
1.4-fix-dmx-build.patch \
1.4-fix-dmx-link.patch \
1.4-fix-kdrive-automake.patch \
-       1.4-fix-xephyr-link.patch)
+       1.4-fix-xephyr-link.patch \
+       dix-set-the-correct-number-of-valuators-in-valuator.patch \
+       Fix-context-sharing-between-direct-indirect-contexts.patch \
+       Fix-rotation-for-multi-monitor-situation.patch \
+       Resize-composite-overlay-window-when-the-root-window.patch \
+       security-Fix-for-Bug-14480-untrusted-access-broke.patch \
+       xkb-don-t-update-LEDs-if-they-don-t-exist.patch)
+
sha1sums=('7c492ac32bd83b521f5c016e4728fccf9cba55db' \
'd16eaeb1d9d95d11d3b6d289b1ba87108b88da90' \
'af92fd389e72a3bb59d25dbf9cbb06e827b75d7d' \
@@ -80,7 +87,13 @@ sha1sums=('7c492ac32bd83b521f5c016e4728fccf9cba55db' \
'0b627c0d98e50f0d29dacc3fa7e8e9d8b1ad3faf' \
'41f686ef462e179f6c7e73a1babb7c0f2312d337' \
'f21a54aed8eae1e718f2f0c262c37c36ccccd152' \
-          '352c55be4b91b29c84b192d806a90834d887fc22')
+          '352c55be4b91b29c84b192d806a90834d887fc22' \
+          '03056cde78a8a64b44c756014f31222cee5075e1' \
+          'eadf66c1603dcc5a46dc14407cea0f1bc36b9594' \
+          '8d3e9e5daaf2eca41a1aba90509a1b27acb3533e' \
+          'fcde0358b5b3c5489bcfe939fa742a1b122c3e96' \
+          'e48a9793ca50616e4de3e8fd51443aa90abf6365' \
+          '0e677503b0dd377530ec799f2139f25b5fcd2de9')

subpkgs=('libglx' \
"$pkgname-dmx" "$pkgname-ati" "$pkgname-chips" "$pkgname-xephyr" \
@@ -175,6 +188,13 @@ build() {
Fpatch OS-IO-Zero-out-client-buffers.patch
Fpatch XKB-XkbCopyKeymap-Don-t-leak-all-the-sections.patch
Fpatch Xephyr-One-time-keyboard-leak-fix.patch
+       Fpatch dix-set-the-correct-number-of-valuators-in-valuator.patch
+       Fpatch Fix-context-sharing-between-direct-indirect-contexts.patch
+       Fpatch Fix-rotation-for-multi-monitor-situation.patch
+       Fpatch Resize-composite-overlay-window-when-the-root-window.patch
+       Fpatch security-Fix-for-Bug-14480-untrusted-access-broke.patch
+       Fpatch xkb-don-t-update-LEDs-if-they-don-t-exist.patch
+
## GCC 4.2.0 bug do **NOT** remove this hack or it will kill your box!!
## http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30052
echo 'CFLAGS = @CFLAGS@ -O0' >> hw/xfree86/scanpci/Makefile.am
diff --git 
a/source/x11/xorg-server/Resize-composite-overlay-window-when-the-root-window.patch
 
b/source/x11/xorg-server/Resize-composite-overlay-window-when-the-root-window.patch
new file mode 100644
index 0000000..22c8044
--- /dev/null
+++ 
b/source/x11/xorg-server/Resize-composite-overlay-window-when-the-root-window.patch
@@ -0,0 +1,62 @@
+From 3db5930c61aeb849de3b21e7ba0d86d3c0cf72bb Mon Sep 17 00:00:00 2001
+From: Maarten Maathuis <[EMAIL PROTECTED]>
+Date: Sun, 17 Feb 2008 11:21:01 +0100
+Subject: [PATCH] Resize composite overlay window when the root window changes.
+
+- This allows some compositing managers to work, even after randr12 has 
changed the root window size.
+- Thanks to ajax for figuring out the best place to put this.
+- Example:
+       - xf86RandR12SetMode() calls EnableDisableFBAccess().
+       - That calls xf86SetRootClip() which in turn calls 
ResizeChildrenWinSize().
+       - The final step is the call to PositionWindow().
+(cherry picked from commit 70c0592a97c7dc9db0576d32b3bdbe4766520509)
+---
+ composite/compwindow.c |   25 +++++++++++++++++++++++++
+ 1 files changed, 25 insertions(+), 0 deletions(-)
+
+diff --git a/composite/compwindow.c b/composite/compwindow.c
+index bfd2946..33192ad 100644
+--- a/composite/compwindow.c
++++ b/composite/compwindow.c
+@@ -165,6 +165,29 @@ compCheckRedirect (WindowPtr pWin)
+     return TRUE;
+ }
+
++static int
++updateOverlayWindow(ScreenPtr pScreen)
++{
++      CompScreenPtr cs;
++      WindowPtr pWin; /* overlay window */
++      XID vlist[2];
++
++      cs = GetCompScreen(pScreen);
++      if ((pWin = cs->pOverlayWin) != NULL) {
++              if ((pWin->drawable.width == pScreen->width) &&
++                      (pWin->drawable.height == pScreen->height))
++                      return Success;
++
++              /* Let's resize the overlay window. */
++              vlist[0] = pScreen->width;
++              vlist[1] = pScreen->height;
++              return ConfigureWindow(pWin, CWWidth | CWHeight, vlist, 
wClient(pWin));
++      }
++
++      /* Let's be on the safe side and not assume an overlay window is always 
allocated. */
++      return Success;
++}
++
+ Bool
+ compPositionWindow (WindowPtr pWin, int x, int y)
+ {
+@@ -203,6 +226,8 @@ compPositionWindow (WindowPtr pWin, int x, int y)
+     cs->PositionWindow = pScreen->PositionWindow;
+     pScreen->PositionWindow = compPositionWindow;
+     compCheckTree (pWin->drawable.pScreen);
++    if (updateOverlayWindow(pScreen) != Success)
++      ret = FALSE;
+     return ret;
+ }
+
+--
+1.5.4.3
+
diff --git 
a/source/x11/xorg-server/dix-set-the-correct-number-of-valuators-in-valuator.patch
 
b/source/x11/xorg-server/dix-set-the-correct-number-of-valuators-in-valuator.patch
new file mode 100644
index 0000000..b2399cf
--- /dev/null
+++ 
b/source/x11/xorg-server/dix-set-the-correct-number-of-valuators-in-valuator.patch
@@ -0,0 +1,29 @@
+From e98027c3ac7195fec665ef393d980b02870ca1b8 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <[EMAIL PROTECTED]>
+Date: Tue, 18 Dec 2007 13:57:07 +1030
+Subject: [PATCH] dix: set the correct number of valuators in valuator events.
+
+(first_valuator + num_valuators) must never be larger than the number of axes,
+otherwise DIX freaks out. And from looking at libXI, anything larger than 6 is
+wrong too.
+(cherry picked from commit 9f6ae61ad12cc2813d04405458e1ca5aed8a539e)
+---
+ dix/getevents.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/dix/getevents.c b/dix/getevents.c
+index 12d8189..b7ba69b 100644
+--- a/dix/getevents.c
++++ b/dix/getevents.c
+@@ -344,7 +344,7 @@ getValuatorEvents(xEvent *events, DeviceIntPtr pDev, int 
first_valuator,
+     for (i = first_valuator; i < final_valuator; i += 6, xv++, events++) {
+         xv->type = DeviceValuator;
+         xv->first_valuator = i;
+-        xv->num_valuators = num_valuators;
++        xv->num_valuators = ((num_valuators - i) > 6) ? 6 : (num_valuators - 
i);
+         xv->deviceid = pDev->id;
+         switch (final_valuator - i) {
+         case 6:
+--
+1.5.4.3
+
diff --git 
a/source/x11/xorg-server/security-Fix-for-Bug-14480-untrusted-access-broke.patch
 
b/source/x11/xorg-server/security-Fix-for-Bug-14480-untrusted-access-broke.patch
new file mode 100644
index 0000000..a7cc2bb
--- /dev/null
+++ 
b/source/x11/xorg-server/security-Fix-for-Bug-14480-untrusted-access-broke.patch
@@ -0,0 +1,25 @@
+From 74b40bba327a2e97780e8e3f995f784add2d6231 Mon Sep 17 00:00:00 2001
+From: Eamon Walsh <[EMAIL PROTECTED]>
+Date: Thu, 14 Feb 2008 19:47:44 -0500
+Subject: [PATCH] security: Fix for Bug #14480: untrusted access broken in 7.3.
+
+---
+ Xext/security.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/Xext/security.c b/Xext/security.c
+index e9d48c9..14ad354 100644
+--- a/Xext/security.c
++++ b/Xext/security.c
+@@ -1014,7 +1014,7 @@ CALLBACK(SecurityCheckResourceIDAccess)
+     }
+     else /* server-owned resource - probably a default colormap or root 
window */
+     {
+-      if (RT_WINDOW == rtype || RC_DRAWABLE == rtype)
++      if (RC_DRAWABLE & rtype)
+       {
+           switch (reqtype)
+           {   /* the following operations are allowed on root windows */
+--
+1.5.4.3
+
diff --git 
a/source/x11/xorg-server/xkb-don-t-update-LEDs-if-they-don-t-exist.patch 
b/source/x11/xorg-server/xkb-don-t-update-LEDs-if-they-don-t-exist.patch
new file mode 100644
index 0000000..fd75f7e
--- /dev/null
+++ b/source/x11/xorg-server/xkb-don-t-update-LEDs-if-they-don-t-exist.patch
@@ -0,0 +1,31 @@
+From bc72ef3a159efd67067322c043bba444869dc356 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <[EMAIL PROTECTED]>
+Date: Wed, 30 Jan 2008 10:39:54 +1030
+Subject: [PATCH] xkb: don't update LEDs if they don't exist. (Bug #13961)
+
+In some weird cases we call this function when there is no SrvLedInfo on the
+device. And it turns out null-pointer dereferences are bad.
+
+X.Org Bug 13961 <http://bugs.freedesktop.org/show_bug.cgi?id=13961>
+(cherry picked from commit d954f9c80348de294602d931d387e5cd1ef4b9a5)
+---
+ xkb/xkbLEDs.c |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/xkb/xkbLEDs.c b/xkb/xkbLEDs.c
+index d607d90..d28973c 100644
+--- a/xkb/xkbLEDs.c
++++ b/xkb/xkbLEDs.c
+@@ -63,6 +63,9 @@ XkbSrvLedInfoPtr     sli;
+
+     sli= XkbFindSrvLedInfo(dev,XkbDfltXIClass,XkbDfltXIId,0);
+
++    if (!sli)
++        return update;
++
+     if (state_changes&(XkbModifierStateMask|XkbGroupStateMask))
+       update|= sli->usesEffective;
+     if (state_changes&(XkbModifierBaseMask|XkbGroupBaseMask))
+--
+1.5.4.3
+
_______________________________________________
Frugalware-git mailing list
[email protected]
http://frugalware.org/mailman/listinfo/frugalware-git

Reply via email to