Appendix 5.B Enumerated Values

Every set below is closed in this version. A conforming implementation MUST reject a value outside it, and a new value requires a schema_version bump (§5.38).

5.B.1 Architecture identifiers #

IdentifierTripletNotes
x86_64x86_64-linux-peiosprimary target
aarch64aarch64-linux-peiossecondary target
noarchnonearchitecture-independent

Defined in §5.8.

5.B.2 Pre-release rank tokens #

TokenRank
dev0
alpha1
a1
beta2
b2
pre3
rc4
any other alphabetic segment5

Rank 0 sorts lowest. Rank-5 tokens compare lexically against each other. Recognition is case-insensitive. Defined in §5.6.

5.B.3 Constraint operators #

OperatorMeaning
=exactly equal
>strictly greater than
>=greater than or equal
<strictly less than
<=less than or equal
!=not equal

A bare version with no operator means =. Comma is the AND separator. Defined in §5.7.

5.B.4 Side-effect identifiers #

IdentifierDeclared whenInvoked as
depmodthe payload contains kernel modules (MUST)once per affected kernel release, naming it
man-dbthe payload contains man pages (SHOULD)the tool, in quiet mode

Defined in §5.24.

5.B.5 Hash algorithms #

AlgorithmIdentifierStatus
SHA-256sha256REQUIRED; the only valid value
BLAKE3blake3RESERVED for a future version

Defined in §5.25.

5.B.6 Signature algorithms #

AlgorithmIdentifierStatus
Ed25519ed25519REQUIRED; the only valid value

Defined in §5.29.

5.B.7 Signing key statuses #

StatusSigns new contentAccepted for verification
activeyesyes
transitioningnountil valid_until
revokednonever, regardless of cryptographic validity

Defined in §5.32.

5.B.8 Index kinds #

KindContent
activethe current version of each package
archiveevery version ever shipped

Defined in §5.33 and §5.35.

5.B.9 Signature policies #

PolicyUnsigned content
requiredrejected
optionalaccepted with a per-operation warning

There is no silently-accept-unsigned policy. Defined in §5.37.

5.B.10 Reserved metadata paths #

PathRequired
.peipkg/manifest.jsonyes
.peipkg/files.jsonyes
.peipkg/signaturein every signed package

The .peipkg/ prefix is reserved; a payload entry MUST NOT use it. Defined in §5.12.

5.B.11 Permitted entry types #

TypeTypeflag
Regular file0 or \0
Directory5
Symbolic link2

Every other type MUST cause the package to be rejected. Defined in §5.12.

5.B.12 Permitted top-level install destinations #

/usr/bin/, /usr/sbin/, /usr/lib/<triplet>/, /usr/lib/debug/, /usr/lib/modules/<release>/, /usr/lib/firmware/, /usr/lib/os-release, /usr/libexec/, /usr/share/, /usr/include/, /usr/src/debug/, /usr/src/dist/, /usr/etc/, /usr/conf/, /var/, /boot/, /hooks/, /++/.

A payload entry MUST NOT install under any other top-level path, unless the package declares itself a special system package and the operator has separately opted in. /lcl/policy is unreachable under every circumstance. Defined in §5.14.

5.B.13 Permitted claim path locations #

The destinations above, plus /run/ and the well-known root-level name /init. Defined in §5.23.

Edit this page