home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / sys / atari / st / 12762 < prev    next >
Encoding:
Internet Message Format  |  1992-08-25  |  33.5 KB

  1. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!Sirius.dfn.de!math.fu-berlin.de!fub!tpki.toppoint.de!oski.toppoint.de!olaf
  2. From: olaf@oski.toppoint.de (Olaf Schlueter)
  3. Newsgroups: comp.sys.atari.st
  4. Distribution: world
  5. Subject: Installation Guide for NN 6.4.11 ST
  6. Message-ID: <9208242962@oski.toppoint.de>
  7. Organization: Toppoint Mailbox e.V.
  8. Date: Mon, 24 Aug 92 23:30:39 MEST
  9. Lines: 862
  10.  
  11. [In case I said anything different from what is stated in this document, 
  12. this document is right, and I've been wrong.]
  13.  
  14.                         How to install NN 6.4.11 ST
  15.                         ---------------------------
  16.                     Olaf Schlueter <olaf@oski.toppoint.de>
  17.  
  18.      Advice
  19.  
  20.    `Read them,' said the King.
  21.    The White Rabbit put on his spectacles. `Where shall I begin,
  22.  please your Majesty?' he asked.
  23.    `Begin at the beginning,' the King said, very gravely,
  24.  `and go on till you come to the end: then stop.'
  25.  
  26.                                      Lewis Carrol, Alice in Wonderland
  27.  
  28.  
  29. 1. Requirements
  30.  
  31. To run (and need) NN 6.4.11 ST you need a working news system.  This
  32. usually consists of a hard disk partition big enough to store incoming
  33. news for a reasonable long time, and either the Mercury UUCP Modules or
  34. the MNews Implementation for the Atari ST.  NN has been tested with both
  35. and tools are included in the NN.LZH archiv to let NN cooperate with
  36. both.  Nevertheless, MNews is recommended, as it has fewer bugs and makes
  37. using of hard disk space more efficient.
  38.  
  39.  
  40. Next, you need a shell, a command-line interpreter, which is not
  41. normally coming along with your Atari ST.  This shell is not needed as a
  42. user-interface, but as a program running beneath NN, called by NN via
  43. the _shell_p pointer hook.  The shell used for the NN development has
  44. been Gemini, a shareware desktop available at several atari archive
  45. sites.  If you have Gemini, you are lucky, since NN was written with
  46. this excellent shell in mind, and the author himself did not test it on
  47. other platforms.  However, it is reported, that NN works with Gulam and
  48. a couple of other shells too.  For you to decide, whether you have to
  49. get Gemini (or at least Mupfel, the command-line part of Gemini - in
  50. case you are short of memory space), you will find a list of commands
  51. the shell must be able to perform when called via _shell_p in section 2.3.
  52.  
  53.  
  54. Finally, you need a text editor, which must NOT use GEM (as NN doesn't),
  55. for posting/mailing within nn. There are several of them available
  56. and I do not include any of them in the distribution. Note, that
  57. NN knows certain editors, MicroEmacs and Vi, better then others, if the
  58. program is called `em' or `vi' respectively.
  59.  
  60.  
  61.  
  62. 2. Environment
  63.  
  64. Another beast not normally found on an Atari system is the environment.
  65. NN makes heavy use of this feature and again you need a shell or another
  66. tool to install an environment.  Conceptually speaking the environment
  67. is a set of variables named in uppercase letters and their contents,
  68. which are simple strings.  These variables may be set by a program and
  69. are available to all other programs started by it.  I.e., if your shell
  70. defines an environment, the settings defined may be read by NN, if NN is
  71. started by that shell.
  72.  
  73. Most shells offer a setenv command like
  74.  
  75. setenv HOME my_castle
  76.  
  77. which defines the variable HOME to have the (string) contents
  78. `my_castle` or a BASIC like directive like
  79.  
  80. HOME=my_castle
  81.  
  82. (Gemini/Mupfel offers both) and a feature to let you define an
  83. environment when starting the shell by the use of a kind of startup
  84. file.  See the documentation of your shell how to define an environment
  85. during the startup of the shell.
  86.  
  87.  
  88. 2.1 The environment needed by NN - Personal Information
  89.  
  90. Some information NN cannot figure out without asking you, but this
  91. information stays always the same at every time you start NN, and you
  92. surely do not want answer NN's questions every time NN is coming up.
  93.  
  94. At first, NN needs to know, who you are (that won't change pretty often,
  95. eh?), and what the name and domain of your site is in the USENET.  These
  96. names are defined by the environment variables USER (your username for
  97. mail purposes), SITENAME (the name of your computer) and DOMAIN (the
  98. name of the Domain your SITENAME is unique within).  For example, the
  99. authors USENET Adress is olaf@oski.toppoint.de.  Due to USENET mail
  100. address rules, the USER is olaf, the SITENAME is oski, and the DOMAIN
  101. is toppoint.de.  So I use the following settings:
  102.  
  103. setenv USER olaf
  104. setenv SITENAME oski
  105. setenv DOMAIN toppoint.de
  106.  
  107.  
  108. Next, NN creates temporary files (files which are destroyed immediately
  109. after use) every now and then, and this is normally done in a certain
  110. directory, which may be a ram disk for the sake of speed.  This
  111. directory is reported to NN by the environment variable TMP.  On my
  112. system the temp directory resides on C:\TMP, so I say
  113.  
  114. setenv TMP C:\TMP
  115.  
  116.  
  117. Furthermore, NN assumes that you are using a certain directory for your
  118. private purposes, i.e., a directory not filled up with programms,
  119. configuration files etc.  but with your personal data like mail, texts
  120. you wrote and so on.  On Unix systems the documentation refers to this
  121. directory as your `home' directory, and this give reason to the naming of
  122. the environment variable HOME, which tells NN where your HOME is.  My
  123. HOME is D:\usr\schlut (in the world my computer is able to realize), and
  124. so I say
  125.  
  126. setenv HOME D:\usr\schlut
  127.  
  128. If you are the only one using NN (and all the other USENET stuff) on
  129. your computer, then there is no problem to set these variables in a
  130. startup file once and for all when you start your favorite shell.  If
  131. someone else is using NN too, you should think about a way to change the
  132. HOME and USER setting to introduce this other user to your system.  No
  133. tool is included in the NN distribution for this purpose, but it is easy
  134. to develop one.
  135.  
  136.  
  137.  
  138. 2.2 Environment needed by NN - Information about your hard disk
  139.     structure
  140.  
  141. Another thing NN needs to know is the location of several data on your
  142. hard disk.  Among these are the location of the news directory tree, and
  143. certain configuration directories.
  144.  
  145. There are a lot of different directories used by NN, and it would be a
  146. waste of memory to assign a environment variable to every directory.
  147. Instead NN is satisfied with a set of two variables, if you install a
  148. certain structure on your hard disk.  These two variables are USR and
  149. ETC which contain root directories for the rest of the others.  The
  150. following list tries to tell you about the directory structure in a
  151. compact manner.  The prefixes $USR and $ETC are placeholders for the
  152. actual contents of USR and ETC, i.e., $USR\lib\nn stands for
  153. F:\usr\lib\nn, if USR happens to have the contents F:\usr.
  154.  
  155. $USR\spool\news         # the root directory for the news article tree
  156. $USR\spool\news\.nn     # a directory for nn's database (we will talk
  157.                         # about that later)
  158.  
  159. $USR\lib\nn             # a directory for nn's help files and other things
  160. $USR\lib\nn\help
  161.  
  162. $USR\lib\news           # a directory where the active file of the
  163.                         # news system lives.
  164.  
  165. $USR\adm                # a directory where logfiles will go
  166.  
  167. $ETC                    # the passwd (see later) file will live here.
  168.  
  169.  
  170. This directory structure is defined more strictly and elaborated in a
  171. paper called the HH standard (HH stands for Hansestadt Hamburg), which
  172. also defines a couple of other enviroments settings and file formats.
  173. NN follows this standard with one unimportant exception regarding the
  174. temp directory (the HH standard allows 4 different variables to
  175. introduce this directory, but NN insists on TMP) and an important
  176. exception as it requires a shell in the background (I said that
  177. before, didn't I?).
  178.  
  179.  
  180. Now look at the directories listed above and their meanings.  You
  181. already may have some of them, namely $USR\spool\news (although it may
  182. be F:\news or what on your system), and $ETC since even Mercury UUCP
  183. Modules makes use of a passwd File.
  184.  
  185. So you may set $ETC to the directory where the passwd file lives.  If
  186. your news directory does not fit in the $USR\spool...  scheme, you may
  187. explicitely set it with the environment variable NEWS (which is still a
  188. HH standard variable). $USR is nevertheless required to find all the
  189. other directories which must be in $USR at the places mentioned
  190. in this paper.
  191.  
  192. On my system, the news articles are stored in E:\usr\spool\news, and
  193. anything else belonging to $USR starts with E:\usr so I say
  194.  
  195. setenv USR E:\USR
  196.  
  197. My passwd file is C:\etc\passwd, so this is set by
  198.  
  199. setenv ETC C:\ETC
  200.  
  201. IMPORTANT: Once you have installed the settings of USR and ETC, you have
  202. to follow the scheme as defined by the HH standard.  All informations
  203. regarding NN are contained in this readme, but for other programs which
  204. explicitely state that they follow the HH standard, you have to install
  205. their directories according to your actual setting of USR and ETC
  206. instead of changine the contents of these variables.  You may obtain the
  207. HH standard description by asking me via E-Mail for it.
  208.  
  209.  
  210.  
  211. 2.3 Environment of NN - Location of programs
  212.  
  213. Finally, NN calls several other programs at several places.  It uses the
  214. shell (remember _shell_p!) fur this purpose rather then executing
  215. programs directly, making it possible this way to put the executable
  216. programs anywhere on your hard disk.
  217.  
  218. Most shells offer the feature to tell them a list of directories which
  219. contain executable programs using the PATH environment variable.  Hunt
  220. through your shell documentation for a feature like this.  Normally, the
  221. directory list is seperated by colons or semicolons.  I use the
  222. directories C:\bin and C:\usr\bin for executables and my PATH variable
  223. therefor reads
  224.  
  225. setenv PATH "C:\bin;C:\usr\bin"
  226.  
  227. (The quotes are necessary in Gemini to avoid misinterpretation of the
  228. semicolon).
  229.  
  230. If your PATH variable is correctly set, you should be able to call a
  231. program like C:\bin\em.ttp by just saying
  232.  
  233. em
  234.  
  235. to the shell.  NN calls every program without a full pathname and
  236. without an extension (.ttp or .tos or whatever) by telling only its
  237. basename to the shell.  If your shell does not support this, you are in
  238. trouble.
  239.  
  240.  
  241. The following programs and commands (in addition to those contained in
  242. this distribution) are called by NN (especially when posting or mailing
  243. articles).
  244.  
  245. echo args...    # outputs its arguments to the screen
  246. rm -f file      # removes a file without bothering whether it exists
  247. cp a b          # copies file a to file b
  248. mkdir a         # creates directory a
  249. cat             # copies a file or its input to its standard output
  250.  
  251. The following is seldom used (only by nnadmin), so you may live even if
  252. your shell does not support it.
  253.  
  254. ls -l pattern   # list the directory contents matching pattern
  255.                 # note that pattern is a Unix style pattern not
  256.                 # an MSDOS style.
  257.  
  258.  
  259.  
  260. 2.4 The editor to use - EDITOR
  261.  
  262. At last, you need the environment variable EDITOR. It should contain
  263. the command name of your favorite text editor. This text editor
  264. should not use GEM but rather be a TOS program. I recommend MicroEmacs,
  265. which , if called `em.ttp' or `em.tos', is better supported by
  266. NN then others. (NN also knows about `vi'.)
  267.  
  268. setenv EDITOR em
  269.  
  270.  
  271.  
  272. 3. Making directories
  273.  
  274. Now, after defining the meaning of the USR and ETC environment variable,
  275. we are going to create directories, which are needed by NN, but not
  276. normally by your other News and Mail software so they probably won't
  277. exist.  Since there is no standard shell coming along with the atari, we
  278. have to do everything by hand - there is no installation script.
  279.  
  280. The easiest way to get the directories is to unpack the archiv and let
  281. USR and ETC point to the directories usr and etc created during
  282. extraction of the archiv.  If you dont want that for any reason, the
  283. directory structure created by the archiv will still be useful as an
  284. illustration of what is going on now.
  285.  
  286. In the following, I will repeatedly refer to the "directory, which is
  287. defined in the environment variable XXX".  To avoid this lengthy idiom,
  288. I will use the notation $XXX to refer to the contents of XXX.
  289.  
  290. At first, of course, we should check whether $USR or $ETC exists.  Make
  291. them if needed.  (If $USR did not exist before, that implies that your
  292. news articles did not fit in the $USR\spool\news scheme - remember to
  293. define NEWS to point to your news directory!).
  294.  
  295. The HH standard and NN require two subdirs in $USR:
  296.  
  297. $USR\adm        # for logfiles
  298. $USR\lib        # for configuration and help files of certain programs
  299.  
  300. and again $USR\lib needs two subdirs:
  301.  
  302. $USR\lib\news   # for the active File
  303. $USR\lib\nn     # for nn's needs
  304.  
  305. The last directory must contain a subdir
  306.  
  307. $USR\lib\nn\help        # nn's online help
  308.  
  309. Finally, we remember that there is a $USR\spool\news\.nn (or $NEWS\.nn)
  310. directory, which is new.  Make it and a subdir DATA in it.
  311.  
  312. $USR\spool\news\.nn
  313. $USR\spool\news\.nn\DATA
  314.  
  315.  
  316.  
  317. 4. Copying Files
  318.  
  319. Now we are ready to move the files of the distribution archiv to the
  320. places where they belong.  After you have unpacked the archiv you will
  321. notice that it resembles very well the directory structure described
  322. above.  The directories contained in the archiv are:
  323.  
  324. usr\lib\nn              # NN's aux files
  325. usr\lib\nn\help         # NN's help files
  326.  
  327. usr\lib\news            # where the active file of the news
  328.                         # system should be
  329.  
  330. usr\lib\mercury         # see note below
  331.  
  332. usr\spool\news\.nn      # NN's database
  333. usr\spool\news\.nn\DATA
  334.  
  335. etc                     # the passwd file is here
  336.  
  337. usr\bin                 # the executables
  338. bin
  339.  
  340.  
  341. NOTE: If you are using Mercury UUCP, you may already have a file named
  342. active somewhere on your disk.  If it happens to live in $USR\lib\news,
  343. you have to move it to somewhere else or rename it and change the
  344. appropiate field in config.sys.  It is field 0012.  Check it NOW!
  345.  
  346. No copy the contents of usr\lib\nn and its subdir help to $USR\lib\nn
  347. (and $USR\lib\nn\help).
  348.  
  349. Then copy the contents of usr\bin and bin to one or several directories
  350. listed in your PATH environment variable.
  351.  
  352.  
  353. 5. Localizing some files
  354.  
  355. A part of the localizing procedure has been described earlier in the
  356. environment topic.  You should now have configured your shell so far
  357. that the necessary environment variables are defined when the shell has
  358. started.
  359.  
  360. 5.1 /etc/passwd
  361.  
  362. Under normal circumstances you probably will have a /etc/passwd file.
  363. To make sure that it has the correct format, I describe the passwd file
  364. format as described in the HH standard, a format which is used by Unix,
  365. newer Mercury UUCP (>=1.16) and, of course NN.
  366.  
  367. The passwd file contains one or several lines of the format
  368.  
  369. username:password:uid:gid:Voller Name|Organisation:Home-Dir:Default-shell
  370.  
  371. To illustrate the meaning of it, here an example
  372.  
  373. olaf::0:0:Olaf Schlueter|Toppoint Mailbox e.V.:D:\usr\schlut:C:\bin\gemini
  374.  
  375. The fields are seperated by :, which cause an ambiguity in the HomeDir
  376. field and shell field, but this is correctly resolved by the routines NN
  377. is using to parse the passwd File.  The informations NN takes out of
  378. this file are the full name (Olaf Schlueter) and the organization
  379. (Toppoint Mailbox e.V.) by looking up the line in the file that matches
  380. the username defined by the environment variable USER.  Although the
  381. passwd file contains an entry for the home directory of a user, NN does
  382. not look at that but insist on having a defined HOME environment
  383. variable.
  384.  
  385.  
  386.  
  387. So you should have a line in your passwd file with your
  388. username, your fullname and your organization.  The others fields of
  389. this line should not be empty, but their actual contents is not
  390. important (as far as NN is concerned).
  391.  
  392.  
  393. 5.2 Adapting NN to Mercury UUCP
  394.  
  395. One file needs to be adapted to Mercury UUCP and one possibly needs to
  396. be created.  The first file to look at is the config.sys file used by
  397. Mercury UUCP.
  398.  
  399. If you moved the news directory ($NEWS or $USR\spool\news) to another
  400. place during installation of NN, you should check, whether it is
  401. correctly defined in config.sys.  It is field 0018 in config.sys.
  402.  
  403. Finally, create an empty file named "alias" somewhere and append a line
  404.  
  405. #!0102 "<complete path to alias>"
  406.  
  407. to config.sys.  <complete path to alias> stands for the actual pathname
  408. of course.  On my system the file is E:\usr\lib\mail\alias, and my
  409. config.sys has
  410.  
  411. #!0102 "E:\usr\lib\mail\alias"
  412.  
  413.  
  414. Now, check whether your news spool directory ($NEWS or $USR\spool\news)
  415. is in the right place.  Then you should have a file $NEWS\news.def or
  416. $USR\spool\news\news.def.  If not, reread this paper.  $NEWS or
  417. $USR\spool\news should by the directory, the news article tree starts
  418. in.
  419.  
  420. Otherwise, you run
  421.  
  422. buildact
  423.  
  424. from your shell.  This will create a Unix compatible (and NN compatible)
  425. active file in $USR\lib\news\active.
  426.  
  427.  
  428.  
  429. 5.3 Adapting NN to MNews
  430.  
  431. MNews is another news system for the Atari ST.  Originally developed for
  432. OS-9, it has been ported to TOS independently by bjoern@drdhh.hanse.de
  433. and the author of this paper.  MNews is slower then Mercury UUCP in
  434. processing incoming News but has less bugs and offers a more Unix like
  435. environment like an Unix compatible active File and a history mechanism.
  436. If you already use it, you will probably have had less trouble in
  437. installing NN since MNews supports and requires the HH standard, so lots
  438. of things mentioned above should already have existed.
  439.  
  440. However, to let NN cooperate with MNews, you still have to change on
  441. file: $USR\lib\nn\init.  The init file in the distribution is prepared
  442. for operation with Mercury UUCP.  Look at the init file and read the
  443. comments regarding MNews and HH rmail.  Actually, you may run three
  444. different configurations:
  445.  
  446. Mercury UUCP for mail and News  that was handled in section 5.2
  447.  
  448. Mercury UUCP for mail and MNews that is explained here
  449.  
  450. HH mail and MNews               that is also explained here
  451.  
  452. NN offers a mail interface, which is less powerful then
  453. a real mail user agent like elm or blm, but let you read
  454. your mail or mail a message to the author of a newsgroup
  455. article. Therefore there are some configuration variables
  456. within nn, which let you adapt them to either mail package
  457. mentionend above. The variables are
  458.  
  459. mail                    # the location of your mail folder (HH mail)
  460. mailer                  # the program to send mail to an author
  461. append-signatur-mail    # whether to append a signature file to
  462.                         # each outgoing mail or not
  463.  
  464. As has been said, NN is preconfigured both by compilation and the
  465. contents of the init file as delivered to use Mercury UUCP.  If you are
  466. going to use HH mail (also called Digital Island UUCP), you may follow
  467. the comments within the init file to change the settings of these
  468. variables.  The setting of `mail' makes no sense in Mercury UUCP, as
  469. Mercury does not collect your mail in one file, so it is unset by
  470. default.  Also, the mailer program used by Mercury UUCP, mrecmail,
  471. appends the file $HOME\signatur.mai itself, so `append-signature-mail'
  472. is false (i.e., unset) by default.  The changes for HH mail are
  473. commented out, just remove the '#' signs in front of those set commands,
  474. and put '#' in front of those regarding Mercury rmail. Note that
  475. NN knows that the signature file for HH mail is $HOME\signatur.
  476.  
  477.  
  478. Posting of news articles is controlled by the variables
  479. `append-signature-post' and `inews'. The init file as delivered
  480. sets them right for Mercury UUCP, and again you may change
  481. that following the instructions in the comments.
  482.  
  483.  
  484.  
  485. 5.4 Signature Files
  486.  
  487. Mercury UUCP, HH mail and MNews have a different naming convetion
  488. for signature files. Mercury UUCP has two signature files, one
  489. for mail, which should be in $HOME\signatur.mai and one for
  490. news, which is called $HOME\signatur.net. If you are using
  491. either HH mail or MNews or both, you need a $HOME\signatur
  492. File, since both packages use this for your signature. You can
  493. remove either signatur.mai (if you are using HH mail) or
  494. signatur.net (if you are using MNews) or both then.
  495.  
  496. Note, that all three packages do not automatically put a
  497. -- \n sequence in front of your signature so you should include
  498. it in your signature file if you want to support this
  499. (useful) convention.
  500.  
  501.  
  502. After making the necessary modifications to adapt NN to the News and
  503. Mail software you are actually using, the final installation step
  504. is to initialise NN's database of news articles. Unlike most other
  505. news readers, NN maintains a database containing all repeatedly
  506. needed information about any article in any newsgroup of your system,
  507. to avoid scanning newsgroup directories and reading articles more
  508. often then necessary. This database has to be created and maintained
  509. everytime new articles arrive at your system. See the NN manual
  510. for a more elaborated description of NN's use of a database and
  511. nnmaster, which is the database gardener.
  512.  
  513. Then run
  514.  
  515. nnmaster -I 100
  516.  
  517. This will initialise the nn database of available articles.  nnmaster
  518. reads your active file to determine which groups are currently on your
  519. system.  If new groups are created later on, nnmaster will append them
  520. to its database during normal operation. (100 tells nnmaster to collect
  521. at most 100 articles per group, which saves time during initialisation,
  522. but won't let you read any older article then the youngest 100 in
  523. every group. This disadvantage will vanish with time, as these old
  524. articles get expired. You may safely omit the 100 or any other number,
  525. but be prepared for a possibly very long initialisation run of nnmaster.)
  526.  
  527. nnmaster will prompt you to type OK (in uppercase letters!) to confirm
  528. initialisation.  Just do it.  It will now take a bit of time depending
  529. on how many groups already exists on your system.  Be patient.
  530.  
  531. After nnmaster has finished you should have a human-readable file
  532. $USR\lib\nn\groups and a not human-readable file $USR\lib\nn\master.
  533. This is the root of the nn database.  The groups file is editable, but
  534. before you are going to change it, read the corresponding sections in
  535. the nn manual.  Later on I will tell you how to read this unusual
  536. formatted document using nn.
  537.  
  538.  
  539. Finally, to complete the first time creation of the nn database, run
  540. nnmaster again, but this time you type
  541.  
  542. nnmaster -u
  543.  
  544. This will take even more time then nnmaster -I this time depending on
  545. the count of articles already on your system.  You may want to take a
  546. break of sitting in front of your computer.
  547.  
  548. At least, don't worry about speed: only this first time scanning of the
  549. articles may take a considerable amount of time, later on the actual
  550. incoming news flow is handled very fast.
  551.  
  552.  
  553.     Testing nn
  554.  
  555. When nnmaster has completed this task too, you are ready to read news
  556. using nn.  Just start nn by typing
  557.  
  558. nn
  559.  
  560. and watch what is happening.  You pass through some welcome screens, and
  561. then nn will present you all articles of the first group on your system,
  562. either in an alphabetical sense or according to the sequence defined in
  563. $USR\lib\nn\init.
  564.  
  565. You may get help by typing ?, or :help or :man.  The latter will put you
  566. into nn's online Manual, which you may read by pressing the percent sign
  567. % followed by the letter or digit standing in front of each entry on the
  568. screen.
  569.  
  570. The nn online manual is an ordinary text file (and lives in
  571. $USR\lib\nn\help\manual) and can be printed without problems.  However,
  572. the text layout is somewhat unsual but I have no NN 6.4.11 Unix man page
  573. available.
  574.  
  575. You should read the NN manual.  NN is a slightly complex, but very
  576. powerful news-reader and you will enjoy its features.
  577.  
  578.  
  579.  
  580.  
  581. 6. Posting Articles
  582.  
  583. There are several ways to post an article. If you want to make
  584. a follow-up to an article you are actually reading, just type
  585. 'f'. If you want to post an article without referencing another
  586. type ':post' from within nn, or 'nnpost' from the shell. NN
  587. will lead you through all necessary steps to create and
  588. send an article.
  589.  
  590. Note, that you can abort the creation of an article any time by pressing
  591. the `Delete' key (until you are within the text editor: leave it then
  592. and press 'a<Return>' for abort afterwards).
  593.  
  594.      Problems with posting, NN and the shell
  595.  
  596. Most people so far report few problems in making NN to present articles
  597. to you, but much problems in making it to post something.  The reason
  598. for this is always, that another shell then Gemini/Mupfel is used.
  599. Actually, most of the shell dependence is here.
  600.  
  601. For your help, I will outline now, how NN posts articles:
  602.  
  603. After asking some questions about newsgroups, distributions etc.
  604. nn starts the programm $USR\lib\nn\aux.ttp. This program
  605. makes heavily use of the shell feature offered by _shell_p
  606. to perform its tasks. The first problem most people
  607. encounter is that aux.ttp is not where it should be,
  608. namely $USR\lib\nn\aux.ttp.
  609.  
  610. aux.ttp can perform five different tasks: mailing, replying, posting,
  611. writing a followup and cancelling of articles. Which task it
  612. should perform, NN tells him by an argument. NN says
  613.  
  614. aux mail
  615. aux post
  616. aux follow
  617. aux reply
  618. aux cancel
  619.  
  620. All other parameters needed are collected in a file $HOME\nn\param.mup.
  621.  
  622. When replying or posting a followup, aux first start your texteditor and
  623. let you edit the original message to allow quoting.  In case of posting
  624. an original article, you are put into the editor too, but the file you
  625. edit is almost empty.
  626.  
  627. Never remove one of the header field lines like 'Newsgroups:' or
  628. 'Subject:'.  They are necessary and belong to the places you find them,
  629. so do not even move them around or insert anything in front of them.  If
  630. you are using MicroEmacs or vi, the cursor is initially placed below them to
  631. remind you of this.
  632.  
  633. After you have edit the message, the shell's tough job is started:
  634. Now many files are moved around, appended, concatenated, filtered
  635. and so on, and there is quite a good chance that you do not
  636. have a good shell. Here are some examples of commands, your shell
  637. must be able to perform:
  638.  
  639. echo "To: " > file
  640. sed -e "s/^To:/X-To:/" -e "/^Orig-To:/d" filea >> fileb
  641.  
  642. Note the use of " characters here and the use IO redirection > and >>.
  643. In the latter case output is appended to fileb. sed is not an builtin
  644. command in most shells, but included in the distribution like grep,
  645. which is also used by aux.
  646.  
  647. Some shells do not have a 'cat' command. Some have a 'copy'
  648. command with the same meaning and an alias feature so you may
  649. tell your shell
  650.  
  651. alias cat copy
  652.  
  653. Some shells do not like a space following the '>' or '>>'.  Well, then
  654. get another.  They should allow it.
  655.  
  656. Some shells handle quoting in a different manner, they do not remove "
  657. characters around arguments, do not collect them right, and so on.  All
  658. programms in the NN package uses the ARGV scheme as defined by Atari.
  659. If your shell does not support it, you are in trouble.  Again, get
  660. another.
  661.  
  662. I recommend to use Gemini/Mupfel. It's shareware and costs 50 DM,
  663. but it is worth more. If you are short of memory (1M or less),
  664. you have to restrict yourself to use Mupfel alone, i.e., call
  665. nn only within mupfel.
  666.  
  667. As far as I know, Gulam (Freeware) works well too. But there are
  668. older versions of Gulam, which do not support ARGV. Make sure
  669. you have the newest one (which nevertheless is pretty old).
  670.  
  671. Sometimes the reason for the failure of aux is repairable: check the
  672. PATH environment variable, and look if all programs I mentioned in this
  673. paper (the editor, sed, grep, cat, rm etc.) are callable by just typing
  674. their name at the shell prompt.
  675.  
  676.  
  677.  
  678. 7. Maintaining the nn database
  679.  
  680. Every time articles are coming to your site, either created
  681. by you or forwarded to you by your newsfeed, nn's database
  682. of articles needs an update. An update is also necessary
  683. after article expiration.
  684.  
  685. This is easy. After your news system has processed the incoming
  686. news, or you did expire articles, type
  687.  
  688. buildact
  689. nnadmin EYW
  690.  
  691. in case you are using Mercury UUCP, or just
  692.  
  693. nnadmin EYW
  694.  
  695. in case you are using MNews, which maintains an Unix compatible
  696. active file, so buildact is not necessary (won't even work
  697. then).
  698.  
  699.  
  700. If you are interested in how many new articles has arrived
  701. after a poll, type
  702.  
  703. nnadmin L
  704.  
  705. finally. This will show you the tail of the Log file maintained
  706. by nnmaster, and the lines starting with C: report about
  707. collection of articles, how many have been collected during
  708. one run and how long it takes.
  709.  
  710. Again, read the manual(s). They explain all these features and
  711. a whole bunch of others.
  712.  
  713.  
  714.  
  715. 8. Bugs and Bug reports
  716.  
  717. Yet, there is one bug in nn. The commands :unshar and :patch
  718. won't work but bomb. If everything would be, like it was
  719. intended by me, they won't crash, but still won't do
  720. anything useful, as their use is very Unix specific. In case
  721. you want to unshar a posted shar archive, or patch online
  722. sources with a posted patch, use the save command to save
  723. the relevant articles, and extract the shar archives or
  724. patches by hand after leaving nn. The :decode command,
  725. often useful in comp.sources.atari.st or comp.binaries.atari.st,
  726. works and does not even require an external uudecode utility.
  727.  
  728.  
  729. Anything else you consider a bug you may report to me via
  730. E-Mail. Put the line
  731.  
  732. set bug-report-adress   olaf@oski.toppoint.de
  733.  
  734. somewhere in your $USR\lib\nn\init file. Then bugs are
  735. easily reported by typing
  736.  
  737. :bug
  738.  
  739. within nn. It is very useful for me if you type
  740.  
  741. nnadmin C >$USR\lib\nn\conf
  742.  
  743. to finish your nn installation. The conf file is automatically
  744. included into the bug-report created by nn, and contains
  745. useful information for me.
  746.  
  747. Also, always, I repeat, always, tell me about:
  748.  
  749. Operating system in use (TOS Version number, KAOS)
  750. Type of computer (Mega, STE, TT)
  751. Memory size
  752. News/Mail Software in use
  753. Shell used
  754.  
  755. since I do not have telepathic abilities.
  756.  
  757. If you think of any other special features of your computer not normally
  758. found on other systems, include them in your description.
  759.  
  760. If the log file used by nn and nnmaster contains error reports, include
  761. it in your mail.  Keep the other lines around them, do not delete them
  762. (i.e., do NOT type nnadmin LE >bugrep.txt).  To shorten it just remove
  763. all lines in front of the last nnmaster started line.
  764.  
  765. And, finally, do not expect wonders: the source code of NN has died
  766. during a hard disk crash (hardware failure).  I'm therefore not able to
  767. remove bugs from the software, but may hunt for ways around them, or
  768. give you tips for changing your installation.  Mostly, what you consider
  769. a bug is really an installation problem.  On a couple of sites NN is
  770. working without problems for more than a half year.
  771.  
  772.  
  773.  
  774.  
  775. 9. Pecularities of the ST implementation
  776.  
  777. NN interprets the backslash as a path seperator under normal
  778. circumstances in contrast to its Unix father.  But within the init file
  779. (both your personal init file and the global init file), the backslash
  780. is still used as an escape character, and if you want assign a TOS path
  781. to a variable, you have to escape the backslashes.  Look at the
  782. definition of the variable `mail' or `newsrc' in the accompanying 
  783. \usr\lib\nn\init file.
  784.  
  785. Furthermore, NN ST lacks the `nngoback' feature, as I did not write a
  786. programm which maintains a number of backups of the active file.
  787.  
  788.  
  789. Also, NN ST does not have advanced terminal options like underlining
  790. or shading, as the ST does not have it.
  791.  
  792. If you are using gemini and run nn in the console window, you may define
  793. a environment variable TERM=gemini.  NN then looks for the environment
  794. variables ROWS and COLUMNS (which are automatically created by Gemini),
  795. and adapts its screen size.  This is also useful if you are using an
  796. enhanced video display on your Atari (then you have to create ROWS
  797. and COLUMNS in addition to TERM by yourself).
  798.  
  799.  
  800. There is no background option in nnmaster, i.e.  the option -r is
  801. ignored by nnmaster.  Therefore, nnadmin always reports `master NOT
  802. running'.  The 'W'akeup command of nnadmin is implemented as starting
  803. nnmaster without any option and, due to the nature of TOS, waiting until
  804. it has finished.
  805.  
  806.  
  807. You may bother TOS with an uncareful setting of the save-counter
  808. variable.  If this creates more then one '.' in the filename, TOS is
  809. very annoyed.  Also, the $G variable is not useful in TOS, as it
  810. contains too much periods.  The $F variable, however, is expanded right,
  811. i.e., it uses backslashes instead of slashes.
  812.  
  813.  
  814.  
  815. 10. Technical Notes
  816.  
  817. Maybe you are writing your own news system.  If you want to make it
  818. cooperate with NN, you may be interested in the HH standard.  Just mail
  819. me and ask for it.  Furthermore, NN understands a disk space saving feature,
  820. which is already used by at least my implementation of MNews. If a
  821. crossposting is coming to your site, Mercury UUCP creates copies of it
  822. in every directory, so a 10K article may easily occupy 30K disk space on
  823. your hard disk.
  824.  
  825. MNews uses a kind of `symbolic link', to prevent an article to be stored
  826. in more then one copy on your hard disk.  In the first newsgroup
  827. encountered in a crossposting the article is stored as a whole.  This
  828. may be junk, but as this group must exist in every news system that is
  829. no problem.  All other copies of the article does not contain its text,
  830. but a line reading
  831.  
  832. %(#)$ <path of original article relative to $NEWS or $USR\spool\news>
  833.  
  834. For example, if there is a crossposting to comp.os.minix and
  835. sub.os.minix in that order, and the article is stored in
  836. $NEWS\comp\os\minix\112 and $NEWS\sub\os\minix\20, the latter file will
  837. be very short and will contain only the line
  838.  
  839. %(#)$ comp\os\minix\112
  840.  
  841.  
  842. Note that this causes a slight problem according to the manner % and $A
  843. are handled, when passed to shell commands.  Both of them shall contain
  844. the full pathname of the file, the article is in.  This may be a link
  845. file, in which case both % and $A do not contain the article itself.
  846. So, if you type
  847.  
  848. !cat %
  849.  
  850. you may be disappointed to see only a link entry instead of the article
  851. you have been actually reading.  As long as I am usign NN, I never faced
  852. a situation where this bothered me, in fact I never used % or $A yet.
  853. If you really want to let a shell command operate on the contents of an
  854. article, no matter where it is, use the pipe feature of the save
  855. command or the print command.
  856.  
  857. Of course, if your news system does not have this feature, you won't have
  858. the problem (but probably want a bigger hard disk).
  859.  
  860.  
  861.  
  862. 11. Acknowledgements
  863.  
  864. Kim F. Storm for creating nn.
  865. Martin I. Hilbert for creating mmail.
  866.  
  867.  
  868. -- 
  869. Olaf Schlueter, Sandkuhle 4-6,             | olaf@oski.toppoint.de, 
  870. 2300 Kiel 1, Germany, Toppoint Mailbox e.V. | olaf@tpki.toppoint.de
  871. My heart full of hope, my ass full of dope. 
  872. Barcelona 1992
  873.