From 6f00a812c2ac49d3f6d70cc1631ed13cfd52bfa7 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Mon, 26 Jan 2009 23:47:11 +0000 Subject: [PATCH] * Tue Jan 27 2009 Dave Airlie 1.5.99.901-4 - xserver-1.5.99.3-fix-core-fonts.patch (#478999) --- xorg-x11-server.spec | 7 +- xserver-1.5.99.3-fix-core-fonts.patch | 230 ++++++++++++++++++++++++++ 2 files changed, 236 insertions(+), 1 deletion(-) create mode 100644 xserver-1.5.99.3-fix-core-fonts.patch diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index dbaccc6..8cf7885 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -19,7 +19,7 @@ Summary: X.Org X11 X server Name: xorg-x11-server Version: 1.5.99.901 -Release: 3%{?dist} +Release: 4%{?dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -76,6 +76,8 @@ Patch6004: xserver-1.5.99.3-dmx-xcalloc.patch # hack around broken mtrr.h. drop me as soon as possible. Patch6007: xserver-1.5.99.3-broken-mtrr-header.patch +Patch6008: xserver-1.5.99.3-fix-core-fonts.patch + %define moduledir %{_libdir}/xorg/modules %define drimoduledir %{_libdir}/dri %define sdkdir %{_includedir}/xorg @@ -492,6 +494,9 @@ rm -rf $RPM_BUILD_ROOT %changelog +* Tue Jan 27 2009 Dave Airlie 1.5.99.901-4 +- xserver-1.5.99.3-fix-core-fonts.patch (#478999) + * Mon Jan 26 2009 Adam Tkac 1.5.99.901-3 - improved xserver-1.5.99.3-broken-mtrr-header.patch to unbreak mtrr.h again diff --git a/xserver-1.5.99.3-fix-core-fonts.patch b/xserver-1.5.99.3-fix-core-fonts.patch new file mode 100644 index 0000000..20e90e1 --- /dev/null +++ b/xserver-1.5.99.3-fix-core-fonts.patch @@ -0,0 +1,230 @@ +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