:; cd conf
:; ./build
This interactive command will build shell files named doit.root,
doit.bin, doit.news, and again.root to do all the work.  It will not
actually do anything itself, so feel free to abort and start again.

You probably need your system manuals handy.

When a question is asked in the form `How are you [okay]? ', the
answer in brackets is what you will get if you just hit RETURN.
(If you want give an empty string as the answer, type a single
`-' instead.)

Do you want to use your previous answers as defaults [no]? 

C News wants to keep most of its files under a uid which preferably
should be all its own.  Its programs, however, can and probably should
be owned by another user, typically the same one who owns most of the
rest of the system.  (Note that on a system running NFS, any program
not owned by "root" is a gaping security hole.)
What user id should be used for news files [news]? 
What group id should be used for news files [news]? 
What user id should be used for news programs [bin]? 
What group id should be used for news programs [bin]? 
Do the C News sources belong to bin [yes]? 

It would appear that your system is among the victims of the
4.4BSD / SVR4 directory reorganization, with (e.g.) shared
data in /usr/share.  Is this correct [yes]? 
This will affect where C News directories go.  We recommend
making the directories wherever they have to go and then making
symbolic links to them under the standard names that are used
as defaults in the following questions.  Should such links
be made [yes]? 
Our 4.4ish friends suggest putting articles in /var/spool/news
and control files in /usr/share/news, with programs left where
they are in /usr/lib/newsbin.

C News lives primarily under three directories:  one for articles (and
incoming and outgoing spooling), one for control files, and one for
programs.
Where should articles live [/usr/spool/news]? 
Where should control files live [/usr/lib/news]? 
Where should programs live [/usr/lib/newsbin]? 

C News by default assumes that all normal Unix programs can be
found in /bin or /usr/bin.  This is naive, especially on
Berkeley-derived systems where some standard programs
inexplicably moved to /usr/ucb.
It appears that some standard programs live in /usr/ucb
on your system.  Is that right [yes]? 
Should /usr/ucb be searched after /bin and /usr/bin
(as opposed to before) [yes]? 
Is there any other directory which should be searched
to find standard programs on your system [no]? 

C News normally uses a umask of 002, turning off only the others-write
bit in the permissions of files used.  (The correspondence between bits
and number is:  rwx = 421, so turning off group-write bits and all
others-access bits would be a mask of 027, for example.)  Usually
a umask of 002 or 022 is appropriate.
What umask should C News use [002]? 

C News wants to mail some forms of trouble reports to an administrator.
You probably want to make this a system mailbox, rather than that of a
specific user, so you won't have to change the software when you get a
new administrator.
Where should C News mail trouble reports [usenet]? 

The shell files that are everywhere in C News want to pick up their
configuration parameters (mostly, the last few questions you have
answered) from a file at a known location; this is very hard to avoid
unless you play tricks with environment variables (see documentation).
Where should the shell configuration file be
located [/usr/lib/news/bin/config]? 

What is the full pathname of the chown command [/etc/chown]? 
Can I say `/etc/chown news.news file' to change both the user id
and group id of a file [yes]? 

building doit.root...
done

C News has libraries for several kinds of Unix:
	bsd42	4.2BSD and successors
	usg	AT&T System V
	v7	Version 7 (4.1BSD is pretty close, ditto Xenix)
	v8	Version 8, aka Eighth Edition
Which best describes your system [v7]? bsd42

C News has libraries for small address spaces (16 bits) and big
ones (preferably 32 bits, but anything rather bigger than 16).
Which best describes your system [big]? 

Systems vary in whether certain library functions and system calls
are present.  C News contains reasonably-portable versions of the
possibly-missing library functions, and fake versions of the
possibly-missing system calls, but it needs to know which are missing.
Does your system have  fsync() [yes]? 
Does your system have  getopt() [yes]? 
Does your system have  memcpy() [yes]? 
Does your system have  memcmp() [yes]? 
Does your system have  memchr() [yes]? 
Does your system have  memset() [yes]? 
Does your system have  mkdir() [yes]? 
Does your system have  putenv() [yes]? 
Does your system have  strchr() [yes]? 
Does your system have  strrchr() [yes]? 
Does your system have  strpbrk() [yes]? 
Does your system have  strspn() [yes]? 
Does your system have  strcspn() [yes]? 
Does your system have  strtok() [yes]? 
Does your system have  symlink() [yes]? 
Does your system have  strerror() [yes]? no

The news system uses a database package, typically the old "dbm"
library from Version 7 or a lookalike, as an indexing system.  We
supply a version of the "dbz" library, which is faster than "dbm",
uses much less disk space, and is program-compatible (although
it is *not* file-compatible, so anything else using the database
[notably NNTP, if applicable] has to be relinked with it).  Dbz
is usually preferable to dbm, barring major backward-compatibility
problems.  Do you want to use our "dbz" library [yes]? 

Many systems, notably older ones, have implementations of the Standard
I/O library ("stdio") in which fgets, fputs, fread, and fwrite are
quite slow.  We supply versions of these functions which are faster
than those in any stdio we know; they are compatible with most old
AT&T-derived stdios.  (They tend not to work on modern System V,
but the modern System V stdio is respectably fast.)  They can be a
major performance win for C News.  There is a fairly thorough
compatibility check run after the library is built; as far as we
know, if the test works, the functions do (even on SunOS 4.0).
Do you want to use our fast stdio library [yes]? 
Beware that the compatibility check will work best if
the output of doit.bin is NOT redirected into a file
or a pipe.

The strchr() function is usually slower than in-line C code
when small strings are involved, unless your compiler is very
clever and can generate in-line code for strchr().  Is your
compiler that good (okay to guess) [no]? 

Modern Unixes can generally use the setuid() system call to set the
real and effective user ids to the current effective user id.  In
old Unixes, only "root" can change the real user id.  This causes
various problems for C News.  C News provides a small program named
"setnewsids" to run setuserid-root; all it does is change user and
group ids and then execute C News "relaynews".  It is needed only on
uncooperative systems.  Relaynews invokes it automatically if needed
(and it then invokes relaynews in return).  Can this system do
setuid(geteuid()) to change the real uid/gid [yes]? 

Some systems have header files that others lack, and C News
is prepared to fake missing ones.
Does your system have an ANSI-C-conforming <string.h> [yes]? no
Does your system have <sys/timeb.h> [yes]? 

Very old Unix systems needed the order of object modules in a library
chosen very carefully.  V7 introduced "ranlib" which removes the need
for this.  Recent System Vs have had the same facility built into "ar"
(look for the "symdef" feature in the "ar" manual page) so "ranlib"
is not needed.  Does your system use ranlib [no]? yes

Historically the C compiler is named "cc", but this is not true on
some systems, and on others there are several different C compilers.
What is the name of the C compiler to be used [cc]? 

Historically the only normal compilation option needed for most
programs is -O, but again compilers, especially newer ones, differ.
(NOTE:  many 386 compilers miscompile dbz if -O is used!)
What options should be given to the compiler [-O]? 

The final linking ("ld") step of compiling might need an option,
such as -n or -i, to produce the preferred form of executable file.
On most modern systems the default is right.  What options, if any,
should be given for linking []? 

On unusual systems it may be necessary to link C News programs with
libraries other than the usual C library.  These can be specified as
either full pathnames or -l... options.  What libraries, in addition
to the one(s) picked up automatically by the compiler, should be used
when linking C News []? 

Does your system have a "hostname" command [yes]? 

C News tries to limit the backlog of news batches spooled up for
transmission to a site, to control use of disk space.  To do this,
it needs to be able to determine the length of the queue of news
batches for a particular site.  This is UUCP-version-dependent.
There is a good chance that you will have to customize the "queuelen"
program.  C News knows about several versions:
	hdb	Honey DanBer, aka Basic Networking Utilities
	sub	old uucp with subdirectories (e.g. /usr/spool/uucp/C.)
	old	very old uucp, no subdirectories
	pre	prehistoric uucp, no subdirectories, no -g option on uux
	null	don't run uucp or don't care about queue lengths
Which one is most appropriate [hdb]? sub
Beware -- test "queuelen" to make sure it works.

C News often wants to ask how much disk space is available.  The
format of output from the "df" command unfortunately varies a lot,
as does the availability of a system call to get the same information.
C News knows about several different versions (the first three are
preferred):
	statfs	system with standard statfs() (SunOS, 4.4BSD, not System V)
	ustat	system with ustat() (most System Vs)
	ultrix	DEC Ultrix with DEC's own bizarre statfs()
	bsd	4.2/4.3BSD
	sysv	old System Vs
	xenix	some (all?) Xenixes; some System Vs, e.g. Microport, HP?
	sgi	Silicon Graphics Iris systems
	v7	plain old style:  no headers or fluff, just name and number
	null	don't know or don't care how much space is available
Which one is most appropriate [bsd]? statfs

Some "df" commands, especially on old systems, must be given the
name of a device.  Modern ones can be given any directory name and
the system handles the details of figuring out what device is meant.
A few will take a directory only if it is the "top" of a filesystem.
Will "df" accept any directory name as an argument [yes]? 

Are you planning to use expire to archive news on disk [no]? 

Are you particularly short of disk space [no]? 
You may want to inspect "spacefor" to make sure its defaults
for things like desired free space are appropriate for your
system, although the defaults are fairly conservative.

It is very difficult to do anything useful with incoming news when
there is no space for it.  Normally, C News simply discards it and
mails a trouble report.  On a single-user system, it may be better
to just have the news reception stall until more space becomes
available.  Warning:  this may stall processing of other incoming
traffic, e.g. mail, as well, and the queue of unprocessed traffic
may well grow until your disk fills up.  Should news reception
stall if space gets short [no]? 

News processing is much more efficient when done in bulk, so C News
normally just saves incoming news and processes it once an hour.
If you have ample resources and are wildly impatient to make news
available the instant it arrives, that is expensive but possible.
Do you want immediate processing [no]? yes

Are you running C News on a group of machines hooked together with NFS,
with articles filed on one "server" machine [no]? yes
What is the "hostname" name of the server [newsie]? world

Several programs need to know an overall name for the system news is
being run on, where "system" may include multiple machines if they
share a common set of control files and articles; this is used in
article headers and related places.  For uucp sites, this usually
should be the uucp name.  It is VITAL that you and your neighboring
sites agree on this name -- if their news systems know you by a
different name, or even a slightly-different variation of the same
overall name, there will be trouble.  What is the name of the
overall system for news purposes [nowhere]? world

The "From:" lines of news postings, on the other hand, should carry
a mailing address, which in particular should be a domain address
for sites that have one.  What is the mailing-address name of this
system, preferably a domain address [world.uucp]? world.std.com

What is the name of the organization, for insertion into articles
posted from here [Godcorp]? The World @ Software Tool & Die

Manual pages are normally stored in a tree structure under /usr/man.
Local practices vary a great deal, however, and System V has also
introduced some bizarre distortions into this once-simple structure.
What is the top-level manual-page directory [/usr/man]? 

C News adds manual pages to chapters 1 (programs), 5 (files), and
8 (administrative programs).  These chapter numbers have changed
in some variants of Unix.  Also, originally pages from chapter 5 (for
example) were stored in /usr/man/man5.  This has also changed in
some variants.  Has your system made such changes [no]? 

The "rnews" and "cunbatch" commands (which are identical, the latter
being purely for backward compatibility with seriously-old systems)
have to be installed somewhere where uucp can find them to execute
them.  It is not normally necessary for users to be able to run
them, so they need not go in the directories searched for normal
commands... although uucp often searches only those directories.
What directory should "rnews" and "cunbatch" go in [/bin]? 

Our "postnews", "readnews", and "checknews" are included mostly for
completeness.  They are very simple and crude compared to the user
interface many users are accustomed to.  As far as we know, B News
(or other) versions should run fine with C News.  If you are already
running such user-interface software, you may not want to change.
Do you want to install our user-interface programs [yes]? 

The "inews", "postnews", "readnews", and "checknews" command(s) should
go in one of the directories searched for normal commands, so users
can run them without special arrangements.  What directory should
these commands go in [/bin]? 

For replies to control messages, C News invokes "mail" (typically
/bin/mail unless you make special arrangements) with either an
Internet-style "@" address or a uucp-style "!" address.  Internet
style is probably better... if your mailer supports it at all.
Will "mail" handle "@" addresses [no]? yes

Postnews can supply a default newsgroup, to aid naive users in
getting this right for simple postings.  What should the default
newsgroup be [none]? wstd.general

Postnews can supply a default distribution, to limit news to a
local area unless the user specifically changes it.  This is
probably wise.  What should the default postnews distribution
be [world]? wstd

Readnews has a default subscription list, for users who have
not specified what newsgroups they wish to see.  What groups
should be in that list (comma-separated with no spaces, please,
as they would be in a .newsrc) [general]? wstd.general

For administrative use, readnews has one newsgroup that users
must subscribe to, even if they ask not to.  What group should
that be [general]? wstd.general

The ihave/sendme protocol, although marginally useful in some cases,
is a security hole -- it lets another site ask for any article by
Message-ID, and if your Message-IDs are predictable enough (which
C News's generally are not, mind you), that site can get any article
currently on your system.  Do you have any newsgroups containing
confidential or proprietary material [no]? 

building doit.bin...
done

building doit.news...
done

building again.root...
done


saving defaults...
done

You should now run doit.root as root, doit.bin as bin, doit.news
as news, and again.root as root, in that order.  (This assumes
that the source directories are owned by bin.  If you need to do
installation work by hand, run 'doit.bin -i' as the owner; this will
create the programs but won't install them.)  (It is not necessary
to log in as these users; use of 'su' suffices.)  Finally, you will
want to add the contents of 'cron', or something similar, to your
cron's work-to-be-done file(s), and the contents of 'rc', or something
similar, to /etc/rc or whatever your system executes when booting.

"make gclean" will clean up everything afterwards.  "make lclean"
does a less drastic cleanup affecting only the library directories.
"make spotless" does "make gclean" and also removes the doit files.

Good luck and happy news reading.
:; ^D
