Annotation of 43BSDTahoe/new/news/doc/install.mn, revision 1.1

1.1     ! root        1: .ds h0 "USENET Version B Installation
        !             2: .ds h1
        !             3: .ds h2 %
        !             4: .ds f0 "\*(vr
        !             5: .ds f1
        !             6: .ds f2 "October 27, 1986
        !             7: .de Qp                                 \" quoted command as hanging char
        !             8: .lp "\\f3\\$1\\f1" \\$2
        !             9: ..
        !            10: .mt
        !            11: USENET Version B Installation
        !            12: .au
        !            13: Matt Glickman
        !            14: .ai
        !            15: Computer Science Division
        !            16: Department of Electrical Engineering and Computer Sciences
        !            17: University of California
        !            18: Berkeley, California 94720
        !            19: .au
        !            20: Revised by Mark Horton for version 2.10
        !            21: Revised by Rick Adams for version 2.11
        !            22: .hn
        !            23: Introduction
        !            24: .pg
        !            25: This document is intended to help
        !            26: a USENET site install and maintain the network news software.
        !            27: Please ask questions of Rick Adams\*(dg;
        !            28: .fn
        !            29: \*(dg ARPANET: [email protected], UUCP: seismo!rick
        !            30: .ef
        !            31: such questions will help to point out areas that need
        !            32: to be addressed here.
        !            33: .pg
        !            34: The overall order of things to do is:
        !            35: .lp (a)
        !            36: Find somebody to link up with.
        !            37: You need a network connection of some kind,
        !            38: for example,
        !            39: ARPANET or UUCP.
        !            40: If you must use UUCP and have no connections,
        !            41: you must have at least a dialup and preferably a dialer,
        !            42: and find someone willing to call your machine.
        !            43: The USENET directory may be helpful in finding some other site geographically
        !            44: near yours to hook up to.
        !            45: .lp (b)
        !            46: Create a
        !            47: .i localize.sh
        !            48: script to make local changes to the makefile and
        !            49: .i defs.h
        !            50: files. (Section 2 gives more details about creating
        !            51: .i localize.sh \&.)
        !            52: Once you're finished editing
        !            53: .i localize.sh ,
        !            54: create a
        !            55: .i defs.h
        !            56: and
        !            57: .i Makefile
        !            58: tailored
        !            59: for your site with the command
        !            60: .ce
        !            61: sh localize.sh
        !            62: Inspect
        !            63: .i defs.h
        !            64: and
        !            65: .i Makefile
        !            66: to ensure that all your local customizations
        !            67: got into your final versions. If you saw a \*(lq?\*(rq when you ran
        !            68: .i localize.sh ,
        !            69: one or both of the files is certainly wrong. It's a good idea to
        !            70: anchor the patterns in
        !            71: .i localize.sh \&'s
        !            72: .i ed (1)
        !            73: scripts, especially in its
        !            74: .i Makefile -editing
        !            75: lines. For instance, use
        !            76: .b /^UUXFLAGS/
        !            77: instead of
        !            78: .b /UUXFLAGS/ .
        !            79: .lp (c)
        !            80: Compile the software using the
        !            81: .i make (1)
        !            82: command.
        !            83: .lp (d)
        !            84: .i Su (1)
        !            85: and type \*(lqmake install\*(rq.
        !            86: This will copy the files out to the right place and
        !            87: make directories containing most of the important files.
        !            88: It will configure you in with a connection to
        !            89: .cn oopsvax
        !            90: via UUCP links.
        !            91: This is undoubtedly wrong,
        !            92: so you will have to configure links as needed.
        !            93: If this is your initial installation or you are upgrading from a version older
        !            94: than 2.11, do \*(lqmake update\*(rq.
        !            95: This will cause various checks to be performed on important
        !            96: files in
        !            97: .b LIBDIR .
        !            98: The results will be reported to you.
        !            99: If you are not sure if you should do \*(lqmake update\*(rq, do it.
        !           100: It will not hurt anything if you have already done it.
        !           101: .lp (e)
        !           102: After editing the configuration table,
        !           103: get your contact at the other end of the link to add you to their netnews
        !           104: .i sys
        !           105: file.
        !           106: .lp (f)
        !           107: Post a message to the
        !           108: .bi sysname "" \f3to.\fP
        !           109: newsgroup which should be set up to go only to the site you are linked to,
        !           110: as a test.
        !           111: Have the other person send a message to your system using the same mechanism.
        !           112: If this doesn't work,
        !           113: find the problem and fix it.
        !           114: (Please don't use
        !           115: .ng misc.test
        !           116: unless there is no alternative.
        !           117: It is almost always possible to use
        !           118: .ng test ,
        !           119: or
        !           120: .bi sysname "" \f3to.\fP
        !           121: or some
        !           122: .bi local \f3.test\fP
        !           123: group,
        !           124: instead of
        !           125: .ng misc.test .)
        !           126: .lp (g)
        !           127: Fill out a USENET directory form (the file
        !           128: .i dirform
        !           129: in the
        !           130: .i misc
        !           131: directory).
        !           132: Post a copy to the USENET newsgroup
        !           133: .ng news.newsite
        !           134: and mail a copy to
        !           135: .i cbosgd!uucpmap .
        !           136: .lp (h)
        !           137: Format the document
        !           138: .i "\\*(lqHow to Read the Network News\\*(rq"
        !           139: (the file
        !           140: .i howto.mn
        !           141: in the
        !           142: .i doc
        !           143: directory),
        !           144: the document
        !           145: .i "\\*(lqHow to Use USENET Effectively\\*(rq"
        !           146: (the file
        !           147: .i manner.mn
        !           148: in the
        !           149: .i doc
        !           150: directory)
        !           151: and the document
        !           152: .i "\\*(lqCopyright Law\\*(rq"
        !           153: (the file
        !           154: .i copyright.mn
        !           155: in the
        !           156: .i doc
        !           157: directory)
        !           158: and post them to your
        !           159: .ng general
        !           160: newsgroup with a long expiration date.
        !           161: You can use
        !           162: .i inews (1)
        !           163: or
        !           164: .i postnews (1)
        !           165: to do this.
        !           166: .lp (i)
        !           167: It will probably be necessary to fix your uucp commands
        !           168: to allow
        !           169: .i rnews
        !           170: and to support the
        !           171: .op \-z
        !           172: and
        !           173: .op \-n
        !           174: options (if you are lucky enought to have the source).
        !           175: .hn
        !           176: Installation
        !           177: .hn 2
        !           178: Configuration
        !           179: .pg
        !           180: Local configuration of the USENET
        !           181: version B software requires you to edit a few files.
        !           182: Most importantly,
        !           183: the
        !           184: .i defs.h
        !           185: and
        !           186: .i Makefile
        !           187: files must be created from their templates
        !           188: .i defs.dist
        !           189: and
        !           190: .i Makefile.dst .
        !           191: You should create a shell script called
        !           192: .i localize.sh
        !           193: which copies the files and makes local changes to the copies.
        !           194: Even for a completely vanilla site,
        !           195: some changes will be necessary.
        !           196: For example,
        !           197: your script should start with
        !           198: .i localize.v7
        !           199: or
        !           200: .i localize.usg .
        !           201: You should include the name of the local organization
        !           202: .b MYORG ) (
        !           203: and the uid of the local news super user
        !           204: .b ROOTID ). (
        !           205: You should also choose how your hostname will be determined.
        !           206: If you are a USG site,
        !           207: define
        !           208: .b UNAME
        !           209: in
        !           210: .i defs.h .
        !           211: If you are
        !           212: running 4.[23] BSD,
        !           213: define
        !           214: .b GHNAME
        !           215: in
        !           216: .i defs.h .
        !           217: If you have your UUCP name in a file,
        !           218: define
        !           219: .b UUNAME
        !           220: in
        !           221: .i defs.h 
        !           222: to the name of that file.
        !           223: Otherwise,
        !           224: news will look in the file
        !           225: .i /usr/include/whoami.h
        !           226: for a line of the form
        !           227: .sd c
        !           228: #define sysname your-sysname
        !           229: .ed
        !           230: .pg
        !           231: If you are running System 3 or System 5,
        !           232: you are a USG site.
        !           233: Otherwise,
        !           234: unless you are in AT&T,
        !           235: you are probably a V7 site.
        !           236: The previously mentioned defines are the only modifications that are
        !           237: .i necessary
        !           238: to install news at your site.
        !           239: However,
        !           240: you will probably want to change some of the ones listed below.
        !           241: If your compiler does not accept \*(lq(void)\*(rq,
        !           242: the simplest thing to do is add \*(lq\-Dvoid=int\*(rq to the
        !           243: .b CFLAGS
        !           244: line in the
        !           245: .i Makefile .
        !           246: .pg
        !           247: A sample localize shell script can be found in
        !           248: .i localize.sample .
        !           249: The most important parameters are:
        !           250: .hn 3
        !           251: ROOTID
        !           252: .pg
        !           253: The numerical uid of the person who is the news super user.
        !           254: This should not be set to 0.
        !           255: Normally it is set to the uid of the news contact person for the site.
        !           256: If it is not defined,
        !           257: the uid of
        !           258: .b NOTIFY
        !           259: will be looked up in
        !           260: .i /etc/passwd
        !           261: and used instead.
        !           262: .hn 3
        !           263: N_UMASK
        !           264: .pg
        !           265: Mask for
        !           266: .i umask (2)
        !           267: system call.
        !           268: Set it to something like 022 for a secure system.
        !           269: Unsecure systems might want 002 or 000.
        !           270: This mask controls the mode of news files created by the software.
        !           271: Insecure modes would allow people to edit the files directly.
        !           272: .hn 3
        !           273: DFLTEXP
        !           274: .pg
        !           275: The default number of seconds after which an article will expire.
        !           276: Two weeks (1,209,600 seconds) is the default choice.
        !           277: If you wish to expire articles faster than two weeks,
        !           278: it is recommended that you use the
        !           279: .op \-e
        !           280: flag to expire instead of decreasing
        !           281: .b DFLTEXP .
        !           282: .hn 3
        !           283: HISTEXP
        !           284: .pg
        !           285: Articles which were posted more than
        !           286: .b HISTEXP
        !           287: ago are considered too old and are moved into the
        !           288: .ng junk
        !           289: directory.
        !           290: This is because they are too old to be in the history file,
        !           291: so it is impossible to tell if they really should be accepted
        !           292: or are endlessly looping around the network.
        !           293: (This was theoretically possible before this feature was added.)
        !           294: The articles are removed after
        !           295: .b DFLTEXP
        !           296: seconds,
        !           297: but a copy of their
        !           298: .hf Message-ID
        !           299: is kept in the history file for
        !           300: .b HISTEXP
        !           301: seconds (the default is 4 weeks).
        !           302: If you are a
        !           303: .i leaf
        !           304: node, you do not need to have 
        !           305: .b HISTEXP
        !           306: longer than 
        !           307: .b DFLTEXP .
        !           308: However, major nodes with more than one news feed should have 
        !           309: .b HISTEXP
        !           310: set to the default 4 weeks if possible.
        !           311: 
        !           312: .hn 3
        !           313: DFLTSUB
        !           314: .pg
        !           315: The default subscription list.
        !           316: If a user does not specify any list of newsgroups,
        !           317: this will be used.
        !           318: Popular choices are
        !           319: .ng all
        !           320: and
        !           321: .ng general\f1,\fPall.general .
        !           322: .hn 3
        !           323: TMAIL
        !           324: .pg
        !           325: This is the version of the Berkeley
        !           326: .i Mail (1)
        !           327: program that has the
        !           328: .op \-T
        !           329: option.
        !           330: If left undefined,
        !           331: the
        !           332: .op \-M
        !           333: option to
        !           334: .i readnews (1)
        !           335: will be disabled.
        !           336: .hn 3
        !           337: ADMSUB
        !           338: .pg
        !           339: This newsgroup (or newsgroup list) will always be selected
        !           340: unless the user specifies a newsgroup list that doesn't include
        !           341: .b ADMSUB
        !           342: on the command line.
        !           343: That is,
        !           344: as long as the user doesn't use the
        !           345: .op \-n
        !           346: flag to
        !           347: .i readnews
        !           348: on the command line,
        !           349: .b ADMSUB
        !           350: will always be selected.
        !           351: This is usually set to
        !           352: .ng general,all.announce .
        !           353: (The intent of this parameter is to have certain newsgroups
        !           354: which users are required to subscribe to.
        !           355: A typical site might require
        !           356: .op general .)
        !           357: .hn 3
        !           358: PAGE
        !           359: .pg
        !           360: The default program to which articles should be piped for paging.
        !           361: This can be disabled or changed by the environment variable
        !           362: .b PAGER .
        !           363: If you have it,
        !           364: the Berkeley
        !           365: .i more (1)
        !           366: command should be used,
        !           367: since the
        !           368: .op +
        !           369: option allows the headers to be skipped.
        !           370: .hn 3
        !           371: NOTIFY
        !           372: .pg
        !           373: If defined,
        !           374: this character string will be used as a user name to send mail
        !           375: to in the event of certain control messages of interest.
        !           376: (Currently these are
        !           377: .b newgroup ,
        !           378: .b rmgroup ,
        !           379: .b sendsys ,
        !           380: .b checkgroups ,
        !           381: and
        !           382: .b senduuname .)
        !           383: As distributed,
        !           384: mail will be sent to user
        !           385: .i usenet .
        !           386: It is recommended you create such a mailbox
        !           387: (have it forwarded to yourself) if possible,
        !           388: since this makes it easier for another site
        !           389: to contact the site administrator for your site.
        !           390: If you are unable to do this
        !           391: .i e\f1.\fPg ., (
        !           392: you are not the super user)
        !           393: you should change this name to yourself.
        !           394: Also,
        !           395: messages about missing or extra newsgroups are mailed to this user
        !           396: by the
        !           397: .b checkgroups
        !           398: control message.
        !           399: .hn 3
        !           400: DFTXMIT
        !           401: .pg
        !           402: This is the default command to use to transmit news
        !           403: if no explicit command is given in the fourth field of the
        !           404: .i sys
        !           405: file.
        !           406: It normally includes
        !           407: .i uux (1)
        !           408: with the
        !           409: .op \-z
        !           410: option.
        !           411: You should install this modification to UUCP at once;
        !           412: otherwise your users will be bombarded with annoying
        !           413: .i uux
        !           414: completion messages.
        !           415: However,
        !           416: you can turn this off to get news installed.
        !           417: .hn 3
        !           418: UXMIT
        !           419: .pg
        !           420: This is the default command used if the
        !           421: .b U
        !           422: flag is present in the flags portion of a
        !           423: .i sys
        !           424: file line.
        !           425: In this case,
        !           426: the second \*(lq%s\*(rq refers to the name of a file in the news spool area,
        !           427: not a temporary file.
        !           428: It can usually only be used
        !           429: when local modifications are made to the uucp system,
        !           430: such as the
        !           431: .op \-c
        !           432: option to
        !           433: .i uux .
        !           434: .hn 3
        !           435: DFTEDITOR
        !           436: .pg
        !           437: This is the full path name of the default editor to use
        !           438: during followups and replies.
        !           439: It should be set to the most popular text editor on your system.
        !           440: As distributed,
        !           441: .i vi (1)
        !           442: is used.
        !           443: .hn 3
        !           444: UUPROG
        !           445: .pg
        !           446: If this is defined,
        !           447: it will be used as a command to run when the
        !           448: .b senduuname
        !           449: control message is sent around.
        !           450: Otherwise the command
        !           451: .i uuname (1)
        !           452: will be run.
        !           453: Normally,
        !           454: this program should be placed in
        !           455: .b LIBDIR .
        !           456: .hn 3
        !           457: MANUALLY
        !           458: .pg
        !           459: If this is defined,
        !           460: incoming
        !           461: .b rmgroup
        !           462: messages will not automatically remove the group.
        !           463: News will instead mail a message to
        !           464: .b NOTIFY
        !           465: advising that the group should be removed.
        !           466: If you define
        !           467: .b MANUALLY ,
        !           468: you should have
        !           469: .b NOTIFY
        !           470: defined.
        !           471: .b MANUALLY
        !           472: is defined by default to protect you against
        !           473: accidental or malicious removal of an important newsgroup.
        !           474: .hn 3
        !           475: NONEWGROUPS
        !           476: .pg
        !           477: If this is defined, incoming
        !           478: .b newgroup
        !           479: messages will not automatically create the group.
        !           480: News will instead mail a message to
        !           481: .b NOTIFY
        !           482: advising that the group should be created.
        !           483: If you define
        !           484: .b NONEWGROUPS ,
        !           485: you should have
        !           486: .b NOTIFY
        !           487: defined.
        !           488: .b NONEWGROUPS
        !           489: is undefined by default to make it easier to automatically maintain the
        !           490: news system.
        !           491: .hn 3
        !           492: BATCH
        !           493: .pg
        !           494: If set,
        !           495: this is the name of a program that will be used to unpack
        !           496: batched articles (those beginning with the character \*(lq#\*(rq).
        !           497: Batched articles normally are files reading
        !           498: .sd c
        !           499: #! rnews 1234
        !           500: article containing 1234 characters
        !           501: #! rnews 4321
        !           502: article containing 4321 characters
        !           503: \\&. . .
        !           504: .ed
        !           505: Batching is
        !           506: .i strongly
        !           507: recommended for increased efficiency on both sides.
        !           508: .hn 3
        !           509: SPOOLNEWS
        !           510: .pg
        !           511: If this is defined, all incoming news
        !           512: .i inews "" (
        !           513: or
        !           514: .i rnews )
        !           515: will be placed in the directory
        !           516: .b SPOOLDIR \f2/.rnews\fP
        !           517: for later processing by
        !           518: .i "rnews \-U" .
        !           519: This is useful when you want to appear to accept incoming news
        !           520: as soon as it arrives (to get it out of the
        !           521: .i uuxqt
        !           522: queue for example), but want to defer the actual processing until
        !           523: later. If you define this option, make sure you invoke
        !           524: .i "rnews \-U"
        !           525: from 
        !           526: .i crontab
        !           527: regularly or you may wonder where your news is going!
        !           528: .hn 3
        !           529: LOCALNAME
        !           530: .pg
        !           531: Most systems have a full name database on line somewhere,
        !           532: showing for each user what their full name is.
        !           533: Most often this is in the gecos field of
        !           534: .i /etc/passwd .
        !           535: If your system has such a database,
        !           536: .b LOCALNAME
        !           537: should be left undefined.
        !           538: If not,
        !           539: define
        !           540: .b LOCALNAME ,
        !           541: and articles posted will only receive full names from local user information
        !           542: specified in
        !           543: .i NAME
        !           544: or
        !           545: .bi $HOME \f2/.name\fP
        !           546: by the user.
        !           547: If you have a nonstandard gcos format
        !           548: (not
        !           549: .i finger (1)
        !           550: or RJE)
        !           551: it will be necessary to make local changes to
        !           552: .i fullname.c
        !           553: as appropriate on your system.
        !           554: .hn 3
        !           555: INTERNET
        !           556: .pg
        !           557: If this is defined, replies will use the
        !           558: .hf "From"
        !           559: or
        !           560: .hf "Reply-To"
        !           561: headers of the news article.
        !           562: Otherwise,
        !           563: leave it disabled and replies will use the
        !           564: .hf "Path"
        !           565: header.
        !           566: .pg
        !           567: You can define this option even if your site does not understand
        !           568: internet style headers. The file
        !           569: .b LIBDIR \f2/mailpaths\fP
        !           570: contains a line beginning with \*(lqinternet\*(rq.
        !           571: The rest of this line is a string for printf to use to route your
        !           572: mail to a site that does understand internet style headers. If your site
        !           573: understands internet style headers, this string would just be \*(lq%s\*(rq.
        !           574: If not, it might look like \*(lqseismo!%s\*(rq if
        !           575: .i seismo
        !           576: was your nearest site that understands that format.
        !           577: .hn 3
        !           578: MYDOMAIN
        !           579: .pg
        !           580: When generating internet addresses,
        !           581: this domain will be appended to the local site name
        !           582: to form mailing address domains.
        !           583: For example,
        !           584: on system
        !           585: .cn ucbvax
        !           586: with user
        !           587: .i root ,
        !           588: if
        !           589: .b MYDOMAIN
        !           590: is set to
        !           591: .cf .UUCP ,
        !           592: addresses generated will read
        !           593: .cf [email protected] .
        !           594: If
        !           595: .b MYDOMAIN
        !           596: is
        !           597: .cf .Berkeley.EDU ,
        !           598: the address would be
        !           599: .cf [email protected] .
        !           600: If your site is in more than one domain,
        !           601: use your primary domain.
        !           602: The domain always begins with a period. If your site name contains the
        !           603: domain, everything after the first \*(lq.\*(rq will be stipped off to
        !           604: get the news host name, so you still must define your domain name with 
        !           605: .b MYDOMAIN .
        !           606: .hn 3
        !           607: CHEAP
        !           608: .pg
        !           609: Do not
        !           610: .i chown (1)
        !           611: spool files to
        !           612: .i news .
        !           613: This will cause the owner of the file to be the person that started
        !           614: the
        !           615: .i inews
        !           616: process.
        !           617: This is used for obscure accounting reasons on some systems.
        !           618: .hn 3
        !           619: OLD
        !           620: .pg
        !           621: Define this if any of your USENET neighbors run
        !           622: 2.9 or earlier versions of B news.
        !           623: It will cause all headers written to contain two extra lines,
        !           624: .hf Article-I.D.
        !           625: and
        !           626: .hf Posted ,
        !           627: for downward compatibility.
        !           628: Once all your neighbors have converted,
        !           629: you can save disk space and transmission costs by turning this off.
        !           630: It is strongly encouraged that they convert.
        !           631: 2.11 is
        !           632: .i much
        !           633: faster than 2.9.
        !           634: The performance difference is dramatic.
        !           635: .hn 3
        !           636: UNAME
        !           637: .pg
        !           638: Define this if the
        !           639: .i uname (2)
        !           640: system call is available locally,
        !           641: even though you are not a USG system.
        !           642: USG systems always have
        !           643: .i uname (2)
        !           644: available and ignore this setting.
        !           645: .hn 3
        !           646: GHNAME
        !           647: .pg
        !           648: Define this if the 4.[23] BSD
        !           649: .i gethostname (2)
        !           650: system call is available.
        !           651: If neither
        !           652: .b UNAME
        !           653: or
        !           654: .b GHNAME
        !           655: is defined,
        !           656: .i inews
        !           657: will determine the name of the local system by reading
        !           658: .i /usr/include/whoami.h .
        !           659: .hn 3
        !           660: UUNAME
        !           661: .pg
        !           662: Define this to be the name of the file in which you store
        !           663: your UUCP name. (If you store your UUCP name in a file.)
        !           664: .hn 3
        !           665: V7MAIL
        !           666: .pg
        !           667: Define this if your system uses V7 mail conventions.
        !           668: The V7 mail convention is that
        !           669: a mailbox contains several messages concatenated,
        !           670: each message beginning with a line reading
        !           671: .hf "From \f2user date\fP"
        !           672: and ending in a blank line.
        !           673: If this is defined,
        !           674: articles saved will have these lines added
        !           675: so that mail can be used to look at saved news.
        !           676: .hn 3
        !           677: SORTACTIVE
        !           678: .pg
        !           679: Define this if you want the news groups presented in the order of each person's
        !           680: .i .newsrc (5)
        !           681: instead of the 
        !           682: .b active
        !           683: file.
        !           684: .hn 3
        !           685: ZAPNOTES
        !           686: .pg
        !           687: Define this if you want old style notesfile id's in the body of the article
        !           688: to be converted into
        !           689: .hf Nf-ID
        !           690: fields in the header and \*(lqOrphaned Responses\*(rq to be rejected.
        !           691: .hn 3
        !           692: DIGPAGE
        !           693: .pg
        !           694: If this is defined,
        !           695: .i vnews (1)
        !           696: will attempt to process the subarticles
        !           697: of a digest instead of treating the article as one big file.
        !           698: .hn 3
        !           699: DOXREFS
        !           700: .pg
        !           701: Define this if you are using
        !           702: .i rn (1).
        !           703: .i Rn
        !           704: uses this option to keep from showing the same article twice.
        !           705: .hn 3
        !           706: MULTICAST
        !           707: .pg
        !           708: If your transport mechanism supports multi-casting of messages,
        !           709: define this.
        !           710: Currently ACSNET is the only network that can handle this.
        !           711: .hn 3
        !           712: BSD4_2
        !           713: .pg
        !           714: Define this if you are running 4.2 or 4.3 BSD
        !           715: .ux .
        !           716: .hn 3
        !           717: BSD4_1C
        !           718: .pg
        !           719: Define this if you are running 4.1C BSD
        !           720: .ux .
        !           721: .hn 3
        !           722: LOCKF
        !           723: .pg
        !           724: Define this if your system supports the 
        !           725: .i lockf ()
        !           726: system call as defined in the 
        !           727: .i "System V Interface Definition" .
        !           728: Be warned, many System V 
        !           729: .ux
        !           730: systems do not comply with the 
        !           731: .i SVID .
        !           732: .pg
        !           733: .hn 3
        !           734: ALWAYSALIAS
        !           735: .pg
        !           736: Normally, the
        !           737: .b LIBDIR \f2/aliases\fP
        !           738: file is processed only for newsgroups that are not found in the 
        !           739: .b LIBDIR \f2/active\fP
        !           740: file. If this is defined, the 
        !           741: .b LIBDIR \f2/aliases\fP
        !           742: will  be checked for 
        !           743: .b ALL
        !           744: newsgroups. This is useful for a transition period when massive
        !           745: newsgroup renaming is occurring, but should normally be undefined as
        !           746: it is computationally expensive.
        !           747: .hn 3
        !           748: SENDMAIL
        !           749: .pg
        !           750: Use this program instead of
        !           751: .i recmail (8)
        !           752: for sending mail.
        !           753: .hn 3
        !           754: MMDF
        !           755: .pg
        !           756: Use MMDF instead of
        !           757: .i recmail
        !           758: for sending mail.
        !           759: .hn 3
        !           760: MYORG
        !           761: .pg
        !           762: This should be set to the name of your organization.
        !           763: Please keep the name short,
        !           764: because it will be printed,
        !           765: along with the electronic address and full name of the author of each message.
        !           766: Forty characters is probably a good upper bound on the length.
        !           767: If the city and state or country of your organization are not obvious,
        !           768: please try to include them.
        !           769: If the organization name begins with a \*(lq/\*(rq,
        !           770: it will be taken as the name of a file.
        !           771: The first line in that file will be used as the organization.
        !           772: This permits the same binary to be used on many different machines.
        !           773: A good file name would be
        !           774: .b LIBDIR \f2/organization\fP.
        !           775: For example,
        !           776: an organization might read
        !           777: .cf "AT&T Bell Labs, Murray Hill" ,
        !           778: .cf "U.C. Berkeley" ,
        !           779: .cf MIT ,
        !           780: or
        !           781: .cf "Computer Corp. of America, Cambridge, Mass" .
        !           782: .pg
        !           783: .hn 3
        !           784: HIDDENNET
        !           785: .pg
        !           786: If you want all your news to look like it came from a single machine
        !           787: instead of from every machine on your local network,
        !           788: define
        !           789: .b HIDDENNET
        !           790: to be the name of the machine you wish to pretend to be.
        !           791: Make sure that you have you own machine defined as
        !           792: .cn ME
        !           793: in the sysfile
        !           794: or you may get some unnecessary article retransmission.
        !           795: .hn 3
        !           796: NICENESS
        !           797: .pg
        !           798: If
        !           799: .b NICENESS
        !           800: is defined,
        !           801: .i rnews
        !           802: does a
        !           803: .i nice (2)
        !           804: to priority
        !           805: .b NICENESS
        !           806: before processing news.
        !           807: .hn 3
        !           808: FASCIST
        !           809: .pg
        !           810: If this is defined,
        !           811: .i inews
        !           812: checks to see if the posting user is allowed to
        !           813: post to the given newsgroup.  If the username is not in the file
        !           814: .b LIBDIR \f2/authorized\fP
        !           815: then the default newsgroup pattern in the symbol
        !           816: .b FASCIST
        !           817: is used.
        !           818: .pg
        !           819: The format of the file
        !           820: .i authorized
        !           821: is:
        !           822: .br
        !           823: .si
        !           824: .sd
        !           825: user:allowed groups  
        !           826: .ed
        !           827: .ei
        !           828: .br
        !           829: For example:
        !           830: .si
        !           831: .sd
        !           832: root:all.all,all
        !           833: naughty_person:junk,talk.politics.misc
        !           834: operator:!all.all,general,test,comp.unix.questions
        !           835: .ed
        !           836: .ei
        !           837: .pg
        !           838: An open environment could have
        !           839: .b FASCIST
        !           840: set to
        !           841: .ng all
        !           842: and then individual entries could be made in the authorized file
        !           843: to prevent certain individuals from posting to such a wide
        !           844: area.
        !           845: .pg
        !           846: Note that a distribution of
        !           847: .ng all
        !           848: does
        !           849: .i not
        !           850: mean to allow postings
        !           851: only to local groups \-
        !           852: .ng all
        !           853: includes
        !           854: .ng all.all .  
        !           855: Use
        !           856: .ng all\f1,!\fPall.all
        !           857: to get that behavior
        !           858: .hn 3
        !           859: SMALL_ADDRESS_SPACE
        !           860: .pg
        !           861: Define this if your machine has 16 bit (or smaller) pointers.
        !           862: If you are on a
        !           863: .pd ,
        !           864: this is automatically defined.
        !           865: .hn 3
        !           866: ORGDISTRIB
        !           867: .pg
        !           868: This can be defined to be the name of the distribution that is \*(lqlocal\*(rq
        !           869: to your organization. If a control message arrives with 
        !           870: .b ORGDISTRIB
        !           871: as the distribution, it is believed and acted upon. This is useful
        !           872: for organizations with one \*(lqmain\*(rq news machine and several
        !           873: subordinate ones. All machines in that organization could define
        !           874: .b NONEWGROUPS ,
        !           875: .b MANUALLY
        !           876: and also
        !           877: .b ORGDISTRIB .
        !           878: Then, when a control message arrives at the main machine, it would
        !           879: be mailed to 
        !           880: .b NOTIFY .
        !           881: If that person determined that it was a legitimate message, they could
        !           882: resubmit the message to their local machine with a distribution of
        !           883: .b ORGDISTRIB .
        !           884: They would not have to submit this message to the other machines, as they
        !           885: would believe it because of the distribution. They would reject
        !           886: the control message if it had any other distribution.
        !           887: .hn 2
        !           888: Makefile
        !           889: .pg
        !           890: There are also a few parameters in the
        !           891: .i Makefile
        !           892: as well.
        !           893: These are:
        !           894: .hn 3
        !           895: OSTYPE
        !           896: .pg
        !           897: This is the type of
        !           898: .ux
        !           899: system you are using.
        !           900: It should be either
        !           901: .b V7
        !           902: or
        !           903: .b USG .
        !           904: Any BSD system is V7. Any System 3 or System 5 system is USG.
        !           905: This is normally set by
        !           906: .i localize.sh .
        !           907: .hn 3
        !           908: NEWSUSR
        !           909: .pg
        !           910: This is the owner (user name) of
        !           911: .i inews .
        !           912: If you are a superuser,
        !           913: you should probably create a new user id (traditionally
        !           914: .i news )
        !           915: and use this id.
        !           916: If you are not a superuser,
        !           917: you can use your own user id.
        !           918: If you are able to,
        !           919: you should create a mail alias
        !           920: .i usenet
        !           921: and have mail to this alias forwarded to you.
        !           922: This will make it easier for other sites to find the right person
        !           923: in the presence of changing jobs and out of date or nonexistent directory pages.
        !           924: .b NEWSUSR
        !           925: and
        !           926: .b ROOTID
        !           927: do not need to represent the same user.
        !           928: .hn 3
        !           929: NEWSGRP
        !           930: .pg
        !           931: This is the group (name) to which
        !           932: .i inews
        !           933: belongs.
        !           934: The same considerations as
        !           935: .b NEWSUSR
        !           936: apply.
        !           937: .hn 3
        !           938: SPOOLDIR
        !           939: .pg
        !           940: This directory contains subdirectories in which news articles will be stored.
        !           941: It is normally
        !           942: .i /usr/spool/news .
        !           943: .pg
        !           944: For each newsgroup (\f2e.g.\fP
        !           945: .ng comp.unix )
        !           946: there will be a subdirectory
        !           947: .i /usr/spool/news/comp/unix
        !           948: containing articles,
        !           949: whose file names are sequential numbers,
        !           950: .i e\f1.\fPg .,
        !           951: .i /usr/spool/news/comp/unix/1 ,
        !           952: etc.
        !           953: .pg
        !           954: Each article file is in a mail-compatible format.
        !           955: It begins with a number of header lines,
        !           956: followed by a blank line,
        !           957: followed by the body of the article.
        !           958: The format has deliberately been chosen to be compatible
        !           959: with the ARPANET standard for mail documented in RFC 822.
        !           960: .pg
        !           961: You should place news in an area of the disk with enough free space
        !           962: to hold the news you intend to keep on line.
        !           963: The total volume of news in the network wide groups
        !           964: currently runs about 1 Mbyte per day.
        !           965: If you expire news after the default 2 weeks,
        !           966: you will need about 14 Mbytes of disk space
        !           967: (plus some extra as a safety margin and
        !           968: to allow for increased traffic in the future).
        !           969: If you only receive some of the newsgroups,
        !           970: or expire news after a different interval,
        !           971: these figures can be adjusted accordingly.
        !           972: .hn 3
        !           973: BATCHDIR
        !           974: .pg
        !           975: This directory will contain the list of articles to send to each system.
        !           976: It is normally
        !           977: .i /usr/spool/batch .
        !           978: .hn 3
        !           979: LIBDIR
        !           980: .pg
        !           981: This directory will contain various system files.
        !           982: It is normally
        !           983: .i /usr/lib/news .
        !           984: .hn 3
        !           985: BINDIR
        !           986: .pg
        !           987: This is the directory in which
        !           988: .i readnews ,
        !           989: .i postnews ,
        !           990: .i vnews ,
        !           991: and
        !           992: .i checknews (1)
        !           993: are to be installed.
        !           994: This is normally
        !           995: .i /usr/bin .
        !           996: If you decide to set
        !           997: .b BINDIR
        !           998: to a local binary directory,
        !           999: you should consider that the
        !          1000: .i rnews
        !          1001: command must be in a directory that can be found by
        !          1002: .i uuxqt ,
        !          1003: which normally only searches
        !          1004: .i /bin
        !          1005: and
        !          1006: .i /usr/bin .
        !          1007: .hn 3
        !          1008: UUXFLAGS
        !          1009: .pg
        !          1010: These are the flags with which
        !          1011: .i uux
        !          1012: will be called.
        !          1013: .hn 3
        !          1014: LNRNEWS
        !          1015: .pg
        !          1016: This is the program used to link
        !          1017: .i rnews
        !          1018: and
        !          1019: .i inews .
        !          1020: If you have symbolic links,
        !          1021: you can replace the \*(lqln\*(rq with \*(lqln \-s\*(rq.
        !          1022: .hn 3
        !          1023: SCCSID
        !          1024: .pg
        !          1025: If this is defined, sccs ids will be included in each file. If you
        !          1026: are short on address space, don't define this.
        !          1027: .hn
        !          1028: FILES
        !          1029: .pg
        !          1030: This section lists the files in
        !          1031: .b LIBDIR
        !          1032: and comments briefly what they do.
        !          1033: .hn 2
        !          1034: active
        !          1035: .pg
        !          1036: This is a list of active newsgroups.
        !          1037: It is automatically updated as new newsgroups come in.
        !          1038: The order here is the order news is initially presented by
        !          1039: .i readnews ,
        !          1040: so you can edit this file to put important newsgroups first.
        !          1041: If you have
        !          1042: .b SORTACTIVE
        !          1043: defined,
        !          1044: after the first time the user invokes
        !          1045: .i readnews ,
        !          1046: it will be presented in the order of the user's
        !          1047: .i .newsrc .
        !          1048: Each line of the active file contains four fields,
        !          1049: separated by a space:
        !          1050: the newsgroup name,
        !          1051: the highest local article number
        !          1052: (for the most recently received article),
        !          1053: the lowest local article number that has not yet expired,
        !          1054: and a single character used to determine if the user can post to that newsgroup.
        !          1055: If the character is
        !          1056: \&\*(lqy\*(rq
        !          1057: the user is permitted to post articles to that group.
        !          1058: If the character is
        !          1059: \&\*(lqn\*(rq
        !          1060: the user is not permitted to post articles to that group.
        !          1061: If the character is
        !          1062: \&\*(lqm\*(rq
        !          1063: the newsgroup is moderated and may not be posted to directly. Instead,
        !          1064: articles posted to that newsgroup are automatically mailed to the moderator
        !          1065: of that group.
        !          1066: (This field takes the place of the
        !          1067: .i ngfile
        !          1068: in earlier versions of news.)
        !          1069: Local article numbers begin at 1 and count sequentially
        !          1070: within the newsgroup as articles are received.
        !          1071: They do not usually correspond to local article numbers on other sites.
        !          1072: The article numbers are always stored as a five digit number
        !          1073: (with leading zeros) to allow updating of the file in place.
        !          1074: .pg
        !          1075: The active file should contain
        !          1076: .ng all
        !          1077: active world wide newsgroups.
        !          1078: You should use the
        !          1079: .i sys
        !          1080: file to keep out unwanted newsgroups.
        !          1081: .hn 2
        !          1082: aliases
        !          1083: .pg
        !          1084: This file is used to map bad newsgroup names to the correct ones.
        !          1085: (For example,
        !          1086: .ng rec.jokes
        !          1087: is mapped into
        !          1088: .ng rec.humor ).
        !          1089: Each line consists of two fields separated by white space.
        !          1090: If the first field is found in the newsgroup list of the incoming article,
        !          1091: it is changed to the second field.
        !          1092: This change takes place in the article
        !          1093: before it is passed on to other systems,
        !          1094: not just locally.
        !          1095: .hn 2
        !          1096: batch
        !          1097: .pg
        !          1098: This program reads a list of filenames of articles
        !          1099: and outputs the articles themselves.
        !          1100: It is typically used by the shell script 
        !          1101: .i sendbatch .
        !          1102: .hn 2
        !          1103: caesar
        !          1104: .pg
        !          1105: This is a program to do Caesar decoding of rotated text,
        !          1106: on a line by line basis.
        !          1107: The standard input is copied to the standard output,
        !          1108: rotating each line according to a static single letter frequency table.
        !          1109: If an integer argument is given
        !          1110: .i e\f1.\fPg ., (
        !          1111: 13),
        !          1112: every line is rotated by that argument,
        !          1113: without regard to letter frequencies.
        !          1114: This program is invoked by the
        !          1115: .qp D
        !          1116: .i readnews
        !          1117: command.
        !          1118: It is also used by
        !          1119: .i postnews
        !          1120: with the \*(lq13\*(rq argument to encode selected material for posting.
        !          1121: .hn 2
        !          1122: checkgroups
        !          1123: .pg
        !          1124: .i Checkgroups
        !          1125: is a shell file to aid in automatically checking
        !          1126: the accuracy of your active file.
        !          1127: It is executed by the
        !          1128: .b checkgroups
        !          1129: control message and mails a list of out of date newsgroups
        !          1130: to the person defined by
        !          1131: .b NOTIFY .
        !          1132: It also updates the
        !          1133: .i newsgroups
        !          1134: file that is used by
        !          1135: .i postnews
        !          1136: as a helpfile for newsgroup selection.
        !          1137: .hn 2
        !          1138: compress
        !          1139: .pg
        !          1140: This program does a modified Lempel-Ziv data compression. It is used by the
        !          1141: compressed batching scheme.
        !          1142: It averages 50% compression on a typical batch of news.
        !          1143: .hn 2
        !          1144: distributions
        !          1145: .pg
        !          1146: This is a list of distributions that are valid for your site.
        !          1147: Each line has two fields separated by the first space on the line.
        !          1148: The first field is the name of the distribution
        !          1149: .i e\f1.\fPg ., (
        !          1150: .ng usa ,
        !          1151: .ng na ,
        !          1152: etc.).
        !          1153: The second field is text describing the distribution.
        !          1154: As distributed,
        !          1155: this file is only correct for sites in the USA.
        !          1156: You should examine this file and add or delete the appropriate distributions.
        !          1157: .hn 2
        !          1158: encode
        !          1159: .pg
        !          1160: This program transforms an 8-bit binary file into a file suitable for
        !          1161: sending over a link that only allows 7-bit characters. It is used
        !          1162: by
        !          1163: .b "sendbatch -c7."
        !          1164: .hn 2
        !          1165: errlog
        !          1166: .pg
        !          1167: This file contains the \*(lqimportant\*(rq error messages found in the log file.
        !          1168: These errors usually indicate that something was wrong with an article.
        !          1169: This file should be watched closely.
        !          1170: The
        !          1171: .i log
        !          1172: file contains much more verbose information
        !          1173: and it is often difficult to detect errors in it.
        !          1174: .hn 2
        !          1175: expire
        !          1176: .pg
        !          1177: This program expires old articles and archives them if archiving is selected.
        !          1178: It is typically run once a day from
        !          1179: .i cron (8).
        !          1180: .hn 2
        !          1181: help
        !          1182: .pg
        !          1183: This contains a list of commands printed when an illegal command is typed to
        !          1184: .i readnews .
        !          1185: .hn 2
        !          1186: history
        !          1187: .pg
        !          1188: A list of every article that has come in to your system.
        !          1189: It is used to reject articles that come in for the second time
        !          1190: (presumably via a different path).
        !          1191: This file will grow but is cleaned out by the
        !          1192: .i expire (8)
        !          1193: command.
        !          1194: .hn 2
        !          1195: history.d
        !          1196: .pg
        !          1197: On USG systems, this directory contains 10 files (history.[0-9]) which are
        !          1198: used as part of a simple hashing algorithm to speed up history searches.
        !          1199: Since V7 systems have DBM, this is not used on V7 systems.
        !          1200: .hn 2
        !          1201: history.dir,history.pag
        !          1202: .pg
        !          1203: These two files are used on V7 systems as a hashed version of
        !          1204: .i history ,
        !          1205: containing the message id's of all articles in history.
        !          1206: They are only used if
        !          1207: .b \-DDBM
        !          1208: and
        !          1209: .b \-ldbm
        !          1210: appear in
        !          1211: .i Makefile .
        !          1212: .hn 2
        !          1213: inews
        !          1214: .pg
        !          1215: This is the program that actually sends and receives news.
        !          1216: All other news submitting programs interface eventually with it.
        !          1217: It is not intended to be used directly by a human,
        !          1218: so it is no longer in
        !          1219: .b BINDIR .
        !          1220: .hn 2
        !          1221: log
        !          1222: .pg
        !          1223: If present,
        !          1224: a log of articles processed and error conditions is kept here.
        !          1225: This file grows without limit unless cleaned out periodically.
        !          1226: The
        !          1227: .i trimlib
        !          1228: script in
        !          1229: .i misc
        !          1230: can be invoked by
        !          1231: .i cron (8)
        !          1232: daily or weekly to keep the log short.
        !          1233: .hn 2
        !          1234: mailpaths
        !          1235: .pg
        !          1236: This file contains the mail paths to a Usenet
        !          1237: .i backbone
        !          1238: site and a site that can handle
        !          1239: .i internet
        !          1240: style mail addresses.
        !          1241: Each line consists of two fields. The first field is either the
        !          1242: keyword
        !          1243: .i backbone
        !          1244: or the keyword
        !          1245: .i internet .
        !          1246: The second field is a string to be used by printf to create a mail
        !          1247: path.  As distributed, they are almost certainly wrong.
        !          1248: You will need to modify the paths so they work from your site.
        !          1249: .pg
        !          1250: As an example, suppose that your site's closest
        !          1251: .i backbone
        !          1252: site was
        !          1253: .i seismo 
        !          1254: and the closest site that understood the
        !          1255: .i internet
        !          1256: mail syntax was
        !          1257: .i decuac .
        !          1258: Your
        !          1259: .i mailpaths
        !          1260: file would look like:
        !          1261: .si
        !          1262: .sd
        !          1263: backbone       seismo!%s
        !          1264: internet\      decuac!%s
        !          1265: .ed
        !          1266: .ei
        !          1267: .pg
        !          1268: The
        !          1269: .i backbone
        !          1270: path is used when posting articles to moderated groups. A mail
        !          1271: alias exists on almost all backbone sites to forward mail to the proper
        !          1272: moderator for the group. The mail aliases should always be up to
        !          1273: date on these sites, so when a group changes moderators, only
        !          1274: the backbone sites need to update any files. The mail alias is
        !          1275: the newsgroups name with \*(lq.\*(rq changed to \*(lq\-\*(rq.
        !          1276: Using the above example
        !          1277: .i mailpaths
        !          1278: file, a submission to comp.sources.unix would be mailed to
        !          1279: seismo!comp-sources-unix, where it would be forwarded to the
        !          1280: current moderator for that group.
        !          1281: .pg
        !          1282: The
        !          1283: .i internet
        !          1284: keyword is used when the
        !          1285: .b INTERNET
        !          1286: option is defined for replying to news articles. A site whose mailer
        !          1287: does not understand
        !          1288: .i internet
        !          1289: syntax can (and should) define
        !          1290: .b INTERNET
        !          1291: so that mailed replies use the
        !          1292: .i From:
        !          1293: line of the article instead of the unreliable
        !          1294: .i Path:
        !          1295: line.
        !          1296: .hn 2
        !          1297: newsgroups
        !          1298: .pg
        !          1299: This file is displayed by
        !          1300: .i postnews
        !          1301: when a user hits
        !          1302: .qp ?
        !          1303: in response to its request for newsgroups.
        !          1304: It is also used by
        !          1305: .i vnews
        !          1306: when it displays the newsgroup name.
        !          1307: It is updated automatically by the
        !          1308: .b checkgroups
        !          1309: control message.
        !          1310: .hn 2
        !          1311: notify
        !          1312: .pg
        !          1313: This file allows a site administrator to
        !          1314: declare which types of control messages they wish to notification on
        !          1315: and which they
        !          1316: don't.  The format is two words separated by white space.  The first word
        !          1317: is the name of the control message type (like
        !          1318: .b checkgroups ).
        !          1319: The second word (if it exists) is the address to mail the notification to.
        !          1320: If the second word does not exist then it is assumed that no mail is desired
        !          1321: from this type of control message.  If the 
        !          1322: .b LIBDIR \f2/notify\fP
        !          1323: file doesn't contain any recognizable control message types or is empty, then
        !          1324: it is assumed that no mail is desired from any type of control message.
        !          1325: .pg
        !          1326: The key word \*(lqall\*(rq may be used to select what address all known control
        !          1327: message types should be sent to.  Since parsing of the file is sequential, the
        !          1328: key word \*(lqall\*(rq could be first in the file and specific declarations
        !          1329: specifying differing addresses could follow which would override any previous 
        !          1330: listing.
        !          1331: This example of
        !          1332: .b LIBDIR \f2/notify\fP
        !          1333: declares that mail will be sent to \*(lqusenet\*(rq
        !          1334: for all control message types except the 
        !          1335: .b sendsys
        !          1336: type.  
        !          1337: .b Sendsys
        !          1338: messages will be sent to \*(lqsecurity\*(rq.
        !          1339: .ta \w'checkgroups   'u
        !          1340: .sd c
        !          1341: # Comments are ok since unrecognized message types are ignored.
        !          1342: all    usenet
        !          1343: sendsys        security
        !          1344: .ed
        !          1345: This example will only send
        !          1346: mail to \*(lqusenet\*(rq for the 
        !          1347: .b checkgroups
        !          1348: type of control message.  All others will not have any mail associated with
        !          1349: them.
        !          1350: .sd c
        !          1351: # Comments are ok since unrecognized message types are ignored.
        !          1352: checkgroups    usenet
        !          1353: .ed
        !          1354: (This overrides the
        !          1355: .b NOTIFY
        !          1356: option in
        !          1357: .i defs.h ).
        !          1358: Having a null file is useful if one person administers several systems
        !          1359: and does not want multiple copies of control message notifications.
        !          1360: .hn 2
        !          1361: oactive, ohistory, ohistory.dir, ohistory.pag
        !          1362: .pg
        !          1363: These are copies of the corresponding
        !          1364: .i active ,
        !          1365: .i history ,
        !          1366: .i history.dir ,
        !          1367: and
        !          1368: .i history.pag
        !          1369: files before
        !          1370: .i expire
        !          1371: ran.
        !          1372: They are kept in case something happens to the originals.
        !          1373: .hn 2
        !          1374: recmail
        !          1375: .pg
        !          1376: This program can serve as a link between news and your local mailer.
        !          1377: If you have
        !          1378: .i sendmail (8),
        !          1379: don't use
        !          1380: .i recmail .
        !          1381: .i Sendmail
        !          1382: is much more useful.
        !          1383: .hn 2
        !          1384: recnews
        !          1385: .pg
        !          1386: A program which allows you to send mail to get news posted.
        !          1387: You usually need to run
        !          1388: .i sendmail
        !          1389: or
        !          1390: .i delivermail (8)
        !          1391: to be able to use this.
        !          1392: .hn 2
        !          1393: recording
        !          1394: .pg
        !          1395: A list of newsgroup classes and filenames to display recordings for.
        !          1396: The recording feature is analogous to the recordings played in some areas
        !          1397: when you dial directory assistance,
        !          1398: trying to be annoying and make you think twice.
        !          1399: Recordings on certain newsgroups are intended to remind the user
        !          1400: of the rules for the newsgroup,
        !          1401: or,
        !          1402: in the case of a company worried about letting proprietary information out,
        !          1403: reminding authors that anything they say is seen outside the company
        !          1404: and so proprietary information should not be included.
        !          1405: .pg
        !          1406: The file contains one line per recording.
        !          1407: The line contains two fields,
        !          1408: separated by a space.
        !          1409: The first field is the newsgroup class
        !          1410: .i e\f1.\fPg ., (
        !          1411: .ng talk.all ),
        !          1412: the second field is the name of the file containing the recorded message.
        !          1413: If the file name does not begin with a slash,
        !          1414: it will be searched for in
        !          1415: .b LIBDIR .
        !          1416: Sample recording files can be found in the
        !          1417: .i misc
        !          1418: directory.
        !          1419: .hn 2
        !          1420: rmgroup
        !          1421: .pg
        !          1422: This shell file should be used to remove any groups that are no longer used.
        !          1423: .hn 2
        !          1424: sendbatch
        !          1425: .pg
        !          1426: This shell file is used to send batched articles to other systems.
        !          1427: It is typically run from
        !          1428: .i cron (8).
        !          1429: See the manual page for more details.
        !          1430: .hn 2
        !          1431: sendnews
        !          1432: .pg
        !          1433: A program to send news internally from one computer to another.
        !          1434: It is useful if you must use mail links to transmit articles.
        !          1435: .hn 2
        !          1436: seq
        !          1437: .pg
        !          1438: This file contains the current sequence number for your system.
        !          1439: It is used to generate unique article id's.
        !          1440: .hn 2
        !          1441: sys
        !          1442: .pg
        !          1443: This file contains a list of all your neighbors,
        !          1444: which newsgroups they get,
        !          1445: and how to send news to them.
        !          1446: The format is documented below.
        !          1447: .hn 2
        !          1448: unbatch
        !          1449: .pg
        !          1450: This program is used to unbatch the incoming batched news
        !          1451: and feed each article to
        !          1452: .i rnews .
        !          1453: It's horrible and will go away in the future.
        !          1454: .hn 2
        !          1455: users
        !          1456: .pg
        !          1457: A list of users that have read news on your system.
        !          1458: .hn 2
        !          1459: uurec
        !          1460: .pg
        !          1461: A program to receive news sent by
        !          1462: .i sendnews (8).
        !          1463: .hn 2
        !          1464: vnews.help
        !          1465: .pg
        !          1466: This is the helpfile used by
        !          1467: .i vnews .
        !          1468: .hn 1
        !          1469: Setting Up Links
        !          1470: .pg
        !          1471: There are two basic types of links for exchanging news:
        !          1472: those that use mail and those that don't.
        !          1473: The ones that use mail are more indirect,
        !          1474: yet more versatile, while the ones that don't are simpler.
        !          1475: The default method does not use mail, so that is discussed first.
        !          1476: .hn 2
        !          1477: Non-mail Links
        !          1478: .pg
        !          1479: The basic theory behind a non-mail link is that the
        !          1480: .i rnews
        !          1481: program is invoked on the remote system
        !          1482: with the article being transmitted as the standard input.
        !          1483: This is possible on several networks,
        !          1484: but the most common implementation is via the UUCP network.
        !          1485: Using the
        !          1486: .i uux
        !          1487: command,
        !          1488: the command which is forked to the shell looks like:
        !          1489: .sd c
        !          1490: uux \- \-r \-z remotesys!rnews < article
        !          1491: .ed
        !          1492: This is the default transmission method.
        !          1493: In order to set up such a link,
        !          1494: obviously a UUCP link with the remote system must be in effect.
        !          1495: In addition,
        !          1496: .i rnews
        !          1497: must be available and executable by
        !          1498: .i uuxqt
        !          1499: on the remote machine.
        !          1500: In most cases,
        !          1501: this means that
        !          1502: .i rnews
        !          1503: must be in
        !          1504: .i /usr/bin
        !          1505: so
        !          1506: .i uux
        !          1507: can find it.
        !          1508: Also,
        !          1509: the list of allowed UUCP commands (in
        !          1510: .i /usr/src/usr.bin/uucp/uuxqt.c
        !          1511: or
        !          1512: .i /usr/lib/uucp/L.cmds ,
        !          1513: depending on the version of UUCP)
        !          1514: should be checked to make sure
        !          1515: that
        !          1516: .i rnews
        !          1517: is an allowed command.
        !          1518: .pg
        !          1519: Other networks that allow remote execution include the BERKNET,
        !          1520: BLICN
        !          1521: .i usend (1)), (
        !          1522: many Ethernets,
        !          1523: and the NSC hyperchannel
        !          1524: .i nusend (1)). (
        !          1525: It is important,
        !          1526: however,
        !          1527: that a spooling mechanism be available.
        !          1528: Otherwise,
        !          1529: if system
        !          1530: .cn A
        !          1531: tries to send an article to system
        !          1532: .cn B
        !          1533: via a remote execution command,
        !          1534: and
        !          1535: .cn B
        !          1536: is down,
        !          1537: the article could be lost.
        !          1538: Spooling arranges that the system will try again when
        !          1539: .cn B
        !          1540: comes back up.
        !          1541: .hn 2
        !          1542: Mail Links
        !          1543: .pg
        !          1544: When using mail to transmit articles,
        !          1545: two intermediary programs are necessary.
        !          1546: These are
        !          1547: .i sendnews
        !          1548: and
        !          1549: .i uurec (8).
        !          1550: The idea is that when system
        !          1551: .cn A
        !          1552: wants to send an article to system
        !          1553: .cn B ,
        !          1554: the
        !          1555: .i sys
        !          1556: file on system
        !          1557: .cn A
        !          1558: has an entry for system
        !          1559: .cn B
        !          1560: such as:
        !          1561: .sd c
        !          1562: \fBLIBDIR\fP/sendnews \-a rnews@B
        !          1563: .ed
        !          1564: which runs
        !          1565: .i sendnews
        !          1566: on the article.
        !          1567: The
        !          1568: .op \-a
        !          1569: option specifies that the mail should be formatted for the ARPANET.
        !          1570: .i Sendnews
        !          1571: packages the article and mails it to
        !          1572: .cf rnews@B .
        !          1573: Somehow,
        !          1574: the B system is expected to make sure that all mail to user
        !          1575: .cf rnews
        !          1576: is fed as input to the program
        !          1577: .i uurec .
        !          1578: This program unpackages it and invokes
        !          1579: .i rnews .
        !          1580: .pg
        !          1581: The best way to get mail to
        !          1582: .cf rnews
        !          1583: fed into
        !          1584: .i uurec
        !          1585: is to use
        !          1586: .i sendmail
        !          1587: or
        !          1588: .i delivermail ,
        !          1589: if you are on a system running them.
        !          1590: Create an alias in
        !          1591: .i /usr/lib/aliases
        !          1592: as follows:
        !          1593: .sd c
        !          1594: rnews: "|\fBLIBDIR\fP/uurec"
        !          1595: .ed
        !          1596: and
        !          1597: .i sendmail
        !          1598: will handle it.
        !          1599: If you do not have a facility for forwarding mail to a program,
        !          1600: you can gimmick your mailer to watch for it
        !          1601: (using
        !          1602: .i popen (3S),
        !          1603: this is easy)
        !          1604: or,
        !          1605: if you don't want to do any programming,
        !          1606: you can have
        !          1607: .i cron (8)
        !          1608: invoke
        !          1609: .i uurec
        !          1610: every hour with
        !          1611: .i /usr/spool/mail/rnews
        !          1612: as standard input.
        !          1613: This solution is messier because
        !          1614: .i uurec
        !          1615: must potentially deal with multiple messages,
        !          1616: something that has never been tested.
        !          1617: .hn 1
        !          1618: Format of the
        !          1619: .bi sys
        !          1620: file
        !          1621: .pg
        !          1622: To set up a link to another site,
        !          1623: edit the
        !          1624: .i sys
        !          1625: file in
        !          1626: .b LIBDIR .
        !          1627: This file is similar to the
        !          1628: .i L.sys
        !          1629: file of UUCP.
        !          1630: Each line contains four fields,
        !          1631: separated by colons:
        !          1632: .Lp (1)
        !          1633: The system name of a site to which you forward news.
        !          1634: Normally all systems you have links to will be
        !          1635: included.
        !          1636: You should also have a line for your own system.
        !          1637: If this field is
        !          1638: .cn ME,
        !          1639: it will be used as if it were your local system name.
        !          1640: If the system name is followed by a \*(lq/\*(rq, the article will not be
        !          1641: forwarded to this system if it has already passed through any of the
        !          1642: (comma separated) list of sites immediately following the \*(lq/\*(rq.
        !          1643: For example, if the sysline was:
        !          1644: .sd c
        !          1645: yoursite/sitea,siteb,sitec:world,comp,sci,news,rec,misc,na,usa,to.yoursite::
        !          1646: .ed
        !          1647: the incoming article would only be forwarded to
        !          1648: .i yoursite
        !          1649: if it had not already been to any of
        !          1650: .i sitea ,
        !          1651: .i siteb ,
        !          1652: or
        !          1653: .i sitec .
        !          1654: This is normally used to reduce the number of duplicate articles received
        !          1655: at a site that has multiple main newsfeeds.
        !          1656: .lp (2)
        !          1657: The newsgroups to be forwarded to that site.
        !          1658: This is a pattern of the same kind as a subscription list.
        !          1659: Generally,
        !          1660: you will list classes of newsgroups,
        !          1661: that is,
        !          1662: using
        !          1663: .ng all
        !          1664: for everything.
        !          1665: A typical forwarding list for a new site would be
        !          1666: .sd c
        !          1667: world,comp,sci,news,rec,misc,soc,talk,na,usa,to.\f2sysname\fP
        !          1668: .ed
        !          1669: where
        !          1670: .i sysname
        !          1671: is the name of the remote system.
        !          1672: (Of course, if you are not in the USA or North America,
        !          1673: you would remove those distributions
        !          1674: and replace them with the ones appropriate for you.)
        !          1675: In particular,
        !          1676: you don't want to forward
        !          1677: .ng all
        !          1678: since local newsgroups
        !          1679: (those without dots)
        !          1680: should not be sent.
        !          1681: For the line describing your own system,
        !          1682: this field describes the newsgroups your site will accept from remote sites.
        !          1683: Thus,
        !          1684: if another site insists on sending you a newsgroup you don't want,
        !          1685: for example
        !          1686: .ng rec.humor ,
        !          1687: include
        !          1688: .ng !rec.humor
        !          1689: here.
        !          1690: .lp (3)
        !          1691: This field contains flags describing the connection.
        !          1692: .Qp A
        !          1693: indicates that the other site is running an A version of netnews.
        !          1694: .Qp B
        !          1695: indicates a B version.
        !          1696: Leaving it empty defaults to
        !          1697: .b B .
        !          1698: If you are reading this document,
        !          1699: you have a B version.
        !          1700: Some existing sites run A versions.
        !          1701: If you aren't sure,
        !          1702: ask your contact at the other site,
        !          1703: with whom you should be talking to set this up anyway.
        !          1704: .Qp F
        !          1705: indicates that the fourth field is the name of a file.
        !          1706: The full path name of a file containing the article in
        !          1707: .b SPOOL
        !          1708: will be appended to this file. If the fourth field is blank, the filename
        !          1709: .b BATCHDIR \f2/sysname\fP,
        !          1710: (where
        !          1711: .i sysname
        !          1712: is specified in the first field) will be used.
        !          1713: .Qp L
        !          1714: prevents transmission unless the article was created on this site.
        !          1715: If a number follows the
        !          1716: .b L
        !          1717: .i e\f1.\fPg ., (
        !          1718: .b L3 ),
        !          1719: sites less than that number of hops away will be considered local.
        !          1720: (It is recommended that you feed an
        !          1721: .b L
        !          1722: link to a backbone site,
        !          1723: to ensure that your submissions will be more likely
        !          1724: to get to the entire network,
        !          1725: even in the event of a local problem.
        !          1726: Please make sure that a mail link exists too,
        !          1727: so you can get replies.)
        !          1728: .Qp H
        !          1729: can be used to interpolate the history file into the command.
        !          1730: .Qp S
        !          1731: says to execute the transmission command directly
        !          1732: instead of forking a shell.
        !          1733: .Qp U
        !          1734: arranges that the parameter to the optional \*(lq%s\*(rq
        !          1735: in the command field to be filled in with a permanent file name from
        !          1736: .b SPOOL
        !          1737: instead of a temporary customized file name.
        !          1738: .Qp M
        !          1739: says to use multi-casting. Multi-casting is described in an appendix.
        !          1740: .Qp I
        !          1741: automatically defines the
        !          1742: .b F
        !          1743: flag. However, it puts the article's 
        !          1744: .i Message-Id
        !          1745: into the file instead of the filename containing the article. This is
        !          1746: used with the 
        !          1747: .i ihave/sendme
        !          1748: control messages.
        !          1749: .Qp m
        !          1750: (lower case
        !          1751: .b m
        !          1752: not upper case
        !          1753: .b M )
        !          1754: modifies the newsgroup pattern match to only return true if it
        !          1755: matches the pattern in the second field AND the group is moderated.
        !          1756: For example, if your
        !          1757: .i sys
        !          1758: file looked like:
        !          1759: .sd c
        !          1760: avax:world,comp,sci:mF:/usr/spool/batch/avax.sendimmediately
        !          1761: avax:world,comp,sci,rec,talk,misc,soc,to.avax:F
        !          1762: .ed
        !          1763: .ei
        !          1764: any moderated articles in the newsgroups
        !          1765: .ng comp
        !          1766: or 
        !          1767: .ng sci
        !          1768: would be placed in the file
        !          1769: .i avax.sendimmediately 
        !          1770: in the 
        !          1771: .b SPOOL
        !          1772: directory.
        !          1773: All other news for that machine would be placed in the file
        !          1774: .i avax .
        !          1775: You could then transmit the articles in
        !          1776: .i avax.sendimmediately
        !          1777: more often than the rest of the news.
        !          1778: .Qp u
        !          1779: works like
        !          1780: .b m
        !          1781: except that it only matches un-moderated newsgroups.
        !          1782: .Qp N
        !          1783: indicates that news should be sent using the ihave/sendme protocol.
        !          1784: It should not really be used anymore as
        !          1785: .b I
        !          1786: is much more efficient.
        !          1787: .lp (4)
        !          1788: This field is the command to be run to send news to the remote site.
        !          1789: The article will be on the standard input.
        !          1790: Leaving this field blank means an ordinary UUCP link is being used,
        !          1791: that is,
        !          1792: the command defaults to
        !          1793: .sd c
        !          1794: uux \- \-r \-z sysname!rnews
        !          1795: .ed
        !          1796: The
        !          1797: .op \-
        !          1798: option tells
        !          1799: .i uux
        !          1800: to expect input from the standard input.
        !          1801: The
        !          1802: .op \-z
        !          1803: option is nonstandard \- you should add it
        !          1804: (see the
        !          1805: .i minus.z
        !          1806: files in the uucp source directory).
        !          1807: It shuts off the annoying message you would otherwise get mailed to you
        !          1808: telling you that your article was broadcast successfully.
        !          1809: To avoid using the
        !          1810: .op \-z
        !          1811: option,
        !          1812: change the source or put the
        !          1813: .i uux
        !          1814: command in the fourth field.
        !          1815: The
        !          1816: .op \-r
        !          1817: option tells
        !          1818: .i uux
        !          1819: not to call the other system once the job is queued.
        !          1820: This turns out to ease the load on the system,
        !          1821: at the expense of making news be transmitted a bit slower.
        !          1822: The news will be sent when the next call is made;
        !          1823: usually this means the next time mail is sent to or from your system.
        !          1824: If this turns out to be unreasonably long,
        !          1825: put a line in
        !          1826: .i crontab
        !          1827: to run
        !          1828: .sd c
        !          1829: /usr/lib/uucp/uucico \-r1 \-s\f1sysname\fP
        !          1830: .ed
        !          1831: every hour or so.
        !          1832: .pg
        !          1833: Here is a sample
        !          1834: .i sys
        !          1835: file for a site
        !          1836: .cn myvax
        !          1837: with connections to
        !          1838: .cn yourvax
        !          1839: where
        !          1840: .cn myvax
        !          1841: also passes news on to
        !          1842: .cn downstream .
        !          1843: We assume that
        !          1844: .cn myvax
        !          1845: and
        !          1846: .cn downstream
        !          1847: exchange a local newsgroup class
        !          1848: .ng lng.all
        !          1849: as well as the network wide newsgroups.
        !          1850: News to
        !          1851: .cn downstream
        !          1852: is batched.
        !          1853: We also assume that
        !          1854: .cn myvax
        !          1855: and
        !          1856: .cn yourvax
        !          1857: are in the USA,
        !          1858: while
        !          1859: .cn downstream
        !          1860: is in Canada.
        !          1861: .sd
        !          1862: myvax:world,comp,sci,rec,news,misc,soc,talk,na,usa,lng,to
        !          1863: yourvax:world,comp,sci,rec,news,misc,soc,talk,na,usa,to.yourvax
        !          1864: downstream:world,comp,sci,rec,news,misc,soc,talk,na,lng,to.downstream:F
        !          1865: .ed
        !          1866: .hn
        !          1867: Posting Methods
        !          1868: .pg
        !          1869: The basic method is
        !          1870: .i postnews .
        !          1871: This program will prompt you for the title,
        !          1872: newsgroups,
        !          1873: and distribution,
        !          1874: then place you in the editor.
        !          1875: (The system default
        !          1876: .b EDITOR
        !          1877: is used unless the environment variable
        !          1878: .b EDITOR
        !          1879: is set,
        !          1880: overriding the system default.)
        !          1881: The text should be typed after the blank line.
        !          1882: The title and newsgroups are available for editing at the top of the buffer.
        !          1883: Other header lines can be added,
        !          1884: such as an expiration date or a distribution.
        !          1885: When you write out the file and exit from the editor,
        !          1886: you will be prompted for what to do next. Your choices are:
        !          1887: .b w rite
        !          1888: the message to a file,
        !          1889: .b s end
        !          1890: the message,
        !          1891: .b l ist
        !          1892: the message or
        !          1893: .b e dit
        !          1894: it again.
        !          1895: .pg
        !          1896: Another method is to use mail.
        !          1897: This can only be done on systems that allow mail to a given name
        !          1898: to be fed into an arbitrary program as input.
        !          1899: This is easily done with the Berkeley
        !          1900: .i delivermail
        !          1901: or
        !          1902: .i sendmail
        !          1903: program,
        !          1904: and not with any other mailer the author is familiar with.
        !          1905: (It may be possible to painfully set this up with MMDF,
        !          1906: provided the newsgroup name is no more than 8 characters long.)
        !          1907: To use mail,
        !          1908: set up an alias such as the following:
        !          1909: .sd c
        !          1910: sci.physics: "|\fBLIBDIR\fP/recnews sci.physics"
        !          1911: .ed
        !          1912: Whenever a user sends mail to
        !          1913: .ng sci.physics ,
        !          1914: this starts up the given shell command which calls
        !          1915: .ng recnews
        !          1916: with one argument,
        !          1917: the name of the newsgroup.
        !          1918: You need to create one alias for each newsgroup,
        !          1919: and to keep the list up to date as new newsgroups are created.
        !          1920: .i Recnews (8)
        !          1921: will in turn invoke
        !          1922: .i inews .
        !          1923: .pg
        !          1924: Note that there are problems with
        !          1925: .i recnews .
        !          1926: There is no way to use it to post to multiple newsgroups
        !          1927: without creating separate articles
        !          1928: (something frowned upon because it forces people
        !          1929: to read the same thing more than once).
        !          1930: Also,
        !          1931: there is no way to make the recording feature
        !          1932: (to remind people to not accidently divulge proprietary information)
        !          1933: work when recnews is used.
        !          1934: .hn
        !          1935: Various considerations
        !          1936: .hn 2
        !          1937: Spooling
        !          1938: .pg
        !          1939: If
        !          1940: .i expire
        !          1941: is already running and
        !          1942: .i inews 
        !          1943: or
        !          1944: .i rnews
        !          1945: is invoked, the incoming article will be saved in
        !          1946: .b SPOOLDIR /\f2.rnews\fP
        !          1947: for later processing by
        !          1948: .i "rnews \-U" .
        !          1949: This is to prevent the incoming article from getting 
        !          1950: \*(lqlost\*(rq and not being in the history file.
        !          1951: .i Expire
        !          1952: automatically runs 
        !          1953: .i "rnews \-U"
        !          1954: when it has finished.
        !          1955: If you have defined
        !          1956: .b SPOOLNEWS ,
        !          1957: you should also invoke
        !          1958: .i "rnews \-U"
        !          1959: from crontab on a regular basis.
        !          1960: .pg
        !          1961: If you are not using some type of \*(lqsystem\*(rq locking (\f2e.g. flock()\fP or
        !          1962: \f2lockf()\fP) you must make sure that the various lock files are
        !          1963: removed when the system is rebooted after a crash. You can put a line
        !          1964: in 
        !          1965: .i /etc/rc
        !          1966: to remove these lock files. The most important one is 
        !          1967: .b LIBDIR \f2/active.lock\fP.
        !          1968: .hn 2
        !          1969: Setuid bits
        !          1970: .pg
        !          1971: The current intended state of affairs is that
        !          1972: .i inews
        !          1973: runs setuid to
        !          1974: .b NEWSUSR .
        !          1975: The
        !          1976: .i readnews
        !          1977: and 
        !          1978: .i vnews
        !          1979: programs do not need to be setuid.
        !          1980: This makes it possible to write your own interface to read news instead of using
        !          1981: .i readnews .
        !          1982: (As distributed,
        !          1983: .i inews
        !          1984: is also setgid.
        !          1985: I know of no good reason for this.)
        !          1986: .hn 2
        !          1987: Modes of Spool Directories
        !          1988: .pg
        !          1989: All the files should be writable by
        !          1990: .b NEWSUSR .
        !          1991: However,
        !          1992: due to a glitch,
        !          1993: you will probably have to make the
        !          1994: .b SPOOLDIR
        !          1995: and its subdirectories mode 777.
        !          1996: It could be 755 except for one problem.
        !          1997: When a new newsgroup comes in,
        !          1998: .i inews
        !          1999: will attempt to
        !          2000: .i mkdir (1)
        !          2001: a new subdirectory of
        !          2002: .b SPOOLDIR
        !          2003: for the newsgroup.
        !          2004: Since both
        !          2005: .i inews
        !          2006: and
        !          2007: .i mkdir
        !          2008: are setuid,
        !          2009: .i mkdir
        !          2010: will use the uid of the person who ran 
        !          2011: .i inews
        !          2012: instead of
        !          2013: .b NEWSUSR
        !          2014: when checking for permissions.
        !          2015: If the directory mode isn't 777 the check will fail.
        !          2016: 4.[23] BSD sites do not have this problem as 
        !          2017: .i mkdir ()
        !          2018: is a system call and will create the directory with the \*(lqcorrect\*(rq
        !          2019: ownership.
        !          2020: Here are several alternatives if you don't want a 777 directory around:
        !          2021: .hn 3
        !          2022: Fix Real Uid
        !          2023: .pg
        !          2024: If
        !          2025: .i inews
        !          2026: is always run by
        !          2027: .i cron
        !          2028: or as
        !          2029: .i root ,
        !          2030: the real uid can be arranged to be
        !          2031: .i root
        !          2032: or
        !          2033: .b NEWSUSR .
        !          2034: This is a poor solution
        !          2035: since it makes the local creation of new newsgroups
        !          2036: require super user permissions,
        !          2037: and is a potential security hole.
        !          2038: If this approach is taken,
        !          2039: care must be taken to ensure that the owner of the created directory is
        !          2040: .b NEWSUSR .
        !          2041: .hn 3
        !          2042: Change the Kernel
        !          2043: .pg
        !          2044: .i Inews
        !          2045: will do:
        !          2046: .b setuid(geteuid())
        !          2047: (see
        !          2048: .i setuid (2)
        !          2049: and
        !          2050: .i geteuid (2))
        !          2051: before it forks the
        !          2052: .i mkdir .
        !          2053: If your system permits this call,
        !          2054: there will be no problem.
        !          2055: In particular,
        !          2056: Berkeley 4.0
        !          2057: .ux
        !          2058: and later systems allow this.
        !          2059: An alternative change to the kernel is to automatically stack uids:
        !          2060: when a setuid program is run,
        !          2061: set the new real uid to the old effective uid.
        !          2062: .hn 3
        !          2063: Groups
        !          2064: .pg
        !          2065: You could have
        !          2066: .i inews
        !          2067: be setgid to
        !          2068: .b NEWSGRP
        !          2069: and all files writable by the group.
        !          2070: This approach has been tested and the problem turns out to be that the
        !          2071: .i mkdir
        !          2072: command uses the
        !          2073: .i access (2)
        !          2074: system call to check permissions.
        !          2075: Since
        !          2076: .i access
        !          2077: uses the real gid,
        !          2078: you run into the same problem.
        !          2079: .hn 3
        !          2080: Another
        !          2081: .bi Mkdir
        !          2082: .pg
        !          2083: You could create a version of
        !          2084: .i mkdir
        !          2085: that does less checking and put it in a directory that can only be accessed by
        !          2086: .b NEWSUSR
        !          2087: (mode 700,
        !          2088: owned by
        !          2089: .b NEWSUSR ).
        !          2090: Have
        !          2091: .i inews
        !          2092: fork this
        !          2093: .i mkdir .
        !          2094: .hn 2
        !          2095: Expiration dates
        !          2096: .pg
        !          2097: To get articles to expire automatically, put a line in
        !          2098: .i crontab
        !          2099: to run
        !          2100: .sd c
        !          2101: \fBLIBDIR\fP/expire
        !          2102: .ed
        !          2103: every night.
        !          2104: This command deletes all expired news.
        !          2105: The
        !          2106: .op \-a
        !          2107: .i newsgroups
        !          2108: option causes all expired news to be archived under
        !          2109: .i /usr/spool/oldnews
        !          2110: depending on which newsgroups are selected.
        !          2111: (See
        !          2112: .i expire (8)
        !          2113: for details.)
        !          2114: .pg
        !          2115: Sometimes news is not expired when it should be.
        !          2116: Be sure to check that
        !          2117: .i expire
        !          2118: has permissions to unlink files,
        !          2119: and that it is properly setuid to 
        !          2120: .b NEWSUSR .
        !          2121: You can manually invoke
        !          2122: .i expire
        !          2123: with the
        !          2124: .op \-v
        !          2125: (verbose) option to find out what it's doing.
        !          2126: Adding levels of verbosity
        !          2127: .i e\f1.\fPg ., (
        !          2128: .op \-v6 )
        !          2129: will get more and more output.
        !          2130: .hn 2
        !          2131: Version to Version
        !          2132: .pg
        !          2133: Version B will understand incoming news in either version A or B format,
        !          2134: automatically (presuming 
        !          2135: .b OLD
        !          2136: is defined in defs.h).
        !          2137: Version B
        !          2138: will generate either format,
        !          2139: depending on the flag in the third field of the
        !          2140: .i sys
        !          2141: line.
        !          2142: Version A will not understand version B format.
        !          2143: Thus,
        !          2144: it is possible for two version B
        !          2145: sites to communicate using version A
        !          2146: format.
        !          2147: This will work but is not a good idea,
        !          2148: since the translation from B to A loses information
        !          2149: (such as the expiration date)
        !          2150: which will not be there when translated back to version B.
        !          2151: .pg
        !          2152: News from versions A and 2.9 B
        !          2153: do not conform to the USENET interchange standard.
        !          2154: 2.10 B (and later) supports the standard and will communicate with either A or 2.9 B news.
        !          2155: A news is written (losing other header information) if
        !          2156: A is in the flags for the system.
        !          2157: If
        !          2158: .b OLD
        !          2159: is defined,
        !          2160: 2.10 will write out headers with both standard
        !          2161: .hf Date "" (
        !          2162: .hf Message-ID )
        !          2163: and 2.9
        !          2164: .hf Posted "" (
        !          2165: .hf Article-I.D. )
        !          2166: lines so that either B system will properly handle the article.
        !          2167: Incoming news is recognized by the first letter
        !          2168: .qp A "" (
        !          2169: for A news),
        !          2170: or the lack of an
        !          2171: .cf @
        !          2172: in the
        !          2173: .hf From
        !          2174: line (2.9).
        !          2175: Missing fields are constructed as well as possible
        !          2176: from the available information.
        !          2177: .hn 2
        !          2178: Using the news reading program rn
        !          2179: .pg
        !          2180: You must have installed all posted patches to 
        !          2181: .i rn
        !          2182: up to and including #30. 
        !          2183: Otherwise,
        !          2184: .i rn
        !          2185: will not work properly with news 2.11.
        !          2186: .hn 2
        !          2187: Distributions
        !          2188: .pg
        !          2189: News 2.11 is much more particular about handling distributions than
        !          2190: previous versions. In particular, make sure that you have the distribution
        !          2191: .i world
        !          2192: in every line of your 
        !          2193: .i sys
        !          2194: file unless you are specifically limiting the distribution and are
        !          2195: sure you know what you are doing.
        !          2196: .hn
        !          2197: Control Messages
        !          2198: .pg
        !          2199: Some news systems will send you articles that are not for human consumption.
        !          2200: They are messages to your news system called
        !          2201: .i "control messages" .
        !          2202: Such messages contain the
        !          2203: .hf Control
        !          2204: header.
        !          2205: Older systems use newsgroups matching
        !          2206: .ng all.all.ctl ,
        !          2207: and this will still work,
        !          2208: although the
        !          2209: .hf Control
        !          2210: header is preferred.
        !          2211: Since the newsgroup name is used for distribution only,
        !          2212: and is not checked to ensure it's in the active file,
        !          2213: such newsgroup names can still be used.
        !          2214: This makes it possible to post network wide control messages with
        !          2215: .ng world.msg.ctl
        !          2216: (or restricted broadcast such as
        !          2217: .ng btl.msg.ctl )
        !          2218: or messages for a particular system:
        !          2219: .ng to.ucbvax.ctl .
        !          2220: Messages are canceled,
        !          2221: however,
        !          2222: with a
        !          2223: .hf Control
        !          2224: line in a message to the same newsgroup(s)
        !          2225: as the original message.
        !          2226: .pg
        !          2227: A control message contains a command and zero or more arguments
        !          2228: (much like a
        !          2229: .ux
        !          2230: program).
        !          2231: The subject of the article contains the command and arguments.
        !          2232: The body of the article is usually ignored,
        !          2233: although some messages can use it for additional text information.
        !          2234: .hn 2
        !          2235: ihave/sendme
        !          2236: .pg
        !          2237: Two control messages are
        !          2238: .b ihave
        !          2239: and
        !          2240: .b sendme .
        !          2241: These messages allow two participating sites to set up a link
        !          2242: so that one site will tell the other site it has a given article
        !          2243: and wait for a request before it actually sends it.
        !          2244: The normal case is to send an entire article to a system,
        !          2245: which consults the history file to see if the article has already been seen,
        !          2246: and then throws it away if it has been seen before.
        !          2247: .pg
        !          2248: Use of these control messages can cut down on this wasted transmission,
        !          2249: but if you have a polled UUCP connection,
        !          2250: they can slow down receipt of news due to polling delays.
        !          2251: It is up to each connected pair of sites whether they want to use this protocol.
        !          2252: The choice is controlled by the
        !          2253: .b I
        !          2254: flag in the
        !          2255: .i sys
        !          2256: file.
        !          2257: In the case of a leaf node
        !          2258: (one with only one neighbor)
        !          2259: there is no advantage to this protocol.
        !          2260: Even if both sites are able to initiate a connection
        !          2261: (have dialers or the link is hard wired)
        !          2262: the
        !          2263: .op \-r
        !          2264: option on the
        !          2265: .i uux
        !          2266: can cause 2 hour or more delays in propagating news.
        !          2267: If transmission time and phone bills dominate your costs,
        !          2268: and you are sending news to several sites,
        !          2269: and large article bodies dominate the costs
        !          2270: (rather than the headers and the time spent by UUCP negotiating transmission)
        !          2271: it is probably worthwhile to use
        !          2272: .pa ihave/sendme .
        !          2273: If your costs are dominated by CPU load from UUCP,
        !          2274: or if you send news to a site that cannot get it from anywhere else,
        !          2275: you probably do not want to use this protocol.
        !          2276: The decision can be made independently for each site in your
        !          2277: .i sys
        !          2278: file.
        !          2279: .pg
        !          2280: To use the ihave/sendme protocol, you should have the
        !          2281: .b I
        !          2282: flag defined in the sys file for the remote site. For example:
        !          2283: .sd c
        !          2284: elsie:world,na,usa,comp,sci,news,rec,soc,misc,talk,to.elsie:IF
        !          2285: .ed
        !          2286: .pg
        !          2287: Note that the fourth field must be blank.
        !          2288: .pg
        !          2289: Normally, a message arrives at this site, is found to be ok (i.e. it hasn't
        !          2290: already been received), and is considered for retransmission to other
        !          2291: sites. If the system you are sending to has the
        !          2292: .B I
        !          2293: flag defined, the Message-ID
        !          2294: is saved in the file specified in the sys entry. 
        !          2295: .pg
        !          2296: After a period of time,
        !          2297: .sd c
        !          2298: sendbatch \-i elsie
        !          2299: .ed
        !          2300: is run by 
        !          2301: .i cron (8).  
        !          2302: It takes this file, makes it into an 
        !          2303: .b ihave
        !          2304: control message, and sends it to the other site.
        !          2305: When the message is received on the other site, the Message-IDs
        !          2306: are looked up, and if any of the messages have not been received, they are put
        !          2307: into a 
        !          2308: .b sendme
        !          2309: control message. When the
        !          2310: .b ihave
        !          2311: message has been fully processed, 
        !          2312: the
        !          2313: .b sendme
        !          2314: message is sent to the site that sent the 
        !          2315: .b ihave
        !          2316: message.
        !          2317: .pg
        !          2318: When the orignal site receives the
        !          2319: .b sendme
        !          2320: message, it sends the requested articles in the format designated by the 
        !          2321: .i sys
        !          2322: file (the 
        !          2323: .b I 
        !          2324: flag is ignored in this case).  In this example, it would write into the
        !          2325: file 
        !          2326: .b /usr/spool/batch/ \f2elsie\fP
        !          2327: for later processing by
        !          2328: .i sendbatch .
        !          2329: .hn 2
        !          2330: newgroup
        !          2331: .pg
        !          2332: This message has one or two arguments,
        !          2333: the name of a newsgroup to be created and the second optional argument
        !          2334: .i moderated .
        !          2335: This allows special action to be taken locally when a new newsgroup is created.
        !          2336: It is generated by the
        !          2337: .op \-C
        !          2338: option to
        !          2339: .i inews .
        !          2340: By default,
        !          2341: the newsgroup is added to the active file,
        !          2342: and mail is sent to the local contact advising that this has happened.
        !          2343: The directory will be created when a message for that newsgroup arrives.
        !          2344: If
        !          2345: .b NONEWGROUPS
        !          2346: is defined, the newsgroup will not be created and 
        !          2347: .b NOTIFY
        !          2348: will be sent mail explaining how to do it manually.
        !          2349: See the routine \*(lqc_newgroup\*(rq in
        !          2350: .i control.c
        !          2351: if you want something different to happen.
        !          2352: (Note that,
        !          2353: although the body of the message contains a brief description
        !          2354: of the purpose of the group,
        !          2355: this body is usually thrown away by existing software.)
        !          2356: If the second argument is the keyword
        !          2357: .i moderated ,
        !          2358: the newsgroup is created moderated, else it is unmoderated.
        !          2359: .hn 2
        !          2360: rmgroup
        !          2361: .pg
        !          2362: This message has one argument,
        !          2363: the name of a newsgroup to be removed.
        !          2364: It is used for network-wide cancellation of a newsgroup.
        !          2365: If
        !          2366: .b MANUALLY
        !          2367: is not defined,
        !          2368: it will remove the articles,
        !          2369: directory,
        !          2370: and active file line for the group.
        !          2371: There is a shell script
        !          2372: .i rmgroup
        !          2373: that does essentially the same thing as this message,
        !          2374: but the shell script only removes the group locally.
        !          2375: We recommend that you leave
        !          2376: .b MANUALLY
        !          2377: defined,
        !          2378: and when you receive mail advising you of the demise of the newsgroup,
        !          2379: you run
        !          2380: .i rmgroup
        !          2381: by hand.
        !          2382: This will prevent accidental or malicious removal of a good newsgroup.
        !          2383: .hn 2
        !          2384: cancel
        !          2385: .pg
        !          2386: This message cancels a given article.
        !          2387: It takes one argument,
        !          2388: the message id of the article to cancel.
        !          2389: It should be broadcast to the same newsgroup as the original article.
        !          2390: If the article to be canceled is not present, the control message
        !          2391: will not be propagated to downstream sites.
        !          2392: .hn 2
        !          2393: sendsys
        !          2394: .pg
        !          2395: The
        !          2396: .i sys
        !          2397: file is mailed to the originator of the message.
        !          2398: There are no arguments.
        !          2399: This is used for making maps.
        !          2400: Since your
        !          2401: .i sys
        !          2402: file is public information,
        !          2403: you should not remove or change this control message.
        !          2404: .hn 2
        !          2405: senduuname
        !          2406: .pg
        !          2407: The
        !          2408: .i uuname
        !          2409: program is run and the output is mailed to the originator of the message.
        !          2410: There are no arguments.
        !          2411: This was used for making UUCP maps.
        !          2412: It is of questionable use any more.
        !          2413: If you do not run UUCP or have sites in your
        !          2414: .i L.sys
        !          2415: which are a secret,
        !          2416: you may wish to edit this.
        !          2417: Note that only the output of
        !          2418: .i uuname
        !          2419: is mailed,
        !          2420: not the contents of
        !          2421: .i L.sys
        !          2422: (which news does not have access to anyway).
        !          2423: If you do make a change,
        !          2424: you should arrange that some mail still is sent out
        !          2425: to the originator of the message, so the originator will know your site
        !          2426: received it.  See the code in routine \*(lqc_senduuname\*(rq in
        !          2427: .i control.c .
        !          2428: .hn 2
        !          2429: version
        !          2430: .pg
        !          2431: The local version name/number of the netnews software
        !          2432: is mailed back to the originator of the control message.
        !          2433: .hn 2
        !          2434: checkgroups
        !          2435: .pg
        !          2436: This control message is an attempt at semi-automatic maintenance
        !          2437: of the list of active news groups.
        !          2438: This control messages takes the body of the article and pipes it into
        !          2439: .bi LIBDIR \f2/checkgroups\fP.
        !          2440: As mentioned previously,
        !          2441: .bi LIBDIR \f2/checkgroups\fP
        !          2442: will update the newsgroups file,
        !          2443: add any missing newsgroups, and mail a message to
        !          2444: .b NOTIFY
        !          2445: about any old newsgroups that should be removed.
        !          2446: It is expected that the person who maintains the list of active newsgroups
        !          2447: will broadcast this control message on a regular basis.
        !          2448: .hn 2
        !          2449: Other Messages
        !          2450: .pg
        !          2451: Any unrecognized message will cause an error message to be mailed
        !          2452: to the local news administrator.
        !          2453: Additional messages may be defined as time goes on,
        !          2454: such as messages to automatically update directories or maps.
        !          2455: You should be willing to go into the code
        !          2456: .i control.c ) (
        !          2457: and add messages as they become standardized.
        !          2458: .hn
        !          2459: Maintenance
        !          2460: .pg
        !          2461: There are some things you should do periodically
        !          2462: to keep your news system running smoothly.
        !          2463: We hope to eventually automate all or most of this,
        !          2464: but right now some of it must be done by hand.
        !          2465: .pg
        !          2466: The
        !          2467: .i history
        !          2468: and
        !          2469: .i log
        !          2470: files in your
        !          2471: .b LIBDIR
        !          2472: directory will grow.
        !          2473: You should make sure that they are cleaned up periodically.
        !          2474: The
        !          2475: .bi LIBDIR \f2/expire\fP
        !          2476: program will remove lines from history corresponding to deleted articles,
        !          2477: but it is a good idea to check the file every few weeks
        !          2478: to make sure it is not going wild.
        !          2479: Be sure not to completely lose your history file when you clean it up,
        !          2480: in case another neighbor tries to send you an article you recently got.
        !          2481: (If you only get news from one site it is safe to clean it out completely.)
        !          2482: .pg
        !          2483: The log file is not automatically cleaned out by any netnews software,
        !          2484: and will grow quickly.
        !          2485: The
        !          2486: .i misc/trimlib
        !          2487: script can be installed in
        !          2488: .bi LIBDIR \f2/trimlib\fP,
        !          2489: and invoked regularly by
        !          2490: .i cron (8).
        !          2491: .pg
        !          2492: You should also clean out old newsgroups that are no longer active.
        !          2493: To remove a newsgroup
        !          2494: .ng misc.foo ,
        !          2495: you should run the shell script
        !          2496: .i rmgroup
        !          2497: with
        !          2498: .b misc.foo
        !          2499: as the argument.
        !          2500: That is,
        !          2501: .sd c
        !          2502: \fBLIBDIR\fP/rmgroup misc.foo
        !          2503: .ed
        !          2504: .pg
        !          2505: Note that clearing up UUCP constipation is another thing you'll have to do
        !          2506: if you have flaky hardware or phone lines.
        !          2507: If you have more than one connection,
        !          2508: chances are that UUCP will get clogged up when one of your neighbors goes down
        !          2509: for more than a few hours.
        !          2510: Various spooling schemes are being worked on
        !          2511: to help make the news/uucp system more robust,
        !          2512: but one thing you can and should do,
        !          2513: if you find your
        !          2514: .i /usr/spool/uucp
        !          2515: directory getting too big,
        !          2516: is to install a subdirectory fix to UUCP.
        !          2517: A quick and dirty version of this is available from Duke,
        !          2518: which traps the file-oriented system calls
        !          2519: at the assembly language level and maps,
        !          2520: for example,
        !          2521: D.fooA1234 into D.foo/D.fooA1234.
        !          2522: Since the C. and
        !          2523: .i local "" D.
        !          2524: directories still get big,
        !          2525: in practice this can still create some big directories,
        !          2526: but the directories tend to be a factor of 5 smaller,
        !          2527: resulting in a factor of 25 improvement to speed
        !          2528: (since a directory traversal for all files is quadratic on
        !          2529: .ux ).
        !          2530: Right now, unless you have the uucp distributed with 4.3 BSD or the so called
        !          2531: .i HoneyDanBer
        !          2532: uucp, 
        !          2533: UUCP is the weak link in netnews distribution,
        !          2534: and you should certainly keep an eye on it.
        !          2535: .hn
        !          2536: Creating New Newsgroups
        !          2537: .pg
        !          2538: As system news administrator,
        !          2539: you are able to create newsgroups.
        !          2540: To create a newsgroup,
        !          2541: first make sure this is the right thing to do.
        !          2542: Normally a suggestion is first posted to
        !          2543: .ng news.groups\f1,\fPwhatever.relatedgroup
        !          2544: for a world wide newsgroup
        !          2545: .b whatever.relatedgroup "" (
        !          2546: should be the group which you are proposing to sub-divide.
        !          2547: For instance,
        !          2548: to propose creating
        !          2549: .ng rec.arts.tv.soaps ,
        !          2550: post the original article to
        !          2551: .ng rec.arts.tv\f1,\fPnews.groups .)
        !          2552: Followups are made to
        !          2553: .ng news.groups
        !          2554: .i only .
        !          2555: (You can force this by putting the line:
        !          2556: .sd c
        !          2557: Followup-To: news.groups
        !          2558: .ed
        !          2559: in the headers of your original posting.)
        !          2560: If it is established that there is general interest in such a group,
        !          2561: and a name is agreed on,
        !          2562: then someone creates it by typing the command
        !          2563: .sd c
        !          2564: inews \-d local \-C \fInewsgroup\fP
        !          2565: .ed
        !          2566: This will create the active entry locally. The directory will be
        !          2567: created automatically when the first article for that newsgroup is
        !          2568: received.
        !          2569: It will also prompt you for a paragraph describing the group and start up an
        !          2570: .i inews
        !          2571: to post a newgroup control message announcing the group.
        !          2572: .pg
        !          2573: You must be the super user to use the
        !          2574: .op \-C
        !          2575: option to
        !          2576: .i inews .
        !          2577: (That is, your uid must match
        !          2578: .b ROOTID .
        !          2579: It is recommended that you change
        !          2580: .b ROOTID
        !          2581: to your own uid so you don't have to
        !          2582: .i su
        !          2583: to create newsgroups.)
        !          2584: If you change the distribution to be something other than local, the
        !          2585: newgroups message will be sent to the specified distribution.
        !          2586: .hn
        !          2587: Conversion from A to B
        !          2588: .pg
        !          2589: If you are currently running version A on your system,
        !          2590: note that B is incompatible with A.
        !          2591: The files are stored in a different format
        !          2592: (headers have mail like field names now).
        !          2593: The directory organization is different
        !          2594: (each newsgroup has a subdirectory of its own,
        !          2595: and the file names are numbers rather than
        !          2596: .i site\f1.\fPid
        !          2597: pairs).
        !          2598: There are no
        !          2599: .i bitmap ,
        !          2600: .i uindex ,
        !          2601: or
        !          2602: .i nindex
        !          2603: files to be trashed
        !          2604: (which articles have been read is stored in each users
        !          2605: .i .newsrc
        !          2606: file).
        !          2607: The user interface is slightly different
        !          2608: .i netnews (1) (news/
        !          2609: is now called
        !          2610: .i readnews ,
        !          2611: news is posted using
        !          2612: .i inews ,
        !          2613: subscription is done by editing
        !          2614: .i .newsrc ,
        !          2615: the sense of the
        !          2616: .op \-c
        !          2617: option is reversed,
        !          2618: news is presented in newsgroup order,
        !          2619: the
        !          2620: .op \-a
        !          2621: and
        !          2622: .op \-t
        !          2623: options now probably need
        !          2624: .op \-x
        !          2625: as well,
        !          2626: and there are many minor changes).
        !          2627: .pg
        !          2628: We decided not to provide a program to convert from version A to version B.
        !          2629: Rather,
        !          2630: the following strategy was adopted for conversion:
        !          2631: .lp (1)
        !          2632: Install the new news in a different spool directory from the old one.
        !          2633: For example,
        !          2634: you can use
        !          2635: .i /usr/spool/newnews .
        !          2636: You can change to the standard name later if you want.
        !          2637: Get it to work for local messages.
        !          2638: .lp (2)
        !          2639: Post an article to newsgroup
        !          2640: .b general
        !          2641: with the old news announcing the change.
        !          2642: Make available documentation such as the accompanying paper
        !          2643: .i "How to Read the Network News"
        !          2644: to the users.
        !          2645: This article will be the last one in the old news.
        !          2646: .lp (3)
        !          2647: .i Chmod
        !          2648: the old news directory to 555 to prevent any more news from being posted.
        !          2649: (Actually,
        !          2650: this will prevent the bitfile from being updated,
        !          2651: so it may not be a good idea.)
        !          2652: .lp (4)
        !          2653: Replace the old
        !          2654: .i rnews
        !          2655: program with the new
        !          2656: .i rnews
        !          2657: program.
        !          2658: .lp (5)
        !          2659: Test it by having your neighbor send you a message.
        !          2660: .lp (6)
        !          2661: Wait a reasonable period for everyone to have read the final article
        !          2662: with the old news.
        !          2663: Perhaps a few weeks is right.
        !          2664: .lp (7)
        !          2665: Uninstall the old news.
        !          2666: .pg
        !          2667: Users will have to invoke
        !          2668: .i readnews
        !          2669: instead of
        !          2670: .i netnews
        !          2671: to read news.
        !          2672: Depending on your old method of posting,
        !          2673: this could be changed too.
        !          2674: (If you were using mail,
        !          2675: it does not need to be changed.)
        !          2676: They will also have to fix their subscriptions.
        !          2677: In general,
        !          2678: they can type
        !          2679: .sd c
        !          2680: netnews \-s
        !          2681: .ed
        !          2682: to see what they subscribe to on the old system,
        !          2683: and then create a file in their home directory called
        !          2684: .i .newsrc
        !          2685: containing
        !          2686: .sd c
        !          2687: options \-n \f2their subscription\fP
        !          2688: .ed
        !          2689: The format of the subscription pattern matching is the same as in A
        !          2690: except that
        !          2691: .ng ALL
        !          2692: is replaced by
        !          2693: .ng all
        !          2694: (change to lower case).
        !          2695: Something along the lines of this could be used to automate this:
        !          2696: .sd c
        !          2697: (echo \-n "options \-s" ; netnews \-s | sed s/ALL/all/) > .newsrc
        !          2698: .ed
        !          2699: .hn
        !          2700: Conversion from 2.9 to 2.11
        !          2701: .pg
        !          2702: Conversion from 2.9 to 2.11 is not nearly as involved as an A to B conversion.
        !          2703: The user interface does not change much,
        !          2704: and the user
        !          2705: .i .newsrc
        !          2706: files are not affected.
        !          2707: However,
        !          2708: it is recommended that you do the conversion during a time
        !          2709: when no news is received,
        !          2710: so that incoming news will not get lost.
        !          2711: One way to ensure this is to make
        !          2712: .i /usr/bin/rnews
        !          2713: be a shell script which saves the article in
        !          2714: .bi $$ "" /usr/spool/innews/
        !          2715: .bi $$ "" (
        !          2716: is the process id of the particular shell and will be unique for each article).
        !          2717: .pg
        !          2718: The first step to conversion is to customize the sources.
        !          2719: In the past,
        !          2720: you had to take a fresh distribution and edit the
        !          2721: .i defs.h
        !          2722: file and
        !          2723: .i Makefile
        !          2724: to suit local preferences.
        !          2725: If you had many local changes,
        !          2726: or didn't record the local changes,
        !          2727: upgrading could be annoying.
        !          2728: 2.11 provides a mechanism to automate these changes.
        !          2729: Create a shell script in the src directory called
        !          2730: .i localize.sh .
        !          2731: (You can use
        !          2732: .i localize.sample
        !          2733: as a template.)
        !          2734: This shell script should copy
        !          2735: .i defs.dist
        !          2736: to
        !          2737: .i defs.h ,
        !          2738: and copy
        !          2739: .i Makefile.dst
        !          2740: to
        !          2741: .i Makefile .
        !          2742: It should
        !          2743: .i chmod
        !          2744: any files that need to be changed
        !          2745: (often
        !          2746: .i Makefile
        !          2747: and
        !          2748: .i defs.h )
        !          2749: to a writable mode.
        !          2750: Then it should invoke
        !          2751: .i ed (1)
        !          2752: on the files,
        !          2753: making any necessary local changes.
        !          2754: .pg
        !          2755: The next step is to compile the software,
        !          2756: with
        !          2757: .i make (1).
        !          2758: It may be necessary to update the
        !          2759: .i localize.sh
        !          2760: file until you are satisfied with the compilation.
        !          2761: Note that after any change to the
        !          2762: .i Makefile
        !          2763: in
        !          2764: .i localize.sh ,
        !          2765: you should run
        !          2766: .i localize.sh
        !          2767: by hand.
        !          2768: Otherwise,
        !          2769: although make will run it for you,
        !          2770: it will then continue to do the make with the old
        !          2771: .i Makefile .
        !          2772: .pg
        !          2773: When the software is compiled,
        !          2774: you should run the
        !          2775: .i cvt.active.sh
        !          2776: shell script,
        !          2777: with the
        !          2778: .i lib
        !          2779: and
        !          2780: .i spool
        !          2781: directories as parameters.
        !          2782: This will create a new active file in
        !          2783: .bi LIBDIR \f2/active\fP.
        !          2784: Then run
        !          2785: .i cvt.links.sh
        !          2786: with the
        !          2787: .i lib
        !          2788: and
        !          2789: .i spool
        !          2790: directories as parameters.
        !          2791: Then run
        !          2792: .i cvt.names.sh
        !          2793: with the
        !          2794: .i lib
        !          2795: and
        !          2796: .i spool
        !          2797: directories as parameters.
        !          2798: Old news will be linked into the new hierarchy
        !          2799: while leaving links in the old hierarchy.
        !          2800: If you were using the default library and spool directories,
        !          2801: you would do the following:
        !          2802: .sd
        !          2803: sh cvt.active.sh \fBLIBDIR\fP /usr/spool/news
        !          2804: sh cvt.links.sh \fBLIBDIR\fP /usr/spool/news
        !          2805: sh cvt.names.sh \fBLIBDIR\fP /usr/spool/news
        !          2806: .ed
        !          2807: .pg
        !          2808: The next step is to back up the old binaries:
        !          2809: .sd
        !          2810: mv \fBBINDIR\fP/rnews \fBBINDIR\fP/ornews
        !          2811: \&...
        !          2812: .ed
        !          2813: and to install 2.11 with
        !          2814: .sd c
        !          2815: make install
        !          2816: .ed
        !          2817: Once it is installed,
        !          2818: any incoming news will be placed into the new hierarchy but not the old one.
        !          2819: The critical time window is between running the three shell files and
        !          2820: installing the new software \-
        !          2821: any incoming news between these two points will appear
        !          2822: in only the old hierarchy and be lost to the new software.
        !          2823: If any significant time elapses here,
        !          2824: you should divert
        !          2825: .i rnews
        !          2826: into a separate spool directory as described above.
        !          2827: .pg
        !          2828: It is crucial that you run
        !          2829: .i expire
        !          2830: before any new news arrives.
        !          2831: .i Expire
        !          2832: will update several key files automatically.
        !          2833: .pg
        !          2834: Finally,
        !          2835: test things by posting articles to
        !          2836: .bi neighbor "" \f3to.\fP
        !          2837: newsgroups and watching some incoming news,
        !          2838: and announce the change to your users.
        !          2839: .pg
        !          2840: When you are satisfied that the conversion was successful,
        !          2841: run the shell file
        !          2842: .i cvt.clean.sh
        !          2843: which will remove the old 2.9 news hierarchy.
        !          2844: .hn
        !          2845: Converting from 2.10.x to 2.11
        !          2846: .pg
        !          2847: Converting from version 2.10 or later to 2.11 requires no special
        !          2848: intervention. All files are updated automatically when you do 
        !          2849: \*(lqmake update\*(rq.
        !          2850: .bp
        !          2851: .hu
        !          2852: Appendix A: Setting up a Compressed, Batched Newsfeed
        !          2853: .pg
        !          2854: First,
        !          2855: .b BATCH 
        !          2856: must have been
        !          2857: .i #define 'd
        !          2858: when you built the news system.
        !          2859: To check,
        !          2860: look in the file
        !          2861: .i defs.h
        !          2862: in the news source directory.
        !          2863: .b BATCH 
        !          2864: should be defined as a program name (by default,
        !          2865: .i unbatch ).
        !          2866: If it's undefined or commented out,
        !          2867: define it,
        !          2868: re-make the news system,
        !          2869: and install the new software.
        !          2870: .pg
        !          2871: You'll also need a working
        !          2872: .i compress
        !          2873: program.
        !          2874: Use the one shipped with this news distribution,
        !          2875: which is based on version 4.0.
        !          2876: Your news neighbors should be running a compatible version of compress.
        !          2877: Versions 3.0 and 4.0 are compatible with each other,
        !          2878: but both are incompatible with versions 2.0 and earlier.
        !          2879: .pg
        !          2880: Update your
        !          2881: .i sys
        !          2882: file.
        !          2883: First, add the
        !          2884: .b F
        !          2885: flag to the other news system's line.  For instance,
        !          2886: if your compressed-and-batched news feed is named
        !          2887: .cn frobozz ,
        !          2888: and its
        !          2889: .i sys
        !          2890: file entry looks like:
        !          2891: .si
        !          2892: .sd
        !          2893: frobozz:world,comp,sci,rec,misc,soc,talk,news,na,usa,ca,to.frobozz
        !          2894: .ed
        !          2895: .ei
        !          2896: then add the
        !          2897: .b F
        !          2898: flag as the third (colon-separated) field:
        !          2899: .si
        !          2900: .sd
        !          2901: frobozz:world,comp,sci,rec,misc,soc,talk,news,na,usa,ca,to.frobozz:F
        !          2902: .ed
        !          2903: .ei
        !          2904: Now the pathnames of articles to be sent will be stashed in a file.
        !          2905: This file can be specified in the fourth field of the
        !          2906: .i sys
        !          2907: entry.
        !          2908: Normally, you can just use the default of 
        !          2909: .bi BATCHDIR \f2/system\fP,
        !          2910: (where
        !          2911: .bi BATCHDIR
        !          2912: is usually
        !          2913: .i /usr/spool/batch
        !          2914: and
        !          2915: .i system
        !          2916: is the name of the remote system,
        !          2917: in this example
        !          2918: .cn frobozz ).
        !          2919: A name of that form is necessary:
        !          2920: the
        !          2921: .i sendbatch
        !          2922: script,
        !          2923: which sends the batched news,
        !          2924: looks for a file name of this form
        !          2925: to decide if there's news for the remote system.
        !          2926: .pg
        !          2927: Your completed
        !          2928: .i sys
        !          2929: file line should look something like:
        !          2930: .si
        !          2931: .sd
        !          2932: frobozz:world,comp,sci,rec,misc,soc,talk,news,na,usa,to.frobozz:F
        !          2933: .ed
        !          2934: .ei
        !          2935: .pg
        !          2936: In  your
        !          2937: .i crontab
        !          2938: file, find or create at least two news lines:
        !          2939: one that runs nightly,
        !          2940: and one that runs every hour or so.
        !          2941: The nightly-run script should run
        !          2942: .i expire ,
        !          2943: trim log files,
        !          2944: and perhaps compile weekly statistics
        !          2945: that you post to a local-area newsgroup one day a week.
        !          2946: The hourly-run script should complete the transmitting task
        !          2947: with a line like:
        !          2948: .sd c
        !          2949: sendbatch -c frobozz
        !          2950: .ed
        !          2951: Make sure the script knows how to get to the directory in which
        !          2952: .i sendbatch
        !          2953: lives.
        !          2954: You can either mention the directory in the script's
        !          2955: .b PATH -setting
        !          2956: line,
        !          2957: or replace
        !          2958: .i sendbatch
        !          2959: with its full pathname.
        !          2960: .i Sendbatch
        !          2961: reads the files mentioned in
        !          2962: .i /usr/spool/batch/frobozz ,
        !          2963: batches them,
        !          2964: optionally compresses them,
        !          2965: sends them to the remote system,
        !          2966: and arranges for remote processing.
        !          2967: .pg
        !          2968: This remote processing can be directed by another file in
        !          2969: .b BATCHDIR .
        !          2970: Make an executable file with a name of the form
        !          2971: .bi BATCHDIR \f2/system\fP.cmd
        !          2972: (for this example,
        !          2973: .i /usr/spool/batch/frobozz.cmd ).
        !          2974: Put a line in it specifying the command that the remote system
        !          2975: should execute to unpack the news batches that your system will send.
        !          2976: An example
        !          2977: .i frobozz.cmd
        !          2978: would be:
        !          2979: .sd c
        !          2980: uux - -r -z -n -gd frobozz!rnews
        !          2981: .ed
        !          2982: .pg
        !          2983: Now your system will transmit compressed batches.
        !          2984: The receiving side of the business is handled largely by a program called
        !          2985: .i rnews ,
        !          2986: which will call other programs in
        !          2987: .b LIBDIR
        !          2988: to do additional processing on the incoming batches.
        !          2989: .pg
        !          2990: Make sure there is an executable file called
        !          2991: .i rnews
        !          2992: in the
        !          2993: .b BINDIR
        !          2994: directory
        !          2995: (check the
        !          2996: .i Makefile
        !          2997: for its actual location).
        !          2998: It must be reachable by UUCP
        !          2999: or by whatever transport you'll use to transfer the netnews.
        !          3000: If you defined
        !          3001: .b BINDIR
        !          3002: as
        !          3003: .i /usr/bin ,
        !          3004: you should have no problems because
        !          3005: .i uuxqt
        !          3006: can already get there.
        !          3007: If you defined it as a different directory,
        !          3008: you may have to teach
        !          3009: .i uuxqt
        !          3010: to look in that directory;
        !          3011: accomplishing this varies from system to system.
        !          3012: On 4.[23] BSD, add the directory to the
        !          3013: .b PATH=
        !          3014: line of your UUCP
        !          3015: .i L.cmds
        !          3016: file.
        !          3017: On System V,
        !          3018: on the
        !          3019: .i rnews
        !          3020: line of your
        !          3021: .i L.cmds
        !          3022: file,
        !          3023: add a comma followed by
        !          3024: the remote system's name on that line.
        !          3025: If yours is in
        !          3026: .i /usr/bin/news/rnews ,
        !          3027: your
        !          3028: .i L.cmds
        !          3029: file will look like:
        !          3030: .si
        !          3031: .sd
        !          3032: [For 4.[23]BSD]
        !          3033: PATH=/bin:/usr/bin:/usr/bin/news
        !          3034: rnews
        !          3035: .ed
        !          3036: .sd
        !          3037: [For System V]
        !          3038: /usr/bin/news/rnews,frobozz
        !          3039: .ed
        !          3040: .ei
        !          3041: Other systems have a similar file in the
        !          3042: .i /usr/lib/uucp
        !          3043: directory by which you can specify added programs
        !          3044: and paths different from the defaults.
        !          3045: HP-UX,
        !          3046: for example,
        !          3047: has a
        !          3048: .i /usr/lib/uucp/COMMANDS
        !          3049: file which expands
        !          3050: .i uuxqt 's
        !          3051: horizons.
        !          3052: .i HoneyDanBer
        !          3053: uucp
        !          3054: .i a.k.a " AT&T Basic Networking Utilities)" (
        !          3055: has a
        !          3056: .i Permissions
        !          3057: file that controls what is executed.
        !          3058: In more restrictive cases,
        !          3059: paths are compiled into
        !          3060: .i uuxqt .
        !          3061: If you can't modify any UUCP files,
        !          3062: just put
        !          3063: .i rnews
        !          3064: in
        !          3065: .i /usr/bin.
        !          3066: .pg
        !          3067: Tell the person at the other end of your newsfeed to use
        !          3068: .i "sendbatch \-c"
        !          3069: to send you news.
        !          3070: Once that's in place,
        !          3071: watch your UUCP
        !          3072: .i LOGFILE
        !          3073: and your news
        !          3074: .i log
        !          3075: and
        !          3076: .i errlog
        !          3077: files to ensure that news is being correctly received and unpacked
        !          3078: on your system.
        !          3079: .pg
        !          3080: Older compressed batching systems will try to exec
        !          3081: .i cunbatch
        !          3082: instead of
        !          3083: .i rnews .
        !          3084: If you are still communicating with these, leave 
        !          3085: .i cunbatch
        !          3086: in 
        !          3087: .b BINDIR
        !          3088: until they have upgraded their software.
        !          3089: .bp
        !          3090: .hu
        !          3091: Appendix B: MULTICAST
        !          3092: .pg
        !          3093: If this is defined (in
        !          3094: .i defs.h )
        !          3095: then two new flag characters
        !          3096: become defined in the
        !          3097: .i sys
        !          3098: file.
        !          3099: The first,
        !          3100: and most important,
        !          3101: of these is the
        !          3102: .b M
        !          3103: flag.
        !          3104: .pg
        !          3105: If the
        !          3106: .b M
        !          3107: flag is set on some line in the
        !          3108: .i sys
        !          3109: file,
        !          3110: then the fourth field (transfer command) is redefined to become a
        !          3111: .i multicast
        !          3112: name.
        !          3113: That is simply another system name,
        !          3114: expected to be found in the first field of some line in the
        !          3115: .i sys
        !          3116: file (textually following the line containing the
        !          3117: .b M
        !          3118: flag).
        !          3119: .pg
        !          3120: When a news item is being retransmitted,
        !          3121: if it should (according to the subscription list) be sent to a system
        !          3122: that has the
        !          3123: .b M
        !          3124: flag set,
        !          3125: then instead of a command being run immediately to transmit the news,
        !          3126: the news system remembers the system name,
        !          3127: along with the multicast name (fourth field).
        !          3128: .pg
        !          3129: Eventually the multicast system name is found in the first field of a sys
        !          3130: file line.  If its subscription list allows transmission of this news item,
        !          3131: then its command will be executed.
        !          3132: This command may have up to two \*(lq%s\*(rq substitutions in it.
        !          3133: The second of those is replaced by the name of a file
        !          3134: containing the news item (used with the
        !          3135: .b U
        !          3136: flag).
        !          3137: The first is subjected to rather special treatment.
        !          3138: The whole \*(lqword\*(rq (delimited by white space)
        !          3139: containing that \*(lq%s\*(rq is duplicated as many times
        !          3140: as there were systems with the
        !          3141: .b M
        !          3142: flag set that referenced this multicast name
        !          3143: (which might be 0 times,
        !          3144: causing that \*(lqword\*(rq to be omitted).
        !          3145: In each of these duplicates,
        !          3146: the \*(lq%s\*(rq is replaced by the name of a system.
        !          3147: Note the multicast system name itself is not included in this process.
        !          3148: Then the command is executed as usual.
        !          3149: .pg
        !          3150: The second flag available if the news system is built with
        !          3151: .b MULTICAST
        !          3152: defined is
        !          3153: .b O .
        !          3154: If this flag is set,
        !          3155: then the sys file line will be ignored unless the system name is
        !          3156: a multicast name from some earlier line with the
        !          3157: .b M
        !          3158: flag,
        !          3159: and the news item is to be sent to that (earlier) system.
        !          3160: This allows the subscription list for the multicast system name
        !          3161: (which is likely to be a fake system name,
        !          3162: invented just for this purpose)
        !          3163: to be given a very wide subscription list
        !          3164: (like
        !          3165: .ng all )
        !          3166: without any unusual effects.
        !          3167: .pg
        !          3168: Here is an example.
        !          3169: Assume that you wish to forward
        !          3170: .ng comp.unix
        !          3171: to four people by mail.
        !          3172: You could do this as ...
        !          3173: .si
        !          3174: .sd
        !          3175: fred:comp.unix::mail fred
        !          3176: harry:comp.unix::mail harry
        !          3177: jane:comp.unix::mail jane
        !          3178: tony:comp.unix::mail tony
        !          3179: .ed
        !          3180: .ei
        !          3181: however this causes the mail program to be started 4 times,
        !          3182: once for each recipient.
        !          3183: On some systems starting the mail program is a very expensive operation.
        !          3184: If
        !          3185: .b MULTICAST 
        !          3186: is defined,
        !          3187: an alternative method is
        !          3188: .si
        !          3189: .sd
        !          3190: fred:comp.unix:M:tony
        !          3191: harry:comp.unix:M:tony
        !          3192: jane:comp.unix:M:tony
        !          3193: tony:comp.unix::mail tony %s
        !          3194: .ed
        !          3195: .ei
        !          3196: This would cause just one command to be run:
        !          3197: \*(lqmail tony fred harry jane\*(rq.
        !          3198: Note that \*(lqtony\*(rq must still be explicitly included in the argument
        !          3199: list to the mail command;
        !          3200: the \*(lq%s\*(rq does not expand to include
        !          3201: the multicast \*(lqsystem name\*(rq itself.
        !          3202: .pg
        !          3203: A more useful way of doing this,
        !          3204: which does not assume that all the mail readers
        !          3205: will want to read the same newsgroups is as follows.
        !          3206: .si
        !          3207: .sd
        !          3208: fred:comp.unix:M:Mail
        !          3209: harry:sci.physics,sci.astro:M:Mail
        !          3210: jane:comp.unix.wizards,soc.women:M:Mail
        !          3211: tony:comp.unix,comp.unix.wizards,rec.humor:M:Mail
        !          3212: Mail:all:O:mail %s
        !          3213: .ed
        !          3214: .ei
        !          3215: .pg
        !          3216: Now,
        !          3217: if a news item in group
        !          3218: .ng comp.unix
        !          3219: was received,
        !          3220: the command
        !          3221: .sd c
        !          3222: mail fred tony
        !          3223: .ed
        !          3224: would be executed.
        !          3225: If the news were in both
        !          3226: .ng comp.unix
        !          3227: and
        !          3228: .ng comp.unix.wizards
        !          3229: then the command would be
        !          3230: .sd c
        !          3231: mail fred jane tony
        !          3232: .ed
        !          3233: .pg
        !          3234: If a news item in
        !          3235: .ng sci.med
        !          3236: (which no-one gets by mail) arrives,
        !          3237: then the \*(lqMail\*(rq line will be ignored,
        !          3238: because of the
        !          3239: .b O
        !          3240: flag.
        !          3241: \*(lqMail\*(rq is a fake system invented just so its \*(lqtransfer command\*(rq
        !          3242: can be used to send news to the other recipients.
        !          3243: .pg
        !          3244: The same kind of technique can be used for normal transfer
        !          3245: of news to other systems if your transport network supports
        !          3246: a facility to send to many other systems in one command.
        !          3247: (That is,
        !          3248: if it has a multicast facility.)
        !          3249: SunIII (the network used in Australia) has this ability,
        !          3250: so a typical Australian
        !          3251: .i sys
        !          3252: file looks like
        !          3253: .sd
        !          3254: emuvax:world,aus,comp.sci:M:FakeName
        !          3255: kremlin:world,aus,comp,sci:M:FakeName
        !          3256: kanga:world,aus,comp.unix:M:FakeName
        !          3257: FakeName:all:OUS:/bin/sendfile -NRSareporter -d%s -x%s
        !          3258: .ed
        !          3259: .pg
        !          3260: A news item in
        !          3261: .ng aus.general
        !          3262: causes the following command
        !          3263: .sd c
        !          3264: /bin/sendfile -NRSareporter -demuvax -dkremlin -dkanga -x/usr/spool/...
        !          3265: .ed
        !          3266: to be executed.
        !          3267: Just one command is run to send the news to three remote systems.
        !          3268: .pg
        !          3269: If a multicast system has the
        !          3270: .b F
        !          3271: flag set,
        !          3272: then the name of a file containing the news is appended to the file
        !          3273: whose name is in the fourth field,
        !          3274: as usual.
        !          3275: But on the same line,
        !          3276: separated by spaces,
        !          3277: will be appended the names of all the systems
        !          3278: that referenced this multicast system.
        !          3279: .pg
        !          3280: For example,
        !          3281: if the Australian site wanted to batch news,
        !          3282: instead of sending it directly,
        !          3283: it would simply change the last line of its
        !          3284: .i sys
        !          3285: file to
        !          3286: .sd c
        !          3287: FakeName:all:F:/usr/spool/batched/allsites
        !          3288: .ed
        !          3289: .pg
        !          3290: Then a news item in
        !          3291: .ng misc.jobs
        !          3292: would cause the following line to be appended to
        !          3293: .i /usr/spool/batched/allsites
        !          3294: .sd c
        !          3295: /usr/spool/news/misc/jobs/5542 emuvax kremlin
        !          3296: .ed
        !          3297: .pg
        !          3298: This can then be processed later, in something like the normal manner.
        !          3299: (Unfortunately no commands to do this processing are yet available.)
        !          3300: .pg
        !          3301: Caution: when
        !          3302: .b MULTICAST
        !          3303: is defined,
        !          3304: the first \*(lq%s\*(rq in all transfer commands is used for multicast,
        !          3305: regardless of whether or not the system name is ever used as the last field
        !          3306: of some line with the
        !          3307: .b M
        !          3308: flag set.
        !          3309: To use the
        !          3310: .b U
        !          3311: flag in such a case,
        !          3312: a dummy \*(lq%s\*(rq should be used,
        !          3313: it will simply be omitted from the command that is executed.
        !          3314: .pg
        !          3315: As an example,
        !          3316: if a
        !          3317: .i sys
        !          3318: file line without
        !          3319: .b MULTICAST
        !          3320: defined was:
        !          3321: .sd c
        !          3322: foovax:comp,world,na,usa:U:uux - foovax!foonews <%s
        !          3323: .ed
        !          3324: with
        !          3325: .b MULTICAST 
        !          3326: defined,
        !          3327: it would need to be changed to:
        !          3328: .sd c
        !          3329: foovax:comp,world,na,usa:U:uux - foovax!foonews %s <%s
        !          3330: .ed
        !          3331: .pg
        !          3332: Additional caution:
        !          3333: The numbers of system names that may be used
        !          3334: in this way are quite severly restricted.
        !          3335: Typically there may only be about 10 multicast system names,
        !          3336: and each of those is restricted to sending to no more than about 20 systems.
        !          3337: These limits are dynamic
        !          3338: (that is,
        !          3339: the numbers counted are the number of multicast systems
        !          3340: receiving any single news item,
        !          3341: and the number of systems that each of those
        !          3342: will actually cause this particular news item to be sent to).
        !          3343: These limits should easily suffice for real news sending to remote systems;
        !          3344: however they are not likely to suffice if you want to mail news to everyone
        !          3345: on your host.
        !          3346: .bp
        !          3347: .hu
        !          3348: Appendix C: Installing news on a Eunice system
        !          3349: .pg
        !          3350: Eunice does not have links.  To get around this problem without
        !          3351: wasting megabytes of disk space, links are simulated.  Each article
        !          3352: is stored under the directory corresponding to the first group on
        !          3353: the Newsgroups line.  The remaining directories contain a short
        !          3354: file giving the name of the real file.  
        !          3355: .i Readnews
        !          3356: and 
        !          3357: .i vnews
        !          3358: know how to follow these links; so does 
        !          3359: .i rn 
        !          3360: if it is compiled with 
        !          3361: .b LINKART
        !          3362: defined 
        !          3363: .i rn "" (
        !          3364: is not included in this distibution).
        !          3365: .pg
        !          3366: If you expire different groups at different times, an article disappears
        !          3367: when the first group in the Newsgroups line expires, even if it's cross
        !          3368: posted to a group you retain longer.  Also, the archival option for
        !          3369: .i expire
        !          3370: (\-a flag) does not work.
        !          3371: .pg
        !          3372: Eunice does not have the set-user-id bit.  Instead, the VMS feature
        !          3373: allowing installation of privileged images is used.  inews and rnews
        !          3374: must be installed with SYSPRV privilege.  To allow VMS to install
        !          3375: .i inews
        !          3376: .i rnews "" (
        !          3377: is a copy of it), it must be linked with the
        !          3378: .i /notrace
        !          3379: flag.  Despite the documentation, this only seems to work if the
        !          3380: VMS linker is used on VMS-format object files, as of Eunice version 4.2.
        !          3381: So it is VERY IMPORTANT to type
        !          3382: .i vmsobj
        !          3383: before building news.
        !          3384: .pg
        !          3385: The DCL command file 
        !          3386: .i euninstal.com
        !          3387: installs 
        !          3388: .i inews
        !          3389: and
        !          3390: .i rnews
        !          3391: with the proper privileges.  It is run by  \*(lqmake install\*(rq as the last
        !          3392: step.  It is possible that it will fail because your system does
        !          3393: not have sufficient global page table space or known file list
        !          3394: entries.  See the Eunice installation manual to learn how to increase
        !          3395: the values of these parameters (you will have to reboot the system).
        !          3396: .pg
        !          3397: The 
        !          3398: .i euninstal.com
        !          3399: script must be run every time the system is booted.
        !          3400: I suggest invoking it from /etc/suchmod.com.
        !          3401: .pg
        !          3402: It is crucial that
        !          3403: .b LIBDIR \f2/active\fP
        !          3404: and
        !          3405: .b LIBDIR \f2/seq\fP
        !          3406: be in Unix format, as opposed to VMS format.  Use
        !          3407: .i etc/vmstounix
        !          3408: to assure this.
        !          3409: .pg
        !          3410: Not all options have been tested; if you select options other than
        !          3411: those set by the localize.vms script (except for obvious things like
        !          3412: .B ORGNAME ,
        !          3413: etc) I can't guarantee that it will work.  In particular, I
        !          3414: haven't attempted to define 
        !          3415: .b SPOOLNEWS
        !          3416: or
        !          3417: .b MULTICAST .
        !          3418: That doesn't mean they won't work, just that I haven't tried them.
        !          3419: .pg
        !          3420: If you choose to run compressed batching, I recommend that you put
        !          3421: .i cunbatch
        !          3422: in your 
        !          3423: .i L.cmds
        !          3424: file and have your news feed send
        !          3425: compressed batches the \*(lqold\*(rq way, because this saves an exec, and
        !          3426: forks and execs are so expensive on Eunice (the new way is for the
        !          3427: first line to be #cunbatch, and have
        !          3428: .i rnews
        !          3429: exec 
        !          3430: .i cunbatch ).  
        !          3431: .pg
        !          3432: If you have questions on Eunice and news contact:
        !          3433: .sd c
        !          3434: Joe Buck, Entropic Processing, Inc.
        !          3435: .sp 1
        !          3436: seismo!epiwrl!epimass!jbuck
        !          3437: hplabs!oliveb!epimass!jbuck
        !          3438: .ed

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.