Blob Blame History Raw
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.14"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>rpm: Header API.</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">rpm
   &#160;<span id="projectnumber">4.14.2</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.14 -->
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',false,false,'search.php','Search');
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#files">Files</a> &#124;
<a href="#typedef-members">Typedefs</a> &#124;
<a href="#enum-members">Enumerations</a> &#124;
<a href="#func-members">Functions</a> &#124;
<a href="#var-members">Variables</a>  </div>
  <div class="headertitle">
<div class="title">Header API.<div class="ingroups"><a class="el" href="group__headquery.html">Querying package headers:</a> &#124; <a class="el" href="group__io.html">I/O</a></div></div>  </div>
</div><!--header-->
<div class="contents">

<p>How to manipulate package headers (which carries all information about a package).  
<a href="#details">More...</a></p>
<div class="dynheader">
Collaboration diagram for Header API.:</div>
<div class="dyncontent">
<center><table><tr><td><img src="group__header.png" border="0" alt="" usemap="#group____header"/>
<map name="group____header" id="group____header">
<area shape="rect" id="node3" href="group__rpmcli.html" title="Parsing RPM command line arguments. " alt="" coords="456,5,605,32"/>
<area shape="rect" id="node4" href="group__rpmdb.html" title="Opening &amp; accessing the RPM indices using Berkeley DB (the so called rpmdb) " alt="" coords="474,56,587,83"/>
<area shape="rect" id="node5" href="group__signature.html" title="List of signature tags. " alt="" coords="457,107,604,133"/>
<area shape="rect" id="node6" href="group__rpmrc.html" title="Reading config files and getting some important configuration values. " alt="" coords="495,157,566,184"/>
<area shape="rect" id="node2" href="group__headquery.html" title="Querying package headers:" alt="" coords="5,56,205,83"/>
<area shape="rect" id="node7" href="group__io.html" title="I/O" alt="" coords="85,107,125,133"/>
</map>
</td></tr></table></center>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
<tr class="memitem:header_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="header_8h.html">header.h</a></td></tr>
<tr class="memdesc:header_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">An rpm header carries all information about a package. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:rpmlib_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="rpmlib_8h.html">rpmlib.h</a></td></tr>
<tr class="memdesc:rpmlib_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight"><br />
In Memoriam: Steve Taylor <a href="#" onclick="location.href='mai'+'lto:'+'sta'+'yl'+'or@'+'re'+'dha'+'t.'+'com'; return false;">stayl<span style="display: none;">.nosp@m.</span>or@r<span style="display: none;">.nosp@m.</span>edhat<span style="display: none;">.nosp@m.</span>.com</a> was here, now he's not. <br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
Typedefs</h2></td></tr>
<tr class="memitem:gae3bf8d35e51bc1fbaa1a2a5acdceb79e"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__header.html#ga24690e18a34d56e178edf27b5cc97fed">rpmTagType_e</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gae3bf8d35e51bc1fbaa1a2a5acdceb79e">rpmTagType</a></td></tr>
<tr class="memdesc:gae3bf8d35e51bc1fbaa1a2a5acdceb79e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The basic types of data in tags from headers.  <a href="#gae3bf8d35e51bc1fbaa1a2a5acdceb79e">More...</a><br /></td></tr>
<tr class="separator:gae3bf8d35e51bc1fbaa1a2a5acdceb79e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8476a91f8c0ba36b3255ff0b63768d8b"><td class="memItemLeft" align="right" valign="top">typedef enum <a class="el" href="group__header.html#ga8252a017b6a137ec3e54d0c2ad8f332f">rpmSubTagType_e</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga8476a91f8c0ba36b3255ff0b63768d8b">rpmSubTagType</a></td></tr>
<tr class="memdesc:ga8476a91f8c0ba36b3255ff0b63768d8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">New rpm data types under consideration/development.  <a href="#ga8476a91f8c0ba36b3255ff0b63768d8b">More...</a><br /></td></tr>
<tr class="separator:ga8476a91f8c0ba36b3255ff0b63768d8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga2572591faf5430cdf28aaf9f70d74fa4"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga2572591faf5430cdf28aaf9f70d74fa4">hMagic</a> { <a class="el" href="group__header.html#gga2572591faf5430cdf28aaf9f70d74fa4a4df0aa5955f506525b5a5537605e3092">HEADER_MAGIC_NO</a> = 0, 
<a class="el" href="group__header.html#gga2572591faf5430cdf28aaf9f70d74fa4aebb6d0af72ae9d4c607e81796dafa472">HEADER_MAGIC_YES</a> = 1
 }</td></tr>
<tr class="memdesc:ga2572591faf5430cdf28aaf9f70d74fa4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Include calculation for 8 bytes of (magic, 0)?  <a href="group__header.html#ga2572591faf5430cdf28aaf9f70d74fa4">More...</a><br /></td></tr>
<tr class="separator:ga2572591faf5430cdf28aaf9f70d74fa4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae10b109d8e56faba07f4743b797b893a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gae10b109d8e56faba07f4743b797b893a">headerGetFlags_e</a> { <br />
&#160;&#160;<a class="el" href="group__header.html#ggae10b109d8e56faba07f4743b797b893aa10a9f914f9b8f462ad846dc27cab28c6">HEADERGET_DEFAULT</a> = 0, 
<a class="el" href="group__header.html#ggae10b109d8e56faba07f4743b797b893aa9ff0aaa4dbaf60dc852c5af8ca6487f2">HEADERGET_MINMEM</a> = (1 &lt;&lt; 0), 
<a class="el" href="group__header.html#ggae10b109d8e56faba07f4743b797b893aa38f8e76cedf30634d4d7621be70c5847">HEADERGET_EXT</a> = (1 &lt;&lt; 1), 
<a class="el" href="group__header.html#ggae10b109d8e56faba07f4743b797b893aa9323938f8824a1257d24adec115996a4">HEADERGET_RAW</a> = (1 &lt;&lt; 2), 
<br />
&#160;&#160;<a class="el" href="group__header.html#ggae10b109d8e56faba07f4743b797b893aa8fb050c50c60c1b2a931a56e0beb2b8a">HEADERGET_ALLOC</a> = (1 &lt;&lt; 3), 
<a class="el" href="group__header.html#ggae10b109d8e56faba07f4743b797b893aa3dc9e71e8a1777e9a68adde6569aef96">HEADERGET_ARGV</a> = (1 &lt;&lt; 4)
<br />
 }</td></tr>
<tr class="memdesc:gae10b109d8e56faba07f4743b797b893a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modifier flags for <a class="el" href="group__header.html#ga7a2b47707f49dd90c7f3e7799e4a01b3" title="Retrieve tag value. ">headerGet()</a> operation.  <a href="group__header.html#gae10b109d8e56faba07f4743b797b893a">More...</a><br /></td></tr>
<tr class="separator:gae10b109d8e56faba07f4743b797b893a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga24690e18a34d56e178edf27b5cc97fed"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga24690e18a34d56e178edf27b5cc97fed">rpmTagType_e</a> { <br />
&#160;&#160;<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97fedaab678f136ed90646ef740a68d94dbcd9">RPM_NULL_TYPE</a> = 0, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97fedaef0515c385f44f8679ddce3dfd12900e">RPM_CHAR_TYPE</a> = 1, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda0701f2c2ebe1f04b84487dc749ed350f">RPM_INT8_TYPE</a> = 2, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda725a353577bf2dce87138837ebf3ad66">RPM_INT16_TYPE</a> = 3, 
<br />
&#160;&#160;<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda033cf2f10106384143d802ede9274dcc">RPM_INT32_TYPE</a> = 4, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda02ac0e674a2704e17cbf65d4c5cf0b82">RPM_INT64_TYPE</a> = 5, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda34cdc667815b86f8741fbf06ce4725eb">RPM_STRING_TYPE</a> = 6, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda96437c1222f63450e6ab8d693447d1bd">RPM_BIN_TYPE</a> = 7, 
<br />
&#160;&#160;<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda6ae076d0ee687ce337e98f86a1aee307">RPM_STRING_ARRAY_TYPE</a> = 8, 
<a class="el" href="group__header.html#gga24690e18a34d56e178edf27b5cc97feda7a7bbe524996280711a7970977ada120">RPM_I18NSTRING_TYPE</a> = 9
<br />
 }</td></tr>
<tr class="memdesc:ga24690e18a34d56e178edf27b5cc97fed"><td class="mdescLeft">&#160;</td><td class="mdescRight">The basic types of data in tags from headers.  <a href="group__header.html#ga24690e18a34d56e178edf27b5cc97fed">More...</a><br /></td></tr>
<tr class="separator:ga24690e18a34d56e178edf27b5cc97fed"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8252a017b6a137ec3e54d0c2ad8f332f"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga8252a017b6a137ec3e54d0c2ad8f332f">rpmSubTagType_e</a> { <a class="el" href="group__header.html#gga8252a017b6a137ec3e54d0c2ad8f332faf66af42afcdb5ed4a78d3771e01ad84d">RPM_REGION_TYPE</a> = -10, 
<a class="el" href="group__header.html#gga8252a017b6a137ec3e54d0c2ad8f332fadef6f13d3e7cfb28d2835380fe54e625">RPM_BIN_ARRAY_TYPE</a> = -11, 
<a class="el" href="group__header.html#gga8252a017b6a137ec3e54d0c2ad8f332fadc7dd89d43dc44dbd438c5a2cafbe476">RPM_XREF_TYPE</a> = -12
 }</td></tr>
<tr class="memdesc:ga8252a017b6a137ec3e54d0c2ad8f332f"><td class="mdescLeft">&#160;</td><td class="mdescRight">New rpm data types under consideration/development.  <a href="group__header.html#ga8252a017b6a137ec3e54d0c2ad8f332f">More...</a><br /></td></tr>
<tr class="separator:ga8252a017b6a137ec3e54d0c2ad8f332f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga06b1ee1d4b501cad4d8aebe07cfc8eb3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga06b1ee1d4b501cad4d8aebe07cfc8eb3">rpmTagReturnType_e</a> { <br />
&#160;&#160;<a class="el" href="group__header.html#gga06b1ee1d4b501cad4d8aebe07cfc8eb3a85833a03c9ca291cb4079436f1d0e691">RPM_ANY_RETURN_TYPE</a> = 0, 
<a class="el" href="group__header.html#gga06b1ee1d4b501cad4d8aebe07cfc8eb3ab4a1533449cae4783b75dc4f63fea4c3">RPM_SCALAR_RETURN_TYPE</a> = 0x00010000, 
<a class="el" href="group__header.html#gga06b1ee1d4b501cad4d8aebe07cfc8eb3a52b4a26c0e82c4c1481fdc66c1bb3dce">RPM_ARRAY_RETURN_TYPE</a> = 0x00020000, 
<a class="el" href="group__header.html#gga06b1ee1d4b501cad4d8aebe07cfc8eb3a8aad2b81c577a54f0451fe6562d4107c">RPM_MAPPING_RETURN_TYPE</a> = 0x00040000, 
<br />
&#160;&#160;<a class="el" href="group__header.html#gga06b1ee1d4b501cad4d8aebe07cfc8eb3a1acf76a1e638f855f013084e294af9be">RPM_MASK_RETURN_TYPE</a> = 0xffff0000
<br />
 }</td></tr>
<tr class="separator:ga06b1ee1d4b501cad4d8aebe07cfc8eb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:gaba1932e7962b6c650006c3083530b042"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaba1932e7962b6c650006c3083530b042">headerNew</a> (void)</td></tr>
<tr class="memdesc:gaba1932e7962b6c650006c3083530b042"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create new (empty) header instance.  <a href="#gaba1932e7962b6c650006c3083530b042">More...</a><br /></td></tr>
<tr class="separator:gaba1932e7962b6c650006c3083530b042"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga15e58ea36a4ad540759989db341797ce"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga15e58ea36a4ad540759989db341797ce">headerFree</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:ga15e58ea36a4ad540759989db341797ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Dereference a header instance.  <a href="#ga15e58ea36a4ad540759989db341797ce">More...</a><br /></td></tr>
<tr class="separator:ga15e58ea36a4ad540759989db341797ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab8e8158584de00bad7bbf91cd7b43e72"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gab8e8158584de00bad7bbf91cd7b43e72">headerLink</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:gab8e8158584de00bad7bbf91cd7b43e72"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference a header instance.  <a href="#gab8e8158584de00bad7bbf91cd7b43e72">More...</a><br /></td></tr>
<tr class="separator:gab8e8158584de00bad7bbf91cd7b43e72"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe6057e3d70882f1d756ab87c555baf6"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gabe6057e3d70882f1d756ab87c555baf6">headerSizeof</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, int magicp)</td></tr>
<tr class="memdesc:gabe6057e3d70882f1d756ab87c555baf6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return size of on-disk header representation in bytes.  <a href="#gabe6057e3d70882f1d756ab87c555baf6">More...</a><br /></td></tr>
<tr class="separator:gabe6057e3d70882f1d756ab87c555baf6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33ea43d033ea680a8c5357ed9cec7283"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga33ea43d033ea680a8c5357ed9cec7283">headerUnload</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:ga33ea43d033ea680a8c5357ed9cec7283"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert header to on-disk representation.  <a href="#ga33ea43d033ea680a8c5357ed9cec7283">More...</a><br /></td></tr>
<tr class="separator:ga33ea43d033ea680a8c5357ed9cec7283"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga32bfde5f514287b143e03763026b194b"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga32bfde5f514287b143e03763026b194b">headerExport</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, unsigned int *bsize)</td></tr>
<tr class="memdesc:ga32bfde5f514287b143e03763026b194b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Export header to on-disk representation.  <a href="#ga32bfde5f514287b143e03763026b194b">More...</a><br /></td></tr>
<tr class="separator:ga32bfde5f514287b143e03763026b194b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf20c66a7e5a96a7bcdf186ff517bd6ff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaf20c66a7e5a96a7bcdf186ff517bd6ff">headerReload</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag)</td></tr>
<tr class="memdesc:gaf20c66a7e5a96a7bcdf186ff517bd6ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert header to on-disk representation, and then reload.  <a href="#gaf20c66a7e5a96a7bcdf186ff517bd6ff">More...</a><br /></td></tr>
<tr class="separator:gaf20c66a7e5a96a7bcdf186ff517bd6ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gac6ec9b02a38e9ad6bc9bd10c73eb2960"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gac6ec9b02a38e9ad6bc9bd10c73eb2960">headerCopy</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:gac6ec9b02a38e9ad6bc9bd10c73eb2960"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate a header.  <a href="#gac6ec9b02a38e9ad6bc9bd10c73eb2960">More...</a><br /></td></tr>
<tr class="separator:gac6ec9b02a38e9ad6bc9bd10c73eb2960"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa44e906299e81eda325dbef9fd991c9c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaa44e906299e81eda325dbef9fd991c9c">headerLoad</a> (void *uh)</td></tr>
<tr class="memdesc:gaa44e906299e81eda325dbef9fd991c9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert header to in-memory representation.  <a href="#gaa44e906299e81eda325dbef9fd991c9c">More...</a><br /></td></tr>
<tr class="separator:gaa44e906299e81eda325dbef9fd991c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4af55b82df3f36dd7257cd3a1b2b7d9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaa4af55b82df3f36dd7257cd3a1b2b7d9">headerCopyLoad</a> (const void *uh)</td></tr>
<tr class="memdesc:gaa4af55b82df3f36dd7257cd3a1b2b7d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Make a copy and convert header to in-memory representation.  <a href="#gaa4af55b82df3f36dd7257cd3a1b2b7d9">More...</a><br /></td></tr>
<tr class="separator:gaa4af55b82df3f36dd7257cd3a1b2b7d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaf9e6abca97861c4c2e7fc311186f2707"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaf9e6abca97861c4c2e7fc311186f2707">headerImport</a> (void *blob, unsigned int bsize, <a class="el" href="header_8h.html#a1ad771f93ce1dd0dba6446b8a14a1c9b">headerImportFlags</a> flags)</td></tr>
<tr class="memdesc:gaf9e6abca97861c4c2e7fc311186f2707"><td class="mdescLeft">&#160;</td><td class="mdescRight">Import header to in-memory representation.  <a href="#gaf9e6abca97861c4c2e7fc311186f2707">More...</a><br /></td></tr>
<tr class="separator:gaf9e6abca97861c4c2e7fc311186f2707"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga29a7512cc49adc47238baf0acd3f67e5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga29a7512cc49adc47238baf0acd3f67e5">headerRead</a> (<a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a> fd, int magicp)</td></tr>
<tr class="memdesc:ga29a7512cc49adc47238baf0acd3f67e5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Read (and load) header from file handle.  <a href="#ga29a7512cc49adc47238baf0acd3f67e5">More...</a><br /></td></tr>
<tr class="separator:ga29a7512cc49adc47238baf0acd3f67e5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gabe3afb87a33318ab9cef8039d9a12698"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gabe3afb87a33318ab9cef8039d9a12698">headerWrite</a> (<a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a> fd, <a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, int magicp)</td></tr>
<tr class="memdesc:gabe3afb87a33318ab9cef8039d9a12698"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write (with unload) header to file handle.  <a href="#gabe3afb87a33318ab9cef8039d9a12698">More...</a><br /></td></tr>
<tr class="separator:gabe3afb87a33318ab9cef8039d9a12698"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafb403521514c8e7ebaec2cd568c128de"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gafb403521514c8e7ebaec2cd568c128de">headerIsEntry</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag)</td></tr>
<tr class="memdesc:gafb403521514c8e7ebaec2cd568c128de"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if tag is in header.  <a href="#gafb403521514c8e7ebaec2cd568c128de">More...</a><br /></td></tr>
<tr class="separator:gafb403521514c8e7ebaec2cd568c128de"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga7a2b47707f49dd90c7f3e7799e4a01b3"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga7a2b47707f49dd90c7f3e7799e4a01b3">headerGet</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, <a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a> td, <a class="el" href="header_8h.html#a90e3a0c184de0dcd9a74e875e3a438c0">headerGetFlags</a> flags)</td></tr>
<tr class="memdesc:ga7a2b47707f49dd90c7f3e7799e4a01b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieve tag value.  <a href="#ga7a2b47707f49dd90c7f3e7799e4a01b3">More...</a><br /></td></tr>
<tr class="separator:ga7a2b47707f49dd90c7f3e7799e4a01b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga2275b05ca8482917028356781f9a125d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga2275b05ca8482917028356781f9a125d">headerPut</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a> td, <a class="el" href="header_8h.html#a0c621fdfe7dd922f5772fa1019af4cb9">headerPutFlags</a> flags)</td></tr>
<tr class="memdesc:ga2275b05ca8482917028356781f9a125d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add or append tag to header.  <a href="#ga2275b05ca8482917028356781f9a125d">More...</a><br /></td></tr>
<tr class="separator:ga2275b05ca8482917028356781f9a125d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16c4db38571cb061497692d4703f69bd"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga16c4db38571cb061497692d4703f69bd">headerAddI18NString</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const char *string, const char *lang)</td></tr>
<tr class="memdesc:ga16c4db38571cb061497692d4703f69bd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Add locale specific tag to header.  <a href="#ga16c4db38571cb061497692d4703f69bd">More...</a><br /></td></tr>
<tr class="separator:ga16c4db38571cb061497692d4703f69bd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga1da44d2ff4356452098ecab7214ec66d"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga1da44d2ff4356452098ecab7214ec66d">headerMod</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a> td)</td></tr>
<tr class="memdesc:ga1da44d2ff4356452098ecab7214ec66d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Modify tag in header.  <a href="#ga1da44d2ff4356452098ecab7214ec66d">More...</a><br /></td></tr>
<tr class="separator:ga1da44d2ff4356452098ecab7214ec66d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga51d00fb009078a0a884a38844aa87289"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga51d00fb009078a0a884a38844aa87289">headerDel</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag)</td></tr>
<tr class="memdesc:ga51d00fb009078a0a884a38844aa87289"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete tag in header.  <a href="#ga51d00fb009078a0a884a38844aa87289">More...</a><br /></td></tr>
<tr class="separator:ga51d00fb009078a0a884a38844aa87289"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaca1e14f3cde6bfbc931582dfb52f5307"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaca1e14f3cde6bfbc931582dfb52f5307">headerFormat</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, const char *fmt, <a class="el" href="rpmtypes_8h.html#ab20ae37fc60551c3abf7f9b25fcd3bc2">errmsg_t</a> *errmsg)</td></tr>
<tr class="memdesc:gaca1e14f3cde6bfbc931582dfb52f5307"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return formatted output string from header tags.  <a href="#gaca1e14f3cde6bfbc931582dfb52f5307">More...</a><br /></td></tr>
<tr class="separator:gaca1e14f3cde6bfbc931582dfb52f5307"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e30db21bf5804f5f5555320310dac69"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga3e30db21bf5804f5f5555320310dac69">headerCopyTags</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerFrom, <a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerTo, const <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> *tagstocopy)</td></tr>
<tr class="memdesc:ga3e30db21bf5804f5f5555320310dac69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Duplicate tag values from one header into another.  <a href="#ga3e30db21bf5804f5f5555320310dac69">More...</a><br /></td></tr>
<tr class="separator:ga3e30db21bf5804f5f5555320310dac69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga98877806b624ced2fac5cd0bb50239a4"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga98877806b624ced2fac5cd0bb50239a4">headerFreeIterator</a> (<a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a> hi)</td></tr>
<tr class="memdesc:ga98877806b624ced2fac5cd0bb50239a4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroy header tag iterator.  <a href="#ga98877806b624ced2fac5cd0bb50239a4">More...</a><br /></td></tr>
<tr class="separator:ga98877806b624ced2fac5cd0bb50239a4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae549f696a160547449c7fbd3606026b3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gae549f696a160547449c7fbd3606026b3">headerInitIterator</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:gae549f696a160547449c7fbd3606026b3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create header tag iterator.  <a href="#gae549f696a160547449c7fbd3606026b3">More...</a><br /></td></tr>
<tr class="separator:gae549f696a160547449c7fbd3606026b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9c4cc53c5f7e88665752bbceee2e5756"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga9c4cc53c5f7e88665752bbceee2e5756">headerNext</a> (<a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a> hi, <a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a> td)</td></tr>
<tr class="memdesc:ga9c4cc53c5f7e88665752bbceee2e5756"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return next tag contents from header.  <a href="#ga9c4cc53c5f7e88665752bbceee2e5756">More...</a><br /></td></tr>
<tr class="separator:ga9c4cc53c5f7e88665752bbceee2e5756"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafa3424ff811c33c12b8297ac5e44a5c2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gafa3424ff811c33c12b8297ac5e44a5c2">headerNextTag</a> (<a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a> hi)</td></tr>
<tr class="memdesc:gafa3424ff811c33c12b8297ac5e44a5c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return next tag number from header.  <a href="#gafa3424ff811c33c12b8297ac5e44a5c2">More...</a><br /></td></tr>
<tr class="separator:gafa3424ff811c33c12b8297ac5e44a5c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga8e4563d798b9d1e6dae92f31f7f05de3"><td class="memItemLeft" align="right" valign="top">char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga8e4563d798b9d1e6dae92f31f7f05de3">headerGetAsString</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag)</td></tr>
<tr class="memdesc:ga8e4563d798b9d1e6dae92f31f7f05de3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return any non-array tag from header, converted to string.  <a href="#ga8e4563d798b9d1e6dae92f31f7f05de3">More...</a><br /></td></tr>
<tr class="separator:ga8e4563d798b9d1e6dae92f31f7f05de3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga33376e8850c275b72059fe723a0d3066"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga33376e8850c275b72059fe723a0d3066">headerGetString</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag)</td></tr>
<tr class="memdesc:ga33376e8850c275b72059fe723a0d3066"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return a simple string tag from header.  <a href="#ga33376e8850c275b72059fe723a0d3066">More...</a><br /></td></tr>
<tr class="separator:ga33376e8850c275b72059fe723a0d3066"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga3e665b416a45423189eefd54d32e8826"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga3e665b416a45423189eefd54d32e8826">headerIsSource</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:ga3e665b416a45423189eefd54d32e8826"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if header is a source or binary package header.  <a href="#ga3e665b416a45423189eefd54d32e8826">More...</a><br /></td></tr>
<tr class="separator:ga3e665b416a45423189eefd54d32e8826"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab2ead5204f382040cd30cd4be1688990"><td class="memItemLeft" align="right" valign="top">unsigned int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gab2ead5204f382040cd30cd4be1688990">headerGetInstance</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h)</td></tr>
<tr class="memdesc:gab2ead5204f382040cd30cd4be1688990"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return header instance, ie is the header from rpmdb.  <a href="#gab2ead5204f382040cd30cd4be1688990">More...</a><br /></td></tr>
<tr class="separator:gab2ead5204f382040cd30cd4be1688990"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gab88b5e1beaad76593a9488f4d6690c9c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gab88b5e1beaad76593a9488f4d6690c9c">headerConvert</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, int op)</td></tr>
<tr class="memdesc:gab88b5e1beaad76593a9488f4d6690c9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert header to/from (legacy) data presentation.  <a href="#gab88b5e1beaad76593a9488f4d6690c9c">More...</a><br /></td></tr>
<tr class="separator:gab88b5e1beaad76593a9488f4d6690c9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
Variables</h2></td></tr>
<tr class="memitem:ga6483a32ca9785bcef5fba196608ac0fb"><td class="memItemLeft" align="right" valign="top">const unsigned char&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga6483a32ca9785bcef5fba196608ac0fb">rpm_header_magic</a> [8]</td></tr>
<tr class="memdesc:ga6483a32ca9785bcef5fba196608ac0fb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Header magic value.  <a href="#ga6483a32ca9785bcef5fba196608ac0fb">More...</a><br /></td></tr>
<tr class="separator:ga6483a32ca9785bcef5fba196608ac0fb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9e199fc71b38054854cbce80688d3f34"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga9e199fc71b38054854cbce80688d3f34">headerPutBin</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const uint8_t *val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="memdesc:ga9e199fc71b38054854cbce80688d3f34"><td class="mdescLeft">&#160;</td><td class="mdescRight">Type-safe methods for inserting tag data to header.  <a href="#ga9e199fc71b38054854cbce80688d3f34">More...</a><br /></td></tr>
<tr class="separator:ga9e199fc71b38054854cbce80688d3f34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga9a7cc53243734db48200933aecaea57c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga9a7cc53243734db48200933aecaea57c">headerPutString</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const char *val)</td></tr>
<tr class="separator:ga9a7cc53243734db48200933aecaea57c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga49fc2962d2ca89a6b5d0037f179bec3b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga49fc2962d2ca89a6b5d0037f179bec3b">headerPutStringArray</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const char **val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="separator:ga49fc2962d2ca89a6b5d0037f179bec3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaa4d045e93d8dd80ae5926adc497c89fe"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaa4d045e93d8dd80ae5926adc497c89fe">headerPutChar</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const char *val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="separator:gaa4d045e93d8dd80ae5926adc497c89fe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga76de0144adee11ce027a6df0df6a9211"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga76de0144adee11ce027a6df0df6a9211">headerPutUint8</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const uint8_t *val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="separator:ga76de0144adee11ce027a6df0df6a9211"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaad9057a802f0b75770306b0bb8278cab"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaad9057a802f0b75770306b0bb8278cab">headerPutUint16</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const uint16_t *val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="separator:gaad9057a802f0b75770306b0bb8278cab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gaac1ccf3d2c03fea718715fecb18e83c8"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gaac1ccf3d2c03fea718715fecb18e83c8">headerPutUint32</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const uint32_t *val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="separator:gaac1ccf3d2c03fea718715fecb18e83c8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga16cbe23295f03e636efdbb7c82c3b2b6"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga16cbe23295f03e636efdbb7c82c3b2b6">headerPutUint64</a> (<a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> h, <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> tag, const uint64_t *val, <a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a> size)</td></tr>
<tr class="separator:ga16cbe23295f03e636efdbb7c82c3b2b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="member-group"></a>
RPMRC</h2></td></tr>
<tr class="memitem:ga3e07756b155618410a1c3f8ee10d2b14"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#ga06da857c39457bfb6ea9049643fdb706">rpmRC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#ga3e07756b155618410a1c3f8ee10d2b14">headerCheck</a> (<a class="el" href="group__rpmtypes.html#ga1a512138316a227059ca128597dbd464">rpmts</a> ts, const void *uh, size_t uc, char **msg)</td></tr>
<tr class="memdesc:ga3e07756b155618410a1c3f8ee10d2b14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check header consistency, performing headerGetEntry() the hard way.  <a href="#ga3e07756b155618410a1c3f8ee10d2b14">More...</a><br /></td></tr>
<tr class="separator:ga3e07756b155618410a1c3f8ee10d2b14"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae40693275adebc7fe9bbd78f81bfa90b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#ga06da857c39457bfb6ea9049643fdb706">rpmRC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gae40693275adebc7fe9bbd78f81bfa90b">rpmReadHeader</a> (<a class="el" href="group__rpmtypes.html#ga1a512138316a227059ca128597dbd464">rpmts</a> ts, <a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a> fd, <a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> *hdrp, char **msg)</td></tr>
<tr class="memdesc:gae40693275adebc7fe9bbd78f81bfa90b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return checked and loaded header.  <a href="#gae40693275adebc7fe9bbd78f81bfa90b">More...</a><br /></td></tr>
<tr class="separator:gae40693275adebc7fe9bbd78f81bfa90b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae10b6de3f6b14ba9bf473e782c6ed65c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__rpmtypes.html#ga06da857c39457bfb6ea9049643fdb706">rpmRC</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__header.html#gae10b6de3f6b14ba9bf473e782c6ed65c">rpmReadPackageFile</a> (<a class="el" href="group__rpmtypes.html#ga1a512138316a227059ca128597dbd464">rpmts</a> ts, <a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a> fd, const char *fn, <a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> *hdrp)</td></tr>
<tr class="memdesc:gae10b6de3f6b14ba9bf473e782c6ed65c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return package header from file handle, verifying digests/signatures.  <a href="#gae10b6de3f6b14ba9bf473e782c6ed65c">More...</a><br /></td></tr>
<tr class="separator:gae10b6de3f6b14ba9bf473e782c6ed65c"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<p>How to manipulate package headers (which carries all information about a package). </p>
<p>/**</p>
<h2 class="groupheader">Typedef Documentation</h2>
<a id="ga8476a91f8c0ba36b3255ff0b63768d8b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8476a91f8c0ba36b3255ff0b63768d8b">&#9670;&nbsp;</a></span>rpmSubTagType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group__header.html#ga8252a017b6a137ec3e54d0c2ad8f332f">rpmSubTagType_e</a>  <a class="el" href="group__header.html#ga8476a91f8c0ba36b3255ff0b63768d8b">rpmSubTagType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>New rpm data types under consideration/development. </p>
<p>These data types may (or may not) be added to rpm at some point. In order to avoid incompatibility with legacy versions of rpm, these data (sub-)types are introduced into the header by overloading RPM_BIN_TYPE, with the binary value of the tag a 16 byte image of what should/will be in the header index, followed by per-tag private data. </p>

</div>
</div>
<a id="gae3bf8d35e51bc1fbaa1a2a5acdceb79e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae3bf8d35e51bc1fbaa1a2a5acdceb79e">&#9670;&nbsp;</a></span>rpmTagType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">typedef enum <a class="el" href="group__header.html#ga24690e18a34d56e178edf27b5cc97fed">rpmTagType_e</a>  <a class="el" href="group__header.html#gae3bf8d35e51bc1fbaa1a2a5acdceb79e">rpmTagType</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The basic types of data in tags from headers. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="gae10b109d8e56faba07f4743b797b893a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae10b109d8e56faba07f4743b797b893a">&#9670;&nbsp;</a></span>headerGetFlags_e</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__header.html#gae10b109d8e56faba07f4743b797b893a">headerGetFlags_e</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modifier flags for <a class="el" href="group__header.html#ga7a2b47707f49dd90c7f3e7799e4a01b3" title="Retrieve tag value. ">headerGet()</a> operation. </p>
<p>For consistent behavior you'll probably want to use ALLOC to ensure the caller owns the data, but MINMEM is useful for avoiding extra copy of data when you are sure the header wont go away. Most of the time you'll probably want EXT too, but note that extensions tags don't generally honor the other flags, MINMEM, RAW, ALLOC and ARGV are only relevant for non-extension data. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae10b109d8e56faba07f4743b797b893aa10a9f914f9b8f462ad846dc27cab28c6"></a>HEADERGET_DEFAULT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae10b109d8e56faba07f4743b797b893aa9ff0aaa4dbaf60dc852c5af8ca6487f2"></a>HEADERGET_MINMEM&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae10b109d8e56faba07f4743b797b893aa38f8e76cedf30634d4d7621be70c5847"></a>HEADERGET_EXT&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae10b109d8e56faba07f4743b797b893aa9323938f8824a1257d24adec115996a4"></a>HEADERGET_RAW&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae10b109d8e56faba07f4743b797b893aa8fb050c50c60c1b2a931a56e0beb2b8a"></a>HEADERGET_ALLOC&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="ggae10b109d8e56faba07f4743b797b893aa3dc9e71e8a1777e9a68adde6569aef96"></a>HEADERGET_ARGV&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="header_8h_source.html#l00163">163</a> of file <a class="el" href="header_8h_source.html">header.h</a>.</p>

</div>
</div>
<a id="ga2572591faf5430cdf28aaf9f70d74fa4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2572591faf5430cdf28aaf9f70d74fa4">&#9670;&nbsp;</a></span>hMagic</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__header.html#ga2572591faf5430cdf28aaf9f70d74fa4">hMagic</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Include calculation for 8 bytes of (magic, 0)? </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga2572591faf5430cdf28aaf9f70d74fa4a4df0aa5955f506525b5a5537605e3092"></a>HEADER_MAGIC_NO&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga2572591faf5430cdf28aaf9f70d74fa4aebb6d0af72ae9d4c607e81796dafa472"></a>HEADER_MAGIC_YES&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="header_8h_source.html#l00032">32</a> of file <a class="el" href="header_8h_source.html">header.h</a>.</p>

</div>
</div>
<a id="ga8252a017b6a137ec3e54d0c2ad8f332f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8252a017b6a137ec3e54d0c2ad8f332f">&#9670;&nbsp;</a></span>rpmSubTagType_e</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__header.html#ga8252a017b6a137ec3e54d0c2ad8f332f">rpmSubTagType_e</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>New rpm data types under consideration/development. </p>
<p>These data types may (or may not) be added to rpm at some point. In order to avoid incompatibility with legacy versions of rpm, these data (sub-)types are introduced into the header by overloading RPM_BIN_TYPE, with the binary value of the tag a 16 byte image of what should/will be in the header index, followed by per-tag private data. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga8252a017b6a137ec3e54d0c2ad8f332faf66af42afcdb5ed4a78d3771e01ad84d"></a>RPM_REGION_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga8252a017b6a137ec3e54d0c2ad8f332fadef6f13d3e7cfb28d2835380fe54e625"></a>RPM_BIN_ARRAY_TYPE&#160;</td><td class="fielddoc"><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000020">Todo:</a></b></dt><dd>Implement, kinda like RPM_STRING_ARRAY_TYPE for known (but variable) length binary data. </dd></dl>
</td></tr>
<tr><td class="fieldname"><a id="gga8252a017b6a137ec3e54d0c2ad8f332fadc7dd89d43dc44dbd438c5a2cafbe476"></a>RPM_XREF_TYPE&#160;</td><td class="fielddoc"><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000021">Todo:</a></b></dt><dd>Implement, intent is to to carry a (???,tagNum,valNum) cross reference to retrieve data from other tags. </dd></dl>
</td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="rpmtag_8h_source.html#l00466">466</a> of file <a class="el" href="rpmtag_8h_source.html">rpmtag.h</a>.</p>

</div>
</div>
<a id="ga06b1ee1d4b501cad4d8aebe07cfc8eb3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga06b1ee1d4b501cad4d8aebe07cfc8eb3">&#9670;&nbsp;</a></span>rpmTagReturnType_e</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__header.html#ga06b1ee1d4b501cad4d8aebe07cfc8eb3">rpmTagReturnType_e</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<ul>
<li>Identify how to return the header data type. </li>
</ul>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga06b1ee1d4b501cad4d8aebe07cfc8eb3a85833a03c9ca291cb4079436f1d0e691"></a>RPM_ANY_RETURN_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga06b1ee1d4b501cad4d8aebe07cfc8eb3ab4a1533449cae4783b75dc4f63fea4c3"></a>RPM_SCALAR_RETURN_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga06b1ee1d4b501cad4d8aebe07cfc8eb3a52b4a26c0e82c4c1481fdc66c1bb3dce"></a>RPM_ARRAY_RETURN_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga06b1ee1d4b501cad4d8aebe07cfc8eb3a8aad2b81c577a54f0451fe6562d4107c"></a>RPM_MAPPING_RETURN_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga06b1ee1d4b501cad4d8aebe07cfc8eb3a1acf76a1e638f855f013084e294af9be"></a>RPM_MASK_RETURN_TYPE&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="rpmtag_8h_source.html#l00479">479</a> of file <a class="el" href="rpmtag_8h_source.html">rpmtag.h</a>.</p>

</div>
</div>
<a id="ga24690e18a34d56e178edf27b5cc97fed"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga24690e18a34d56e178edf27b5cc97fed">&#9670;&nbsp;</a></span>rpmTagType_e</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__header.html#ga24690e18a34d56e178edf27b5cc97fed">rpmTagType_e</a></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The basic types of data in tags from headers. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97fedaab678f136ed90646ef740a68d94dbcd9"></a>RPM_NULL_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97fedaef0515c385f44f8679ddce3dfd12900e"></a>RPM_CHAR_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda0701f2c2ebe1f04b84487dc749ed350f"></a>RPM_INT8_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda725a353577bf2dce87138837ebf3ad66"></a>RPM_INT16_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda033cf2f10106384143d802ede9274dcc"></a>RPM_INT32_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda02ac0e674a2704e17cbf65d4c5cf0b82"></a>RPM_INT64_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda34cdc667815b86f8741fbf06ce4725eb"></a>RPM_STRING_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda96437c1222f63450e6ab8d693447d1bd"></a>RPM_BIN_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda6ae076d0ee687ce337e98f86a1aee307"></a>RPM_STRING_ARRAY_TYPE&#160;</td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="gga24690e18a34d56e178edf27b5cc97feda7a7bbe524996280711a7970977ada120"></a>RPM_I18NSTRING_TYPE&#160;</td><td class="fielddoc"></td></tr>
</table>

<p class="definition">Definition at line <a class="el" href="rpmtag_8h_source.html#l00431">431</a> of file <a class="el" href="rpmtag_8h_source.html">rpmtag.h</a>.</p>

</div>
</div>
<h2 class="groupheader">Function Documentation</h2>
<a id="ga16c4db38571cb061497692d4703f69bd"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga16c4db38571cb061497692d4703f69bd">&#9670;&nbsp;</a></span>headerAddI18NString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerAddI18NString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>string</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>lang</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add locale specific tag to header. </p>
<p>A NULL lang is interpreted as the C locale. Here are the rules: </p><pre class="fragment">*       - 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 headerMod()).
* </pre><p> This function is intended to just "do the right thing". If you need more fine grained control use <a class="el" href="group__header.html#ga2275b05ca8482917028356781f9a125d" title="Add or append tag to header. ">headerPut()</a> and <a class="el" href="group__header.html#ga1da44d2ff4356452098ecab7214ec66d" title="Modify tag in header. ">headerMod()</a>.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag </td></tr>
    <tr><td class="paramname">string</td><td>tag value </td></tr>
    <tr><td class="paramname">lang</td><td>locale </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="ga3e07756b155618410a1c3f8ee10d2b14"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e07756b155618410a1c3f8ee10d2b14">&#9670;&nbsp;</a></span>headerCheck()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#ga06da857c39457bfb6ea9049643fdb706">rpmRC</a> headerCheck </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga1a512138316a227059ca128597dbd464">rpmts</a>&#160;</td>
          <td class="paramname"><em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>uh</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>uc</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>msg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check header consistency, performing headerGetEntry() the hard way. </p>
<p>Sanity checks on the header are performed while looking for a header-only digest or signature to verify the blob. If found, the digest or signature is verified.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ts</td><td>transaction set </td></tr>
    <tr><td class="paramname">uh</td><td>unloaded header blob </td></tr>
    <tr><td class="paramname">uc</td><td>no. of bytes in blob (or 0 to disable) </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">*msg</td><td>verification error message (or NULL) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>RPMRC_OK on success </dd></dl>

</div>
</div>
<a id="gab88b5e1beaad76593a9488f4d6690c9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab88b5e1beaad76593a9488f4d6690c9c">&#9670;&nbsp;</a></span>headerConvert()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerConvert </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>op</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert header to/from (legacy) data presentation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">op</td><td>one of headerConvOps operations </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="gac6ec9b02a38e9ad6bc9bd10c73eb2960"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gac6ec9b02a38e9ad6bc9bd10c73eb2960">&#9670;&nbsp;</a></span>headerCopy()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerCopy </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Duplicate a header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new header instance </dd></dl>

</div>
</div>
<a id="gaa4af55b82df3f36dd7257cd3a1b2b7d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa4af55b82df3f36dd7257cd3a1b2b7d9">&#9670;&nbsp;</a></span>headerCopyLoad()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerCopyLoad </td>
          <td>(</td>
          <td class="paramtype">const void *&#160;</td>
          <td class="paramname"><em>uh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Make a copy and convert header to in-memory representation. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000005">Deprecated:</a></b></dt><dd>Use <a class="el" href="group__header.html#gaf9e6abca97861c4c2e7fc311186f2707" title="Import header to in-memory representation. ">headerImport()</a> instead </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">uh</td><td>on-disk header blob (i.e. with offsets) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header </dd></dl>

</div>
</div>
<a id="ga3e30db21bf5804f5f5555320310dac69"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e30db21bf5804f5f5555320310dac69">&#9670;&nbsp;</a></span>headerCopyTags()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void headerCopyTags </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>headerFrom</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>headerTo</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const <a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> *&#160;</td>
          <td class="paramname"><em>tagstocopy</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Duplicate tag values from one header into another. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">headerFrom</td><td>source header </td></tr>
    <tr><td class="paramname">headerTo</td><td>destination header </td></tr>
    <tr><td class="paramname">tagstocopy</td><td>array of tags that are copied </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga51d00fb009078a0a884a38844aa87289"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga51d00fb009078a0a884a38844aa87289">&#9670;&nbsp;</a></span>headerDel()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerDel </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Delete tag in header. </p>
<p>Removes all entries of type tag from the header, returns 1 if none were found.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, 1 on failure (INCONSISTENT) </dd></dl>

</div>
</div>
<a id="ga32bfde5f514287b143e03763026b194b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga32bfde5f514287b143e03763026b194b">&#9670;&nbsp;</a></span>headerExport()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* headerExport </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int *&#160;</td>
          <td class="paramname"><em>bsize</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Export header to on-disk representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header (with pointers) </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">bsize</td><td>on-disk header blob size in bytes </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>on-disk header blob (i.e. with offsets) </dd></dl>

</div>
</div>
<a id="gaca1e14f3cde6bfbc931582dfb52f5307"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaca1e14f3cde6bfbc931582dfb52f5307">&#9670;&nbsp;</a></span>headerFormat()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* headerFormat </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fmt</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="rpmtypes_8h.html#ab20ae37fc60551c3abf7f9b25fcd3bc2">errmsg_t</a> *&#160;</td>
          <td class="paramname"><em>errmsg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return formatted output string from header tags. </p>
<p>The returned string must be free()d.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">fmt</td><td>format to use </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">errmsg</td><td>error message (if any) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>formatted output string (malloc'ed) </dd></dl>

</div>
</div>
<a id="ga15e58ea36a4ad540759989db341797ce"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga15e58ea36a4ad540759989db341797ce">&#9670;&nbsp;</a></span>headerFree()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerFree </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Dereference a header instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>NULL always </dd></dl>

</div>
</div>
<a id="ga98877806b624ced2fac5cd0bb50239a4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga98877806b624ced2fac5cd0bb50239a4">&#9670;&nbsp;</a></span>headerFreeIterator()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a> headerFreeIterator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a>&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Destroy header tag iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hi</td><td>header tag iterator </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>NULL always </dd></dl>

</div>
</div>
<a id="ga7a2b47707f49dd90c7f3e7799e4a01b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga7a2b47707f49dd90c7f3e7799e4a01b3">&#9670;&nbsp;</a></span>headerGet()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerGet </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a>&#160;</td>
          <td class="paramname"><em>td</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="header_8h.html#a90e3a0c184de0dcd9a74e875e3a438c0">headerGetFlags</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Retrieve tag value. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">td</td><td>tag data container </td></tr>
  </table>
  </dd>
</dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">flags</td><td>retrieval modifier flags </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="ga8e4563d798b9d1e6dae92f31f7f05de3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga8e4563d798b9d1e6dae92f31f7f05de3">&#9670;&nbsp;</a></span>headerGetAsString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">char* headerGetAsString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return any non-array tag from header, converted to string. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag to retrieve </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string pointer (malloced) or NULL on failure </dd></dl>

</div>
</div>
<a id="gab2ead5204f382040cd30cd4be1688990"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab2ead5204f382040cd30cd4be1688990">&#9670;&nbsp;</a></span>headerGetInstance()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int headerGetInstance </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return header instance, ie is the header from rpmdb. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>rpmdb record number or 0 </dd></dl>

</div>
</div>
<a id="ga33376e8850c275b72059fe723a0d3066"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga33376e8850c275b72059fe723a0d3066">&#9670;&nbsp;</a></span>headerGetString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const char* headerGetString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return a simple string tag from header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag to retrieve </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>string pointer (to header memory) or NULL on failure </dd></dl>

</div>
</div>
<a id="gaf9e6abca97861c4c2e7fc311186f2707"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf9e6abca97861c4c2e7fc311186f2707">&#9670;&nbsp;</a></span>headerImport()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerImport </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>blob</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">unsigned int&#160;</td>
          <td class="paramname"><em>bsize</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="header_8h.html#a1ad771f93ce1dd0dba6446b8a14a1c9b">headerImportFlags</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Import header to in-memory representation. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">blob</td><td>on-disk header blob (i.e. with offsets) </td></tr>
    <tr><td class="paramname">bsize</td><td>on-disk header blob size in bytes (0 if unknown) </td></tr>
    <tr><td class="paramname">flags</td><td>flags to control operation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header </dd></dl>

</div>
</div>
<a id="gae549f696a160547449c7fbd3606026b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae549f696a160547449c7fbd3606026b3">&#9670;&nbsp;</a></span>headerInitIterator()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a> headerInitIterator </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create header tag iterator. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header tag iterator </dd></dl>

</div>
</div>
<a id="gafb403521514c8e7ebaec2cd568c128de"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafb403521514c8e7ebaec2cd568c128de">&#9670;&nbsp;</a></span>headerIsEntry()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerIsEntry </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if tag is in header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="ga3e665b416a45423189eefd54d32e8826"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga3e665b416a45423189eefd54d32e8826">&#9670;&nbsp;</a></span>headerIsSource()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerIsSource </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Check if header is a source or binary package header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 == binary, 1 == source </dd></dl>

</div>
</div>
<a id="gab8e8158584de00bad7bbf91cd7b43e72"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gab8e8158584de00bad7bbf91cd7b43e72">&#9670;&nbsp;</a></span>headerLink()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerLink </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Reference a header instance. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>new header reference </dd></dl>

</div>
</div>
<a id="gaa44e906299e81eda325dbef9fd991c9c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa44e906299e81eda325dbef9fd991c9c">&#9670;&nbsp;</a></span>headerLoad()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerLoad </td>
          <td>(</td>
          <td class="paramtype">void *&#160;</td>
          <td class="paramname"><em>uh</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert header to in-memory representation. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000004">Deprecated:</a></b></dt><dd>Use <a class="el" href="group__header.html#gaf9e6abca97861c4c2e7fc311186f2707" title="Import header to in-memory representation. ">headerImport()</a> instead </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">uh</td><td>on-disk header blob (i.e. with offsets) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header </dd></dl>

</div>
</div>
<a id="ga1da44d2ff4356452098ecab7214ec66d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1da44d2ff4356452098ecab7214ec66d">&#9670;&nbsp;</a></span>headerMod()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerMod </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a>&#160;</td>
          <td class="paramname"><em>td</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Modify tag in header. </p>
<p>If there are multiple entries with this tag, the first one gets replaced. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">td</td><td>tag data container </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="gaba1932e7962b6c650006c3083530b042"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaba1932e7962b6c650006c3083530b042">&#9670;&nbsp;</a></span>headerNew()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerNew </td>
          <td>(</td>
          <td class="paramtype">void&#160;</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create new (empty) header instance. </p>
<dl class="section return"><dt>Returns</dt><dd>header </dd></dl>

</div>
</div>
<a id="ga9c4cc53c5f7e88665752bbceee2e5756"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9c4cc53c5f7e88665752bbceee2e5756">&#9670;&nbsp;</a></span>headerNext()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerNext </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a>&#160;</td>
          <td class="paramname"><em>hi</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a>&#160;</td>
          <td class="paramname"><em>td</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return next tag contents from header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hi</td><td>header tag iterator </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">td</td><td>tag data container </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="gafa3424ff811c33c12b8297ac5e44a5c2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafa3424ff811c33c12b8297ac5e44a5c2">&#9670;&nbsp;</a></span>headerNextTag()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a> headerNextTag </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga04fc66186d2c57c59085895c232091ab">HeaderIterator</a>&#160;</td>
          <td class="paramname"><em>hi</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return next tag number from header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hi</td><td>header tag iterator </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>next tag, RPMTAG_NOT_FOUND to stop iteration </dd></dl>

</div>
</div>
<a id="ga2275b05ca8482917028356781f9a125d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga2275b05ca8482917028356781f9a125d">&#9670;&nbsp;</a></span>headerPut()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPut </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga49f411ddc672b0d8e0fbd9d9f2dcf0ae">rpmtd</a>&#160;</td>
          <td class="paramname"><em>td</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="header_8h.html#a0c621fdfe7dd922f5772fa1019af4cb9">headerPutFlags</a>&#160;</td>
          <td class="paramname"><em>flags</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Add or append tag to header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">td</td><td>tag data container </td></tr>
    <tr><td class="paramname">flags</td><td>flags to control operation </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="ga9e199fc71b38054854cbce80688d3f34"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9e199fc71b38054854cbce80688d3f34">&#9670;&nbsp;</a></span>headerPutBin()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutBin </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Type-safe methods for inserting tag data to header. </p>
<p>Tag data type is validated to match the function type, ie things like headerPutUint32(h, RPMTAG_NAME, ...) will return failure. For non-array types size must equal 1, and data is checked to be non-NULL. For array types, add-or-append mode is always used.</p>
<p><a class="el" href="group__header.html#ga9a7cc53243734db48200933aecaea57c">headerPutString()</a> can be used on both RPM_STRING_TYPE and RPM_STRING_ARRAY_TYPE (to add a single string into the array) tags, for others the type must match exactly.</p>
<p>These are intended to "do the right thing" in the common case, if you need more fine grained control use <a class="el" href="group__header.html#ga2275b05ca8482917028356781f9a125d" title="Add or append tag to header. ">headerPut()</a> &amp; friends instead. </p><dl class="todo"><dt><b><a class="el" href="todo.html#_todo000003">Todo:</a></b></dt><dd>Make doxygen group these meaningfully.</dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">tag</td><td>tag to insert </td></tr>
    <tr><td class="paramname">val</td><td>pointer to value(s) </td></tr>
    <tr><td class="paramname">size</td><td>number of items in array (1 or larger) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>1 on success, 0 on failure </dd></dl>

</div>
</div>
<a id="gaa4d045e93d8dd80ae5926adc497c89fe"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaa4d045e93d8dd80ae5926adc497c89fe">&#9670;&nbsp;</a></span>headerPutChar()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutChar </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga9a7cc53243734db48200933aecaea57c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga9a7cc53243734db48200933aecaea57c">&#9670;&nbsp;</a></span>headerPutString()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutString </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>val</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga49fc2962d2ca89a6b5d0037f179bec3b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga49fc2962d2ca89a6b5d0037f179bec3b">&#9670;&nbsp;</a></span>headerPutStringArray()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutStringArray </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char **&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaad9057a802f0b75770306b0bb8278cab"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaad9057a802f0b75770306b0bb8278cab">&#9670;&nbsp;</a></span>headerPutUint16()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutUint16 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint16_t *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="gaac1ccf3d2c03fea718715fecb18e83c8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaac1ccf3d2c03fea718715fecb18e83c8">&#9670;&nbsp;</a></span>headerPutUint32()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutUint32 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint32_t *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga16cbe23295f03e636efdbb7c82c3b2b6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga16cbe23295f03e636efdbb7c82c3b2b6">&#9670;&nbsp;</a></span>headerPutUint64()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutUint64 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint64_t *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga76de0144adee11ce027a6df0df6a9211"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga76de0144adee11ce027a6df0df6a9211">&#9670;&nbsp;</a></span>headerPutUint8()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerPutUint8 </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const uint8_t *&#160;</td>
          <td class="paramname"><em>val</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga12927399545450cd58cca8abdc44e768">rpm_count_t</a>&#160;</td>
          <td class="paramname"><em>size</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

</div>
</div>
<a id="ga29a7512cc49adc47238baf0acd3f67e5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga29a7512cc49adc47238baf0acd3f67e5">&#9670;&nbsp;</a></span>headerRead()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerRead </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>magicp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Read (and load) header from file handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>file handle </td></tr>
    <tr><td class="paramname">magicp</td><td>read (and verify) 8 bytes of (magic, 0)? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>header (or NULL on error) </dd></dl>

</div>
</div>
<a id="gaf20c66a7e5a96a7bcdf186ff517bd6ff"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gaf20c66a7e5a96a7bcdf186ff517bd6ff">&#9670;&nbsp;</a></span>headerReload()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> headerReload </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga2ef24de5e3abc53a5be49546c6b1eccf">rpmTagVal</a>&#160;</td>
          <td class="paramname"><em>tag</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert header to on-disk representation, and then reload. </p>
<p>This is used to insure that all header data is in one chunk. </p><dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header (with pointers) </td></tr>
    <tr><td class="paramname">tag</td><td>region tag </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>on-disk header (with offsets) </dd></dl>

</div>
</div>
<a id="gabe6057e3d70882f1d756ab87c555baf6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabe6057e3d70882f1d756ab87c555baf6">&#9670;&nbsp;</a></span>headerSizeof()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">unsigned int headerSizeof </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>magicp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return size of on-disk header representation in bytes. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">magicp</td><td>include size of 8 bytes for (magic, 0)? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>size of on-disk header </dd></dl>

</div>
</div>
<a id="ga33ea43d033ea680a8c5357ed9cec7283"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga33ea43d033ea680a8c5357ed9cec7283">&#9670;&nbsp;</a></span>headerUnload()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void* headerUnload </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Convert header to on-disk representation. </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">Deprecated:</a></b></dt><dd>Use <a class="el" href="group__header.html#ga32bfde5f514287b143e03763026b194b" title="Export header to on-disk representation. ">headerExport()</a> instead </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">h</td><td>header (with pointers) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>on-disk header blob (i.e. with offsets) </dd></dl>

</div>
</div>
<a id="gabe3afb87a33318ab9cef8039d9a12698"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gabe3afb87a33318ab9cef8039d9a12698">&#9670;&nbsp;</a></span>headerWrite()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">int headerWrite </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a>&#160;</td>
          <td class="paramname"><em>h</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">int&#160;</td>
          <td class="paramname"><em>magicp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Write (with unload) header to file handle. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">fd</td><td>file handle </td></tr>
    <tr><td class="paramname">h</td><td>header </td></tr>
    <tr><td class="paramname">magicp</td><td>prefix write with 8 bytes of (magic, 0)? </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>0 on success, 1 on error </dd></dl>

</div>
</div>
<a id="gae40693275adebc7fe9bbd78f81bfa90b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae40693275adebc7fe9bbd78f81bfa90b">&#9670;&nbsp;</a></span>rpmReadHeader()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#ga06da857c39457bfb6ea9049643fdb706">rpmRC</a> rpmReadHeader </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga1a512138316a227059ca128597dbd464">rpmts</a>&#160;</td>
          <td class="paramname"><em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> *&#160;</td>
          <td class="paramname"><em>hdrp</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">char **&#160;</td>
          <td class="paramname"><em>msg</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return checked and loaded header. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ts</td><td>unused </td></tr>
    <tr><td class="paramname">fd</td><td>file handle </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">hdrp</td><td>address of header (or NULL) </td></tr>
    <tr><td class="paramname">*msg</td><td>verification error message (or NULL) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>RPMRC_OK on success </dd></dl>

</div>
</div>
<a id="gae10b6de3f6b14ba9bf473e782c6ed65c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae10b6de3f6b14ba9bf473e782c6ed65c">&#9670;&nbsp;</a></span>rpmReadPackageFile()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="group__rpmtypes.html#ga06da857c39457bfb6ea9049643fdb706">rpmRC</a> rpmReadPackageFile </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga1a512138316a227059ca128597dbd464">rpmts</a>&#160;</td>
          <td class="paramname"><em>ts</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#ga078f4187c683508f3147e94397bab8d5">FD_t</a>&#160;</td>
          <td class="paramname"><em>fd</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const char *&#160;</td>
          <td class="paramname"><em>fn</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="group__rpmtypes.html#gacb1ffe4e2d96b8277f9f46ecc0c7b8a6">Header</a> *&#160;</td>
          <td class="paramname"><em>hdrp</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Return package header from file handle, verifying digests/signatures. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">ts</td><td>transaction set </td></tr>
    <tr><td class="paramname">fd</td><td>file handle </td></tr>
    <tr><td class="paramname">fn</td><td>file name </td></tr>
  </table>
  </dd>
</dl>
<dl class="retval"><dt>Return values</dt><dd>
  <table class="retval">
    <tr><td class="paramname">hdrp</td><td>address of header (or NULL) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>RPMRC_OK on success </dd></dl>

</div>
</div>
<h2 class="groupheader">Variable Documentation</h2>
<a id="ga6483a32ca9785bcef5fba196608ac0fb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga6483a32ca9785bcef5fba196608ac0fb">&#9670;&nbsp;</a></span>rpm_header_magic</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">const unsigned char rpm_header_magic[8]</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Header magic value. </p>

</div>
</div>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.14
</small></address>
</body>
</html>