Bug#768842: dpkg: please document the dependency:arch syntax for architecture qualifiers
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
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
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
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
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