Quick start guide for the gopher-nnrp gateway

Requirements: perl, sys/socket.ph, an NNTP server that supports XHDR
If the nntp server is not INN with overview files it will be slow for
large newsgroups as the overview files speed up xhdr quite a bit.

Notes: If running chroot(), be sure to have perl and sys/socket.ph
in the gopher space.  All the paths in the code assume you are running
chroot.

gonnrp has several options: (some of these options were ported over from
gonntp and have not yet been tested it gonnrp.  They are marked as
such.)

-g pattern      retrieve all matching groups (as shipped gonnrp only
               matches with the beginning of the group name)
               Does not split up groups on '.'s like -G does.

-h group        retrieve subject headers from specified group

-b group        same as -h, but sets up next level to only display
               the body of the article (no headers) (untested in
               gonnrp)

-s group keyword        same a -h but display only subject lines
                       which contain keyword. Currently limited to
                       one word, should be easily fixed for more.
                       To use this from gopher, you will have to call
                       a shell script to run gonnrp rather than exec'ing
                       gonnrp directly. I am still working on the
                       search stuff, may change it later...
                       (untested in gonnrp)

-a group # [body]       Internal option to retrieve article # from
                       group. If body is specified then only the
                       body of the article is displayed (no headers).
                       The -a option should never be used in a .link
                       file unless you never get rid of news articles.

-l group                Show last article from a group. Added by
                       Bob Peterson ([email protected])
                       (untested in gonnrp)

-G pattern              Same as -g, except prepare to thread groups
                       and split groups on '.'s into sub-menus

-G                      same as -G pattern but all newsgroups

-T group                Same as -h except thread articles.

-X art# art#            Show authors from thread.  This option has two
-X 0 start end          forms.  The first gives a list of articles in
                       the thread.  If the list is too long the
                       second is used.  It gives the first and last
                       articles numbers in the thread.  Any articles in
                       the range that are not part of the thread are
                       skipped.

-t group                Same as -h.  I kept it to make converting from gonntp
                       easyer.  I might take it out in the future so do
                       not use it.

-f filepath             Used to add a file to the begining of the menu.
                       We use it for the clari copyright warning.

Setting up the files:

All paths are showen relative to the gopher's chrooted root.

/bin/gonnrp
/bin/build-newsgroups-db        (run by maintainer only)
/usr/lib/dotall                 (used by build-newsgroups-db)
/usr/lib/newsgroups.dir         (built by build-newsgroups-db)
/usr/lib/newsgroups.pag         (built by build-newsgroups-db)

cd to gopher's /bin and type this:

build-newsgroups-db /usr/local/news/newsgroups ../usr/lib/dotall

It will setup your newsgroups dbm database that is used to display the
descriptions in the newsgroups menus.  The dotall file contains
descriptions of parts of the newsgroups for the menus.  For example:

A dotall entry of:

news.admin.all  newsgroups for news admins

The description 'newsgroups for news admins' would appear next to
'news.admin' in gopher.  Note that this info can not be gotten from the
newsgroups file because news.admin is not a newsgroup.  [I know I picked
an example that used to be a newsgroup and still is one, incorrectly, at
some sites.]

Sample link files

Name=comp
Type=1
Path=exec:-g comp:/bin/gonnrp
Host=+
Port=+

Name=Comp.Sys groups
Type=1
Path=exec:-g comp.sys:/bin/gonnrp
Host=+
Port=+

Name=Gopher News
Type=1
Path=exec:-h alt.gopher:/bin/gonnrp
Host=+
Port=+

Name=No headers alt.gopher
Type=1
Path=exec:-b alt.gopher:/bin/gonnrp
Host=+
Port=+

Name=Search alt.gopher subjects for keyword
Type=7
Path=7/bin/gonnrp.sh
Port=+
Host=+
#
Name=clari - ClariNet UPI wireservice news
Numb=5
Type=1
Path=exec:-f /usr/lib/clari-copyright -G clari:/bin/gonnrp
Host=+
Port=+

(gonnrp.sh is a shell script which execs gonnrp -s alt.gopher $*, the
exec type will try to exec "/bin/gonnrp keyword" rather than
exec "/bin/gonnrp" "keyword")

i.e.:

#!/bin/sh

/bin/gonnrp -s alt.gopher $*

Comments & Suggestions to:

[email protected] (Chad Adams)