home *** CD-ROM | disk | FTP | other *** search
/ The Atari Compendium / The Atari Compendium (Toad Computers) (1994).iso / files / prgtools / mint / utilit~1 / tuu103d3.zoo / readme < prev   
Encoding:
Internet Message Format  |  1993-01-07  |  15.1 KB

  1. From: Juergen Lock <nox@jelal.north.de>
  2. Subject: another test version of Taylor UUCP 1.03 for MiNT -- readme
  3.  
  4. [^^^ so you can reply easily]
  5.  
  6. here it is...  this is the current state of Taylor UUCP 1.03 on MiNT.
  7. although it seems to work fine for quite a few people now i still regard
  8. this stuff `beta', so don't expect it to work and don't try it unless
  9. you know what you're doing. :-)
  10.  
  11. (sorry this readme does not tell you what uucp is and questions like
  12. that.  if someone has or wants to write something of that sort he is
  13. very welcome...)
  14.  
  15. what you need:
  16.  
  17. . MiNT 0.95 or newer, and a un*x-like shell that knows ARGV and can take
  18. commands with -c. (_shell_p is *not* necessary. ;-)  you'll have to
  19. either set $SHELL or put it in /bin/sh.
  20.  
  21. . if you have a fast modem or want to use error correction (MNP or
  22. V.42...) then you most certainly will need a decent serial driver with
  23. working RTS/CTS handshaking.  for modem1 i can recommend serialfx 1.0,
  24. for modem2 and the others (tt/mega ste) i have yet to find one that
  25. really works (see below).
  26.  also enlarging the port's buffers helps keep the data flow when the
  27. computer is doing other things while the uucicos are talking. (normal
  28. size is 256 bytes each, i currently have them at 8K.)  and, whenever you
  29. have error control (and unless the modems (telebit with spoofing on) or
  30. the system you're talking to don't support that) you can always try
  31. bigger `g' packets than the default 64 bytes.  don't believe people who
  32. tell you the g protocol is inefficient, it's just the default of 64
  33. bytes thats a holdover from the times when the fastest modems in the
  34. world did 2400bps without error correction.  with 1 or 2 K packets
  35. uucp-g is about as fast as a well-implemented zmodem... (and of course
  36. *much* safer than all those jokes like uucp-e over async lines.)
  37.  
  38. . some sort of mail and news system (unless you only want to transfer
  39. files.) but even then uucico needs a way to mail you about failed uucp
  40. requests etc...  if it already has the usual rmail/rnews commands that
  41. receive incoming work (on stdin) and knows how to call uux for
  42. outgoing -- fine.  otherwise, if your stuff follows the `hamburg
  43. standard' you can look at my `interface' in hh/...  and if you were
  44. using the gfab*gsic uucico (descendant of mailtruk/mercury) you could
  45. even try to keep your old uuxqt/whatever if you don't mind that it
  46. (probably) doesn't do any locking or won't run very well in the
  47. background.  to do that replace taylor's uuxqt with a script or something
  48. that first `mv's all incoming files from /usr/spool/uucp/<system> into
  49. /usr/spool/mqueue and then executes your old uuxqt.  or if your uuxqt
  50. doesn't behave itself in the background try a similar script that first
  51. calls uucico with -qD flags and then uuxqt.  (btw with -D uucico's
  52. exitcode still doesn't tell you that a transfer failed... the easiest
  53. way to find out for a script probably is uustat -m, or look at the
  54. system's status in /usr/spool/uucp/.Status/<system> yourself.)
  55.  if for some reason you want to keep an old uux (that you used with the
  56. gfab*gsic uucico) then things get a little more complicated.  first,
  57. depending on how it generates its filenames you probably can't use
  58. (taylor's) uustat -k or -r on the jobs.  second, be careful with uuxqt
  59. while there are still outgoing(!) *.x files in the spool directories,
  60. uuxqt might think they are ment for the local system.  (if you can't
  61. avoid that and need a way to distinguish between incoming and outgoing
  62. files you could use the `Receiving site/Asomething.X' etc lines in
  63. uucp's logfiles...  but fixing your uux of course would be easier.)
  64. third problem could be the format of the command (*.c) files your old
  65. uux or uucp (the command) write, if uucico then complains it can't find
  66. files you'll have to patch that either in your uux/uucp or in uucico;
  67. look at fsysdep_get_work() in sys4.c. (and do tell me what you did or
  68. send me the diffs...)  if you just see funny names like `Sending
  69. D._foo4711' in the logfiles don't worry, they are results of the
  70. filename munging and as they name only local temporary files the remote
  71. system should never use them.
  72.  
  73. . MiNT libs patchlevel 25 or newer (earlier versions not recommended
  74. because there was a bug in readdir()), and a decent compiler.  well you
  75. *can* get away by simply using my binaries, but i would always prefer to
  76. compile it yourself because then you're not stuck with my compile-time
  77. settings and you can help yourself (and me :-) when you find a bug or
  78. something.  (and you need a not-too-old version of Larry Wall's patch
  79. program to apply the diffs.)
  80.  
  81. . the original taylor-uucp-1.03.tar.Z archive (or how its called),
  82. should be on any good GNU archive site. (even if you don't compile it
  83. you still want the docs...)
  84.  
  85. what does not work:
  86.  
  87. . anything else than SPOOLDIR_BNU (#defined in policy.h).  GEMDOS'
  88. stupid `CP/M-never-dies' filesystem (you know, 8+3 characters and only
  89. one dot...) required severe hacks to the filename handling that were
  90. only possible with SPOOLDIR_BNU. (or, maybe, SPOOLDIR_TAYLOR but i did
  91. not implement that.)
  92.  
  93. . filenames starting with x:...  at least i did not look for problems
  94. that might cause because you can always stay in MiNT's u: filesystem and
  95. access everything from there.  (actually you *have* to be on u: or at
  96. least set the rootdir in $UNIXMODE (ru) when you call one of the uu*
  97. programs because otherwise they won't find things like /dev/null or
  98. /dev/modem1 etc...)
  99.  
  100. . if someone tries to send you 2 files with identical names except case
  101. (and you're not on a minix filesystem) then you will have a problem.  i
  102. *could* hack around that at least for the usual temporary spool files
  103. (i.e. uux jobs) but then you couldn't use an old uuxqt anymore.  (and
  104. i did *not* want to start having uucico fumble around in incoming X.
  105. files... :-( )  anyone have an idea?  otherwise i'll probably make it a
  106. compile-time option some time.  (or is there really noone who wants to
  107. keep his old uuxqt?  i mean i don't and taylor's certainly is better. :-)
  108.  
  109. . don't `mv' the names in /dev...  the serial port stuff i hacked to get
  110. around MiNT 0.95's slow serial read() + write() and missing things like
  111. carrier detect needs to know the BIOS device and currently the only way
  112. to get that is thru ttyname().
  113.  
  114. . also i did not manage to get reliable transfers over /dev/modem2 (mega
  115. ste) even after i fixed the usual round of atari-bugs in serptch2. if
  116. you have better luck please tell me!  (on modem1 it works perfectly
  117. well, its just that 19200bps is slower than what the modem can do with
  118. V.42 and 16800 link speed...)  actually as it seems the real reason why
  119. modem2 doesn't work on my mega ste is a *hardware bug*!  whenever the
  120. chip that controls modem2 and serial2 (85c30 SCC, $ffff8c8x) is accessed
  121. during DMA (disk access) i sooner or later have corrupted data either
  122. to/from the disk(!) or the SCC. isn't that wonderful. :-( :-(
  123.  
  124. . the hacked-in 38400bps support for modem2 (thats only used when MiNT
  125. and the driver itself don't know B38400...) always assumes 8bit no parity.
  126. i.e. when you try to turn on parity it probably will not work or the port
  127. will jump to a wrong speed.  if you really need that tell me, but as i
  128. said modem2 is `broken' at least on my atari anyway. :-(
  129.  
  130. . theres also the chance that there are serial drivers out there that do
  131. things different enough (buffer handling etc) so that my fastread() and
  132. fastwrite() won't work.  if you suspect something like that and you
  133. want to experiment you can change the #defines for MINT_FASTREAD and
  134. MINT_FASTWRITE in sys2.c to 0; then it will always use MiNT's original
  135. read and write.  tell me what you find out...
  136.  similar if you're experimenting with modem2 and the DTR line does funny
  137. things (you can see on the modem LEDs) or the port seems to be dead
  138. after it sent a break or dropped DTR, then you might also have an
  139. `incompatible' driver.  then try setting MINT_DTR and MINT_BREAK 0 in
  140. sys2.c (see there for details).  or when there is a MiNT version that
  141. supports B0 and TIOC[CS]BRK on modem2 you can do that too.
  142.  
  143. . hardware hacks that increase a serial ports speed and the driver
  144. doesn't know(!).  uucico uses the bpsrate to calculate how long it can
  145. sleep when it waits for buffers to fill or empty (to save CPU time), so
  146. you probably won't get decent thruput unless you patch uucico so that it
  147. knows the correct speed.  (look at fsserial_open() in sys2.c, adjusting
  148. ibaud after the call to fsetterminfo should be the easiest way.  of
  149. course if you have a portable method to detect the right speed you could
  150. use that too...then send me the diffs. :-)
  151.  
  152. . compiling with a 16bit compiler.  or i would be surprised if that
  153. worked without major fiddling... (but anyway gcc is free and its worth
  154. the diskspace.  and if nothing else using gcc is certainly easier than
  155. hunting for 16bit problems in a few 100 Ks of source. ;-)  also, i
  156. almost forgot that, if you don't use gcc you will have to replace a few
  157. __asm__ macros in sys2.c and in xchat, but that shouldn't be difficult
  158. because they only do small things like raise ipl or call thru a vector.
  159.  
  160. . uustat -p doesn't work right because MiNT's ps doesn't have an option
  161. to list only some processes (like ps -p pid).  anyone want to write
  162. a `real' ps? :-)
  163.  
  164. . the original `make install' target. (or only if you have a very
  165. un*x-like setup...)  i renamed it to install.ix and made a new one that
  166. just copies and strips the executables.  (if you don't have xstrip don't
  167. worry, it only removes the symbol table to save a few K disk space.  its
  168. in gcc's binutils btw.)
  169.  
  170. what i have not yet tried: (tell me if it works...)
  171.  
  172. . all the stuff in contrib/ except xchat.  if you do and you had to
  173. patch something, send me the diffs.
  174.  
  175. . incoming calls...  if you already have some sort of getty/login there
  176. should be no problem, just make uucico the login shell like you would on
  177. un*x. (i.e. set it up so that it runs uucico instead of a shell when the
  178. other uucico logs in. stdin and stdout of course pointing to the port.)
  179.  otherwise if you only want to take uucp logins you can also tell uucico
  180. to prompt for login and Password itself (then it uses its own passwd
  181. file).  but since it will certainly get confused when it sees modem
  182. messages like RING or CONNECT (or...question: what happens when a modem
  183. gets eg `watzman\rlogin: '? :-) you will have to either turn the
  184. messages off (and use &d2 since the dialer might need them later) or try
  185. a loop with some other program (xchat?) that answers the modem and waits
  186. for carrier before calling uucico -l to accept a single login.  well one
  187. of these days i should try...
  188.  
  189. . uucp over /dev/midi. (for a cheap method to network two ataris...)
  190. the g protocol with small window and packet size (3*64? *) could work,
  191. but probably not very fast.  problem is /dev/midi has no handshaking and
  192. with the usual driver there's not even a send buffer.  oh and don't move
  193. the mouse...
  194. *: the window (in bytes) has to be smaller than the receiver buffer, ie
  195. (packetsize + 6) * windowsize < bufsize. (you could call the window
  196. uucp's `built-in' handshaking...)
  197.  
  198.  phew!  i hope all this stuff wasn't too boring. :-)  but it should
  199. help when you know...
  200.  
  201. installation:
  202.  
  203. 0. not strictly necessary but it helps:  set up a un*x like directory
  204. structure for all the networking/uucp stuff.  of course directories are
  205. more or less configurable for most programs but still you will save time
  206. and worry when you use something like this
  207.     u:/bin
  208.     u:/etc            (`passwd' must be here)
  209.     u:/tmp
  210.     u:/usr
  211.     u:/usr/bin
  212.     u:/usr/lib
  213.     u:/usr/local/bin
  214.     u:/usr/local/conf
  215.     u:/usr/local/conf/uucp
  216.     u:/usr/local/lib
  217.     u:/usr/local/lib/uucp
  218.     u:/usr/spool
  219.     u:/usr/spool/uucp
  220.     u:/usr/spool/uucppublic    (or truncated to u:/usr/spool/uucppubl)
  221.     u:/usr/tmp
  222.     .
  223.     .
  224. (well you get the idea...  remember you can make symlinks in u:/)
  225.  
  226. 1. unpack this and the taylor archive and read the docs.  (or of course
  227. you can also read while it compiles... but at least you'll have to go
  228. thru the part about the compile-time configuration first.)
  229.  oh and if you didn't understand parts of the above maybe you will after
  230. you have read the taylor docs...
  231.  
  232. 2. cd into taylor's uucp-1.03/ directory and say
  233.     cp conf.h-dist conf.h
  234.     cp Makefile.in makefile
  235.     cp sysh.unx sysdep.h
  236.     cp sys1.unx sys1.c
  237.     cp sys2.unx sys2.c
  238.     cp sys3.unx sys3.c
  239.     cp sys4.unx sys4.c
  240.     cp sys5.unx sys5.c
  241.     cp sys6.unx sys6.c
  242.     cp sys7.unx sys7.c
  243.  and then
  244.     patch <this/directory/diffs
  245.  after that is finished (should not report any problems or offsets) look
  246. at conf.h, policy.h, sysdep.h and makefile to see if you have to change
  247. anything for your setup.  (in conf.h probably only MAIL_PROGRAM, in the
  248. others maybe some directories.  but note you don't need to change things
  249. like /usr/some/thing into /c/foo/usr/some/thing because in that case you
  250. can just as well make a symlink into MiNT's u:/ directory; that's what
  251. they're for.)
  252.  
  253. 3. now you can `make' and read the rest of the docs.  when its finished
  254. you can try tstuu (see taylor's docs...except that at 8 MHz its probably
  255. even slower than on a slow vax. :-)  oh and if it mostly works but the
  256. wildcard requests fail its probably not uucp but your shell that has a
  257. problem... there are creatures out there that don't even know what to
  258. do with something like `echo /usr/tmp/tstuu/to6*'. :-(  (then either
  259. get another shell or if thats not possible edit ECHO_PROGRAM in conf.h.)
  260.  another shell-related problem could be the names of the chat
  261. (shell-)scripts that tstuu uses.  because GEMDOS knows nothing about
  262. execute permissions the shell must have its own idea about what files
  263. are executable as scripts (that should be in your shell's docs).
  264. i used .sh, if your shell wants something different change it. (i'm
  265. using a port of a really nice pd kornshell in case you want to know.)
  266.  
  267. 4. unless i forgot to tell you something important :-) you now should be
  268. able to set up a connection to another system.  if you did not change that
  269. in policy.h you can use taylor and hdb config files, all very much like
  270. you would on un*x.  (there should be nothing that stops you from
  271. enabling V2 config files too, except maybe the filenames that have the
  272. dot in the `wrong' position for GEMDOS. so maybe you have to change that
  273. to a _ or something...)
  274.  if you prefer hdb you might find a hack i made to bnu.c useful: in
  275. Systems after the device you now can not only set the protocol(s) but
  276. also change the g parameters window, packetsize and (optional) timeout:
  277.  
  278. foobox Any ACU,g(7,1024t20) v19200 123456 "" \r\c ogin:-BREAK-ogin:-BREAK-ogin: nuucp word: nuucp
  279.                  ^ ^^^^ ^^
  280.  or (without timeout, default == 10 seconds)
  281.  
  282. foobox Any ACU,g(7,1024) v19200 123456 "" \r\c ogin:-BREAK-ogin:-BREAK-ogin: nuucp word: nuucp
  283.  
  284.  i don't remember where i saw that first but it certainly is a good
  285. idea. (the timeout part is my addition.)  but remember the window
  286. and packet parameters you set on one side always only control what the
  287. *other* side is allowed to do, i.e. what your uucico *sends* still
  288. depends on what the other end wants to have.
  289.  
  290.  ok and before i exit i'll tell you that as another example (there are
  291. already a few in the taylor docs) you can look at my current config
  292. files in usr/. (except Systems, for obvious reasons. :-)
  293.  
  294.  have fun...
  295.     Juergen
  296.