I propose that Debian source packages be constructed this way:
The source package "hello.dsr" is a compressed tar archive containing
The first file is a copy of the Debian package header, for
identification purposes. It's not interpreted by the extraction
process. Its name is HEADER.
The second file is an executable script that performs the actual
extraction, creating a subdirectory under the current directory
and moving files as necessary. Its name is EXTRACT, and it must have
execute permissions set.
The third file is the unmodified upstream source archive,
and is sent to the script on its standard input after the
script has been extracted. Its name is not significant, and in
fact is not interpreted.
The fourth file is patch input to perform any debian-specific
transformations to the extracted source. Its name is DELTA.
To implement the program that extracts .dsr files, we can use the
tar-extractor-in-a-function I wrote for "dpkg". We can create them with
This would be quite trivial to implement. It has the advantage that it contains
the unmodifed upstream source (not even its name has to be changed) and the
diff file in a single unit, and can be extracted on any system that contains
tar and gunzip.
See Pixar's "Toy Story", at a theater near you starting November 22.