[comp.sources.apple2] v01_ADM_2: Packaging for sources

jac@paul.rutgers.edu (Jonathan A. Chandross) (09/04/90)

Submitted-by: jac@paul.rutgers.edu
Posting-number: Volume 1, Administrivia: 2


Something is needed to distribute multi-file postings.  For instance,
	file_1.c
	file_2.c
	Manual
	Read.Me
Distributing this in four postings is obviously not desirable.  Neither
is concatenating them together -- you'd only have to separate them by
hand.  Very tedious.  So a program is needed to package files together
into an archive of some sort.  The MS-DOS world uses "arc", the Amiga
world "zoo", and the Unix world "shar".  The Apple ][ world has the
equivalent, but only for binaries.

Programs like Blu, Executioner, BINSCII, etc. are not useful for
source because you have to unpack the files to decide if you are
interested in them.  You should be able to page through a file with
more or with a newsreader to decide if you are interested in it.
Having to unpack a file, often after downloading, is unacceptable.
As Rich Salz (moderator of comp.sources.unix) put it,

	Posting anything other than human-readable sourcecode to a
	sources newsgroup is a crime.

I would like to keep the progrm which does this as simple as possible
since a version will have to be written for the Apple end; no sense
making life more complicated than it has to be.  The simplest thing
seems to be a package which just extracts a bunch of text into a
file.  No directories are created, permissions changed, etc.  Here's
the general form it might take:

	begin <file-name>
	- line 1 of file
	- line 2 of file
	-  ...
	-  ...
	- line n-1 of file
	- line n of file
	end <checksum>

where <file-name> is the name of the file and <checksum> is some
simple checksum; a byte count and maybe the xor of all the bytes
in the file.  Durin extract, the program might check to make sure
that it does not overwrite any file, but this is perhaps optional.

Two programs are needed -- pack and unpack.  Both are trivial to
write in C and not terribly hard to write in Applesoft or assembly.

I think the format and commands supported need some discussion.  The
program must be implementable both on the Apple // as well as under
Unix.  However, the same version doesn't have to be used on both
machines.  That is, Applesoft is fine for the Apple // end and a
C version for the Unix end.


Jonathan A. Chandross
Internet: jac@paul.rutgers.edu
UUCP: rutgers!paul.rutgers.edu!jac