# Frequently Asked Questions about USENET (in c.o.l.* anyway)

### Why can't I post to moderated groups ?

Probably because the newsreader is trying to call /bin/mail to send the mail and it doesn't like it. Replace the /bin/mail in SLS with the port of mailx-5.3b.tar.z from the pub/Linux/system/Mail dir on sunsite.unc.edu and make it mode 2755 and group mail (like "elm") and you'll be all set.

Another possibility is that you have a moderated newsgroup set up on your local system as not-moderated and somebody upstream is quietly deleting the article (some system's software, not a person). Make sure you run a "checkgroups" every now and then when the checkgroups article rolls by in news.admin every few weeks.

### Why do I have problems that appear to be permission-related ?

Check to see that your permissions are right and that you have a "news" username and group in /etc/passwd and /etc/group that matches the binary distribution you grabbed. It seems that there is not yet a Linux-standard for commonly available accounts.

All the stuff in /usr/local/lib/news should be news.news except /usr/local/lib/news/setnewsids which should be setuid root.

You can use whatever UID and GID you want for "news".

### Why can I post articles locally, but they don't get fed downstream ?

Probably because you didn't call newsrun from cron. Maybe because you edited your sys file and messed it up. Maybe because you don't have a /usr/spool/news/out.going tree or something.

Do not create newsgroups or feeds by editing the active or sys files. Use the utilities in /usr/local/lib/news/bin/maint to do it.

### Why doesn't my binary distribution have the "Performance Release" of C-news?

Because it's optional. Because it has problems under Linux in some places. Because the Pre-Performance Release Cnews is more stable and plenty fast enough on any type of reasonable system (IMHO). If you need any more convincing, here's a few excerpts from the C-news README.new file:

"This is the 20 Feb 1993 Performance Release of C News, a minor update to the 2 May 1992 P.R. that just fixes some installation problems and a couple of annoying bugs"

"This release is more or less a halfway step to what we've been calling the "cleanup release""

"People who are happy with the older C News might want to wait for the cleanup release, which is still coming although behind schedule"

Mainly because at the time SLS1.01 came out, the compilers and libs didn't like the Performance Release too much. Things are better now.

### Why doesn't my binary distribution have nntp ?

Because it's supposed to be plug-n-play under Linux and because I didn't want to make SLS's news stuff doubly big by having to maintain both nntp and non-nntp versions of the newsreaders and news transport programs. Also because it compiles in localized information that is not overridable at runtime via a config file.

### Why does doexpire (or relaynews or) say "severe space shortage" when there's lots of room ?

Because it can't read /etc/mtab. Make it mode 644. This happens when you unmount a mounted filesystem by root with a umask that doesn't permit world-read of files owned by root.

### Why does everything look normal, but posting doesn't happen ?

Older versions of Linux had a "broken" sed that C-news was prone to blow up. In particular, if you've installed over an old SLS, be sure to check /bin and /usr/bin to be certain you have only one copy of sed and that it's a modern one.

### Can I hook the new news overview (NOV) stuff into trn/tin/nn to replace the various independent thread databases ?

Yes. trn3.3 supports it now. The next version of tin will.

You can hook it into the Performance Release of Cnews and various other readers as well

The beta copy of nn6.5 I have here has NOV support and it works just dandy under Linux. I run it here and have nn running without having to run nnmaster (!). Look on uniwa.uwa.edu for a copy of it.

### Why can't we have a binary distribution of NNTP ?

Because significant local-only information is compiled-in and cannot be determined auto-magically at runtime.

### How do I set up NNTP to allow read/post across the network while *not* storing any news articles or databases locally.

( mdw@sunsite.unc.edu (Matt Welsh) )

- 1) Grab the "reference implementation" of nntp and a copy or rn from your local archive site. If you connect to ftp.uu.net you'd grab: nntp.1.5.11.tar.Z from ftp.uu.net:/news/nntp rn-4.4.pl3.tar.Z from ftp.uu.net:/news/rn
- 2) compile nntp as follows: copy common/conf.h.dist to common/conf.h. Edit common/conf.h to set certain options: The only ones I set were: DOMAIN: undefine it (i.e. change the line to `#undef DOMAIN`). REALDOMAIN: Define this. It looks up the domain using the libraries. SERVER_FILE: Set this to the name of the file which will contain the hostname of the news server (i.e. the machine you'll read and post news through). I use "/usr/local/lib/news/server". PASSFILE: If your news server requires authorization (i.e. some kind of username/password) to post, set this to the name of the file which contains the username and password (described below). I use "/usr/local/lib/news/nntppass". I decided to keep all of the other news stuff in /usr/local/lib/news. So I set all of the rest of the pathnames in the file (i.e. ACTIVE_FILE, NEWSGROUPS_FILE, etc.) to use /usr/local/lib/news. Many of these files are only used by the NNTP server, not the client, but to be safe I changed them all to point to the right directory. You can of course use the default pathnames; just make sure you create the directory accordingly. 3) Create the user "usenet" if you haven't already. The inews program runs as this user. All you need is a userid; you don't need a home directory or shell or anything for the user. Just plop the following line into your /etc/passwd: usenet:*:13:1::/: Make sure you set the userid ("13", above) to something unique. The group can be anything; I use "daemon" (gid 1).
- 4) Create the SERVER_FILE, above. For example, my news server is "wonton.tc.cornell.edu", so I created the file /usr/local/lib/news/server which contained one line: wonton.tc.cornell.edu
- 5) Create the PASSFILE. This file contains lines of the form

                      <server name> <username> <password>

  Let's say that your news server (the one in SERVER_FILE, above) is "shoop.vpizza.com", and to post on that machine you need to be authorized as the user "news" with a password of "floof". Thus, in the PASSFILE (I use /usr/local/lib/news/nntppass), you need the line shoop.vpizza.com news floof
- 6) Make this file secure! The inews program runs as the user "usenet", so make this news directory owned by that user and the nntppass file as well.

              chown usenet /usr/local/lib/news
              chmod 755 /usr/local/lib/news
              chown usenet /usr/local/lib/news/nntppass
              chmod 600 /usr/local/lib/news/nntppass

  So nobody else can read this file. No, the passwords in it are not encrypted.
- 7) Go back to the nntp.1.5.11 source directory; issue "make client". At this point you'll build the NNTP version of inews, which is the only software used by the NNTP client. When I built inews, there was a bug in the library which caused the function uname() in uname.c to call itself eternally. This should be gone now; however, if inews seems to hang and your system starts slowing down *a lot* you should rename the function "uname()" in uname.c to something like "my_uname()", and change the calls to it (in inews.c) to call my_uname() instead. Mail me if you run into this problem. (VDS note - this means mail to Matt-not me :-) )
- 8) Issue "make install_client". This will install the inews stuff. Also link /usr/local/lib/news/inews to /usr/local/bin/inews Now you should be able to happily post (by hand). Try something like the following:

                      $ inews -h << EOF
                      Newsgroups: misc.test
                      From: me@foo.bar.com
                      Subject: Testing
                      Reply-To: my-real-address@wherever.edu

                      This is a test.
                      EOF

  If this works, inews should post the article. You'll know because test-responders on misc.test will reply to the address on the Reply-To line, above. Please don't do test postings on real groups, like c.o.l. :)

### How do I build "rrn" as a nntp-based newsreader/poster ?

( mdw@sunsite.unc.edu (Matt Welsh) )

- 1. cd to the rn source directory and do "./Configure". For almost all the questions, take the defaults (it's very smart). Make sure you have a link to "cpp" (usually in /usr/lib/gcc-lib/i386-linux/2.3.3) in /lib, so rn can find it. - Don't panic if it says you're on a NeXT or a USG system. Just go with the flow - Answer "y" to "Do you expect to run these scripts and binaries on multiple machines?" - For your domain name: if your system is, say, "foo.bar.com", answer with just "bar.com" (the domain, not the entire hostname). - Answer "usenet" for the name of the user which is the news admin. - For "Where is your news library?" use the directory where the above NNTP files are kept: I use /usr/local/lib/news. - Man page source is in /usr/man/man1. - Answer "y" to "Does your /etc/passwd file keep full names in Berkeley/V7 format?" - Answer "gcc" to the name of the compiler which forces resolution. - Answer "y" to "Do you want to build the NNTP version of rn (rrn)?" - For the name of the news server file: use the same name you used when building inews, above (for me, /usr/local/lib/news/server). Don't run makedepend yet! Go to the next step:
- 2) Edit config.h. Change the "#define ROOTID " line to #define ROOTID 0 if it isn't already.
- 3) In rrn-4.4.pl3, there is a small bug with SIGEMT: it doesn't exist on Linux. rn used SIGEMT to check if a process is still running; however, under POSIX.1 we can instead just send the process a signal 0. Edit init.c. On line 243, note the following: if (kill(processnum, SIGEMT)) { Change this to if (kill(processnum, 0)) { You may wish to `#ifdef` it out instead; it's up to you. Don't just define SIGEMT to be zero; this will break the sigignore() call in final.c.
- 4) Issue "makedepend > makedepend.out".
- 5) Issue "make". Rn should compile happily.
- 6) Issue "make install". You're all set. Keep in mind that rn does in fact eat a lot of memory (as does any newsreader), handling the newsgroups file. So when you first run rn, it might be a little slow building your .newsrc and checking for new groups. If you're impatient, copy a .newsrc from somewhere else and use that.