diff --git a/.cvsignore b/.cvsignore index b7d6e83..551b5a4 100644 --- a/.cvsignore +++ b/.cvsignore @@ -1 +1 @@ -xorg-server-1.5.99.902.tar.bz2 +xorg-server-1.5.99.903.tar.bz2 diff --git a/sources b/sources index 037b53b..96706b8 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7ccbc4519bd6ad289cbbd7b696d30e8e xorg-server-1.5.99.902.tar.bz2 +c80db7b363ea9303243c58e77c464df0 xorg-server-1.5.99.903.tar.bz2 diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 59daf7f..224cb5f 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -18,8 +18,8 @@ Summary: X.Org X11 X server Name: xorg-x11-server -Version: 1.5.99.902 -Release: 13%{?dist} +Version: 1.5.99.903 +Release: 1%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -82,33 +82,21 @@ Patch6002: xserver-1.5.1-mode-debug.patch Patch6004: xserver-1.5.99.3-dmx-xcalloc.patch -Patch6008: xserver-1.5.99.3-fix-core-fonts.patch -# Pushed to master, should be in 1.6 -Patch6009: xserver-1.5.99.902-xinerama.patch # cf. bug 482924 Patch6010: xserver-1.5.99.902-selinux-debugging.patch -# nominated for 1.6 (FDO #19574) -Patch6011: xserver-1.5.99.902-mediakeys-crash.patch # ensure HAL can start after X, upstream soon, not 1.6 yet. Patch6012: xserver-1.5.99.902-listen-for-hal.patch # don't try intel on poulsbo Patch6013: xserver-1.5.99.902-sod-off-poulsbo.patch -# In master, nominated for 1.6 -Patch6014: xserver-1.5.99.902-always-RAW.patch # https://bugs.freedesktop.org/show_bug.cgi?id=20087 Patch6015: xserver-1.5.99.902-vnc.patch -# RH 469572, FDO 20081 -Patch6016: xserver-1.5.99.902-xkb-colors.patch # Make autoconfiguration chose nouveau driver for NVIDIA GPUs Patch6017: xserver-1.5.99.902-nouveau.patch -# hackaround for non-randr drivers, should be in final -Patch6018: xserver-1.5.99.902-randr-soft-getpanning.patch - %define moduledir %{_libdir}/xorg/modules %define drimoduledir %{_libdir}/dri %define sdkdir %{_includedir}/xorg @@ -525,6 +513,10 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Wed Feb 18 2009 Peter Hutterer 1.5.99.903-1 +- xserver 1.6. RC 3 +- remove patches merged into upstream. + * Tue Feb 17 2009 Adam Jackson 1.5.99.902-13 - xserver-1.5.99.902-randr-soft-getpanning.patch: Fail RRGetPanning softly when the driver doesn't support it. diff --git a/xserver-1.5.99.3-fix-core-fonts.patch b/xserver-1.5.99.3-fix-core-fonts.patch deleted file mode 100644 index 20e90e1..0000000 --- a/xserver-1.5.99.3-fix-core-fonts.patch +++ /dev/null @@ -1,230 +0,0 @@ -From 49b93df8a3002db7196aa3fc1fd8dca1c12a55d6 Mon Sep 17 00:00:00 2001 -From: Paulo Cesar Pereira de Andrade -Date: Wed, 07 Jan 2009 21:37:03 +0000 -Subject: Default to use standard bitmap fonts, with builtins as fallback - - The builtin-fonts configure option was removed, as it at best should -have been a runtime option. Instead, now it always register all "font -path element" backends, and adds built-ins fonts at the end of the -default font path. - This should be a more reasonable solution, to "correct" the most -common Xorg FAQ (could not open default font 'fixed'), and also don't -break by default applications that use only the standard/historical -X Font rendering. ---- -diff --git a/configure.ac b/configure.ac -index 22a09b0..ae455de 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -507,9 +507,6 @@ AC_ARG_ENABLE(install-libxf86config, - [Install libxf86config (default: disabled)]), - [INSTALL_LIBXF86CONFIG=$enableval], - [INSTALL_LIBXF86CONFIG=no]) --AC_ARG_ENABLE(builtin-fonts, AS_HELP_STRING([--enable-builtin-fonts], [Use only built-in fonts (default: yes)]), -- [BUILTIN_FONTS=$enableval], -- [BUILTIN_FONTS=yes]) - AC_ARG_ENABLE(null-root-cursor, AS_HELP_STRING([--enable-null-root-cursor], [Use an empty root cursor (default: use core cursor)]), - [NULL_ROOT_CURSOR=$enableval], - [NULL_ROOT_CURSOR=no]) -@@ -963,11 +960,6 @@ if test "x$DPMSExtension" = xyes; then - AC_DEFINE(DPMSExtension, 1, [Support DPMS extension]) - fi - --if test "x$BUILTIN_FONTS" = xyes; then -- AC_DEFINE(BUILTIN_FONTS, 1, [Use only built-in fonts]) -- FONTPATH="built-ins" --fi -- - if test "x$XCALIBRATE" = xyes && test "$KDRIVE" = yes; then - AC_DEFINE(XCALIBRATE, 1, [Build XCalibrate extension]) - REQUIRED_MODULES="$REQUIRED_MODULES xcalibrateproto" -diff --git a/dix/dixfonts.c b/dix/dixfonts.c -index 15d011c..b0fbed2 100644 ---- a/dix/dixfonts.c -+++ b/dix/dixfonts.c -@@ -1906,12 +1906,9 @@ InitFonts (void) - { - patternCache = MakeFontPatternCache(); - --#ifdef BUILTIN_FONTS - BuiltinRegisterFpeFunctions(); --#else - FontFileRegisterFpeFunctions(); - fs_register_fpe_functions(); --#endif - } - - int -diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c -index 48d8efd..198b20f 100644 ---- a/hw/xfree86/common/xf86Config.c -+++ b/hw/xfree86/common/xf86Config.c -@@ -110,8 +110,6 @@ extern DeviceAssocRec mouse_assoc; - #define PROJECTROOT "/usr/X11R6" - #endif - --static char *fontPath = NULL; -- - static ModuleDefault ModuleDefaults[] = { - {.name = "extmod", .toLoad = TRUE, .load_opt=NULL}, - {.name = "dbe", .toLoad = TRUE, .load_opt=NULL}, -@@ -586,90 +584,55 @@ xf86ConfigError(char *msg, ...) - static void - configFiles(XF86ConfFilesPtr fileconf) - { -- MessageType pathFrom = X_DEFAULT; -- int countDirs; -- char *temp_path; -- char *log_buf; -- -- /* FontPath */ -- /* Try XF86Config FontPath first */ -- if (!xf86fpFlag) { -- if (fileconf) { -- if (fileconf->file_fontpath) { -- char *f = xf86ValidateFontPath(fileconf->file_fontpath); -- pathFrom = X_CONFIG; -- if (*f) { -- if (xf86Info.useDefaultFontPath) { -- char *g; -- xf86Msg(X_DEFAULT, "Including the default font path %s.\n", defaultFontPath); -- g = xnfalloc(strlen(defaultFontPath) + strlen(f) + 3); -- strcpy(g, f); -- strcat(g, ","); -- defaultFontPath = strcat(g, defaultFontPath); -- xfree(f); -- } else { -- defaultFontPath = f; -- } -- } else { -- xf86Msg(X_WARNING, -- "FontPath is completely invalid. Using compiled-in default.\n"); -- fontPath = NULL; -- pathFrom = X_DEFAULT; -- } -- } -- } else { -- xf86Msg(X_DEFAULT, -- "No FontPath specified. Using compiled-in default.\n"); -- pathFrom = X_DEFAULT; -- } -- } else { -- /* Use fontpath specified with '-fp' */ -- if (fontPath) -- { -- fontPath = NULL; -+ MessageType pathFrom; -+ Bool must_copy; -+ int size, countDirs; -+ char *temp_path, *log_buf, *start, *end; -+ -+ /* FontPath */ -+ must_copy = TRUE; -+ -+ temp_path = defaultFontPath ? defaultFontPath : ""; -+ if (xf86fpFlag) -+ pathFrom = X_CMDLINE; -+ else if (fileconf && fileconf->file_fontpath) { -+ pathFrom = X_CONFIG; -+ if (xf86Info.useDefaultFontPath) { -+ defaultFontPath = Xprintf("%s%s%s", -+ fileconf->file_fontpath, -+ *temp_path ? "," : "", temp_path); -+ must_copy = FALSE; -+ } -+ else -+ defaultFontPath = fileconf->file_fontpath; - } -- pathFrom = X_CMDLINE; -- } -- if (!fileconf) { -- /* xf86ValidateFontPath will write into it's arg, but defaultFontPath -- could be static, so we make a copy. */ -- char *f = xnfalloc(strlen(defaultFontPath) + 1); -- f[0] = '\0'; -- strcpy (f, defaultFontPath); -- defaultFontPath = xf86ValidateFontPath(f); -- xfree(f); -- } else { -- if (fileconf) { -- if (!fileconf->file_fontpath) { -- /* xf86ValidateFontPath will write into it's arg, but defaultFontPath -- could be static, so we make a copy. */ -- char *f = xnfalloc(strlen(defaultFontPath) + 1); -- f[0] = '\0'; -- strcpy (f, defaultFontPath); -- defaultFontPath = xf86ValidateFontPath(f); -- xfree(f); -- } -- } -- } -- -- /* If defaultFontPath is still empty, exit here */ -- -- if (! *defaultFontPath) -- FatalError("No valid FontPath could be found."); -- -- /* make fontpath more readable in the logfiles */ -- countDirs = 1; -- temp_path = defaultFontPath; -- while((temp_path = index(temp_path, ',')) != NULL) { -- countDirs++; -- temp_path++; -- } -- log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1); -- if(!log_buf) /* fallback to old method */ -- xf86Msg(pathFrom, "FontPath set to \"%s\"\n", defaultFontPath); -- else { -- char *start, *end; -- int size; -+ else -+ pathFrom = X_DEFAULT; -+ temp_path = defaultFontPath ? defaultFontPath : ""; -+ -+ /* ensure defaultFontPath contains "built-ins" */ -+ start = strstr(temp_path, "built-ins"); -+ end = start + strlen("built-ins"); -+ if (start == NULL || -+ !((start == temp_path || start[-1] == ',') && (!*end || *end == ','))) { -+ defaultFontPath = Xprintf("%s%sbuilt-ins", -+ temp_path, *temp_path ? "," : ""); -+ must_copy = FALSE; -+ } -+ /* xf86ValidateFontPath modifies its argument, but returns a copy of it. */ -+ temp_path = must_copy ? XNFstrdup(defaultFontPath) : defaultFontPath; -+ defaultFontPath = xf86ValidateFontPath(temp_path); -+ free(temp_path); -+ -+ /* make fontpath more readable in the logfiles */ -+ countDirs = 1; -+ temp_path = defaultFontPath; -+ while ((temp_path = index(temp_path, ',')) != NULL) { -+ countDirs++; -+ temp_path++; -+ } -+ -+ log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1); - temp_path = log_buf; - start = defaultFontPath; - while((end = index(start, ',')) != NULL) { -@@ -685,7 +648,6 @@ configFiles(XF86ConfFilesPtr fileconf) - strcpy(temp_path, start); - xf86Msg(pathFrom, "FontPath set to:\n%s\n", log_buf); - xfree(log_buf); -- } - - - if (fileconf && fileconf->file_inputdevs) { -diff --git a/include/dixfont.h b/include/dixfont.h -index 97bd712..e444a20 100644 ---- a/include/dixfont.h -+++ b/include/dixfont.h -@@ -142,4 +142,6 @@ - - extern void SetGlyphCachingMode(int /*newmode*/); - -+extern void BuiltinRegisterFpeFunctions(void); -+ - #endif /* DIXFONT_H */ --- -cgit v0.8.1-24-ge5fb diff --git a/xserver-1.5.99.902-always-RAW.patch b/xserver-1.5.99.902-always-RAW.patch deleted file mode 100644 index a0fd0f6..0000000 --- a/xserver-1.5.99.902-always-RAW.patch +++ /dev/null @@ -1,103 +0,0 @@ -From b33905234025f005819c7e2acd653a3a0ecfeb82 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Fri, 9 Jan 2009 14:32:14 +1000 -Subject: [PATCH] xfree86: always force RAW mode under linux. - -The previous check for AEI on left us with the possibility that AEI is forced -off in the config, but devices are added through evdev nonetheless. A keyboard -added this way can CTRL+C the server. Even when we use kbd, we can set the -mode to RAW, so it's safer alround to to so. - -Signed-off-by: Peter Hutterer ---- - hw/xfree86/os-support/linux/lnx_init.c | 60 +++++++++++++------------------ - 1 files changed, 25 insertions(+), 35 deletions(-) - -diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c -index 0ac97e8..17502a1 100644 ---- a/hw/xfree86/os-support/linux/lnx_init.c -+++ b/hw/xfree86/os-support/linux/lnx_init.c -@@ -250,6 +250,8 @@ xf86OpenConsole(void) - - if (!ShareVTs) - { -+ struct termios nTty; -+ - #if defined(DO_OS_FONTRESTORE) - lnx_savefont(); - #endif -@@ -282,37 +284,27 @@ xf86OpenConsole(void) - FatalError("xf86OpenConsole: KDSETMODE KD_GRAPHICS failed %s\n", - strerror(errno)); - -- /* Set the keyboard to RAW mode. If we're using the keyboard -- * driver, the driver does it for us. If we have AEI on, then -- * we're expecting the devices to be added (i.e. evdev) and we -- * have to set it manually. -- */ -- if (xf86Info.allowEmptyInput) -- { -- struct termios nTty; -- -- tcgetattr(xf86Info.consoleFd, &tty_attr); -- ioctl(xf86Info.consoleFd, KDGKBMODE, &tty_mode); -- -- if (ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW) < 0) -- FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed %s\n", -- strerror(errno)); -- -- nTty = tty_attr; -- nTty.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP); -- nTty.c_oflag = 0; -- nTty.c_cflag = CREAD | CS8; -- nTty.c_lflag = 0; -- nTty.c_cc[VTIME]=0; -- nTty.c_cc[VMIN]=1; -- cfsetispeed(&nTty, 9600); -- cfsetospeed(&nTty, 9600); -- tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty); -- -- /* need to keep the buffer clean, else the kernel gets angry */ -- console_handler = xf86AddGeneralHandler(xf86Info.consoleFd, -- drain_console, NULL); -- } -+ tcgetattr(xf86Info.consoleFd, &tty_attr); -+ ioctl(xf86Info.consoleFd, KDGKBMODE, &tty_mode); -+ -+ if (ioctl(xf86Info.consoleFd, KDSKBMODE, K_RAW) < 0) -+ FatalError("xf86OpenConsole: KDSKBMODE K_RAW failed %s\n", -+ strerror(errno)); -+ -+ nTty = tty_attr; -+ nTty.c_iflag = (IGNPAR | IGNBRK) & (~PARMRK) & (~ISTRIP); -+ nTty.c_oflag = 0; -+ nTty.c_cflag = CREAD | CS8; -+ nTty.c_lflag = 0; -+ nTty.c_cc[VTIME]=0; -+ nTty.c_cc[VMIN]=1; -+ cfsetispeed(&nTty, 9600); -+ cfsetospeed(&nTty, 9600); -+ tcsetattr(xf86Info.consoleFd, TCSANOW, &nTty); -+ -+ /* need to keep the buffer clean, else the kernel gets angry */ -+ console_handler = xf86AddGeneralHandler(xf86Info.consoleFd, -+ drain_console, NULL); - - /* we really should have a InitOSInputDevices() function instead - * of Init?$#*&Device(). So I just place it here */ -@@ -376,10 +368,8 @@ xf86CloseConsole(void) - xf86Msg(X_WARNING, "xf86CloseConsole: KDSETMODE failed: %s\n", - strerror(errno)); - -- if (xf86Info.allowEmptyInput) { -- ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode); -- tcsetattr(xf86Info.consoleFd, TCSANOW, &tty_attr); -- } -+ ioctl(xf86Info.consoleFd, KDSKBMODE, tty_mode); -+ tcsetattr(xf86Info.consoleFd, TCSANOW, &tty_attr); - - if (ioctl(xf86Info.consoleFd, VT_GETMODE, &VT) < 0) - xf86Msg(X_WARNING, "xf86CloseConsole: VT_GETMODE failed: %s\n", --- -1.6.0.6 - diff --git a/xserver-1.5.99.902-mediakeys-crash.patch b/xserver-1.5.99.902-mediakeys-crash.patch deleted file mode 100644 index 6698683..0000000 --- a/xserver-1.5.99.902-mediakeys-crash.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0d4beba90ad82998f123f05dc0a03003f031b6f0 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Fri, 16 Jan 2009 20:38:57 +1000 -Subject: [PATCH] mi: force the paired kbd device before CopyKeyClass. (#19574) - -Some multi-media keyboards send the key events for multimedia keys through the -device file used by the mouse. Sending a key event through the VCP however -will fail. The VCP doesn't have a key class so the server crashes or (with an -appropriate fix) the event is simply swallowed. - -Thus, for key events if the master does not have a key class, get the device -paired with the master (i.e. the VCK) before processing the event any further. - -X.Org Bug 19574 ---- - mi/mieq.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/mi/mieq.c b/mi/mieq.c -index 226caa6..213ad5b 100644 ---- a/mi/mieq.c -+++ b/mi/mieq.c -@@ -451,7 +451,11 @@ mieqProcessInputEvents(void) - is transferred. */ - if (event->u.u.type == DeviceKeyPress || - event->u.u.type == DeviceKeyRelease) -+ { -+ if (!master->key) -+ master = GetPairedDevice(master); - CopyKeyClass(dev, master); -+ } - - CopyGetMasterEvent(master, dev, event, masterEvents, nevents); - } diff --git a/xserver-1.5.99.902-randr-soft-getpanning.patch b/xserver-1.5.99.902-randr-soft-getpanning.patch deleted file mode 100644 index 40c0481..0000000 --- a/xserver-1.5.99.902-randr-soft-getpanning.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 38eb087aba509d85bbbf0dabf501201fd6af1a32 Mon Sep 17 00:00:00 2001 -From: Adam Jackson -Date: Tue, 17 Feb 2009 12:59:16 -0500 -Subject: [PATCH] RANDR: Fail softly on GetPanning if the screen can't do it. - -Just return a zeroed-out reply in that case. This is unambiguous, and -distinguishes "you didn't name a CRTC" from "you named a CRTC that can't -do panning". ---- - randr/rrcrtc.c | 33 +++++++++++++++++---------------- - 1 files changed, 17 insertions(+), 16 deletions(-) - -diff --git a/randr/rrcrtc.c b/randr/rrcrtc.c -index 2160834..7b724ae 100644 ---- a/randr/rrcrtc.c -+++ b/randr/rrcrtc.c -@@ -1038,30 +1038,31 @@ ProcRRGetPanning (ClientPtr client) - pScreen = crtc->pScreen; - pScrPriv = rrGetScrPriv(pScreen); - -- if (!pScrPriv || !pScrPriv->rrGetPanning) -+ if (!pScrPriv) - return RRErrorBase + BadRRCrtc; - -+ memset(&rep, 0, sizeof(rep)); - rep.type = X_Reply; - rep.status = RRSetConfigSuccess; - rep.sequenceNumber = client->sequence; - rep.length = 1; - rep.timestamp = pScrPriv->lastSetTime.milliseconds; - -- if (! pScrPriv->rrGetPanning (pScreen, crtc, &total, &tracking, border)) -- return RRErrorBase + BadRRCrtc; -- -- rep.left = total.x1; -- rep.top = total.y1; -- rep.width = total.x2 - total.x1; -- rep.height = total.y2 - total.y1; -- rep.track_left = tracking.x1; -- rep.track_top = tracking.y1; -- rep.track_width = tracking.x2 - tracking.x1; -- rep.track_height = tracking.y2 - tracking.y1; -- rep.border_left = border[0]; -- rep.border_top = border[1]; -- rep.border_right = border[2]; -- rep.border_bottom = border[3]; -+ if (pScrPriv->rrGetPanning && -+ pScrPriv->rrGetPanning (pScreen, crtc, &total, &tracking, border)) { -+ rep.left = total.x1; -+ rep.top = total.y1; -+ rep.width = total.x2 - total.x1; -+ rep.height = total.y2 - total.y1; -+ rep.track_left = tracking.x1; -+ rep.track_top = tracking.y1; -+ rep.track_width = tracking.x2 - tracking.x1; -+ rep.track_height = tracking.y2 - tracking.y1; -+ rep.border_left = border[0]; -+ rep.border_top = border[1]; -+ rep.border_right = border[2]; -+ rep.border_bottom = border[3]; -+ } - - if (client->swapped) { - swaps(&rep.sequenceNumber, n); --- -1.6.1.3 - diff --git a/xserver-1.5.99.902-xinerama.patch b/xserver-1.5.99.902-xinerama.patch deleted file mode 100644 index 94104d1..0000000 --- a/xserver-1.5.99.902-xinerama.patch +++ /dev/null @@ -1,39 +0,0 @@ -From d06c8a08a432c042748b055638eb7a2a1cc453ea Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Mon, 2 Feb 2009 10:20:13 +1000 -Subject: [PATCH] mi: don't call UpdateSpriteForScreen if we have Xinerama enabled. #18668 - -In Xinerama all windows hang off the first root window. Crossing the screens -must not reset the spriteTrace, otherwise picking fails and events are sent to -the root window. - -X.Org Bug 18668 - -Signed-off-by: Peter Hutterer ---- - mi/mipointer.c | 9 ++++++++- - 1 files changed, 8 insertions(+), 1 deletions(-) - -diff --git a/mi/mipointer.c b/mi/mipointer.c -index d520281..e3a4656 100644 ---- a/mi/mipointer.c -+++ b/mi/mipointer.c -@@ -332,7 +332,14 @@ miPointerWarpCursor (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y) - pPointer->pScreen = pScreen; - } - -- if (changedScreen) -+ /* Don't call USFS if we use Xinerama, otherwise the root window is -+ * updated to the second screen, and we never receive any events. -+ * (FDO bug #18668) */ -+ if (changedScreen -+#ifdef PANORAMIX -+ && noPanoramiXExtension -+#endif -+ ) - UpdateSpriteForScreen (pDev, pScreen) ; - } - --- -1.6.0.6 - diff --git a/xserver-1.5.99.902-xkb-colors.patch b/xserver-1.5.99.902-xkb-colors.patch deleted file mode 100644 index 6b49c90..0000000 --- a/xserver-1.5.99.902-xkb-colors.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 97b23d4a932a493c5f6dc470925a67ad684e4f0f Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Fri, 13 Feb 2009 09:56:22 +1000 -Subject: [PATCH] xkb: Fix wrong colour reference in XKB geometry copying. #20081 - -base_color and label_color need to reference the color in the destination, not -in the source. - -X.Org Bug 20081 - -Signed-off-by: Peter Hutterer -Signed-off-by: Daniel Stone ---- - xkb/xkbUtils.c | 4 ++-- - 1 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/xkb/xkbUtils.c b/xkb/xkbUtils.c -index aa63b35..9a1edc9 100644 ---- a/xkb/xkbUtils.c -+++ b/xkb/xkbUtils.c -@@ -1955,9 +1955,9 @@ _XkbCopyGeom(XkbDescPtr src, XkbDescPtr dst) - - strcpy(dst->geom->label_font, src->geom->label_font); - i = XkbGeomColorIndex(src->geom, src->geom->label_color); -- dst->geom->label_color = &(src->geom->colors[i]); -+ dst->geom->label_color = &(dst->geom->colors[i]); - i = XkbGeomColorIndex(src->geom, src->geom->base_color); -- dst->geom->base_color = &(src->geom->colors[i]); -+ dst->geom->base_color = &(dst->geom->colors[i]); - } - else { - if (dst->geom->label_font) { --- -1.6.0.6 -