[RFC] Proposal for new source format
Debian in form of dpkg have a rather strict view on how our source
packages should look like.
- Files need to be compressed and are recorded as such, which is a hard
problem and give rise to tools like pristine-tar and such.
- Different formats require different version formats. The native
sub-formats only allow native versions for example, leading to version
mangling for packages like "linux-signed-*".
- Restrictions on what files needs to be in which tar for the quilt
- The quilt sub-format can't be built without a correct orig tar.
- We have a large amount of git repositories that consists of
source+patch, instead of read usable source, because using quilt is
the only option we have.
During the tag2upload discussion, I think it got clear that it does not
fit anywhere. And my standing is, that we can't implement such a
service properly without some core changes to how our sources look like.
I would like to have some comments on a large revision on the source
format. It also needs modifications to dak to handle some parts of it.
- Source format version would be "4.0".
- Each source includes an arbitrary number of "tar" layers, which are
applied sequentially and override files from previous steps. I'm not
sure if we need tombstones to be able to remove files.
- The tar files can be named the following ways:
- All files are recorded with their uncompressed checksum and the used
transport compression is recorded in the dsc file.
- Either the existence of debian/patches/series or an explicit
sub-format would do backward compatible setup with quilt.
dpkg-buildpackage would build a subset of this spec:
Other tools like the proposed tag2upload service can produce a different
subset. They could ignore .orig if they don't have the info for example.
I'm missing things here, but I really would like to hear thoughts of
other people about it. I also have no proof of concept yet.
A Vulcan can no sooner be disloyal than he can exist without breathing.
-- Kirk, "The Menagerie", stardate 3012.4