SCO Openserver 5.0.7 installation
Openserver
SCO started in 1983 with a XENIX port to the IBM PC/XT. They later acquired XENIX from Microsoft completely. In 1989 they released the first version of a new SVR3 port called "SCO UNIX System V Release 3.2". It replaced XENIX as SCO's main product and went through a number of iteration. The last versions of this line of Unix system was called "Openserver 5". It is basically a classic SVR3 Unix system with added quality of life improvements and support for more-of-less recent hardware. One interesting aspect of Openserver is that SCO has build in XENIX compatibility.
Installing Openserver 5.0.7 on a PC
We will be installing SCO Openserver on this lovely little IBM Thinkcentre S50 PC. It has a 3GHz Pentium 4, 2GB of RAM, 80GB of IDE disk, and Intel 865G (Extreme Graphics 2) chipset graphics. There is also an Intel Pro/100 ethernet chip onboard, but I could not get this working in Openserver. Fortunately, IBM design two normal height PCI slots into this little machine, so I just added a 3com 905B PC ethernet card. This machine should be more than enough for Openserver. In theory one could go for a much faster SMP machine, but a 3GHz P4 is really just fine. The graphics chip will only work after installing maintenance pack 5.
installation media
there is an updated Openserver CD "OpenServer-5.0.7Hw-10Jun05_1800". It solves problems with AHCI. Use this CD, rather than the original, old CD. There is also a supplemental CD that includes maintenance pack 5. Make sure you get the following packages and patches from the archives: "gnutools", "oss672a", "oss674a".
Installation sequence:
1 base OS OpenServer-5.0.7Hw-10Jun05_1800
enter an "enterprise" license and it will basically select most of what can be selected. Add language environments if you want them. I had some bad luck with the "database" option, so I do not recommend that. Just stick to the default. It will guide you through the install process and the reboot. On reboot it will stop at "enter root password to enter single user mode or press CTRL-D to boot up". Here you should login as root to complete the installation. If you login, it will drop you into a simple root shell. Type "scoadmin" and go through the menus of the administration tool. Enter additional licenses (SCO OpenServer SMP, SCO Openserver Development System, user licenses, etc...). Then go to "software" to install more things.
2 smp
It's on the OpenServer-5.0.7Hw-10Jun05_1800 CD. Install the smp package right after installing the base system.
3 devsys
It's on the OpenServer-5.0.7Hw-10Jun05_1800 CD. It includes a bunch of Java things that require a certain maintenance pack (MP) revision. Just leave this out for now.
4 mp5
on the supplemental CD.
5 devsys
install the missing parts of the development system (like Java) if you want them.
6 touch /tmp/gnutools.nocheck
this is a necessary step. If you don't do this, the installation of gnu tools will fails.
7 gnutools (gnutools-5.0.7Kj)
from the archives. It includes some updated versions of some libraries.
8 mp5
reinstalling MP5 is necessary, because gnu tools comes with older versions of some libraries (gwxlibs).
9 oss672a (header update) 10 oss674a (smp update)
patches from the archives.
configuring the system
.profile:
PATH=/usr/local/gcc346/bin:/usr/local/bin:/usr/gnu/bin:/sbin:/usr/sbin:/usr/ccs/bin:/usr/lib/X11/IXI/XDesktop/bin:/usr/lib/X11/IXI/XDesktop/bin/i3sc0322:/bin:/etc:/usr/bin:/tcb/bin:/usr/bin/X11 export PATH stty intr "^C" stty erase "^?" LC_CTYPE=de_DE.ISO8859-15 export LC_CTYPE CONFIG_SHELL=/usr/bin/bash export CONFIG_SHELL LD_RUN_PATH=/usr/local/lib export LD_RUN_PATH
building software
the old Openserver /bin/sh is complete garbage. Use /usr/bin/bash (that is 3.1.17) whenever necessary/possible. It may be necessary to replace some sh with bash in configure scripts.
The LD_RUN_PATH variable will tell the linker to look for additional libraries. It will hardcode this path into the binaries.
gcc-3.4.6:
configure --enable-languages=c --with-gnu-as --with-as=/usr/gnu/bin/gas --prefix=/usr/local/gcc346 one fixed header file is incorrect: gcc-3.4.6bin/gcc/include/math.h is missing an #endif: #ifndef FIXINC_WRAP_MATH_H_MATH_EXCEPTION #define FIXINC_WRAP_MATH_H_MATH_EXCEPTION 1 #endif
libiconv-1.13.1:
configure needs /usr/bin/bash
ncurses-5.9:
./configure --with-shared --without-cxx --without-ada
vim90:
./configure --with-tlib=ncurses --enable-gui=no --without-x --enable-multibyte
bash-3.2.57:
./configure --with-libiconv-prefix=/usr/local --enable-readline --enable-multibyte edit several Makefiles and remove "-b elf".
pkg-config-0.18.1:
some tests fail, because scripts in check use /bin/sh. They PASS with /usr/bin/bash
mc-4.1.35:
./configure --with-sco --with-ncurses names.c: In function `finduname': names.c:62: error: conflicting types for 'getpwuid' names.c:62: note: an argument type that has a default promotion can't match an empty parameter name list declaration /usr/include/pwd.h:83: error: previous declaration of 'getpwuid' was here names.c: In function `findgname': names.c:98: error: conflicting types for 'getgrgid' names.c:98: note: an argument type that has a default promotion can't match an empty parameter name list declaration /usr/include/grp.h:61: error: previous declaration of 'getgrgid' was here make[1]: *** [names.o] Error 1 make[1]: Leaving directory `/usr/local/compile/mc-4.1.35/vfs' make: *** [all] Error 1 delete the definitions of getpwuid and getgrgid. gcc -c -I.. -I./../vfs -I./.. -I/usr/local/include/ncurses -I.. -DBINDIR=\""/usr/local/bin/"\" -DLIBDIR=\""/usr/local/lib/mc/"\" -DICONDIR=\""/usr/local/share/icons/mc/"\" -DLOCALEDIR=\""/usr/local/share/locale/"\" -DREGEX_MALLOC -DHAVE_CONFIG_H -g -D_SVID3 utilunix.c utilunix.c:680: error: conflicting types for 'gettimeofday' /usr/include/sys/time.h:65: error: previous declaration of 'gettimeofday' was here utilunix.c:680: error: conflicting types for 'gettimeofday' /usr/include/sys/time.h:65: error: previous declaration of 'gettimeofday' was here make[1]: *** [utilunix.o] Error 1 make[1]: Leaving directory `/usr/local/compile/mc-4.1.35/src' make: *** [all] Error 1 uncomment the definition