Mercurial > hg > xemacs-beta
comparison PROBLEMS @ 448:3078fd1074e8 r21-2-39
Import from CVS: tag r21-2-39
| author | cvs |
|---|---|
| date | Mon, 13 Aug 2007 11:38:25 +0200 |
| parents | abe6d1db359e |
| children | 98528da0b7fc |
comparison
equal
deleted
inserted
replaced
| 447:4fc5f13f3bd3 | 448:3078fd1074e8 |
|---|---|
| 1256 compatible include files into the compilation. In particular this | 1256 compatible include files into the compilation. In particular this |
| 1257 affected virtually all ioctl() calls. | 1257 affected virtually all ioctl() calls. |
| 1258 | 1258 |
| 1259 | 1259 |
| 1260 ** Linux | 1260 ** Linux |
| 1261 *** Mandrake (all versions) | |
| 1262 | |
| 1263 Cannot be fully supported by XEmacs developers because they insist on | |
| 1264 applying known broken patches. | |
| 1265 | |
| 1266 One known issue is that on keyboards with both a Meta key (typically | |
| 1267 the Windows key on PCs) and an Alt key, XEmacs wants to bind the Meta | |
| 1268 modifier to the Meta key. Mandrake has a policy that XEmacs | |
| 1269 Meta-chords should use the Alt key, which they enforce by patching | |
| 1270 XEmacs's modifier-handling code, making the Meta and Alt modifiers | |
| 1271 synonymous. This will break planned upgrades to XEmacs to allow menu | |
| 1272 hotkeys; be warned. See next topic for how to implement Meta-on-Alt | |
| 1273 portably. | |
| 1274 | |
| 1275 *** I want XEmacs to use the Alt key, not the XXX key, for Meta commands | |
| 1276 | |
| 1277 For historical reasons, XEmacs looks for a Meta key, then an Alt key. | |
| 1278 It binds Meta commands to the X11 modifier bit attached to the first | |
| 1279 of these it finds. On PCs, the Windows key is often assigned the Meta | |
| 1280 bit, but many desktop environments go to great lengths to get all apps | |
| 1281 to use the Alt key, and reserve the Windows key to (sensibly enough) | |
| 1282 the window manager. | |
| 1283 | |
| 1284 One correct way to implement this was suggested on comp.emacs.xemacs | |
| 1285 (by Kilian Foth and in more detail by Michael Piotrowski): unmap the | |
| 1286 Meta modifier using xmodmap or xkb, and then map the Meta/Windows key | |
| 1287 to the Super or Hyper modifier. XEmacs will not find the Meta keysym, | |
| 1288 and default to using the Alt key for Meta keybindings. Typically few | |
| 1289 applications use the (X11) Meta modifier (sawfish is one); it is | |
| 1290 tedious but not too much so to teach them to use Super instead of | |
| 1291 Meta. There may be further useful hints in the discussion of | |
| 1292 keymapping on non-Linux platforms. | |
| 1293 | |
| 1261 *** You get crashes in a non-C locale with Linux GNU Libc 2.0. | 1294 *** You get crashes in a non-C locale with Linux GNU Libc 2.0. |
| 1262 | 1295 |
| 1263 Internationalization was not the top priority for GNU Libc 2.0. | 1296 Internationalization was not the top priority for GNU Libc 2.0. |
| 1264 As of this writing (1998-12-28) you may get crashes while running | 1297 As of this writing (1998-12-28) you may get crashes while running |
| 1265 XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes | 1298 XEmacs in a non-C locale. For example, `LC_ALL=en_US xemacs' crashes |
| 1283 XFree86 3.1.2 works. | 1316 XFree86 3.1.2 works. |
| 1284 | 1317 |
| 1285 *** Slow startup on Linux. | 1318 *** Slow startup on Linux. |
| 1286 | 1319 |
| 1287 People using systems based on the Linux kernel sometimes report that | 1320 People using systems based on the Linux kernel sometimes report that |
| 1288 startup takes 10 to 15 seconds longer than `usual'. | 1321 startup takes 10 to 15 seconds longer than `usual'. There are two |
| 1289 | 1322 problems, one older, one newer. |
| 1290 This is because Emacs looks up the host name when it starts. | 1323 |
| 1291 Normally, this takes negligible time; the extra delay is due to | 1324 **** Old problem: IPv4 host lookup |
| 1292 improper system configuration. This problem can occur for both | 1325 |
| 1293 networked and non-networked machines. | 1326 On older systems, this is because Emacs looks up the host name when it |
| 1327 starts. Normally, this takes negligible time; the extra delay is due | |
| 1328 to improper system configuration. (Recent Linux distros usually have | |
| 1329 this configuration correct "out of the box".) This problem can occur | |
| 1330 for both networked and non-networked machines. | |
| 1294 | 1331 |
| 1295 Here is how to fix the configuration. It requires being root. | 1332 Here is how to fix the configuration. It requires being root. |
| 1296 | 1333 |
| 1297 **** Networked Case | 1334 ***** Networked Case |
| 1298 | 1335 |
| 1299 First, make sure the files `/etc/hosts' and `/etc/host.conf' both | 1336 First, make sure the files `/etc/hosts' and `/etc/host.conf' both |
| 1300 exist. The first line in the `/etc/hosts' file should look like this | 1337 exist. The first line in the `/etc/hosts' file should look like this |
| 1301 (replace HOSTNAME with your host name): | 1338 (replace HOSTNAME with your host name): |
| 1302 | 1339 |
| 1311 Any changes, permanent and temporary, to the host name should be | 1348 Any changes, permanent and temporary, to the host name should be |
| 1312 indicated in the `/etc/hosts' file, since it acts a limited local | 1349 indicated in the `/etc/hosts' file, since it acts a limited local |
| 1313 database of addresses and names (e.g., some SLIP connections | 1350 database of addresses and names (e.g., some SLIP connections |
| 1314 dynamically allocate ip addresses). | 1351 dynamically allocate ip addresses). |
| 1315 | 1352 |
| 1316 **** Non-Networked Case | 1353 ***** Non-Networked Case |
| 1317 | 1354 |
| 1318 The solution described in the networked case applies here as well. | 1355 The solution described in the networked case applies here as well. |
| 1319 However, if you never intend to network your machine, you can use a | 1356 However, if you never intend to network your machine, you can use a |
| 1320 simpler solution: create an empty `/etc/host.conf' file. The command | 1357 simpler solution: create an empty `/etc/host.conf' file. The command |
| 1321 `touch /etc/host.conf' suffices to create the file. The `/etc/hosts' | 1358 `touch /etc/host.conf' suffices to create the file. The `/etc/hosts' |
| 1322 file is not necessary with this approach. | 1359 file is not necessary with this approach. |
| 1360 | |
| 1361 **** New problem: IPv6 CNAME lookup | |
| 1362 | |
| 1363 A newer problem is due to XEmacs changing to use the modern | |
| 1364 getaddrinfo() interface from the older gethostbyname() interface. The | |
| 1365 solution above is insufficient, because getaddrinfo() by default tries | |
| 1366 to get IPv6 information for localhost. This always involves a dns | |
| 1367 lookup to get the CNAME, and the strategies above don't work. It then | |
| 1368 falls back to IPv4 behavior. This is good[tm]; trust us. | |
| 1369 | |
| 1370 ***** Robust network case | |
| 1371 | |
| 1372 Configure your network so that there are no nameservers configured | |
| 1373 until the network is actually running. getaddrinfo() will not try to | |
| 1374 access a nameserver that isn't configured. | |
| 1375 | |
| 1376 ***** Flaky network case | |
| 1377 | |
| 1378 If you have a flaky modem or DSL connection that can be relied on only | |
| 1379 to go down whenever you want to bring XEmacs up, you need to force | |
| 1380 IPv4 behavior. Explicitly setting DISPLAY=127.0.0.1:0.0 (or whatever | |
| 1381 is appropriate) works in most cases. | |
| 1382 | |
| 1383 If you cannot or do not want to do that, you can hard code IPv4 | |
| 1384 behavior in src/process-unix.c. This is bad[tm], on your own head be | |
| 1385 it. In the function unix_canonicalize_host_name() about ten lines | |
| 1386 down, change the statement | |
| 1387 | |
| 1388 hints.ai_family = AF_UNSPEC; | |
| 1389 | |
| 1390 to | |
| 1391 | |
| 1392 hints.ai_family = PF_INET; | |
| 1393 | |
| 1394 and rebuild XEmacs. | |
| 1395 | |
| 1396 getaddrinfo() is also called in src/sysdep.c:init_system_name() and in | |
| 1397 src/process-unix.c:unix_open_network_stream(). It should not be | |
| 1398 useful to make this change in either of those places. | |
| 1323 | 1399 |
| 1324 | 1400 |
| 1325 ** IRIX | 1401 ** IRIX |
| 1326 *** On Irix, I don't see the toolbar icons and I'm getting lots of | 1402 *** On Irix, I don't see the toolbar icons and I'm getting lots of |
| 1327 entries in the warnings buffer. | 1403 entries in the warnings buffer. |
