This is an automated email from the git hooks/post-receive script.

guillem pushed a commit to branch main
in repository dpkg.

View the commit online:
https://git.dpkg.org/cgit/dpkg/dpkg.git/commit/?id=3f87ca4be7cc874cc9c123549bb262c3f0f26416

commit 3f87ca4be7cc874cc9c123549bb262c3f0f26416
Author: Guillem Jover <[email protected]>
AuthorDate: Sun Dec 14 20:10:23 2025 +0100

    man: Improve architecture documentation
    
    Try to unify the terminology used to refer to the various concepts.
    Add some notes about specific values not applying in some contexts.
    
    Describe first what is a Debian architecture, then specify the allowed
    values and their use.
    
    Update some example architectures with names that might be easier to
    come across as being currently in use.
    
    Prompted-by: Helmut Grohne <[email protected]>
---
 man/deb-buildinfo.pod     | 12 +++++++-----
 man/deb-changes.pod       |  8 +++++---
 man/deb-control.pod       | 18 +++++++++---------
 man/deb-src-control.pod   | 35 ++++++++++++++++++++---------------
 man/dpkg-architecture.pod | 34 ++++++++++++++++++++++++----------
 man/dsc.pod               |  7 ++++---
 6 files changed, 69 insertions(+), 45 deletions(-)

diff --git a/man/deb-buildinfo.pod b/man/deb-buildinfo.pod
index fe6e682db..4b26f992c 100644
--- a/man/deb-buildinfo.pod
+++ b/man/deb-buildinfo.pod
@@ -99,14 +99,16 @@ If the build is source-only, then the field is omitted 
(since dpkg 1.20.0).
 
 =item B<Architecture:> I<arch-list> (required)
 
-This space-separated field lists the architectures of the files currently
-being built.
+The architecture list specifies on which type of machine this package runs.
+The value should be a list of architecture names separated by spaces.
+
 Common architectures are B<amd64>, B<armel>, B<i386>, etc.
-Note that the B<all> value is meant for packages that are architecture
-independent.
+Note that the special B<all> value is meant for packages that are
+architecture independent (such as shell and Perl scripts or documentation).
 If the source for the package is also being built, the special entry
 B<source> is also present.
-Architecture wildcards must never be present in the list.
+
+B<Note:> Architecture wildcards are not allowed in this context.
 
 =item B<Version:> I<version-string> (required)
 
diff --git a/man/deb-changes.pod b/man/deb-changes.pod
index 335a8ffe9..ab552ad48 100644
--- a/man/deb-changes.pod
+++ b/man/deb-changes.pod
@@ -88,12 +88,14 @@ If the upload is source-only, then the field is omitted 
(since dpkg 1.19.3).
 =item B<Architecture:> I<arch-list>
 
 Lists the architectures of the files currently being uploaded.
+
 Common architectures are B<amd64>, B<armel>, B<i386>, etc.
-Note that the B<all> value is meant for packages that are architecture
-independent.
+Note that the special B<all> value is meant for packages that are
+architecture independent (such as shell and Perl scripts or documentation).
 If the source for the package is also being uploaded, the special entry
 B<source> is also present.
-Architecture wildcards must never be present in the list.
+
+B<Note:> Architecture wildcards are not allowed in this context.
 
 =item B<Version:> I<version-string> (required)
 
diff --git a/man/deb-control.pod b/man/deb-control.pod
index 8e48d2094..8416f04f2 100644
--- a/man/deb-control.pod
+++ b/man/deb-control.pod
@@ -147,19 +147,19 @@ This field is usually only needed when the answer is 
B<yes>, and is
 commonly injected by the archive software.
 It denotes a package that is required when building other packages.
 
-=item B<Architecture:> I<arch>|B<all> (required)
+=item B<Architecture:> B<all>|I<arch> (required)
 
-The architecture specifies which type of hardware this package was compiled
-for.
-An architecture name must start with an alphanumeric character (“0-9a-zA-Z”),
-and then gets followed by alphanumeric and dash (‘-’) characters.
+The architecture specifies on which type of machine this package runs.
 
 Common architectures are B<amd64>, B<armel>, B<i386>, B<powerpc>,
 etc.
-Note that the
-B<all>
-value is meant for packages that are architecture independent.
-Some examples of this are shell and Perl scripts, and documentation.
+Note that the special B<all> value is meant for packages that are
+architecture independent (such as shell and Perl scripts or documentation).
+
+B<Note:> Architecture wildcards are not allowed in this context.
+
+An architecture name must start with an alphanumeric character (“0-9a-zA-Z”),
+and then gets followed by alphanumeric and dash (‘-’) characters.
 
 =item B<Origin:> I<name>
 
diff --git a/man/deb-src-control.pod b/man/deb-src-control.pod
index a6ff52ca5..431659c0b 100644
--- a/man/deb-src-control.pod
+++ b/man/deb-src-control.pod
@@ -381,23 +381,28 @@ B<udeb> is for size-constrained packages used by the 
debian installer.
 B<deb> is the default value, it is assumed if the field is absent.
 More types might be added in the future.
 
-=item B<Architecture:> I<arch>|B<all>|B<any> (required)
+=item B<Architecture:> I<arch-list> (required)
 
-The architecture specifies on which type of hardware this package runs.
-For
-packages that run on all architectures, use the
-B<any>
-value.
-For packages that are architecture independent, such as shell and Perl
-scripts or documentation, use the
-B<all>
-value.
-To restrict the packages to a certain set of architectures, specify the
-architecture names, separated by a space.
-An architecture name must start with an alphanumeric character (“0-9a-zA-Z”),
+The architecture list specifies on which type of machine this package runs.
+The value should be a list of architecture names and/or wildcards
+separated by spaces.
+
+The special B<all> value, by itself, is meant for packages that are
+architecture independent (such as shell and Perl scripts or documentation),
+the special B<any> wildcard value, by itself, is meant for packages that are
+architecture dependent but run on all architectures
+(which matches on all specific architecture names, excluding B<all>).
+Most packages will use either B<all> or B<any>.
+To restrict the packages to a certain set of architectures,
+specify one or more architecture names and/or architecture wildcards,
+separated by spaces.
+
+An architecture name or wildcard must start with
+an alphanumeric character (“0-9a-zA-Z”),
 and then gets followed by alphanumeric and dash (”-”) characters.
-It's also possible to put architecture wildcards in that list
-(see L<dpkg-architecture(1)> for more information about them).
+
+For more information about architecture names and wildcards,
+see L<dpkg-architecture(1)>.
 
 =item B<Build-Profiles:> I<restriction-formula>
 
diff --git a/man/dpkg-architecture.pod b/man/dpkg-architecture.pod
index 9d37b92ce..7303a1a3d 100644
--- a/man/dpkg-architecture.pod
+++ b/man/dpkg-architecture.pod
@@ -192,15 +192,27 @@ and that itself will build (or run emulated) code for the 
target architecture.
 
 =item Debian architecture
 
-The Debian architecture string,
-used in package relationships,
-and in binary package names
-(which specifies the binary tree in a package repository).
+A Debian architecture describes a “machine” (considering it as an
+abstraction not necessarily tied to an actual physical device)
+representing a specific execution environment,
+including its CPU and attributes (such as endianness and bits),
+an operating system (usually a kernel, but other paradigms using userland
+services are possible) and its interfaces towards userland including the
+executable format and their ABI,
+and a libc library and its ABI.
+
+The special architecture B<all> denotes an architecture independent
+execution environment,
+used for things such as shell and Perl scripts or documentation.
+
+A Debian architecture is used in binary package metadata and filenames
+(which specifies the binary tree in a package repository),
+and can appear in package relationships.
 
 An architecture must start with an alphanumeric character (“0-9a-zA-Z”),
-and then gets followed by alphanumeric and dash (“-”) characters.
+and then gets followed by alphanumeric or dash (“-”) characters.
 
-Examples: i386, sparc, hurd-i386.
+Examples: amd64, i386, sparc64, hurd-amd64, musl-linux-riscv64.
 
 =item Debian architecture tuple
 
@@ -214,8 +226,10 @@ Examples: base-gnu-linux-amd64, eabihf-musl-linux-arm.
 
 =item Debian architecture wildcard
 
-A Debian architecture wildcard is a special architecture string that will
-match any real architecture being part of it.
+A Debian architecture wildcard is a special architecture that acts as a
+pattern and will match any ”machine” architecture being part of it
+(except for B<all>).
+
 The general form is a Debian architecture tuple with four or less elements,
 and with at least one of them being B<any>.
 Missing elements of the tuple are prefixed implicitly as B<any>, and thus
@@ -236,7 +250,7 @@ musl-any-any.
 
 =item GNU system type
 
-An architecture specification string consisting of two parts separated by
+A GNU architecture specification string consisting of two parts separated by
 a hyphen: CPU and system.
 
 The CPU part never contains a hyphen,
@@ -245,7 +259,7 @@ from its general ABI,
 where the general ABI might contain both runtime (such as libc) and
 executable ABI specifiers joined without a hyphen.
 
-Examples: i586-linux-gnu, sparc-linux-gnu, i686-gnu, x86_64-netbsd.
+Examples: i586-linux-gnu, sparc64-linux-gnu, i686-gnu, x86_64-netbsd.
 
 =item multiarch triplet
 
diff --git a/man/dsc.pod b/man/dsc.pod
index 535f591ea..1bef02f13 100644
--- a/man/dsc.pod
+++ b/man/dsc.pod
@@ -85,11 +85,12 @@ architecture, build-profile and other involved restrictions.
 
 =item B<Architecture:> I<arch-list> (recommended)
 
-A list of architectures and architecture wildcards separated by spaces
-which specify the type of hardware this package can be compiled for.
+The architecture list specifies on which type of machine this package runs.
+The value should be a list of architecture names and/or wildcards
+separated by spaces.
+
 Common architecture names and architecture wildcards are B<amd64>,
 B<armel>, B<i386>, B<linux-any>, B<any-amd64>, etc.
-
 Note that the B<all> value is meant for packages that are architecture
 independent, and B<any> for packages that are architecture dependent.
 The list may include (or consist solely of) the special value B<all>.

-- 
Dpkg.Org's dpkg

Reply via email to