This is a nontrivial problem, unfortunately. I think it is very important that we make it possible to build packages automatically. That means that a script has to be able to download the source package, figure out what binary packages need to be installed on the system to do the build, run the rules script or call dpkg-buildpackage, and automatically find out whether the build succeeded and what the output files are.
We cannot achieve this if source packages are allowed to require the presence of arbitrary files in arbitrary locations. However, it's clearly not acceptable to have many copies of something like the GCC source in our source archive. So we need a mechanism for a source package to refer to other things that it might want. The things that come to my mind as possibly being required that ought not to be included within just the one package are - .orig.tar.gz files of other packages - files which are not .orig.tar.gz of other packages, but which are shared in this strange way between other packages - built source trees of other packages The first and the last are very easy. For the first we have to add something to the .dsc giving details of which files are required and what their md5sums are supposed to be. For the last we have to add something to the .dsc giving details of which Debian source package(s) and version(s) are required. In each case the source package being built would look in its `..' directory for this stuff. The middle requirement is difficult, because on the face of it it requires having a separate repository somewhere on our site for these files (having the files downloaded from an upstream site is no good if for no other reason than that it doesn't satisfy the GPL). However, I can see a workaround for the middle requirement: we could put the file in question (packed or unpacked) into the .orig.tar.gz of one of the packages in question. Then the others would have one of these funky new dependencies on that one, and could refer to it in ../whatever. So, I conclude that we need in the .dsc: Source-Depends: binary-package (version-revision), ... Source-Require-Orig: source-package (version), ... Source-Require-Built: source-package (version-revision), ... Ian.

