Bug#768842: dpkg: please document the dependency:arch syntax for architecture qualifiers

2014-11-10 Thread Guillem Jover
Hi!

On Sun, 2014-11-09 at 18:27:12 +0100, Guillem Jover wrote:
 On Sun, 2014-11-09 at 16:57:56 +0100, Johannes Schauer wrote:
  Package: dpkg
  Severity: normal
 
  dpkg allows dependencies like packagename:any, packagename:native and
  packagname:${debarch} where ${debarch} is any Debian architecture. But
  this does not seem to be documented. It should at least show up in the
  man page of deb-control(5).
 
 Ah, indeed! I've got a draft already, will pass it on to the bug, in
 case you want to do a quick review later today/tomorrow. And will
 targetting inclusion in 1.18.x.
 
 The native one will be only documented in deb-src-control(5) as
 that's not supported in deb-control(5) files.

And here it is, attached. Take into account as mentioned off-BTS,
that the text regarding the default values for Build-Conflicts* does
not currently match the implementation, but I'll be fixing this in a
commit to be placed before this one.

(Hmm, doing another quick check, I might rearrange the lists to mention
real arch, any then native if relevant to be consistent.)

Thanks,
Guillem
From 5db325b530e839f5cb2d18c36c002970ab08675a Mon Sep 17 00:00:00 2001
From: Guillem Jover guil...@debian.org
Date: Mon, 10 Nov 2014 19:40:22 +0100
Subject: [PATCH] man: Document arch-qualifiers for dependency fields

Closes: #768842
Reported-by: Johannes Schauer j.scha...@email.de
---
 man/deb-control.5 | 17 ++---
 man/deb-src-control.5 | 12 +++-
 2 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/man/deb-control.5 b/man/deb-control.5
index 289b1ba..2eb38a7 100644
--- a/man/deb-control.5
+++ b/man/deb-control.5
@@ -3,7 +3,7 @@
 .\ Copyright © 1995 Raul Miller, Ian Jackson, Ian Murdock
 .\ Copyright © 1999 Ben Collins bcoll...@debian.org
 .\ Copyright © 2000 Wichert Akkerman wakke...@debian.org
-.\ Copyright © 2007-2011, 2013 Guillem Jover guil...@debian.org
+.\ Copyright © 2007-2011, 2013-2014 Guillem Jover guil...@debian.org
 .\ Copyright © 2008-2012 Raphaël Hertzog hert...@debian.org
 .\
 .\ This is free software; you can redistribute it and/or modify
@@ -187,8 +187,16 @@ fields is a list of groups of alternative packages. Each group is a list
 of packages separated by vertical bar (or `pipe') symbols, `|'. The
 groups are separated by commas. Commas are to be read as `AND', and pipes
 as `OR', with pipes binding more tightly. Each package name is
+optionally qualified with an architecture name appended after a colon :,
 optionally followed by a version number specification in parentheses.
 .LP
+An architecture qualifier name can be \fBany\fP (since dpkg 1.16.2) or a
+real Debian architecture name (since dpkg 1.16.5).
+If omitted, the default is the current binary package architecture.
+A real Debian architecture name will match exactly that architecture for
+that package name, \fBany\fP will match any architecture for that package
+name.
+.LP
 A version number may start with a `', in which case any later version
 will match, and may specify or omit the Debian packaging revision (separated
 by a hyphen). Accepted version relationships are  for greater than,
@@ -240,8 +248,11 @@ In the
 .B Breaks
 and
 .B Conflicts
-fields, the comma should be read as `OR'. An optional version can also be
-given with the same syntax as above for the
+fields, the comma should be read as `OR'.
+An optional architecture qualifier can also be appended to the package name
+with the same syntax as above, but the default is \fBany\fP instead of the
+binary package architecture.
+An optional version can also be given with the same syntax as above for the
 .BR Breaks ,
 .B Conflicts
 and
diff --git a/man/deb-src-control.5 b/man/deb-src-control.5
index 665dced..ae99f47 100644
--- a/man/deb-src-control.5
+++ b/man/deb-src-control.5
@@ -2,7 +2,7 @@
 .\
 .\ Copyright © 2010 Oxan van Leeuwen o...@oxanvanleeuwen.nl
 .\ Copyright © 2011 Raphaël Hertzog hert...@debian.org
-.\ Copyright © 2011-2013 Guillem Jover guil...@debian.org
+.\ Copyright © 2011-2014 Guillem Jover guil...@debian.org
 .\
 .\ This is free software; you can redistribute it and/or modify
 .\ it under the terms of the GNU General Public License as published by
@@ -186,6 +186,7 @@ fields is a list of groups of alternative packages. Each group is a list
 of packages separated by vertical bar (or pipe) symbols, |. The
 groups are separated by commas. Commas are to be read as AND, and pipes
 as OR, with pipes binding more tightly. Each package name is
+optionally qualified with an architecture name appended after a colon :,
 optionally followed by a version number specification in parentheses, an
 architecture specification in square brackets, and a restriction formula
 consisting of one or more lists of profile names in angle brackets.
@@ -202,6 +203,15 @@ parentheses, an architecture specification in square brackets, and a
 restriction formula consisting of one or more lists of profile names in
 angle brackets.
 
+An architecture qualifier name can be \fBany\fP (since 

Bug#768842: dpkg: please document the dependency:arch syntax for architecture qualifiers

2014-11-10 Thread Guillem Jover
Hi!

On Mon, 2014-11-10 at 20:23:25 +0100, Johannes Schauer wrote:
 Quoting Guillem Jover (2014-11-10 19:48:33)
  (Hmm, doing another quick check, I might rearrange the lists to mention
  real arch, any then native if relevant to be consistent.)
 
 I don't fully understand your last comment in brackets but here is what I
 thought (my comments apply to deb-control as well as deb-src-control):

I've done the change now, just changing the order of the architecture
qualifier values list.

  @@ -187,8 +187,16 @@ fields is a list of groups of alternative packages. 
  Each group is a list
   of packages separated by vertical bar (or `pipe') symbols, `|'. The
   groups are separated by commas. Commas are to be read as `AND', and pipes
   as `OR', with pipes binding more tightly. Each package name is
  +optionally qualified with an architecture name appended after a colon :,
 
 It is not necessarily an architecture name that follows but also any or
 native. For clarity and to avoid ambiguity with below section I'd write:
 
   'optionally followed by an architecture qualifier after a colon :,'
 
 or
 
   'optionally qualified with an architecture name or any or native
   appended after a colon :'
 
 Since this is explained in the next paragraph, the former is probably the
 better choice.

Right, changed. I actually had:

  … architecture qualified with an architecture name appended …

but removed the first one to avoid duplication instead of getting rid
of the second one. :)

   optionally followed by a version number specification in parentheses.
   .LP
  +An architecture qualifier name can be \fBany\fP (since dpkg 1.16.2) or a
  +real Debian architecture name (since dpkg 1.16.5).
  +If omitted, the default is the current binary package architecture.
 
 maybe say host or native architecture here? Maybe rather native because
 host is more meaningful in the crossbuild context. Maybe there is an even
 better way in dpkg speech. Is the native architecture not determined by the
 architecture of dpkg itself?

The default architecture for those dependencies is the one matching
the binary package containing that dependency field.

So:

  dpkg native → amd64
  dpkg foreign → i386

  Package: pkgname
  Architecture: i386
  Depends: otherpkg

In that case the implicit arch-qualifier for otherpkg is i386. The
concept of host and native does not apply here, because if the native
and foreign dpkg architectures got swapped the same implicit architecture
qualifier would apply to otherpkg. Or did you mean something else?

  +A real Debian architecture name will match exactly that architecture for
  +that package name, \fBany\fP will match any architecture for that package
  +name.
 
 maybe it should be noted that it is only meaningful to annotate dependencies 
 on
 Multi-Arch:allowed packages with :any?

Yeah, make sense, added.

  +An architecture qualifier name can be \fBany\fP (since dpkg 1.16.2),
  +\fBnative\fP (since 1.16.5) or a real Debian architecture name (since
  +dpkg 1.16.5).
  +If omitted, the default for \fBBuild\-Depends\fP fields is the current host
  +architecture, the default for \fBBuild\-Conflicts\fP fields is \fBany\fP.
  +A real Debian architecture name will match exactly that architecture for
  +that package name, \fBany\fP will match any architecture for that package
  +name, and \fBnative\fP will match the current build architecture.
 
 As above, maybe mention that :any only makes sense to annotate M-A:allowed
 packages with and :native is disallowed for M-A:foreign packages. But maybe
 this is too much for this man page.

This too, added.

I've also updated the Multi-Arch field description. New patch
attached.

Thanks,
Guillem
From db3e96c698c547a92bcf138700ff2b307f9aad42 Mon Sep 17 00:00:00 2001
From: Guillem Jover guil...@debian.org
Date: Mon, 10 Nov 2014 19:40:22 +0100
Subject: [PATCH] man: Document arch-qualifiers for dependency fields

Closes: #768842
Reported-by: Johannes Schauer j.scha...@email.de
---
 man/deb-control.5 | 21 -
 man/deb-src-control.5 | 14 +-
 2 files changed, 29 insertions(+), 6 deletions(-)

diff --git a/man/deb-control.5 b/man/deb-control.5
index 289b1ba..d4b6766 100644
--- a/man/deb-control.5
+++ b/man/deb-control.5
@@ -3,7 +3,7 @@
 .\ Copyright © 1995 Raul Miller, Ian Jackson, Ian Murdock
 .\ Copyright © 1999 Ben Collins bcoll...@debian.org
 .\ Copyright © 2000 Wichert Akkerman wakke...@debian.org
-.\ Copyright © 2007-2011, 2013 Guillem Jover guil...@debian.org
+.\ Copyright © 2007-2011, 2013-2014 Guillem Jover guil...@debian.org
 .\ Copyright © 2008-2012 Raphaël Hertzog hert...@debian.org
 .\
 .\ This is free software; you can redistribute it and/or modify
@@ -126,8 +126,8 @@ of a different architecture from itself. The value \fBforeign\fP means that
 the package is not co-installable with itself, but should be allowed to
 satisfy the dependency of a package of a different arch from itself. The
 value \fBallowed\fP allows 

Bug#768842: dpkg: please document the dependency:arch syntax for architecture qualifiers

2014-11-10 Thread Johannes Schauer
Hi!

Quoting Guillem Jover (2014-11-11 01:14:29)
 I've done the change now, just changing the order of the architecture
 qualifier values list.
[...]
 I've also updated the Multi-Arch field description. New patch attached.

I think this version is good now. Thanks!

cheers, josch


--
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#768842: dpkg: please document the dependency:arch syntax for architecture qualifiers

2014-11-09 Thread Johannes Schauer
Package: dpkg
Severity: normal

Hi,

dpkg allows dependencies like packagename:any, packagename:native and
packagname:${debarch} where ${debarch} is any Debian architecture. But
this does not seem to be documented. It should at least show up in the
man page of deb-control(5).

Thanks!

cheers, josch


-- 
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org



Bug#768842: dpkg: please document the dependency:arch syntax for architecture qualifiers

2014-11-09 Thread Guillem Jover
Hi!

On Sun, 2014-11-09 at 16:57:56 +0100, Johannes Schauer wrote:
 Package: dpkg
 Severity: normal

 dpkg allows dependencies like packagename:any, packagename:native and
 packagname:${debarch} where ${debarch} is any Debian architecture. But
 this does not seem to be documented. It should at least show up in the
 man page of deb-control(5).

Ah, indeed! I've got a draft already, will pass it on to the bug, in
case you want to do a quick review later today/tomorrow. And will
targetting inclusion in 1.18.x.

The native one will be only documented in deb-src-control(5) as
that's not supported in deb-control(5) files.

Thanks,
Guillem


-- 
To UNSUBSCRIBE, email to debian-dpkg-bugs-requ...@lists.debian.org
with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org