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

Bug#400322: Limiting non-build-time relationships to a set of architectures?



Hi!

On Sat, 2010-07-03 at 22:26:27 -0700, Russ Allbery wrote:
> If this already works, we should document it, since it can be quite
> useful.  Here's an attempt at wording.  Please check this and make sure
> that I'm correctly documenting what works.
> 
> Do architecture restrictions work with Provides?  This documentation says
> that they do, but I can easily correct that if it's wrong.

Yes, they do.

> diff --git a/policy.sgml b/policy.sgml
> index bad28af..316f753 100644
> --- a/policy.sgml
> +++ b/policy.sgml
> @@ -4373,21 +4373,24 @@ Depends: libc6 (>= 2.2.1), exim | mail-transport-agent
>  	</p>
>  
>          <p>
> -          All fields that specify build-time relationships
> +	  Relationships may be restricted to a certain set of
> +	  architectures.  This is indicated in brackets after each
> +	  individual package name and the optional version specification.
> +	  The brackets enclose a list of Debian architecture names
> +	  separated by whitespace.  Exclamation marks may be prepended to
> +	  each of the names.  (It is not permitted for some names to be
> +	  prepended with exclamation marks while others aren't.)
> +	</p>
> +
> +	<p>
> +	  For build relationship fields
>  	  (<tt>Build-Depends</tt>, <tt>Build-Depends-Indep</tt>,
> -	  <tt>Build-Conflicts</tt> and <tt>Build-Conflicts-Indep</tt>)
> -	  may be restricted to a certain set of architectures.  This
> -	  is indicated in brackets after each individual package name and
> -	  the optional version specification.  The brackets enclose a
> -	  list of Debian architecture names separated by whitespace.
> -	  Exclamation marks may be prepended to each of the names.
> -	  (It is not permitted for some names to be prepended with
> -	  exclamation marks while others aren't.) If the current Debian
> -	  host architecture is not in this list and there are no
> -	  exclamation marks in the list, or it is in the list with a
> -	  prepended exclamation mark, the package name and the
> -	  associated version specification are ignored completely for
> -	  the purposes of defining the relationships.
> +	  <tt>Build-Conflicts</tt> and <tt>Build-Conflicts-Indep</tt>), if
> +	  the current Debian host architecture is not in this list and
> +	  there are no exclamation marks in the list, or it is in the list
> +	  with a prepended exclamation mark, the package name and the
> +	  associated version specification are ignored completely for the
> +	  purposes of defining the relationships.
>  	</p>
>  
>  	<p>
> @@ -4404,6 +4407,29 @@ Build-Depends: kernel-headers-2.2.10 [!hurd-i386],
>  	</p>
>  
>  	<p>
> +	  For binary relationship fields, the architecture restriction
> +	  syntax is only supported in the source package control
> +	  file <file>debian/control</file>.  When the corresponding binary
> +	  package control file is generated, the relationship will either
> +	  be omitted or included without the architecture restriction
> +	  based on the architecture of the binary package.  This means
> +	  that architecture restrictions must not be used in binary
> +	  relationship fields for architecture-independent packages
> +	  (<tt>Architecture: all</tt>).
> +	</p>
> +
> +	<p>
> +	  For example:
> +	  <example compact="compact">
> +Depends: foo [i386], bar [amd64]
> +	  </example>
> +	  becomes <tt>Depends: foo</tt> when the package is built on
> +	  the <tt>i386</tt> architecture, <tt>Depends: bar</tt> when the
> +	  package is built on the <tt>amd64</tt> architecture, and omitted
> +	  entirely in binary packages built on all other architectures.
> +	</p>
> +
> +	<p>
>  	  If the architecture-restricted dependency is part of a set of
>  	  alternatives using <tt>|</tt>, that alternative is ignored
>  	  completely on architectures that do not match the restriction.
> @@ -4417,11 +4443,11 @@ Build-Depends: foo [!i386] | bar [!amd64]
>  	</p>
>  
>          <p>
> -	  All fields that specify build-time relationships may also be
> -	  restricted to a certain set of architectures using architecture
> -	  wildcards.  The syntax for declaring such restrictions is the
> -	  same as declaring restrictions using a certain set of
> -	  architectures without architecture wildcards.  For example:
> +	  Relationships may also be restricted to a certain set of
> +	  architectures using architecture wildcards.  The syntax for
> +	  declaring such restrictions is the same as declaring
> +	  restrictions using a certain set of architectures without
> +	  architecture wildcards.  For example:
>            <example compact="compact">
>  Build-Depends: foo [linux-any], bar [any-i386], baz [!linux-any]
>            </example>

Seconded.

regards,
guillem

Attachment: signature.asc
Description: Digital signature


Reply to: