SCO Openserver 5.0.7 installation

Aus Knowledgebase
Zur Navigation springen Zur Suche springen

Openserver

SCO originally started in 1979. They did ports of UNIX(r) and in 1983 they did the XENIX port to the IBM PC/XT. There were early ties with Microsoft based on these projects already. 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-or-less recent hardware. One interesting aspect of Openserver is that SCO has build in XENIX compatibility.

Let's cut to the chase: Is it any good?

Yeah, kind of, sort of... Openserver feels old compared to Linux and even when compared to other commercial Unix systems there are some parts that are really ancient. For me it was "better than expected" when I compare it to other SVR3 systems. Advantages of Openserver: it's mature, stable, and by modern standards fast and small. All this of course not in absolute terms. Naturally a system released in 1995 (OS 5.0) will be "mature" in 2023. It is just one of the very few SVR3 systems that survived long enough to actually improve over time, whereas most SVR3 were just released with a lot of problems and never really fixed. The scoadmin tools are very good. You can see that the engineers who made this system really did a good job. You can still find a lot of online documentation (currently at: http://osr5doc.xinuos.com/de/Navpages/index.html).

SCO? Aren't they evil?

Yes! And no. Old SCO wasn't evil, but quite a respectable Unix company. Then they sold the Unix business to Caldera (a Linux company) in 2001 and everything got a name change. Old SCO became Tarantella, Caldera became (new) SCO and this new SCO then became (in)famous for its lawsuits. Tarantella was bought by Sun in 2005. New SCO went bankrupt in 2012. The Openserver and Unixware systems predate all this lawsuit craziness and customers pretty much abandoned both systems as much as they could.


Installing Openserver 5.0.7 on a PC

IBM Thinkcentre S50

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 designed 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-5.0.7Kj", "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

The development system is 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


.bashrc:

# set a fancy prompt
PS1='\u@\h:\w\$ '
export PS1



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


A number of packages where I have no specific notes or installation sequence:

autoconf-2.13

automake-1.4-p6

bc-1.06

bzip2-1.0.6

diffutils-3.2

expat-2.0.1

gawk-3.1.8

glib-1.2.10

gmp-5.1.3

jasper-1.900.1

jpeg-6b

libidn-1.26

libid3tag-0.15.1b

libpng-1.2.31

libsigsegv-2.12

libutf8-0.8.1

make-3.82

mc-4.1.35

mksh-R59c

m4-1.4.7

ncftp-3.1.9

nedit-5.5

pcre-8.45

pth-2.0.7

readline-6.1

renderext-0.9

renderproto-0.9.3

tar-1.20

tiff-3.8.2

tin-2.6.3

t1lib-5.1.2

vim64

w3c-libwww-5.4.0

xearth-1.1

zlib-1.2.13