home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD1.img
/
bbs
/
readme
< prev
next >
Wrap
Text File
|
1994-04-17
|
24KB
|
510 lines
BBS/FTP README
(Updated 4/17/94)
--------
OVERVIEW
--------
This is the root directory of a file tree containing over 5500 archives.
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 Some history behind why the CD-ROM is organized as it is, and
the tradeoffs that went in to deciding on a particular organi-
zation.
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 :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 under the BBS
directory on 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 and
how big it 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 "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 - /GoldFish1-Apr94/BBS/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 - /GoldFish1-Apr94/BBS/d9xx/d950
BBDoors.lha GoldFish1-Apr94:BBS/d9xx/d950/BBDoors.lha
BusyPointers.lha GoldFish1-Apr94:BBS/d9xx/d950/BusyPointers.lha
ClockTool.lha GoldFish1-Apr94:BBS/d9xx/d950/ClockTool.lha
Enforcer.lha GoldFish1-Apr94:BBS/d9xx/d950/Enforcer.lha
PayAdvice.lha GoldFish1-Apr94:BBS/d9xx/d950/PayAdvice.lha
Sushi.lha GoldFish1-Apr94:BBS/d9xx/d950/Sushi.lha
bbsQUICK.lha GoldFish1-Apr94:BBS/d9xx/d950/bbsQUICK.lha
Disk950.lha GoldFish1-Apr94:BBS/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/d9xx/d950
BBDoors.lha 6.5 187Kb => GoldFish1-Apr94:BBS/d9xx/d950/
BusyPointers.lha ?.? 11Kb => GoldFish1-Apr94:BBS/d9xx/d950/
ClockTool.lha 1.0 26Kb => GoldFish1-Apr94:BBS/d9xx/d950/
Enforcer.lha 37.55 66Kb => GoldFish1-Apr94:BBS/d9xx/d950/
PayAdvice.lha 3.00 52Kb => GoldFish1-Apr94:BBS/d9xx/d950/
Sushi.lha 37.10 14Kb => GoldFish1-Apr94:BBS/d9xx/d950/
bbsQUICK.lha 6.4 26Kb => GoldFish1-Apr94:BBS/d9xx/d950/
Disk950.lha ?.? 23Kb => GoldFish1-Apr94:BBS/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
C compiler. The GNU C compiler can be found on the latest FreshFish or
FrozenFish CD-ROM, on aminet sites on the internet, and probably in other
places as well.
-------------------
CD-ROM ORGANIZATION
-------------------
A couple months prior to creating this CD-ROM I posted various notes asking
for feedback on how people would like to see the BBS and FTP sections of my
CD-ROM's organized. I got less feedback than I had hoped for, but what I
did get was quite useful. There seems to be two very distinct "camps" of
people, with conflicting desires for how the material should be organized.
One group of people wants to see the floppy disk structure preserved for
that portion of the material that comes from the floppy disk library, and
have that structure reflected in the organization of the material on the
CD-ROM. If they know the disk number that a particular program appears on,
they want to quickly and easily locate the appropriate directory containing
the material. Within that directory they expect to find either one archive
containing the entire contents of that floppy disk, or several archives
with each containing one submission included on that floppy disk. Usually
these people expect to be owners of the CD-ROM and copy the material
directly off the CD-ROM to a hard drive, or they expect to access the
material via internet and ftp it from a site that has the CD-ROM mounted.
Also in this camp are people that want to be able to quickly find all the
parts that go into making up a particular floppy disk so that they can
recreate a given floppy for further distribution.
The other group of people wants to see the material organized along
functional lines (games, demos, graphics, programming tools, etc), and
don't really care too much about preserving the floppy structure. They
want a minimal directory structure (10-25 directories or so), with no more
than a few hundred files in each directory. Generally these people are BBS
owners that want to make the CD-ROM contents available to the general
public via their BBS. They need additional support in the form of
"files.bbs" type files, or some other way to get information about the
CD-ROM contents into a form that their BBS can use.
For building this CD-ROM, I decided upon a structure that preserves the
original organization of the material, using a fairly shallow directory
tree with short names. This should satisfy the needs of most owners of the
CD-ROM and people that access the contents via ftp, where they can directly
browse the structure and get specific files as they are found. As an
example, consider the location of material from floppy disk 504:
BBS - root directory of BBS/FTP material
BBS/d5xx - floppy disks 500-599
BBS/d5xx/d504 - floppy disk 504
BBS/d5xx/d504/Disk504.crc - CRC list for all files on disk 504
BBS/d5xx/d504/Disk504.lha - Archive of disk "overhead files"
BBS/d5xx/d504/View.lha - Archive of the "View" submission
BBS/d5xx/d504/ViewDir.lha - Archive of the "ViewDir" submission
.
.
.
Note that all the files relevant to disk 504 can be found in the single
directory "BBS/d5xx/d504". To reconstruct disk 504, all that is needed is
to format a floppy and unarchive all of the archives that are found in the
d504 directory in the root directory of the floppy. The brik program can
be used afterwards, with the Disk504.crc file as input, to verify that all
the files that are expected to be on the floppy are in the correct location
and have the correct contents. The program "PufferFish", found elsewhere
on this CD-ROM, will do all of this for you, for any disk or range of
disks, with a few clicks of the mouse.
--------------------
USING SYMBOLIC LINKS
--------------------
In order to satisfy the diverse needs of people that want to see the CD-ROM
organized on something other than the traditional disk format, 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 that
can simply be reformatted if something goes wrong,
and that you acquire copies of the GNU utilities
"ls", "rm", etc before starting to work with symbolic
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 26 different
areas, with 21-1320 files in each area. 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 direct-
ory accessible via the BBS. We could of course simply copy each of the
relevant archives off the 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 /GoldFish1-Apr94/BBS
grep "MuchMore\.lha" junkfile >muchmorefiles
type muchmorefiles
GoldFish1-Apr94:BBS/d2xx/d234/MuchMore.lha 1.8
GoldFish1-Apr94:BBS/d2xx/d253/MuchMore.lha 2.5
GoldFish1-Apr94:BBS/d3xx/d378/MuchMore.lha 2.7
GoldFish1-Apr94:BBS/d5xx/d560/MuchMore.lha 3.0
GoldFish1-Apr94:BBS/d8xx/d895/MuchMore.lha 3.3
GoldFish1-Apr94:BBS/d9xx/d935/MuchMore.lha 3.6
GoldFish1-Apr94:BBS/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
type execute.me
ln -s GoldFish1-Apr94:BBS/d2xx/d234/MuchMore.lha MuchMore-1.8.lha
ln -s GoldFish1-Apr94:BBS/d2xx/d234/MuchMore.lha.pi MuchMore-1.8.lha.pi
ln -s GoldFish1-Apr94:BBS/d2xx/d253/MuchMore.lha MuchMore-2.5.lha
ln -s GoldFish1-Apr94:BBS/d2xx/d253/MuchMore.lha.pi MuchMore-2.5.lha.pi
ln -s GoldFish1-Apr94:BBS/d3xx/d378/MuchMore.lha MuchMore-2.7.lha
ln -s GoldFish1-Apr94:BBS/d3xx/d378/MuchMore.lha.pi MuchMore-2.7.lha.pi
ln -s GoldFish1-Apr94:BBS/d5xx/d560/MuchMore.lha MuchMore-3.0.lha
ln -s GoldFish1-Apr94:BBS/d5xx/d560/MuchMore.lha.pi MuchMore-3.0.lha.pi
ln -s GoldFish1-Apr94:BBS/d8xx/d895/MuchMore.lha MuchMore-3.3.lha
ln -s GoldFish1-Apr94:BBS/d8xx/d895/MuchMore.lha.pi MuchMore-3.3.lha.pi
ln -s GoldFish1-Apr94:BBS/d9xx/d935/MuchMore.lha MuchMore-3.6.lha
ln -s GoldFish1-Apr94:BBS/d9xx/d935/MuchMore.lha.pi MuchMore-3.6.lha.pi
ln -s GoldFish1-Apr94:BBS/d9xx/d962/MuchMore.lha MuchMore-4.2.lha
ln -s GoldFish1-Apr94:BBS/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 -> GoldFish1-Apr94:BBS/d2xx/d234/MuchMore.lha
MuchMore-1.8.lha.pi -> GoldFish1-Apr94:BBS/d2xx/d234/MuchMore.lha.pi
MuchMore-2.5.lha -> GoldFish1-Apr94:BBS/d2xx/d253/MuchMore.lha
MuchMore-2.5.lha.pi -> GoldFish1-Apr94:BBS/d2xx/d253/MuchMore.lha.pi
MuchMore-2.7.lha -> GoldFish1-Apr94:BBS/d3xx/d378/MuchMore.lha
MuchMore-2.7.lha.pi -> GoldFish1-Apr94:BBS/d3xx/d378/MuchMore.lha.pi
MuchMore-3.0.lha -> GoldFish1-Apr94:BBS/d5xx/d560/MuchMore.lha
MuchMore-3.0.lha.pi -> GoldFish1-Apr94:BBS/d5xx/d560/MuchMore.lha.pi
MuchMore-3.3.lha -> GoldFish1-Apr94:BBS/d8xx/d895/MuchMore.lha
MuchMore-3.3.lha.pi -> GoldFish1-Apr94:BBS/d8xx/d895/MuchMore.lha.pi
MuchMore-3.6.lha -> GoldFish1-Apr94:BBS/d9xx/d935/MuchMore.lha
MuchMore-3.6.lha.pi -> GoldFish1-Apr94:BBS/d9xx/d935/MuchMore.lha.pi
MuchMore-4.2.lha -> GoldFish1-Apr94:BBS/d9xx/d962/MuchMore.lha
MuchMore-4.2.lha.pi -> GoldFish1-Apr94:BBS/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 utilities can be
found on the FreshFish and FrozenFish CD-ROM's, as well as on many aminet
sites on the internet (typically bundled with gcc distributions).
Unfortunately I cannot include them on this CD-ROM in binary form because
there is not enough space to also include the source code.
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 '.'
type 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.
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" on the current
version of these files shows the statistics of what directories are present
and how many archive files are in each.
395 a/files.bbs
220 b/files.bbs
341 c/files.bbs
1320 d/files.bbs
109 e/files.bbs
219 f/files.bbs
101 g/files.bbs
108 h/files.bbs
173 i/files.bbs
42 j/files.bbs
65 k/files.bbs
167 l/files.bbs
414 m/files.bbs
117 n/files.bbs
42 o/files.bbs
385 p/files.bbs
36 q/files.bbs
175 r/files.bbs
482 s/files.bbs
243 t/files.bbs
71 u/files.bbs
121 v/files.bbs
114 w/files.bbs
47 x/files.bbs
21 y/files.bbs
25 z/files.bbs
5553 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 (all 5500+ of them!), generating these views will be
an almost trivial operation.
--------------
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. The "Setup" script
in the root directory of this CD-ROM can arrange for this CD-ROM's ":C" and
":LIBS" directories to be added to your C: and LIBS: assign paths
respectively, 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 ><>