[HEADS UP/CFT] Xserver 1.6 + randr + intel
Marcin Cieslak
saper at system.pl
Tue Feb 3 17:14:16 PST 2009
Paul B. Mahol wrote:
> On 2/3/09, Marcin Cieslak <saper at system.pl> wrote:
>> 1. First thing, I have lost access to my legacy X11 fonts.
>
> Missing freetype module should be fixed in xorg-server git.
>
It was actually --enable-builtin-fonts (the default) that caused the
problem. The attached patch fixes the problem.
I also added "--disable-builtin-fonts" to the Makefile since I didn't
want to re-generate the configure file, but it may not be necessary.
Adding this patch to the x11-servers/xorg-server/files made my xterm run
again.
Thanks for the pointer, the patch is actually http://42.pl/u/1v1N
slightly modified.
--Marcin
-------------- next part --------------
--- include/dixfont.h.orig 2009-01-31 05:21:50.000000000 +0100
+++ include/dixfont.h 2009-02-04 01:36:50.928061947 +0100
@@ -142,4 +142,6 @@
extern void SetGlyphCachingMode(int /*newmode*/);
+extern _X_EXPORT void BuiltinRegisterFpeFunctions(void);
+
#endif /* DIXFONT_H */
--- dix/dixfonts.c.orig 2009-01-31 05:21:50.000000000 +0100
+++ dix/dixfonts.c 2009-02-04 01:34:22.024360263 +0100
@@ -1907,12 +1907,9 @@
{
patternCache = MakeFontPatternCache();
-#ifdef BUILTIN_FONTS
BuiltinRegisterFpeFunctions();
-#else
FontFileRegisterFpeFunctions();
fs_register_fpe_functions();
-#endif
}
int
--- hw/xfree86/common/xf86Config.c.orig 2009-01-31 05:21:50.000000000 +0100
+++ hw/xfree86/common/xf86Config.c 2009-02-04 01:34:22.029363650 +0100
@@ -110,8 +110,6 @@
#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 @@
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;
- }
- 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);
+ 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;
}
- }
- }
-
- /* If defaultFontPath is still empty, exit here */
+ else
+ pathFrom = X_DEFAULT;
+ temp_path = defaultFontPath ? defaultFontPath : "";
- if (! *defaultFontPath)
- FatalError("No valid FontPath could be found.");
+ /* 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++;
+ }
- /* 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;
+ log_buf = xnfalloc(strlen(defaultFontPath) + (2 * countDirs) + 1);
temp_path = log_buf;
start = defaultFontPath;
while((end = index(start, ',')) != NULL) {
@@ -685,7 +648,6 @@
strcpy(temp_path, start);
xf86Msg(pathFrom, "FontPath set to:\n%s\n", log_buf);
xfree(log_buf);
- }
if (fileconf && fileconf->file_inputdevs) {
--- configure.ac.orig 2009-01-31 06:11:48.000000000 +0100
+++ configure.ac 2009-02-04 01:34:22.021359628 +0100
@@ -503,9 +503,6 @@
[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])
@@ -958,11 +955,6 @@
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"
More information about the freebsd-x11
mailing list