APLawrence.com -  Resources for Unix and Linux Systems, Bloggers and the self-employed

Staroffice was discontinued in 2011. At one time it was (barely) possible to get it running on SCO using "lxrun" Linux emulation.

I really don't know why you'd even bother: given the cost of hardware and the ease of installing Linux, why would you struggle with this? Put up a Linux box, install Staroffice (or Open Office) and save yourself the headache.

There are other choices: Linux Word Processing at Christopher Browne's Web Pages covers a few.

It's also possible to run Microsoft Office on Linux using Crossover Office: http://www.codeweavers.com/site/products/
Book review: Star Office 5 for Linux, Nicholas D. Wells, R. Dean Taylor


Star Office on SCO 5.0.5


© 1999 Roberto Zini, Strhold Sistemi Edp - Italy

This one is to inform you about the steps I took in order to get Star Office 5.0. installed (and working) via lxrun under SCO OpenServer 5.0.5. I apologize in advance for my English which (I know) sometimes is not up to the "role".

OK; my work started with SCO OpenServer 5.0.5 + RS 5.0.5A + OSS497B + OSS600A (even if I think the above patches don't come into play concerning the lxrun package). I installed the lxrun utility from the SkunkWare 98 CD-ROM using the "scoadmin -> Software Manager" (akas custom); the installed version was 0.9.0.

Next, I downloaded version 0.9.4pre3 from the 'Net just to make sure I was playing with the latest version. The StarOffice version I did play with came along with a Magazine on a CD-ROM and was labeled "version 5.0"; I extracted the whole directory contents under my root filesystem under a directory of my choice (/tmp/fred/star5). Also, make sure you have the zip/unzip package installed (from Skunk98); I had to unzip the setup.zip utility by using the 'unzip -L setup.zip' command in the same directory above. This should give a 74MB directory with the following files:

=== cut here ===

allgemein.bmp   f_6102          f_6395          f_6803          f_7821
base.bmp        f_6103          f_6396          f_6804          f_7823
calc.bmp        f_6104          f_6397          f_6805          f_7824
cdrom           f_6106          f_6398          f_6806          f_7825
desktop.bmp     f_6107          f_6399          f_6807          f_7829
draw.bmp        f_6109          f_6400          f_6808          f_7830
f_1310          f_6110          f_6401          f_6809          f_7832
f_1311          f_6111          f_6402          f_6810          f_7833
f_1312          f_6112          f_6403          f_6811          f_7834
f_1315          f_6113          f_6404          f_6812          f_7837
f_1316          f_6114          f_6405          f_6813          f_7838
f_1318          f_6115          f_6406          f_6856          f_7839
f_1319          f_6116          f_6407          f_6857          f_7840
f_1320          f_6117          f_6408          f_6867          f_7841
f_1321          f_6118          f_6409          f_6868          f_7842
f_1329          f_6119          f_6410          f_6869          f_7843
f_1330          f_6120          f_6411          f_6870          f_7845
f_1342          f_6121          f_6412          f_6871          f_7846
f_1343          f_6122          f_6413          f_6872          f_7847
f_1344          f_6123          f_6414          f_6873          f_7848
f_1345          f_6124          f_6415          f_6880          f_7849
f_1346          f_6125          f_6416          f_6881          f_7850
f_1347          f_6126          f_6417          f_6882          f_7851
f_1348          f_6128          f_6418          f_6883          f_7852
f_1349          f_6129          f_6419          f_6884          f_7853
f_1350          f_6130          f_6420          f_6885          f_7854
f_1351          f_6131          f_6421          f_6894          f_7855
f_1352          f_6132          f_6422          f_6895          f_7856
f_1353          f_6133          f_6423          f_7256          f_7857
f_1354          f_6136          f_6424          f_7258          f_7858
f_1355          f_6137          f_6425          f_7263          f_7859
f_1356          f_6140          f_6426          f_7264          f_7860
f_1359          f_6141          f_6427          f_7302          f_7861
f_1362          f_6144          f_6428          f_7303          f_7862
f_1364          f_6148          f_6429          f_7323          f_7863
f_1365          f_6149          f_6430          f_7324          f_7864
f_1366          f_6150          f_6431          f_7325          f_7865
f_1367          f_6151          f_6432          f_7326          f_7867
f_1368          f_6152          f_6433          f_7758          f_7868
f_1369          f_6153          f_6434          f_7759          f_7870
f_1370          f_6155          f_6435          f_7760          f_7875
f_1371          f_6160          f_6436          f_7761          f_7876
f_1372          f_6161          f_6437          f_7762          f_7878
f_1382          f_6162          f_6438          f_7763          f_7879
f_1385          f_6169          f_6439          f_7764          f_7880
f_1386          f_6344          f_6440          f_7765          f_7882
f_1390          f_6346          f_6441          f_7766          f_7883
f_1391          f_6347          f_6442          f_7767          f_7884
f_1403          f_6348          f_6443          f_7772          f_7885
f_1404          f_6349          f_6444          f_7773          f_7886
f_1408          f_6350          f_6445          f_7774          f_7887
f_1409          f_6351          f_6446          f_7775          f_7888
f_1410          f_6352          f_6447          f_7776          f_7889
f_1411          f_6353          f_6448          f_7777          f_7890
f_1412          f_6354          f_6449          f_7778          f_7891
f_1413          f_6355          f_6450          f_7779          f_7892
f_1414          f_6357          f_6451          f_7780          f_7893
f_1415          f_6358          f_6452          f_7781          impress.bmp
f_1416          f_6361          f_6453          f_7782          libcnt506li.so
f_1418          f_6363          f_6454          f_7784          libj506li_g.so
f_1419          f_6364          f_6455          f_7785          libone506li.so
f_1421          f_6365          f_6456          f_7787          libosl506li.so
f_1422          f_6366          f_6457          f_7789          libreg506li.so
f_1423          f_6367          f_6458          f_7790          librtl506li.so
f_1424          f_6368          f_6459          f_7791          libsb506li.so
f_1425          f_6369          f_6460          f_7792          libset506li.so
f_1426          f_6370          f_6461          f_7793          libsex506li.so
f_1427          f_6371          f_6462          f_7794          libso506li.so
f_1428          f_6372          f_6578          f_7795          libsot506li.so
f_1429          f_6373          f_6582          f_7796          libsvt506li.so
f_1430          f_6374          f_6583          f_7797          libtk506li.so
f_1431          f_6375          f_6707          f_7798          libtl506li.so
f_1432          f_6376          f_6708          f_7799          libuno506li.so
f_1434          f_6377          f_6709          f_7800          libusr506li.so
f_1437          f_6378          f_6710          f_7801          libvcl506li.so
f_1438          f_6379          f_6711          f_7802          libvos506li.so
f_1439          f_6380          f_6712          f_7803          libzip506li.so
f_1441          f_6381          f_6713          f_7804          register.bmp
f_1442          f_6382          f_6714          f_7805          schedule.bmp
f_1443          f_6383          f_6715          f_7806          set50639.res
f_1444          f_6384          f_6716          f_7807          setup
f_1445          f_6385          f_6717          f_7808          setup.bin
f_1447          f_6386          f_6718          f_7809          setup.ins
f_1653          f_6387          f_6719          f_7810          sfx50639.res
f_3005          f_6388          f_6720          f_7811          sh1.sh
f_5661          f_6389          f_6795          f_7812          shared
f_5664          f_6390          f_6796          f_7813          svt50639.res
f_5680          f_6391          f_6797          f_7814          vcl50639.res
f_6097          f_6392          f_6798          f_7815          writer.bmp
f_6098          f_6393          f_6799          f_7818
f_6101          f_6394          f_6802          f_7819

=== cut here ===
 

A kind guy from the 'Net (tom - [email protected]) provided me with an install script I used to drive the setup phase. The script (in the above list was named sh1.sh) is reported below:

==== cut here ===


#!/bin/sh # # StarOffice setup script # (c) 1997, Star Division GmbH cd `dirname $0` sd_archive_path=`pwd` sd_setup_binary=setup.bin sd_platform=`uname -s` # some platforms may need an additional search path for X11 shared libraries case $sd_platform in SunOS) SAL_IGNOREXERRORS=1 export SAL_IGNOREXERRORS LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/openwin/lib:.:./lib export LD_LIBRARY_PATH ;; Linux) LD_LIBRARY_PATH=.:./lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH ;; SCO_SV) LD_LIBRARY_PATH=.:./lib:$LD_LIBRARY_PATH export LD_LIBRARY_PATH ;; *) ;; esac export SAL_FONTPATH XPPATH # execute setup binary exec lxrun $sd_archive_path/$sd_setup_binary $*

==== cut here ===

Notice the lxrun command placed on the last line of the script.

If you try by executing the above shell under your X environment with the version 0.9.0 of lxrun, the installer tells you that you don't have enaugh free space on your disk, even if there's plenty of it. This is because of a bug (unimplemented feature) of lxrun; all you have to do is to modify the sources of lxrun (version 0.9.4) you previously downloaded and to recompile the binary.

So, edit the filesys.c file and insert the following lines in the copy_out_new_statfs function (notice: there are 2 of 'em named this way. The first one is enclosed in a #ifdefined statement related to UW7; we're interested in the second one - the one starting at line 91).

The whole routine is depicted below :

==== cut here ===

static int
copy_out_new_statfs(struct statfs *from, struct lx_statfs *to)
{
        if (! verify_write(to, sizeof(*to)))
                return -1;

        (void) memset((void *)to, 0, sizeof(*to));

        to->f_type =    from->f_fstyp;
        to->f_bsize =   from->f_bsize;
        to->f_blocks =  from->f_blocks;
        to->f_bfree =   from->f_bfree;

        /* StarOffice 5.0 fails to install if f_bavail is set to 0 */
        to->f_bavail = from->f_bfree;
        /* R. Zini - Strhold (05/21/1999) */

        to->f_files =   from->f_files;
        to->f_ffree =   from->f_ffree;

        /*
         * Fields that are undef for a particular file system are set to -1.
         * (see statfs(2)).
         */
        to->f_namelen = -1;

        return 0;
}

==== cut here ===

Notice the above comments; I'm not sure if f_bavail should be set to f_bfree but thus making the installer is able to proceed. Please advise me if this is not the correct way of setting f_bavail.

However, following you can find the complete filesys.c file:

==== cut here ===

#ifdef OSR5
#pragma comment(exestr, "%Z% %M% %I% %E% %Q%")
#endif

#ifdef SOLARIS
#pragma ident   "%Z% %M% %I% %D% %Q% SMI"
#endif
/*
 * Copyright (C) 1996 Michael Davidson.
 * All rights reserved.
 *
 * This software is provided "as is" without express or implied warranty.
 */

#include        <errno.h>
#include        <sys/types.h>
#include        <string.h>
#if defined(UNIXWARE) || defined(UW7)
#include        <sys/statvfs.h>
#else
#include        <sys/statfs.h>
#endif

#include        "linux/statfs.h"
#include        "lxrun.h"

/*
 * filesystem specific system calls
 */

/*
 *      mount           (NOT IMPLEMENTED)
 *      umount          (NOT IMPLEMENTED)
 *      statfs
 *      fstatfs
 *      setfsuid        (NOT IMPLEMENTED)
 *      setfsgid        (NOT IMPLEMENTED)
 */

int lx_mount()          { return enosys("mount"); }
int lx_umount()         { return enosys("umount"); }

#if defined(UNIXWARE) || defined(UW7) /* better trigger on if struct statvfs
exists */

static int
copy_out_new_statfs(struct statvfs *vfs, struct lx_statfs *to)
{
        if (! verify_write(to, sizeof(*to)))
                return -1;

        (void) memset((void *)to, 0, sizeof(*to));

        to->f_type      =       EXT_SUPER_MAGIC;
        to->f_bsize     =       vfs->f_bsize;
        to->f_blocks    =       vfs->f_blocks;
        to->f_bfree     =       vfs->f_bfree;
        to->f_bavail    =       vfs->f_bavail;
        to->f_files     =       vfs->f_files;
        to->f_ffree     =       vfs->f_ffree;
        to->f_fsid.val[0] =     vfs->f_fsid;
        to->f_fsid.val[1] =     0;
        to->f_namelen   =       vfs->f_namemax;

        return 0;
}

int
lx_statfs(const char *path, struct lx_statfs *buf)
{
        struct statvfs  vfs;

        if (statvfs(path, &vfs) == -1)
                return -1;
        return copy_out_new_statfs(&vfs, buf);
}
int
lx_fstatfs(int fd, struct lx_statfs *buf)
{
        struct statvfs  vfs;

        if (fstatvfs(fd, &vfs) == -1)
                return -1;

        return copy_out_new_statfs(&vfs, buf);
}

#else   /* ! UW7 */

static int
copy_out_new_statfs(struct statfs *from, struct lx_statfs *to)
{
        if (! verify_write(to, sizeof(*to)))
                return -1;

        (void) memset((void *)to, 0, sizeof(*to));

        to->f_type =    from->f_fstyp;
        to->f_bsize =   from->f_bsize;
        to->f_blocks =  from->f_blocks;
        to->f_bfree =   from->f_bfree;

        /* StarOffice 5.0 fails to install if f_bavail is set to 0 */
        to->f_bavail = from->f_bfree;
        /* R. Zini - Strhold (05/21/1999) */

        to->f_files =   from->f_files;
        to->f_ffree =   from->f_ffree;

        /*
         * Fields that are undef for a particular file system are set to -1.
         * (see statfs(2)).
         */
        to->f_namelen = -1;

        return 0;
}

lx_statfs(const char *path, struct lx_statfs *buf)
{
        int ret;
        struct statfs nbuf;

        if ((ret = statfs(path, &nbuf, sizeof(struct statfs), 0)) == 0)
                ret = copy_out_new_statfs(&nbuf, buf);

        return ret;
}

int
lx_fstatfs(int fd, struct lx_statfs *buf)
{
        int ret;
        struct statfs nbuf;

        if ((ret = fstatfs(fd, &nbuf, sizeof(struct statfs), 0)) == 0)
                ret = copy_out_new_statfs(&nbuf, buf);

        return ret;
}
#endif  /* ! UW7 */

int lx_setfsuid()       { return enosys("setfsuid"); }
int lx_setfsgid()       { return enosys("setfsgid"); }

==== cut here ===

Now rebuild the binary; a simple "make" should do it for us. Once you have the "new" lxrun, you must copy it under it's "target" directory. On my system, lxrun was installed under :

/opt/K/SKUNK98/Lxrun/0.9.0/usr/local/bin

So copy the new lxrun under the above dir (please notice that the lxrun binary under /usr/local/bin is a symlink to the above one). Try by executing lxrun and you should get the above output :

Linux Emulator Version 0.9.4pre3, built on May 20 1999 at 09:49:26

Usage: lxrun -u lxrun [-t <element1>[,<element2>...]] [-R <root>] [-U <uname>] prog [args ...]

Trace elements are: all sys sig sock select read write open access fcntl ioctl brkexec procfs pathmap mmap elf verbose

Ok, we're on final; switch to the StarOffice directory and execute the sh1.sh script under your X environment. You'll be presented with a setup program which prompts for a number of things (who are you, where are you from ...); during the installation you'll be prompted for a code. This code will allow you to use SO 5.0 for up to 30 days; once expired, you'll have to get in touch with StarDivision (www.stardivision.com) in order to get your "full code". In my case (Star Office 5.0 - ITALIAN), the code which came with the CD-ROM is as follows:

GNJ9-9XVS-L69F-6XKT

Follow the screens and see if you can reach past the installation method (standard, custom ...); the setup binary will start by reading the various files up to point where the progressive bar (sp?) reaches 20%. At this point, a popup window will appear asking you to insert the Star Office 5.0 CD-ROM; there are 3 buttons depicted (Yes, No, Cancel - again, not sure about the exact spelling since I've got the Italian version). However, click over the third one (Cancel) and you'll be fine.

Once finished, switch to the SO 5.0 destination directory you selected during the install (in my case, /usr/fred/Office50), cd to the "bin" one and you'll find the following files:

psetup setup soffice

They are 3 simple shell scripts which have to be modified in order to get 'em "lxrun-able"; so simply add "lxrun" between the "exec" command and the "$sd_inst..." part of the line (repeat this step for the 3 above commands).

In order to start SO 5.0, simply run "soffice"; if you want to perform some printer setups, issue the "psetup" command. If you want to redo the installation, run the "setup" command.

In the next few days I'll try with version 5.1 so stay tuned !

Feel free to get in touch with me if you need additional info (I'll try to help).

Hope this helps ! © 1999 Roberto Zini, Strhold Sistemi Edp - Italy



Got something to add? Send me email.





(OLDER)    <- More Stuff -> (NEWER)    (NEWEST)   

Printer Friendly Version

-> -> Star Office on SCO 5.0.5




Increase ad revenue 50-250% with Ezoic


More Articles by © Roberto Zini



Kerio Samepage


Have you tried Searching this site?

Unix/Linux/Mac OS X support by phone, email or on-site: Support Rates

This is a Unix/Linux resource website. It contains technical articles about Unix, Linux and general computing related subjects, opinion, news, help files, how-to's, tutorials and more.

Contact us





A blow from your friend is better than a kiss from your enemy. (Pythagoras)

Securing a computer system has traditionally been a battle of wits: the penetrator tries to find the holes, and the designer tries to close them. (Gosser)












This post tagged: