home *** CD-ROM | disk | FTP | other *** search
/ ftp.pasteur.org/FAQ/ / ftp-pasteur-org-FAQ.zip / FAQ / usenet / software / inn-faq / part2 < prev    next >
Encoding:
Internet Message Format  |  1997-12-15  |  45.6 KB

  1. From: hwr@pilhuhn.de (Heiko W.Rupp)
  2. Newsgroups: news.software.nntp,news.software.b,news.answers
  3. Subject: INN FAQ Part 2/9: Specific notes for specific operating systems
  4. Supersedes: <faq.p2_881029525@pilhuhn.de>
  5. Followup-To: news.software.nntp
  6. Date: 9 Dec 1997 03:25:31 +0100
  7. Organization: The Home Of The Pilhuhn
  8. Lines: 1232
  9. Approved: hwr@pilhuhn.de
  10. Expires: 26 Dec 1997 02:25:25 GMT
  11. Message-ID: <faq.p2_881634325@pilhuhn.de>
  12. NNTP-Posting-Host: snert.pilhuhn.de
  13. Summary: This article is part 2 of a multi-part FAQ:
  14.     Part 2: Advice specific to certain operating systems.
  15. Path: senator-bedfellow.mit.edu!bloom-beacon.mit.edu!boulder!csnews!coop.net!Supernews73!supernews.com!news.he.net!newsfeed.gte.net!cpk-news-hub1.bbnplanet.com!news.bbnplanet.com!fu-berlin.de!news.belwue.de!news.uni-ulm.de!rz.uni-karlsruhe.de!pilhuhn.de!snert!news
  16. Xref: senator-bedfellow.mit.edu news.software.nntp:43977 news.software.b:22606 news.answers:118769
  17.  
  18. Posted-By: post_faq 2.10
  19. Archive-name: usenet/software/inn-faq/part2
  20. Last Changed: $Date: 1997/09/23 01:25:52 $ $Revision: 2.34 $
  21.  
  22.                   Part 2 of 9
  23.  
  24. INN FAQ Part 1: General and questions from people that don't (yet) run INN
  25. INN FAQ Part 2: Specific notes for specific operating systems
  26. INN FAQ Part 3: Reasons why INN isn't starting
  27. INN FAQ Part 4: The debugging tutorial (setup of feeds etc.)
  28. INN FAQ Part 5: Other error messages and what they mean
  29. INN FAQ Part 6: Day-to-day operation and changes to the system
  30. INN FAQ Part 7: Problems with INN already running
  31. INN FAQ Part 8: Appendix A: Norman's install guide
  32. INN FAQ Part 9: Appendix B: Configurations for certain systems
  33.  
  34.  
  35. ------------------------------
  36.  
  37. Subject:  Table Of Contents for Part 2/9
  38.  
  39. =====================================================================
  40.         TABLE OF CONTENTS FOR PART 2/9
  41. =====================================================================
  42.  
  43. SPECIFIC NOTES FOR SPECIFIC OPERATING SYSTEMS:
  44.     2.1 BASH tips
  45.     2.2 GNUS tips
  46.     2.3 AIX tips
  47.     2.4 SunOS 4.1.1 tips
  48.     2.5 Ultrix tips
  49.     2.6 HP-UX tips
  50.     2.7 UnixWare tips
  51.     2.8 Linux tips
  52.     2.9 A/UX 3.0 (Macintosh) tips
  53.     2.10 Alpha OSF tips
  54.     2.11 SGI IRIX 5.x tips
  55.     2.12 Systems where only root can have "cron" jobs.
  56.     2.13 System V based Unixes (SVR4, Solaris 2.x, SCO ODT 3.0, AIX, A/UX, DELL, ...)
  57.     2.14 Solaris 2.x special needs
  58.     2.15 Slackware Tips
  59.     2.16 BSDi 2.0 / FreeBSD / NetBSD
  60.     2.17 3Com Router users
  61.     2.18 NOV problems on a Pyramid
  62.     2.19 Warnings to people that must set HAVE_UNIX_DOMAIN to DONT
  63.     2.20 INN for SNI RM400
  64.     2.21 INN on NeXT-/OpenStep
  65.  
  66. Note: See also Appendix B (Part 9 of the FAQ)
  67.  
  68. ======================================================================
  69.             SPECIFIC NOTES FOR SPECIFIC OPERATING SYSTEMS
  70. ======================================================================
  71.  
  72. ------------------------------
  73.  
  74. Subject: (2.1) BASH tips
  75.  
  76. If you are using a Unix who's /bin/sh is a hardlink to
  77. bash, you'll find problems using nntpsend.  nntpsend uses
  78. a variable named PPID, which is a read-only variable in BASH.
  79.  
  80. You'll get errors that look like this:
  81. sh: PPID: read-only variable
  82.  
  83. You can fix it using the the following patch:
  84.  
  85.  
  86. *** nntpsend~   Thu Aug 12 03:36:16 1993
  87. --- nntpsend    Sat Oct 23 15:54:11 1993
  88. ***************
  89. *** 1,4 ****
  90. ! #! /bin/sh
  91.   ##  $Revision: 2.34 $
  92.   ##  Send news via NNTP by running several innxmit processes in the background.
  93.   ##  Usage:
  94. --- 1,4 ----
  95. ! #!/usr/local/bin/bash
  96.   ##  $Revision: 2.34 $
  97.   ##  Send news via NNTP by running several innxmit processes in the background.
  98.   ##  Usage:
  99. ***************
  100. *** 130,140 ****
  101.       chmod 0660 ${LOG}
  102.       exec >>${LOG} 2>&1
  103.   fi
  104. ! PPID=$$
  105. ! echo "${PROGNAME}: [${PPID}] start"
  106.   
  107.   ##  Set up environment.
  108. ! export BATCH PROGNAME PPID INNFLAGS
  109.   
  110.   ##  Loop over all sites.
  111.   cat ${INPUT} | while read SITE HOST MAXSIZE FLAGS; do
  112. --- 130,140 ----
  113.       chmod 0660 ${LOG}
  114.       exec >>${LOG} 2>&1
  115.   fi
  116. ! CPID=$$
  117. ! echo "${PROGNAME}: [${CPID}] start"
  118.   
  119.   ##  Set up environment.
  120. ! export BATCH PROGNAME CPID INNFLAGS
  121.   
  122.   ##  Loop over all sites.
  123.   cat ${INPUT} | while read SITE HOST MAXSIZE FLAGS; do
  124. ***************
  125. *** 240,246 ****
  126.       fi
  127.   
  128.       ##  Start sending this site in the background.
  129. !     export SITE HOST LOCKS BATCHFILE PROGNAME PPID SIZE TMPDIR
  130.       sh -c '
  131.         BATCHFILE=${HOST}.nntp
  132.         LOCK=${LOCKS}/LOCK.${HOST}
  133. --- 240,246 ----
  134.       fi
  135.   
  136.       ##  Start sending this site in the background.
  137. !     export SITE HOST LOCKS BATCHFILE PROGNAME CPID SIZE TMPDIR
  138.       sh -c '
  139.         BATCHFILE=${HOST}.nntp
  140.         LOCK=${LOCKS}/LOCK.${HOST}
  141. ***************
  142. *** 247,253 ****
  143.         trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
  144.         shlock -p $$ -f ${LOCK} || {
  145.             WHY="`cat ${LOCK}`"
  146. !           echo "${PROGNAME}: [${PPID}:$$] ${HOST} locked ${WHY} `date`"
  147.             exit
  148.         }
  149.         if [ -f ${SITE}.work ] ; then
  150. --- 247,253 ----
  151.         trap "rm -f ${LOCK} ; exit 1" 1 2 3 15
  152.         shlock -p $$ -f ${LOCK} || {
  153.             WHY="`cat ${LOCK}`"
  154. !           echo "${PROGNAME}: [${CPID}:$$] ${HOST} locked ${WHY} `date`"
  155.             exit
  156.         }
  157.         if [ -f ${SITE}.work ] ; then
  158. ***************
  159. *** 254,259 ****
  160. --- 254,260 ----
  161.             cat ${SITE}.work >>${BATCHFILE}
  162.             rm -f ${SITE}.work
  163.         fi
  164. +       if [ -s ${SITE} ] ; then
  165.         mv ${SITE} ${SITE}.work
  166.         if ctlinnd -s -t30 flush ${SITE} ; then
  167.             cat ${SITE}.work >>${BATCHFILE}
  168. ***************
  169. *** 260,273 ****
  170.             rm -f ${SITE}.work
  171.             test -n "${SIZE}" && shrinkfile -s${SIZE} -v ${BATCHFILE}
  172.             if [ -s ${BATCHFILE} ] ; then
  173. !               echo "${PROGNAME}: [${PPID}:$$] begin ${HOST} `date`"
  174. !               echo "${PROGNAME}: [${PPID}:$$] innxmit ${INNFLAGS} ${HOST} ..."
  175.                 eval innxmit ${INNFLAGS} ${HOST} ${BATCH}/${BATCHFILE}
  176. !               echo "${PROGNAME}: [${PPID}:$$] end ${HOST} `date`"
  177.             else
  178.                 rm -f ${BATCHFILE}
  179.             fi
  180.         fi
  181.         rm -f ${LOCK}
  182.       ' &
  183.       sleep 5
  184. --- 261,275 ----
  185.             rm -f ${SITE}.work
  186.             test -n "${SIZE}" && shrinkfile -s${SIZE} -v ${BATCHFILE}
  187.             if [ -s ${BATCHFILE} ] ; then
  188. !               echo "${PROGNAME}: [${CPID}:$$] begin ${HOST} `date`"
  189. !               echo "${PROGNAME}: [${CPID}:$$] innxmit ${INNFLAGS} ${HOST} ..."
  190.                 eval innxmit ${INNFLAGS} ${HOST} ${BATCH}/${BATCHFILE}
  191. !               echo "${PROGNAME}: [${CPID}:$$] end ${HOST} `date`"
  192.             else
  193.                 rm -f ${BATCHFILE}
  194.             fi
  195.         fi
  196. +       fi
  197.         rm -f ${LOCK}
  198.       ' &
  199.       sleep 5
  200. ***************
  201. *** 275,278 ****
  202.   
  203.   wait
  204.   rm -f ${INPUT}
  205. ! echo "${PROGNAME}: [${PPID}] stop"
  206. --- 277,280 ----
  207.   
  208.   wait
  209.   rm -f ${INPUT}
  210. ! echo "${PROGNAME}: [${CPID}] stop"
  211.  
  212. ------------------------------
  213.  
  214. Subject: (2.2) GNUS tips
  215.  
  216. In article <3g82ll$mr4@tid.tid.es> Emilio Losantos <emilio@tid.es> writes:
  217.  
  218. > I have to use GNUS 4.1 to read news from a nntp server running INN 1.4, but
  219. > whenever I try to select a group I receive the message:
  220.  
  221. >  "GROUP" not implemented; try "help"
  222.  
  223. > Could anybody tell me how to fix this problem?
  224.  
  225. jbryans@csulb.edu (Jack Bryans) replies:
  226.  
  227. Patch your nntp.el something like this:
  228.  
  229. *** 72,77 ****
  230. --- 72,79 ----
  231.     (set-process-sentinel nntp/connection 'nntp/sentinel)
  232.     (process-kill-without-query nntp/connection)
  233.     (let ( (code (nntp/response)) )
  234. +     (nntp/command "mode reader")
  235. +     (nntp/response)
  236.       (or (eq code 200) (eq code 201))))
  237.   
  238.   (defun nntp-server-opened ()
  239.  
  240. Note that your line numbers may vary.  There's a lot of nntp.el's out there.
  241.  
  242. ------------------------------
  243.  
  244. Subject: (2.3) AIX tips
  245.  
  246. Q: Is there a config.data for AIX 4.1 ?
  247.  
  248. A: In <http://www.news.inet.tele.dk/config.data> you will find one for
  249. AIX 4.1.4 and INN1.5.1. If you want to use this with older INN versions,
  250. then you have to remove some lines from it. Note that it might be that
  251. in the sample CLX_STYLE is set to IOCTL. You might change this to
  252. FCNTL as described below (#2.13) if you get many overchan processes.
  253.  
  254. Q:  In config.data, should ACT_STYLE be set to READ or MMAP?
  255.  
  256. A:  Gee, some say MMAP works, some say it doesn't.  I recommend you use
  257. READ.  After you've been running for a month, try MMAP for a day and
  258. see what happens.
  259.  
  260. Kurt Jaeger <Kurt.Jaeger@RUS.Uni-Stuttgart.DE> adds:
  261.  
  262. On 3.2.5, MMAP works if one makes some patch to the innd so
  263. that it allocates one byte more than filelength(active) or
  264. filelength(history [or whatever is mapped by innd]).
  265.  
  266. Reason: If filelength(active/whatever file) on AIX is
  267. a multiple of page size (4096 bytes), searching for
  268. a trailing NUL byte in a MMAPed file will kill the process
  269. with SEGV or the AIX equivalent.
  270.  
  271.  
  272. Q: What compiler should I use?
  273.  
  274. A: Most people use what's listed in Install.ms, though we have
  275. one report of a AIX 3.2.5 user that found bsdcc worked better.
  276.  
  277. Q: When I run news.daily, there's always a few lines of error
  278. messages at the end of the output:
  279.  
  280. |    compress: bad file number
  281.  
  282. A:  AIX /usr/bin/compress has a bug when compressing files with zero
  283. length. Then it spits out this error.  Solution: Ignore it or use a
  284. different compress program and change config.data accordingly.
  285. (from Kurt Jaeger <pi@rus.uni-stuttgart.de>)
  286.  
  287.  
  288. Q:  innwatch doesn't work well from /etc/inittab, does it?
  289.  
  290. A:  Nope.  Instead, you can create a "subsystem" with this command:
  291.  
  292. mkssys -s innwatch -p /usr/local/news/bin/innwatch \
  293.     -u `id -u news` -G news -S -n 15 -f 9
  294.  
  295. Note that your path to innwatch may differ, depending on where you
  296. decided to install the inn components.  You also need to enter the
  297. command as one long line.
  298.  
  299. This will create a subsystem named "innwatch" belonging to an SRC group
  300. named "news".  The "-S" means that it uses signals for SRC to tell it
  301. when to stop and the "-n" is the SIGTERM signal, for normal shutdown,
  302. and the "-f" is the SIGKILL signal, which is sent if the process does
  303. not stop within 20 seconds.  Then, modify rc.news to issue the command
  304.  
  305.     startsrc -s innwatch
  306.  
  307. to get innwatch going.  That's it!
  308.  
  309. Shane Castle <swcxt@boco.co.gov, swcxt@csn.org>
  310.  
  311.  
  312. Q:  When I compile I get something like:
  313.     0706-317 ERROR: Unresolved or undefined symbols detected:
  314.         Symbols in error (followed by references) are
  315.         dumped to the load map.
  316.         The -bloadmap:<filename> option will create a load map.
  317.         .dbzwrit
  318.     cd frontends ; make  all ; cd ..
  319.     Target all is up to date.
  320. A:  That means you don't have a program called "patch" installed on
  321. your machine.  Refer to "Subject:  ld.so: Undefined symbol: _dbzwritethrough"
  322.  
  323.  
  324. Q:  What can I change in innwatch.ctl to make it work right?
  325.  
  326. A:  The "df" command in AIX has a funny output that requires you to
  327. modify innwatch.ctl.  The FTP site has an install.ctl that uses "df -i"
  328. (some AIX versions) and another one that uses "df -v" (recommended by
  329. someone with AIX 3.2.5).
  330.  
  331.  
  332. Q: Can I use a compressed filesystem?
  333.  
  334. A: (From Kurt Jaeger):
  335.  
  336. On AIX 4.1.x, use compressed filesystems with 512 bytes per fragment and 
  337. 2048 bytes per inode. This is the best space optimazation I could find up 
  338. to now.  News is I/O bound, so doing some more compression to save on head 
  339. seeks and reads will better balance your system. I currently have a 
  340. 100/60% yield: If the disk would be 100% full, 60% of the inodes would be used.
  341.  
  342. ------------------------------
  343.  
  344. Subject: (2.4) SunOS 4.1.1 tips
  345.  
  346. SunOS 4.1.1 (but not 4.1.2 or 4.1.3) broke the write system call but a
  347. patch is available.  Any write could fail "half way", it is just more
  348. likely to happen when writing large files and in-core DBZ writes the
  349. history file out in one chunk.  The "Known Problems" section of the
  350. installation manual says to install Patch 100293-01, but that has
  351. been replaced by 100622-01.
  352.  
  353. ------------------------------
  354.  
  355. Subject: (2.5) Ultrix tips
  356.  
  357. Tip #1:  Ultrix has a "mmap()" function, but it doesn't do the same
  358. thing as the SunOS/BSD mmap() function.  Therefore, do not configure
  359. INN to use mmap() on a Ultrix system.  INN wants to find a mmap()
  360. function that is like the one on SunOS/BSD systems.
  361.  
  362. Tip #2:  The sendsys script breaks Ultrix 'nawk'.  You can make
  363. a 1-line change or you can switch to 'awk' or "gawk".
  364. Original line:
  365.     ${AWK} "/^$1"'[/:\\]/,/[^\\]$/' ${NEWSFEEDS} >${TEMP}
  366. Modified line:
  367.     ${AWK} "/^$1"'[\/:\\]/,/[^\\]$/' ${NEWSFEEDS} >${TEMP}
  368. The original line will work with awk, gawk, but not nawk.
  369. The modified line will work with awk, gawk, or nawk.
  370. If you have gawk running on your machine use it.  Otherwise, switch to
  371. awk.
  372.  
  373. Tip #3: The syslog on Ultrix sucks rotten eggs and Digital refuses to
  374. fix it.  (source: everyone that uses Ultrix and has ever used other
  375. systems)  Luckily, you can replace it with the routine that comes with
  376. INN.  However, some people have had better luck installing the syslog
  377. that can be found on
  378. "gatekeeper.dec.com:/pub/DEC/jtkohl-syslog-complete.tar.Z".  It still
  379. works with old clients but does new-style syslogging, too.  Works great
  380. for me so far.  (this information from:  nelson@reed.edu (Nelson
  381. Minar)).  The syslog that is shipped with INN works pretty well but
  382. there have been some claims that some old clients don't like it.
  383.  
  384. ------------------------------
  385.  
  386. Subject: (2.6) HP-UX tips
  387.  
  388. Q.  My logs keep telling me there is no space for articles
  389. A.  Edit innwatch.ctl to use "bdf" instead of "df".
  390.  
  391. Q. I am running inn on an HP machine. INN won't start up automatically.
  392. I can start it manually.  There is no problem with news or INN once
  393. it is started.
  394.  
  395. A.  Try adding a "sleep 10" to the bottom of /etc/rc.news, or in
  396. /etc/rc, right after /etc/rc.news is invoked.  On some machines,
  397. including HP, the shell started by "#!/bin/sh" when /etc/rc is executed
  398. will exit before innd has disassociated itself from that shell.  This
  399. causes innd to exit, sometimes without printing an error message.
  400. (source: pjoslin@mbvlab.wpafb.af.mil (Paul Joslin ))
  401.  
  402. This problem goes away if you set HAVE_SETSID to "DO".  Something to do
  403. with Posix Session Leader concepts.  Ick.  (source: Steve Howie 
  404. <showie@uoguelph.ca>).  You can also do something like:
  405.  
  406.     echo /usr/lib/etc/rc.news | at now + 2 minutes
  407.  
  408. or else
  409.  
  410.     nohup su news -c /usr/local/etc/rc.news&
  411.  
  412. HP-UX 8.x and 9.x users might find a problem with getting innwatch to
  413. start up.  People have found that having "at" start it seems to work
  414. more reliably than other methods:
  415.  
  416. ${DOINNWATCH} && {
  417.     echo "${INNWATCH} &" | su ${NEWSUSER} -c 'at now + 2 min' > /dev/null
  418. }
  419.  
  420. The '&' in the command line prevents innwatch from taking up an at-job 
  421. slot.  SysV-style crons have a per-category and overall limit on the 
  422. number of jobs executing simultaneously.
  423.  
  424. Q:  INN-1.4sec running on an HP9000 s700 with HP-UX 9.01 leaks memory
  425. like crazy.  The innd process grows and grows, then stops with:
  426.  
  427.     "ME cant remalloc 8192 bytes Not enough space"
  428.  
  429. A:  The cause turns out to be a memory leak in the standard C library (both
  430. /lib/libc.a and /lib/libc.sl).  Installed patch PHCO_5056 (or the latest
  431. libc patch).
  432.  
  433. ------------------------------
  434.  
  435. Subject: (2.7) UnixWare tips
  436.  
  437. UnixWare 1.1.2 works with domain sockets.  Install
  438. ptf149 "unix domain sockets" and
  439. ptf678 "fix for sockmod's incorrect handling of disconnect indication"
  440.  
  441. Otherwise, configure like any SVR4 system.
  442.  
  443. ------------------------------
  444.  
  445. Subject: (2.8) Linux tips
  446.  
  447. Get inn-1.4-linux-0.1.tar from ftp://sunsite.unc.edu/pub/Linux/system/News
  448. It contains instructions for installing INN on a Linux system and a
  449. working config.data file.  (from ghio@myriad.pc.cc.cmu.edu)
  450.  
  451. If you don't follow the directions in inn-1.4-linux-0.1.tar, here 
  452. are some of the problems you might have:
  453.  
  454. > nntpsend.log says the following.
  455.  
  456. > nntpsend: [214:222] innxmit -a -t300 -T1800
  457. > travelers.mail.cornell.edu ...
  458. > Ignoring line "cornell/test/13 805 ..."
  459. > sh: PPID read-only variable
  460.  
  461. Tomasz Surmacz <tsurmacz@ict.pwr.wroc.pl> writes:
  462.  
  463. If you are using INN under Linux or have your /bin/sh a symlink to
  464. /bin/bash the above problem appears (in nntpsend precisely speaking,
  465. not innxmit)
  466.  
  467. The problem is that bash already defines the PPID variable and
  468. nntpsend is trying to use it too.  To fix this:
  469.  
  470. 1. comment out line PPID = $$
  471. 2. change all occurrences of PPID to say PARENTPID
  472.  
  473. I have also noticed that changing first line of nntpsend from
  474. '#!/bin/sh' to "#!/bin/bash" helps in such occasions.
  475.  
  476. Slackware 3.0 seems to have a different incarnation of df than others
  477. - so if you want to run innwatch change the following in innwatch.ctl:
  478.  
  479. From:
  480. < ##  =()<!!! df -i . | awk 'NR == 2 { print $3 }' ! lt !  @<INNWATCH_SPOOLNODES>@ ! throttle ! No space (spool inodes)>()=
  481. < !!! df -i . | awk 'NR == 2 { print $3 }' ! lt ! 200 ! throttle ! No space (spool inodes)
  482. To:
  483. > ##  =()<!!! df -i . | awk 'NR == 2 { print $4 }' ! lt !  @<INNWATCH_SPOOLNODES>@ ! throttle ! No space (spool inodes)>()=
  484. > !!! df -i . | awk 'NR == 2 { print $4 }' ! lt ! 200 ! throttle ! No space (spool inodes)
  485.  
  486. (from Jim Kerr <jak7@opsirm1.em.cdc.gov>)
  487.  
  488. ------ 
  489.  
  490. Linux 2.x complains at compiling:
  491.  
  492. gcc -O -o nnrpd article.o group.o commands.o misc.o newnews.o nnrpd.o
  493. post.o loadave.o ../libinn.a
  494. loadave.o(.text+0x3b): undefined reference to `nlist'
  495.  
  496. You can either add /usr/lib/libelf.a as missing library to the
  497. Makefile or apply the following patch (with some fuzz ... ) from
  498. coneill@premier1.premier.net (Clayton O'Neill) :
  499.  
  500. --- /usr/local/news/INN/nnrpd/loadave.c Fri Jan 29 10:51:58 1993
  501. +++ loadave.c   Wed Jul 17 15:36:30 1996
  502. @@ -1,8 +1,28 @@
  503. -/*  $Revision: 2.34 $
  504. +/*  $Revision: 2.34 $
  505.  **
  506.  */
  507.  #include "nnrpd.h"
  508.  #if    NNRP_LOADLIMIT > 0
  509. +#ifdef linux
  510. +
  511. +/*
  512. +**  Get the current load average as an integer.
  513. +*/
  514. +int
  515. +GetLoadAverage()
  516. +{
  517. +    FILE *ProcLoadAve;
  518. +    float load;
  519. +
  520. +    if ((ProcLoadAve=fopen("/proc/loadavg", "r"))==NULL)
  521. +        return -1;
  522. +    if (fscanf(ProcLoadAve,"%f", &load)!=1)
  523. +       return -1;
  524. +    fclose(ProcLoadAve);
  525. +    return (int)(load+0.5);
  526. +}
  527. +
  528. +#else
  529.  #include <nlist.h>
  530. [...]
  531. + #endif  /* linux */
  532. #endif  /* NNRP_LOADLIMIT > 0 */
  533.  
  534. ------ 
  535.  
  536. In some newer versions of Linux, nnrpd seems to seg fault. Reason is
  537. the size of fd_set (1024 bit), but the macros FD_??? operate on
  538. 256bit). This happens if HAVE_UNISTD is set to DONT, so set it to DO.
  539. If it still happens, then include <sys/time.h> at the top of include/clibrary.h
  540.  
  541. ------ 
  542.  
  543. It might be that rc.news never terminates in unoff4 (and probably
  544. other versions), when having DOINNWATCH=true. If this happenes then
  545. include a '&' in rc.news as shown:
  546.  
  547. : ${DOINNWATCH} && {
  548. :     ( sleep 60 ; ${INNWATCH} & ) &
  549.                               ^^^
  550.  
  551. ------------------------------
  552.  
  553. Subject: (2.9) A/UX 3.0 (Macintosh) tips
  554.  
  555. Tip #1: Use the INN malloc.
  556.  
  557. Tip #2:  If you are running INN 1.4 on a Mac running A/UX 3.0.1, Every
  558. so often, (generally when someone fires up a reader), INN goes berserk.
  559. Syslog says:
  560.  
  561.     innd: ME cant select Bad file number
  562.  
  563. This message repeats about 20 times per second.  It freezes up my
  564. computer and I need to reboot.
  565.  
  566. That's a kernel bug. You do have to reboot.
  567.  
  568. If you compiled inn with gcc, don't. My experience was that somehow, if
  569. INN was compiled with GCC the kernel bug is triggered, but that doesn't
  570. happen with cc.
  571.  
  572.  
  573. ------------------------------
  574.  
  575. Subject: (2.10) Alpha OSF tips:
  576.  
  577. To compile INN for the DEC Alpha, follow the instructions in the INN
  578. patch archive on ftp://ftp.isc.org/isc/inn/unoff-patches
  579.  
  580. A config.data file for OSF1.3a is in:
  581.     ftp://infinite.cs.swt.edu/pub/usenet/inn/
  582. A config.data file for OSF3.0 is in:
  583.     ftp://infinite.cs.swt.edu/pub/usenet/inn/
  584.  
  585. In rc.news you need to start $INNWATCH using the following:
  586.  
  587. ${DOINNWATCH} && {
  588.     echo "${INNWATCH} &" | su ${NEWSUSER} -c 'at now + 2 min' > /dev/null
  589. }
  590.  
  591. The '&' in the command line prevents innwatch from taking up an at-job
  592. slot.  SysV-style crons have a per-category and overall limit on the 
  593. number of jobs executing simultaneously.
  594.  
  595.  
  596. ------------------------------
  597.  
  598. Subject: (2.11) SGI IRIX 5.x tips
  599.  
  600. Some people have reported that IRIX 5.1 isn't very reliable and that it
  601. is worth it to run 5.2.   5.3 is even better, but it is still not
  602. perfect.  (In other words: IT WORKS FINE AS Install.ms DESCRIBES!)
  603.  
  604. Robert Keller <rck@fangio.asd.sgi.com> has some tips for filesystem
  605. layout:
  606.  
  607. NOTE: For efs filesystems, you want to be sure that you mount your
  608. news spool using the lbsize option (/etc/fstab) set to 4096, eg:
  609.           
  610.     /dev/dsk/dks1d5s7 /spool efs rw,raw=/dev/rdsk/dks1d5s7,lbsize=4096 0 0
  611.  
  612. This tells efs to only preallocate 4K worth of space on the first write 
  613. of a file to disk.  The default of 32K causes a terrible waste of effort 
  614. for the writing of an average 2K news posting.  This also can Innd
  615. slow down quite a bit, as the efs is searching for spare 32kB blocks on
  616. disk. If you can use xfs then do so.
  617.  
  618. For the new xfs filesystems, you want to be increase the default filesystem 
  619. block size from 512 bytes to about 2K for maximum performance.  I just setup 
  620. a 8 Gig xfs news spool on a Challenge L using 2K blocks and the performance 
  621. is absolutely incredible.
  622.  
  623. See also <http://reality.sgi.com/rck/software/inn.html> for more tips
  624. on running INN on SGI platforms.
  625.  
  626. Another note to the 5.3XFS: (From: olson@anchor.engr.sgi.com (Dave Olson))
  627.    The ordering/location of files in a directory can change when
  628.    files are unlinked, with xfs, and some of fastrm's assumptions
  629.    therefore break. 
  630. So if you get files which are to be expired with fastrm, but which
  631. stay in spool, then try to use normal expire or edit expirerm to
  632. remove -s option from RMPROC:
  633.    old: RMPROC="fastrm -e -s ${SPOOL}" 
  634.    new: RMPROC="fastrm -e -u ${SPOOL}"
  635. 6.2XFS has been changed to respect the traditional readdir()
  636. behaviour (after rck@fangio.asd.sgi.com (Robert Keller)).
  637.  
  638. Jack Bryans <jbryans@csulb.edu> writes:
  639.  
  640. Both ACT_STYLE and DBZCFLAGS may use MMAP.  If you use either, you'll
  641. need the following patch:
  642. *** include/clibrary.h.orig     Thu Mar 18 13:04:07 1993
  643. --- include/clibrary.h  Sat Mar  9 14:13:40 1996
  644. ***************
  645. *** 103,109 ****
  646. --- 103,111 ----
  647.   extern POINTER                malloc();
  648.   extern POINTER                realloc();
  649.   #if   defined(ACT_MMAP)
  650. + #ifndef __sgi
  651.   extern char           *mmap();
  652. + #endif /* not sgi */
  653.   #endif        /* defined(ACT_MMAP) */
  654.  
  655. ------------------------------
  656.  
  657. Subject: (2.12) Systems where only root can have "cron" jobs.
  658.  
  659. Your cron jobs may not work if you use:
  660.  
  661.     su news -c /usr/lib/news/bin/news.daily delayrm expireover
  662.  
  663. Instead, you must put the entire command in quotes.  Like this:
  664.  
  665.     su news -c "/usr/lib/news/bin/news.daily delayrm expireover"
  666.  
  667. Look for "Pyramid" later in this FAQ for the interesting details.
  668.  
  669. ------------------------------
  670.  
  671. Subject: (2.13) System V based Unixes (SVR4, Solaris 2.x, SCO ODT 3.0, AIX, A/UX, DELL, ...)
  672.  
  673. NOTE:  Solaris 2.x is based on SVR4.0.  These tips are useful in a
  674. limited way.  Read this section for general advice, but follow the
  675. "Solaris 2.x" section details.
  676.  
  677. If you are running any non-BSD (i.e. System V based) Unix you MUST have
  678. the following option set:
  679.  
  680. ##  How should close-on-exec be done?  Pick IOCTL or FCNTL.
  681. #### =()<CLX_STYLE              @<CLX_STYLE>@>()=
  682. CLX_STYLE               FCNTL
  683.  
  684. This includes SVR4, Solaris 2.x, A/UX and SCO ODT 3.0.  (SVR4 means
  685. systems based on System V Release 4 from USL.  Please check your manual
  686. to see if your operating system is based on SVR4.)
  687.  
  688. This CLX_STYLE setting is clearly stated in the Install.ms file and
  689. repeated here since so many people post to news.software.nntp after
  690. ignoring the warnings.
  691.  
  692. If CLX_STYLE isn't set to FCNTL, you'll get tons of overchan processes
  693. hanging around.
  694.  
  695. With SCO ODT 3.0 and MOST systems, innd will link and run if you use
  696. IOCTL but eventually will stop answering incoming calls.
  697.  
  698. Don't be fooled.  Just because it compiles doesn't mean it's going to
  699. work.
  700.  
  701. If you start innd on an AT&T SysV Rel 4.0 machine and get syslog
  702. messages like:
  703.     localhost:15 cant setsockopt(SNDBUF) Protocol error
  704.     localhost:15 cant setsockopt(RCVBUF) Protocol error
  705. then you should FIRST try to change HAVE_UNIX_DOMAIN to "DONT" in
  706. config.data.  If that doesn't fix the problem, you should add
  707. "-USO_SNDBUF" to your DEFS parameter in config.data.  Or, you can
  708. comment out the "setsockopt()" calls.  This is also mentioned
  709. in the Install.ms file (which means if you needed to read it
  710. here, you weren't paying attention when you read Install.ms)
  711.  
  712. Many SVR4 for i486 binaries (sendmail, mh, vmail, innd, rnews are now
  713. on ftp.germany.eu.net in pub/comp/i486/svr4/*.SVR4.tgz But remember
  714. that some of the above need site specific changes, so their usefulness
  715. may be limited.
  716.  
  717. If you get syslog messages that say, "ME cant accept RCreader"
  718. please refer to Part 3 of this FAQ.
  719.  
  720. DELL ships their Unix with /dev/log chmod'ed to 0644 which means nobody
  721. can syslog anything.  Pretty stupid, eh?  INN uses syslog extensively.
  722. If you find that you don't get any syslog messages check to see if you
  723. need to: "chmod 0666 /dev/log".
  724.  
  725. Nobody knows why SVR4 boxes often give error messages like,
  726. "innd:  accept: SIOCGPGRP failed errno 22".  There's some sort of
  727. obscure bug with the SVR4 accept() call that can lead to these
  728. messages, if the executable is linked a certain way. I suspect that the
  729. same symbol -- for two totally separate variables or routines -- is
  730. defined in two different libraries, so if you link in certain ways you
  731. get the "wrong" thing. This error drove me crazy when I first built
  732. sendmail V8 on our NCR 3000 box. But I re-linked it a different way and
  733. I haven't seen the error since. Good riddance. I suggest you play
  734. around with your link libraries and/or order of linkage.
  735.  
  736. kevin@cfc.com (Kevin Darcy) says he never gets these messages since
  737. he started using (in config.data):
  738. LIBS                    -lsocket -lnsl -lelf
  739.  
  740.  
  741. If your SVR4 system still doesn't run correctly, check the
  742. Solaris 2.x suggestions.
  743.  
  744. ------------------------------
  745.  
  746. Subject: (2.14) Solaris 2.x special needs
  747.  
  748. Solaris 2.5:
  749.     Sun assures that Solaris 2.5 does no longer have the socket bug
  750.     (see fix #7 below) and Dave Zavatson <dhzavatson@ucdavis.edu> writes
  751.     that the bug still exists ... So if you see "'resource temp
  752.     unavailable' errors, you have to apply it.
  753.  
  754. Joe St Sauver <JOE@OREGON.UOREGON.EDU> submitted the following:
  755. | Symptom: One of the topologically distant sites notices far lower than normal 
  756. | article throughput. Further investigation by the remote site (using netstat) 
  757. | identifies a large number of "completely duplicated packets" originating 
  758. | with the Solaris feed host. 
  759.  
  760. | Resolution: The local Solaris 2.5 host had not applied Sun patches 103169-05 
  761. | ("ip driver and ifconfig fixes") and 103447-03  ("tcp patch") as can be 
  762. | obtained from ftp://sunsolve1.Sun.COM/pub/patches/patches.html 
  763. | (Solaris 2.5.1 users, see 103582-01 and 103630-01).
  764.  
  765. | Without these patches, when working with hosts that are topologically 
  766. | remote, TCP/IP throughput reportedly can drop to as little as 5% of 
  767. | what it should be. 
  768. | For further information, see: <199607140422.VAA04495@yorick.cygnus.com>
  769. | quoting a 7 June 1996 article posted to comp.unix.solaris by Cathe A. Ray 
  770. | (Manager of Internet Engineering for Sun).
  771.  
  772. | Thanks to Howard Goldstein <hgoldste@bbs.mpcs.com> for the detective work in
  773. | isolating and resolving this problem!
  774.  
  775. SOLARIS 2.4:  Install the Recommended cluster patch from Sun.
  776. The Recommended cluster patch is:
  777.     ftp://sunsolve1.sun.com/pub/patches/2.4_Recommended.tar.Z
  778.     The README is:
  779.     ftp://sunsolve1.sun.com/pub/patches/2.4_Recommended.README
  780. Then follow the directions in
  781.     ftp://ftp.isc.org/isc/inn/unoff-patches/OLD/solaris-2.4.patch.
  782.     The patch needs to be applied BY HAND, it is not in the correct format
  783.     to work with Larry Wall's patch program.  Also, do *not* link with the
  784.     /usr/ucblib stuff, and HAVE_WAITPID should be set to "DO".
  785. On 3/25/95 Sun introduced patch 101945-23 which fixes bug #1178506 titled
  786.     "INN wounded after upgrade to SunOS 5.4".  This fixes the
  787.     "cant read Resource temporarily unavailable" bug that some
  788.     have reported.
  789.     But Even if the Sun Patch mentions
  790.     "1186224 socket select hangs in NON-BLOCKED mode", this seems not to
  791.     be totally fixed. Ian Dickinson <idickins@fore.com>
  792.         doesn't notice it on his lightly loaded
  793.     server. But on heavily loaded machines, it occurs occasionally 
  794.     (<5 times a day). See below for a patch (Solaris Fix #7 )
  795. It seems that the last version of the kernel patch for Sparc is 19945-36;
  796. 191945-29 is known to work. For x86 the latest version is 101946-29,
  797. which has problems with Unix domain sockets, so 101946-12 seems to be the 
  798. last usable one here ...
  799.  
  800. Include /opt/SUNWspro/bin  and /usr/bin in your path before /usr/ucb as
  801.     /usr/ucb/sed does not work well.
  802.  
  803. SOLARIS 2.3:  If you install the "Recommended cluster patch" I *think*
  804.     you will only need to pay attention to Fix #5 listed below.  It would
  805.     be helpful if people sent an update about this.
  806. The Recommended cluster patch is:
  807.     ftp://sunsolve1.sun.com/pub/patches/2.3_Recommended.tar.Z
  808. The README is:
  809.     ftp://sunsolve1.sun.com/pub/patches/2.3_Recommended.README
  810.  
  811. (note: If you trust other people to compile programs for you
  812. [especially ones that run as root] you can get inn1.4sec pre-compiled
  813. w/gcc at ccnews.ke.sanet.sk:/pub/solaris/inn1.4sec-src+bin.tar.gz)
  814.  
  815. INN works with Solaris 2.[0123].  It's not easy, but it will work.
  816. The problem is that depending on which Solaris patches you have
  817. installed, you have to install various INN patches.  There are too
  818. many combinations of Sun patches and INN patches to be able to say
  819. what is required and what isn't.  (See the "SOLARIS 2.3" tip above
  820. for one tried and tested configuration).
  821.  
  822. Here is the general guide: 
  823.  
  824. Step 1:  Use the info for config.data for Solaris 2.x that is included
  825.     Install.ms.
  826. Step 2:  As you go, if you get any of the problems listed below, try
  827.     the fix listed.
  828.  
  829. Eventually you will be up and running with only the fixes you need.  If
  830. you try to install ALL the fixes at once, things will definitely not
  831. work.
  832.  
  833. COMPILER TIPS:  Use gcc or /opt/SUNWspro/bin/cc.  Do *not* use
  834. /usr/ucb/cc.  In fact, remove /usr/ucb from your path when you compile.
  835.  
  836. For directory structure - be careful about /var/news, as the news(1)
  837. tool also writes in this area an might damage your files. (Need more
  838. input on this).
  839.  
  840. The patch program supplied with Solaris 2.5 appears to not understand
  841. the "new-style" context diffs which virtually everyone uses these
  842. days so you have to fetch the gnu-patch as described in part8 of this
  843. FAQ. Also it doesn't know -p0 option ; it wants -p 0 and the file to
  844. patch has to be writable.
  845.  
  846. ---------- Solaris Fix #1
  847.  
  848. Under Solaris 2.[012] (SunOS 5.0, 5.1, 5.2) you must add the following
  849. at the beginning of each file using gethostbyname():
  850.  
  851. #define gethostbyname __switch_gethostbyname
  852.  
  853. Under Solaris 2.3 gethostbyname() might work without changes depending
  854. on your configuration.  We haven't figured out when they work and when
  855. they don't.  If you run into problems, try to change "gethostbyname()"
  856. to "solaris_gethostbyname()" and then use the gethostbyname() listed in
  857. the Solaris Porting FAQ.  This isn't a perfect solution, because you
  858. now need a different binary for Solaris 2.[012] systems.
  859.  
  860. It also seems to be a good idea to put dns in front of nis in 
  861. /etc/nsswitch.conf
  862.  
  863. hosts: dns nis files
  864.  
  865. It would be great if someone were to submit a solaris_gethostbyname()
  866. function who's binary works under all Solaris revs and gives all the
  867. semantics of BSD gethostbyname().  In particular, one that doesn't have
  868. the problems discussed in sun bugid #1126573 or #1135988.  It would be
  869. amazing if this was submitted by one of the many Sun employees that
  870. flame the INN FAQ maintainer in comp.sys.sun.admin every time he bitches
  871. about how much he hates Solaris 2.x. :-)
  872.  
  873. ---------- Solaris Fix #2
  874.  
  875. Under all Solaris 2.* versions there is a problem with innwatch.ctl.
  876. It expects to use "df -i" to find out how many inodes are free on your
  877. disk.  /usr/{sbin,5bin,bin}/df doesn't support the "-i" option, it has
  878. a "-e" option that outputs the info you want, but in a different
  879. format.  You should use "/usr/ucb/df -i" instead, since this version of
  880. df includes the "-i" option. 
  881.  
  882. If you have too much space left on your disks (;-)) you will see the 
  883. following:
  884.  
  885. Filesystem             iused   ifree  %iused  Mounted on
  886. /dev/md/dsk/d10      103495213433720     7%   /var/spool/news
  887.  
  888. So awk will print 7% as number of free inodes ... 
  889.  
  890. Ian Dickinson <idickins@fore.com> wrote a inndf which can be found at
  891. the usual place.  This inndf compiled with gcc and -DHAVE_STATVFS
  892. seems to work though (after Nash E. Foster <nef10958@usln1b.glaxo.com> ).
  893. A new version of this is available which works with large filesystems
  894. is available from ftp://ftp.csv.warwick.ac.uk/pub/usenet/inn/inndf.tar.gz
  895.  
  896. If you have your news spool NFS mounted from another box, which is 
  897. absolutely not recommended (see #5.15 , ME cant nonblock), then the 
  898. following might help: rsh other_box /usr/ucb/df -u /var/spool/news
  899.  
  900. /usr/ucb/df is part of the BSD Compatibility stuff.  If you loaded
  901. Solaris 2.x without that, you can replace innwatch.ctl's disk checks
  902. with these lines:
  903.  
  904. ##  If load is OK, check space (and inodes) on various filesystems
  905. ##  =()<!!! /usr/bin/df -k . | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_SPOOLSPACE>@ ! throttle ! No space (spool)>()=
  906. !!! /usr/bin/df -k . | awk 'NR == 2 { print $4 }' ! lt ! 8000 ! throttle ! No space (spool)
  907. ##  =()<!!! /usr/bin/df -k @<_PATH_BATCHDIR>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_BATCHSPACE>@ ! throttle ! No space (newsq)>()=
  908. !!! /usr/bin/df -k /news2/spool/out.going | awk 'NR == 2 { print $4 }' ! lt ! 800 ! throttle ! No space (newsq)
  909. ##  =()<!!! /usr/bin/df -k @<_PATH_NEWSLIB>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_LIBSPACE>@ ! throttle ! No space (newslib)>()=
  910. !!! /usr/bin/df -k /news2/privcontrol | awk 'NR == 2 { print $4 }' ! lt ! 40000 ! throttle ! No space (newslib)
  911. ##  =()<!!! /usr/bin/df -k @<_PATH_OVERVIEWDIR>@ | awk 'NR == 2 { print $4 }' ! lt ! @<INNWATCH_OVERVIEWSPACE>@ ! throttle ! No space (overview)>()=
  912. !!! /usr/bin/df -k /news3/overview | awk 'NR == 2 { print $4 }' ! lt ! 6000 ! throttle ! No space (overview)
  913. ##  =()<!!! /usr/bin/df -e . | awk 'NR == 2 { print $2 }' ! lt ! @<INNWATCH_SPOOLNODES>@ ! throttle ! No space (spool inodes)>()=
  914. !!! /usr/bin/df -e . | awk 'NR == 2 { print $2 }' ! lt ! 200 ! throttle ! No space (spool inodes)
  915.  
  916. ---------- Solaris fix #3
  917.  
  918. Don't run the "lint" step if you use Solaris.  In fact, nobody needs to
  919. execute this step except Rich, when he's writing new code.  If you have
  920. a Solaris machine without "lint", just make "lint" a symlink to
  921. "/bin/echo".
  922.  
  923. ---------- Solaris fix #4
  924.  
  925. People running Solaris 2.3 have built INN with HAVE_UNIX_DOMAIN set to
  926. TRUE and everything seems to be ok.  I guess Sun has fixed enough
  927. bugs in 2.3 to make it usable.  I recommend the latest "recommended
  928. patches" if you run any version of Solaris 2.x.  To install all of
  929. the "Recommended Patches" in one command, refer to:
  930. ftp://sunsolve1.sun.com/pub/patches/patches.html
  931.  
  932. ---------- Solaris fix #5
  933.  
  934. If "inews" outputs "Bad Message-ID" when posting Under Solaris 2.x
  935. (where x = 0, 1, 2 or 3) you need to change the file "getfqdn.c".  Find
  936. the lines that read:
  937.  
  938.     if (strchr(hp->h_name, '.') == NULL) {
  939.         /* Try to force DNS lookup if NIS/whatever gets in the way. */
  940.         (void)strncpy(temp, buff, sizeof buff);
  941.         (void)strcat(temp, ".");
  942.         hp = gethostbyname(temp);
  943.     }
  944.  
  945. and delete them.
  946.  
  947. ---------- Solaris fix #6
  948.  
  949. If posting gets you "441 Can't generate Message-ID, Error 0" and you
  950. are running with DNS, then the problem is with Solaris 2.3's
  951. gethostbyname.  dns.  If you ask for a host with "hostname." it returns
  952. "hostname." instead "hostname.yourdomain.com" as expected by nn.  The
  953. workaround is to define "domain" in your inn.conf and apply the
  954. following patch to getfqdn.c:
  955.  
  956. *** getfqdn.c.~1~       Sun Sep  4 09:02:37 1994
  957. --- getfqdn.c   Sun Sep  4 09:53:11 1994
  958. ***************
  959. *** 35,45 ****
  960.       if ((hp = gethostbyname(buff)) == NULL)
  961.         return NULL;
  962. !     if (strchr(hp->h_name, '.') == NULL) {
  963. !       /* Try to force DNS lookup if NIS/whatever gets in the way. */
  964. !       (void)strncpy(temp, buff, sizeof buff);
  965. !       (void)strcat(temp, ".");
  966. !       hp = gethostbyname(temp);
  967. !     }
  968. !     if (hp != NULL && strchr(hp->h_name, '.') != NULL) {
  969.         if (strlen(hp->h_name) < sizeof buff - 1)
  970.             return strcpy(buff, hp->h_name);
  971. --- 35,39 ----
  972.       if ((hp = gethostbyname(buff)) == NULL)
  973.         return NULL;
  974. !     if (strchr(hp->h_name, '.') != NULL) {
  975.         if (strlen(hp->h_name) < sizeof buff - 1)
  976.             return strcpy(buff, hp->h_name);
  977.  
  978. ---------- Solaris fix #7
  979.  
  980. From Ian Dickinson <ian@fore.com>:
  981. Sun appear to reduced the frequency of the problem, but not fixed the bug
  982. itself.  I still need this under SunOS5.4 101945-29.  You should already
  983. have -DSUNOS5 in your DEFS setting in config.data anyway.
  984. (Note that in 1.5.x this workaround is already in the source. You can
  985. enable with with specifying -DPOLL_BUG in the DEFS settings in
  986. config.data. Thanks to rhaskins@shiva.com who pointed that out).
  987.  
  988. This should apply - maybe with a bit of fuzz:
  989.  
  990. *** innd/chan.c.ORIG    Wed Dec 14 11:03:16 1994
  991. --- innd/chan.c Thu Dec 15 17:00:54 1994
  992. ***************
  993. *** 497,502 ****
  994. --- 497,508 ----
  995.       bp->Left = bp->Size - bp->Used;
  996.       i = read(cp->fd, &bp->Data[bp->Used], bp->Left - 1);
  997.       if (i < 0) {
  998. + #ifdef SUNOS5
  999. +     /* return of -2 indicates EAGAIN, for SUNOS5.4 poll() bug workaround */
  1000. +       if (errno == EAGAIN) {
  1001. +           return -2;
  1002. +       }
  1003. + #endif
  1004.         syslog(L_ERROR, "%s cant read %m", p);
  1005.         return -1;
  1006.       }
  1007. *** innd/nc.c.ORIG      Thu Mar 18 21:04:28 1993
  1008. --- innd/nc.c   Thu Dec 15 17:00:41 1994
  1009. ***************
  1010. *** 783,788 ****
  1011. --- 783,794 ----
  1012.       /* Read any data that's there; ignore errors (retry next time it's our
  1013.        * turn) and if we got nothing, then it's EOF so mark it closed. */
  1014.       if ((i = CHANreadtext(cp)) < 0) {
  1015. + #ifdef SUNOS5
  1016. +     /* return of -2 indicates EAGAIN, for SUNOS5.4 poll() bug workaround */
  1017. +       if (i == -2) {
  1018. +           return;
  1019. +       }
  1020. + #endif
  1021.         if (cp->BadReads++ >= BAD_IO_COUNT) {
  1022.             if (NCcount > 0)
  1023.                 NCcount--;
  1024.  
  1025. ---------- Solaris fix #8
  1026.  
  1027. From: Joe St Sauver <joe@decoy.uoregon.edu>
  1028.  
  1029. We recently upgraded some machines in our news farm to fast ethernet, and
  1030. after doing so we noticed poor performance (ping times of 30msec between
  1031. two machines each connected to dedicated switch ports on the same switch...).
  1032.  
  1033. Poking around a little, we noticed that under Solaris 2.5, tcp_conn_req_max
  1034. is set to 32 by default, which is a little low if you are working with a fair
  1035. number of peers or have a lot of readers. We bumped that value to 1000 or
  1036. so (1024 max under Solaris 2.5), using:
  1037.  
  1038. # ndd -set /dev/tcp tcp_conn_req_max 1000
  1039.  
  1040. and now ping times are back into the 0 or 1 msec reported range you'd hope to
  1041. see from that sort of topology. :-)
  1042.  
  1043. ------------------------------
  1044.  
  1045. Subject: (2.15) Slackware Tips
  1046.  
  1047. Slackware comes with The Reference Implementation of NNTP as well as
  1048. INN.  However, if you select "INN" it doesn't remove the nntp entry in
  1049. your /etc/inetd.conf.  If the Slackware people aren't sure why INN
  1050. requires you to remove that line from /etc/inetd.conf, they should get
  1051. out of the business.  (oh, they can complain to tal@plts.org... he wrote
  1052. this paragraph).
  1053.  
  1054. ------------------------------
  1055.  
  1056. Subject: (2.16) BSDi 2.0 / FreeBSD / NetBSD
  1057.  
  1058. Paul Vixie <paul@vix.com> wrote that for BSDi 2.0the use of mmap for 
  1059. use with the history file is ok (add -DMMAP to DBZCFLAGS in config.data), 
  1060. but not for active, so set ACT_STYLE to READ. Others write that it is
  1061. not. Your mileage may vary and depend on how heavily-used your machine
  1062. is.
  1063.  
  1064. For NetBSD1.0 and 1.1 one shouldn't use mmap() unless you add the 
  1065. following:
  1066.  
  1067. *** icd.c.orig  Wed Jun  7 15:04:05 1995
  1068. --- icd.c       Sat Dec 30 16:22:50 1995
  1069. ***************
  1070. *** 369,375 ****
  1071.   ICDwriteactive()
  1072.   {
  1073.   #if   defined(ACT_MMAP)
  1074. !     /* No-op. */
  1075.   
  1076.   #else
  1077.   
  1078. --- 369,375 ----
  1079.   ICDwriteactive()
  1080.   {
  1081.   #if   defined(ACT_MMAP)
  1082. !     msync(ICDactpointer, 0);
  1083.   
  1084.   #else
  1085.  
  1086. In NetBSD 1.1 the use of -DMMAP is also ok.(after Curt Sampson <curt@portal.ca>)
  1087.  
  1088. FreeBSD users should use mmap() with caution. There are serious problems 
  1089. with some realeases of the FreeBSD operating system concerning mmap()
  1090. and the performance without is quite good. With current releases,
  1091. namely 2.2.1, this seems fixed.
  1092.  
  1093. Users of 4.4 BSD derived systems should set LSEEKVAL in config.data to
  1094. ``off_t'' in order to reflect the 64bit long off_t's in those systems.
  1095.  
  1096. If you have problems with makehistory on BSDi then replace the BSDi sort 
  1097. command with an other one e.g. from the gnu textutils package. It seems 
  1098. that the BSDi one has some problems with 64kB boundaries.
  1099.  
  1100. BSDi has a default some datasize limits which will let some operations
  1101. fail. Add the following at the beginning of rc.news (and also of news.daily):
  1102.  
  1103. limit datasize unlimited
  1104. limit openfiles 256
  1105. limit memoryuse unlimited
  1106. limit maxproc unlimited
  1107.  
  1108. If this still fails look at #5.24 (the same applies to FreeBSD).
  1109.  
  1110. In 2.1, BSDi introduced a bug with wrong spelling of ``february''
  1111. somewhere which lets inn fail somehow .. But they also have a patch:
  1112.  
  1113. ftp://ftp.bsdi.com/bsdi/patches/patches-2.1/U210-002
  1114.  
  1115. Here's the Summary from the fix:
  1116.  
  1117.     This patch fixes a bug in the BSD/OS 2.1 release of the inn
  1118.     programs.  A fix that we made between the 2.0 and 2.1
  1119.     releases introduced a bug that caused innd to incorrectly
  1120.     parse dates.  The symptom is that inn programs fail with
  1121.     "437 Bad "Date" header" in the /var/log/news/news file, or
  1122.     that Pnews will fail with "441 Can't parse "Date" header"
  1123.     messages.
  1124.  
  1125. For FreeBSD 2.1.6 and INN1.5 Vincent Archer <archer@frmug.org> has written
  1126. a autoconf package, that you can get from 
  1127. <ftp://ftp.frmug.org/pub/news/autoconf-inn.1.5.tar.gz>
  1128. James will try to incorporate this into the main INN tree.
  1129.  
  1130. To get it to work:
  1131.  
  1132. Go to your inn 1.5 source directory, untar, you'll get configure and
  1133. config/config.data.in.
  1134.     
  1135. Type ./configure; make; make install :)
  1136. (well, you might want to check the pathnames and parameters first, or type
  1137.  ./configure --help)
  1138.  
  1139.  
  1140. ------------------------------
  1141.  
  1142. Subject: (2.17) 3Com Router users
  1143.  
  1144. If you observe strange behavior, like nnrpd locking and not sending
  1145. some articles to the clients, and if you find no clues about other
  1146. potential problems, then check your IP layer: some users have observed
  1147. bugs in the IP implementation of 3Com routers caused TCP
  1148. sessions lock outs.  You have very probably also NFS problems then.
  1149. Upgrading to the latest PROMs fixes this totally bizarre problem.
  1150.  
  1151. ------------------------------
  1152.  
  1153. Subject: (2.18) NOV problems on a Pyramid
  1154.  
  1155. This applies only to Pyramid systems that run OSx. Newer systems run DC/OSx
  1156. and/or Sinix 5.43 which are "normal" SysV that have normal cronjobs.
  1157.  
  1158. Q:  I just turned on the overview stuff and I don't think news.daily is
  1159. properly expiring the .overview files.  I'm using a Pyramid.
  1160.  
  1161. A:  Do you need quotes in your crontab entry?  Look at your news.daily
  1162. report -- expire using "expireover delayrm" should take a few minutes.
  1163. If it takes longer than, say, 10-20 minutes, then the keywords aren't
  1164. being seen by news.daily so perhaps the commandline quoting is wrong.
  1165.  
  1166. i.e. you had:
  1167.  
  1168.     su news -c /usr/lib/news/bin/news.daily delayrm expireover
  1169.  
  1170. You should have:
  1171.  
  1172.     su news -c "/usr/lib/news/bin/news.daily delayrm expireover"
  1173.  
  1174. Without quoting, the options are thrown away and only the "news.daily"
  1175. is executed.
  1176.  
  1177. ------------------------------
  1178.  
  1179. Subject: (2.19) Warnings to people that must set HAVE_UNIX_DOMAIN to DONT
  1180.  
  1181. Disclaimer:  First of all, if you have to set HAVE_UNIX_DOMAIN to DONT,
  1182. YOU HAVE TO SET IT to DONT.  It's not a choice you can make, it's a
  1183. description of the operating system that you've purchased.  If you've
  1184. wrongly set this variable to DO your system isn't going to work *at*
  1185. *all*.
  1186.  
  1187. When you use POST (the NNTP command), you are talking to nnrpd.  nnrpd
  1188. cleans up your headers, adds the missing headers that it is allowed to
  1189. add, checks whatever it checks, and then submits the finalized version
  1190. to innd.  How does it talk to innd?
  1191.  
  1192. If you have HAVE_UNIX_DOMAIN set to DO, nnrpd opens a Unix domain
  1193. socket and sends the text.  At this point it is talking to innd
  1194. somewhat like ctlinnd does.  innd can trust that the post isn't
  1195. forged since it is coming from a program trustworthy enough to
  1196. get to the socket (which isn't much).
  1197.  
  1198. If you have HAVE_UNIX_DOMAIN set to DONT, it has no choice but to open
  1199. a socket to port 119, issue the "IHAVE" command, and send the text that
  1200. way (just like a remote newsreader).  This means that innd (not another
  1201. nnrpd) has to be at the other end of the pipe.  If it opens the
  1202. connection and sees a "nnrpd" you're hosed and you get "441 480
  1203. Transfer permission denied".  (Better the "441 480" message than an
  1204. infinite loop of nnrpd's connecting to nnrpd's!)  To get innd to not
  1205. hand off the connection to a nnrpd process, you must have the host's
  1206. name in the hosts.nntp file.  (don't forget to do "ctlinnd reload
  1207. hosts.nntp")
  1208.  
  1209. If you have your host's name in the hosts.nntp file, then any
  1210. newsreader running on your nntphost must be "INN-aware" (i.e. that they
  1211. issue the "mode reader" command) or they must read news via the file
  1212. system instead of NNTP.
  1213.  
  1214. If you have NNTP-based newsreaders that can't send the "mode reader"
  1215. command, you can try including "server: localhost" in your inn.conf
  1216. file, but then you must have a different inn.conf file for the other
  1217. machines.  If you can't do that, you have no other options but to
  1218. recompile your newsreaders.
  1219.  
  1220. Remember, if you change your inn.conf file, you must shutdown and
  1221. restart innd.  There is no "ctlinnd reload inn.conf" command.
  1222.  
  1223. There is a patch which is listed in the unoff3/UNOFF-NOTES that seems to
  1224. work at least for linux but should theoretically work for other os that
  1225. have to set HAVE_UNIX_DOMAIN to DONT which resolves the problem that
  1226. multiple invocations of ctlinnd break.
  1227.  
  1228. ------------------------------
  1229.  
  1230. Subject: (2.20) INN for SNI RM400
  1231.  
  1232. There seems to be no working config.data available for that hardware,
  1233. but you can get a ported version of INN from SNI in the ``NetServe'' 
  1234. package.
  1235. If anyone has a working configuration and tips how to get there, then
  1236. mail the FAQ maintainer for inclusion in part9 ..
  1237.  
  1238. ------------------------------
  1239.  
  1240. Subject: (2.21) INN on NeXT-/OpenStep
  1241.  
  1242. Scott Anguish <sanguish@digifix.com> has made his tips of configuring
  1243. INN on NeXT-/OpenStep available on
  1244.  
  1245. http://www.stepwise.com/Resources/Software/inn_1.5.1_configuration.html
  1246. -- 
  1247.           See <a href="http://www.netbsd.org">NetBSD</a> for a multiplatform OS
  1248. What would you call a BBS run by a mom?
  1249.    A "mother board".
  1250.