[arch-commits] Commit in xorg-server/repos (6 files)

Jan de Groot jgc at archlinux.org
Sat Nov 21 10:49:14 UTC 2009


    Date: Saturday, November 21, 2009 @ 05:49:13
  Author: jgc
Revision: 59195

Merged revisions 59194 via svnmerge from 
svn+ssh://gerolde.archlinux.org/srv/svn-packages/xorg-server/trunk

........
  r59194 | jgc | 2009-11-21 11:48:36 +0100 (Sat, 21 Nov 2009) | 6 lines
  
  upgpkg: xorg-server 1.7.1.902-1
      Update to 1.7.2RC2
  Apply window-pictures patch + band-aid to fix crashes and resulting slowdowns with nvidia drivers
  Add gamma fix for KDM vtswitch
  Reduce openssl library linking
  Improve evdev processing
........

Added:
  xorg-server/repos/extra-i686/xserver-1.7.1-gamma-kdm-fix.patch
    (from rev 59194, xorg-server/trunk/xserver-1.7.1-gamma-kdm-fix.patch)
  xorg-server/repos/extra-i686/xserver-1.7.1-libcrypto.patch
    (from rev 59194, xorg-server/trunk/xserver-1.7.1-libcrypto.patch)
  xorg-server/repos/extra-i686/xserver-1.7.1-nvidia-performance.patch
    (from rev 59194, xorg-server/trunk/xserver-1.7.1-nvidia-performance.patch)
  xorg-server/repos/extra-i686/xserver-1.7.1-sigaction.patch
    (from rev 59194, xorg-server/trunk/xserver-1.7.1-sigaction.patch)
Modified:
  xorg-server/repos/extra-i686/	(properties)
  xorg-server/repos/extra-i686/PKGBUILD

----------------------------------------+
 PKGBUILD                               |   33 ++++++++---
 xserver-1.7.1-gamma-kdm-fix.patch      |   34 +++++++++++
 xserver-1.7.1-libcrypto.patch          |   35 +++++++++++
 xserver-1.7.1-nvidia-performance.patch |   58 +++++++++++++++++++
 xserver-1.7.1-sigaction.patch          |   91 +++++++++++++++++++++++++++++++
 5 files changed, 244 insertions(+), 7 deletions(-)


Property changes on: xorg-server/repos/extra-i686
___________________________________________________________________
Modified: svnmerge-integrated
   - /xorg-server/trunk:1-58471
   + /xorg-server/trunk:1-59194

Modified: extra-i686/PKGBUILD
===================================================================
--- extra-i686/PKGBUILD	2009-11-21 10:48:36 UTC (rev 59194)
+++ extra-i686/PKGBUILD	2009-11-21 10:49:13 UTC (rev 59195)
@@ -2,8 +2,8 @@
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 
 pkgname=xorg-server
-pkgver=1.7.1.901
-pkgrel=2
+pkgver=1.7.1.902
+pkgrel=1
 pkgdesc="X.Org X servers"
 arch=('i686' 'x86_64')
 license=('custom')
@@ -19,11 +19,19 @@
 source=(${url}/releases/individual/xserver/${pkgname}-${pkgver}.tar.bz2
         xorg-redhat-die-ugly-pattern-die-die-die.patch
         xserver-1.7.1-window-pictures.patch
+        xserver-1.7.1-nvidia-performance.patch
+        xserver-1.7.1-libcrypto.patch
+        xserver-1.7.1-sigaction.patch
+        xserver-1.7.1-gamma-kdm-fix.patch
         xvfb-run
         xvfb-run.1)
-md5sums=('f6b874d3bd9350ef2f3c4a11c0096d2e'
+md5sums=('024dcbbcd617f76ee091fa383eea3202'
          '1a336eb22e27cbf443ec5a2ecddfa93c'
          '01507da1a18737a3a9202fbd00213f4c'
+         'd5c6e2de2e15bcff98d69f4772ee09ac'
+         '957d429cad03ac87281b7e40d963497c'
+         '9de9025a8c93b57188fce137b3262d1e'
+         '8eae23916552e609c36ecae1827c2e9d'
          '52fd3effd80d7bc6c1660d4ecf23d31c'
          '376c70308715cd2643f7bff936d9934b')
 
@@ -32,15 +40,26 @@
   # Get rid of the ugly pattern
   patch -Np3 -i "${srcdir}/xorg-redhat-die-ugly-pattern-die-die-die.patch" || return  1
 
-  # Fixes from http://wiki.x.org/wiki/Server17Branch
-
   # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-window-pictures.patch?view=log
-  # rev 1.4
-  #patch -Np1 -i "${srcdir}/xserver-1.7.1-window-pictures.patch" || return 1
+  patch -Np1 -i "${srcdir}/xserver-1.7.1-window-pictures.patch" || return 1
 
+  # http://lists.x.org/archives/xorg-devel/2009-November/003569.html
+  patch -Np1 -i "${srcdir}/xserver-1.7.1-nvidia-performance.patch" || return 1
+
+  # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-libcrypto.patch?view=log
+  patch -Np1 -i "${srcdir}/xserver-1.7.1-libcrypto.patch" || return 1
+
+  # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-sigaction.patch?view=log
+  patch -Np1 -i "${srcdir}/xserver-1.7.1-sigaction.patch" || return 1
+
+  # http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-gamma-kdm-fix.patch?view=log
+  patch -Np1 -i "${srcdir}/xserver-1.7.1-gamma-kdm-fix.patch" || return 1
+
   # Fix dbus config path
   sed -i -e 's/\$(sysconfdir)/\/etc/' config/Makefile.*  || return 1
 
+  autoconf || return 1
+
   ./configure --prefix=/usr \
               --enable-ipv6 \
               --enable-dri \

Copied: xorg-server/repos/extra-i686/xserver-1.7.1-gamma-kdm-fix.patch (from rev 59194, xorg-server/trunk/xserver-1.7.1-gamma-kdm-fix.patch)
===================================================================
--- extra-i686/xserver-1.7.1-gamma-kdm-fix.patch	                        (rev 0)
+++ extra-i686/xserver-1.7.1-gamma-kdm-fix.patch	2009-11-21 10:49:13 UTC (rev 59195)
@@ -0,0 +1,34 @@
+From acc64ce5be7383c09e88a23aab06ebc2403f2ca3 Mon Sep 17 00:00:00 2001
+From: Bill Nottingham <notting at redhat.com>
+Date: Fri, 6 Nov 2009 10:32:27 +1000
+Subject: [PATCH] fix KDM gamma issue on vt switch
+
+---
+ hw/xfree86/modes/xf86RandR12.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/hw/xfree86/modes/xf86RandR12.c b/hw/xfree86/modes/xf86RandR12.c
+index 6ea9d26..ece12b9 100644
+--- a/hw/xfree86/modes/xf86RandR12.c
++++ b/hw/xfree86/modes/xf86RandR12.c
+@@ -1761,6 +1761,7 @@ xf86RandR12Init12 (ScreenPtr pScreen)
+     ScrnInfoPtr		pScrn = xf86Screens[pScreen->myNum];
+     rrScrPrivPtr	rp = rrGetScrPriv(pScreen);
+     XF86RandRInfoPtr	randrp  = XF86RANDRINFO(pScreen);
++    int i;
+ 
+     rp->rrGetInfo = xf86RandR12GetInfo12;
+     rp->rrScreenSetSize = xf86RandR12ScreenSetSize;
+@@ -1790,6 +1791,9 @@ xf86RandR12Init12 (ScreenPtr pScreen)
+      */
+     if (!xf86RandR12SetInfo12 (pScreen))
+ 	return FALSE;
++    for (i = 0; i < rp->numCrtcs; i++) {
++	xf86RandR12CrtcGetGamma(pScreen, rp->crtcs[i]);
++    }
+     return TRUE;
+ }
+ 
+-- 
+1.6.5.1
+

Copied: xorg-server/repos/extra-i686/xserver-1.7.1-libcrypto.patch (from rev 59194, xorg-server/trunk/xserver-1.7.1-libcrypto.patch)
===================================================================
--- extra-i686/xserver-1.7.1-libcrypto.patch	                        (rev 0)
+++ extra-i686/xserver-1.7.1-libcrypto.patch	2009-11-21 10:49:13 UTC (rev 59195)
@@ -0,0 +1,35 @@
+From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax at redhat.com>
+Date: Mon, 16 Nov 2009 18:01:26 -0500
+Subject: [PATCH] configure: Only link against libcrypto
+
+openssl.pc will link you against libssl, which we don't need, and which
+brings in another seven libraries we also don't need.  This is still
+bogus, we're really only trying to get a SHA1 routine, we could link it
+statically and be even better off.
+---
+ configure.ac |    6 ------
+ 1 files changed, 0 insertions(+), 6 deletions(-)
+
+diff --git a/configure.ac b/configure.ac
+index f69f97e..254d33d 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then
+ fi
+ 
+ if test "x$SHA1_LIB" = "x" ; then
+-  PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
+-                    [HAVE_OPENSSL_PKC=no])
+-  if test "x$HAVE_OPENSSL_PKC" = xyes; then
+-    REQUIRED_LIBS="$REQUIRED_LIBS openssl"
+-  else
+     AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"],
+                  [AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])])
+-  fi
+ fi
+ 
+ PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
+-- 
+1.6.5.2
+

Copied: xorg-server/repos/extra-i686/xserver-1.7.1-nvidia-performance.patch (from rev 59194, xorg-server/trunk/xserver-1.7.1-nvidia-performance.patch)
===================================================================
--- extra-i686/xserver-1.7.1-nvidia-performance.patch	                        (rev 0)
+++ extra-i686/xserver-1.7.1-nvidia-performance.patch	2009-11-21 10:49:13 UTC (rev 59195)
@@ -0,0 +1,58 @@
+This patch speeds up a simple test app that maps a 1x1 ARGB window from 11
+seconds to 0.005 seconds.
+
+This patch needs to be applied after
+http://cvs.fedora.redhat.com/viewvc/rpms/xorg-x11-server/F-12/xserver-1.7.1-window-pictures.patch?revision=1.4&view=markup
+or the server will still be subject to the corruption and crash bugs that
+e9aa61e introduced.
+
+ fb/fbpict.c |   27 ++++++++++++++++++++++++++-
+ 1 files changed, 26 insertions(+), 1 deletions(-)
+
+diff --git a/fb/fbpict.c b/fb/fbpict.c
+index 5c96427..5799e37 100644
+--- a/fb/fbpict.c
++++ b/fb/fbpict.c
+@@ -317,6 +317,27 @@ destroy_drawable (pixman_image_t *image, void *data)
+     pScreen->DestroyPixmap ((PixmapPtr)pDrawable);
+ }
+ 
++/*
++ * Returns TRUE when the specified window is fully contained within its bounding
++ * pixmap.
++ */
++static Bool
++window_is_fully_contained(WindowPtr pWin)
++{
++    PixmapPtr pBoundingPix = (*pWin->drawable.pScreen->GetWindowPixmap)(pWin);
++    int x = pWin->drawable.x, y = pWin->drawable.y;
++
++#ifdef COMPOSITE
++    /* Translate from screen coordinates to pixmap coordinates */
++    x -= pBoundingPix->screen_x;
++    y -= pBoundingPix->screen_y;
++#endif
++
++    return x >= 0 && y >= 0 &&
++      x + pWin->drawable.width <= pBoundingPix->drawable.width &&
++      y + pWin->drawable.height <= pBoundingPix->drawable.height;
++}
++
+ static pixman_image_t *
+ create_bits_picture (PicturePtr pict,
+             Bool   has_clip,
+@@ -328,7 +349,11 @@ create_bits_picture (PicturePtr pict,
+     pixman_image_t *image;
+     DrawablePtr drawable;
+ 
+-    if (is_src && pict->pDrawable->type == DRAWABLE_WINDOW)
++    /* Copy the source window if part of it lies outside its bounding pixmap to
++     * avoid reading outside that pixmap' bounds, since Pixman doesn't clip the
++     * source image per pixel */
++    if (is_src && pict->pDrawable->type == DRAWABLE_WINDOW &&
++       !window_is_fully_contained((WindowPtr)pict->pDrawable))
+	drawable = copy_drawable (pict->pDrawable);
+    else
+	drawable = pict->pDrawable;
+-- 
+1.6.3.3

Copied: xorg-server/repos/extra-i686/xserver-1.7.1-sigaction.patch (from rev 59194, xorg-server/trunk/xserver-1.7.1-sigaction.patch)
===================================================================
--- extra-i686/xserver-1.7.1-sigaction.patch	                        (rev 0)
+++ extra-i686/xserver-1.7.1-sigaction.patch	2009-11-21 10:49:13 UTC (rev 59195)
@@ -0,0 +1,91 @@
+From 645de09fc84482a55b5234312027efd007e53d8c Mon Sep 17 00:00:00 2001
+From: Adam Jackson <ajax at redhat.com>
+Date: Sat, 7 Nov 2009 15:29:05 -0500
+Subject: [PATCH] xfree86: Use SA_SIGINFO if available for SIGIO handlers
+
+siginfo_t gives us the file descriptor that raised the signal directly,
+so we don't need to select() for it.  This gets evdev event processing
+down to exactly one syscall in the common case.
+
+Signed-off-by: Adam Jackson <ajax at redhat.com>
+---
+ hw/xfree86/os-support/shared/sigio.c |   40 ++++++++++++++++++++++++++++-----
+ 1 files changed, 34 insertions(+), 6 deletions(-)
+
+diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
+index aed5654..4f1ec55 100644
+--- a/hw/xfree86/os-support/shared/sigio.c
++++ b/hw/xfree86/os-support/shared/sigio.c
+@@ -95,12 +95,11 @@ static int		xf86SigIOMax;
+ static int		xf86SigIOMaxFd;
+ static fd_set		xf86SigIOMask;
+ 
+-/*
+- * SIGIO gives no way of discovering which fd signalled, select
+- * to discover
+- */
++#ifndef SA_SIGINFO
++
++/* plain signals have no way of discovering which fd signalled. */
+ static void
+-xf86SIGIO (int sig)
++sigio_handler (int sig)
+ {
+     int	    i;
+     fd_set  ready;
+@@ -126,6 +125,27 @@ xf86SIGIO (int sig)
+     errno = save_errno;
+ }
+ 
++#else /* have SA_SIGINFO */
++
++/* siginfo passes the triggering fd in, no need to select() */
++static void
++sigio_sigaction(int sig, siginfo_t *si, void *ctx)
++{
++    int i;
++    int save_errno = errno;
++
++    for (i = 0; i < MAX_FUNCS; i++) {
++        if (xf86SigIOFuncs[i].f && xf86SigIOFuncs[i].fd == si->si_fd) {
++            (*xf86SigIOFuncs[i].f)(si->si_fd, xf86SigIOFuncs[i].closure);
++            break;
++        }
++    }
++
++    errno = save_errno;
++}
++
++#endif
++
+ static int
+ xf86IsPipe (int fd)
+ {
+@@ -164,6 +184,9 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
+ 		    xf86Msg(X_WARNING, "fcntl(%d, F_SETOWN): %s\n",
+ 			    fd, strerror(errno));
+ 		} else {
++#ifdef SA_SIGINFO
++                    fcntl(fd, F_SETSIG, SIGIO);
++#endif
+ 		    installed = TRUE;
+ 		}
+ 	    }
+@@ -184,8 +207,13 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
+ 	    }
+ 	    sigemptyset(&sa.sa_mask);
+ 	    sigaddset(&sa.sa_mask, SIGIO);
++#ifndef SA_SIGINFO
+ 	    sa.sa_flags   = 0;
+-	    sa.sa_handler = xf86SIGIO;
++	    sa.sa_handler = sigio_handler;
++#else
++            sa.sa_flags     = SA_SIGINFO;
++            sa.sa_sigaction = sigio_sigaction;
++#endif
+ 	    sigaction(SIGIO, &sa, &osa);
+ 	    xf86SigIOFuncs[i].fd = fd;
+ 	    xf86SigIOFuncs[i].closure = closure;
+-- 
+1.6.5.rc2
+




More information about the arch-commits mailing list