.\" @(#)b.interface 6.1.1 (2.11BSD) 1996/10/24 .\" .ls 1 .ap B "Interfacing Notesfiles to News" The News system provides functions similar to those provided by the Notesfile system. It is possible to gateway articles between the two systems. In USENET, a common configuration is for several notesfiles sites to form a subnetwork of USENET and gateway articles between the local notesfile network and the rest of USENET. These articles propogate across USENET in the news system. Article originating in the news system are gatewayed into the notesfile network. When several notesfile networks exist as subnetworks of a larger news network (such as USENET), articles written in one notesfile network will be correctly interpreted when arriving at another notesfile network. ``Correctly'' interpreted includes proper linking of responses to their true parents; this is sometimes not possible with articles written in the news system. The notesfile gateway code recognizes articles meeting the USENET standards. Additionally, the A-news protocol and older B-news protocols are recognized. Incoming (news \(-> notes) articles are parsed and placed in the appropriate notesfiles. Articles written within a notesfile subnetwork are formatted according to USENET standards and transmitted to the news system. .a1 "Configurations for Sites without News" Sites running notesfiles without the news program have several possible configuations. If your site is part of a notesfile subnetwork and you wish to have your articles gatewayed to the news system and the rest of USENET, you must find a site who will act as a gateway for your articles. The gateway code performs its task in such a way as to allow several sites to gateway the same article into the news system; the multiple copies will have identical unique identifiers and one copy will be canceled when they meet on a remote system. .a2 "Sites with no News Neighbors" If you have no immediate neighbor running news, there is no particular action you should take other than to reassure yourself that some site in the notesfile subnetwork is gatewaying notes-generated articles to the news system. This can be done in one of several ways. If the site wants to gateway articles specifically from your machine, the following command should be executed on that site occasionally. This is typically done through cron(8). newsoutput -syoursite notesfile-list A more typical arrangement is where the gateway site sends all notes-generated articles that arrive on its system into the news system. In this case, the gateway site will execute a command such as the following: newsoutput -a notesfile-list A site gate using this command line will automatically gateway articles written at your site and eliminates the need of running a command similar to the first command line. .a2 "Sites with Neighbors running News" If a neighboring system runs both notes and news, you have the option of gatewaying your own articles or allowing the neighbor to gateway articles for you. If the neighbor does not run the notesfile system, you must provide your own gateway functions. Gatewaying can be done similarly to the site without a news neighbor. You can let your articles propogate across a notesfile network to a gateway site which will send them to the news system. Another option is to gateway your articles, and possibly any notesfile-generated articles, into the news system at the neighboring site. This gets your articles into USENET as quickly as possible. The two options are not mutually exclusive; you can gateway your own articles and allow another site to gateway them. When copies of the same article meet on a news system, the extra copy will be removed from the network. To gateway articles into news, you must modify the file /usr/spool/notes/.utilities/net.how to tell the newsoutput program how to get to the news system. More information on this can be found in the section ``Copying Notesfiles to News'' later in this appendix. To gateway from the news system to the notesfile system, you must arrange to have the news system at the remote site send articles as standard input to the program /usr/spool/notes/.utilities/newsinput on your system. Information on mapping functions between notesfiles and news, how to configure a news system to send articles to a notesfile system, and how to have a notesfile system send articles to a news system can be found later in this appendix. .a1 "Configurations for Sites running News" A site running both notesfiles and news will typically perform gateway functions in both directions, from the notesfile system to the news system and from the news system to the notesfile system. In these cases all the operations are local. .a1 "Gatewaying between Notesfiles and News" The two notesfile programs ``newsoutput'' and ``newsinput'' perform gatewaying between notesfile and news systems. Newsoutput takes notesfile-generated articles, formats them, and hands them to the news system. Newsinput takes articles from the news system and inserts them in the notesfile system. .a2 "Copying News to Notesfiles" The news system maintains ``subscription lists'' for each neighboring system. The subscription list is stored in the file /usr/lib/news/sys on a B-news system. On an A-news system, the subscription list is in /usr/spool/news/.sys News feeds articles to neighboring systems as they arrive. In many cases, the article is queued for transmission. In other cases, the article is given to a batching program which collects a number of articles for transfer and sends them to an appropriate un-batching program at the receiving end. In the case where the notesfile system resides on another machine, the news subscription line should be generated similarly to that for a normal news feed with several exceptions. The first is that the newsinput program does not understand about batching; articles must be sent one at a time. Also, one must specify the method of transmitting the article. To feed the system ``somesite'' with news, the neighbor will add a line of the following form to his /usr/lib/news/sys: somesite:subscription::uux - -n somesite!/usr/spool/notes/.utilities/newsinput Of course, networks other than UUCP can be used. To forward to a notesfile system on the same machine as the news system, create a pseudo site which doesn't exist elsewhere (a sitename such as ``nf_sys'' works), and add a line like: nf_sys:subscription::/usr/spool/notes/.utilities/newsinput Articles arriving at the local system will now be forwarded to the notesfile system. By default, news articles are placed in notesfiles with the same name. To map newsgroups to particular notesfiles, see the later section ``Naming Notesfiles and Newsgroups''. .a2 "Copying Notesfiles to News" The newsoutput program transfers notesfile-generated articles from the notesfile system to a news system. The news system does not have to be on the same machine. Newsoutput accepts parameters telling it to gateway articles from specific systems or any system. Additional options allow backwards compatible headers for older versions of the notesfile software. A typical newsoutput invocation looks like: newsoutput -a notesfile-list The -a parameter indicates that notesfile generated articles from any site are to be sent to the news system. Under no circumstances will newsoutput transfer an article to the news system if it has passed through the news system before. Thus if a notes generated article passes from one notesfile subnetwork to another through the news system, the article will not be sent into the news system by anyone in the second notesfile subnetwork. The ``notesfile-list'' can contain a mixture of specific notesfiles, wild-card specifications (net.*), or ``-f file'' parameters which specifies a file containing a list of notesfiles to send. Alternatively, articles for only one system can be gatewayed with a command line of the form: newsoutput -ssitename notesfile-list This invocation method maintains a sequencer for each system; the -a option maintains a single global sequencer. A third invocation method of newsoutput uses the ``-c'' option and specifies a specific set of systems to gateway articles for. The command looks like: newsoutput -c gateway-site-file notesfile-list The ``gateway-site-file'' specifies a file containing a list of sitenames. Articles written at any of these sites are gatewayed to the news system. Thus newsoutput has the ability to send articles to news for a single system, several systems, or any system. Newsoutput assumes that a news system is installed on the local system. If the news system is in a non-standard location on the local system or the news system is on a different machine, newsoutput can be told where to send articles. The file /usr/spool/notes/.utilities/net.how contains command templates for notesfile networking. To specify a non-standard place for the ``rnews'' program, add a line of the form: Usenet:x:::uux - -n myneighbor!/usr/bin/rnews Non-UUCP connections and the like can be specified. .a2 "Naming Notesfiles and Newsgroups" Notesfiles and newsgroups for the same topic can have different names. Notesfiles are currently limited in the last component of their name to the length of a filename; under V7, System III, System V, and 4.1 Bsd this is 14 characters. 4.2 Bsd extends the length of a filename to a maximum of 255 characters per component. Newsgroup names are no longer limited in total length; the only restriction in current news versions is that each component (between .'s) is unique in the first 14 characters. The file ``/usr/spool/notes/.utilities/newsgroups'' defines the relationships between notesfiles and newsgroups. Lines in the file have the general form: notesfile:base_newsgroup:respone_newsgroup Lines beginning with the ``#'' character are considered comment lines. The ``response_newsgroup'' field and the colon separating it from the base_newsgroup field are optional. Entries in this file need be made for only a few reasons: (1) The newsgroup which matches the notesfile is longer than fourteen characters, (2) the notesfile and the newsgroup are different names (e.g. the notesfile `Bnews' can be linked to the newsgroup `net.news.b' with an entry of `Bnews:net.news.b'), (3) you want several newsgroups linked to a single notesfile, and (4) notes and responses from a notesfile should go to different newsgroups (net.general/net.followup is one example). The file is scanned from the beginning until EOF or a match is found. When no match is found, the code returns the original argument as if it had matched itself. The process is similar to having placed a sentinel line of the form: myarg:myarg at the end of the file. The optional third field in the line is used to send notes and responses from a notesfile to separate newsgroups. The net.general/net.followup convention is an example of how this would be used. Typically the net.general and net.followup newsgroups are mapped into the same notesfile. To preserve peace with news users, responses written in a notesfile `net.general' should go to the newsgroup `net.followup'. The following pair of lines will map all news from net.general and net.followup into the notesfile net.general. Base notes from the notesfile net.general will go to the newsgroup net.general; responses in the net.general notesfile will be sent to the net.followup newsgroup. .nf net.general:net.general:net.followup net.general:net.followup .fi The first line maps news in net.general to the notesfile net.general. It also does the mapping from notesfiles to newsgroups. The second line maps news from net.followup into the notesfile net.general. Note that the response field is not used in the mapping from newsgroups to notesfiles; it is used only for mapping notesfile responses into a different newsgroup. To map several newsgroups into the same notesfile, place lines of the following form in the ``newsgroups'' file: .nf somenotesfile:newsgroup1 somenotesfile:newsgroup2 .fi If you wish to have articles from the notesfile ``somenotesfile'' go to both of the newsgroups, insert a line before the above lines to map articles going to notesfiles. The result would look like: .nf somenotesfile:newsgroup1,newsgroup2 somenotesfile:newsgroup1 somenotesfile:newsgroup2 .fi The first line is the one used for articles going from notesfiles to news; the newsgroups specification ``newsgroup1,newsgroup2'' is used on those articles. Articles coming from the newsgroup ``newsgroup1'' will fail to match the first line, since the program expects exact matching. They will match the second line and be mapped to the notesfile ``somenotesfile''. .a1 "Typical Configurations" A typical notesfile subnetwork contains a number of pure notesfile sites and several sites running both news and notesfiles. In these situations, some subset of the sites running both notes and news act as gateway sites. The pure notesfile sites don't concern themselves with gateway operations. The gateway sites typically gateway all notes-generated articles to news. Duplicate articles, gatewayed at several sites, will propogate across the news network. When two or more of these articles meet at some site, the superflous copy will be removed from the network. If none of the sites in the notesfile subnetwork run the news program, the gateway site will be one or more of the sites having neighbors that do run news. These gateway sites will run newsoutput and direct the output to the news site by making the appropriate entry in /usr/spool/notes/.utilities/net.how for the pseudo-site ``Usenet''. .a1 "News Gateway Installation Checklist" The following checklist covers the variables in the ``newsgate.h'' file which may need to be changed on your system. It also mentions which files to modify to automate the transfer of articles between the two systems. .bz .iz [edit] src/newsgate.h .iz MYDOMAIN. This should be set to the domain your site is in. Typical domains are ``UUCP'' and ``ARPA''. .iz DFLTRNEWS. The news receiving program. This can normally be left as is; alternate news insertion methods can be specified with more flexibility through the net.how file. .iz EXPANDPATH. If defined, the code looks in the file specified by PATHMAP for a route to an author's system. The code which does this is in ``src/newspath.c'' and expects a particular format in the PATHMAP file. You may wish to replace it with code of your own if your data base is in a different format. .iz PATHMAP. This is the full pathname of the routing tables used if EXPANDPATH is defined. .iz [finished editing] src/newsgate.h .iz make newsouput newsinput. This will recompile the notesfile/news gateway programs. .iz Check /usr/lib/news/sys to see that news will be forwarded to the notesfile system. .iz Make entries in /etc/crontab to invoke newsoutput occcasionally. We use every 6 hours. .iz If the news system is on another machine or in a non-standard place, modify /usr/spool/notes/.utilities/net.how. Add a pseudo-site ``Usenet'' which specifies how to get to the remote machine. One example is: .br Usenet:x:::uux - -z neighbor!/usr/bin/rnews .iz Check /usr/spool/notes/.utilities/newsgroups. A sample of how this file will look is included in the ``Samples'' directory of the distribution. .iz Everything should be configured now. You will probably want to run several tests on local or limited distribution newsgroups to satisfy yourself that it works. .ez