5.8 Architectures

A package's architecture identifies the instruction-set architecture its binaries were built for. It is a separate identifier from the name and the version.

5.8.1 Identifier format #

An architecture identifier MUST consist of lowercase letters az, digits 09, and the underscore _. It MUST start with a lowercase letter and MUST NOT exceed 16 characters.

5.8.2 Defined architectures #

IdentifierMeaning
x86_6464-bit x86 (AMD64, Intel 64)
aarch6464-bit ARM (ARMv8-A or later)
noarcharchitecture-independent

An implementation MUST recognise all three. x86_64 is the primary target; every other architecture is secondary in this version of the specification.

Additional identifiers MAY be defined in a future version. A new identifier MUST satisfy the format above and SHOULD be the canonical Linux machine name — the value uname -m reports — where one exists.

5.8.3 Triplets #

Each architecture identifier that is not noarch has a corresponding triplet, used in the install paths where arch-specific content is namespaced (§5.15):

<identifier>-linux-peios
IdentifierTriplet
x86_64x86_64-linux-peios
aarch64aarch64-linux-peios

noarch has no triplet form, and architecture-independent payload MUST NOT be installed under an arch-namespaced path.

5.8.4 Architecture-independent packages #

The noarch identifier denotes a package whose payload contains no architecture-dependent content: documentation, configuration templates, scripts in interpreted languages, or metadata only.

A package MUST NOT declare noarch if its payload contains compiled binaries, shared libraries, or any other content whose semantics depend on the target architecture.

5.8.5 Installability #

Each Peios system has a single primary architecture, fixed at install time.

  • A package whose architecture equals the system's primary architecture MAY be installed.
  • A package whose architecture is noarch MAY be installed on any system.
  • A package whose architecture is neither MUST NOT be installed.

Edit this page