Re: RFC declarative built-using field generation
On Fri, Feb 08, 2013 at 08:36:56AM +0100, Raphael Hertzog wrote:
> On Thu, 07 Feb 2013, Joey Hess wrote:
> > Ben Hutchings wrote:
> > > What I mean is that a changes file for a sourceful upload has
> > > 'source' (and maybe some real architecture names) in the Architecture
> > > field. Therefore 'source' cannot be assigned as the name of a real
> > > architecture.
> > Ah, sure.
> > However, "source" in Build-Depends could be taken to mean that it
> > Build-Depends on the source of the package. Which is not currently
> > supported, but I'm sure everyone stuck maintaining foo-source binary
> > packages would be happy if it were one day. So perhaps best not to
> > overload it.
There are apparently currently 67 .*-source.* packages in Debian Sid:
$ grep-dctrl -P --pattern "-source" -c < Packages
> However, if this would get implemented, it would probably end up using
> the multiarch syntax "foo:source" (at least that seems to be the most
> logical choice to me).
Since source packages can't have an architecture by themselves (only the
architecture on which they are buildable), this seems sensible.
In other places (like the debian bugtracker) src:pkgname is used. We
also use src:pkgname in dose3. So this might be an alternative.
> So I don't believe that this would be in conflict with "foo [source]".
> It might be a bit confusing though to use the same keyword in
> different situations (and furthermore it should be "foo [any source]"
> if we don't want the build-dependency to be dropped...).
Another idea to mark source packages of build dependencies for inclusion
in the built-using field would be using the syntax proposed by ian
jackson in the "Bootstrappable Debian" thread:
His idea encoded the information about which build dependencies are
needed for a specific build profile like this:
Build-Depends: huge (>= 1.0) [i386 arm] [!profile:embedded !profile:stage1]
He propose an extension to the architecture specification syntax using
scopes (like "profile"). This extension could be used to mark the source
packages of build dependencies for inclusion in the built-using field as
Build-Depends: foobar (>= 1.0) [i386 arm] [extras:built-using]
As an example, I put the information in an "extras" scope.
Maybe this makes sense.