Meta
Ce contenu n’est pas encore disponible dans votre langue.
The Meta record carries information about the stone itself or other binary packages, hence the name “meta”. It is composed of a 8 bytes long header-like section, plus a value of variable length. The information it carries is strongly typed.
Some of its fields can only be found in Repository stones, since they are information about packages to download.
| Field | Type | Size (bytes) | Description |
|---|---|---|---|
| length | uint | 4 | Length, in bytes, of the value that follows the header-like section. |
| tag | uint | 2 | What information this record carries about the stone. |
| kind | uint | 1 | The base type of the information, for proper encoding and decoding. |
| padding | blob | 1 | Unused. |
| value | blob | length |
Value of the information. The encoding depends on the value of kind. |
tag is an enum.
| Value | Name | Description |
|---|---|---|
| 1 | Name | Name of the stone, which is typically the name of a package to install or remove. |
| 2 | Architecture | Target hardware architecture of the package. |
| 3 | Version | Version of the package. |
| 4 | Summary | Succinct description of a package. |
| 5 | Description | Full length description of the package. |
| 6 | Homepage | Web homepage of the project being packaged. |
| 7 | SourceID | ID of the source package, used for grouping. |
| 8 | Depends | One dependency of the package. |
| 9 | Provides | One capability, or the name, of the package. See further paragraphs for details. |
| 10 | Conflicts | One capability, or name of another package, that conflicts with this package. |
| 11 | Release | Release number of the package. It differs from Version in that Version identifies a state of the upstream project. Release is an increasing number that relates to the package. |
| 12 | License | One license under which the upstream project is released, in SPDX format. |
| 13 | BuildRelease | Uniquely identifies a rebuild of a stone. It is an increasing number. |
| 14 | PackageURI | URL relative to the base repository URL, where to download a package from. It is specific to a Repository stone. |
| 15 | PackageHash | SHA-256 hash of a whole package stone. It is specific to a Repository stone. |
| 16 | PackageSize | Size, in bytes, of a package when installed on disk (assumed when the CAS is empty, thus without de-duplication). It is specific to a Repository stone. |
| 17 | BuildDepends | Build-time dependency of a package. |
| 18 | SourceURI | Upstream URL for the source archive of a package. |
| 19 | SourcePath | Relative path for the source within the upstream URL. |
| 20 | SourceRef | Git commit or ref of the upstream source. |
kind is an enum.
| Value | Name | Description |
|---|---|---|
| 1 | Int8 | int, 1 byte long. |
| 2 | Uint8 | uint, 1 byte long. |
| 3 | Int16 | int, 2 bytes long. |
| 4 | Uint16 | uint, 2 bytes long. |
| 5 | Int32 | int, 4 bytes long. |
| 6 | Uint32 | uint, 4 bytes long. |
| 7 | Int64 | int, 8 bytes long. |
| 8 | Uint64 | uint, 8 bytes long. |
| 9 | String | String. |
| 10 | Dependency | PackageReference structure. |
| 11 | Provider | PackageReference structure. |
PackageReference
Section titled “PackageReference”As explained before, the encoding format of value is explicated by the kind enum.
Most of the kinds are a characterization of a base format,
but there is one outstanding kind: PackageReference. Below is the format of PackageReference.
| Field | Type | Size (bytes) | Description |
|---|---|---|---|
| kind | uint | 1 | Kind of package one depends on, or provides. |
| name | str | length - 1 |
Value of the reference. |
PackageReference’s kind field is an enum.
| Value | Name | Description |
|---|---|---|
| 0 | PackageName | A package depends on, or provides, a package name. |
| 1 | SharedLibrary | A package depends on, or provides, a shared library (*.so file). |
| 2 | PkgConfig | A package depends on, or provides, a pkg-config target. |
| 3 | Interpreter | A package depends on, or provides, a program interpreter (i.e. an ELF binary with PT_INTERP set). |
| 4 | CMake | A package depends on, or provides, a CMake target. |
| 5 | Python | A package depends on, or provides, a Python module. |
| 6 | BinaryDep | A package depends on, or provides, a binary file in /usr/bin. |
| 7 | SystemBinary | A package depends on, or provides, a binary file in /usr/sbin. |
| 8 | PkgConfig32 | Like PkgConfig, but emul32-compatible. |