This parser is for the RPM version 3 file format which is the current version of the file format used by RPM 2.1 and later (including RPM version 4.x, which is the current version of the RPM tool). There are historical versions of the RPM file format, as well as a currently abandoned fork (rpm5). These formats are not covered by this specification.
This page hosts a formal specification of RPM package file using Kaitai Struct. This specification can be automatically translated into a variety of programming languages to get a parsing library.
meta:
id: rpm
title: RPM package file
application: RPM Package Manager
file-extension:
- rpm
- srpm
- src.rpm
- drpm
xref:
justsolve: RPM
mime: application/x-rpm
pronom: fmt/795 # v3
wikidata: Q492650
license: CC0-1.0
ks-version: 0.9
encoding: UTF-8
endian: be
doc: |
This parser is for the RPM version 3 file format which is the current version
of the file format used by RPM 2.1 and later (including RPM version 4.x, which
is the current version of the RPM tool). There are historical versions of the
RPM file format, as well as a currently abandoned fork (rpm5). These formats
are not covered by this specification.
doc-ref:
- https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/format.md
- https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md
- https://refspecs.linuxbase.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/pkgformat.html
- http://ftp.rpm.org/max-rpm/
seq:
- id: lead
type: lead
- id: signature
type: header(true)
- id: signature_padding
size: (- _io.pos) % 8
- size: 0
if: ofs_header < 0
- id: header
type: header(false)
- size: 0
if: ofs_payload < 0
- id: signature_tags_steps
type: 'signature_tags_step(_index, _index < 1 ? -1 : signature_tags_steps[_index - 1].size_tag_idx)'
repeat: expr
repeat-expr: signature.header_record.num_index_records
instances:
payload:
pos: ofs_payload
size: len_payload
if: has_signature_size_tag
len_payload:
value: 'signature_size_tag.body.as<record_type_uint32>.values[0] - len_header'
if: has_signature_size_tag
len_header:
value: ofs_payload - ofs_header
ofs_header:
value: _io.pos
ofs_payload:
value: _io.pos
has_signature_size_tag:
value: signature_tags_steps.last.size_tag_idx != -1
signature_size_tag:
value: signature.index_records[signature_tags_steps.last.size_tag_idx]
if: has_signature_size_tag
types:
signature_tags_step:
params:
- id: idx
type: s4
- id: prev_size_tag_idx
type: s4
instances:
size_tag_idx:
value: |
prev_size_tag_idx != -1 ? prev_size_tag_idx :
(_parent.signature.index_records[idx].signature_tag == signature_tags::size
and _parent.signature.index_records[idx].record_type == record_types::uint32
and _parent.signature.index_records[idx].num_values >= 1 ? idx : -1)
dummy: {}
lead:
doc: |
In 2021, Panu Matilainen (a RPM developer) [described this
structure](https://github.com/kaitai-io/kaitai_struct_formats/pull/469#discussion_r718288192)
as follows:
> The lead as a structure is 25 years obsolete, the data there is
> meaningless. Seriously. Except to check for the magic to detect that
> it's an rpm file in the first place, just ignore everything in it.
> Literally everything.
The fields with `valid` constraints are important, because these are the
same validations that RPM does (which means that any valid `.rpm` file
must pass them), but otherwise you should not make decisions based on the
values given here.
seq:
- id: magic
contents: [0xed, 0xab, 0xee, 0xdb]
- id: version
type: rpm_version
- id: type
type: u2
enum: rpm_types
- id: architecture
-orig-id: archnum
type: u2
enum: architectures
- id: package_name
size: 66
type: strz
- id: os
-orig-id: osnum
type: u2
enum: operating_systems
- id: signature_type
type: u2
valid: 5
- id: reserved
size: 16
rpm_version:
seq:
- id: major
type: u1
valid:
min: 3
max: 4
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/lib/rpmlead.c#L102
- id: minor
type: u1
header:
doc: |
header structure used for both the "header" and "signature", but some tag
values have different meanings in signature and header (hence they use
different enums)
params:
- id: is_signature
type: bool
seq:
- id: header_record
type: header_record
- id: index_records
type: header_index_record
repeat: expr
repeat-expr: header_record.num_index_records
- id: storage_section
size: header_record.len_storage_section
type: dummy
instances:
is_header:
value: not is_signature
header_index_record:
-webide-representation: '{signature_tag} {header_tag} [{record_type}]'
seq:
- id: tag_raw
type: u4
doc: prefer to access `signature_tag` and `header_tag` instead
- id: record_type
type: u4
enum: record_types
- id: ofs_body
type: u4
- id: count
type: u4
doc: internal; access `num_values` and `len_value` instead
instances:
signature_tag:
value: tag_raw
enum: signature_tags
if: _parent.is_signature
header_tag:
value: tag_raw
enum: header_tags
if: _parent.is_header
num_values:
value: count
if: record_type != record_types::bin
len_value:
value: count
if: record_type == record_types::bin
body:
io: _parent.storage_section._io
pos: ofs_body
type:
switch-on: record_type
cases:
record_types::char: record_type_uint8(num_values)
record_types::uint8: record_type_uint8(num_values)
record_types::uint16: record_type_uint16(num_values)
record_types::uint32: record_type_uint32(num_values)
record_types::uint64: record_type_uint64(num_values)
record_types::string: record_type_string
record_types::bin: record_type_bin(len_value)
record_types::string_array: record_type_string_array(num_values)
record_types::i18n_string: record_type_string_array(num_values)
record_type_uint8:
params:
- id: num_values
type: u4
seq:
- id: values
type: u1
repeat: expr
repeat-expr: num_values
record_type_uint16:
params:
- id: num_values
type: u4
seq:
- id: values
type: u2
repeat: expr
repeat-expr: num_values
record_type_uint32:
params:
- id: num_values
type: u4
seq:
- id: values
type: u4
repeat: expr
repeat-expr: num_values
record_type_uint64:
params:
- id: num_values
type: u4
seq:
- id: values
type: u8
repeat: expr
repeat-expr: num_values
record_type_string:
seq:
- id: values
type: strz
repeat: expr
repeat-expr: 1
record_type_bin:
params:
- id: len_value
type: u4
seq:
- id: values
size: len_value
repeat: expr
repeat-expr: 1
record_type_string_array:
params:
- id: num_values
type: u4
seq:
- id: values
type: strz
repeat: expr
repeat-expr: num_values
header_record:
seq:
- id: magic
contents: [0x8e, 0xad, 0xe8, 0x01]
- id: reserved
contents: [0, 0, 0, 0]
- id: num_index_records
-orig-id: nindex
type: u4
valid:
min: 1
- id: len_storage_section
-orig-id: hsize
type: u4
doc: |
Size of the storage area for the data
pointed to by the Index Records.
enums:
rpm_types:
0: binary
1: source
# these come (mostly) from <https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L170>
# (see <https://ftp.osuosl.org/pub/rpm/max-rpm/s1-rpm-multi-build-install-detection.html#S3-RPM-MULTI-XXX-CANON>
# for `arch_canon` entry explanation)
#
# See also
# - <https://github.com/eclipse/packager/blob/51ccdd3/rpm/src/main/java/org/eclipse/packager/rpm/Architecture.java>
# - <https://github.com/craigwblake/redline/blob/15afff5/src/main/java/org/redline_rpm/header/Architecture.java>
# - <https://web.archive.org/web/20210605105702/https://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch01s03.html>
architectures:
1:
id: x86
doc: x86 or x86_64
2:
id: alpha
doc: Alpha or Sparc64
doc-ref:
- https://github.com/eclipse/packager/blob/51ccdd3/rpm/src/main/java/org/eclipse/packager/rpm/Architecture.java#L24
- https://github.com/file/file/blob/9b2538d/magic/Magdir/rpm#L14
- https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L188-L197
3: sparc
4: mips
5: ppc
6: m68k
7:
id: sgi
-orig-id: IP
doc: SGI Inhouse Processors (IP)
doc-ref:
- https://github.com/file/file/blob/9b2538d/magic/Magdir/rpm#L19
- https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L219
8: rs6000
9: ia64
10:
id: sparc64
doc-ref:
- https://github.com/file/file/blob/9b2538d/magic/Magdir/rpm#L22
- https://github.com/craigwblake/redline/blob/15afff5/src/main/java/org/redline_rpm/header/Architecture.java#L15
11: mips64
12: arm
13:
id: m68k_mint
-orig-id: m68kmint
doc-ref:
- https://github.com/craigwblake/redline/blob/15afff5/src/main/java/org/redline_rpm/header/Architecture.java#L18
- https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L240-L247
14: s390
15: s390x
16: ppc64
17: sh
18: xtensa
19: aarch64
20:
id: mips_r6
-orig-id: mipsr6
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L266-L267
21:
id: mips64_r6
-orig-id: mips64r6
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L268-L269
22: riscv
23: loongarch64
255:
id: no_arch
-orig-id: noarch
doc: can be installed on any architecture
doc-ref:
- https://github.com/file/file/blob/9b2538d/magic/Magdir/rpm#L31
- https://github.com/rpm-software-management/rpm/blob/afad3167/lib/rpmrc.c#L1548
operating_systems:
# these come from <https://github.com/rpm-software-management/rpm/blob/afad3167/rpmrc.in#L277>
# in practice it will almost always be 1
1: linux
2: irix
255:
id: no_os
-orig-id: noos
doc: |
This value is pretty much a guess, based on that `archnum` and `osnum`
values are handled by the same function `getMachineInfo()` (see
`doc-ref` link) which uses 255 for an unknown value. Value
`architectures::no_arch` can be verified with the magic file of
`file(1)` and `.rpm` files that have `noarch` in their name, so it seems
reasonable that `no_os` (or "`noos`" originally) follows the same
pattern.
Moreover, this value is actually used in practice, see this sample file:
<https://github.com/craigwblake/redline/blob/15afff5/src/test/resources/rpm-3-1.0-1.somearch.rpm>
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/lib/rpmrc.c#L1548
signature_tags:
# Tags from [lib/rpmtag.h](https://github.com/rpm-software-management/rpm/blob/afad3167/include/rpm/rpmtag.h#L423).
# the first three are shared with header_tags
62:
id: signatures
-orig-id: HEADER_SIGNATURES
63:
id: header_immutable
-orig-id: HEADER_IMMUTABLE
100:
id: i18n_table
-orig-id: HEADER_I18NTABLE
# RPMSIGTAG_*
# 256: RPMTAG_SIG_BASE
264:
id: bad_sha1_1_obsolete
-orig-id: RPMSIGTAG_BADSHA1_1
265:
id: bad_sha1_2_obsolete
-orig-id: RPMSIGTAG_BADSHA1_2
# 266:
# id: pubkeys_internal
# -orig-id: RPMTAG_PUBKEYS
# doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#internal--special
267:
id: dsa
-orig-id: RPMSIGTAG_DSA
268:
id: rsa
-orig-id: RPMSIGTAG_RSA
269:
id: sha1
-orig-id: RPMSIGTAG_SHA1
270:
id: long_size
-orig-id: RPMSIGTAG_LONGSIZE
271:
id: long_archive_size
-orig-id: RPMSIGTAG_LONGARCHIVESIZE
# 272 - reserved
273:
id: sha256
-orig-id: RPMTAG_SHA256HEADER
274:
id: file_signatures
-orig-id: RPMSIGTAG_FILESIGNATURES
275:
id: file_signature_length
-orig-id: RPMSIGTAG_FILESIGNATURELENGTH
276:
id: verity_signatures
-orig-id: RPMTAG_VERITYSIGNATURES
277:
id: verity_signature_algo
-orig-id: RPMTAG_VERITYSIGNATUREALGO
1000:
id: size
-orig-id: RPMSIGTAG_SIZE
doc: Header + payload size (32bit) in bytes.
1001:
id: le_md5_1_obsolete
-orig-id: RPMSIGTAG_LEMD5_1
doc: MD5 broken on big-endian machines, take 1
1002:
id: pgp
-orig-id: RPMSIGTAG_PGP
doc: PGP 2.6.3 signature.
1003:
id: le_md5_2_obsolete
-orig-id: RPMSIGTAG_LEMD5_2
doc: MD5 broken on big-endian machines, take 2
1004:
id: md5
-orig-id: RPMSIGTAG_MD5
doc: MD5 signature
1005:
id: gpg
-orig-id: RPMSIGTAG_GPG
doc: GnuPG signature
1006:
id: pgp5_obsolete
-orig-id: RPMSIGTAG_PGP5
1007:
id: payload_size
-orig-id: RPMSIGTAG_PAYLOADSIZE
doc: Uncompressed payload size (32bit) in bytes.
1008:
id: reserved_space
-orig-id: RPMSIGTAG_RESERVEDSPACE
doc: Space reserved for signatures
header_tags:
# Tags from [include/rpm/rpmtag.h](https://github.com/rpm-software-management/rpm/blob/afad3167/include/rpm/rpmtag.h).
# This includes (almost) all tags. Some have `_unimplemented`, `_internal`
# or `_obsolete` suffix (if more than one applies, the first applicable in
# this order is used).
62:
id: signatures
-orig-id: HEADER_SIGNATURES
63:
id: header_immutable
-orig-id: HEADER_IMMUTABLE
100:
id: i18n_table
-orig-id: HEADER_I18NTABLE
# RPMTAG_*
1000:
id: name
-orig-id: RPMTAG_NAME
doc: Specifies the name of the package.
1001:
id: version
-orig-id: RPMTAG_VERSION
doc: Specifies the version of the package.
1002:
id: release
-orig-id: RPMTAG_RELEASE
doc: Specifies the release of the package.
1003:
id: epoch # from lib/rpmtag.h
-orig-id: RPMTAG_EPOCH
1004:
id: summary
-orig-id: RPMTAG_SUMMARY
doc: |
Specifies the summary description of the package. The summary
value pointed to by this index record contains a one line
description of the package.
1005:
id: description
-orig-id: RPMTAG_DESCRIPTION
doc: |
Specifies the description of the package. The description value
pointed to by this index record contains a full desription of
the package.
1006:
id: build_time
-orig-id: RPMTAG_BUILDTIME
doc: |
Specifies the time as seconds since the epoch
at which the package was built.
1007:
id: build_host
-orig-id: RPMTAG_BUILDHOST
doc: Specifies the hostname of the system on which the package was built.
1008:
id: install_time # from lib/rpmtag.h
-orig-id: RPMTAG_INSTALLTIME
1009:
id: size
-orig-id: RPMTAG_SIZE
doc: Specifies the sum of the sizes of the regular files in the archive.
1010:
id: distribution
-orig-id: RPMTAG_DISTRIBUTION
doc: Contains the name of the distribution on which the package was built.
1011:
id: vendor
-orig-id: RPMTAG_VENDOR
doc: Contains the name of the organization that produced the package.
1012:
id: gif_obsolete
-orig-id: RPMTAG_GIF
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1013:
id: xpm_obsolete
-orig-id: RPMTAG_XPM
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1014:
id: license
-orig-id: RPMTAG_LICENSE
doc: Specifies the license which applies to this package.
1015:
id: packager
-orig-id: RPMTAG_PACKAGER
doc: Identifies the tool used to build the package.
1016:
id: group
-orig-id: RPMTAG_GROUP
doc: Specifies the administrative group to which this package belongs.
1017:
id: changelog_internal
-orig-id: RPMTAG_CHANGELOG
1018:
id: source # from lib/rpmtag.h
-orig-id: RPMTAG_SOURCE
1019:
id: patch # from lib/rpmtag.h
-orig-id: RPMTAG_PATCH
1020:
id: url
-orig-id: RPMTAG_URL
doc: Generic package information URL.
1021:
id: os
-orig-id: RPMTAG_OS
doc: Specifies the OS of the package.
1022:
id: arch
-orig-id: RPMTAG_ARCH
doc: Specifies the architecture of the package.
1023:
id: pre_install_scriptlet
-orig-id: RPMTAG_PREIN
doc: |
Specifies the preinstall scriptlet. If present, then
`::pre_install_interpreter` shall also be present.
1024:
id: post_install_scriptlet
-orig-id: RPMTAG_POSTIN
doc: |
Specifies the postinstall scriptlet. If present, then
`::post_install_interpreter` shall also be present.
1025:
id: pre_uninstall_scriptlet
-orig-id: RPMTAG_PREUN
doc: |
Specifies the preuninstall scriptlet. If present, then
`::pre_uninstall_interpreter` shall also be present.
1026:
id: post_uninstall_scriptlet
-orig-id: RPMTAG_POSTUN
doc: |
Specifies the postuninstall scriptlet. If present, then
`::post_uninstall_interpreter` shall also be present.
1027:
id: old_file_names_obsolete
-orig-id: RPMTAG_OLDFILENAMES
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1028:
id: file_sizes
-orig-id: RPMTAG_FILESIZES
doc: Specifies the size of each file in the archive.
1029:
id: file_states # from lib/rpmtag.h
-orig-id: RPMTAG_FILESTATES
1030:
id: file_modes
-orig-id: RPMTAG_FILEMODES
doc: The mode of each file in the archive.
1031:
id: file_uids_internal
-orig-id: RPMTAG_FILEUIDS
1032:
id: file_gids_internal
-orig-id: RPMTAG_FILEGIDS
1033:
id: device_number
-orig-id: RPMTAG_FILERDEVS
doc: The device number from which the file was copied.
1034:
id: mtimes
-orig-id: RPMTAG_FILEMTIMES
doc: |
The modification time in seconds since the epoch
of each file in the archive.
1035:
id: file_digests
-orig-id: RPMTAG_FILEDIGESTS
doc: |
The ASCII representation of the MD5 sum of the corresponding
file contents. This value is empty if the corresponding archive
entry is not a regular file.
1036:
id: link_tos
-orig-id: RPMTAG_FILELINKTOS
doc: The target for a symlink, otherwise NULL.
1037:
id: file_flags
-orig-id: RPMTAG_FILEFLAGS
doc: |
Specifies the bit(s) to classify and control how files
are to be installed.
1038:
id: root_internal
-orig-id: RPMTAG_ROOT
1039:
id: file_owner
-orig-id: RPMTAG_FILEUSERNAME
doc: Specifies the owner of the corresponding file.
1040:
id: file_group
-orig-id: RPMTAG_FILEGROUPNAME
doc: Specifies the group of the corresponding file.
1041:
id: exclude_internal
-orig-id: RPMTAG_EXCLUDE
1042:
id: exclusive_internal
-orig-id: RPMTAG_EXCLUSIVE
1043:
id: icon_obsolete
-orig-id: RPMTAG_ICON
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1044:
id: source_rpm
-orig-id: RPMTAG_SOURCERPM
doc: Specifies the name of the source RPM.
1045:
id: file_verify_flags
-orig-id: RPMTAG_FILEVERIFYFLAGS
doc: |
Specifies the bit(s) to control how files are to be verified
after install, specifying which checks should be performed.
1046:
id: archive_size
-orig-id: RPMTAG_ARCHIVESIZE
doc: |
Specifies the uncompressed size of the Payload archive,
including the cpio headers.
1047:
id: provide_name
-orig-id: RPMTAG_PROVIDENAME
doc: The name of the dependency provided by this package.
1048:
id: require_flags
-orig-id: RPMTAG_REQUIREFLAGS
doc: Bits(s) to specify the dependency range and context.
1049:
id: require_name
-orig-id: RPMTAG_REQUIRENAME
doc: Indicates the dependencies for this package.
1050:
id: require_version
-orig-id: RPMTAG_REQUIREVERSION
doc: |
Indicates the versions associated with the values found
in the require_name index.
1051:
id: no_source # from lib/rpmtag.h
-orig-id: RPMTAG_NOSOURCE
1052:
id: no_patch # from lib/rpmtag.h
-orig-id: RPMTAG_NOPATCH
1053:
id: conflict_flags
-orig-id: RPMTAG_CONFLICTFLAGS
doc: Bits(s) to specify the conflict range and context.
1054:
id: conflict_name
-orig-id: RPMTAG_CONFLICTNAME
doc: Indicates the conflicting dependencies for this package.
1055:
id: conflict_version
-orig-id: RPMTAG_CONFLICTVERSION
doc: |
Indicates the versions associated with the
values found in the conflict_name index.
1056:
id: default_prefix_internal
-orig-id: RPMTAG_DEFAULTPREFIX
1057:
id: build_root_internal
-orig-id: RPMTAG_BUILDROOT
1058:
id: install_prefix_internal
-orig-id: RPMTAG_INSTALLPREFIX
1059:
id: exclude_arch # from lib/rpmtag.h
-orig-id: RPMTAG_EXCLUDEARCH
1060:
id: exclude_os # from lib/rpmtag.h
-orig-id: RPMTAG_EXCLUDEOS
1061:
id: exclusive_arch # from lib/rpmtag.h
-orig-id: RPMTAG_EXCLUSIVEARCH
1063:
id: autoreqprov_internal
-orig-id: RPMTAG_AUTOREQPROV
1062:
id: exclusive_os # from lib/rpmtag.h
-orig-id: RPMTAG_EXCLUSIVEOS
1064:
id: rpm_version
-orig-id: RPMTAG_RPMVERSION
doc: Indicates the version of RPM tool used to build this package.
1065:
id: trigger_scripts # from lib/rpmtag.h
-orig-id: RPMTAG_TRIGGERSCRIPTS
1066:
id: trigger_name # from lib/rpmtag.h
-orig-id: RPMTAG_TRIGGERNAME
1067:
id: trigger_version # from lib/rpmtag.h
-orig-id: RPMTAG_TRIGGERVERSION
1068:
id: trigger_flags # from lib/rpmtag.h
-orig-id: RPMTAG_TRIGGERFLAGS
1069:
id: trigger_index # from lib/rpmtag.h
-orig-id: RPMTAG_TRIGGERINDEX
# 1070..1078 - unassigned (missing in lib/rpmtag.h)
1079:
id: verify_script # from lib/rpmtag.h
-orig-id: RPMTAG_VERIFYSCRIPT
1080:
id: changelog_time
-orig-id: RPMTAG_CHANGELOGTIME
doc: |
Specifies the Unix time in seconds since the epoch
associated with each entry in the Changelog file.
1081:
id: changelog_name
-orig-id: RPMTAG_CHANGELOGNAME
doc: Specifies the name of who made a change to this package.
1082:
id: changelog_text
-orig-id: RPMTAG_CHANGELOGTEXT
doc: Specifies the changes asssociated with a changelog entry.
1083:
id: broken_md5_internal
-orig-id: RPMTAG_BROKENMD5
1084:
id: prereq_internal
-orig-id: RPMTAG_PREREQ
1085:
id: pre_install_interpreter
-orig-id: RPMTAG_PREINPROG
doc: |
Specifies the name of the interpreter to which the preinstall
scriptlet will be passed. The interpreter pointed to by this
index record shall be `/bin/sh`.
1086:
id: post_install_interpreter
-orig-id: RPMTAG_POSTINPROG
doc: |
Specifies the name of the interpreter to which the postinstall
scriptlet will be passed. The intepreter pointed to by this
index record shall be `/bin/sh`.
1087:
id: pre_uninstall_interpreter
-orig-id: RPMTAG_PREUNPROG
doc: |
Specifies the name of the interpreter to which the preuninstall
scriptlet will be passed. The interpreter pointed to by this index
record shall be `/bin/sh`.
1088:
id: post_uninstall_interpreter
-orig-id: RPMTAG_POSTUNPROG
doc: |
Specifies the name of the interpreter to which the postuninstall
scriptlet will be passed. The interpreter pointed to by this index
record shall be `/bin/sh`.
1089:
id: build_archs # from lib/rpmtag.h
-orig-id: RPMTAG_BUILDARCHS
1090:
id: obsolete_name # from lib/rpmtag.h
-orig-id: RPMTAG_OBSOLETENAME
doc: Indicates the obsoleted dependencies for this package.
1091:
id: verify_script_prog # from lib/rpmtag.h
-orig-id: RPMTAG_VERIFYSCRIPTPROG
1092:
id: trigger_script_prog # from lib/rpmtag.h
-orig-id: RPMTAG_TRIGGERSCRIPTPROG
1093:
id: doc_dir_internal
-orig-id: RPMTAG_DOCDIR
1094:
id: cookie
-orig-id: RPMTAG_COOKIE
doc: Contains an opaque string whose contents are undefined.
1095:
id: file_devices
-orig-id: RPMTAG_FILEDEVICES
doc: Specifies the 16 bit device number from which the file was copied.
1096:
id: file_inodes
-orig-id: RPMTAG_FILEINODES
doc: |
Specifies the inode value from the original file system
on the the system on which it was built.
1097:
id: file_langs
-orig-id: RPMTAG_FILELANGS
doc: |
Specifies a per-file locale marker used to install only locale
specific subsets of files when the package is installed.
1098:
id: prefixes # from lib/rpmtag.h
-orig-id: RPMTAG_PREFIXES
1099:
id: install_prefixes # from lib/rpmtag.h
-orig-id: RPMTAG_INSTPREFIXES
1100:
id: trigger_install_internal
-orig-id: RPMTAG_TRIGGERIN
1101:
id: trigger_uninstall_internal
-orig-id: RPMTAG_TRIGGERUN
1102:
id: trigger_post_uninstall_internal
-orig-id: RPMTAG_TRIGGERPOSTUN
1103:
id: autoreq_internal
-orig-id: RPMTAG_AUTOREQ
1104:
id: autoprov_internal
-orig-id: RPMTAG_AUTOPROV
1105:
id: capability_internal
-orig-id: RPMTAG_CAPABILITY
1106:
id: source_package # from lib/rpmtag.h
-orig-id: RPMTAG_SOURCEPACKAGE
1107:
id: old_orig_filenames_internal
-orig-id: RPMTAG_OLDORIGFILENAMES
1108:
id: build_prereq_internal
-orig-id: RPMTAG_BUILDPREREQ
1109:
id: build_requires_internal
-orig-id: RPMTAG_BUILDREQUIRES
1110:
id: build_conflicts_internal
-orig-id: RPMTAG_BUILDCONFLICTS
1111:
id: build_macros_internal
-orig-id: RPMTAG_BUILDMACROS
1112:
id: provide_flags
-orig-id: RPMTAG_PROVIDEFLAGS
doc: Bits(s) to specify the conflict range and context.
1113:
id: provide_version
-orig-id: RPMTAG_PROVIDEVERSION
doc: |
Indicates the versions associated with the values found
in the provide_name index.
1114:
id: obsolete_flags
-orig-id: RPMTAG_OBSOLETEFLAGS
1115:
id: obsolete_version
-orig-id: RPMTAG_OBSOLETEVERSION
1116:
id: dir_indexes
-orig-id: RPMTAG_DIRINDEXES
1117:
id: base_names
-orig-id: RPMTAG_BASENAMES
1118:
id: dir_names
-orig-id: RPMTAG_DIRNAMES
1119:
id: orig_dir_indexes # from lib/rpmtag.h
-orig-id: RPMTAG_ORIGDIRINDEXES
1120:
id: orig_base_names # from lib/rpmtag.h
-orig-id: RPMTAG_ORIGBASENAMES
1121:
id: orig_dir_names # from lib/rpmtag.h
-orig-id: RPMTAG_ORIGDIRNAMES
1122:
id: opt_flags
-orig-id: RPMTAG_OPTFLAGS
1123:
id: dist_url
-orig-id: RPMTAG_DISTURL
1124:
id: payload_format
-orig-id: RPMTAG_PAYLOADFORMAT
1125:
id: payload_compressor
-orig-id: RPMTAG_PAYLOADCOMPRESSOR
1126:
id: payload_flags
-orig-id: RPMTAG_PAYLOADFLAGS
1127:
id: install_color # from lib/rpmtag.h
-orig-id: RPMTAG_INSTALLCOLOR
1128:
id: install_tid # from lib/rpmtag.h
-orig-id: RPMTAG_INSTALLTID
1129:
id: remove_tid_obsolete
-orig-id: RPMTAG_REMOVETID
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1130:
id: sha1_rhn_internal
-orig-id: RPMTAG_SHA1RHN
1131:
id: rhn_platform_internal
-orig-id: RPMTAG_RHNPLATFORM
1132:
id: platform
-orig-id: RPMTAG_PLATFORM
# below are all from lib/rpmtag.h
1133:
id: patches_name_obsolete
-orig-id: RPMTAG_PATCHESNAME
1134:
id: patches_flags_obsolete
-orig-id: RPMTAG_PATCHESFLAGS
1135:
id: patches_version_obsolete
-orig-id: RPMTAG_PATCHESVERSION
1136:
id: cache_ctime_internal
-orig-id: RPMTAG_CACHECTIME
1137:
id: cache_pkg_path_internal
-orig-id: RPMTAG_CACHEPKGPATH
1138:
id: cache_pkg_size_internal
-orig-id: RPMTAG_CACHEPKGSIZE
1139:
id: cache_pkg_mtime_internal
-orig-id: RPMTAG_CACHEPKGMTIME
1140:
id: file_colors
-orig-id: RPMTAG_FILECOLORS
1141:
id: file_class
-orig-id: RPMTAG_FILECLASS
1142:
id: class_dict
-orig-id: RPMTAG_CLASSDICT
1143:
id: file_depends_idx
-orig-id: RPMTAG_FILEDEPENDSX
doc: Index into `::depends_dict` denoting start of this file's dependencies.
1144:
id: file_depends_num
-orig-id: RPMTAG_FILEDEPENDSN
doc: Number of file dependencies in `::depends_dict`, starting from `::file_depends_idx`
1145:
id: depends_dict
-orig-id: RPMTAG_DEPENDSDICT
1146:
id: source_pkgid
-orig-id: RPMTAG_SOURCEPKGID
1147:
id: file_contexts_obsolete
-orig-id: RPMTAG_FILECONTEXTS
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1148:
id: fs_contexts_obsolete
-orig-id: RPMTAG_FSCONTEXTS
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1149:
id: re_contexts_obsolete
-orig-id: RPMTAG_RECONTEXTS
doc-ref: https://github.com/rpm-software-management/rpm/blob/afad3167/docs/manual/tags.md#deprecated--obsolete
1150:
id: policies
-orig-id: RPMTAG_POLICIES
1151:
id: pre_trans
-orig-id: RPMTAG_PRETRANS
1152:
id: post_trans
-orig-id: RPMTAG_POSTTRANS
1153:
id: pre_trans_prog
-orig-id: RPMTAG_PRETRANSPROG
1154:
id: post_trans_prog
-orig-id: RPMTAG_POSTTRANSPROG
1155:
id: dist_tag
-orig-id: RPMTAG_DISTTAG
1156:
id: old_suggests_name_obsolete
-orig-id: RPMTAG_OLDSUGGESTSNAME
1157:
id: old_suggests_version_obsolete
-orig-id: RPMTAG_OLDSUGGESTSVERSION
1158:
id: old_suggests_flags_obsolete
-orig-id: RPMTAG_OLDSUGGESTSFLAGS
1159:
id: old_enhances_name_obsolete
-orig-id: RPMTAG_OLDENHANCESNAME
1160:
id: old_enhances_version_obsolete
-orig-id: RPMTAG_OLDENHANCESVERSION
1161:
id: old_enhances_flags_obsolete
-orig-id: RPMTAG_OLDENHANCESFLAGS
1162:
id: priority_unimplemented
-orig-id: RPMTAG_PRIORITY
1163:
id: cvsid_unimplemented
-orig-id:
- RPMTAG_CVSID
- RPMTAG_SVNID
1164:
id: blink_pkgid_unimplemented
-orig-id: RPMTAG_BLINKPKGID
1165:
id: blink_hdrid_unimplemented
-orig-id: RPMTAG_BLINKHDRID
1166:
id: blink_nevra_unimplemented
-orig-id: RPMTAG_BLINKNEVRA
1167:
id: flink_pkgid_unimplemented
-orig-id: RPMTAG_FLINKPKGID
1168:
id: flink_hdrid_unimplemented
-orig-id: RPMTAG_FLINKHDRID
1169:
id: flink_nevra_unimplemented
-orig-id: RPMTAG_FLINKNEVRA
1170:
id: package_origin_unimplemented
-orig-id: RPMTAG_PACKAGEORIGIN
1171:
id: trigger_pre_install_internal
-orig-id: RPMTAG_TRIGGERPREIN
1172:
id: build_suggests_unimplemented
-orig-id: RPMTAG_BUILDSUGGESTS
1173:
id: build_enhances_unimplemented
-orig-id: RPMTAG_BUILDENHANCES
1174:
id: script_states_unimplemented
-orig-id: RPMTAG_SCRIPTSTATES
1175:
id: script_metrics_unimplemented
-orig-id: RPMTAG_SCRIPTMETRICS
1176:
id: build_cpu_clock_unimplemented
-orig-id: RPMTAG_BUILDCPUCLOCK
1177:
id: file_digest_algos_unimplemented
-orig-id: RPMTAG_FILEDIGESTALGOS
1178:
id: variants_unimplemented
-orig-id: RPMTAG_VARIANTS
1179:
id: xmajor_unimplemented
-orig-id: RPMTAG_XMAJOR
1180:
id: xminor_unimplemented
-orig-id: RPMTAG_XMINOR
1181:
id: repo_tag_unimplemented
-orig-id: RPMTAG_REPOTAG
1182:
id: keywords_unimplemented
-orig-id: RPMTAG_KEYWORDS
1183:
id: build_platforms_unimplemented
-orig-id: RPMTAG_BUILDPLATFORMS
1184:
id: package_color_unimplemented
-orig-id: RPMTAG_PACKAGECOLOR
1185:
id: package_pref_color_unimplemented
-orig-id: RPMTAG_PACKAGEPREFCOLOR
1186:
id: xattrs_dict_unimplemented
-orig-id: RPMTAG_XATTRSDICT
1187:
id: filex_attrsx_unimplemented
-orig-id: RPMTAG_FILEXATTRSX
1188:
id: dep_attrs_dict_unimplemented
-orig-id: RPMTAG_DEPATTRSDICT
1189:
id: conflict_attrsx_unimplemented
-orig-id: RPMTAG_CONFLICTATTRSX
1190:
id: obsolete_attrsx_unimplemented
-orig-id: RPMTAG_OBSOLETEATTRSX
1191:
id: provide_attrsx_unimplemented
-orig-id: RPMTAG_PROVIDEATTRSX
1192:
id: require_attrsx_unimplemented
-orig-id: RPMTAG_REQUIREATTRSX
1193:
id: build_provides_unimplemented
-orig-id: RPMTAG_BUILDPROVIDES
1194:
id: build_obsoletes_unimplemented
-orig-id: RPMTAG_BUILDOBSOLETES
1195:
id: db_instance
-orig-id: RPMTAG_DBINSTANCE
1196:
id: nvra
-orig-id: RPMTAG_NVRA
# 1997..4999 - reserved
5000:
id: file_names
-orig-id: RPMTAG_FILENAMES
5001:
id: file_provide
-orig-id: RPMTAG_FILEPROVIDE
5002:
id: file_require
-orig-id: RPMTAG_FILEREQUIRE
5003:
id: fs_names_unimplemented
-orig-id: RPMTAG_FSNAMES
5004:
id: fs_sizes_unimplemented
-orig-id: RPMTAG_FSSIZES
5005:
id: trigger_conds
-orig-id: RPMTAG_TRIGGERCONDS
5006:
id: trigger_type
-orig-id: RPMTAG_TRIGGERTYPE
5007:
id: orig_file_names
-orig-id: RPMTAG_ORIGFILENAMES
5008:
id: long_file_sizes
-orig-id: RPMTAG_LONGFILESIZES
5009:
id: long_size
-orig-id: RPMTAG_LONGSIZE
5010:
id: file_caps
-orig-id: RPMTAG_FILECAPS
5011:
id: file_digest_algo
-orig-id: RPMTAG_FILEDIGESTALGO
doc: File digest algorithm
5012:
id: bug_url
-orig-id: RPMTAG_BUGURL
5013:
id: evr
-orig-id: RPMTAG_EVR
5014:
id: nvr
-orig-id: RPMTAG_NVR
5015:
id: nevr
-orig-id: RPMTAG_NEVR
5016:
id: nevra
-orig-id: RPMTAG_NEVRA
5017:
id: header_color
-orig-id: RPMTAG_HEADERCOLOR
5018:
id: verbose
-orig-id: RPMTAG_VERBOSE
5019:
id: epoch_num
-orig-id: RPMTAG_EPOCHNUM
5020:
id: pre_install_flags
-orig-id: RPMTAG_PREINFLAGS
5021:
id: post_install_flags
-orig-id: RPMTAG_POSTINFLAGS
5022:
id: pre_uninstall_flags
-orig-id: RPMTAG_PREUNFLAGS
5023:
id: post_uninstall_flags
-orig-id: RPMTAG_POSTUNFLAGS
5024:
id: pre_trans_flags
-orig-id: RPMTAG_PRETRANSFLAGS
5025:
id: post_trans_flags
-orig-id: RPMTAG_POSTTRANSFLAGS
5026:
id: verify_script_flags
-orig-id: RPMTAG_VERIFYSCRIPTFLAGS
5027:
id: trigger_script_flags
-orig-id: RPMTAG_TRIGGERSCRIPTFLAGS
# 5028 - unassigned (removed from lib/rpmtag.h in commit <https://github.com/rpm-software-management/rpm/commit/dc2ee980>)
5029:
id: collections_unimplemented
-orig-id: RPMTAG_COLLECTIONS
5030:
id: policy_names
-orig-id: RPMTAG_POLICYNAMES
5031:
id: policy_types
-orig-id: RPMTAG_POLICYTYPES
5032:
id: policy_types_indexes
-orig-id: RPMTAG_POLICYTYPESINDEXES
5033:
id: policy_flags
-orig-id: RPMTAG_POLICYFLAGS
5034:
id: vcs
-orig-id: RPMTAG_VCS
5035:
id: order_name
-orig-id: RPMTAG_ORDERNAME
5036:
id: order_version
-orig-id: RPMTAG_ORDERVERSION
5037:
id: order_flags
-orig-id: RPMTAG_ORDERFLAGS
5038:
id: mssf_manifest_unimplemented
-orig-id: RPMTAG_MSSFMANIFEST
5039:
id: mssf_domain_unimplemented
-orig-id: RPMTAG_MSSFDOMAIN
5040:
id: inst_file_names
-orig-id: RPMTAG_INSTFILENAMES
5041:
id: require_nevrs
-orig-id: RPMTAG_REQUIRENEVRS
5042:
id: provide_nevrs
-orig-id: RPMTAG_PROVIDENEVRS
5043:
id: obsolete_nevrs
-orig-id: RPMTAG_OBSOLETENEVRS
5044:
id: conflict_nevrs
-orig-id: RPMTAG_CONFLICTNEVRS
5045:
id: file_nlinks
-orig-id: RPMTAG_FILENLINKS
5046:
id: recommend_name
-orig-id: RPMTAG_RECOMMENDNAME
5047:
id: recommend_version
-orig-id: RPMTAG_RECOMMENDVERSION
5048:
id: recommend_flags
-orig-id: RPMTAG_RECOMMENDFLAGS
5049:
id: suggest_name
-orig-id: RPMTAG_SUGGESTNAME
5050:
id: suggest_version
-orig-id: RPMTAG_SUGGESTVERSION
5051:
id: suggest_flags
-orig-id: RPMTAG_SUGGESTFLAGS
5052:
id: supplement_name
-orig-id: RPMTAG_SUPPLEMENTNAME
5053:
id: supplement_version
-orig-id: RPMTAG_SUPPLEMENTVERSION
5054:
id: supplement_flags
-orig-id: RPMTAG_SUPPLEMENTFLAGS
5055:
id: enhance_name
-orig-id: RPMTAG_ENHANCENAME
5056:
id: enhance_version
-orig-id: RPMTAG_ENHANCEVERSION
5057:
id: enhance_flags
-orig-id: RPMTAG_ENHANCEFLAGS
5058:
id: recommend_nevrs
-orig-id: RPMTAG_RECOMMENDNEVRS
5059:
id: suggest_nevrs
-orig-id: RPMTAG_SUGGESTNEVRS
5060:
id: supplement_nevrs
-orig-id: RPMTAG_SUPPLEMENTNEVRS
5061:
id: enhance_nevrs
-orig-id: RPMTAG_ENHANCENEVRS
5062:
id: encoding
-orig-id: RPMTAG_ENCODING
5063:
id: file_trigger_install_internal
-orig-id: RPMTAG_FILETRIGGERIN
5064:
id: file_trigger_uninstall_internal
-orig-id: RPMTAG_FILETRIGGERUN
5065:
id: file_trigger_post_uninstall_internal
-orig-id: RPMTAG_FILETRIGGERPOSTUN
5066:
id: file_trigger_scripts
-orig-id: RPMTAG_FILETRIGGERSCRIPTS
5067:
id: file_trigger_script_prog
-orig-id: RPMTAG_FILETRIGGERSCRIPTPROG
5068:
id: file_trigger_script_flags
-orig-id: RPMTAG_FILETRIGGERSCRIPTFLAGS
5069:
id: file_trigger_name
-orig-id: RPMTAG_FILETRIGGERNAME
5070:
id: file_trigger_index
-orig-id: RPMTAG_FILETRIGGERINDEX
5071:
id: file_trigger_version
-orig-id: RPMTAG_FILETRIGGERVERSION
5072:
id: file_trigger_flags
-orig-id: RPMTAG_FILETRIGGERFLAGS
5073:
id: trans_file_trigger_install_internal
-orig-id: RPMTAG_TRANSFILETRIGGERIN
5074:
id: trans_file_trigger_uninstall_internal
-orig-id: RPMTAG_TRANSFILETRIGGERUN
5075:
id: trans_file_trigger_post_uninstall_internal
-orig-id: RPMTAG_TRANSFILETRIGGERPOSTUN
5076:
id: trans_file_trigger_scripts
-orig-id: RPMTAG_TRANSFILETRIGGERSCRIPTS
5077:
id: trans_file_trigger_script_prog
-orig-id: RPMTAG_TRANSFILETRIGGERSCRIPTPROG
5078:
id: trans_file_trigger_script_flags
-orig-id: RPMTAG_TRANSFILETRIGGERSCRIPTFLAGS
5079:
id: trans_file_trigger_name
-orig-id: RPMTAG_TRANSFILETRIGGERNAME
5080:
id: trans_file_trigger_index
-orig-id: RPMTAG_TRANSFILETRIGGERINDEX
5081:
id: trans_file_trigger_version
-orig-id: RPMTAG_TRANSFILETRIGGERVERSION
5082:
id: trans_file_trigger_flags
-orig-id: RPMTAG_TRANSFILETRIGGERFLAGS
5083:
id: remove_path_postfixes_internal
-orig-id: RPMTAG_REMOVEPATHPOSTFIXES
5084:
id: file_trigger_priorities
-orig-id: RPMTAG_FILETRIGGERPRIORITIES
5085:
id: trans_file_trigger_priorities
-orig-id: RPMTAG_TRANSFILETRIGGERPRIORITIES
5086:
id: file_trigger_conds
-orig-id: RPMTAG_FILETRIGGERCONDS
5087:
id: file_trigger_type
-orig-id: RPMTAG_FILETRIGGERTYPE
5088:
id: trans_file_trigger_conds
-orig-id: RPMTAG_TRANSFILETRIGGERCONDS
5089:
id: trans_file_trigger_type
-orig-id: RPMTAG_TRANSFILETRIGGERTYPE
5090:
id: file_signatures
-orig-id: RPMTAG_FILESIGNATURES
5091:
id: file_signature_length
-orig-id: RPMTAG_FILESIGNATURELENGTH
5092:
id: payload_digest
-orig-id: RPMTAG_PAYLOADDIGEST
5093:
id: payload_digest_algo
-orig-id: RPMTAG_PAYLOADDIGESTALGO
5094:
id: auto_installed_unimplemented
-orig-id: RPMTAG_AUTOINSTALLED
5095:
id: identity_unimplemented
-orig-id: RPMTAG_IDENTITY
5096:
id: modularity_label
-orig-id: RPMTAG_MODULARITYLABEL
5097:
id: payload_digest_alt
-orig-id: RPMTAG_PAYLOADDIGESTALT
5098:
id: arch_suffix
-orig-id: RPMTAG_ARCHSUFFIX
5099:
id: spec
-orig-id: RPMTAG_SPEC
5100:
id: translation_url
-orig-id: RPMTAG_TRANSLATIONURL
5101:
id: upstream_releases
-orig-id: RPMTAG_UPSTREAMRELEASES
5102:
id: source_license_internal
-orig-id: RPMTAG_SOURCELICENSE
5103:
id: pre_untrans
-orig-id: RPMTAG_PREUNTRANS
5104:
id: post_untrans
-orig-id: RPMTAG_POSTUNTRANS
5105:
id: pre_untrans_prog
-orig-id: RPMTAG_PREUNTRANSPROG
5106:
id: post_untrans_prog
-orig-id: RPMTAG_POSTUNTRANSPROG
5107:
id: pre_untrans_flags
-orig-id: RPMTAG_PREUNTRANSFLAGS
5108:
id: post_untrans_flags
-orig-id: RPMTAG_POSTUNTRANSFLAGS
5109:
id: sys_users
-orig-id: RPMTAG_SYSUSERS
record_types:
# from LSB
0: not_implemented
1: char
2: uint8
3: uint16
4: uint32
5: uint64
6: string # NUL terminated
7: bin
8: string_array # NUL terminated strings
9: i18n_string # NUL terminated strings