22.2. Package File Format

An RPM format file consists of 4 sections, the Lead, Signature, Header, and the Payload. All values are stored in network byte order.

Table 22-1. RPM File Format

Lead
Signature
Header
Payload

These 4 sections shall exist in the order specified.

The lead section is used to identify the package file.

The signature section is used to verify the integrity, and optionally, the authenticity of the majority of the package file.

The header section contains all available information about the package. Entries such as the package's name, version, and file list, are contained in the header.

The payload section holds the files to be installed.

22.2.1. Lead Section

struct rpmlead {
    unsigned char magic[4];
    unsigned char major, minor;
    short type;
    short archnum;
    char name[66];
    short osnum;
    short signature_type;
    char reserved[16];
} ;

magic 

Value identifying this file as an RPM format file. This value shall be "\355\253\356\333".

major 

Value indicating the major version number of the file format version. This value shall be 3.

minor 

Value indicating the minor revision number of file format version. This value shall be 0.

type 

Value indicating whether this is a source or binary package. This value shall be 0 to indicate a binary package.

archnum 

Value indicating the architecture for which this package is valid. This value is specified in the relevant architecture specific part of ISO/IEC 23360.

name 

A NUL terminated string that provides the package name. This name shall conform with the Package Naming section of this specification.

osnum 

Value indicating the Operating System for which this package is valid. This value shall be 1.

signature_type 

Value indicating the type of the signature used in the Signature part of the file. This value shall be 5.

reserved 

Reserved space. The value is undefined.

22.2.2. Header Structure

The Header structure is used for both the Signature and Header Sections. A Header Structure consists of 3 parts, a Header record, followed by 1 or more Index records, followed by 0 or more bytes of data associated with the Index records. A Header structure shall be aligned to an 8 byte boundary.

Table 22-2. Signature Format

Header Record
Array of Index Records
Store of Index Values

22.2.2.1. Header Record

struct rpmheader {
    unsigned char magic[4];
    unsigned char reserved[4];
    int nindex;
    int hsize;
    } ;

magic 

Value identifying this record as an RPM header record. This value shall be "\216\255\350\001".

reserved 

Reserved space. This value shall be "\000\000\000\000".

nindex 

The number of Index Records that follow this Header Record. There should be at least 1 Index Record.

hsize 

The size in bytes of the storage area for the data pointed to by the Index Records.

22.2.2.2. Index Record

struct rpmhdrindex {
    int tag;
    int type;
    int offset;
    int count;
    } ;

tag 

Value identifying the purpose of the data associated with this Index Record. The value of this field is dependent on the context in which the Index Record is used, and is defined below and in later sections.

type 

Value identifying the type of the data associated with this Index Record. The possible type values are defined below.

offset 

Location in the Store of the data associated with this Index Record. This value should between 0 and the value contained in the hsize of the Header Structure.

count 

Size of the data associated with this Index Record. The count is the number of elements whose size is defined by the type of this Record.

22.2.2.2.1. Index Type Values

The possible values for the type field are defined in this table.

Table 22-3. Index Type values

TypeValueSize (in bytes)Alignment
RPM_NULL_TYPE0Not Implemented. 
RPM_CHAR_TYPE111
RPM_INT8_TYPE211
RPM_INT16_TYPE322
RPM_INT32_TYPE444
RPM_INT64_TYPE5Reserved. 
RPM_STRING_TYPE6variable, NUL terminated1
RPM_BIN_TYPE711
RPM_STRING_ARRAY_TYPE8Variable, sequence of NUL terminated strings1
RPM_I18NSTRING_TYPE9variable, sequence of NUL terminated strings1

The string arrays specified for entries of type RPM_STRING_ARRAY_TYPE and RPM_I18NSTRING_TYPE are vectors of strings in a contiguous block of memory, each element separated from its neighbors by a NUL character.

Index records with type RPM_I18NSTRING_TYPE shall always have a count of 1. The array entries in an index of type RPM_I18NSTRING_TYPE correspond to the locale names contained in the RPMTAG_HDRI18NTABLE index.

22.2.2.2.2. Index Tag Values

Some values are designated as header private, and may appear in any header structure. These are defined here. Additional values are defined in later sections.

Table 22-4. Header Private Tag Values

NameTag ValueTypeCountStatus
RPMTAG_HEADERSIGNATURES62BIN16Optional
RPMTAG_HEADERIMMUTABLE63BIN16Optional
RPMTAG_HEADERI18NTABLE100STRING_ARRAY Optional

RPMTAG_HEADERSIGNATURES

The signature tag differentiates a signature header from a metadata header, and identifies the original contents of the signature header.

RPMTAG_HEADERIMMUTABLE

This tag contains an index record which specifies the portion of the Header Record which was used for the calculation of a signature. This data shall be preserved or any header-only signature will be invalidated.

RPMTAG_HEADERI18NTABLE

Contains a list of locales for which strings are provided in other parts of the package.

Not all Index records defined here will be present in all packages. Each tag value has a status which is defined here.

Required 

This Index Record shall be present.

Optional 

This Index Record may be present.

Informational 

This Index Record may be present, but does not contribute to the processing of the package.

Deprecated 

This Index Record should not be present.

Obsolete 

This Index Record shall not be present.

Reserved 

This Index Record shall not be present.

22.2.2.3. Header Store

The header store contains the values specified by the Index structures. These values are aligned according to their type and padding is used if needed. The store is located immediately following the Index structures.

22.2.3. Signature Section

The Signature section is implemented using the Header structure. The signature section defines the following additional tag values which may be used in the Index structures.

These values exist to provide additional information about the rest of the package.

Table 22-5. Signature Tag Values

NameTag ValueTypeCountStatus
RPMSIGTAG_SIZE1000INT321Required
RPMSIGTAG_PAYLOADSIZE1007INT321Optional

RPMSIGTAG_SIZE

This tag specifies the combined size of the Header and Payload sections.

RPMSIGTAG_PAYLOADSIZE

This tag specifies the uncompressed size of the Payload archive, including the cpio headers.

These values exist to ensure the integrity of the rest of the package.

Table 22-6. Signature Digest Tag Values

NameTag ValueTypeCountStatus
RPMSIGTAG_SHA1269STRING1Optional
RPMSIGTAG_MD51004BIN16Required

RPMSIGTAG_SHA1 

This index contains the SHA1 checksum of the entire Header Section, including the Header Record, Index Records and Header store.

RPMSIGTAG_MD5 

This tag specifies the 128-bit MD5 checksum of the combined Header and Archive sections.

These values exist to provide authentication of the package.

Table 22-7. Signature Signing Tag Values

NameTag ValueTypeCountStatus
RPMSIGTAG_DSA267BIN65Optional
RPMSIGTAG_RSA268BIN1Optional
RPMSIGTAG_PGP1002BIN1Optional
RPMSIGTAG_GPG1005BIN65Optional

RPMSIGTAG_DSA 

The tag contains the DSA signature of the Header section. The data is formatted as a Version 3 Signature Packet as specified in RFC 2440: OpenPGP Message Format. If this tag is present,then the SIGTAG_GPG tag shall also be present.

RPMSIGTAG_RSA 

The tag contains the RSA signature of the Header section.The data is formatted as a Version 3 Signature Packet as specified in RFC 2440: OpenPGP Message Format. If this tag is present, then the SIGTAG_PGP shall also be present.

RPMSIGTAG_PGP 

This tag specifies the RSA signature of the combined Header and Payload sections. The data is formatted as a Version 3 Signature Packet as specified in RFC 2440: OpenPGP Message Format.

RPMSIGTAG_GPG 

The tag contains the DSA signature of the combined Header and Payload sections. The data is formatted as a Version 3 Signature Packet as specified in RFC 2440: OpenPGP Message Format.

22.2.4. Header Section

The Header section is implemented using the Header structure. The Header section defines the following additional tag values which may be used in the Index structures.

22.2.4.1. Package Information

The following tag values are used to indicate information that describes the package as a whole.

Table 22-8. Package Info Tag Values

NameTag ValueTypeCountStatus
RPMTAG_NAME1000STRING1Required
RPMTAG_VERSION1001STRING1Required
RPMTAG_RELEASE1002STRING1Required
RPMTAG_SUMMARY1004I18NSTRING1Required
RPMTAG_DESCRIPTION1005I18NSTRING1Required
RPMTAG_SIZE1009INT321Required
RPMTAG_DISTRIBUTION1010STRING1Informational
RPMTAG_VENDOR1011STRING1Informational
RPMTAG_LICENSE1014STRING1Required
RPMTAG_PACKAGER1015STRING1Informational
RPMTAG_GROUP1016I18NSTRING1Required
RPMTAG_URL1020STRING1Informational
RPMTAG_OS1021STRING1Required
RPMTAG_ARCH1022STRING1Required
RPMTAG_SOURCERPM1044STRING1Informational
RPMTAG_ARCHIVESIZE1046INT321Optional
RPMTAG_RPMVERSION1064STRING1Informational
RPMTAG_COOKIE1094STRING1Optional
RPMTAG_DISTURL1123STRING1Informational
RPMTAG_PAYLOADFORMAT1124STRING1Required
RPMTAG_PAYLOADCOMPRESSOR1125STRING1Required
RPMTAG_PAYLOADFLAGS1126STRING1Required

RPMTAG_NAME

This tag specifies the name of the package.

RPMTAG_VERSION

This tag specifies the version of the package.

RPMTAG_RELEASE

This tag specifies the release of the package.

RPMTAG_SUMMARY

This tag specifies the summary description of the package. The summary value pointed to by this index record contains a one line description of the package.

RPMTAG_DESCRIPTION

This tag specifies the description of the package. The description value pointed to by this index record contains a full desription of the package.

RPMTAG_SIZE

This tag specifies the sum of the sizes of the regular files in the archive.

RPMTAG_DISTRIBUTION

A string containing the name of the distribution on which the package was built.

RPMTAG_VENDOR

A string containing the name of the organization that produced the package.

RPMTAG_LICENSE

This tag specifies the license which applies to this package.

RPMTAG_PACKAGER

A string identifying the tool used to build the package.

RPMTAG_GROUP

This tag specifies the administrative group to which this package belongs.

RPMTAG_URL

Generic package information URL

RPMTAG_OS

This tag specifies the OS of the package. The OS value pointed to by this index record shall be "linux".

RPMTAG_ARCH

This tag specifies the architecture of the package. The architecture value pointed to by this index record is defined in architecture specific LSB specification.

RPMTAG_SOURCERPM

This tag specifies the name of the source RPM

RPMTAG_ARCHIVESIZE

This tag specifies the uncompressed size of the Payload archive, including the cpio headers.

RPMTAG_RPMVERSION

This tag indicates the version of RPM tool used to build this package. The value is unused.

RPMTAG_COOKIE

This tag contains an opaque string whose contents are undefined.

RPMTAG_DISTURL

URL for package

RPMTAG_PAYLOADFORMAT

This tag specifies the format of the Archive section. The format value pointed to by this index record shall be 'cpio'.

RPMTAG_PAYLOADCOMPRESSOR

This tag specifies the compression used on the Archive section. The compression value pointed to by this index record shall be 'gzip'

RPMTAG_PAYLOADFLAGS

This tag indicates the compression level used for the Payload. This value shall always be '9'.

22.2.4.2. Installation Information

The following tag values are used to provide information needed during the installation of the package.

Table 22-9. Installation Tag Values

NameTag ValueTypeCountStatus
RPMTAG_PREIN1023STRING1Optional
RPMTAG_POSTIN1024STRING1Optional
RPMTAG_PREUN1025STRING1Optional
RPMTAG_POSTUN1026STRING1Optional
RPMTAG_PREINPROG1085STRING1Optional
RPMTAG_POSTINPROG1086STRING1Optional
RPMTAG_PREUNPROG1087STRING1Optional
RPMTAG_POSTUNPROG1088STRING1Optional

RPMTAG_PREIN 

This tag specifies the preinstall scriptlet. If present, then RPMTAG_PREINPROG shall also be present.

RPMTAG_POSTIN 

This tag specifies the postinstall scriptlet. If present, then RPMTAG_POSTINPROG shall also be present.

RPMTAG_PREUN 

his tag specifies the preuninstall scriptlet. If present, then RPMTAG_PREUNPROG shall also be present.

RPMTAG_POSTUN 

This tag specified the postuninstall scriptlet. If present, then RPMTAG_POSTUNPROG shall also be present.

RPMTAG_PREINPROG 

This tag specifies the name of the intepreter to which the preinstall scriptlet will be passed. The intepreter pointed to by this index record shall be /bin/sh.

RPMTAG_POSTINPROG 

This tag specifies the name of the intepreter to which the postinstall scriptlet will be passed. The intepreter pointed to by this index record shall be /bin/sh.

RPMTAG_PREUNPROG 

This tag specifies the name of the intepreter to which the preuninstall scriptlet will be passed. The intepreter pointed to by this index record shall be /bin/sh.

RPMTAG_POSTUNPROG 

This program specifies the name of the intepreter to which the postuninstall scriptlet will be passed. The intepreter pointed to by this index record shall be /bin/sh.

22.2.4.3. File Information

The following tag values are used to provide information about the files in the payload. This information is provided in the header to allow more efficient access of the information.

Table 22-10. File Info Tag Values

NameTag ValueTypeCountStatus
RPMTAG_OLDFILENAMES1027STRING_ARRAY Optional
RPMTAG_FILESIZES1028INT32 Required
RPMTAG_FILEMODES1030INT16 Required
RPMTAG_FILERDEVS1033INT16 Required
RPMTAG_FILEMTIMES1034INT32 Required
RPMTAG_FILEMD5S1035STRING_ARRAY Required
RPMTAG_FILELINKTOS1036STRING_ARRAY Required
RPMTAG_FILEFLAGS1037INT32 Required
RPMTAG_FILEUSERNAME1039STRING_ARRAY Required
RPMTAG_FILEGROUPNAME1040STRING_ARRAY Required
RPMTAG_FILEDEVICES1095INT32 Required
RPMTAG_FILEINODES1096INT32 Required
RPMTAG_FILELANGS1097STRING_ARRAY Required
RPMTAG_DIRINDEXES1116INT32 Optional
RPMTAG_BASENAMES1117STRING_ARRAY Optional
RPMTAG_DIRNAMES1118STRING_ARRAY Optional

RPMTAG_OLDFILENAMES 

This tag specifies the filenames when not in a compressed format as determined by the absence of rpmlib(CompressedFileNames) in the RPMTAG_REQUIRENAME index.

RPMTAG_FILESIZES 

This tag specifies the size of each file in the archive.

RPMTAG_FILEMODES 

This tag specifies the mode of each file in the archive.

RPMTAG_FILERDEVS 

This tag specifies the device number from which the file was copied.

RPMTAG_FILEMTIMES 

This tag specifies the modification time in seconds since the epoch of each file in the archive.

RPMTAG_FILEMD5S 

This tag specifies 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.

RPMTAG_FILELINKTOS 

The target for a symlink, otherwise NULL.

RPMTAG_FILEFLAGS 

This tag specifies the bit(s) to classify and control how files are to be installed. See below.

RPMTAG_FILEUSERNAME 

This tag specifies the owner of the corresponding file.

RPMTAG_FILEGROUPNAME 

This tag specifies the group of the corresponding file.

RPMTAG_FILEDEVICES 

This tag specifies the 16 bit device number from which the file was copied.

RPMTAG_FILEINODES 

This tag specifies the inode value from the original file system on the the system on which it was built.

RPMTAG_FILELANGS 

This tag specifies a per-file locale marker used to install only locale specific subsets of files when the package is installed.

RPMTAG_DIRINDEXES 

This tag specifies the index into the array provided by the RPMTAG_DIRNAMES Index which contains the directory name for the corresponding filename.

RPMTAG_BASENAMES 

This tag specifies the base portion of the corresponding filename.

RPMTAG_DIRNAMES 

One of RPMTAG_OLDFILENAMES or the tuple RPMTAG_DIRINDEXES,RPMTAG_BASENAMES,RPMTAG_DIRNAMES shall be present, but not both.

22.2.4.3.1. File Flags

The RPMTAG_FILEFLAGS tag value shall identify various characteristics of the file in the payload that it describes. It shall be an INT32 value consisting of either the value RPMFILE_NONE (0) or the bitwise inclusive or of one or more of the following values:

Table 22-11. File Flags

NameValue
RPMFILE_CONFIG(1 << 0)
RPMFILE_DOC(1 << 1)
RPMFILE_DONOTUSE(1 << 2)
RPMFILE_MISSINGOK(1 << 3)
RPMFILE_NOREPLACE(1 << 4)
RPMFILE_SPECFILE(1 << 5)
RPMFILE_GHOST(1 << 6)
RPMFILE_LICENSE(1 << 7)
RPMFILE_README(1 << 8)
RPMFILE_EXCLUDE(1 << 9)

These bits have the following meaning:

RPMFILE_CONFIG 

The file is a configuration file, and an existing file should be saved during a package upgrade operation and not removed during a pakage removal operation.

RPMFILE_DOC 

The file contains documentation.

RPMFILE_DONOTUSE 

This value is reserved for future use; conforming packages may not use this flag.

RPMFILE_MISSINGOK 

The file need not exist on the installed system.

RPMFILE_NOREPLACE 

Similar to the RPMFILE_CONFIG, this flag indicates that during an upgrade operation the original file on the system should not be altered.

RPMFILE_SPECFILE 

The file is a package specification.

RPMFILE_GHOST 

The file is not actually included in the payload, but should still be considered as a part of the package. For example, a log file generated by the application at run time.

RPMFILE_LICENSE 

The file contains the license conditions.

RPMFILE_README 

The file contains high level notes about the package.

RPMFILE_EXCLUDE 

The corresponding file is not a part of the package, and should not be installed.

22.2.4.4. Dependency Information

The following tag values are used to provide information about interdependencies between packages.

Table 22-12. Package Dependency Tag Values

NameTag ValueTypeCountStatus
RPMTAG_PROVIDENAME1047STRING_ARRAY1Required
RPMTAG_REQUIREFLAGS1048INT32 Required
RPMTAG_REQUIRENAME1049STRING_ARRAY Required
RPMTAG_REQUIREVERSION1050STRING_ARRAY Required
RPMTAG_CONFLICTFLAGS1053INT32 Optional
RPMTAG_CONFLICTNAME1054STRING_ARRAY Optional
RPMTAG_CONFLICTVERSION1055STRING_ARRAY Optional
RPMTAG_OBSOLETENAME1090STRING_ARRAY Optional
RPMTAG_PROVIDEFLAGS1112INT32 Required
RPMTAG_PROVIDEVERSION1113STRING_ARRAY Required
RPMTAG_OBSOLETEFLAGS1114INT321Optional
RPMTAG_OBSOLETEVERSION1115STRING_ARRAY Optional

RPMTAG_PROVIDENAME

This tag indicates the name of the dependency provided by this package.

RPMTAG_REQUIREFLAGS

Bits(s) to specify the dependency range and context.

RPMTAG_REQUIRENAME

This tag indicates the dependencies for this package.

RPMTAG_REQUIREVERSION

This tag indicates the versions associated with the values found in the RPMTAG_REQUIRENAME Index.

RPMTAG_CONFLICTFLAGS

Bits(s) to specify the conflict range and context.

RPMTAG_CONFLICTNAME

This tag indicates the conflicting dependencies for this package.

RPMTAG_CONFLICTVERSION

This tag indicates the versions associated with the values found in the RPMTAG_CONFLICTNAME Index.

RPMTAG_OBSOLETENAME

This tag indicates the obsoleted dependencies for this package.

RPMTAG_PROVIDEFLAGS

Bits(s) to specify the conflict range and context.

RPMTAG_PROVIDEVERSION

This tag indicates the versions associated with the values found in the RPMTAG_PROVIDENAME Index.

RPMTAG_OBSOLETEFLAGS

Bits(s) to specify the conflict range and context.

RPMTAG_OBSOLETEVERSION

This tag indicates the versions associated with the values found in the RPMTAG_OBSOLETENAME Index.

22.2.4.4.1. Package Dependency Values

The package dependencies are stored in the RPMTAG_REQUIRENAME and RPMTAG_REQUIREVERSION index records. The following values may be used.

Table 22-13. Index Type values

NameVersionMeaningStatus
rpmlib(VersionedDependencies)3.0.3-1Indicates that the package contains RPMTAG_PROVIDENAME, RPMTAG_OBSOLETENAME or RPMTAG_PREREQ records that have a version associated with them.Optional
rpmlib(PayloadFilesHavePrefix)4.0-1Indicates the filenames in the Archive have had "." prepended to them.Optional
rpmlib(CompressedFileNames)3.0.4-1Indicates that the filenames in the Payload are represented in the RPMTAG_DIRINDEXES, RPMTAG_DIRNAME and RPMTAG_BASENAMES indexes.Optional
/bin/sh Interpreter usually required for installation scripts.Optional

Additional dependencies are specified in the Package Dependencies section of this specification, and in the relevant architecture specific part of ISO/IEC 23360.

22.2.4.4.2. Package Dependencies Attributes

The package dependency attributes are stored in the RPMTAG_REQUIREFLAGS, RPMTAG_PROVIDEFLAGS and RPMTAG_OBSOLETEFLAGS index records. The following values may be used.

Table 22-14. Package Dependency Attributes

NameValueMeaning
RPMSENSE_LESS0x02 
RPMSENSE_GREATER0x04 
RPMSENSE_EQUAL0x08 
RPMSENSE_PREREQ0x40 
RPMSENSE_INTERP0x100 
RPMSENSE_SCRIPT_PRE0x200 
RPMSENSE_SCRIPT_POST0x400 
RPMSENSE_SCRIPT_PREUN0x800 
RPMSENSE_SCRIPT_POSTUN0x1000 
RPMSENSE_RPMLIB0x1000000 

22.2.4.5. Other Information

The following tag values are also found in the Header section.

Table 22-15. Other Tag Values

NameTag ValueTypeCountStatus
RPMTAG_BUILDTIME1006INT321Informational
RPMTAG_BUILDHOST1007STRING1Informational
RPMTAG_FILEVERIFYFLAGS1045INT32 Optional
RPMTAG_CHANGELOGTIME1080INT32 Optional
RPMTAG_CHANGELOGNAME1081STRING_ARRAY Optional
RPMTAG_CHANGELOGTEXT1082STRING_ARRAY Optional
RPMTAG_OPTFLAGS1122STRING1Informational
RPMTAG_RHNPLATFORM1131STRING1Deprecated
RPMTAG_PLATFORM1132STRING1Informational

RPMTAG_BUILDTIME

This tag specifies the time as seconds since the epoch at which the package was built.

RPMTAG_BUILDHOST

This tag specifies the hostname of the system on which which the package was built.

RPMTAG_FILEVERIFYFLAGS

This tag specifies the bit(s) to control how files are to be verified after install, specifying which checks should be performed.

RPMTAG_CHANGELOGTIME

This tag specifies the Unix time in seconds since the epoch associated with each entry in the Changelog file.

RPMTAG_CHANGELOGNAME

This tag specifies the name of who made a change to this package

RPMTAG_CHANGELOGTEXT

This tag specifies the changes asssociated with a changelog entry.

RPMTAG_OPTFLAGS

This tag indicates additional flags which may have been passed to the compiler when building this package.

RPMTAG_RHNPLATFORM

This tag contains an opaque string whose contents are undefined.

RPMTAG_PLATFORM

This tag contains an opaque string whose contents are undefined.

22.2.5. Payload Section

The Payload section contains a compressed cpio archive. The format of this section is defined by RFC 1952: GZIP File Format Specification.

When uncompressed, the cpio archive contains a sequence of records for each file. Each record contains a CPIO Header, Filename, Padding, and File Data.

Table 22-16. CPIO File Format

CPIO HeaderHeader structure as defined below.
FilenameNUL terminated ASCII string containing the name of the file.
Padding0-3 bytes as needed to align the file stream to a 4 byte boundary.
File dataThe contents of the file.
Padding0-3 bytes as needed to align the file stream to a 4 byte boundary.

The CPIO Header uses the following header structure (sometimes referred to as "new ASCII" or "SVR4 cpio"). All numbers are stored as ASCII representations of their hexadecimal value with leading zeros as needed to fill the field. With the exception of c_namesize and the corresponding name string, and c_checksum, all information contained in the CPIO Header is also represented in the Header Section. The values in the CPIO Header shall match the values contained in the Header Section.

struct {
        char    c_magic[6];
        char    c_ino[8];
        char    c_mode[8];
        char    c_uid[8];
        char    c_gid[8];
        char    c_nlink[8];
        char    c_mtime[8];
        char    c_filesize[8];
        char    c_devmajor[8];
        char    c_devminor[8];
        char    c_rdevmajor[8];
        char    c_rdevminor[8];
        char    c_namesize[8];
        char    c_checksum[8];
        };

c_magic 

Value identifying this cpio format. This value shall be "070701".

c_ino 

This field contains the inode number from the filesystem from which the file was read. This field is ignored when installing a package. This field shall match the corresponding value in the RPMTAG_FILEINODES index in the Header section.

c_mode 

Permission bits of the file. This is an ascii representation of the hexadecimal number representing the bit as defined for the st_mode field of the stat structure defined for the stat function. This field shall match the corresponding value in the RPMTAG_FILEMODES index in the Header section.

c_uid 

Value identifying this owner of this file. This value matches the uid value of the corresponding user in the RPMTAG_FILEUSERNAME as found on the system where this package was built. The username specified in RPMTAG_FILEUSERNAME should take precedence when installing the package.

c_gid 

Value identifying this group of this file. This value matches the gid value of the corresponding user in the RPMTAG_FILEGROUPNAME as found on the system where this package was built. The groupname specified in RPMTAG_FILEGROUPNAME should take precedence when installing the package.

c_nlink 

Value identifying the number of links associated with this file. If the value is greater than 1, then this filename will be linked to 1 or more files in this archive that has a matching value for the c_ino, c_devmajor and c_devminor fields.

c_mtime 

Value identifying the modification time of the file when it was read. This field shall match the corresponding value in the RPMTAG_FILEMTIMES index in the Header section.

c_filesize 

Value identifying the size of the file. This field shall match the corresponding value in the RPMTAG_FILESIZES index in the Header section.

c_devmajor 

The major number of the device containing the file system from which the file was read. With the exception of processing files with c_nlink >1, this field is ignored when installing a package. This field shall match the corresponding value in the RPMTAG_FILEDEVICES index in the Header section.

c_devminor 

The minor number of the device containing the file system from which the file was read. With the exception of processing files with c_nlink >1, this field is ignored when installing a package. This field shall match the corresponding value in the RPMTAG_FILEDEVICES index in the Header section.

c_rdevmajor 

The major number of the raw device containing the file system from which the file was read. This field is ignored when installing a package. This field shall match the corresponding value in the RPMTAG_RDEVS index in the Header section.

c_rdevminor 

The minor number of the raw device containing the file system from which the file was read. This field is ignored when installing a package. This field shall match the corresponding value in the RPMTAG_RDEVS index in the Header section.

c_namesize 

Value identifying the length of the filename, which is located immediately following the CPIO Header structure.

c_checksum 

Value containing the CRC checksum of the file data. This field is not used, and shall contain the value "00000000". This field is ignored when installing a package.

A record with the filename "TRAILER!!!" indicates the last record in the archive.