home *** CD-ROM | disk | FTP | other *** search
-
- BBS/FTP README
-
- (Updated 5/14/94)
-
- --------
- OVERVIEW
- --------
-
- This is the root of a directory tree containing lha archives of material
- included elsewhere on this CD-ROM, or from previous CD-ROM's.
-
- See the other informational files on this CD-ROM for details about what is
- contained in these archives. This file deals purely with details about how
- this CD-ROM might be used in a BBS or FTP environment. Some of the details
- discussed here include:
-
- o How do I unpack all these *.lha archives.
-
- o What are all these *.pi (product info) files and why they are
- important.
-
- o How you can arrange to access the contents of the CD-ROM from
- several different "views" using symbolic links, and what support
- is provided to make this relatively easy to set up.
-
- o The default alternative "view".
-
- ------------
- LHA ARCHIVES
- ------------
-
- Almost all the archives on this CD-ROM are in "lha format". The shareware
- version of lha is included in the Useful/Sys/C directory of this CD-ROM, so
- all you have to do to unpack any archive is use a command of the form:
-
- lha -mraxe x archive.lha
-
- Please consider registering with the lha author, Stefan Boberg, for the
- latest version of lha, so he can continue to support this fine program.
-
- ------------------
- PRODUCT INFO FILES
- ------------------
-
- If you have already peeked in some of the directories of this CD-ROM, you
- probably noticed that for every archive there is a corresponding file of the
- same name with ".pi" appended to the name. These are "product info" files,
- and contain important information about the contents of the archive that
- they correspond to. The current specification for the structure and
- contents of these files can be found in the "Product-Infos" file in the
- "Information" directory on this CD-ROM, and should continue to be posted
- periodically in the usenet news group "comp.sys.amiga.announce" as it
- evolves.
-
- The product info files are a way to organize lots of information about a
- program in an extensible text format that is relatively simple for programs
- to parse. It looks something like:
-
- .name
- myprog
- .fullname
- My smart little program
- .version
- 1.4
- .short
- Computes winning horse, 100% accurate.
- .author
- Me
- .address
- 123 Somestreet
- Anywhere, USA
-
- Aside from the information about where to find an archive (implied by the
- location of the corresponding product info file), two other very important
- pieces of information that are included in these product info files are the
- version number (if known) and a 40 character or less short description of
- what is contained in each archive.
-
- When used in a BBS or FTP environment the pieces of information that are
- usually desirable to have include:
-
- o Name of the archive.
- o Location of the archive (where BBS software can find archive)
- o Version number of the material in the archive.
- o Size of the archive.
- o Date of release of the material in the archive.
-
- A common way of making this information available to the BBS sysop, and
- ultimately the BBS software, is to build a "files.bbs" file in each
- directory where the files are found, or possibly in a separate directory,
- depending upon the BBS software. These files are typically fixed field
- width files with one line per archive, and look something like:
-
- foo1.4.lha 103200 04-Jan-94 Do the dishes, watch TV
- bar34.lha 33567 11-Mar-94 Take out the trash, eat dinner
-
- One major problem is that no two BBS systems seem to agree on the exact
- format of this file, and from what information I've been able to obtain,
- generally have rigid requirements for exactly where each field must be, how
- big it must be, and what it's format must be.
-
- Rather than attempt to include direct support for one or more different BBS
- systems, in a variety of different formats, I've elected to provide some
- simple tools that BBS operators can use to build their own information files
- in whatever format the BBS requires. This is where the product info files
- come in.
-
- The directory "Tools/PItools" contains several small tools for manipulating
- product info files. The most important of these is "pitool", which can walk
- the entire directory tree of the CD-ROM and perform a number of different
- operations on the product info files that it finds. One thing it can do is
- to print a one line entry to it's standard output stream for each product
- info file that it processes, and format this field according to a specifier
- string that looks a lot like a typical C "printf" style string.
-
- The following example prints the file's "basename" in a left justified 24
- character wide field, followed by a space, followed by the contents of the
- ".short" field in a left justified 40 character wide field, and finally, a
- newline character:
-
- pitool -b -F "%-24B %-40S\n" -f - /FrozenFish-Apr94/BBS/ALib/d9xx/d950
-
- BBDoors.lha rexxDoors for BBBBS, V6.5
- BusyPointers.lha 'NickPrefs' busy pointers collection.
- ClockTool.lha Manipulate battery and/or system clocks
- Enforcer.lha Tool to monitor illegal memory access.
- PayAdvice.lha Pay analysis program.
- Sushi.lha Intercept Enforcer raw serial output.
- bbsQUICK.lha bbsQUICK offline module for BBBBS, V6.4
- Disk950.lha Library admin files for disk 950.
-
- This example prints the file "basename" in a right justified 24 character
- wide field, followed by a space, followed by the complete pathname to that
- file in a field of unlimited length, and then a newline character:
-
- pitool -b -F "%24B %P\n" -f - /cdrom/BBS/ALib/d9xx/d950
-
- BBDoors.lha cdrom:BBS/ALib/d9xx/d950/BBDoors.lha
- BusyPointers.lha cdrom:BBS/ALib/d9xx/d950/BusyPointers.lha
- ClockTool.lha cdrom:BBS/ALib/d9xx/d950/ClockTool.lha
- Enforcer.lha cdrom:BBS/ALib/d9xx/d950/Enforcer.lha
- PayAdvice.lha cdrom:BBS/ALib/d9xx/d950/PayAdvice.lha
- Sushi.lha cdrom:BBS/ALib/d9xx/d950/Sushi.lha
- bbsQUICK.lha cdrom:BBS/ALib/d9xx/d950/bbsQUICK.lha
- Disk950.lha cdrom:BBS/ALib/d9xx/d950/Disk950.lha
-
- This example prints the file "basename" in a left justfied 20 character
- wide field, followed by a space, the version number in a right justified 6
- character wide field, followed by another space, the size of the archive in
- Kb in a 3 character wide right justified field, followed immediately by the
- literal string "Kb => ", followed by the directory in which the file is
- stored in a field of unlimited length, followed by a newline:
-
- pitool -b -F "%-20B %6V %3KKb => %D\n" -f - /cdrom/BBS/ALib/d9xx/d950
-
- BBDoors.lha 6.5 187Kb => cdrom:BBS/ALib/d9xx/d950/
- BusyPointers.lha ?.? 11Kb => cdrom:BBS/ALib/d9xx/d950/
- ClockTool.lha 1.0 26Kb => cdrom:BBS/ALib/d9xx/d950/
- Enforcer.lha 37.55 66Kb => cdrom:BBS/ALib/d9xx/d950/
- PayAdvice.lha 3.00 52Kb => cdrom:BBS/ALib/d9xx/d950/
- Sushi.lha 37.10 14Kb => cdrom:BBS/ALib/d9xx/d950/
- bbsQUICK.lha 6.4 26Kb => cdrom:BBS/ALib/d9xx/d950/
- Disk950.lha ?.? 23Kb => cdrom:BBS/ALib/d9xx/d950/
-
- The source to this utility is provided in case any further customizations
- are needed, however it is currently only compiled and tested with the GNU
- compiler. The GNU compiler is included in ready to run form under the GNU
- directory, and in archived form under the BBS/GNU directory.
-
- --------------------
- USING SYMBOLIC LINKS
- --------------------
-
- I have included some tools and scripts that will allow the contents of the
- CD-ROM to be presented with any arbitrary organization, by using the
- "symbolic link" feature built into Kickstart 2.04 or later. The same
- techniques will also work for people that want to access this CD-ROM on Unix
- systems that support symbolic links.
-
- == DISCLAIMER ==
-
- Symbolic links are a new feature in AmigaDOS, and have probably
- not had a lot of testing, as is evident from the fact that most of
- the currently available standard Commodore utilities don't fully
- support them. If you munge your hard drive, create files that are
- hard to delete, create file trees that cause your backup utility
- to choke, or otherwise scramble your disks, I am NOT RESPONSIBLE.
- I strongly suggest that you first experiment with these techniques
- in a separate scratch partition or on a floppy disk, so that the
- partition or floppy can simply be reformatted to remove all traces
- of the links.
-
- Basically, a symbolic link is a file that contains the name of another file,
- where the actual file contents are to be found. For example, the notation:
-
- file1 -> file2
-
- means that "file1" is a symbolic link containing the string "file2", and the
- actual file contents are in "file2". When the system opens "file1", it
- arranges that any attempt to read/write "file1" actually reads/writes
- "file2".
-
- The useful feature of symbolic links is that "file1" can be a file on either
- your hard drive or a floppy disk, and "file2" can be a file on the CD-ROM.
- Since you are able to create a directory tree of links using any
- organization you like, you can effectively reorganize the contents of the
- CD-ROM without actually changing it in any way. You are simply changing
- your effective view of it. You can have as many effective views as you want
- simultaneously by simply having several different trees of symbolic links.
-
- New alternative views can be added at any time. Plus your view can even
- include multiple CD-ROM's or random files that are stored in some other part
- of your system. So when an update is released to some program on the
- CD-ROM, it can be added right alongside the older material that is included
- on the CD-ROM by simply adding another link. Nobody but the BBS sysop has
- to know where the actual material is stored.
-
- ---------------------------
- EXAMPLE WITH SYMBOLIC LINKS
- ---------------------------
-
- Don't be discouraged by the gory details of this example, since the CD-ROM
- comes with an archive containing a script and "files.bbs" files that can be
- used to set up a default view which divides the CD-ROM up into about 26
- different areas, based on alphabetic sorting of the archive names. So you
- shouldn't have to get down to this level unless you want a more custom
- setup.
-
- As a concrete example, let's assume that we want to create a directory
- "sys:bbs/filereaders" that will have all of the text readers that have ever
- appeared in the floppy library, and then make the contents of this directory
- accessible via the BBS. We could of course simply copy each of the relevant
- archives off the Apr94 FrozenFish CD-ROM into sys:bbs/filereaders, but then
- this defeats most of the advantages of having a CD-ROM in the first place,
- other than as a distribution medium.
-
- We will limit our example to one single text reading program, "MuchMore".
- By using "pitool" with the right format as shown below, we can get a list of
- the complete pathnames to all files on the CD-ROM for which there is a
- product info file, and what their version numbers are. Then using "grep" on
- this list, we can select only those files we are interested in:
-
- cd sys:bbs/filereaders
- pitool -b -f - -F "%P %V\n" >junkfile /FrozenFish-Apr94/BBS/ALib
- grep "MuchMore\.lha" junkfile >muchmorefiles
- cat muchmorefiles
-
- FrozenFish-Apr94:BBS/ALib/d2xx/d234/MuchMore.lha 1.8
- FrozenFish-Apr94:BBS/ALib/d2xx/d253/MuchMore.lha 2.5
- FrozenFish-Apr94:BBS/ALib/d3xx/d378/MuchMore.lha 2.7
- FrozenFish-Apr94:BBS/ALib/d5xx/d560/MuchMore.lha 3.0
- FrozenFish-Apr94:BBS/ALib/d8xx/d895/MuchMore.lha 3.3
- FrozenFish-Apr94:BBS/ALib/d9xx/d935/MuchMore.lha 3.6
- FrozenFish-Apr94:BBS/ALib/d9xx/d962/MuchMore.lha 4.2
-
- We now know what the name of each archive is (the last component in the
- pathname), where it is stored, and what version number it is. The next step
- is to generate symbolic links in the current directory that point to each
- file on the CD-ROM. I have provided a simple program that does this, called
- "symlinks".
-
- The symlinks program takes as input a file containing lines in the above
- format, and makes links in either the current directory or a directory that
- has the same name as the first character of the name of the archive ('m' in
- this case). Because all the archives have the same name, the symlinks
- program arranges for each link to have a unique name by included either the
- version number or the floppy disk number in the name of the archive. Since
- the version numbers are known for all the files in this example, the version
- numbers are given preference. The symlinks program can either make the
- links directly, or emit a script that can be run, possibly after some "hand
- tweaking", to generate the links:
-
- symlinks -s <muchmorefiles >execute.me
- cat execute.me
- ln -s FrozenFish-Apr94:BBS/ALib/d2xx/d234/MuchMore.lha MuchMore-1.8.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d2xx/d234/MuchMore.lha.pi MuchMore-1.8.lha.pi
- ln -s FrozenFish-Apr94:BBS/ALib/d2xx/d253/MuchMore.lha MuchMore-2.5.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d2xx/d253/MuchMore.lha.pi MuchMore-2.5.lha.pi
- ln -s FrozenFish-Apr94:BBS/ALib/d3xx/d378/MuchMore.lha MuchMore-2.7.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d3xx/d378/MuchMore.lha.pi MuchMore-2.7.lha.pi
- ln -s FrozenFish-Apr94:BBS/ALib/d5xx/d560/MuchMore.lha MuchMore-3.0.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d5xx/d560/MuchMore.lha.pi MuchMore-3.0.lha.pi
- ln -s FrozenFish-Apr94:BBS/ALib/d8xx/d895/MuchMore.lha MuchMore-3.3.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d8xx/d895/MuchMore.lha.pi MuchMore-3.3.lha.pi
- ln -s FrozenFish-Apr94:BBS/ALib/d9xx/d935/MuchMore.lha MuchMore-3.6.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d9xx/d935/MuchMore.lha.pi MuchMore-3.6.lha.pi
- ln -s FrozenFish-Apr94:BBS/ALib/d9xx/d962/MuchMore.lha MuchMore-4.2.lha
- ln -s FrozenFish-Apr94:BBS/ALib/d9xx/d962/MuchMore.lha.pi MuchMore-4.2.lha.pi
-
- Note that this program also arranges for the product info file to be linked
- as well. This is so "pitool" can be used later to automatically build
- appropriate description files when run on the tree of symbolic links. After
- that is done, the links to the product info files can be deleted if desired.
- After executing the above script, doing an "ls -l" on the directory reveals
- the symbolic links (output edited to make it more clear and to fit on 80
- char line):
-
- ls -l
- MuchMore-1.8.lha -> FrozenFish-Apr94:BBS/ALib/d2xx/d234/MuchMore.lha
- MuchMore-1.8.lha.pi -> FrozenFish-Apr94:BBS/ALib/d2xx/d234/MuchMore.lha.pi
- MuchMore-2.5.lha -> FrozenFish-Apr94:BBS/ALib/d2xx/d253/MuchMore.lha
- MuchMore-2.5.lha.pi -> FrozenFish-Apr94:BBS/ALib/d2xx/d253/MuchMore.lha.pi
- MuchMore-2.7.lha -> FrozenFish-Apr94:BBS/ALib/d3xx/d378/MuchMore.lha
- MuchMore-2.7.lha.pi -> FrozenFish-Apr94:BBS/ALib/d3xx/d378/MuchMore.lha.pi
- MuchMore-3.0.lha -> FrozenFish-Apr94:BBS/ALib/d5xx/d560/MuchMore.lha
- MuchMore-3.0.lha.pi -> FrozenFish-Apr94:BBS/ALib/d5xx/d560/MuchMore.lha.pi
- MuchMore-3.3.lha -> FrozenFish-Apr94:BBS/ALib/d8xx/d895/MuchMore.lha
- MuchMore-3.3.lha.pi -> FrozenFish-Apr94:BBS/ALib/d8xx/d895/MuchMore.lha.pi
- MuchMore-3.6.lha -> FrozenFish-Apr94:BBS/ALib/d9xx/d935/MuchMore.lha
- MuchMore-3.6.lha.pi -> FrozenFish-Apr94:BBS/ALib/d9xx/d935/MuchMore.lha.pi
- MuchMore-4.2.lha -> FrozenFish-Apr94:BBS/ALib/d9xx/d962/MuchMore.lha
- MuchMore-4.2.lha.pi -> FrozenFish-Apr94:BBS/ALib/d9xx/d962/MuchMore.lha.pi
-
- Note that if you use the standard Commodore commands (dir or list), these
- files may appear to be directories rather than links or regular files. This
- is a deficiency in the Commodore utilities that will hopefully be fixed in a
- future release. For now I recommend doing maintenance on symbolic links by
- using the GNU utilities "ls", "rm", and "ln", that handle symbolic links
- exactly as their UNIX counterparts. These can all be found in the "GNU/bin"
- directory on this CD-ROM, and in the archives that are included in the
- BBS/GNU directory, if you find you are missing something. See the notes
- further down in this document about ixemul.library and needing to use a
- larger stack value than you might normally be used to.
-
- If we run pitool now in this directory (or in a tree of such directories),
- we can generate "files.bbs" files in each directory:
-
- cd sys:bbs/textreaders
- pitool -b -F "%-24B %3KK %S\n" . <---- note trailing '.'
- cat files.bbs
-
- MuchMore-1.8.lha 36K Nice text viewer, like "more" or "less".
- MuchMore-2.5.lha 53K Very nice text display program.
- MuchMore-2.7.lha 42K Nice text displayer, like "more"/"less".
- MuchMore-3.0.lha 43K Program like "more", "less", "pg", etc.
- MuchMore-3.3.lha 61K Program like "more", "less", "pg", etc.
- MuchMore-3.6.lha 64K Program like "more", "less", "pg", etc.
- MuchMore-4.2.lha 86K Soft scroll text viewer with xpk-support
-
- Also note that the -f option can be used to specify the name of the
- "files.bbs" type file. This is useful to support multiple different kinds
- of information files (generated by different -F strings), or to force the
- name to match what your BBS system expects.
-
- At this point, we should simply be able to add sys:bbs/textreaders as a new
- file area, and have the BBS pick up the file descriptions from the files.bbs
- file that was built. Accesses to the files in that area will follow the
- symbolic link to the actual file on the CD-ROM.
-
- One caution though, many tools don't work properly on symbolic links. One
- of those tools is lha version 1.38, the apparently last shareware freely
- distributable version of lha. It is entirely possible that whatever BBS
- system you are using may choke on links as well. If so, you should ask the
- vendor of your BBS to support links, since I think this technique is quite
- powerful, and will become more important as time goes on and CD-ROM's get
- more and more common.
-
- ------------------------
- DEFAULT ALTERNATIVE VIEW
- ------------------------
-
- The directory BBS/Support contains at least one default view as "view1.lha".
- This archive contains a script called "view1.script", and an archive of
- files.bbs files called "view1desc.lha". When the script is executed, it
- creates a subtree of directories in the current directory, with one
- directory for each letter of the alphabet, and then creates symbolic links
- in each of those directories to files on the CD-ROM that start with that
- letter. The link names incorporate the version number of the material or
- the disk number, as described above. If this still isn't sufficient to make
- the names unique, an additional differentiator string is added to the file
- basename. I.E.
-
- M/MuchMore-1.8.lha
- M/MuchMore-1.8-a.lha
- M/MuchMore-1.8-b.lha
-
- This can happen when there are more than one copy of the same version of the
- material on the same CD-ROM (such as included both in the floppy library and
- in the "Useful" tree).
-
- After building the directory tree and populating it with symbolic links, the
- view1.script file unarchives "view1desc.lha" to populate each directory with
- default "files.bbs" files. Doing a "wc -l #?/files.bbs" for the May 94
- FreshFish CD version of these files shows the statistics of what directories
- are present and how many archive files are in each. Note that the complete
- GNU distribution is placed in it's own private directory:
-
- 127 GNU/files.bbs
- 44 a/files.bbs
- 32 b/files.bbs
- 44 c/files.bbs
- 51 d/files.bbs
- 8 e/files.bbs
- 24 f/files.bbs
- 11 g/files.bbs
- 19 h/files.bbs
- 12 i/files.bbs
- 5 j/files.bbs
- 8 k/files.bbs
- 13 l/files.bbs
- 39 m/files.bbs
- 10 n/files.bbs
- 7 o/files.bbs
- 25 p/files.bbs
- 3 q/files.bbs
- 16 r/files.bbs
- 44 s/files.bbs
- 35 t/files.bbs
- 5 u/files.bbs
- 12 v/files.bbs
- 13 w/files.bbs
- 2 x/files.bbs
- 2 y/files.bbs
- 2 z/files.bbs
- 613 total
-
- It is hoped that additional views will become available fairly quickly,
- including one that is structured along more functional lines, like "games/",
- "pictures/", "compilers/", etc. As more information is added to the product
- info files, generating these views will be an almost trivial operation.
-
- Note that instead of running the view1.script file, you can execute the
- view1.links file which runs the GNU ln utility to make the links rather than
- using the symlink() call built into the symlinks utility. This gives you
- the opportunity to modify the links if desired. You then have to unpack the
- view1desc.lha archive to populate the directories with the files.bbs files.
-
- Unix users should note that a simple edit to view1.links will make the
- script usable on Unix systems that support symbolic links. Just change all
- occurances of strings like "FreshFish-May94:" to "/cdrom/", or whatever
- directory the CD-ROM is mounted on.
-
- ----------------------------
- GZIP COMPRESSED TAR ARCHIVES
- ----------------------------
-
- A few archives here are in what is known as "compressed tar archive" format.
- These are archives that are made with "tar" and then compressed with the
- "gzip" compressor. Generally they are the original unchanged archives for
- GNU distributions, exactly as released by the Free Software Foundation. To
- unpack them, you can do:
-
- gzip -d foo.tar.gz
- tar -xvf foo.tar
-
- or if you have a shell that supports pipes, you can avoid making the
- uncompressed tar archive (which might be quite large), and simply do:
-
- gzip -d <foo.tar.gz | tar -xvf -
-
- Both gzip and tar are included in the "GNU/bin" directory on this CD-ROM.
-
- --------------
- IXEMUL.LIBRARY
- --------------
-
- All of the utilities described here are compiled with GNU gcc, and require
- the ixemul.library to be found in the LIBS: directory. If you run the
- suggested startup scripts "Useful-Startup" and "GNU-Startup", the utilities
- and libraries will be added to your C: and LIBS: assigns for you, so you
- don't have to actually copy anything off the CD-ROM to run the tools.
-
- Be sure to set your stack size to a fairly large value, say 50,000 or more,
- before running any of the tools.
-
- -Fred ><>
-