[comp.sys.att] C news on a 3B1/7300

kls@ditka.UUCP (Karl Swartz) (03/16/90)

A few weeks ago there was a brief discussion of C news on the
AT&T 3B1/7300.  Unfortunately I was busy at the time and those
messages expired before I got to them.  Last weekend I spent a
number of hours trying to get it working and mostly ended up
with a deep hatred for the awful configuration script.  Could
someone tell me how to get C news up on one of these machines,
if it's doable?  (Post if you think the information will be of
general interest though given the recent discussion I suspect
e-mail would be best.)

If C news isn't feasible, what about B news with mdbm?  I have
been running 2.11.8 with the hashed history files but wanted
to get some extra speed and so tried to use the mdbm posted by
Dave Ihnat, upgrading to 2.11.14 in the process, now that the
lost inode bug is fixed in the kernel.  Unfortunately expire
keeps exploding and then everything goes to hell with messages
about history.dir and history.map not being linked.  Having
already wasted quite a few hours on C news I really didn't feel
like a long debugging session so I reverted to the old, slow,
2.11.8 and hashing.

Any and all suggestions will be greatly appreciated.

-- 
Karl Swartz			 |UUCP	uunet!apple!zygot!ditka!kls
1-408/223-1308			 |INet	zygot!ditka!kls@apple.com
"I never let my schooling get in |BIX	kswartz
the way of my education."(Twain) |Snail	1738 Deer Creek Ct., San Jose CA 95148

adam@cs.UAlberta.CA (Michel Adam; Gov't of NWT) (03/17/90)

In article <22541@ditka.UUCP> kls@ditka.UUCP (Karl Swartz) writes:
>A few weeks ago there was a brief discussion of C news on the
>AT&T 3B1/7300.  Unfortunately I was busy at the time and those
>messages expired before I got to them.  Last weekend I spent a
>number of hours trying to get it working and mostly ended up
>with a deep hatred for the awful configuration script.  Could
>someone tell me how to get C news up on one of these machines,
>if it's doable?  (Post if you think the information will be of
>general interest though given the recent discussion I suspect
>e-mail would be best.)

I would also be interested in any and all info on this, as I am about
to try to install it.

Please post, or e-mail me.

Thanks in advance.

Michel Adam
Yellowknife, N.W.T.

!alberta!adam    or    !alberta!iceman!michel

roger@marque.mu.edu (03/18/90)

In article <22541@ditka.UUCP> kls@ditka.UUCP (Karl Swartz) writes:
>A few weeks ago there was a brief discussion of C news on the
>AT&T 3B1/7300.  Unfortunately I was busy at the time and those
>messages expired before I got to them.  Last weekend I spent a
>number of hours trying to get it working and mostly ended up
>with a deep hatred for the awful configuration script.  Could
>someone tell me how to get C news up on one of these machines,
>if it's doable?  (Post if you think the information will be of
>general interest though given the recent discussion I suspect
>e-mail would be best.)
>
>If C news isn't feasible, what about B news with mdbm?  I have
>been running 2.11.8 with the hashed history files but wanted
>to get some extra speed and so tried to use the mdbm posted by
>Dave Ihnat, upgrading to 2.11.14 in the process, now that the
>lost inode bug is fixed in the kernel.  Unfortunately expire
>keeps exploding and then everything goes to hell with messages
>about history.dir and history.map not being linked.  Having
>already wasted quite a few hours on C news I really didn't feel
>like a long debugging session so I reverted to the old, slow,
>2.11.8 and hashing.
>
>Any and all suggestions will be greatly appreciated.
>
>-- 
>Karl Swartz			 |UUCP	uunet!apple!zygot!ditka!kls
>1-408/223-1308			 |INet	zygot!ditka!kls@apple.com
>"I never let my schooling get in |BIX	kswartz
>the way of my education."(Twain) |Snail	1738 Deer Creek Ct., San Jose CA 95148

Well, this is fairly fresh in my mind, as I just updated Cnews because of a 
recently posted patch.

I have been running this for several months now.  I have had difficulties
getting various verions to go.  The current "versiom" 
(at patchdate 12-Mar-1990) went together without much of a hassel, and 
I built it with gcc 1.37.1.  If you use gcc, be sure that you also 
compile the dbm stuff with it or you will create incompatabilities.
(I.E. - Use the same compiler/options for dbz.o that you use for Cnews.)
I used "dbz" from the "contrib" stuff.

There are several scripts (Cnews uses shell scripts a LOT), that will
fail if the "stock" KSH is used to run them.  Noteable is "inews".
This will cause news posting to fail.  I suspect that the problem lies
in a rather windy "egrep" line used to find the relevant newsgroup in
the active file.  I have not bothered to fix this yet, it just easy to
re-post the "dead.article" by saying "sh inews -h <dead.article"
which succeeds, or going in using "sh".  Besides which I don't post
much from my news machine which is "booth".  Note that I am posting
from "marque". (Their "ksh" works correctly, although they call it "sh".)

I built the "lastest" cnews on system "boother" and used the following
as my config defaults (from file "build.def" created during the "build"
pass):

	newsuid		"news"
	newsgid		"news"
	binuid		"news"
	bingid		"news"
	binsrc		"yes"
	mess		"no"
	unmess		"no"
	newsarts	"/usr/spool/news"
	newsctl		"/usr/lib/news"
	newsbin		"/usr/lib/newsbin"
	newsumask	"002"
	newsmaster	"roger"
	newsconfig 	"/usr/lib/news/bin/config"
	chown		"/bin/chowm"
	chboth		"no"
	chgrp		"/bin/chgrp"
	unixkind	"usg"
	addrsize	"big"
	dbmopt		"-ldbm"

Here I have compiled "dbz.o" from the "contrib" directory, and then used
"ar ruv libdbm.a dbz.o" to create the dbm archive, which I placed in
/lib for the scripts to find.

	faststdio	"no"

(Should play with this sometime in the future.  Last time I tried it I
had problems...)

	storeval	"yes"
	faststrchr	"yes"
	sete		"no"

Very important! The stock setuid(setgid()) will fail!

	ranlib		"no"
	symdef		"yes"
	cc		"gcc"

"cc" for the stock Unic-PC compiler.

	copts		"-O -fpcc-struct-return -traditional"

The "-fpcc-srtuct-return" and "-traditional" options are "gcc" specific 
and cause to to behave more like the stock "cc" on the Unix-PC.
(Okay that is somewhat of a simplification but so what.)  If you use
stock "cc" (or "ccc", "shcc" or what ever), these should be left out.

	ldopts		"-s -shlib"

The "-shlib" option is specific to a modified loader I use for both "gcc"
and "cc".  This option triggers the loader to use the shared libraries.
It is avaliable on "cheops.cis.ohio-state.edu" in the att7300 archive
as file "ld-fed.cpio.Z" (I think thats it...).  Anyway, this option should
be left out if you don't use that program.

	postlibs	""
	hostname	"no"
	uname		"yes"
	uucptype	"hdb"

HoneyDanBer here, if you don't use that then use the approprate answer,
probably "sub".

	dftype		"sysv"
	dfdirs		"no"

I have a c program that was posted some time ago for this.  I think 
re-posting it might be in order if a lot of folks will be trying to
bring up Cnews.  In any event, if you do not have this particular
"spacefor.c" program, I would recommend initally bring up Cnews
by telling build not to use "spacefor" (I.E. - use the "null" answer).
None of the supplied versions will work without extensive troubleshooting.
Get Cnews running first, the hunt up a working "spacefor" and re-build 
Cnews with it.

	archive		"no"

(for future exploration - but "no" for now.)

	spacelow	"no"
	nfsgroup	"no"
	server		"newsie"

(Hey I didn't know about this one!  must be a default.)

	manpages	"/usr/man"
	manmess		"no"
	rbin		"/bin"
	doui		"no"
	bin		"/bin"
	atok		"no"
	postdefltdist	""
	paranoid	"no"
	whoami		"boother"

System "boother" talks to system "booth" which talks to system "introl"
which talks to "marque".  "boother" is used to compile and test the 
software, which will eventually run on "booth" where I usually read
"news" and receive mail, etc.

	mailname	"boother.uucp"
	organization	"Private System"
	postdefltgroup	""
	newspath	"/bin:/usr/bin"
	fake		" fsync.o mkdir.o symlink.o"
	fakehdrs	" ../include/string.h ../include/timeb.h"
----------------------------------------------------------------

Remember - BE SURE not to allow the the system to do setuid(getuid()).
This will be okay if:
	sete		"no"
(as above)

You should be ready to run "doit.root" su-ed to the "root" owner.

You should then run "doit.bin" as the news owner.  Make sure that ALL
the files are owned by this account, as well as the directories, etc.

Now I run this as "nohup sh doit.bin -i &", to ensure that "sh" runs it
rather than "ksh".  The "-i" prevents the actual installation of Cnews
on the system.  I prefer to do a few verifications before I do this!
Also, if you are currently running B-news, and you have used the same
directories for your news stuff, Cnews will overwrite much of the
B-news stuff.  This will then usually render B-news inoperative, and
if the Cnews version does not work properly, you will be OFF THE AIR!
This also makes the update difficult, as it is then hard to tell
which files belong to which news version.  I made a cpio archive of
"/usr/lib/news" just in case, and when I was ready to install Cnews,
I cleaned out much of "/usr/lib/news" first.  Some stuff you want to
keep around, such as the "active" and "sys" files.

Of course, if you do it this way, you must completely re-run the
script without the "-i" to install it, and this does take quite a
while, but not as long as the first pass.

The verification passes which I use are already built into Cnews.
All you do is cd to "relay" and run "make r" to perform a test of
these programs.  If that is okay, cd to "expire" and do a "make r"
there.  If there were any problems with the "dbm/dbz" stuff, they
will also show up here.

Once this is done (and you have completed the install by re-running
without the "-i" option), you run "doit.news" as the news owner.
(In all cases with these scripts, I use "sh" to run them.)

Once that has completed successfully, you now need to "su" to root
again and run the final "(sh) again.root".

If all is well at this point, you should run 
"/usr/lib/newsbin/expire/mkhistory" as the news owner, in order to 
re-create the history files with the newer database stuff.

If you have gotten this far, then you have installed a running
Cnews.  Now the real problems begin as you try to administer a
news system... :-)

						- Roger

levin@magnus.Hotline.Com (Michael M Levin) (03/20/90)

In article <22541@ditka.UUCP> kls@ditka.UUCP (Karl Swartz) writes:
>...Could
>someone tell me how to get C news up on one of these machines,
>if it's doable?

	It's a pain in the rear end, and it seems too big and clunky for a
	little 'ole 3B1.

>If C news isn't feasible, what about B news with mdbm? 

	I've been running with mdbm for over a year, and the trick to it is
	in the expire.c program.  The problem is that mdbm makes itself look
	kind of like dbm, but not quite-- there are two files for each of the
	data and index files.  SOoo.... what you do is hack expire.c, as well
	as making your sure that your system recognizes the plain dbm header
	file.  I think what you'll need to do is to link libmdbm.a to libdbm.a.

	You also mentioned wanting to upgrade to 2.11b-14.  Actually the very
	latest and greatest is 2.11b-18 (which I _think_ may have included the
	necessary hacks for using mdbm).  In any case, if you'd like, email me
	and I can send you the expire.c hack (although I don't have the patch-
	files for 15-18, since once I applied them I trashed them).  I s'pose
	I could even send you the whole thing, but as a compressed tar it is
	over 350K in length.  Let me know if I can help.


				Mike Levin
-- 
 _            _           
| | ___  ___ |_| ___   Michael Levin     SilentRadio Headquarters- Los Angeles
| |/ ._\| | || ||   \  20732 Lassen Street,    Chatsworth  CA  91311    U.S.A.
|_|\___/ \_/ |_||_|_|  E-Mail: levin@Hotline.Com  {att|csun|srhqla}!magnus!mml

kls@ditka.UUCP (Karl Swartz) (03/22/90)

In article <647@magnus.Hotline.Com> levin@magnus.Hotline.Com (Michael M Levin) writes:
>In article <22541@ditka.UUCP> I write:
>>Could someone tell me how to get C news up on one of these machines

>	It's a pain in the rear end, and it seems too big and clunky for a
>	little 'ole 3B1.

Urk?  I thought C news was supposed to be ever so much faster than
B news, and thus should be better for a little 'ole 3B1?!

>>If C news isn't feasible, what about B news with mdbm? 

Well, a neighbor (scott@zorch.sf-bay.org) sent me dbz 1.9, and I
built B news 2.11.14 with that.  At first, it built a very nice
looking history file and an utterly empty dbz index to it.  Turns
out I had defined INCORE, which causes dbz to cache as much of
the index as it can in memory, with stuff only flushed to disk
when you cause dbmclose.  B news hasn't a clue what dbmclose is
and so everything is happily built in memory and left there.  The
right solution would have been to put in the calls to dbmclose
(do the newer patch levels do this?) but for now I just took out
the INCORE definition.

With that, news is running happily and swiftly.

I'd still like to take a look at C news but time is short at the
moment and with dbz working ditka can handle the current load
with aplomb.  Besides, if it t'aint broke, why fix it? :-)  The
modification time on the inews I was running until last weekend
was Feb 8 1988, so having the latest and greatest isn't *that*
big a deal for me!

Also, I hear the C news folks are completely redoing the config-
uration script, and waiting until that is done seems like a truly
marvelous idea -- I'd just as soon never see the current obnoxious
script again.

-- 
Karl Swartz			 |UUCP	uunet!apple!zygot!ditka!kls
1-408/223-1308			 |INet	zygot!ditka!kls@apple.com
"I never let my schooling get in |BIX	kswartz
the way of my education."(Twain) |Snail	1738 Deer Creek Ct., San Jose CA 95148

henry@utzoo.uucp (Henry Spencer) (03/23/90)

In article <22843@ditka.UUCP> kls@ditka.UUCP (Karl Swartz) writes:
>Urk?  I thought C news was supposed to be ever so much faster than
>B news, and thus should be better for a little 'ole 3B1?!

Well, it ran fine on our little 'ole pdp11/44, and we've heard from
satisfied customers running it on 3B1s, so there's no inherent problem.

>Also, I hear the C news folks are completely redoing the config-
>uration script...

The revamping of the configuration stuff happened in January.  No major
changes are planned for it in the near future, although some minor
improvements are on the to-do list.
-- 
US space station:  8 years    |     Henry Spencer at U of Toronto Zoology
and still no hardware built.  | uunet!attcan!utzoo!henry henry@zoo.toronto.edu

jeffl@berick.uucp (Jeff Lawhorn) (03/24/90)

Yes, some of us do have C news running on a little 'ol 3b1.  And
I am very pleased with it.  I've had far fewer problems with it
than when I ran B news.

If there is enough interest I will make an installable copy of C
news available for uucp.  Keep an eye out here in the next week
or two for a list of things I will have available for anon uucp
(including gcc & g++).

--
Jeff Lawhorn                 This way to the Great,
jeffl@berick.uucp            the Stupendous,           \
ucsd!sdsu!berick!jeffl       the One and Only  =========>
                               *** Egress ***          /
-- 
Jeff Lawhorn                 This way to the Great,
jeffl@berick.uucp            the Stupendous,           \
ucsd!sdsu!berick!jeffl       the One and Only  =========>

clewis@eci386.uucp (Chris Lewis) (03/24/90)

In article <22843@ditka.UUCP> kls@ditka.UUCP (Karl Swartz) writes:
| In article <647@magnus.Hotline.Com> levin@magnus.Hotline.Com (Michael M Levin) writes:
| >In article <22541@ditka.UUCP> I write:
| >>Could someone tell me how to get C news up on one of these machines
| 
| >	It's a pain in the rear end, and it seems too big and clunky for a
| >	little 'ole 3B1.
| 
| Urk?  I thought C news was supposed to be ever so much faster than
| B news, and thus should be better for a little 'ole 3B1?!
| 
| >>If C news isn't feasible, what about B news with mdbm? 
| 
| Well, a neighbor (scott@zorch.sf-bay.org) sent me dbz 1.9, and I
| built B news 2.11.14 with that.
| 
| With that, news is running happily and swiftly.

ecicrl (at 3b1) is running B-news 2.11.19 with absolutely no changes whatsover
(except for the well known 2.11.19 batcher bug) using the B-news 2.11
built-in multiple file history support (/usr/lib/news/history.d/*[0-9]).
Eg: no dbm/sdbm/dbz/ndbm/mdbm whatsoever.

And runs quite happily and swiftly.  Even when catching up on 8 or
more Mb of news in one continuous UUCP slurp.

As it did with 2.11.14.

Admittedly, ecicrl doesn't receive a full USENET feed, but it's history files
are very large because I keep a month's worth of expiry information, and
there's a *lot* of internal news traffic (400K+/day).

My nightly news management script has 5 or 6 full B-news expire passes,
they take, in total, about 10-20 minutes.

Mind you, 8Mb of news *in* plus three outgoing feeds has my modem 
utilized >12 hours/day.  And my disk throttles working overtime....

The moral: in B-news, on System V, unless you have a dbm package already 
around, use the B-news multiple-file history.  It works quite nicely and
you don't have to muck with the code in any way.

The overhead of B-news is *not* DBM lookup, it's the reforking of rnews
on each *article*.  That's where C-news gets its main speed increment 
from.  The main problem with C-news is that it's history mechanism for
those times when you *don't* have a DBM is considerably slower than B-new's
non-DBM solution.  A C-news site next to ours (a biggish 3b2) was brought 
up without dbz, it ran about 4 articles/minute.  My piddly little 3b1 
without dbm was running about 15 or more articles/minute.  Without dbz
even a biggish 3b2 cannot keep up to a fullish feed, but I have no
doubt that my 3b1 running vanilla 2.11.19 could (except for modems and
disk space ;-)

But, *nothing* I've seen yet can beat a C-news site with a proper DBM.
-- 
Chris Lewis, Elegant Communications Inc, {uunet!attcan,utzoo}!lsuc!eci386!clewis
Ferret mailing list: eci386!ferret-list, psroff mailing list: eci386!psroff-list

kls@ditka.UUCP (Karl Swartz) (03/25/90)

In article <1990Mar23.182241.24840@eci386.uucp> clewis@eci386.UUCP (Chris Lewis) writes:
>ecicrl (at 3b1) is running B-news 2.11.19 with ... no
>dbm/sdbm/dbz/ndbm/mdbm whatsoever.

>And runs quite happily and swiftly.  Even when catching up on 8 or
>more Mb of news in one continuous UUCP slurp.

Well, ditka was doing ok until I upgraded to a full feed.  Also, as
a belt-and-suspenders kind of guy I have several ihave/sendme feeds.
Those two combined to make performance without db* unacceptable.

I first noticed a serious problem while waiting for a batch to fully
unpack so I could power down without interrupting anything.  After
over 30 minutes working on *one* article (an ihave for 692 article
ids) I gave up.  Later on I clocked a 96 id ihave (which generated
a sendme for 57 of the articles) at 12 minutes, or 8 ids per minutes.

Since switching to dbz I haven't done any timings on these suckers,
but the hourly run of 'rnews -U' finishes before the next one starts,
where before there was a backlog of batches that often approached an
entire day's worth of incoming traffic.

-- 
Karl Swartz			 |UUCP	uunet!apple!zygot!ditka!kls
1-408/223-1308			 |INet	zygot!ditka!kls@apple.com
"I never let my schooling get in |BIX	kswartz
the way of my education."(Twain) |Snail	1738 Deer Creek Ct., San Jose CA 95148

vern@zebra.UUCP (Vernon C. Hoxie) (03/26/90)

In article <23021@ditka.UUCP>, kls@ditka.UUCP (Karl Swartz) writes:
> In article <1990Mar23.182241.24840@eci386.uucp> clewis@eci386.UUCP (Chris Lewis) writes:
> >ecicrl (at 3b1) is running B-news 2.11.19 with ... no
> >dbm/sdbm/dbz/ndbm/mdbm whatsoever.

I have missed something in this discussion.  Can someone fill in the
blanks for dbm/sdbm/dbz/ndbm?

Are these commercial/netware packages?

What are they supposed to do to C-news beyond the capability of the
software in the package?

I am not presently attempting to install C-news but garnering info for
that fateful event.  Thanks!!
-- 
Vernon C. Hoxie		       {ncar,nbires,boulder,isis}!scicom!zebra!vern
3975 W. 29th Ave.					voice: 303-477-1780
Denver, Colo., 80212				  TB+	 uucp: 303-455-2670

clewis@eci386.uucp (Chris Lewis) (03/27/90)

In article <195@zebra.UUCP> vern@zebra.UUCP (Vernon C. Hoxie) writes:
> In article <23021@ditka.UUCP>, kls@ditka.UUCP (Karl Swartz) writes:
> > In article <1990Mar23.182241.24840@eci386.uucp> clewis@eci386.UUCP (Chris Lewis) writes:
> > >ecicrl (at 3b1) is running B-news 2.11.19 with ... no
> > >dbm/sdbm/dbz/ndbm/mdbm whatsoever.
 
> What are they supposed to do to C-news beyond the capability of the
> software in the package?

Nothing.  C-news (and B-news for that matter) need a simple key-value
database to maintain a "history" of what articles have been seen already
so that duplicate articles get rejected and that various programs
can associate an article Message-id with the actual file.
The key is the Message-Id, the value is some sort of pointer (eg: file
name or history line - depends on news version) to the actual article file.

Each of the *dbm's are a set of library routines with pretty similar interface
routines.  Each of them have substantially different characteristics, none
of which particularly matter when used with news.  But not all of them
are fully compatible with dbm, so your milage when using them elsewhere
varies.  When discussing news, the term "dbm" is taken both as a generic
software package (including all 5 of the ones I've mentioned) as well
as a specific implementation.

	dbm: original simple database mechanism found in V7 UNIX and
	     (I think) still in BSD.  Dropped from System V.
	sdbm: Ozan Yigit's implementation.  (Hey Ozan!  When's this going
	     to be released again?  I want to get it integrated with perl!)
	     PD.
	dbz: a stripped-down PD version, mostly suitable for news only.
	     It's shipped with C-news, but (at least until recently) Henry 
	     hasn't officially blessed it, and I don't think it's part
	     of the "standard" C-news automated build procedure.
	ndbm: Chris Torek's version, but I *think* you need some sort of
	     AT&T or BSD licensing on the machine that uses it.
	mdbm: Don't know much about it, but it doesn't sound sufficiently
	     like dbm to be used for anything but news without hacking.

[Though, I'm sure I'll be corrected on some of the above...]

The reason why you keep hearing about it is that many vendors have dropped
dbm from their UNIX releases, and that people need something like it for
news.  Without a *dbm available, B-news has an alternate history mechanism
that works reasonably well except for slowish machines with very large feeds.
On the other hand, C-news is unacceptably slow without a *dbm on any 
substantially sized newsfeed.  So you may end up having to futz around 
trying to install a *dbm that will speed up your news system.

If you want more detail, try looking up dbm(3) in Version 7 or Xenix
documentation.  That will give you a pretty good idea what it looks like.
-- 
Chris Lewis, Elegant Communications Inc, {uunet!attcan,utzoo}!lsuc!eci386!clewis
Ferret mailing list: eci386!ferret-list, psroff mailing list: eci386!psroff-list

henry@utzoo.uucp (Henry Spencer) (03/28/90)

In article <195@zebra.UUCP> vern@zebra.UUCP (Vernon C. Hoxie) writes:
>> >dbm/sdbm/dbz/ndbm/mdbm whatsoever.
>
>I have missed something in this discussion.  Can someone fill in the
>blanks for dbm/sdbm/dbz/ndbm?

The news software wants to maintain an index into the history file in
some fashion.  The original (well, more or less original) method was
to use the dbm library found in Version Seven Unix.  Unfortunately,
dbm was one of the things that got left out of System V, which has
created some demand for alternatives.  Probably the best of the various
alternatives is Jon Zeeff's dbz; an improved version is under test right
now for release in the next C News patch.

(ETA for that patch is a week or two, barring disasters.)
-- 
Apollo @ 8yrs: one small step.|     Henry Spencer at U of Toronto Zoology
Space station @ 8yrs:        .| uunet!attcan!utzoo!henry henry@zoo.toronto.edu