From 6294ad6cbb3a1de35415735576e7d58faa1a39dcc28ca4ce273099ce565ca470 Mon Sep 17 00:00:00 2001 From: OBS User buildservice-autocommit Date: Tue, 6 Apr 2010 23:52:32 +0000 Subject: [PATCH] Updating link to change in openSUSE:Factory/xorg-x11-server revision 161.0 OBS-URL: https://build.opensuse.org/package/show/X11:XOrg/xorg-x11-server?expand=0&rev=059278921dffcec888453e1db8ed4b3c --- fix_fglrx_screendepth_issue.patch | 28 +++++++++ xorg-server-option_libxf86config.diff | 91 +++++++++++++++++++++++++++ xorg-x11-server.changes | 12 ++++ xorg-x11-server.spec | 8 ++- 4 files changed, 137 insertions(+), 2 deletions(-) create mode 100644 fix_fglrx_screendepth_issue.patch create mode 100644 xorg-server-option_libxf86config.diff diff --git a/fix_fglrx_screendepth_issue.patch b/fix_fglrx_screendepth_issue.patch new file mode 100644 index 0000000..3141571 --- /dev/null +++ b/fix_fglrx_screendepth_issue.patch @@ -0,0 +1,28 @@ +--- hw/xfree86/common/xf86AutoConfig.c.orig 2010-03-23 19:36:35.242114919 +0100 ++++ hw/xfree86/common/xf86AutoConfig.c 2010-03-23 19:46:34.037124633 +0100 +@@ -75,6 +75,13 @@ + "\tDevice\t" BUILTIN_DEVICE_NAME "\n" \ + "EndSection\n\n" + ++#define BUILTIN_SCREEN_SECTION_FOR_FGLRX \ ++ "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" +@@ -259,7 +266,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 ) ++ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION_FOR_FGLRX, *p, 0, *p, 0); ++ else ++ snprintf(buf, sizeof(buf), BUILTIN_SCREEN_SECTION, *p, 0, *p, 0); + AppendToConfig(buf); + } + diff --git a/xorg-server-option_libxf86config.diff b/xorg-server-option_libxf86config.diff new file mode 100644 index 0000000..8b5a76f --- /dev/null +++ b/xorg-server-option_libxf86config.diff @@ -0,0 +1,91 @@ +--- hw/xfree86/parser/InputClass.c ++++ hw/xfree86/parser/InputClass.c +@@ -61,6 +61,47 @@ + + #define TOKEN_SEP "|" + ++/* ++ * Tokenize a string into a NULL terminated array of strings. Always returns ++ * an allocated array unless an error occurs. ++ */ ++char** ++m_xstrtokenize(const char *str, const char *separators) ++{ ++ char **list, **nlist; ++ char *tok, *tmp; ++ unsigned num = 0, n; ++ ++ if (!str) ++ return NULL; ++ list = calloc(1, sizeof(*list)); ++ if (!list) ++ return NULL; ++ tmp = strdup(str); ++ if (!tmp) ++ goto error; ++ for (tok = strtok(tmp, separators); tok; tok = strtok(NULL, separators)) { ++ nlist = realloc(list, (num + 2) * sizeof(*list)); ++ if (!nlist) ++ goto error; ++ list = nlist; ++ list[num] = strdup(tok); ++ if (!list[num]) ++ goto error; ++ list[++num] = NULL; ++ } ++ free(tmp); ++ return list; ++ ++error: ++ free(tmp); ++ for (n = 0; n < num; n++) ++ free(list[n]); ++ free(list); ++ return NULL; ++} ++ ++ + XF86ConfInputClassPtr + xf86parseInputClassSection(void) + { +@@ -96,22 +137,22 @@ + case MATCH_PRODUCT: + if (xf86getSubToken(&(ptr->comment)) != STRING) + Error(QUOTE_MSG, "MatchProduct"); +- ptr->match_product = xstrtokenize(val.str, TOKEN_SEP); ++ ptr->match_product = m_xstrtokenize(val.str, TOKEN_SEP); + break; + case MATCH_VENDOR: + if (xf86getSubToken(&(ptr->comment)) != STRING) + Error(QUOTE_MSG, "MatchVendor"); +- ptr->match_vendor = xstrtokenize(val.str, TOKEN_SEP); ++ ptr->match_vendor = m_xstrtokenize(val.str, TOKEN_SEP); + break; + case MATCH_DEVICE_PATH: + if (xf86getSubToken(&(ptr->comment)) != STRING) + Error(QUOTE_MSG, "MatchDevicePath"); +- ptr->match_device = xstrtokenize(val.str, TOKEN_SEP); ++ ptr->match_device = m_xstrtokenize(val.str, TOKEN_SEP); + break; + case MATCH_TAG: + if (xf86getSubToken(&(ptr->comment)) != STRING) + Error(QUOTE_MSG, "MatchTag"); +- ptr->match_tag = xstrtokenize(val.str, TOKEN_SEP); ++ ptr->match_tag = m_xstrtokenize(val.str, TOKEN_SEP); + break; + case MATCH_IS_KEYBOARD: + if (xf86getSubToken(&(ptr->comment)) != STRING) +--- hw/xfree86/parser/Layout.c ++++ hw/xfree86/parser/Layout.c +@@ -449,7 +449,10 @@ + /* add all AutoServerLayout devices to the server layout */ + while (input) + { +- if (xf86CheckBoolOption(input->inp_option_lst, "AutoServerLayout", FALSE)) ++ Bool asl_value = FALSE; ++ char *s = xf86findOptionValue(input->inp_option_lst ,"AutoServerLayout"); ++ Bool asl_found = xf86getBoolValue(&asl_value, s); ++ if (asl_found == TRUE && asl_value == TRUE) + { + XF86ConfInputrefPtr iref = layout->lay_input_lst; + diff --git a/xorg-x11-server.changes b/xorg-x11-server.changes index 9020bf7..10c711c 100644 --- a/xorg-x11-server.changes +++ b/xorg-x11-server.changes @@ -1,3 +1,15 @@ +------------------------------------------------------------------- +Tue Apr 6 20:48:21 CEST 2010 - ro@suse.de + +- fix libxf86config (resolve references) + +------------------------------------------------------------------- +Tue Apr 6 18:20:00 CEST 2010 - sndirsch@suse.de + +- fix_fglrx_screendepth_issue.patch + * hardcode default color depth of fglrx driver to 24bit to fix + video driver autoconfiguration (bnc #593878) + ------------------------------------------------------------------- Fri Apr 2 11:33:28 CEST 2010 - sndirsch@suse.de diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 567b655..548770c 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -35,7 +35,7 @@ BuildRequires: libjpeg-devel Url: http://xorg.freedesktop.org/ %define EXPERIMENTAL 0 Version: 7.5_%{dirsuffix} -Release: 1 +Release: 2 License: GPLv2+ ; MIT License (or similar) BuildRoot: %{_tmppath}/%{name}-%{version}-build Group: System/X11/Servers/XF86_4 @@ -126,6 +126,8 @@ Patch202: 0001-Check-harder-for-primary-PCI-device.patch Patch203: 0001-Fix-segfault-when-killing-X-with-ctrl-alt-backspace.patch Patch204: missing_font_paths.diff Patch205: xorg-server-1.8.0.diff +Patch206: fix_fglrx_screendepth_issue.patch +Patch207: xorg-server-option_libxf86config.diff %description This package contains the X.Org Server. @@ -249,6 +251,8 @@ popd %patch203 -p1 %patch204 -p0 %patch205 -p0 +%patch206 -p0 +%patch207 -p0 %build pushd xorg-docs-* @@ -318,7 +322,7 @@ autoreconf -fi --with-xkb-path="/usr/share/X11/xkb" \ --with-xkb-output="/var/lib/xkb/compiled" #make %{?jobs:-j %jobs} -make +make V=1 make -C hw/kdrive %{?jobs:-j %jobs} %install