rpm
5.2.1
|
![]() |
Files | |
file | formats.c |
file | package.c |
file | rpmlib.h |
In Memoriam: Steve Taylor stayl was here, now he's not. or@r edhat .com | |
file | hdrfmt.c |
file | header.c |
file | header_internal.c |
file | header_internal.h |
file | rpmtag.h |
Data Structures | |
struct | sprintfTag_s |
struct | sprintfToken_s |
struct | headerSprintfArgs_s |
struct | headerToken_s |
The Header data structure. More... | |
union | rpmDataType_u |
struct | _HE_s |
Typedefs | |
typedef struct sprintfTag_s * | sprintfTag |
typedef struct sprintfToken_s * | sprintfToken |
typedef struct headerSprintfArgs_s * | headerSprintfArgs |
typedef struct entryInfo_s * | entryInfo |
Description of tag data. | |
typedef struct indexEntry_s * | indexEntry |
A single tag from a Header. | |
typedef const char * | errmsg_t |
typedef struct headerToken_s * | Header |
typedef enum rpmTagType_e | rpmTagType |
typedef union rpmDataType_u | rpmTagData |
typedef rpmuint32_t | rpmTagCount |
typedef struct _HE_s * | HE_t |
typedef enum rpmSubTagType_e | rpmSubTagType |
typedef enum rpmTagReturnType_e | rpmTagReturnType |
Identify how to return the header data type. | |
typedef struct headerIterator_s * | HeaderIterator |
typedef struct headerTagIndices_s * | headerTagIndices |
typedef struct headerSprintfExtension_s * | headerSprintfExtension |
typedef enum rpmTag_e | rpmTag |
typedef enum rpmSigTag_e | rpmSigTag |
Enumerations | |
enum | rpmTagType_e { RPM_UINT8_TYPE = 2, RPM_UINT16_TYPE = 3, RPM_UINT32_TYPE = 4, RPM_UINT64_TYPE = 5, RPM_STRING_TYPE = 6, RPM_BIN_TYPE = 7, RPM_STRING_ARRAY_TYPE = 8, RPM_I18NSTRING_TYPE = 9 } |
The basic types of data in tags from headers. More... | |
enum | rpmSubTagType_e { RPM_REGION_TYPE = -10, RPM_BIN_ARRAY_TYPE = -11, RPM_XREF_TYPE = -12 } |
enum | rpmTagReturnType_e { RPM_ANY_RETURN_TYPE = 0, RPM_SCALAR_RETURN_TYPE = 0x00010000, RPM_ARRAY_RETURN_TYPE = 0x00020000, RPM_MAPPING_RETURN_TYPE = 0x00040000, RPM_PROBE_RETURN_TYPE = 0x00100000, RPM_TREE_RETURN_TYPE = 0x00200000, RPM_OPENPGP_RETURN_TYPE = 0x00400000, RPM_X509_RETURN_TYPE = 0x00800000, RPM_ASN1_RETURN_TYPE = 0x01000000, RPM_OPAQUE_RETURN_TYPE = 0x10000000, RPM_MASK_RETURN_TYPE = 0xffff0000 } |
Identify how to return the header data type. More... | |
enum | rpmTag_e { RPMTAG_HEADERIMAGE = 61, RPMTAG_HEADERSIGNATURES = 62, RPMTAG_HEADERIMMUTABLE = 63, RPMTAG_HEADERREGIONS = 64, RPMTAG_HEADERI18NTABLE = 100, RPMTAG_SIG_BASE = 256, RPMTAG_SIGSIZE = RPMTAG_SIG_BASE+1, RPMTAG_SIGLEMD5_1 = RPMTAG_SIG_BASE+2, RPMTAG_SIGPGP = RPMTAG_SIG_BASE+3, RPMTAG_SIGLEMD5_2 = RPMTAG_SIG_BASE+4, RPMTAG_SIGMD5 = RPMTAG_SIG_BASE+5, RPMTAG_SIGGPG = RPMTAG_SIG_BASE+6, RPMTAG_SIGPGP5 = RPMTAG_SIG_BASE+7, RPMTAG_BADSHA1_1 = RPMTAG_SIG_BASE+8, RPMTAG_BADSHA1_2 = RPMTAG_SIG_BASE+9, RPMTAG_PUBKEYS = RPMTAG_SIG_BASE+10, RPMTAG_DSAHEADER = RPMTAG_SIG_BASE+11, RPMTAG_RSAHEADER = RPMTAG_SIG_BASE+12, RPMTAG_SHA1HEADER = RPMTAG_SIG_BASE+13, RPMTAG_NAME = 1000, RPMTAG_VERSION = 1001, RPMTAG_RELEASE = 1002, RPMTAG_EPOCH = 1003, RPMTAG_SUMMARY = 1004, RPMTAG_DESCRIPTION = 1005, RPMTAG_BUILDTIME = 1006, RPMTAG_BUILDHOST = 1007, RPMTAG_INSTALLTIME = 1008, RPMTAG_SIZE = 1009, RPMTAG_DISTRIBUTION = 1010, RPMTAG_VENDOR = 1011, RPMTAG_GIF = 1012, RPMTAG_XPM = 1013, RPMTAG_LICENSE = 1014, RPMTAG_PACKAGER = 1015, RPMTAG_GROUP = 1016, RPMTAG_CHANGELOG = 1017, RPMTAG_SOURCE = 1018, RPMTAG_PATCH = 1019, RPMTAG_URL = 1020, RPMTAG_OS = 1021, RPMTAG_ARCH = 1022, RPMTAG_PREIN = 1023, RPMTAG_POSTIN = 1024, RPMTAG_PREUN = 1025, RPMTAG_POSTUN = 1026, RPMTAG_OLDFILENAMES = 1027, RPMTAG_FILESIZES = 1028, RPMTAG_FILESTATES = 1029, RPMTAG_FILEMODES = 1030, RPMTAG_FILEUIDS = 1031, RPMTAG_FILEGIDS = 1032, RPMTAG_FILERDEVS = 1033, RPMTAG_FILEMTIMES = 1034, RPMTAG_FILEDIGESTS = 1035, RPMTAG_FILELINKTOS = 1036, RPMTAG_FILEFLAGS = 1037, RPMTAG_ROOT = 1038, RPMTAG_FILEUSERNAME = 1039, RPMTAG_FILEGROUPNAME = 1040, RPMTAG_EXCLUDE = 1041, RPMTAG_EXCLUSIVE = 1042, RPMTAG_ICON = 1043, RPMTAG_SOURCERPM = 1044, RPMTAG_FILEVERIFYFLAGS = 1045, RPMTAG_ARCHIVESIZE = 1046, RPMTAG_PROVIDENAME = 1047, RPMTAG_REQUIREFLAGS = 1048, RPMTAG_REQUIRENAME = 1049, RPMTAG_REQUIREVERSION = 1050, RPMTAG_NOSOURCE = 1051, RPMTAG_NOPATCH = 1052, RPMTAG_CONFLICTFLAGS = 1053, RPMTAG_CONFLICTNAME = 1054, RPMTAG_CONFLICTVERSION = 1055, RPMTAG_DEFAULTPREFIX = 1056, RPMTAG_BUILDROOT = 1057, RPMTAG_INSTALLPREFIX = 1058, RPMTAG_EXCLUDEARCH = 1059, RPMTAG_EXCLUDEOS = 1060, RPMTAG_EXCLUSIVEARCH = 1061, RPMTAG_EXCLUSIVEOS = 1062, RPMTAG_AUTOREQPROV = 1063, RPMTAG_RPMVERSION = 1064, RPMTAG_TRIGGERSCRIPTS = 1065, RPMTAG_TRIGGERNAME = 1066, RPMTAG_TRIGGERVERSION = 1067, RPMTAG_TRIGGERFLAGS = 1068, RPMTAG_TRIGGERINDEX = 1069, RPMTAG_VERIFYSCRIPT = 1079, RPMTAG_CHANGELOGTIME = 1080, RPMTAG_CHANGELOGNAME = 1081, RPMTAG_CHANGELOGTEXT = 1082, RPMTAG_BROKENMD5 = 1083, RPMTAG_PREREQ = 1084, RPMTAG_PREINPROG = 1085, RPMTAG_POSTINPROG = 1086, RPMTAG_PREUNPROG = 1087, RPMTAG_POSTUNPROG = 1088, RPMTAG_BUILDARCHS = 1089, RPMTAG_OBSOLETENAME = 1090, RPMTAG_VERIFYSCRIPTPROG = 1091, RPMTAG_TRIGGERSCRIPTPROG = 1092, RPMTAG_DOCDIR = 1093, RPMTAG_COOKIE = 1094, RPMTAG_FILEDEVICES = 1095, RPMTAG_FILEINODES = 1096, RPMTAG_FILELANGS = 1097, RPMTAG_PREFIXES = 1098, RPMTAG_INSTPREFIXES = 1099, RPMTAG_TRIGGERIN = 1100, RPMTAG_TRIGGERUN = 1101, RPMTAG_TRIGGERPOSTUN = 1102, RPMTAG_AUTOREQ = 1103, RPMTAG_AUTOPROV = 1104, RPMTAG_CAPABILITY = 1105, RPMTAG_SOURCEPACKAGE = 1106, RPMTAG_OLDORIGFILENAMES = 1107, RPMTAG_BUILDPREREQ = 1108, RPMTAG_BUILDREQUIRES = 1109, RPMTAG_BUILDCONFLICTS = 1110, RPMTAG_BUILDMACROS = 1111, RPMTAG_PROVIDEFLAGS = 1112, RPMTAG_PROVIDEVERSION = 1113, RPMTAG_OBSOLETEFLAGS = 1114, RPMTAG_OBSOLETEVERSION = 1115, RPMTAG_DIRINDEXES = 1116, RPMTAG_BASENAMES = 1117, RPMTAG_DIRNAMES = 1118, RPMTAG_ORIGDIRINDEXES = 1119, RPMTAG_ORIGBASENAMES = 1120, RPMTAG_ORIGDIRNAMES = 1121, RPMTAG_OPTFLAGS = 1122, RPMTAG_DISTURL = 1123, RPMTAG_PAYLOADFORMAT = 1124, RPMTAG_PAYLOADCOMPRESSOR = 1125, RPMTAG_PAYLOADFLAGS = 1126, RPMTAG_INSTALLCOLOR = 1127, RPMTAG_INSTALLTID = 1128, RPMTAG_REMOVETID = 1129, RPMTAG_SHA1RHN = 1130, RPMTAG_RHNPLATFORM = 1131, RPMTAG_PLATFORM = 1132, RPMTAG_PATCHESNAME = 1133, RPMTAG_PATCHESFLAGS = 1134, RPMTAG_PATCHESVERSION = 1135, RPMTAG_CACHECTIME = 1136, RPMTAG_CACHEPKGPATH = 1137, RPMTAG_CACHEPKGSIZE = 1138, RPMTAG_CACHEPKGMTIME = 1139, RPMTAG_FILECOLORS = 1140, RPMTAG_FILECLASS = 1141, RPMTAG_CLASSDICT = 1142, RPMTAG_FILEDEPENDSX = 1143, RPMTAG_FILEDEPENDSN = 1144, RPMTAG_DEPENDSDICT = 1145, RPMTAG_SOURCEPKGID = 1146, RPMTAG_FILECONTEXTS = 1147, RPMTAG_FSCONTEXTS = 1148, RPMTAG_RECONTEXTS = 1149, RPMTAG_POLICIES = 1150, RPMTAG_PRETRANS = 1151, RPMTAG_POSTTRANS = 1152, RPMTAG_PRETRANSPROG = 1153, RPMTAG_POSTTRANSPROG = 1154, RPMTAG_DISTTAG = 1155, RPMTAG_SUGGESTSNAME = 1156, RPMTAG_SUGGESTSVERSION = 1157, RPMTAG_SUGGESTSFLAGS = 1158, RPMTAG_ENHANCESNAME = 1159, RPMTAG_ENHANCESVERSION = 1160, RPMTAG_ENHANCESFLAGS = 1161, RPMTAG_PRIORITY = 1162, RPMTAG_CVSID = 1163, RPMTAG_BLINKPKGID = 1164, RPMTAG_BLINKHDRID = 1165, RPMTAG_BLINKNEVRA = 1166, RPMTAG_FLINKPKGID = 1167, RPMTAG_FLINKHDRID = 1168, RPMTAG_FLINKNEVRA = 1169, RPMTAG_PACKAGEORIGIN = 1170, RPMTAG_TRIGGERPREIN = 1171, RPMTAG_BUILDSUGGESTS = 1172, RPMTAG_BUILDENHANCES = 1173, RPMTAG_SCRIPTSTATES = 1174, RPMTAG_SCRIPTMETRICS = 1175, RPMTAG_BUILDCPUCLOCK = 1176, RPMTAG_FILEDIGESTALGOS = 1177, RPMTAG_VARIANTS = 1178, RPMTAG_XMAJOR = 1179, RPMTAG_XMINOR = 1180, RPMTAG_REPOTAG = 1181, RPMTAG_KEYWORDS = 1182, RPMTAG_BUILDPLATFORMS = 1183, RPMTAG_PACKAGECOLOR = 1184, RPMTAG_PACKAGEPREFCOLOR = 1185, RPMTAG_XATTRSDICT = 1186, RPMTAG_FILEXATTRSX = 1187, RPMTAG_DEPATTRSDICT = 1188, RPMTAG_CONFLICTATTRSX = 1189, RPMTAG_OBSOLETEATTRSX = 1190, RPMTAG_PROVIDEATTRSX = 1191, RPMTAG_REQUIREATTRSX = 1192, RPMTAG_BUILDPROVIDES = 1193, RPMTAG_BUILDOBSOLETES = 1194, RPMTAG_DBINSTANCE = 1195, RPMTAG_NVRA = 1196, RPMTAG_FILEPATHS = 1197, RPMTAG_ORIGPATHS = 1198, RPMTAG_RPMLIBVERSION = 1199, RPMTAG_RPMLIBTIMESTAMP = 1200, RPMTAG_RPMLIBVENDOR = 1201, RPMTAG_CLASS = 1202, RPMTAG_TRACK = 1203, RPMTAG_TRACKPROG = 1204, RPMTAG_SANITYCHECK = 1205, RPMTAG_SANITYCHECKPROG = 1206, RPMTAG_FILESTAT = 1207, RPMTAG_STAT = 1208, RPMTAG_ORIGINTID = 1209, RPMTAG_ORIGINTIME = 1210, RPMTAG_HEADERSTARTOFF = 1211, RPMTAG_HEADERENDOFF = 1212, RPMTAG_PACKAGETIME = 1213, RPMTAG_PACKAGESIZE = 1214, RPMTAG_PACKAGEDIGEST = 1215, RPMTAG_PACKAGESTAT = 1216, RPMTAG_PACKAGEBASEURL = 1217, RPMTAG_DISTEPOCH = 1218, RPMTAG_FILEDIGESTALGO = 5011, RPMTAG_FIRSTFREE_TAG, RPMTAG_PACKAGETRANSFLAGS = 0x4efaafd9, RPMTAG_PACKAGEDEPFLAGS = 0x748a8314, RPMTAG_BUILDPREPPROG = 0x4ba37c9e, RPMTAG_BUILDPREP = 0x799c0b4d, RPMTAG_BUILDBUILDPROG = 0x6fb46014, RPMTAG_BUILDBUILD = 0x5bae1a5a, RPMTAG_BUILDINSTALLPROG = 0x70d4ab6f, RPMTAG_BUILDINSTALL = 0x567f5983, RPMTAG_BUILDCHECKPROG = 0x488a60ce, RPMTAG_BUILDCHECK = 0x7f3b97b5, RPMTAG_BUILDCLEANPROG = 0x42c93d41, RPMTAG_BUILDCLEAN = 0x566042bf, RPMTAG_LASTARBITRARY_TAG = 0x80000000 } |
Tags identify data in package headers. More... | |
Functions | |
static void | headerSort (Header h) |
Sort tags in header. | |
static void | headerUnsort (Header h) |
Restore tags in header to original ordering. | |
static unsigned char * | tagSwab (unsigned char *t, const HE_t he, size_t nb) |
Swab rpmuint64_t/rpmuint32_t/rpmuint16_t arrays within header region. | |
static rpmuint32_t | regionSwab (indexEntry entry, rpmuint32_t il, rpmuint32_t dl, entryInfo pe, unsigned char *dataStart, const unsigned char *dataEnd, rpmint32_t regionid) |
Swab rpmuint64_t/rpmuint32_t/rpmuint16_t arrays within header region. | |
static int | headerRemoveEntry (Header h, rpmTag tag) |
Delete tag in header. | |
static int | copyEntry (const indexEntry entry, HE_t he, int minMem) |
Retrieve data from header entry. | |
static int | headerAddEntry (Header h, HE_t he) |
Add tag to header. | |
static int | headerAppendEntry (Header h, HE_t he) |
Append element to tag array in header. | |
static int | headerAddOrAppendEntry (Header h, HE_t he) |
Add or append element to tag array in header. | |
static int | headerModifyEntry (Header h, HE_t he) |
Modify tag in header. | |
static int | headerUsageCount (Header h) |
Return header reference count. | |
static rpmRC | rpmWriteHeader (FD_t fd, Header h, const char **msg) |
Write (with unload) header to file handle. | |
char * | headerSprintf (Header h, const char *fmt, headerTagTableEntry tags, headerSprintfExtension exts, errmsg_t *errmsg) |
Return formatted output string from header tags. | |
int | headerGet (Header h, HE_t he, unsigned int flags) |
Retrieve extension or tag value from a header. | |
int | headerPut (Header h, HE_t he, unsigned int flags) |
Add or append tag container to header. | |
int | headerDel (Header h, HE_t he, unsigned int flags) |
Remove tag container from header. | |
int | headerMod (Header h, HE_t he, unsigned int flags) |
Modify tag container in header. | |
HeaderIterator | headerFini (HeaderIterator hi) |
Destroy header tag container iterator. | |
HeaderIterator | headerInit (Header h) |
Create header tag iterator. | |
int | headerNext (HeaderIterator hi, HE_t he, unsigned int flags) |
Return next tag from header. | |
Header | headerLink (Header h) |
Reference a header instance. | |
Header | headerUnlink (Header h) |
Dereference a header instance. | |
Header | headerFree (Header h) |
Dereference a header instance. | |
Header | headerNew (void) |
Create new (empty) header instance. | |
size_t | headerSizeof (Header h) |
Return size of on-disk header representation in bytes. | |
void * | headerUnload (Header h, size_t *lenp) |
headerUnload. | |
Header | headerReload (Header h, int tag) |
Convert header to on-disk representation, and then reload. | |
Header | headerCopy (Header h) |
Duplicate a header. | |
Header | headerLoad (void *uh) |
Convert header to in-memory representation. | |
Header | headerCopyLoad (const void *uh) |
Make a copy and convert header to in-memory representation. | |
int | headerIsEntry (Header h, rpmTag tag) |
Check if tag is in header. | |
int | headerAddI18NString (Header h, rpmTag tag, const char *string, const char *lang) |
Add locale specific tag to header. | |
void | headerCopyTags (Header headerFrom, Header headerTo, rpmTag *tagstocopy) |
Duplicate tag values from one header into another. | |
int | headerGetMagic (Header h, unsigned char **magicp, size_t *nmagicp) |
Return header magic. | |
int | headerSetMagic (Header h, unsigned char *magic, size_t nmagic) |
Store header magic. | |
const char * | headerGetOrigin (Header h) |
Return header origin (e.g path or URL). | |
int | headerSetOrigin (Header h, const char *origin) |
Store header origin (e.g path or URL). | |
const char * | headerGetBaseURL (Header h) |
Return header base URL (e.g path or URL). | |
int | headerSetBaseURL (Header h, const char *baseurl) |
Store header base URL (e.g path or URL). | |
struct stat * | headerGetStatbuf (Header h) |
Return header stat(2) buffer (of origin *.rpm file). | |
int | headerSetStatbuf (Header h, struct stat *st) |
Copy into header stat(2) buffer (of origin *.rpm file). | |
const char * | headerGetDigest (Header h) |
Return digest of origin *.rpm file. | |
int | headerSetDigest (Header h, const char *digest) |
Store digest of origin *.rpm file. | |
void * | headerGetRpmdb (Header h) |
Return rpmdb pointer. | |
void * | headerSetRpmdb (Header h, void *rpmdb) |
Store rpmdb pointer. | |
rpmuint32_t | headerGetInstance (Header h) |
Return header instance (if from rpmdb). | |
rpmuint32_t | headerSetInstance (Header h, rpmuint32_t instance) |
Store header instance (e.g path or URL). | |
rpmuint32_t | headerGetStartOff (Header h) |
Return header starting byte offset. | |
rpmuint32_t | headerSetStartOff (Header h, rpmuint32_t startoff) |
Store header starting byte offset. | |
rpmuint32_t | headerGetEndOff (Header h) |
Return header ending byte offset. | |
rpmuint32_t | headerSetEndOff (Header h, rpmuint32_t endoff) |
Store header ending byte offset. | |
void * | headerGetStats (Header h, int opx) |
Return header stats accumulator structure. | |
int | headerNEVRA (Header h, const char **np, const char **ep, const char **vp, const char **rp, const char **ap) |
Return name, epoch, version, release, arch strings from header. | |
void | headerMergeLegacySigs (Header h, const Header sigh) |
Translate and merge legacy signature tags into header. | |
Header | headerRegenSigHeader (const Header h, int noArchiveSize) |
Regenerate signature header. | |
Variables | |
static unsigned char | header_magic [8] |
static int | typeSizes [16] |
Size of header data types. | |
static size_t | headerMaxbytes = (1024*1024*1024) |
Maximum no. | |
headerSprintfExtension | headerDefaultFormats |
Supported default header tag output formats. | |
headerSprintfExtension | headerCompoundFormats |
Supported default header extension/tag output formats. |
typedef struct entryInfo_s* entryInfo |
Description of tag data.
Definition at line 55 of file header_internal.h.
typedef struct headerToken_s* Header |
typedef struct headerIterator_s* HeaderIterator |
typedef struct headerSprintfArgs_s* headerSprintfArgs |
typedef struct headerSprintfExtension_s* headerSprintfExtension |
typedef struct headerTagIndices_s* headerTagIndices |
typedef struct indexEntry_s* indexEntry |
A single tag from a Header.
Definition at line 73 of file header_internal.h.
typedef enum rpmSigTag_e rpmSigTag |
typedef enum rpmSubTagType_e rpmSubTagType |
typedef rpmuint32_t rpmTagCount |
typedef union rpmDataType_u rpmTagData |
typedef enum rpmTagReturnType_e rpmTagReturnType |
Identify how to return the header data type.
typedef enum rpmTagType_e rpmTagType |
typedef struct sprintfTag_s* sprintfTag |
typedef struct sprintfToken_s* sprintfToken |
enum rpmSubTagType_e |
enum rpmTag_e |
Tags identify data in package headers.
enum rpmTagReturnType_e |
enum rpmTagType_e |
static int copyEntry | ( | const indexEntry | entry, |
HE_t | he, | ||
int | minMem | ||
) | [static] |
Retrieve data from header entry.
entry | header entry |
*he | tag container |
minMem | string pointers refer to header memory? |
Definition at line 1383 of file header.c.
References rpmDataType_u::argv, _HE_s::c, entryInfo_s::count, indexEntry_s::data, ENTRY_IS_REGION, HEADER_IMAGE, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, _HE_s::p, rpmDataType_u::ptr, indexEntry_s::rdlen, REGION_TAG_COUNT, RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, rpmDataType_u::str, _HE_s::t, entryInfo_s::tag, entryInfo_s::type, rpmDataType_u::ui32p, and xmalloc().
Referenced by headerNext(), and intGetEntry().
static int headerAddEntry | ( | Header | h, |
HE_t | he | ||
) | [static] |
Add tag to header.
Duplicate tags are okay, but only defined for iteration (with the exceptions noted below). While you are allowed to add i18n string arrays through this function, you probably don't mean to. See headerAddI18NString() instead.
h | header |
he | tag container |
< Are header entries sorted?
Definition at line 1729 of file header.c.
References _HE_s::c, entryInfo_s::count, indexEntry_s::data, headerToken_s::flags, grabData(), hdrchkData, hdrchkType, HEADERFLAG_SORTED, headerToken_s::index, INDEX_MALLOC_SIZE, headerToken_s::indexAlloced, headerToken_s::indexUsed, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, rpmDataType_u::ptr, _HE_s::t, entryInfo_s::tag, _HE_s::tag, entryInfo_s::type, and xrealloc().
Referenced by headerAddI18NString(), headerAddOrAppendEntry(), headerCopy(), and headerPut().
int headerAddI18NString | ( | Header | h, |
rpmTag | tag, | ||
const char * | string, | ||
const char * | lang | ||
) |
Add locale specific tag to header.
A NULL lang is interpreted as the C locale. Here are the rules:
* - If the tag isn't in the header, it's added with the passed string * as new value. * - If the tag occurs multiple times in entry, which tag is affected * by the operation is undefined. * - If the tag is in the header w/ this language, the entry is * *replaced* (like headerModifyEntry()). *
This function is intended to just "do the right thing". If you need more fine grained control use headerAddEntry() and headerModifyEntry().
h | header |
tag | tag |
string | tag value |
lang | locale |
Definition at line 1840 of file header.c.
References _free(), alloca(), rpmDataType_u::argv, _HE_s::c, entryInfo_s::count, indexEntry_s::data, ENTRY_IN_REGION, findEntry(), HEADER_I18NTABLE, headerAddEntry(), indexEntry_s::info, lang, indexEntry_s::length, entryInfo_s::offset, _HE_s::p, rpmDataType_u::ptr, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, _HE_s::t, _HE_s::tag, xmalloc(), and xrealloc().
Referenced by handlePreambleTag(), parseDescription(), and rpmcliImportPubkey().
static int headerAddOrAppendEntry | ( | Header | h, |
HE_t | he | ||
) | [static] |
Add or append element to tag array in header.
h | header |
he | tag container |
Definition at line 1832 of file header.c.
References findEntry(), headerAddEntry(), headerAppendEntry(), _HE_s::t, and _HE_s::tag.
Referenced by headerPut().
static int headerAppendEntry | ( | Header | h, |
HE_t | he | ||
) | [static] |
Append element to tag array in header.
Appends item p to entry w/ tag and type as passed. Won't work on RPM_STRING_TYPE.
h | header |
he | tag container |
Definition at line 1783 of file header.c.
References _HE_s::c, copyData(), entryInfo_s::count, indexEntry_s::data, dataLength(), ENTRY_IN_REGION, findEntry(), indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, _HE_s::p, rpmDataType_u::ptr, RPM_I18NSTRING_TYPE, RPM_STRING_TYPE, _HE_s::t, _HE_s::tag, xmalloc(), and xrealloc().
Referenced by headerAddOrAppendEntry().
Header headerCopy | ( | Header | h | ) |
Duplicate a header.
h | header |
Definition at line 2101 of file header.c.
References _free(), alloca(), HEADER_IMAGE, headerAddEntry(), headerFini(), headerInit(), headerNew(), headerNext(), headerReload(), _HE_s::p, and rpmDataType_u::ptr.
Referenced by hdrUnload(), and rpmdbRebuild().
Header headerCopyLoad | ( | const void * | uh | ) |
Make a copy and convert header to in-memory representation.
uh | on-disk header blob (i.e. with offsets) |
Definition at line 1362 of file header.c.
References headerMap().
Referenced by rpmmiNext(), rpmpsmStage(), and rpmReSign().
void headerCopyTags | ( | Header | headerFrom, |
Header | headerTo, | ||
rpmTag * | tagstocopy | ||
) |
Duplicate tag values from one header into another.
headerFrom | source header |
headerTo | destination header |
tagstocopy | array of tags that are copied |
Definition at line 2118 of file header.c.
References _free(), alloca(), headerGet(), headerIsEntry(), headerPut(), _HE_s::p, rpmDataType_u::ptr, and _HE_s::tag.
Referenced by packageBinaries(), and parsePreamble().
Remove tag container from header.
h | header |
he | tag container |
flags | (unused) |
Definition at line 2220 of file header.c.
References headerRemoveEntry(), and _HE_s::tag.
Referenced by addFileToTag(), compressFilelist(), parseDescription(), rpmdbAdd(), rpmfcGenerateDepends(), and rpmReSign().
Destroy header tag container iterator.
hi | header tag container iterator |
Definition at line 2041 of file header.c.
References _free(), headerIterator_s::h, and headerFree().
Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaFini(), initSourceHeader(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures().
Header headerFree | ( | Header | h | ) |
Dereference a header instance.
h | header |
Referenced by ckHeader(), delTE(), freeItem(), freePackage(), freeSpec(), hdr_dealloc(), hdrLoad(), hdrUnload(), headerFini(), headerReload(), headerSprintf(), IDTXfree(), IDTXglob(), makeHDRSignature(), miFreeHeader(), rdSignature(), readFile(), repoReadHeader(), repoWriteMetadataDocs(), rpmcliImportPubkey(), rpmcliInstall(), rpmdb_subscript(), rpmdbRebuild(), rpmdbRemove(), rpmdsFini(), rpmfiFini(), rpmfiNew(), rpmfiSetHeader(), rpmgiFini(), rpmgiLoadReadHeader(), rpmgiNext(), rpmgiReadHeader(), rpmgiWalkReadHeader(), rpmInstallSourcePackage(), rpmmiNext(), rpmpsmStage(), rpmReadHeader(), rpmReadHeaders(), rpmReadPackageFile(), rpmReSign(), rpmRollback(), rpmSingleHeaderFromFD(), rpmteSetHeader(), rpmts_HdrFromFdno(), rpmtsEraseDebuginfo(), rpmtsNotify(), rpmtsRun(), rpmtsSolve(), rpmVerifySignatures(), and writeRPM().
Retrieve extension or tag value from a header.
h | header |
he | tag container |
flags | tag retrieval flags |
Definition at line 2138 of file header.c.
References _hdr_debug, _HE_s::c, _HE_s::freeData, headerCompoundFormats, HEADERGET_NOEXTENSION, headerGetStats(), intGetEntry(), name, _HE_s::p, rpmDataType_u::ptr, rpmheRealloc(), rpmswEnter(), rpmswExit(), _HE_s::t, _HE_s::tag, tagName(), and xstrcasecmp().
Referenced by addFileToTag(), addReqProv(), addTE(), checkPackageSet(), compressFilelist(), debevrTag(), debmd5sumsTag(), ensureOlder(), FDGsqlTag(), FDGxmlTag(), FDGyamlTag(), fiIntersect(), findErases(), formatValue(), fssizesTag(), ftsCacheUpdate(), getSignid(), handleInstInstalledFiles(), handleOneTrigger(), handlePreambleTag(), handleRmvdInstalledFiles(), hCopyTag(), hdr_subscript(), headerCopyTags(), headerMacrosLoad(), headerMacrosUnload(), headerNEVRA(), hGetColor(), hLoadTID(), i18nTag(), IDTXglob(), IDTXload(), instprefixTag(), isMemberInEntry(), localeTag(), lookupPackage(), main(), makeHDRSignature(), markReplacedFiles(), mireSkip(), needswhatTag(), nwlookupTag(), packageBinaries(), parseDescription(), parsePreamble(), parseSpec(), pkgbaseurlTag(), pkgoriginTag(), pkgUnpackagedSubdirs(), PRCOsqlTag(), PRCOxmlTag(), PRCOyamlTag(), printNewSpecfile(), processBinaryFiles(), processPackageFiles(), providePackageNVR(), rdSignature(), readFile(), relocateFileList(), rpmcliInstall(), rpmdbAdd(), rpmdbExportInfo(), rpmdbFindByFile(), rpmdbFindFpList(), rpmdbRemove(), rpmdsNew(), rpmdsNVRMatchesDep(), rpmdsThis(), rpmfcGenerateScriptletDeps(), rpmfiBuildFNames(), rpmfiNew(), rpmHeadersIdentical(), rpmInstallSourcePackage(), rpmpsmStage(), rpmReadPackageFile(), rpmReSign(), rpmteChain(), rpmteNew(), rpmtsAddInstallElement(), rpmtsAddUpgrades(), rpmtsCallback(), rpmtsEraseDebuginfo(), rpmtsFindPubkey(), rpmtsSolve(), rpmVerifySignatures(), rpmVersionCompare(), runImmedTriggers(), runInstScript(), runScript(), singleSprintf(), stashSt(), tag2uuidv1(), tag2uuidv5(), timeCheck(), triggercondsTag(), triggertypeTag(), whatneedsTag(), wnlookupTag(), and writeRPM().
const char* headerGetBaseURL | ( | Header | h | ) |
Return header base URL (e.g path or URL).
h | header |
Definition at line 1161 of file header.c.
References headerToken_s::baseurl.
Referenced by pkgbaseurlTag().
const char* headerGetDigest | ( | Header | h | ) |
Return digest of origin *.rpm file.
h | header |
Definition at line 1191 of file header.c.
References headerToken_s::digest.
Referenced by pkgdigestTag(), and populateInstallHeader().
Return header ending byte offset.
h | header |
Definition at line 1247 of file header.c.
References headerToken_s::endoff.
Referenced by headerendoffTag().
Return header instance (if from rpmdb).
h | header |
Definition at line 1223 of file header.c.
References headerToken_s::instance.
Referenced by dbinstanceTag(), FDGsqlTag(), PRCOsqlTag(), rpmgiNext(), rpmpsmStage(), and verifyDependencies().
int headerGetMagic | ( | Header | h, |
unsigned char ** | magicp, | ||
size_t * | nmagicp | ||
) |
Return header magic.
h | header |
*magicp | magic array |
*nmagicp | no. bytes of magic |
Definition at line 1125 of file header.c.
References header_magic, and headerToken_s::magic.
Referenced by headerCheck(), makeHDRSignature(), rdSignature(), readFile(), rpmReadHeader(), rpmReadPackageFile(), and rpmWriteHeader().
const char* headerGetOrigin | ( | Header | h | ) |
Return header origin (e.g path or URL).
h | header |
Definition at line 1147 of file header.c.
References headerToken_s::origin.
Referenced by hdrGetOrigin(), IDTXglob(), pkgoriginTag(), and populateInstallHeader().
void* headerGetRpmdb | ( | Header | h | ) |
Return rpmdb pointer.
h | header |
Definition at line 1207 of file header.c.
References headerToken_s::rpmdb.
Referenced by nwlookupTag(), and wnlookupTag().
Return header starting byte offset.
h | header |
Definition at line 1235 of file header.c.
References headerToken_s::startoff.
Referenced by headerstartoffTag().
struct stat* headerGetStatbuf | ( | Header | h | ) | [read] |
Return header stat(2) buffer (of origin *.rpm file).
h | header |
Definition at line 1177 of file header.c.
References headerToken_s::sb.
Referenced by pkgmtimeTag(), pkgsizeTag(), populateInstallHeader(), and rpmReadHeader().
void* headerGetStats | ( | Header | h, |
int | opx | ||
) |
Return header stats accumulator structure.
h | header |
opx | per-header accumulator index (aka rpmtsOpX) |
Definition at line 86 of file header.c.
References _hdr_stats, headerToken_s::h_getops, and headerToken_s::h_loadops.
Referenced by headerGet(), headerLoad(), headerNext(), headerScrub(), and headerUnload().
Create header tag iterator.
h | header |
Definition at line 2051 of file header.c.
References headerIterator_s::h, headerLink(), headerSort(), headerIterator_s::next_index, and xmalloc().
Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaInit(), initSourceHeader(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures().
int headerIsEntry | ( | Header | h, |
rpmTag | tag | ||
) |
Check if tag is in header.
h | header |
tag | tag |
Definition at line 1368 of file header.c.
References findEntry().
Referenced by addTE(), checkForRequired(), compressFilelist(), fillOutMainPackage(), headerCopyTags(), headerMergeLegacySigs(), headerNEVRA(), headerRegenSigHeader(), IDTXglob(), initSourceHeader(), makeHDRSignature(), parseScript(), parseSpec(), readFile(), relocateFileList(), rpmdbAdd(), rpmdbRebuild(), rpmfiBuildFNames(), rpmfiNew(), rpmInstallSourcePackage(), rpmmiNext(), rpmpsmStage(), rpmReadPackageFile(), rpmtsAddInstallElement(), rpmVerifySignatures(), showVerifyPackage(), singleSprintf(), unsatisfiedDepend(), and writeRPM().
Header headerLink | ( | Header | h | ) |
Reference a header instance.
h | header |
Referenced by cacheStashLatest(), hdr_Wrap(), hdrUnload(), headerInit(), headerLoad(), headerNew(), headerSprintf(), IDTXglob(), IDTXload(), rdSignature(), relocateFileList(), rpmcliInstall(), rpmdbRemove(), rpmdsDup(), rpmfiNew(), rpmfiSetHeader(), rpmgiLoadReadHeader(), rpmgiNext(), rpmgiWalkReadHeader(), rpmInstallSourcePackage(), rpmpsmStage(), rpmReadHeader(), rpmReadPackageFile(), rpmReSign(), rpmteHeader(), rpmteSetHeader(), rpmtsEraseDebuginfo(), rpmtsNotify(), rpmtsSolve(), and writeRPM().
Header headerLoad | ( | void * | uh | ) |
Convert header to in-memory representation.
uh | on-disk header blob (i.e. with offsets) |
< Are header entries sorted?
< Header came from legacy source?
< Header came from legacy source?
< Are header entries sorted?
Definition at line 940 of file header.c.
References _free(), headerToken_s::_item, alloca(), headerToken_s::baseurl, headerToken_s::blob, headerToken_s::bloblen, entryInfo_s::count, indexEntry_s::data, headerToken_s::digest, headerToken_s::endoff, headerToken_s::flags, headerToken_s::h_getops, headerToken_s::h_loadops, hdrchkData, hdrchkTags, hdrchkType, HEADER_BASENAMES, HEADER_I18NTABLE, HEADER_IMAGE, header_magic, HEADER_OLDFILENAMES, HEADERFLAG_LEGACY, HEADERFLAG_SORTED, headerGetPool(), headerGetStats(), headerLink(), headerRemoveEntry(), headerSort(), headerToken_s::index, headerToken_s::indexAlloced, headerToken_s::indexUsed, indexEntry_s::info, headerToken_s::instance, indexEntry_s::length, headerToken_s::magic, entryInfo_s::offset, headerToken_s::origin, indexEntry_s::rdlen, REGION_TAG_COUNT, REGION_TAG_TYPE, regionSwab(), headerToken_s::rpmdb, rpmioPutPool(), rpmswEnter(), rpmswExit(), headerToken_s::sb, headerToken_s::startoff, entryInfo_s::tag, entryInfo_s::type, rpmioItem_s::use, and xcalloc().
Referenced by ckHeader(), hdrLoad(), headerMap(), headerReload(), rdSignature(), rpmmiNext(), and rpmReadHeader().
void headerMergeLegacySigs | ( | Header | h, |
const Header | sigh | ||
) |
Translate and merge legacy signature tags into header.
h | header |
sigh | signature header |
Definition at line 236 of file hdrNVR.c.
References _free(), alloca(), _HE_s::c, hdrchkData, hdrchkType, HEADER_SIGBASE, HEADER_TAGBASE, headerFini(), headerInit(), headerIsEntry(), headerNext(), headerPut(), _HE_s::p, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_I18NSTRING_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, RPM_UINT8_TYPE, RPMSIGTAG_DSA, RPMSIGTAG_MD5, RPMSIGTAG_PAYLOADSIZE, RPMSIGTAG_RSA, RPMSIGTAG_SHA1, RPMSIGTAG_SIZE, RPMTAG_ARCHIVESIZE, RPMTAG_SIGMD5, RPMTAG_SIGSIZE, _HE_s::t, and _HE_s::tag.
Referenced by rpmReadPackageFile(), and writeRPM().
Modify tag container in header.
If there are multiple entries with this tag, the first one gets replaced.
h | header |
he | tag container |
flags | (unused) |
Definition at line 2226 of file header.c.
References headerModifyEntry().
Referenced by relocateFileList().
static int headerModifyEntry | ( | Header | h, |
HE_t | he | ||
) | [static] |
Modify tag in header.
If there are multiple entries with this tag, the first one gets replaced.
h | header |
he | tag container |
Definition at line 1995 of file header.c.
References _free(), _HE_s::c, entryInfo_s::count, indexEntry_s::data, ENTRY_IN_REGION, findEntry(), grabData(), headerToken_s::index, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, rpmDataType_u::ptr, _HE_s::t, entryInfo_s::tag, _HE_s::tag, and entryInfo_s::type.
Referenced by headerMod().
int headerNEVRA | ( | Header | h, |
const char ** | np, | ||
const char ** | ep, | ||
const char ** | vp, | ||
const char ** | rp, | ||
const char ** | ap | ||
) |
Return name, epoch, version, release, arch strings from header.
h | header |
*np | name pointer (or NULL) |
*ep | epoch pointer (or NULL) |
*vp | version pointer (or NULL) |
*rp | release pointer (or NULL) |
*ap | arch pointer (or NULL) |
Definition at line 156 of file hdrNVR.c.
References _free(), alloca(), _HE_s::c, headerGet(), headerIsEntry(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, RPMTAG_ARCH, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_SOURCERPM, RPMTAG_VERSION, rpmDataType_u::str, _HE_s::t, _HE_s::tag, and xstrdup().
Referenced by doSetupMacro(), genSourceRpmName(), hGetNVRA(), providePackageNVR(), rpmdbRebuild(), rpmdsNVRMatchesDep(), rpmdsThis(), and writeRPM().
Create new (empty) header instance.
< Are header entries sorted?
Definition at line 165 of file header.c.
References headerToken_s::baseurl, headerToken_s::blob, headerToken_s::bloblen, headerToken_s::digest, headerToken_s::endoff, headerToken_s::flags, headerToken_s::h_getops, headerToken_s::h_loadops, header_magic, HEADERFLAG_SORTED, headerGetPool(), headerLink(), headerToken_s::index, INDEX_MALLOC_SIZE, headerToken_s::indexAlloced, headerToken_s::indexUsed, headerToken_s::instance, headerToken_s::magic, headerToken_s::origin, headerToken_s::rpmdb, headerToken_s::sb, headerToken_s::startoff, and xcalloc().
Referenced by headerCopy(), headerRegenSigHeader(), newPackage(), newSpec(), rpmcliImportPubkey(), rpmpsmStage(), rpmReSign(), and writeRPM().
int headerNext | ( | HeaderIterator | hi, |
HE_t | he, | ||
unsigned int | flags | ||
) |
Return next tag from header.
hi | header tag iterator |
he | tag container |
flags | (unused) |
Definition at line 2065 of file header.c.
References copyEntry(), ENTRY_IS_REGION, headerIterator_s::h, headerGetStats(), headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, headerIterator_s::next_index, rpmheRealloc(), rpmswEnter(), rpmswExit(), entryInfo_s::tag, and _HE_s::tag.
Referenced by checkForDuplicates(), hdrKeyList(), headerCopy(), headerMergeLegacySigs(), headerRegenSigHeader(), hsaNext(), initSourceHeader(), rpmpsmStage(), rpmReSign(), and rpmVerifySignatures().
Add or append tag container to header.
h | header |
he | tag container |
flags | (unused) |
Definition at line 2201 of file header.c.
References _HE_s::append, headerAddEntry(), and headerAddOrAppendEntry().
Referenced by addChangelogEntry(), addFileToArrayTag(), addFileToTag(), addOrAppendListEntry(), addReqProv(), compressFilelist(), doIcon(), fillOutMainPackage(), ftsCacheUpdate(), genCpioListAndHeader(), getDigestAlgo(), handlePreambleTag(), hCopyTag(), headerCopyTags(), headerMergeLegacySigs(), headerRegenSigHeader(), hSaveBlinks(), hSaveFlinks(), initSourceHeader(), initSourceHeaderScriptlet(), makeHDRSignature(), packageBinaries(), packageSources(), parsePreamble(), parseScript(), parseSpec(), populateInstallHeader(), postPopulateInstallHeader(), processMetadataFile(), processScriptFiles(), providePackageNVR(), relocateFileList(), rpmAddSignature(), rpmcliImportPubkey(), rpmdbAdd(), rpmdbRemove(), rpmfcGenerateDepends(), rpmlibMarkers(), rpmpsmStage(), rpmReSign(), and writeRPM().
Header headerRegenSigHeader | ( | const Header | h, |
int | noArchiveSize | ||
) |
Regenerate signature header.
h | header |
noArchiveSize | don't copy archive size tag (pre rpm-4.1) |
Definition at line 303 of file hdrNVR.c.
References _free(), alloca(), HEADER_SIGBASE, HEADER_TAGBASE, headerFini(), headerInit(), headerIsEntry(), headerNew(), headerNext(), headerPut(), _HE_s::p, rpmDataType_u::ptr, RPMSIGTAG_MD5, RPMSIGTAG_PAYLOADSIZE, RPMSIGTAG_SIZE, RPMTAG_ARCHIVESIZE, RPMTAG_DSAHEADER, RPMTAG_RSAHEADER, RPMTAG_SHA1HEADER, RPMTAG_SIGMD5, RPMTAG_SIGSIZE, and _HE_s::tag.
Referenced by rpmpsmStage().
Header headerReload | ( | Header | h, |
int | tag | ||
) |
Convert header to on-disk representation, and then reload.
This is used to insure that all header data is in a single contiguous memory allocation.
h | header (with pointers) |
tag | region tag |
< Is 1st header region allocated?
Definition at line 1259 of file header.c.
References _free(), headerToken_s::baseurl, headerToken_s::digest, ENTRY_IS_REGION, headerToken_s::flags, HEADER_IMMUTABLE, HEADER_SIGNATURES, HEADERFLAG_ALLOCATED, headerFree(), headerLoad(), headerSetBaseURL(), headerSetDigest(), headerSetInstance(), headerSetOrigin(), headerSetRpmdb(), headerUnload(), headerToken_s::index, indexEntry_s::info, headerToken_s::instance, headerToken_s::origin, headerToken_s::rpmdb, headerToken_s::sb, entryInfo_s::tag, and xstrdup().
Referenced by headerCopy(), rpmpsmStage(), rpmReSign(), and writeRPM().
static int headerRemoveEntry | ( | Header | h, |
rpmTag | tag | ||
) | [static] |
Delete tag in header.
Removes all entries of type tag from the header, returns 1 if none were found.
h | header |
tag | tag |
Definition at line 902 of file header.c.
References _free(), indexEntry_s::data, ENTRY_IN_REGION, findEntry(), headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, indexEntry_s::length, and entryInfo_s::tag.
Referenced by headerDel(), and headerLoad().
int headerSetBaseURL | ( | Header | h, |
const char * | baseurl | ||
) |
Store header base URL (e.g path or URL).
h | header |
baseurl | new header baseurl |
Definition at line 1168 of file header.c.
References _free(), headerToken_s::baseurl, and xstrdup().
Referenced by headerReload(), and repoReadHeader().
int headerSetDigest | ( | Header | h, |
const char * | digest | ||
) |
Store digest of origin *.rpm file.
h | header |
st | new header digest |
Definition at line 1198 of file header.c.
References _free(), headerToken_s::digest, and xstrdup().
Referenced by headerReload(), and repoReadHeader().
rpmuint32_t headerSetEndOff | ( | Header | h, |
rpmuint32_t | endoff | ||
) |
Store header ending byte offset.
h | header |
startoff | new header ending byte offset |
Definition at line 1252 of file header.c.
References headerToken_s::endoff.
Referenced by rdSignature(), and rpmReadHeader().
rpmuint32_t headerSetInstance | ( | Header | h, |
rpmuint32_t | instance | ||
) |
Store header instance (e.g path or URL).
h | header |
instance | new header instance |
Definition at line 1228 of file header.c.
References headerToken_s::instance.
Referenced by headerReload(), repoWriteMetadataDocs(), rpmdbAdd(), rpmmiNext(), and rpmpsmStage().
int headerSetMagic | ( | Header | h, |
unsigned char * | magic, | ||
size_t | nmagic | ||
) |
Store header magic.
h | header |
magic | magic array |
nmagic | no. bytes of magic |
Definition at line 1135 of file header.c.
References headerToken_s::magic.
int headerSetOrigin | ( | Header | h, |
const char * | origin | ||
) |
Store header origin (e.g path or URL).
h | header |
origin | new header origin |
Definition at line 1152 of file header.c.
References _free(), headerToken_s::origin, and xstrdup().
Referenced by hdrSetOrigin(), headerReload(), rpmmiNext(), and rpmReadHeader().
void* headerSetRpmdb | ( | Header | h, |
void * | rpmdb | ||
) |
Store rpmdb pointer.
h | header |
rpmdb | new rpmdb pointer (or NULL to unset) |
Definition at line 1214 of file header.c.
References headerToken_s::rpmdb.
Referenced by headerReload(), and showQueryPackage().
rpmuint32_t headerSetStartOff | ( | Header | h, |
rpmuint32_t | startoff | ||
) |
Store header starting byte offset.
h | header |
startoff | new header starting byte offset |
Definition at line 1240 of file header.c.
References headerToken_s::startoff.
Referenced by rdSignature(), and rpmReadHeader().
int headerSetStatbuf | ( | Header | h, |
struct stat * | st | ||
) |
Copy into header stat(2) buffer (of origin *.rpm file).
h | header |
st | new header stat(2) buffer |
Definition at line 1184 of file header.c.
References headerToken_s::sb.
size_t headerSizeof | ( | Header | h | ) |
Return size of on-disk header representation in bytes.
h | header |
< Header came from legacy source?
Definition at line 250 of file header.c.
References entryInfo_s::count, ENTRY_IS_REGION, headerToken_s::flags, header_magic, HEADERFLAG_LEGACY, headerSort(), headerToken_s::index, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, entryInfo_s::type, and typeSizes.
Referenced by rdSignature(), readFile(), and wrSignature().
static void headerSort | ( | Header | h | ) | [static] |
Sort tags in header.
h | header |
< Are header entries sorted?
< Are header entries sorted?
Definition at line 211 of file header.c.
References headerToken_s::flags, HEADERFLAG_SORTED, headerToken_s::index, indexCmp(), and headerToken_s::indexUsed.
Referenced by findEntry(), headerInit(), headerLoad(), headerSizeof(), and headerUnload().
char* headerSprintf | ( | Header | h, |
const char * | fmt, | ||
headerTagTableEntry | tags, | ||
headerSprintfExtension | exts, | ||
errmsg_t * | errmsg | ||
) |
Return formatted output string from header tags.
The returned string must be free()d.
h | header |
fmt | format to use |
tags | array of tag name/value/type triples (NULL uses default) |
exts | formatting extensions chained table (NULL uses default) |
errmsg | error message (if any) |
Definition at line 6261 of file hdrfmt.c.
References _free(), _hdrqf_debug, alloca(), headerSprintfArgs_s::alloced, sprintfToken_s::array, sprintfTag_s::av, headerSprintfArgs_s::ec, headerSprintfArgs_s::errmsg, headerSprintfArgs_s::exts, headerSprintfArgs_s::fmt, headerSprintfArgs_s::format, freeFormat(), headerSprintfArgs_s::h, headerCompoundFormats, headerFree(), headerLink(), hsaFini(), hsaInit(), hsaNext(), hsaReserve(), headerSprintfArgs_s::nec, headerSprintfArgs_s::numTokens, parseFormat(), PARSER_BEGIN, rpmecFree(), rpmecNew(), rpmTagTable, singleSprintf(), stpcpy(), sprintfToken_s::tag, sprintfTag_s::tagno, headerSprintfArgs_s::tags, sprintfToken_s::type, sprintfToken_s::u, headerSprintfArgs_s::val, headerSprintfArgs_s::vallen, xrealloc(), and xstrdup().
Referenced by hdrSprintf(), packageBinaries(), parseForSimple(), printNewSpecfile(), queryHeader(), rfileHeaderSprintf(), rpmcliImportPubkey(), rpmfiNew(), rpmpsmStage(), rpmShowProgress(), and rpmtsSolve().
Header headerUnlink | ( | Header | h | ) |
Dereference a header instance.
h | header |
void* headerUnload | ( | Header | h, |
size_t * | lenp | ||
) |
headerUnload.
h | header |
*lenp | no. bytes in unloaded header blob |
< Header came from legacy source?
< Header came from legacy source?
< Are header entries sorted?
Definition at line 618 of file header.c.
References _free(), entryInfo_s::count, indexEntry_s::data, ENTRY_IS_REGION, headerToken_s::flags, hdrchkData, hdrchkTags, HEADERFLAG_LEGACY, HEADERFLAG_SORTED, headerGetStats(), headerSort(), headerUnsort(), headerToken_s::index, headerToken_s::indexUsed, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, indexEntry_s::rdlen, rpmswEnter(), rpmswExit(), entryInfo_s::tag, entryInfo_s::type, typeSizes, and xmalloc().
Referenced by hdrUnload(), headerReload(), miFreeHeader(), rpmdbAdd(), rpmWriteHeader(), and writeRPM().
static void headerUnsort | ( | Header | h | ) | [static] |
Restore tags in header to original ordering.
h | header |
Definition at line 244 of file header.c.
References headerToken_s::index, headerToken_s::indexUsed, and offsetCmp().
Referenced by headerUnload().
static int headerUsageCount | ( | Header | h | ) | [inline, static] |
Return header reference count.
h | header |
Definition at line 146 of file header_internal.h.
References headerToken_s::_item, and rpmioItem_s::use.
static rpmuint32_t regionSwab | ( | indexEntry | entry, |
rpmuint32_t | il, | ||
rpmuint32_t | dl, | ||
entryInfo | pe, | ||
unsigned char * | dataStart, | ||
const unsigned char * | dataEnd, | ||
rpmint32_t | regionid | ||
) | [static] |
Swab rpmuint64_t/rpmuint32_t/rpmuint16_t arrays within header region.
This code is way more twisty than I would like.
A bug with RPM_I18NSTRING_TYPE in rpm-2.5.x (fixed in August 1998) causes the offset and length of elements in a header region to disagree regarding the total length of the region data.
The "fix" is to compute the size using both offset and length and return the larger of the two numbers as the size of the region. Kinda like computing left and right Riemann sums of the data elements to determine the size of a data structure, go figger :-).
There's one other twist if a header region tag is in the set to be swabbed, as the data for a header region is located after all other tag data.
entry | header entry |
il | no. of entries |
dl | start no. bytes of data |
pe | header physical entry pointer (swapped) |
dataStart | header data start |
dataEnd | header data end |
regionid | region offset |
Definition at line 496 of file header.c.
References alloca(), entryInfo_s::count, indexEntry_s::data, dataLength(), hdrchkAlign, hdrchkData, hdrchkType, HEADER_I18NTABLE, HEADER_IMAGE, indexEntry_s::info, indexEntry_s::length, entryInfo_s::offset, rpmDataType_u::ptr, indexEntry_s::rdlen, REGION_TAG_COUNT, RPM_I18NSTRING_TYPE, entryInfo_s::tag, entryInfo_s::type, typeSizes, and rpmDataType_u::ui8p.
Referenced by headerLoad().
static rpmRC rpmWriteHeader | ( | FD_t | fd, |
Header | h, | ||
const char ** | msg | ||
) | [static] |
Write (with unload) header to file handle.
fd | file handle |
h | header |
*msg | failure msg |
Definition at line 70 of file pkgio.c.
References _, _free(), _pkgio_debug, Ferror(), Fstrerror(), Fwrite(), headerGetMagic(), headerUnload(), RPMRC_FAIL, RPMRC_OK, and xstrdup().
Referenced by wrHeader(), and wrSignature().
Swab rpmuint64_t/rpmuint32_t/rpmuint16_t arrays within header region.
Definition at line 370 of file header.c.
References _HE_s::c, _HE_s::p, rpmDataType_u::ptr, RPM_UINT16_TYPE, RPM_UINT32_TYPE, RPM_UINT64_TYPE, _HE_s::t, rpmDataType_u::ui16p, and rpmDataType_u::ui32p.
Referenced by copyData(), and rpmheRealloc().
unsigned char header_magic[8] [static] |
{ 0x8e, 0xad, 0xe8, 0x01, 0x00, 0x00, 0x00, 0x00 }
Definition at line 35 of file header.c.
Referenced by headerGetMagic(), headerLoad(), headerNew(), and headerSizeof().
Supported default header extension/tag output formats.
Definition at line 4849 of file hdrfmt.c.
Referenced by headerGet(), headerSprintf(), queryHeader(), and rpmDisplayQueryTags().
size_t headerMaxbytes = (1024*1024*1024) [static] |
Maximum no.
of bytes permitted in a header.
Definition at line 67 of file header.c.
Referenced by headerMap().
int typeSizes[16] [static] |
{ 0, 1, 1, 2, 4, 8, -1, 1, -1, -1, 0, 0, 0, 0, 0, 0 }
Size of header data types.
Definition at line 44 of file header.c.
Referenced by dataLength(), headerSizeof(), headerUnload(), and regionSwab().