<p>Currently, there's no callback type that would be issued per each<br>
transaction element.  RPMCALLBACK_TRANS_ST* are only issued during the<br>
prepare phase but not when packages are actually installed or erased.<br>
Likewise, RPMCALLBACK_INST_ST* and RPMCALLBACK_UNINST_ST* won't be<br>
issued if an install or erase operation is skipped for some reason (a<br>
script or a package upgrade failure).</p>

<p>Having such a callback would allow the Python API consumers to properly<br>
track the currently processed element.  This is important since not<br>
every callback type carries enough data about the subject package; while<br>
the INST types provide the user object passed to a former addInstall<br>
call, the UNINST types only provide the package name (which may not be<br>
unique within the transaction set).</p>

<p>This commit adds such a callback, that is issued every time a new<br>
element from the set is about to be processed.</p>

<hr>

<h4>You can view, comment on, or merge this pull request online at:</h4>
<p>  <a href='https://github.com/rpm-software-management/rpm/pull/36'>https://github.com/rpm-software-management/rpm/pull/36</a></p>

<h4>Commit Summary</h4>
<ul>
  <li>Add RPMCALLBACK_ELEM_PROGRESS callback type</li>
</ul>

<h4>File Changes</h4>
<ul>
  <li>
    <strong>M</strong>
    <a href="https://github.com/rpm-software-management/rpm/pull/36/files#diff-0">lib/rpmcallback.h</a>
    (1)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/rpm-software-management/rpm/pull/36/files#diff-1">lib/transaction.c</a>
    (4)
  </li>
  <li>
    <strong>M</strong>
    <a href="https://github.com/rpm-software-management/rpm/pull/36/files#diff-2">python/rpmmodule.c</a>
    (1)
  </li>
</ul>

<h4>Patch Links:</h4>
<ul>
  <li><a href='https://github.com/rpm-software-management/rpm/pull/36.patch'>https://github.com/rpm-software-management/rpm/pull/36.patch</a></li>
  <li><a href='https://github.com/rpm-software-management/rpm/pull/36.diff'>https://github.com/rpm-software-management/rpm/pull/36.diff</a></li>
</ul>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">—<br>Reply to this email directly or <a href="https://github.com/rpm-software-management/rpm/pull/36">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/ANb806_ViFmZ7LGixRFs8tUQCmGI0jWzks5pNw6ygaJpZM4GxM7N.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/rpm-software-management/rpm/pull/36"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>