[news.software.b] How C-news checkgroups should work, a proposition

a3@rivm05.rivm.nl (Adri Verhoef) (03/26/91)

On account of a recent problem with the C-news checkgroups script,
I'm coming up with a proposition here.
A little background of the problem: it seems that new and old descriptions
of newsgroups are kept in the newsgroups file, after executing checkgroups.


How checkgroups should work, a proposition.
-------------------------------------------

1. Make a backup copy of the newsgroups file.
2. Fetch all valid top hierarchies (alt, bionet, bit, biz, comp, ...)
   from the checkgroups message, storing them in "top_hier".
3. Fetch all obsolete top hierarchies (!pubnet, ...)
   from the checkgroups message, storing them in "not_hier".
4. Delete all newsgroups that belong to one of the top hierarchies
   that were saved in "top_hier" or in "not_hier" from the newsgroups file.
5. Append all valid newsgroup descriptions from the checkgroups message
   to the newsgroups file.
6. Sort the newsgroups file.
7. Compare the newsgroups file and the active file. [Check groups]
===========================================

Afterthoughts.
--------------
a. File "localgroups" seems to be unneeded.
b. The newsgroups file could now contain "control", "general", "junk",
   - although this is not necessary - so that a seemingly real comparison
   between newsgroups file and active file can be performed.
c. The comparison between newsgroups file and active file
   needs to be worked out some more. [What about aliasing?]
===========================================

This looks real easy to implement.  (As they say: a one cent's whistle.)
Action "7" is the hardest part to program, but since that has been
done already, it only needs a little re-programming.
--
Adri Verhoef (a3@rivm.nl, Postmaster, NewsAdmin, Systems Programmer, SysAdmin)
National Institute for Public Health and Environmental Protection (RIVM).

karl.kleinpaste@osc.edu (03/27/91)

The obvious solution to the C News checkgroups problem is for C News
sites simply to inhale the B News checkgroups script whole.  All the
script does is egrep/sed/comm crud.  Apparently the copyright on B
News prevents Henry & Geoff from including it in their distribution
(based on past conversations), but I see nothing preventing individual
sites from picking it up.
--
..Go:del showed that provability is a weaker notion
than truth, no matter what axiomatic system is involved.
--Douglas R Hofstadter, _Go:del,_Escher,_Bach_, page 19

jmaynard@thesis1.med.uth.tmc.edu (Jay Maynard) (03/27/91)

One gotcha: checkgroups should not say anything, pro or con, about any groups
in a hierarchy not mentioned in the checkgroups message. The reason behind
this is that checkgroups messages appear for hierarchies outside the Big 7
(bionet.* comes immediately to mind), and a checkgroups for bionet.* should
not have anything to say about alt.*.
-- 
Jay Maynard, EMT-P, K5ZC, PP-ASEL | Never ascribe to malice that which can
jmaynard@thesis1.med.uth.tmc.edu  | adequately be explained by stupidity.
  "You can even run GNUemacs under X-windows without paging if you allow
          about 32MB per user." -- Bill Davidsen  "Oink!" -- me

clewis@ferret.ocunix.on.ca (Chris Lewis) (03/29/91)

In article <1991Mar25.195250.24700@rivm.nl> a3@rivm05.rivm.nl (Adri Verhoef) writes:
>How checkgroups should work, a proposition.

The difficulty with this proposal is that it assumes that there is only
one "authority" for checkgroups.  In contrast, there's at least 3 major
ones, and quite a few minor ones.  Worse, their name-space overlaps, case
in point "inet" and "world" (the mainline USENET one).  This implies,
amongst other things, that there are logically *several* different "newsgroups"
files.  One other peripheral issue is that of backwards compatibility...
Frankly, given the way stock C-news checkgroups works (sorry H&G if my
info is out of date) and B-news still gets upset with the different
"authorities", you'll NEVER want to issue a real checkgroups anymore,
for too many machines do moderately unpleasant things to their administrators
when a checkgroups comes in, and we'll never get enough people to upgrade
their software.

This is an idea I came up with quite some time ago, but have never had
a chance to implement - it's similar to something else I've seen recently:

    1) Add an argument to the "Control: checkgroups" header.   The argument
       specifies the "authority" or "sphere of influence".  For example,
       Gene would post "world" (or usenet or whatever name we chose for
       it), then there'd be an "inet", "bionet" etc. etc. etc.
       Eg: "Control: checkgroups usenet"
    2) The body of the article looks like the current B-news and
       C-news mechanism.  It would be nice to have something capable of
       supporting some of the additional C-news active flags as well as
       the existing moderated/unmoderated.  This file currently looks
       something like:
	flags
	newsgroup	description
	newsgroup	description
	flags
	newsgroup	description
	....
    3) When a system receives a checkgroups header, it first saves the body
       in NEWSDIR/newsgroups.<authority> (or, perhaps better, "<authority>.ng")
    4) A new newsgroup file is created by catting together all of the .ng
       files (with some munging to get rid of the flags).
    5) The active file is compared against the ".ng" files (more or less
       the same way as now).
    6) There should be a config option to indicate whether the newsgroup
       update should be performed or the differences just mailed to the
       administrator.  T'would be nice to parameterize a bit further so
       that checkgroups will apply updates automatically in some hierarchies,
       but not in others.
    7) There should be a "synchronization" mechanism, so that you can create
       "ng" files for given hierarchies with your existing newsgroup set.
       This is to simplify being able to tell checkgroups about local
       groups or groups that don't have an "authority" (probably alt).

Things to think about:
	- If we extend the permissible flags, we might have to define some
	  semantics about converting C-news ones into B-news ones (at least,
	  converting it into something that B-news supports).  For example,
	  the "=newsgroup" mechanism in C-news could be used to automatically
	  update the newsgroup aliases file in B-news.  (These aren't isomorphic
	  flags, but they're reasonably close)
	- How do we implement this so as to not blow out all of the machines
	  that don't upgrade?  We keep telling them about how to disable
	  checkgroups.  (null out the shell script)
	- installation is easy - both B-news and C-news should be able to
	  slip in a shell program that implements this without changing
	  any code (B-news may need to be modified to stuff the checkgroups
	  argument out to the shell script)
      
Benefits:
	- we get automated checkgroups without the software screaming like
	  it does now.
	- we get the newsgroups[s] files updated.
	- This can be retrofitted to existing news systems easily, since
	  it's largely an independent shell script.
	- some level of parameterization to customize how it operates
	  on a finer basis.

The principle problem to be overcome is security....
-- 
Chris Lewis,
clewis@ferret.ocunix.on.ca or ...uunet!mitel!cunews!latour!ecicrl!clewis
Psroff support: psroff-request@eci386.uucp, or call 613-832-0541 (Canada)
**** somebody's mailer is appending .bitnet to my From: address.  If you
see this, please use the address in the signature, and send me a copy
of the headers of the mail message with the .bitnet return address.  Thanks!