[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

checker cannot be built from source (bug 14066 et al)



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.


Reply to: