XEmacs 21.2.41 "Polyhymnia".
[chise/xemacs-chise.git.1] / PROBLEMS
index 0648a24..4c5d43d 100644 (file)
--- a/PROBLEMS
+++ b/PROBLEMS
@@ -298,6 +298,14 @@ This is a Linux problem where you've compiled the XEmacs binary on a libc
 an earlier version.  The solution is to upgrade your old library.
 
 ** IRIX
+
+*** On Irix 6.5, the MIPSpro compiler gets an internal compiler error
+
+The MIPSpro Compiler (at least version 7.2.1) can't seem to handle the
+union type properly, and fails to compile src/glyphs.c.  To avoid this
+problem, always build ---use-union-type=no (but that's the default, so
+you should only see this problem if you're an XEmacs maintainer).
+
 *** Linking with -rpath on IRIX.
 
 Darrell Kindred <dkindred@cmu.edu> writes:
@@ -1258,6 +1266,66 @@ affected virtually all ioctl() calls.
 
 
 ** Linux
+*** Mandrake
+
+The Mandrake Linux distribution is attempting to comprehensively
+update the user interface, and make it consistent across
+applications.  This is very difficult, and will occasionally cause
+conflicts with applications like Emacs with their own long-established
+interfaces.  Known issues specific to Mandrake or especially common:
+
+Some versions of XEmacs (21.1.9 is known) distributed with Mandrake
+were patched to make the Meta and Alt keysyms synonymous.  These
+normally work as expected in the Mandrake environment.  However,
+custom-built XEmacsen (including all 21.2 betas) will "inexplicably"
+not respect the "Alt-invokes-Meta-commands" convention.  See "I want
+XEmacs to use the Alt key" below.
+
+The color-gcc wrapper (see below) is in common use on the Mandrake
+platform.
+
+*** I want XEmacs to use the Alt key, not the XXX key, for Meta commands
+
+For historical reasons, XEmacs looks for a Meta key, then an Alt key.
+It binds Meta commands to the X11 modifier bit attached to the first
+of these it finds.  On PCs, the Windows key is often assigned the Meta
+bit, but many desktop environments go to great lengths to get all apps
+to use the Alt key, and reserve the Windows key to (sensibly enough)
+the window manager.
+
+One correct way to implement this was suggested on comp.emacs.xemacs
+(by Kilian Foth and in more detail by Michael Piotrowski): unmap the
+Meta modifier using xmodmap or xkb, and then map the Meta/Windows key
+to the Super or Hyper keysym and an appropriate mod bit.  XEmacs will
+not find the Meta keysym, and default to using the Alt key for Meta
+keybindings.  Typically few applications use the (X11) Meta modifier;
+it is tedious but not too much so to teach the ones you need to use
+Super instead of Meta.  There may be further useful hints in the
+discussion of keymapping on non-Linux platforms.
+
+*** The color-gcc wrapper
+
+This wrapper colorizes the error messages from gcc.  By default XEmacs
+does not interpret the escape sequences used to generate colors,
+resulting in a cluttered, hard-to-read buffer.  You can remove the
+wrapper, or defeat the wrapper colorization in Emacs process buffers
+by editing the "nocolor" attribute in /etc/colorgccrc:
+
+$ diff -u /etc/colorgccrc.old /etc/colorgccrc
+--- /etc/colorgccrc.old Tue Dec 26 02:17:46 2000
++++ /etc/colorgccrc     Tue Dec 26 02:15:48 2000
+@@ -34,1 +34,1 @@
+-nocolor: dumb
++nocolor: dumb emacs
+
+If you want colorization in your Emacs buffers, you may get good
+results from the ansi-color.el library:
+
+http://www.geocities.com/kensanata/color-emacs.html#ansicolors
+
+This is written for the mainline GNU Emacs but the author has made
+efforts to adapt it to XEmacs.  YMMV.
+
 *** You get crashes in a non-C locale with Linux GNU Libc 2.0.
 
 Internationalization was not the top priority for GNU Libc 2.0.
@@ -1285,16 +1353,20 @@ XFree86 3.1.2 works.
 *** Slow startup on Linux.
 
 People using systems based on the Linux kernel sometimes report that
-startup takes 10 to 15 seconds longer than `usual'.
+startup takes 10 to 15 seconds longer than `usual'.  There are two
+problems, one older, one newer.
+
+**** Old problem: IPv4 host lookup
 
-This is because Emacs looks up the host name when it starts.
-Normally, this takes negligible time; the extra delay is due to
-improper system configuration.  This problem can occur for both
-networked and non-networked machines.
+On older systems, this is because Emacs looks up the host name when it
+starts.  Normally, this takes negligible time; the extra delay is due
+to improper system configuration.  (Recent Linux distros usually have
+this configuration correct "out of the box".)  This problem can occur
+for both networked and non-networked machines.
 
 Here is how to fix the configuration.  It requires being root.
 
-**** Networked Case
+***** Networked Case
 
 First, make sure the files `/etc/hosts' and `/etc/host.conf' both
 exist.  The first line in the `/etc/hosts' file should look like this
@@ -1313,7 +1385,7 @@ indicated in the `/etc/hosts' file, since it acts a limited local
 database of addresses and names (e.g., some SLIP connections
 dynamically allocate ip addresses).
 
-**** Non-Networked Case
+***** Non-Networked Case
 
 The solution described in the networked case applies here as well.
 However, if you never intend to network your machine, you can use a
@@ -1321,6 +1393,45 @@ simpler solution: create an empty `/etc/host.conf' file.  The command
 `touch /etc/host.conf' suffices to create the file.  The `/etc/hosts'
 file is not necessary with this approach.
 
+**** New problem: IPv6 CNAME lookup
+
+A newer problem is due to XEmacs changing to use the modern
+getaddrinfo() interface from the older gethostbyname() interface.  The
+solution above is insufficient, because getaddrinfo() by default tries
+to get IPv6 information for localhost.  This always involves a dns
+lookup to get the CNAME, and the strategies above don't work.  It then
+falls back to IPv4 behavior.  This is good[tm]; trust us.
+
+***** Robust network case
+
+Configure your network so that there are no nameservers configured
+until the network is actually running.  getaddrinfo() will not try to
+access a nameserver that isn't configured.
+
+***** Flaky network case
+
+If you have a flaky modem or DSL connection that can be relied on only
+to go down whenever you want to bring XEmacs up, you need to force
+IPv4 behavior.  Explicitly setting DISPLAY=127.0.0.1:0.0 (or whatever
+is appropriate) works in most cases.
+
+If you cannot or do not want to do that, you can hard code IPv4
+behavior in src/process-unix.c.  This is bad[tm], on your own head be
+it.  In the function unix_canonicalize_host_name() about ten lines
+down, change the statement
+
+  hints.ai_family = AF_UNSPEC;
+
+to
+
+  hints.ai_family = PF_INET;
+
+and rebuild XEmacs.
+
+getaddrinfo() is also called in src/sysdep.c:init_system_name() and in
+src/process-unix.c:unix_open_network_stream().  It should not be
+useful to make this change in either of those places.
+
 
 ** IRIX
 *** On Irix, I don't see the toolbar icons and I'm getting lots of