xorg-server: update to xorg-server-1.9.99.903

Signed-off-by: Stephan Raue <stephan@openelec.tv>
This commit is contained in:
Stephan Raue 2011-03-03 08:45:42 +01:00
parent 050b64a1b8
commit aeeee06176
12 changed files with 152 additions and 77 deletions

View File

@ -42,7 +42,7 @@ cd $PKG_BUILD
--disable-static \
--enable-shared \
--disable-debug \
--disable-builddocs \
--disable-silent-rules \
--disable-strict-compilation \
--enable-largefile \
--enable-visibility \
@ -93,6 +93,8 @@ cd $PKG_BUILD
--enable-xfbdev \
--disable-install-setuid \
--disable-secure-rpc \
--disable-docs \
--disable-devel-docs \
--with-int10=x86emu \
--disable-ipv6 \
--with-gnu-ld \
@ -102,9 +104,8 @@ cd $PKG_BUILD
--with-xkb-path=$XORG_PATH_XKB \
--with-xkb-output=/var/cache/xkb \
--with-log-dir=/var/log \
--with-dri-driver-path=$XORG_PATH_DRI \
--with-fontrootdir=/usr/share/fonts \
--with-default-font-path="/usr/share/fonts/misc,built-ins"
--with-default-font-path="/usr/share/fonts/misc,built-ins" \
make
$MAKEINSTALL

View File

@ -43,7 +43,6 @@ mkdir -p $XORG_DST
cp -P $XORG_SRC/vgahw/.libs/libvgahw.so $XORG_DST
cp -P $XORG_SRC/dixmods/.libs/libwfb.so $XORG_DST
cp -P $XORG_SRC/xaa/.libs/libxaa.so $XORG_DST
cp -P $XORG_SRC/xf8_16bpp/.libs/libxf8_16bpp.so $XORG_DST
mkdir -p $XORG_DST/extensions
cp -P $XORG_SRC/dixmods/.libs/libdbe.so $XORG_DST/extensions

View File

@ -19,7 +19,7 @@
################################################################################
PKG_NAME="xorg-server"
PKG_VERSION="1.9.4"
PKG_VERSION="1.9.99.903"
PKG_REV="1"
PKG_ARCH="any"
PKG_LICENSE="OSS"

View File

@ -5,9 +5,9 @@ Signed-off-by: Bryce Harrington <bryce@canonical.com>
Index: xorg-server/configure.ac
===================================================================
--- xorg-server.orig/configure.ac 2010-07-14 14:02:00.000000000 +1000
+++ xorg-server/configure.ac 2010-07-14 14:18:57.201453001 +1000
@@ -540,9 +540,9 @@
--- xorg-server.orig/configure.ac 2011-01-31 15:12:21.000000000 +1100
+++ xorg-server/configure.ac 2011-01-31 15:13:26.563659152 +1100
@@ -537,9 +537,9 @@
AC_ARG_WITH(xkb-path, AS_HELP_STRING([--with-xkb-path=PATH], [Path to XKB base dir (default: ${datadir}/X11/xkb)]),
[ XKBPATH="$withval" ],
[ XKBPATH="${datadir}/X11/xkb" ])
@ -19,7 +19,7 @@ Index: xorg-server/configure.ac
AC_ARG_WITH(default-xkb-rules, AS_HELP_STRING([--with-default-xkb-rules=RULES],
[Keyboard ruleset (default: base/evdev)]),
[ XKB_DFLT_RULES="$withval" ],
@@ -1175,7 +1175,7 @@
@@ -1165,7 +1165,7 @@
dnl Make sure XKM_OUTPUT_DIR is an absolute path
XKBOUTPUT_FIRSTCHAR=`echo $XKBOUTPUT | cut -b 1`
if [[ x$XKBOUTPUT_FIRSTCHAR != x/ -a x$XKBOUTPUT_FIRSTCHAR != 'x$' ]] ; then
@ -30,8 +30,8 @@ Index: xorg-server/configure.ac
dnl XKM_OUTPUT_DIR (used in code) must end in / or file names get hosed
Index: xorg-server/xkb/README.compiled
===================================================================
--- xorg-server.orig/xkb/README.compiled 2010-06-18 12:58:19.000000000 +1000
+++ xorg-server/xkb/README.compiled 2010-07-14 14:18:57.201453001 +1000
--- xorg-server.orig/xkb/README.compiled 2011-01-28 12:31:51.000000000 +1100
+++ xorg-server/xkb/README.compiled 2011-01-31 15:13:26.563659152 +1100
@@ -4,10 +4,10 @@
or some other tool might destroy or replace the files in this directory,
so it is not a safe place to store compiled keymaps for long periods of
@ -49,8 +49,8 @@ Index: xorg-server/xkb/README.compiled
different hosts could cause problems.
Index: xorg-server/xkb/ddxLoad.c
===================================================================
--- xorg-server.orig/xkb/ddxLoad.c 2010-07-14 13:21:02.000000000 +1000
+++ xorg-server/xkb/ddxLoad.c 2010-07-14 14:51:09.761453001 +1000
--- xorg-server.orig/xkb/ddxLoad.c 2011-01-31 14:28:22.000000000 +1100
+++ xorg-server/xkb/ddxLoad.c 2011-01-31 15:17:50.814046721 +1100
@@ -30,6 +30,12 @@
#include <xkb-config.h>
@ -64,17 +64,13 @@ Index: xorg-server/xkb/ddxLoad.c
#include <stdio.h>
#include <ctype.h>
#include <X11/X.h>
@@ -43,24 +49,13 @@
@@ -43,20 +49,9 @@
#define XKBSRV_NEED_FILE_FUNCS
#include <xkbsrv.h>
#include <X11/extensions/XI.h>
+#include <errno.h>
#include "xkb.h"
#if defined(CSRG_BASED) || defined(linux) || defined(__GNU__)
#include <paths.h>
#endif
- /*
- * If XKM_OUTPUT_DIR specifies a path without a leading slash, it is
- * relative to the top-level XKB configuration directory.
@ -90,7 +86,7 @@ Index: xorg-server/xkb/ddxLoad.c
#define PRE_ERROR_MSG "\"The XKEYBOARD keymap compiler (xkbcomp) reports:\""
#define ERROR_PREFIX "\"> \""
#define POST_ERROR_MSG1 "\"Errors from xkbcomp are not fatal to the X server\""
@@ -174,6 +169,47 @@
@@ -170,6 +165,47 @@
}
}
@ -138,7 +134,7 @@ Index: xorg-server/xkb/ddxLoad.c
static Bool
XkbDDXCompileKeymapByNames( XkbDescPtr xkb,
XkbComponentNamesPtr names,
@@ -183,7 +219,11 @@
@@ -179,7 +215,11 @@
int nameRtrnLen)
{
FILE * out;
@ -151,7 +147,7 @@ Index: xorg-server/xkb/ddxLoad.c
const char *emptystring = "";
char *xkbbasedirflag = NULL;
@@ -194,14 +234,67 @@
@@ -190,14 +230,67 @@
/* WIN32 has no popen. The input must be stored in a file which is
used as input for xkbcomp. xkbcomp does not read from stdin. */
char tmpname[PATH_MAX];
@ -160,8 +156,9 @@ Index: xorg-server/xkb/ddxLoad.c
#else
- const char *xkmfile = "-";
+ const char *xkbfile = "-";
+#endif
+
#endif
- snprintf(keymap, sizeof(keymap), "server-%s", display);
+ /* Write keymap source (xkbfile) to memory buffer `xkbKeyMapBuf',
+ of which SHA1 is generated and used as result xkm file name */
+ memset(xkbKeyMapBuf, 0, sizeof(xkbKeyMapBuf));
@ -181,13 +178,12 @@ Index: xorg-server/xkb/ddxLoad.c
+ ErrorF("[xkb] XkbDDXCompileKeymapByNames compiling keymap:\n");
+ fputs(xkbKeyMapBuf, stderr);
+ }
#endif
+#endif
+ if (!ret) {
+ ErrorF("[xkb] Generating XKB Keymap failed, giving up compiling keymap\n");
+ return FALSE;
+ }
- snprintf(keymap, sizeof(keymap), "server-%s", display);
+
+ DebugF("[xkb] computing SHA1 of keymap\n");
+ if (Success == Sha1Asc(sha1Asc, xkbKeyMapBuf)) {
+ snprintf(xkmfile, sizeof(xkmfile), "server-%s", sha1Asc);
@ -222,7 +218,7 @@ Index: xorg-server/xkb/ddxLoad.c
#ifdef WIN32
strcpy(tmpname, Win32TempDir());
@@ -225,14 +318,20 @@
@@ -222,15 +315,21 @@
}
}
@ -232,21 +228,22 @@ Index: xorg-server/xkb/ddxLoad.c
+ goto _ret;
+ }
+
buf = Xprintf("\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
if (asprintf(&buf,
"\"%s%sxkbcomp\" -w %d %s -xkm \"%s\" "
- "-em1 %s -emp %s -eml %s \"%s%s.xkm\"",
+ "-em1 %s -emp %s -eml %s \"%s\"",
xkbbindir, xkbbindirsep,
( (xkbDebugFlags < 2) ? 1 :
((xkbDebugFlags > 10) ? 10 : (int)xkbDebugFlags) ),
- xkbbasedirflag ? xkbbasedirflag : "", xkmfile,
+ xkbbasedirflag ? xkbbasedirflag : "", xkbfile,
PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
- xkm_output_dir, keymap);
+ tmpXkmFile);
xkbbindir, xkbbindirsep,
((xkbDebugFlags < 2) ? 1 :
((xkbDebugFlags > 10) ? 10 : (int) xkbDebugFlags)),
- xkbbasedirflag ? xkbbasedirflag : "", xkmfile,
+ xkbbasedirflag ? xkbbasedirflag : "", xkbfile,
PRE_ERROR_MSG, ERROR_PREFIX, POST_ERROR_MSG1,
- xkm_output_dir, keymap) == -1)
+ tmpXkmFile) == -1)
buf = NULL;
free(xkbbasedirflag);
@@ -241,6 +340,11 @@
@@ -240,6 +339,11 @@
return FALSE;
}
@ -258,7 +255,7 @@ Index: xorg-server/xkb/ddxLoad.c
#ifndef WIN32
out= Popen(buf,"w");
#else
@@ -248,31 +352,42 @@
@@ -247,30 +351,42 @@
#endif
if (out!=NULL) {
@ -284,28 +281,29 @@ Index: xorg-server/xkb/ddxLoad.c
{
+ /* xkbcomp success */
if (xkbDebugFlags)
DebugF("[xkb] xkb executes: %s\n",buf);
- DebugF("[xkb] xkb executes: %s\n",buf);
- if (nameRtrn) {
- strncpy(nameRtrn,keymap,nameRtrnLen);
- nameRtrn[nameRtrnLen-1]= '\0';
- }
- free(buf);
- return TRUE;
+ DebugF("[xkb] xkb executes: %s\n",buf);
+
+ /* if canonicalXkmFileName already exists now, we simply
+ overwrite it, this is OK */
+ ret = rename(tmpXkmFile, canonicalXkmFileName);
+ if (0 != ret) {
+ ErrorF("[xkb] Can't rename %s to %s, error: %s\n",
+ tmpXkmFile, canonicalXkmFileName,
+ strerror(errno));
+ tmpXkmFile, canonicalXkmFileName,
+ strerror(errno));
+
+ /* in case of error, don't unlink tmpXkmFile, leave it
+ for debugging */
+ /* in case of error, don't unlink tmpXkmFile, leave i
+ for debugging */
+
+ result = FALSE;
+ goto _ret;
}
- if (buf != NULL)
- free(buf);
- return TRUE;
+ result = FALSE;
+ goto _ret;
+ }
+ result = TRUE;
+ goto _ret;
}
@ -315,12 +313,11 @@ Index: xorg-server/xkb/ddxLoad.c
#ifdef WIN32
/* remove the temporary file */
unlink(tmpname);
@@ -287,9 +402,17 @@
@@ -285,8 +401,17 @@
}
if (nameRtrn)
nameRtrn[0]= '\0';
- if (buf != NULL)
- free(buf);
- free(buf);
- return FALSE;
+ result = FALSE;
+
@ -332,11 +329,11 @@ Index: xorg-server/xkb/ddxLoad.c
+ if (buf)
+ free(buf);
+
+ return result;
+ return result;
}
static FILE *
@@ -373,7 +496,6 @@
@@ -370,7 +495,6 @@
DebugF("Loaded XKB keymap %s, defined=0x%x\n",fileName,(*xkbRtrn)->defined);
}
fclose(file);

View File

@ -1,20 +1,18 @@
From 9edb8ba5f8217f6f8ed80e064d57a97f4f3e9201 Mon Sep 17 00:00:00 2001
From a685b5cf34532cef96fc9b05f735088ac0c0c7ad Mon Sep 17 00:00:00 2001
From: Fedora X Ninjas <x@fedoraproject.org>
Date: Tue, 16 Feb 2010 11:38:17 +1000
Subject: [PATCH 07/17] autoconfig: select nouveau by default for NVIDIA GPUs
Subject: [PATCH 08/17] autoconfig: select nouveau by default for NVIDIA GPUs
Also, don't treat DRI setup failure as an error for nouveau.
---
glx/glxdri.c | 7 +++++--
glx/glxdri2.c | 7 +++++--
hw/xfree86/common/xf86pciBus.c | 18 +++++++++++++++++-
3 files changed, 27 insertions(+), 5 deletions(-)
glx/glxdri.c | 7 +++++--
glx/glxdri2.c | 7 +++++--
hw/xfree86/common/xf86AutoConfig.c | 19 ++++++++++++++++++-
3 files changed, 28 insertions(+), 5 deletions(-)
diff --git a/glx/glxdri.c b/glx/glxdri.c
index 32b35db..f3a501e 100644
--- a/glx/glxdri.c
+++ b/glx/glxdri.c
@@ -968,6 +968,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -979,6 +979,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
const __DRIconfig **driConfigs;
const __DRIextension **extensions;
int i;
@ -22,7 +20,7 @@ index 32b35db..f3a501e 100644
if (!xf86LoaderCheckSymbol("DRIQueryDirectRenderingCapable") ||
!DRIQueryDirectRenderingCapable(pScreen, &isCapable) ||
@@ -1047,7 +1048,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -1058,7 +1059,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
if (screen->driver == NULL) {
@ -33,7 +31,7 @@ index 32b35db..f3a501e 100644
filename, dlerror());
goto handle_error;
}
@@ -1185,7 +1188,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -1196,7 +1199,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
free(screen);
@ -42,11 +40,9 @@ index 32b35db..f3a501e 100644
return NULL;
}
diff --git a/glx/glxdri2.c b/glx/glxdri2.c
index 970a51a..c78d4b3 100644
--- a/glx/glxdri2.c
+++ b/glx/glxdri2.c
@@ -696,6 +696,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -709,6 +709,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
const __DRIextension **extensions;
const __DRIconfig **driConfigs;
int i;
@ -54,7 +50,7 @@ index 970a51a..c78d4b3 100644
screen = calloc(1, sizeof *screen);
if (screen == NULL)
@@ -722,7 +723,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -735,7 +736,9 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
screen->driver = dlopen(filename, RTLD_LAZY | RTLD_LOCAL);
if (screen->driver == NULL) {
@ -65,7 +61,7 @@ index 970a51a..c78d4b3 100644
filename, dlerror());
goto handle_error;
}
@@ -816,7 +819,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
@@ -829,7 +832,7 @@ __glXDRIscreenProbe(ScreenPtr pScreen)
free(screen);
@ -74,11 +70,9 @@ index 970a51a..c78d4b3 100644
return NULL;
}
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 74016af..9c296f5 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -1118,7 +1118,23 @@ videoPtrToDriverList(struct pci_device *dev,
@@ -1118,7 +1118,24 @@ videoPtrToDriverList(struct pci_device *
break;
case 0x102b: driverList[0] = "mga"; break;
case 0x10c8: driverList[0] = "neomagic"; break;
@ -97,12 +91,10 @@ index 74016af..9c296f5 100644
+ break;
+ default:
+ driverList[0] = "nouveau";
+ driverList[1] = "nv";
+ break;
+ }
+ break;
case 0x1106: driverList[0] = "openchrome"; break;
case 0x1b36: driverList[0] = "qxl"; break;
case 0x1163: driverList[0] = "rendition"; break;
--
1.7.1

View File

@ -0,0 +1,86 @@
From 0366a844c36bf8424a2625425c181b9b97f35bee Mon Sep 17 00:00:00 2001
From: Robert Hooker <sarvatt@ubuntu.com>
Date: Wed, 1 Sep 2010 13:23:21 -0400
Subject: [PATCH] Attempt to get nvidia and fglrx working without an xorg.conf.
Signed-off-by: Robert Hooker <sarvatt@ubuntu.com>
---
hw/xfree86/common/xf86AutoConfig.c | 12 +++++++++++-
hw/xfree86/common/xf86pciBus.c | 14 +++++++++-----
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/hw/xfree86/common/xf86AutoConfig.c b/hw/xfree86/common/xf86AutoConfig.c
index 8ef602d..a8f04b9 100644
--- a/hw/xfree86/common/xf86AutoConfig.c
+++ b/hw/xfree86/common/xf86AutoConfig.c
@@ -81,6 +81,13 @@
"\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
"EndSection\n\n"
+#define BUILTIN_SCREEN_SECTION_PROPRIETARY \
+ "Section \"Screen\"\n" \
+ "\tIdentifier\t" BUILTIN_SCREEN_NAME "\n" \
+ "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \
+ "\tDefaultDepth\t24\n" \
+ "EndSection\n\n"
+
#define BUILTIN_LAYOUT_SECTION_PRE \
"Section \"ServerLayout\"\n" \
"\tIdentifier\t\"Builtin Default Layout\"\n"
@@ -159,7 +166,10 @@ xf86AutoConfig(void)
for (p = deviceList; *p; p++) {
snprintf(buf, sizeof(buf), BUILTIN_DEVICE_SECTION, *p, 0, *p);
AppendToConfig(buf);
- snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0);
+ if( strcmp(*p, "fglrx") == 0 || strcmp(*p, "nvidia") == 0)
+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_PROPRIETARY, *p, 0, *p, 0);
+ else
+ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0);
AppendToConfig(buf);
}
diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c
index 930ed83..a6aa4f4 100644
--- a/hw/xfree86/common/xf86pciBus.c
+++ b/hw/xfree86/common/xf86pciBus.c
@@ -1102,7 +1102,10 @@ videoPtrToDriverList(struct pci_device *dev,
case 0x1142: driverList[0] = "apm"; break;
case 0xedd8: driverList[0] = "ark"; break;
case 0x1a03: driverList[0] = "ast"; break;
- case 0x1002: driverList[0] = "ati"; break;
+ case 0x1002:
+ driverList[0] = "fglrx";
+ driverList[1] = "ati";
+ break;
case 0x102c: driverList[0] = "chips"; break;
case 0x1013: driverList[0] = "cirrus"; break;
case 0x3d3d: driverList[0] = "glint"; break;
@@ -1119,20 +1122,21 @@ videoPtrToDriverList(struct pci_device *dev,
case 0x102b: driverList[0] = "mga"; break;
case 0x10c8: driverList[0] = "neomagic"; break;
case 0x10de: case 0x12d2:
+ driverList[0] = "nvidia";
switch (dev->device_id) {
/* NV1 */
case 0x0008:
case 0x0009:
- driverList[0] = "vesa";
+ driverList[1] = "vesa";
break;
/* NV3 */
case 0x0018:
case 0x0019:
- driverList[0] = "nv";
+ driverList[1] = "nv";
break;
default:
- driverList[0] = "nouveau";
- driverList[1] = "nv";
+ driverList[1] = "nouveau";
+ driverList[2] = "nv";
break;
}
break;
--
1.7.2