[comp.unix.xenix.sco] what you need to get cnews running under SCO Xenix

grwalter@wcbcs.uucp (Fred Walter) (01/10/91)

I mentioned in another message that I have cnews running under Xenix.
Here's what I needed to get it up and running.

1) anonymous ftp to 141.210.180.2 (unix.secs.oakland.edu) to get gnu gcc.
   (I assume cnews will compile under plain cc but I never tried. I ran alot
   of trials with gcc and cc using dhrystone 2.1 on my machine (playing with
   internal and external caches on and/or off) and gcc produced smaller and
   faster executibles. Needless to say I use gcc).

2) anonymous ftp to 128.100.1.65 (cs.toronto.edu) to get the lastest cnews
   sources.

3) anonymous ftp to 192.55.239.132 (ftp.cs.widener.edu) to get cnews.speedups.
   Make code changes as suggested in README.XENIX.2. I suppose I should let
   the original authors know what I did so they can include it. Someday.

4) use the BUILD.XENIX enclosed as build.def when you are building cnews. Change
   directories (for news/etc) and users as appropriate for your system.

5) read the README's included herein ! They point out some obvious changes
   needed.

6) compile and install properly (*READ* the man pages first ! It could save
   you some grief.)

7) sit back and enjoy much quicker news processing.

Hopefully I haven't forgotten anything.

You don't really need anything from the speedups package except for the
spacefor stuff. But I made the other stuff work anyway. Cnews screams.
Together with rn you'll have an awesome news-reading machine.

	fred

----README.XENIX.1 (for cnews)
Need to add a line to the start of all copies of dbz.h
    typedef unsigned int size_t;

I use gcc (with some flags that I might not need but it works).

I don't use the fast stdio because it doesn't seem to be compatible.

Use BUILD.XENIX as build.def

I have everything owned by news (binaries/etc). It simplifies things.

Need to fix the ME line in /usr/lib/news/sys (if you plan on adding any local
groups). Simplest to change it to
ME:all

Need a /usr/lib/newsbin/spacefor that works under Xenix. The one from the
cnews.speedups seems to work. I also install all the other stuff from that
package. It needed some work to make it work. See the README.XENIX.2 file.

Need to add the appropriate stuff to the /etc/rc.d directories and the
/usr/spool/cron/crontabs directory to ensure news is gotten. (News entries
and uucp entries).

Might have to fine-tune the execute permissions by hand for some of
the shell scripts under /usr/lib/newsbin (they might not have all the read perms
they need). If you use BUILD.XENIX it will have everything owned by news.
That should work.

----README.XENIX.2 (for cnews.speedups)
The Xenix cc and gcc sprintf has a bug ... it won't properly handle the
%i in the sprintf in anne.jones.c. Use %d instead.

tear must gererate a body file, even if it is empty. Added code to do that.

anne.h must have
#undef	HAVESTRSTR
#undef HAVEGETHOSTNAME
#define	NOLINEBUF		/* It doesn't hurt */
As well I put some ifdefs so allheaders isn't included needlessly in
anne.jones.c

anne.jones.c must handle "Subject: cmsg " as well as "Subject: cmesg "
Added code for this.

Xenix ustat returns f_tfree in blocks of size 1024 (at least on my system).
BUT my harddisk is really got a BLK_SIZE of 512 (which du uses). Confusing, eh ?
Well, just use BLK_SIZE 1024 instead of 512. Check this on your system.

rnews.c has the pid and gid of the user "news" hardcoded into it. Naughty,
naughty. Make sure it is correct.

May have been other changes. I can't remember.

----BUILD.XENIX (for in cnews/conf directory to be used as build.def)
# These answers are interdependent; do not edit this file!
newsuid="news"
# These answers are interdependent; do not edit this file!
newsgid="news"
# These answers are interdependent; do not edit this file!
binuid="news"
# These answers are interdependent; do not edit this file!
bingid="news"
# These answers are interdependent; do not edit this file!
binsrc="yes"
# These answers are interdependent; do not edit this file!
mess="no"
# These answers are interdependent; do not edit this file!
unmess="no"
# These answers are interdependent; do not edit this file!
newsarts="/usr/spool/news"
# These answers are interdependent; do not edit this file!
newsctl="/usr/lib/news"
# These answers are interdependent; do not edit this file!
newsbin="/usr/lib/newsbin"
# These answers are interdependent; do not edit this file!
newsumask="002"
# These answers are interdependent; do not edit this file!
newsmaster="root"
# These answers are interdependent; do not edit this file!
newsconfig="/usr/lib/news/bin/config"
# These answers are interdependent; do not edit this file!
chown="/bin/chown"
# These answers are interdependent; do not edit this file!
chboth="no"
# These answers are interdependent; do not edit this file!
chgrp="/bin/chgrp"
# These answers are interdependent; do not edit this file!
unixkind="usg"
# These answers are interdependent; do not edit this file!
addrsize="big"
# These answers are interdependent; do not edit this file!
dbmopt=""
# These answers are interdependent; do not edit this file!
faststdio="no"
# These answers are interdependent; do not edit this file!
storeval="yes"
# These answers are interdependent; do not edit this file!
faststrchr="no"
# These answers are interdependent; do not edit this file!
sete="no"
# These answers are interdependent; do not edit this file!
ranlib="yes"
# These answers are interdependent; do not edit this file!
symdef="no"
# These answers are interdependent; do not edit this file!
cc="/usr/local/bin/gcc"
# These answers are interdependent; do not edit this file!
copts="-O -traditional -fpcc-struct-return"
# These answers are interdependent; do not edit this file!
ldopts=""
# These answers are interdependent; do not edit this file!
postlibs=""
# These answers are interdependent; do not edit this file!
hostname="no"
# These answers are interdependent; do not edit this file!
uname="no"
# These answers are interdependent; do not edit this file!
uucptype="hdb"
# These answers are interdependent; do not edit this file!
dftype="xenix"
# These answers are interdependent; do not edit this file!
dfdirs="no"
# These answers are interdependent; do not edit this file!
archive="no"
# These answers are interdependent; do not edit this file!
spacelow="no"
# These answers are interdependent; do not edit this file!
nfsgroup="no"
# These answers are interdependent; do not edit this file!
server="newsie"
# These answers are interdependent; do not edit this file!
manpages="/usr/man"
# These answers are interdependent; do not edit this file!
manmess="no"
# These answers are interdependent; do not edit this file!
rbin="/usr/bin"
# These answers are interdependent; do not edit this file!
doui="no"
# These answers are interdependent; do not edit this file!
bin="/usr/bin"
# These answers are interdependent; do not edit this file!
atok="no"
# These answers are interdependent; do not edit this file!
postdefltdist=""
# These answers are interdependent; do not edit this file!
paranoid="no"
# These answers are interdependent; do not edit this file!
whoami="screamer"
# These answers are interdependent; do not edit this file!
mailname="screamer.uucp"
# These answers are interdependent; do not edit this file!
organization="GRW Enterprises"
# These answers are interdependent; do not edit this file!
postdefltgroup=""
# These answers are interdependent; do not edit this file!
newspath="/bin:/usr/bin:/usr/local/bin"
# These answers are interdependent; do not edit this file!
fake=" fsync.o mkdir.o symlink.o strerror.o"
# These answers are interdependent; do not edit this file!
fakehdrs=""
# These answers are interdependent; do not edit this file!
immediate="no"
# These answers are interdependent; do not edit this file!
inputstall="yes"
# These answers are interdependent; do not edit this file!
defsub=""
# These answers are interdependent; do not edit this file!
mustsub=""