home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / bsd_srcs / share / doc / smm / 10.newsop / install.mn next >
Encoding:
Text File  |  1991-04-17  |  74.3 KB  |  3,173 lines

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