PROBLEM: Cannot determine user name by reference to /etc/passwd. Failure to determine the user name causes some programs (notably programs built with Informix 4GL) to exit. REASON: The functions that parse /etc/passwd are sensitive under SCO at least. A corrupt line is taken to be the end of the file and further entries are ignored. Any line which has a null home directory counts as a corrupt line for SCO. SOLUTION: Ensure that all lines in /etc/passwd have home directories specified. Simply edit /etc/passwd with an editor. # ----------------------------------------------------------------------- PROBLEM: Cannot connect to X server using local connection. REASON: Some versions of X libraries seem to require 'localhost' to be allowed to connect to the X server even if we aren't using a TCP/IP connection. The X libraries used for VSI*FAX require this, the X libraries used for WordPerfect don't. SOLUTION: Explicitly allow 'localhost' to connect to the X server using 'xhost localhost'. # ----------------------------------------------------------------------- PROBLEM: Installation disks claim to be Unix tar format but they appear to be blank MS-DOS format disks! REASON: Unix provides two floppy devices, the normal floppy devices that we all know and love (and which are listed as the Xenix compatible devices in the man page) and a second set which skips the first track of the disk. For some reason a few vendors seem to use this second set when preparing distribution disks. WordPerfect seem to do this. Linux currently only supports the normal floppy devices. SOLUTION: You have to skip the first track by hand and read each disk individually. Try 'dd if=/dev/fd0 bs=18k skip=1 | tar xfv -' for a 3.5" high density disk. Change the 18k to 15k for a 5.25" high density disk. # ----------------------------------------------------------------------- PROBLEM: A script bombs out with an unexpected EOF looking for "'". This only happens on Linux. REASON: There is a bug in the script which is only a problem on Linux. Take the following example: count=`ls | wc | awk '{ printf "%05d", $1 }` Note the missing "'" at the end of the awk statment. The /bin/sh supplied with SCO will assume (in this case correctly) that the "'" should have occurred immediately before the closing "`" and the expression will succeed. The /bin/sh used with Linux (normally bash) does not make this assumption and gives an error message. SOLUTION: Either fix the script or arrange to have it run by a SYSV shell rather than bash. # ----------------------------------------------------------------------- PROBLEM: Test complains that a numeric argument is required before -eq, -le etc. REASON: The GNU shellutils test and the test built in to bash which are the versions of test used under Linux do not accept a null argument as equivalent to 0 so 'test "" -le 5' will give an error. Under SCO a null argument is taken as equivalent to 0 so the statement would be evaluated as 'test 0 -le 5'. SOLUTION: Fix the script to check arguments for validity before using them or provide a fixed version of test and ensure that it is used in preference to any shell built in. # ----------------------------------------------------------------------- PROBLEM: Some X fonts supplied with packages appear corrupt. REASON: These are probably snf fonts. The XFree86 X server used with Linux appears to fail to load some snf fonts silently and displays garbage. Pcf fonts work ok and should be used where possible. SOLUTION: If you only have the snf fonts all you can do is to try asking the vendor for pcf versions or the bdf definitions. If you have the bdf definitions (WordPerfect ship them) then you can build a pcf set using: # for bdffn in *.bdf > do > fn=`basename $bdffn .bdf` > [ -r $fn.snf ] && mv $fn.snf $fn.snf.old > bdftopcf -o $fn.pcf $bdffn > done # mkfontdir . # xset fp rehash # ----------------------------------------------------------------------- PROBLEM: Function keys don't work. REASON: The default sequences for function keys under Linux are "sort of" VT10x like whereas you have probably told your application that you are running on an ansi or SCO console. SOLUTION: It is probably best to run as an ansi screen - especially if colour is used - so use the "loadkeys" program to load the SCO.map keyboard description from the PROD.Patches directory. This directory also contains flexible termcap and terminfo descriptions which will allow you run permanently with a SCO or SVR4-like console. # ----------------------------------------------------------------------- PROBLEM: Line drawing characters come out as weird symbols. REASON: The application believes you are using a console screen with a PC character set and is using 8-bit codes rather than escape sequences. Linux defaults to an ISO8859-1 character set though. SOLUTION: Linux can be switched to PC character set mode with the escape sequence ESC-(-U. Arrange to have this sequence sent either before the application is started or as part of the initialisation that the application does. You can restore the ISO character set afterwards with ESC-(-K. # ----------------------------------------------------------------------- PROBLEM: SYSV binaries see the wrong time zone. REASON: SYSV binaries establish the time zone from the TZ environment variable whereas Linux uses BSD style zoneinfo files generally. SOLUTION: Set the TZ environment variable to reflect your time zone. Note that the zoneinfo mechanism can also use TZ in preference to the /usr/lib/zoneinfo/localtime file if you wish. For this to work you must have /usr/lib/zoneinfo/posixrules linked to one of the US timezone files. The posixrules file defines how the zoneinfo functions interpret TZ and this information is only found in the US data files. See the documentation for the timezone/zoneinfo package for details. # ----------------------------------------------------------------------- PROBLEM: BSD binaries don't see the right time zone. REASON: Although BSD binaries use the same timezone handling method as Linux they expect the zoneinfo information in different places. SOLUTION: Make the links: # ln -s /usr/lib/zoneinfo /etc/localtime # ln -s /usr/lib/zoneinfo /usr/share/zoneinfo # ----------------------------------------------------------------------- PROBLEM: BSD binaries complain that they can't find /etc/termcap. REASON: They may be lying. BSD sometimes uses /usr/share/misc/termcap or ~/.termcap (if it exists). SOLUTION: Either move termcap to /usr/share/misc and make /etc/termcap a link to it or make /usr/share/misc/termcap a link to /etc/termcap. The use of /usr/share/misc/termcap may be useful in a networked environment. # ----------------------------------------------------------------------- PROBLEM: SVr4 binaries cannot locate shared libraries, or fail to start. REASON: The shared libraries are not in the correct location, or the dynamic loader cannot be located by the kernel. SOLUTION: Put all SVr4 shared libraries in the directory /usr/i486-sysv4/lib. Then create two symbolic links: ln -s /usr/i486-sysv4/lib/libc.so.1 /usr/lib/libc.so.1 ln -s /usr/i486-sysv4/lib/ld.so.1 /usr/lib/ld.so.1 # ----------------------------------------------------------------------- PROBLEM: UnixWare X binaries don't work. REASON: The UnixWare X libraries directly use STREAMS/TLI, and thus do not work with linux. SOLUTION: Use the XFree86 libraries instead (Note: the XFree86 libraries are not interchangeable with the Unixware X libraries, but if you can recompile/relink your application, you can use the XFree86 libraries instead). The XFree86 libraries are socket based, and this type of networking is fully supported under Linux. # ----------------------------------------------------------------------- PROBLEM: SVr4 binaries want to access terminfo instead of termcap REASON: SVr4 traditionally uses something called terminfo instead of termcap to specify terminal characteristics. SOLUTION: The ncurses distribution (available on many fine ftp sites) contains a terminfo database. Just install this, and you should be all set.